Compare commits
No commits in common. "master" and "master-GE" have entirely different histories.
@ -1,6 +1,3 @@
|
|||||||
Copy of Working Version of Clipperz
|
|
||||||
|
|
||||||
Original: http://git.whoc.org.uk/git/password-manager.git
|
|
||||||
# ![Clipperz icon][icon] CLIPPERZ - Online Password Manager
|
# ![Clipperz icon][icon] CLIPPERZ - Online Password Manager
|
||||||
|
|
||||||
[icon]: ./Icon.png
|
[icon]: ./Icon.png
|
||||||
@ -31,7 +28,7 @@ As an example, the current PHP backend lacks several critical capabilities such
|
|||||||
Please note: the actual Clipperz service use a far more robust backend, but the communication protocol between backend and frontend is of course identical.
|
Please note: the actual Clipperz service use a far more robust backend, but the communication protocol between backend and frontend is of course identical.
|
||||||
|
|
||||||
[app]: https://clipperz.is/app/
|
[app]: https://clipperz.is/app/
|
||||||
[CA]: https://clipperz.is/open_source/contributor_agreement/
|
[CA]: https://clipperz.is/contributor_agreement/
|
||||||
[contact]: https://clipperz.is/about/contacts/
|
[contact]: https://clipperz.is/about/contacts/
|
||||||
|
|
||||||
|
|
||||||
@ -64,7 +61,7 @@ Please [download][CA] and review the Contributor Agreement for a complete unders
|
|||||||
## Building
|
## Building
|
||||||
In order to build the deployable version, you need to invoke the following command:
|
In order to build the deployable version, you need to invoke the following command:
|
||||||
|
|
||||||
git clone https://github.com/clipperz/password-manager.git
|
git clone git@github.com:clipperz/password-manager.git
|
||||||
cd password-manager
|
cd password-manager
|
||||||
./scripts/build install --backends php python --frontends delta
|
./scripts/build install --backends php python --frontends delta
|
||||||
|
|
||||||
|
@ -438,11 +438,6 @@ class message(HandlerMixin):
|
|||||||
result['oldestUsedEncryptedVersion'] = oldest_encryption_version
|
result['oldestUsedEncryptedVersion'] = oldest_encryption_version
|
||||||
result['versions'] = record_versions
|
result['versions'] = record_versions
|
||||||
result['currentVersion'] = record.current_record_version.reference
|
result['currentVersion'] = record.current_record_version.reference
|
||||||
record.current_record_version.access()
|
|
||||||
record.access()
|
|
||||||
db.session.add(record)
|
|
||||||
db.session.add(record_version)
|
|
||||||
db.session.commit()
|
|
||||||
return jsonify({'result': result})
|
return jsonify({'result': result})
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@ -664,15 +659,6 @@ class message(HandlerMixin):
|
|||||||
result['result'] = 'done'
|
result['result'] = 'done'
|
||||||
return jsonify({'result': result})
|
return jsonify({'result': result})
|
||||||
|
|
||||||
@login_required
|
|
||||||
def getCertificatesStatus(self, parameters, request):
|
|
||||||
"""
|
|
||||||
Provides support for BTC Certificate feature.
|
|
||||||
|
|
||||||
No idea how it works.
|
|
||||||
"""
|
|
||||||
return jsonify({'result': {}})
|
|
||||||
|
|
||||||
|
|
||||||
class logout(HandlerMixin):
|
class logout(HandlerMixin):
|
||||||
|
|
||||||
|
@ -104,12 +104,8 @@ class RecordVersion(db.Model):
|
|||||||
self.version = self.record.version
|
self.version = self.record.version
|
||||||
self.previous_version_key = recordVersionData['previousVersionKey']
|
self.previous_version_key = recordVersionData['previousVersionKey']
|
||||||
self.update_date = datetime.datetime.utcnow()
|
self.update_date = datetime.datetime.utcnow()
|
||||||
self.access_date = datetime.datetime.utcnow()
|
|
||||||
|
|
||||||
self.record.update(someData['record'], self)
|
self.record.update(someData['record'], self)
|
||||||
|
|
||||||
def access(self):
|
|
||||||
self.access_date = datetime.datetime.now()
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
@ -148,13 +144,9 @@ class Record(db.Model):
|
|||||||
self.data = data['data']
|
self.data = data['data']
|
||||||
self.api_version = data['version']
|
self.api_version = data['version']
|
||||||
self.update_date = datetime.datetime.now()
|
self.update_date = datetime.datetime.now()
|
||||||
self.access_date = datetime.datetime.now()
|
|
||||||
self.current_record_version = record_version
|
self.current_record_version = record_version
|
||||||
self.version += 1
|
self.version += 1
|
||||||
|
|
||||||
def access(self):
|
|
||||||
self.access_date = datetime.datetime.now()
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"request.path": "../index.php",
|
"request.path": "../index.php",
|
||||||
"dump.path": "/../dump.php?frontend=",
|
"dump.path": "../dump.php",
|
||||||
"should.pay.toll": "false"
|
"should.pay.toll": "false"
|
||||||
}
|
}
|
||||||
|
@ -11,22 +11,7 @@ header('Content-Disposition: attachment; filename=Clipperz_'.date("Ymd").'.html'
|
|||||||
include "./objects/class.onetimepassword.php";
|
include "./objects/class.onetimepassword.php";
|
||||||
include "./objects/class.onetimepasswordstatus.php";
|
include "./objects/class.onetimepasswordstatus.php";
|
||||||
|
|
||||||
//$htmlContent = file_get_contents("../index.html");
|
$htmlContent = file_get_contents("../index.html");
|
||||||
switch ($_GET["frontend"]) {
|
|
||||||
case 'beta':
|
|
||||||
$htmlContent = file_get_contents("beta/index.html");
|
|
||||||
break;
|
|
||||||
case 'gamma':
|
|
||||||
$htmlContent = file_get_contents("gamma/index.html");
|
|
||||||
break;
|
|
||||||
case 'delta':
|
|
||||||
$htmlContent = file_get_contents("delta/index.html");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
exit ("Invalid Frontend");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
session_start();
|
session_start();
|
||||||
|
|
||||||
|
@ -409,11 +409,7 @@ error_log("message");
|
|||||||
$recordStats["updateDate"] = $record->update_date;
|
$recordStats["updateDate"] = $record->update_date;
|
||||||
$recordsStats[$record->reference] = $recordStats;
|
$recordsStats[$record->reference] = $recordStats;
|
||||||
}
|
}
|
||||||
if ( isset( $recordsStats ) ) {
|
|
||||||
$result["recordsStats"] = $recordsStats;
|
$result["recordsStats"] = $recordsStats;
|
||||||
} else {
|
|
||||||
$result["recordsStats"] = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
$result["statistics"] = $user->statistics;
|
$result["statistics"] = $user->statistics;
|
||||||
$result["version"] = $user->version;
|
$result["version"] = $user->version;
|
||||||
@ -547,11 +543,7 @@ error_log("message");
|
|||||||
|
|
||||||
$user->Save();
|
$user->Save();
|
||||||
|
|
||||||
if (isset( $parameters["parameters"]["records"]["deleted"] ) ) {
|
|
||||||
$recordToDeleteReferenceList = $parameters["parameters"]["records"]["deleted"];
|
$recordToDeleteReferenceList = $parameters["parameters"]["records"]["deleted"];
|
||||||
} else {
|
|
||||||
$recordToDeleteReferenceList = NULL;
|
|
||||||
}
|
|
||||||
$recordList = array();
|
$recordList = array();
|
||||||
$c = count($recordToDeleteReferenceList);
|
$c = count($recordToDeleteReferenceList);
|
||||||
for ($i=0; $i<$c; $i++) {
|
for ($i=0; $i<$c; $i++) {
|
||||||
|
@ -17,12 +17,19 @@
|
|||||||
$databaseUser = $GLOBALS['configuration']['user'];
|
$databaseUser = $GLOBALS['configuration']['user'];
|
||||||
$databasePassword = $GLOBALS['configuration']['pass'];
|
$databasePassword = $GLOBALS['configuration']['pass'];
|
||||||
$databasePort = $GLOBALS['configuration']['port'];
|
$databasePort = $GLOBALS['configuration']['port'];
|
||||||
$this->connection = mysqli_connect ($serverName, $databaseUser, $databasePassword , $databaseName, $databasePort);
|
$this->connection = mysql_connect ($serverName.":".$databasePort, $databaseUser, $databasePassword);
|
||||||
if (!$this->connection)
|
if ($this->connection)
|
||||||
|
{
|
||||||
|
if (!mysql_select_db ($databaseName))
|
||||||
{
|
{
|
||||||
throw new Exception('I cannot find the specified database "'.$databaseName.'". Please edit configuration.php.');
|
throw new Exception('I cannot find the specified database "'.$databaseName.'". Please edit configuration.php.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new Exception('I cannot connect to the database. Please edit configuration.php with your database configuration.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static function Connect()
|
public static function Connect()
|
||||||
{
|
{
|
||||||
@ -36,19 +43,19 @@
|
|||||||
|
|
||||||
public static function Reader($query, $connection)
|
public static function Reader($query, $connection)
|
||||||
{
|
{
|
||||||
$cursor = mysqli_query($connection, $query);
|
$cursor = mysql_query($query, $connection);
|
||||||
return $cursor;
|
return $cursor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function Read($cursor)
|
public static function Read($cursor)
|
||||||
{
|
{
|
||||||
return mysqli_fetch_assoc($cursor);
|
return mysql_fetch_assoc($cursor);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function NonQuery($query, $connection)
|
public static function NonQuery($query, $connection)
|
||||||
{
|
{
|
||||||
mysqli_query($connection, $query);
|
mysql_query($query, $connection);
|
||||||
$result = mysqli_affected_rows($connection);
|
$result = mysql_affected_rows($connection);
|
||||||
if ($result == -1)
|
if ($result == -1)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -59,14 +66,14 @@
|
|||||||
|
|
||||||
public static function Query($query, $connection)
|
public static function Query($query, $connection)
|
||||||
{
|
{
|
||||||
$result = mysqli_query($connection, $query);
|
$result = mysql_query($query, $connection);
|
||||||
return mysqli_num_rows($result);
|
return mysql_num_rows($result);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function InsertOrUpdate($query, $connection)
|
public static function InsertOrUpdate($query, $connection)
|
||||||
{
|
{
|
||||||
$result = mysqli_query($connection, $query);
|
$result = mysql_query($query, $connection);
|
||||||
return intval(mysqli_insert_id($connection));
|
return intval(mysql_insert_id($connection));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -92,10 +92,10 @@ class POG_Base
|
|||||||
return $objectList;
|
return $objectList;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function CreateObjects($mysqli_result, $objectClass, $lazyLoad = true)
|
private function CreateObjects($mysql_result, $objectClass, $lazyLoad = true)
|
||||||
{
|
{
|
||||||
$objectList = array();
|
$objectList = array();
|
||||||
while ($row = mysqli_fetch_assoc($mysqli_result))
|
while ($row = mysql_fetch_assoc($mysql_result))
|
||||||
{
|
{
|
||||||
$pog_object = new $objectClass();
|
$pog_object = new $objectClass();
|
||||||
$this->PopulateObjectAttributes($row, $pog_object);
|
$this->PopulateObjectAttributes($row, $pog_object);
|
||||||
|
@ -164,26 +164,24 @@ if(count($_POST) > 0 && $_SESSION['diagnosticsSuccessful']==false)
|
|||||||
if ($errors == 0)
|
if ($errors == 0)
|
||||||
{
|
{
|
||||||
AddTrace('File Structure....OK!');
|
AddTrace('File Structure....OK!');
|
||||||
#if (!mysql_connect ($GLOBALS['configuration']['host'].":".$GLOBALS['configuration']['port'], $GLOBALS['configuration']['user'], $GLOBALS['configuration']['pass']))
|
if (!mysql_connect ($GLOBALS['configuration']['host'].":".$GLOBALS['configuration']['port'], $GLOBALS['configuration']['user'], $GLOBALS['configuration']['pass']))
|
||||||
if (!mysqli_connect ($GLOBALS['configuration']['host'], $GLOBALS['configuration']['user'], $GLOBALS['configuration']['pass'],$GLOBALS['configuration']['db'], $GLOBALS['configuration']['port']))
|
|
||||||
{
|
{
|
||||||
$errors++;
|
$errors++;
|
||||||
AddError('Cannot connect to the specified database server. Edit configuration.php');
|
AddError('Cannot connect to the specified database server. Edit configuration.php');
|
||||||
AddError('Cannot find the specified database "'.$GLOBALS['configuration']['db'].'". Edit configuration.php');
|
|
||||||
}
|
}
|
||||||
if (isset($GLOBALS['configuration']['db_encoding']) && $GLOBALS['configuration']['db_encoding'] == 1 && !Base64::IsBase64FunctionInstalled())
|
if (isset($GLOBALS['configuration']['db_encoding']) && $GLOBALS['configuration']['db_encoding'] == 1 && !Base64::IsBase64FunctionInstalled())
|
||||||
{
|
{
|
||||||
$errors++;
|
$errors++;
|
||||||
AddError('$configuration[db_encoding] needs to be set to 0 until you install the base64 plugin. Set db_encoding to 0 by editing configuration.php, run setup again and go to the "Manage Plugins" tab. Install the base64 plugin. Then you can set db_encoding = 1');
|
AddError('$configuration[db_encoding] needs to be set to 0 until you install the base64 plugin. Set db_encoding to 0 by editing configuration.php, run setup again and go to the "Manage Plugins" tab. Install the base64 plugin. Then you can set db_encoding = 1');
|
||||||
}
|
}
|
||||||
# if ($errors == 0)
|
if ($errors == 0)
|
||||||
# {
|
{
|
||||||
# if (!@mysql_select_db ($GLOBALS['configuration']['db']))
|
if (!@mysql_select_db ($GLOBALS['configuration']['db']))
|
||||||
# {
|
{
|
||||||
# $errors++;
|
$errors++;
|
||||||
# AddError('Cannot find the specified database "'.$GLOBALS['configuration']['db'].'". Edit configuration.php');
|
AddError('Cannot find the specified database "'.$GLOBALS['configuration']['db'].'". Edit configuration.php');
|
||||||
# }
|
}
|
||||||
# }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -276,10 +276,10 @@
|
|||||||
{
|
{
|
||||||
$link = '';
|
$link = '';
|
||||||
$content = file_get_contents($objectFilePath);
|
$content = file_get_contents($objectFilePath);
|
||||||
$contentParts = explode("<b>",$content);
|
$contentParts = split("<b>",$content);
|
||||||
if (isset($contentParts[1]))
|
if (isset($contentParts[1]))
|
||||||
{
|
{
|
||||||
$contentParts2 = explode("</b>",$contentParts[1]);
|
$contentParts2 = split("</b>",$contentParts[1]);
|
||||||
}
|
}
|
||||||
if (isset($contentParts2[0]))
|
if (isset($contentParts2[0]))
|
||||||
{
|
{
|
||||||
@ -287,8 +287,8 @@
|
|||||||
}
|
}
|
||||||
if (isset($className))
|
if (isset($className))
|
||||||
{
|
{
|
||||||
$linkParts1 = explode("\*\/", $contentParts[1]);
|
$linkParts1 = split("\*\/", $contentParts[1]);
|
||||||
$linkParts2 = explode("\@link", $linkParts1[0]);
|
$linkParts2 = split("\@link", $linkParts1[0]);
|
||||||
if (isset($linkParts2[1]))
|
if (isset($linkParts2[1]))
|
||||||
{
|
{
|
||||||
$link = $linkParts2[1];
|
$link = $linkParts2[1];
|
||||||
@ -313,10 +313,10 @@
|
|||||||
function GetObjectName($objectFilePath)
|
function GetObjectName($objectFilePath)
|
||||||
{
|
{
|
||||||
$content = file_get_contents($objectFilePath);
|
$content = file_get_contents($objectFilePath);
|
||||||
$contentParts = explode("<b>",$content);
|
$contentParts = split("<b>",$content);
|
||||||
if (isset($contentParts[1]))
|
if (isset($contentParts[1]))
|
||||||
{
|
{
|
||||||
$contentParts2 = explode("</b>",$contentParts[1]);
|
$contentParts2 = split("</b>",$contentParts[1]);
|
||||||
}
|
}
|
||||||
if (isset($contentParts2[0]))
|
if (isset($contentParts2[0]))
|
||||||
{
|
{
|
||||||
@ -593,10 +593,10 @@
|
|||||||
|
|
||||||
//extract sql
|
//extract sql
|
||||||
$content = file_get_contents($objectFilePath);
|
$content = file_get_contents($objectFilePath);
|
||||||
$contentParts = explode("<b>",$content);
|
$contentParts = split("<b>",$content);
|
||||||
if (isset($contentParts[1]))
|
if (isset($contentParts[1]))
|
||||||
{
|
{
|
||||||
$contentParts2 = explode("</b>",$contentParts[1]);
|
$contentParts2 = split("</b>",$contentParts[1]);
|
||||||
}
|
}
|
||||||
if (isset($contentParts2[0]))
|
if (isset($contentParts2[0]))
|
||||||
{
|
{
|
||||||
@ -604,8 +604,8 @@
|
|||||||
}
|
}
|
||||||
if (isset($className))
|
if (isset($className))
|
||||||
{
|
{
|
||||||
$sqlParts = explode(";",$contentParts[0]);
|
$sqlParts = split(";",$contentParts[0]);
|
||||||
$sqlPart = explode("CREATE",$sqlParts[0]);
|
$sqlPart = split("CREATE",$sqlParts[0]);
|
||||||
$sql = "CREATE ".$sqlPart[1].";";
|
$sql = "CREATE ".$sqlPart[1].";";
|
||||||
|
|
||||||
//execute sql
|
//execute sql
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright 2008-2018 Clipperz Srl
|
# Copyright 2008-2015 Clipperz Srl
|
||||||
#
|
#
|
||||||
# This file is part of Clipperz, the online password manager.
|
# This file is part of Clipperz, the online password manager.
|
||||||
# For further information about its features and functionalities please
|
# For further information about its features and functionalities please
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
<script>
|
<script>
|
||||||
Clipperz_IEisBroken = false;
|
Clipperz_IEisBroken = false;
|
||||||
Clipperz_normalizedNewLine = '\n';
|
Clipperz_normalizedNewLine = '\n';
|
||||||
Clipperz_dumpUrl = "@dump.path@beta";
|
Clipperz_dumpUrl = "@dump.path@/beta";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!--[if IE]><script>
|
<!--[if IE]><script>
|
||||||
|
@ -354,8 +354,7 @@ Clipperz.PM.Proxy.Offline.DataStore.prototype = MochiKit.Base.update(null, {
|
|||||||
this.set_C(someParameters.parameters.C);
|
this.set_C(someParameters.parameters.C);
|
||||||
this.set_b(new Clipperz.Crypto.BigInt(randomBytes, 16));
|
this.set_b(new Clipperz.Crypto.BigInt(randomBytes, 16));
|
||||||
v = new Clipperz.Crypto.BigInt(this.userData()['v'], 16);
|
v = new Clipperz.Crypto.BigInt(this.userData()['v'], 16);
|
||||||
//this.set_B((Clipperz.Crypto.SRP.k().multiply(v)).add(Clipperz.Crypto.SRP.g().powerModule(this.b(), Clipperz.Crypto.SRP.n())));
|
this.set_B((Clipperz.Crypto.SRP.k().multiply(v)).add(Clipperz.Crypto.SRP.g().powerModule(this.b(), Clipperz.Crypto.SRP.n())));
|
||||||
this.set_B((Clipperz.Crypto.SRP.k().multiply(v)).add(Clipperz.Crypto.SRP.g().powerModule(this.b(), Clipperz.Crypto.SRP.n())).module(Clipperz.Crypto.SRP.n()));
|
|
||||||
|
|
||||||
this.set_A(someParameters.parameters.A);
|
this.set_A(someParameters.parameters.A);
|
||||||
|
|
||||||
@ -364,7 +363,7 @@ Clipperz.PM.Proxy.Offline.DataStore.prototype = MochiKit.Base.update(null, {
|
|||||||
|
|
||||||
nextTollRequestType = 'CONNECT';
|
nextTollRequestType = 'CONNECT';
|
||||||
} else if (someParameters.message == "credentialCheck") {
|
} else if (someParameters.message == "credentialCheck") {
|
||||||
var v, u, s, S, A, K, M1, KK;
|
var v, u, s, S, A, K, M1;
|
||||||
var stringHash = function (aValue) {
|
var stringHash = function (aValue) {
|
||||||
return Clipperz.PM.Crypto.encryptingFunctions.versions[someParameters.version].hash(new Clipperz.ByteArray(aValue)).toHexString().substring(2);
|
return Clipperz.PM.Crypto.encryptingFunctions.versions[someParameters.version].hash(new Clipperz.ByteArray(aValue)).toHexString().substring(2);
|
||||||
};
|
};
|
||||||
@ -374,11 +373,9 @@ Clipperz.PM.Proxy.Offline.DataStore.prototype = MochiKit.Base.update(null, {
|
|||||||
A = new Clipperz.Crypto.BigInt(this.A(), 16);
|
A = new Clipperz.Crypto.BigInt(this.A(), 16);
|
||||||
u = new Clipperz.Crypto.BigInt(Clipperz.PM.Crypto.encryptingFunctions.versions[someParameters.version].hash(new Clipperz.ByteArray(A.asString(10) + this.B().asString(10))).toHexString(), 16);
|
u = new Clipperz.Crypto.BigInt(Clipperz.PM.Crypto.encryptingFunctions.versions[someParameters.version].hash(new Clipperz.ByteArray(A.asString(10) + this.B().asString(10))).toHexString(), 16);
|
||||||
s = new Clipperz.Crypto.BigInt(this.userData()['s'], 16);
|
s = new Clipperz.Crypto.BigInt(this.userData()['s'], 16);
|
||||||
//S = (A.multiply(v.powerModule(u, Clipperz.Crypto.SRP.n()))).powerModule(this.b(), Clipperz.Crypto.SRP.n());
|
S = (A.multiply(v.powerModule(u, Clipperz.Crypto.SRP.n()))).powerModule(this.b(), Clipperz.Crypto.SRP.n());
|
||||||
S = v.powerModule(u, Clipperz.Crypto.SRP.n()).multiply(A).module(Clipperz.Crypto.SRP.n()).powerModule(this.b(), Clipperz.Crypto.SRP.n())
|
|
||||||
|
|
||||||
K = stringHash(S.asString(10));
|
K = stringHash(S.asString(10));
|
||||||
KK = new Clipperz.Crypto.BigInt(K,16);
|
|
||||||
|
|
||||||
M1 = stringHash(
|
M1 = stringHash(
|
||||||
"597626870978286801440197562148588907434001483655788865609375806439877501869636875571920406529" +
|
"597626870978286801440197562148588907434001483655788865609375806439877501869636875571920406529" +
|
||||||
@ -386,7 +383,7 @@ Clipperz.PM.Proxy.Offline.DataStore.prototype = MochiKit.Base.update(null, {
|
|||||||
s.asString(10) +
|
s.asString(10) +
|
||||||
A.asString(10) +
|
A.asString(10) +
|
||||||
this.B().asString(10) +
|
this.B().asString(10) +
|
||||||
KK.asString(10)
|
K
|
||||||
);
|
);
|
||||||
if (someParameters.parameters.M1 == M1) {
|
if (someParameters.parameters.M1 == M1) {
|
||||||
var M2;
|
var M2;
|
||||||
|
@ -4,7 +4,7 @@ Copyright 2008-2015 Clipperz Srl
|
|||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
refer to http://www.clipperz.is.
|
refer to http://www.clipperz.com.
|
||||||
|
|
||||||
* Clipperz is free software: you can redistribute it and/or modify it
|
* Clipperz is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU Affero General Public License as published
|
under the terms of the GNU Affero General Public License as published
|
||||||
@ -22,7 +22,7 @@ refer to http://www.clipperz.is.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipperz.PM.Strings.Languages['en-us'], {
|
Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipperz.PM.Strings.Languages['en-us'], {
|
||||||
'clipperzServiceDescription': "<h2>Gardez le pour vous!</h2> <ul> <li> <h3>Clipperz est:</h3> <ul> <li> <p>un gestionnaire de mots de passe sécurisé</p> </li> <li> <p>une solution fiable d’authentification unique</p> </li> <li> <p>une chambre forte numérique pour vos données confidentielles</p> </li> </ul> </li> <li> <h3>Avec Clipperz vous pouvez:</h3> <ul> <li> <p>enregistrer et gérer vos mots de passe et autres informations d'identification en ligne</p> </li> <li> <p>vous identifier sur vos sites web sans avoir besoin de saisir votre nom d’utilisateur ou votre mot de passe</p> </li> <li> <p>protéger toutes vos données sensibles: codes d’alarmes, PINs (téléphone portable), cartes de crédit, …</p> </li> <li> <p>partager certaines données confidentielles avec vos proches et vos associés (bientôt disponible!)</p> </li> </ul> </li> <li> <h3>Les avantages de Clipperz:</h3> <ul> <li> <p>c'est gratuit et totalement anonyme</p> </li> <li> <p>accéder à vos données depuis n’importe quel ordinateur</p> </li> <li> <p>vous n'avez besoin d'aucun logiciel et rien n'est à installer sur votre poste</p> </li> <li> <p>cela vous évite de garder des mots de passe sur votre PC ou sur des bouts de papier</p> </li> </ul> </li> <li> <h3>La sécurité de Clipperz:</h3> <ul> <li> <p>vos mots de passe sont localement chiffrés par votre navigateur avant d’être téléchargé à Clipperz</p> </li> <li> <p>la clé de chiffrement est une phrase secrète détenue uniquement par vous même</p> </li> <li> <p>héberge vos données sensibles dans des formulaires chiffrés et ne peuvent être consultées directement en clair</p> </li> <li> <p>est développé sur des standard de chiffrement réputés, sans aucune fantaisie ni de bricolage fait maison</p> </li> <li> <p>vous pouvez consulter le code source autant que vous le souhaitez</p> </li> </ul> </li> <li> <a href=\"http://www.clipperz.is\" target=\"_blank\">Plus d’informations</a> </li> </ul> ",
|
'clipperzServiceDescription': "<h2>Gardez le pour vous!</h2> <ul> <li> <h3>Clipperz est:</h3> <ul> <li> <p>un gestionnaire de mots de passe sécurisé</p> </li> <li> <p>une solution fiable d’authentification unique</p> </li> <li> <p>une chambre forte numérique pour vos données confidentielles</p> </li> </ul> </li> <li> <h3>Avec Clipperz vous pouvez:</h3> <ul> <li> <p>enregistrer et gérer vos mots de passe et autres informations d'identification en ligne</p> </li> <li> <p>vous identifier sur vos sites web sans avoir besoin de saisir votre nom d’utilisateur ou votre mot de passe</p> </li> <li> <p>protéger toutes vos données sensibles: codes d’alarmes, PINs (téléphone portable), carte de crédits, …</p> </li> <li> <p>partager certaines données confidentielles avec vos proches et vos associés (bientôt disponible!)</p> </li> </ul> </li> <li> <h3>Les avantages de Clipperz:</h3> <ul> <li> <p>c'est gratuit et totalement anonyme</p> </li> <li> <p>accéder à vos données depuis n’importe quel ordinateur</p> </li> <li> <p>vous n'avez besoin d'aucun logiciel et rien n'est à installer sur votre poste</p> </li> <li> <p>cela vous évite de garder des mots de passe sur votre PC ou sur des bouts de papier</p> </li> </ul> </li> <li> <h3>La sécurité de Clipperz:</h3> <ul> <li> <p>vos mots de passe sont localement chiffrés par votre navigateur avant d’être téléchargé à Clipperz</p> </li> <li> <p>la clé de cryptage est une phrase secrète détenue uniquement par vous même</p> </li> <li> <p>héberge vos données sensibles dans des formulaires cryptés et ne peuvent être consultées directement en clair</p> </li> <li> <p>est développé sur des standard de cryptage réputé sans aucune fantaisie ni de bricolage fait maison</p> </li> <li> <p>vous pouvez consulter le code source autant que vous le souhaitez</p> </li> </ul> </li> <li> <a href=\"http://www.clipperz.com\" target=\"_blank\">Plus d’informations</a> </li> </ul> ",
|
||||||
'loginFormTitle': "identifiez-vous avec votre compte Clipperz",
|
'loginFormTitle': "identifiez-vous avec votre compte Clipperz",
|
||||||
'loginFormUsernameLabel': "nom d’utilisateur",
|
'loginFormUsernameLabel': "nom d’utilisateur",
|
||||||
'loginFormPassphraseLabel': "phrase secrète",
|
'loginFormPassphraseLabel': "phrase secrète",
|
||||||
@ -33,8 +33,8 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
|||||||
'loginFormAfraidOfMaliciousScriptsLabel': "vous avez peur des script malicieux?",
|
'loginFormAfraidOfMaliciousScriptsLabel': "vous avez peur des script malicieux?",
|
||||||
'loginFormVerifyTheCodeLabel': "vérifiez le code",
|
'loginFormVerifyTheCodeLabel': "vérifiez le code",
|
||||||
'loginFormButtonLabel': "S’identifer",
|
'loginFormButtonLabel': "S’identifer",
|
||||||
'loginPanelSwithLanguageDescription': "<p>Sélectionnez votre langue préférée</p> ",
|
'loginPanelSwithLanguageDescription': "<p>Sélectionnez votre langue préféré</p> ",
|
||||||
'browserCompatibilityDescription': "<p>Pour une utilisation optimale de Clipperz nous vous conseillons Firefox. Toutefois Clipperz fonctionne aussi bien avec Opera et MS Internet Explorer !</p> ",
|
'browserCompatibilityDescription': "<p>Have a better and safer Clipperz experience with Firefox. However Clipperz works just fine also with Opera and MS Internet Explorer!</p> ",
|
||||||
'loginMessagePanelInitialTitle': "En cours d’identification ...",
|
'loginMessagePanelInitialTitle': "En cours d’identification ...",
|
||||||
'loginMessagePanelInitialButtonLabel': "Annuler",
|
'loginMessagePanelInitialButtonLabel': "Annuler",
|
||||||
'loginMessagePanelConnectedTitle': "Connecté",
|
'loginMessagePanelConnectedTitle': "Connecté",
|
||||||
@ -57,18 +57,18 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
|||||||
'userLoginPanelLoadingUserDataMessageTitle': "Utilisateur identifié",
|
'userLoginPanelLoadingUserDataMessageTitle': "Utilisateur identifié",
|
||||||
'userLoginPanelLoadingUserDataMessageText': "Téléchargement des cartes d’en-têtes chiffrés depuis Clipperz",
|
'userLoginPanelLoadingUserDataMessageText': "Téléchargement des cartes d’en-têtes chiffrés depuis Clipperz",
|
||||||
'userLoginPanelDecryptingUserDataMessageTitle': "Utilisateur identifié",
|
'userLoginPanelDecryptingUserDataMessageTitle': "Utilisateur identifié",
|
||||||
'userLoginPanelDecryptingUserDataMessageText': "Déchiffrement local des en-têtes chiffrés",
|
'userLoginPanelDecryptingUserDataMessageText': "Décryptage local des en-têtes chiffrés",
|
||||||
'userLoginPanelDecryptingUserStatisticsMessageTitle': "Utilisateur identifié",
|
'userLoginPanelDecryptingUserStatisticsMessageTitle': "Utilisateur identifié",
|
||||||
'userLoginPanelDecryptingUserStatisticsMessageText': "Déchiffrement local des statistiques",
|
'userLoginPanelDecryptingUserStatisticsMessageText': "Décryptage local des statistiques",
|
||||||
'splashAlertTitle': "Bienvenue sur Clipperz!",
|
'splashAlertTitle': "Bienvenue sur Clipperz!",
|
||||||
'splashAlertText': "<p>Conseils de sécurité</p> <ul> <li> <p>Le stockage de vos mots de passe sur Clipperz est aussi sécurisé que la phrase que vous avez sélectionnée pour les protéger. Personne ne peux y accéder tant que personne ne connait votre phrase secrète.</p> </li> <li> <p>Si vous allez utiliser Clipperz pour sauvegarder des informations sensibles et critiques assurez-vous d’utiliser une phrase secrète compliquée. Plus elle sera longue mieux ce sera !</p> </li> <li> <p>Clipperz ne sera pas capable de récupérer votre phrase secrète!</p> </li> </ul> <p>Pour toute autre information, veuillez vous référer au site <a href=\"http://www.clipperz.is\" target=\"_blank\">Clipperz</a>.</p> ",
|
'splashAlertText': "<p>Conseils de sécurité</p> <ul> <li> <p>Le stockage de vos mots de passe sur Clipperz est aussi sécurisé que la phrase que vous avez sélectionnée pour les protéger. Personne ne peux y accéder tant que personne ne connait votre phrase secrète.</p> </li> <li> <p>Si vous allez utiliser Clipperz pour sauvegarder des informations sensibles et critiques assurez-vous d’utiliser une phrase secrète compliquée. Plus elle sera longue mieux ce sera!</p> </li> <li> <p>Clipperz ne sera pas capable de récupérer votre phrase secrète!</p> </li> </ul> <p>Pour toute autre information, veuillez vous référer au site <a href=\"http://www.clipperz.com\" target=\"_blank\">Clipperz</a>.</p> ",
|
||||||
'splashAlertCloseButtonLabel': "Ok",
|
'splashAlertCloseButtonLabel': "Ok",
|
||||||
'registrationFormTitle': "créer votre compte",
|
'registrationFormTitle': "créer votre compte",
|
||||||
'registrationFormUsernameLabel': "nom d’utilisateur",
|
'registrationFormUsernameLabel': "nom d’utilisateur",
|
||||||
'registrationFormPassphraseLabel': "phrase secrète",
|
'registrationFormPassphraseLabel': "phrase secrète",
|
||||||
'registrationFormRetypePassphraseLabel': "re-saisissez votre phrase secrète",
|
'registrationFormRetypePassphraseLabel': "re-saisissez votre phrase secrète",
|
||||||
'registrationFormSafetyCheckLabel': "J’accepte que Clipperz ne pourra pas récupérer ma phrase secrète.",
|
'registrationFormSafetyCheckLabel': "J’accepte que Clipperz ne pourra pas récupérer ma phrase secrète.",
|
||||||
'registrationFormTermsOfServiceCheckLabel': "J’ai lu et j’accepte les <a href='https://www.clipperz.is/terms_service' target='_blank'>Conditions d’Utilisation du Service</a>.",
|
'registrationFormTermsOfServiceCheckLabel': "J’ai lu et j’accepte les <a href='https://www.clipperz.com/terms_service' target='_blank'>Conditions d’Utilisation du Service</a>.",
|
||||||
'registrationFormDoYouAlreadyHaveAnAccountLabel': "avez-vous déjà un compte?",
|
'registrationFormDoYouAlreadyHaveAnAccountLabel': "avez-vous déjà un compte?",
|
||||||
'registrationFormSimplyLoginLabel': "identifiez-vous",
|
'registrationFormSimplyLoginLabel': "identifiez-vous",
|
||||||
'registrationFormButtonLabel': "S’inscrire",
|
'registrationFormButtonLabel': "S’inscrire",
|
||||||
@ -125,12 +125,12 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
|||||||
'changeCredentialsPanelCreatingNewCredentialsMessageTitle': "Modifier votre phrase secrète",
|
'changeCredentialsPanelCreatingNewCredentialsMessageTitle': "Modifier votre phrase secrète",
|
||||||
'changeCredentialsPanelCreatingNewCredentialsMessageText': "Mettre à jour vos identifiants",
|
'changeCredentialsPanelCreatingNewCredentialsMessageText': "Mettre à jour vos identifiants",
|
||||||
'changeCredentialsPanelSendingNewCredentialsToTheServerMessageTitle': "Modifier votre phrase secrète",
|
'changeCredentialsPanelSendingNewCredentialsToTheServerMessageTitle': "Modifier votre phrase secrète",
|
||||||
'changeCredentialsPanelSendingNewCredentialsToTheServerMessageText': "Téléchargement de vos identifiants sur Clipperz.is",
|
'changeCredentialsPanelSendingNewCredentialsToTheServerMessageText': "Téléchargement de vos identifiants sur Clipperz.com",
|
||||||
'changeCredentialsPanelDoneMessageTitle': "Modifier votre phrase secrète",
|
'changeCredentialsPanelDoneMessageTitle': "Modifier votre phrase secrète",
|
||||||
'changeCredentialsPanelDoneMessageText': "Terminé",
|
'changeCredentialsPanelDoneMessageText': "Terminé",
|
||||||
'manageOTPTabLabel': "Mettre à jour votre phrase secrète à usage unique",
|
'manageOTPTabLabel': "Mettre à jour votre phrase secrète à usage unique",
|
||||||
'manageOTPTabTitle': "Mettre à jour votre phrase secrète à usage unique",
|
'manageOTPTabTitle': "Mettre à jour votre phrase secrète à usage unique",
|
||||||
'manageOTPTabDescription': "<p>Une phrase secrète à usage unique fonctionne comme votre phrase secrète habituelle, mais elle ne peut être utilisée qu'une seule fois.</p> <p>Si la phrase secrète est utilisée de nouveau et que vous tentez de vous identifier à nouveau, vous serez rejeté et le processus d'identification échouera.</p> <p>Juste après une identification correcte, votre phrase secrète à usage unique sera effacée pour interdire tout accès frauduleux.</p> <p>Les phrases secrètes à usage unique sont un excellent choix si vous craignez qu'un logiciel espion ne vole vos données après avoir infecté votre machine.</p> <p> <b>Il est fortement recommandé d'utiliser des phrases secrètes à usage unique lorsque vous accédez à Clipperz depuis un terminal public, comme un cybercafé ou une borne Internet.</b> </p> ",
|
'manageOTPTabDescription': "<p>Une phrase secrète à usage unique fonctionne comme votre phrase secrète habituelle, mais elle ne peut être utilisé qu'une seule fois.</p> <p>Si la phrase secrète est utilisé de nouveau et que vous tenté de vous identifier à nouveau, vous serez rejeté et le processus d'identification échouera.</p> <p>Juste après une identification correcte, votre phrase secrète à usage unique sera effacée pour interdire tout accès frauduleux.</p> <p>Les phrases secrètes à usage unique sont un excellent choix si vous craignez qu'un logiciel espion ne vole vos données après avoir infecté votre machine.</p> <p> <b>Il est fortement recommandé d'utiliser des phrases secrètes à usage unique lorsque vous accédez à Clipperz depuis un terminal public, comme un cybercafé ou une borne Internet.</b> </p> ",
|
||||||
'accountPreferencesLabel': "Préférences",
|
'accountPreferencesLabel': "Préférences",
|
||||||
'accountPreferencesTabTitle': "Préférences",
|
'accountPreferencesTabTitle': "Préférences",
|
||||||
'accountPreferencesLanguageTitle': "Choix de la langue",
|
'accountPreferencesLanguageTitle': "Choix de la langue",
|
||||||
@ -147,10 +147,10 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
|||||||
'deleteAccountTabTitle': "Supprimer votre compte",
|
'deleteAccountTabTitle': "Supprimer votre compte",
|
||||||
'deleteAccountFormUsernameLabel': "nom d’utilisateur",
|
'deleteAccountFormUsernameLabel': "nom d’utilisateur",
|
||||||
'deleteAccountFormPassphraseLabel': "phrase secrète",
|
'deleteAccountFormPassphraseLabel': "phrase secrète",
|
||||||
'deleteAccountFormSafetyCheckboxLabel': "Je sais que toute mes données seront supprimées et que cette action sera irréversible.",
|
'deleteAccountFormSafetyCheckboxLabel': "Je sais que toute mes données seront supprimés et que cette action sera irréversible.",
|
||||||
'deleteAccountFormSubmitLabel': "Supprimer mon compte",
|
'deleteAccountFormSubmitLabel': "Supprimer mon compte",
|
||||||
'deleteAccountFormWrongUsernameWarning': "Nom d’utilisateur incorrect",
|
'deleteAccountFormWrongUsernameWarning': "Nom d’utilisateur incorrect",
|
||||||
'deleteAccountFormWrongPassphraseWarning': "Phrase secrète incorrecte",
|
'deleteAccountFormWrongPassphraseWarning': "Phrase secrète incorrect",
|
||||||
'deleteAccountFormSafetyCheckWarning': "Veuillez lire et cocher la case-à-cocher ci-dessous.",
|
'deleteAccountFormSafetyCheckWarning': "Veuillez lire et cocher la case-à-cocher ci-dessous.",
|
||||||
'accountPanelDeletingAccountPanelConfirmationTitle': "ATTENTION",
|
'accountPanelDeletingAccountPanelConfirmationTitle': "ATTENTION",
|
||||||
'accountPanelDeleteAccountPanelConfirmationText': "Êtes-vous sûr de vouloir supprimer ce compte?",
|
'accountPanelDeleteAccountPanelConfirmationText': "Êtes-vous sûr de vouloir supprimer ce compte?",
|
||||||
@ -158,7 +158,7 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
|||||||
'accountPanelDeleteAccountPanelDenyButtonLabel': "Non",
|
'accountPanelDeleteAccountPanelDenyButtonLabel': "Non",
|
||||||
'offlineCopyTabLabel': "Copie locale",
|
'offlineCopyTabLabel': "Copie locale",
|
||||||
'offlineCopyTabTitle': "Copie locale",
|
'offlineCopyTabTitle': "Copie locale",
|
||||||
'offlineCopyTabDescription': "<p>D'un seul clic, vous pouvez télécharger toutes vos données chiffrées des serveurs Clipperz sur votre disque dur, créant ainsi une version déconnectée de Clipperz utilisable lorsque vous n'êtes pas connecté à Internet.</p> <p>Cette version en lecture seule est aussi sécurisée que la version en lecture-écriture, et n'expose pas vos données à un risque plus élevé. Elles partagent en effet le même code et la même architecture de sécurité.</p> <ol> <li> <p>Cliquez sur le liens ci-dessous pour lancer le téléchargement.</p> </li> <li> <p>Votre navigateur vous demandera que faire du fichier “Clipperz_YYYYMMDD.html”. Sauvez le sur votre disque dur.</p> </li> <li> <p>Puis double-cliquez sur le fichier téléchargé pour lancer la version déconnectée dans votre navigateur.</p> </li> <li> <p>Utilisez vos nom d’utilisateur et phrase secrète habituels.</p> </li> </ol> ",
|
'offlineCopyTabDescription': "<p>D'un seul click, vous pouvez télécharger toutes vos données chiffrées des serveurs Clipperz sur votre disque dur, créant ainsi une version déconnecté de Clipperz utilisable lorsque vous n'êtes pas connectés à Internet.</p> <p>Cette version en lecture seule est aussi sécurisée que la version en lecture-écriture, et n'expose pas vos données à un risque plus élevé. Elles partagent en effet le même code et la même architecture de sécurité.</p> <ol> <li> <p>Cliquez sur le liens ci-dessous pour lancer le téléchargement.</p> </li> <li> <p>Votre navigateur vous demandera que faire du fichier “Clipperz_YYYYMMDD.html”. Sauvez le sur votre disque dur.</p> </li> <li> <p>Puis double-cliquez sur le fichier téléchargé pour lancer la version déconnectée dans votre navigateur.</p> </li> <li> <p>Utilisez vos nom d’utilisateur et phrase secrète habituels.</p> </li> </ol> ",
|
||||||
'offlineCopyDownloadLinkLabel': "Télécharger",
|
'offlineCopyDownloadLinkLabel': "Télécharger",
|
||||||
'sharingTabLabel': "Partager",
|
'sharingTabLabel': "Partager",
|
||||||
'sharingTabTitle': "Partager",
|
'sharingTabTitle': "Partager",
|
||||||
@ -168,7 +168,7 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
|||||||
'importTabDescription': "<p> <b>Prochainement disponible ...</b> </p> ",
|
'importTabDescription': "<p> <b>Prochainement disponible ...</b> </p> ",
|
||||||
'printingTabLabel': "Exporter",
|
'printingTabLabel': "Exporter",
|
||||||
'printingTabTitle': "Exporter",
|
'printingTabTitle': "Exporter",
|
||||||
'printingTabDescription': "<p> <b>Version d’impression</b> </p> <p>En cliquant sur ce bouton vous ouvrirez une fenêtre contenant vos en-têtes chiffrés dans un format d’impression.</p> <p>Si vous imprimez pour des raisons de sauvegarde personnelle, veuillez vous tourner vers une solution plus sécurisé comme la version “Copie locale”.</p> ",
|
'printingTabDescription': "<p> <b>Version d’impression</b> </p> <p>En cliquant sur ce bouton vous ouvrirez une fenêtre contenant vos en-têtes cryptés dans un format d’impression.</p> <p>Si vous imprimez pour des raisons de sauvegarde personnel, veuillez vous tourner vers une solution plus sécurisé comme la version “Copie locale”.</p> ",
|
||||||
'printingLinkLabel': "Version imprimable",
|
'printingLinkLabel': "Version imprimable",
|
||||||
'contactsTabLabel': "Contacts",
|
'contactsTabLabel': "Contacts",
|
||||||
'contactsTabTitle': "Contacts",
|
'contactsTabTitle': "Contacts",
|
||||||
@ -178,12 +178,12 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
|||||||
'bookmarkletTabTitle': "Bookmarklet",
|
'bookmarkletTabTitle': "Bookmarklet",
|
||||||
'paswordGeneratorTabDescription': "<p> </p> ",
|
'paswordGeneratorTabDescription': "<p> </p> ",
|
||||||
'passwordGeneratorTabButtonLabel': " Générer un mot de passe",
|
'passwordGeneratorTabButtonLabel': " Générer un mot de passe",
|
||||||
'bookmarkletTabDescription': "<p>Un bookmarklet est un outil “clic unique” simple qui peut exécuter des tâches très utiles. Il peut être sauvegardé et utilisé comme un signet de page Web normal.</p> <p>Le bookmarklet Clipperz vous aidera à rapidement créer de nouvelles cartes et des nouveaux “accès directs” avec vos cartes existantes.</p> <p> <b>Notez s’il vous plaît que le bookmarklet n’inclut pas d’informations liées à votre compte (par exemple votre nom d’utilisateur ou votre phrase secrète), le bookmarklet est un outil général contenant le même code pour chaque utilisateur Clipperz.</b> </p> <div> <p>Pour installer le bookmarklet <b>glissez & déposez</b> le lien ci-dessous dans votre barre de navigation.</p> </div> ",
|
'bookmarkletTabDescription': "<p>Un bookmarklet est un outil “clique unique” simple qui peut exécuter des tâches très utiles. Il peut être sauvegardé et utilisé comme un signet de page Web normal.</p> <p>Le bookmarklet Clipperz vous aidera à rapidement créer de nouvelles cartes et des nouveaux “accès directs” avec vos cartes existantes.</p> <p> <b>Notez s’il vous plaît que le bookmarklet n’inclut pas d’informations liées à votre compte (par exemple votre nom d’utilisateur ou votre phrase secrète), le bookmarklet est un outil général contenant le même code pour chaque utilisateur Clipperz.</b> </p> <div> <p>Pour installer le bookmarklet <b>glissez & déposez</b> le lien ci-dessous dans votre bar de navigation.</p> </div> ",
|
||||||
'bookmarkletTabBookmarkletTitle': "Ajouter à Clipperz",
|
'bookmarkletTabBookmarkletTitle': "Ajouter à Clipperz",
|
||||||
'bookmarkletTabInstructions': "<h3>Comment créer une carte comprenant un lien de “accès direct” à un service en ligne</h3> <ol> <li> <p>Ouvrir la page Web où le site affiche un formulaire d’identification. (C’est la page où vous entrez d’habitude vos informations d'identification)</p> </li> <li> <p>Lancer le bookmarklet en cliquant dessus : une fenêtre contextuelle apparait alors sur la page Web.</p> </li> <li> <p>Copier dans le presse-papiers le contenu du grand secteur de texte dans le menu contextuel. (Ctrl-C)</p> </li> <li> <p>Entrer dans votre compte Clipperz et cliquer sur <b>“Ajouter une nouvelle carte”</b>.</p> </li> <li> <p>Coller le presse-papiers dans la zone de texte et rajouter un titre (facultatif). (Ctrl-V)</p> </li> <li> <p>Cliquer sur le bouton <b>“Créer”</b>, repassez en revu les détails et cliquer <b>“Sauver”</b>. De plus amples informations sont disponibles <a href=\"http://www.clipperz.is/support/user_guide/bookmarklet\" target=\"_blank\">ici</a>.</p> </li> </ol> <h3>Comment ajouter un lien de “accès direct” à une carte existante</h3> <ol> <li> <p>Idem que précédemment.</p> </li> <li> <p>Idem que précédemment..</p> </li> <li> <p>Idem que précédemment.</p> </li> <li> <p>Entrer dans votre compte Clipperz et sélectionner la carte chiffrée qui contient les identifiants pour le service web que vous venez tout juste de visiter et cliquer sur <b>“Modifier”</b>.</p> </li> <li> <p>Coller le presse-papier dans la zone de texte <b>“Accès directs”</b>. (ctrl-V)</p> </li> <li> <p>Cliquer sur <b>“Ajouter un accès direct”</b>, repassez en revu les détails et cliquer <b>“Sauver”</b>.</p> </li> </ol> ",
|
'bookmarkletTabInstructions': "<h3>Comment créer une carte comprenant un lien de “accès direct” à un service en ligne</h3> <ol> <li> <p>Ouvrir la page Web où le site affiche un formulaire d’identification. (C’est la page où vous entrez d’habitude vos informations d'identification)</p> </li> <li> <p>Lancer le bookmarklet en cliquant dessus : une fenêtre contextuelle apparait alors sur la page Web.</p> </li> <li> <p>Copier dans le presse-papiers le contenu du grand secteur de texte dans le menu contextuel. (Ctrl-C)</p> </li> <li> <p>Entrer dans votre compte Clipperz et cliquer sur <b>“Ajouter une nouvelle carte”</b>.</p> </li> <li> <p>Coller le presse-papiers dans la zone de texte et rajouter un titre (facultatif). (Ctrl-V)</p> </li> <li> <p>Cliquer sur le bouton <b>“Créer”</b>, repassez en revu les détails et cliquer <b>“Sauver”</b>. De plus amples informations sont disponibles <a href=\"http://www.clipperz.com/support/user_guide/bookmarklet\" target=\"_blank\">ici</a>.</p> </li> </ol> <h3>Comment ajouter un lien de “accès direct” à une carte existante</h3> <ol> <li> <p>Idem que précédemment.</p> </li> <li> <p>Idem que précédemment..</p> </li> <li> <p>Idem que précédemment.</p> </li> <li> <p>Entrer dans votre compte Clipperz et sélectionner la carte crypté qui contient les identifiants pour le service web que vous venez tout juste de visiter et cliquer sur <b>“Modifier”</b>.</p> </li> <li> <p>Coller le presse-papier dans la zone de texte <b>“Accès directs”</b>. (ctrl-V)</p> </li> <li> <p>Cliquer sur <b>“Ajouter un accès direct”</b>, repassez en revu les détails et cliquer <b>“Sauver”</b>.</p> </li> </ol> ",
|
||||||
'mainPanelDirectLoginBlockLabel': "Accès directs",
|
'mainPanelDirectLoginBlockLabel': "Accès directs",
|
||||||
'directLinkReferenceShowButtonLabel': "voir",
|
'directLinkReferenceShowButtonLabel': "voir",
|
||||||
'mainPanelDirectLoginBlockDescription': "<p>Ajouter une “accès direct” pour vous identifier sans avoir besoin de taper vos identifiants de connexions!</p> <p>Les “accès directs” augmentent considérablement la sécurité de vos mots passes dans la mesure où vous pouvez :</p> <ul> <li> <p>adopter et saisir des mots de passe complexes;</p> </li> <li> <p>ne pas réutiliser le même mot de passe et ne plus utiliser de mots de passe facile à deviner.</p> </li> </ul> <p>Simple et rapide à configurer avec le <b>bookmarklet</b> Clipperz.</p> <a href=\"http://www.clipperz.is/support/user_guide/direct_logins\" target=\"_blank\">Pour en savoir plus sur les “accès directs”</a> ",
|
'mainPanelDirectLoginBlockDescription': "<p>Ajouter une “accès direct” pour vous identifier sans avoir besoin de taper vos identifiants de connexions!</p> <p>Les “accès directs” augmente considérablement la sécurité de vos mots passes dans la mesure où vous pouvez:</p> <ul> <li> <p>adopter et saisir des mots de passe complexes;</p> </li> <li> <p>ne réutilisez le même mot de passe et ne mettez plus de mots de passe facile à deviner.</p> </li> </ul> <p>Simple et rapide à configurer avec le Clipperz <b>bookmarklet</b>.</p> <a href=\"http://www.clipperz.com/support/user_guide/direct_logins\" target=\"_blank\">Pour en savoir plus sur les “accès directs”</a> ",
|
||||||
'mainPanelRecordsBlockLabel': "Cartes",
|
'mainPanelRecordsBlockLabel': "Cartes",
|
||||||
'mainPanelAddRecordButtonLabel': "Ajouter une nouvelle carte",
|
'mainPanelAddRecordButtonLabel': "Ajouter une nouvelle carte",
|
||||||
'mainPanelRemoveRecordButtonLabel': "Supprimer une carte",
|
'mainPanelRemoveRecordButtonLabel': "Supprimer une carte",
|
||||||
@ -191,7 +191,7 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
|||||||
'mainPanelRecordFilterBlockTagsLabel': "tags",
|
'mainPanelRecordFilterBlockTagsLabel': "tags",
|
||||||
'mainPanelRecordFilterBlockSearchLabel': "chercher",
|
'mainPanelRecordFilterBlockSearchLabel': "chercher",
|
||||||
'recordDetailNoRecordAtAllTitle': "Bienvenue sur Clipperz!",
|
'recordDetailNoRecordAtAllTitle': "Bienvenue sur Clipperz!",
|
||||||
'recordDetailNoRecordAtAllDescription': "<h5>Commencez par ajouter des cartes à votre compte.</h5> <p>Les cartes sont des formulaires flexibles ou vous pouvez enregistrer vos mots de passe et autres informations confidentielles.</p> <p>Par exemple, une carte peut contenir les informations d'identification pour un site web, la combinaison de votre antivol de bicyclette, les détails de votre carte bancaire, ...</p> <h5>N'oubliez pas le bookmarklet !</h5> <p>Avant de commencer, installez le bookmarklet “Ajouter à Clipperz”: il rend la création de carte plus facile et amusante.</p> <p>Allez à l'onglet “outils” pour découvrir comment l'installer et l'utiliser.</p> <p> </p> <p>Ensuite, cliquez tout simplement sur le bouton “Ajouter une nouvelle carte” et profitez de votre compte Clipperz.</p> <p> </p> <a href=\"http://www.clipperz.is/support/user_guide/managing_cards\" target=\"_blank\">En savoir plus sur la création et la gestion des cartes.</a> ",
|
'recordDetailNoRecordAtAllDescription': "<h5>Commencez par ajouter des cartes à votre compte.</h5> <p>Les cartes sont des formulaires flexibles ou vous pouvez enregistrer vos mots de passe et autres informations confidentielles.</p> <p>Par exemple, une carte peut contenir les informations d\"identification pour un site web, la combinaison de votre antivol de bicyclette, les détails de votre carte bancaire, ...</p> <h5>N'oubliez pas le bookmarklet!</h5> <p>Avant de commencer, installez le bookmarklet “Ajouter à Clipperz”: il rends la création de carte plus facile et amusante.</p> <p>Allez à l'onglet “outils” pour découvrir comment l'installer et l'utiliser.</p> <p> </p> <p>Ensuite, cliquez tout simplement sur le bouton “Ajouter une nouvelle carte” et profitez de votre compte Clipperz.</p> <p> </p> <a href=\"http://www.clipperz.com/support/user_guide/managing_cards\" target=\"_blank\">En savoir plus sur la création et la gestion des cartes.</a> ",
|
||||||
'newRecordWizardTitleBox': "<h5>Choisissez un modèle</h5> <p>Les cartes sont des formulaires flexibles ou vous pouvez enregistrer vos mots de passe et autres informations confidentielles.</p> <p>Commencez par choisir un des modèles ci-dessous. Vous pourrez toujours adapter vos cartes plus tard en ajoutant ou supprimant des champs.</p> ",
|
'newRecordWizardTitleBox': "<h5>Choisissez un modèle</h5> <p>Les cartes sont des formulaires flexibles ou vous pouvez enregistrer vos mots de passe et autres informations confidentielles.</p> <p>Commencez par choisir un des modèles ci-dessous. Vous pourrez toujours adapter vos cartes plus tard en ajoutant ou supprimant des champs.</p> ",
|
||||||
'newRecordWizardBookmarkletConfigurationTitle': "Accès directs",
|
'newRecordWizardBookmarkletConfigurationTitle': "Accès directs",
|
||||||
'newRecordWizardBookmarkletConfigurationDescriptionConfig': "<p>Collez ici le code de configuration généré par le bookmarlet Clipperz.</p> <p>Cela créera une nouvelle carte avec un accès direct à votre site web.</p> ",
|
'newRecordWizardBookmarkletConfigurationDescriptionConfig': "<p>Collez ici le code de configuration généré par le bookmarlet Clipperz.</p> <p>Cela créera une nouvelle carte avec un accès direct à votre site web.</p> ",
|
||||||
@ -238,7 +238,7 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
|||||||
'description': "<p>Clipperz peux aussi être utilisé comme un nouveau carnet d'adresse privé. Utilisez ce modèle pour ajouter des contacts facilement.</p> ",
|
'description': "<p>Clipperz peux aussi être utilisé comme un nouveau carnet d'adresse privé. Utilisez ce modèle pour ajouter des contacts facilement.</p> ",
|
||||||
'fields': {
|
'fields': {
|
||||||
'TXT': "Nom",
|
'TXT': "Nom",
|
||||||
'TXT': "Adresse email",
|
'TXT': "Adresse eMail",
|
||||||
'TXT': "Téléphone",
|
'TXT': "Téléphone",
|
||||||
'TXT': "Mobile",
|
'TXT': "Mobile",
|
||||||
'ADDR': "Adresse"
|
'ADDR': "Adresse"
|
||||||
@ -256,23 +256,23 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
|||||||
},
|
},
|
||||||
'recordFieldTypologies': {
|
'recordFieldTypologies': {
|
||||||
'TXT': {
|
'TXT': {
|
||||||
'description': "un simple champ de texte",
|
'description': "simple text field",
|
||||||
'shortDescription': "texte"
|
'shortDescription': "texte"
|
||||||
},
|
},
|
||||||
'PWD': {
|
'PWD': {
|
||||||
'description': "un simple champ de texte dont le contenu sera caché par défaut",
|
'description': "simple text field, with default status set to hidden",
|
||||||
'shortDescription': "mot de passe"
|
'shortDescription': "mot de passe"
|
||||||
},
|
},
|
||||||
'URL': {
|
'URL': {
|
||||||
'description': "un champ de teste en mode édition, qui devient une adresse web active en mode vue",
|
'description': "simple text field in edit mode, that became an active url in view mode",
|
||||||
'shortDescription': "adresse de site web"
|
'shortDescription': "adresse de site web"
|
||||||
},
|
},
|
||||||
'DATE': {
|
'DATE': {
|
||||||
'description': "un champ avec un calendrier pour aider à la saisie de dates",
|
'description': "a value set with a calendar helper",
|
||||||
'shortDescription': "date"
|
'shortDescription': "date"
|
||||||
},
|
},
|
||||||
'ADDR': {
|
'ADDR': {
|
||||||
'description': "comme l'adresse de site web, sauf que l'adresse entrée donnera un lien vers Google Maps (ou un service similaire) en passant l'adresse comme paramètre",
|
'description': "just like the URL, but the active link points to Google Maps (or similar service) passing the address value as argument",
|
||||||
'shortDescription': "adresse"
|
'shortDescription': "adresse"
|
||||||
},
|
},
|
||||||
'CHECK': {
|
'CHECK': {
|
||||||
@ -303,7 +303,7 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
|||||||
'deleteRecordPanelCollectRecordDataMessageText': "Mise à jour de la liste des cartes",
|
'deleteRecordPanelCollectRecordDataMessageText': "Mise à jour de la liste des cartes",
|
||||||
'deleteRecordPanelEncryptUserDataMessageTitle': "Supprimer la carte",
|
'deleteRecordPanelEncryptUserDataMessageTitle': "Supprimer la carte",
|
||||||
'deleteRecordPanelEncryptUserDataMessageText': "Chiffrement local des en-têtes de carte",
|
'deleteRecordPanelEncryptUserDataMessageText': "Chiffrement local des en-têtes de carte",
|
||||||
'deleteRecordPanelSendingDataToTheServerMessageTitle': "Supprimer la carte",
|
'deleteRecordPanelSendingDataToTheServerMessageTitle': "Supprimer la carteDelete card",
|
||||||
'deleteRecordPanelSendingDataToTheServerMessageText': "Transmission des en-têtes chiffrées à Clipperz",
|
'deleteRecordPanelSendingDataToTheServerMessageText': "Transmission des en-têtes chiffrées à Clipperz",
|
||||||
'deleteRecordPanelUpdatingTheInterfaceMessageTitle': "Supprimer la carte",
|
'deleteRecordPanelUpdatingTheInterfaceMessageTitle': "Supprimer la carte",
|
||||||
'deleteRecordPanelUpdatingTheInterfaceMessageText': "Mise à jour de l'interface",
|
'deleteRecordPanelUpdatingTheInterfaceMessageText': "Mise à jour de l'interface",
|
||||||
@ -325,20 +325,20 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
|||||||
'recordDetailPasswordFieldUnscrambleLabel': "en clair",
|
'recordDetailPasswordFieldUnscrambleLabel': "en clair",
|
||||||
'recordDetailDirectLoginBlockTitle': "Accès directs",
|
'recordDetailDirectLoginBlockTitle': "Accès directs",
|
||||||
'recordDetailNewDirectLoginDescription': "<p>Configuration de l'accès direct</p> ",
|
'recordDetailNewDirectLoginDescription': "<p>Configuration de l'accès direct</p> ",
|
||||||
'recordDetailDirectLoginBlockNoDirectLoginConfiguredDescription': "<p>Cette carte contient-elle des informations d'identification pour un service en ligne ?</p> <p>Utilisez le bookmarklet pour configurer un “accès direct” depuis Clipperz en un seul clic !</p> ",
|
'recordDetailDirectLoginBlockNoDirectLoginConfiguredDescription': "<p>Cette carte contient-elle des informations d'identification pour un service en ligne?</p> <p>Utilisez le bookmarklet pour configurer un “accès direct” depuis Clipperz en un seul click!</p> ",
|
||||||
'recordDetailAddNewDirectLoginButtonLabel': "Ajouter un accès direct",
|
'recordDetailAddNewDirectLoginButtonLabel': "Ajouter un accès direct",
|
||||||
'recordDetailEditButtonLabel': "Modifier",
|
'recordDetailEditButtonLabel': "Modifier",
|
||||||
'recordDetailSaveButtonLabel': "Sauver",
|
'recordDetailSaveButtonLabel': "Sauver",
|
||||||
'recordDetailCancelButtonLabel': "Annuler",
|
'recordDetailCancelButtonLabel': "Annuler",
|
||||||
'newRecordTitleLabel': "_nouvelle carte_",
|
'newRecordTitleLabel': "_nouvelle carte_",
|
||||||
'recordSaveChangesPanelCollectRecordInfoMessageTitle': "Enregistrement de la carte",
|
'recordSaveChangesPanelCollectRecordInfoMessageTitle': "Enregistrement de la carte",
|
||||||
'recordSaveChangesPanelCollectRecordInfoMessageText': "Mise à jour des entêtes de la carte",
|
'recordSaveChangesPanelCollectRecordInfoMessageText': "Updating card headers",
|
||||||
'recordSaveChangesPanelEncryptUserDataMessageTitle': "Sauvegarde de la carte",
|
'recordSaveChangesPanelEncryptUserDataMessageTitle': "Sauvegarde de la carte",
|
||||||
'recordSaveChangesPanelEncryptUserDataMessageText': "Chiffrement local des en-têtes",
|
'recordSaveChangesPanelEncryptUserDataMessageText': "Cryptage local des en-têtes chiffrés",
|
||||||
'recordSaveChangesPanelEncryptRecordDataMessageTitle': "Sauvegarde de la carte",
|
'recordSaveChangesPanelEncryptRecordDataMessageTitle': "Sauvegarde de la carte",
|
||||||
'recordSaveChangesPanelEncryptRecordDataMessageText': "Chiffrement local des en-têtes",
|
'recordSaveChangesPanelEncryptRecordDataMessageText': "Cryptage local des en-têtes chiffrés",
|
||||||
'recordSaveChangesPanelEncryptRecordVersionDataMessageTitle': "Sauvegarde de la carte",
|
'recordSaveChangesPanelEncryptRecordVersionDataMessageTitle': "Sauvegarde de la carte",
|
||||||
'recordSaveChangesPanelEncryptRecordVersionDataMessageText': "Chiffrement local des données de version de la carte",
|
'recordSaveChangesPanelEncryptRecordVersionDataMessageText': "Cryptage local des données de version de la carte",
|
||||||
'recordSaveChangesPanelSendingDataToTheServerMessageTitle': "Sauvegarde de la carte",
|
'recordSaveChangesPanelSendingDataToTheServerMessageTitle': "Sauvegarde de la carte",
|
||||||
'recordSaveChangesPanelSendingDataToTheServerMessageText': "Téléchargement des cartes d’en-têtes chiffrés depuis Clipperz",
|
'recordSaveChangesPanelSendingDataToTheServerMessageText': "Téléchargement des cartes d’en-têtes chiffrés depuis Clipperz",
|
||||||
'recordSaveChangesPanelUpdatingTheInterfaceMessageTitle': "Sauvegarde de la carte",
|
'recordSaveChangesPanelUpdatingTheInterfaceMessageTitle': "Sauvegarde de la carte",
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -4,28 +4,28 @@
|
|||||||
{
|
{
|
||||||
"icon": {
|
"icon": {
|
||||||
"paths": [
|
"paths": [
|
||||||
"M429.696 257.6c54.88 0 68.608 27.424 105.152 22.848 36.576-4.576 4.576-68.576-27.424-114.272s-105.12-22.848-160 9.152c-54.848 32-346.272 209.152-346.272 209.152h254.848c0-0.032 118.848-126.88 173.696-126.88zM0 417.568v416c0 35.328 28.64 64 64 64 0 0 246.72 0 514.656 0 48.064 0 92-149.344 141.344-149.344 42.848 0 75.072 149.344 117.312 149.344 284.576 0 538.656 0 538.656 0 35.36 0 64.032-28.672 64.032-64v-416h-1440zM576 705.6c0 52.992-43.008 96-96 96h-288c-53.024 0-96-43.008-96-96v-96c0-53.024 42.976-96 96-96h288c52.992 0 96 42.976 96 96v96zM1344 705.6c0 52.992-43.008 96-96 96h-288c-53.024 0-96-43.008-96-96v-96c0-53.024 42.976-96 96-96h288c52.992 0 96 42.976 96 96v96zM905.12 280.448c36.576 4.576 50.272-22.848 105.152-22.848 54.848 0 173.728 126.848 173.728 126.848h254.848c0 0-291.424-177.152-346.272-209.152-54.88-32-128-54.848-160-9.152s-64 109.728-27.456 114.304z"
|
"M108.018 534.899l148.392 76.747h576.168l-190.68-98.62h-385.488l-208.41-107.792v98.62l7.467 3.858z",
|
||||||
|
"M48.001 63.785v242.833l208.41 107.788h576.168l-536.16-277.295h593.28v768.365h-768.387v-166.462l135.098 69.865h576.168l-207.951-107.554h-368.217l-208.41-107.799v385.279h915.005v-915.020z"
|
||||||
],
|
],
|
||||||
"attrs": [],
|
"attrs": [],
|
||||||
"isMulticolor": false,
|
"isMulticolor": false,
|
||||||
"width": 1440,
|
"grid": 0,
|
||||||
"tags": [
|
"tags": [
|
||||||
"3d glasses",
|
"CLIPPERZ_SOLO_LOGO-nero"
|
||||||
"glasses"
|
|
||||||
],
|
],
|
||||||
"grid": 32
|
"width": 1024
|
||||||
},
|
},
|
||||||
"attrs": [],
|
"attrs": [],
|
||||||
"properties": {
|
"properties": {
|
||||||
"order": 42,
|
"order": 42,
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 59649,
|
"code": 59650,
|
||||||
"name": "3dglasses",
|
"name": "CLIPPERZ_SOLO_LOGO-nero",
|
||||||
"ligatures": "preview"
|
"ligatures": "clipperz"
|
||||||
},
|
},
|
||||||
"setIdx": 1,
|
"setIdx": 0,
|
||||||
"setId": 12,
|
"setId": 13,
|
||||||
"iconIdx": 0
|
"iconIdx": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -100,12 +100,39 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58884,
|
"code": 58884,
|
||||||
"name": "logo",
|
"name": "logo",
|
||||||
"ligatures": "clipperz"
|
"ligatures": "qibberz"
|
||||||
},
|
},
|
||||||
"setIdx": 8,
|
"setIdx": 8,
|
||||||
"setId": 4,
|
"setId": 4,
|
||||||
"iconIdx": 1
|
"iconIdx": 1
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"icon": {
|
||||||
|
"paths": [
|
||||||
|
"M429.696 257.6c54.88 0 68.608 27.424 105.152 22.848 36.576-4.576 4.576-68.576-27.424-114.272s-105.12-22.848-160 9.152c-54.848 32-346.272 209.152-346.272 209.152h254.848c0-0.032 118.848-126.88 173.696-126.88zM0 417.568v416c0 35.328 28.64 64 64 64 0 0 246.72 0 514.656 0 48.064 0 92-149.344 141.344-149.344 42.848 0 75.072 149.344 117.312 149.344 284.576 0 538.656 0 538.656 0 35.36 0 64.032-28.672 64.032-64v-416h-1440zM576 705.6c0 52.992-43.008 96-96 96h-288c-53.024 0-96-43.008-96-96v-96c0-53.024 42.976-96 96-96h288c52.992 0 96 42.976 96 96v96zM1344 705.6c0 52.992-43.008 96-96 96h-288c-53.024 0-96-43.008-96-96v-96c0-53.024 42.976-96 96-96h288c52.992 0 96 42.976 96 96v96zM905.12 280.448c36.576 4.576 50.272-22.848 105.152-22.848 54.848 0 173.728 126.848 173.728 126.848h254.848c0 0-291.424-177.152-346.272-209.152-54.88-32-128-54.848-160-9.152s-64 109.728-27.456 114.304z"
|
||||||
|
],
|
||||||
|
"attrs": [],
|
||||||
|
"isMulticolor": false,
|
||||||
|
"width": 1440,
|
||||||
|
"tags": [
|
||||||
|
"3d glasses",
|
||||||
|
"glasses"
|
||||||
|
],
|
||||||
|
"grid": 32
|
||||||
|
},
|
||||||
|
"attrs": [],
|
||||||
|
"properties": {
|
||||||
|
"order": 1,
|
||||||
|
"id": 0,
|
||||||
|
"prevSize": 32,
|
||||||
|
"code": 59649,
|
||||||
|
"name": "3dglasses",
|
||||||
|
"ligatures": "preview"
|
||||||
|
},
|
||||||
|
"setIdx": 1,
|
||||||
|
"setId": 12,
|
||||||
|
"iconIdx": 0
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"icon": {
|
"icon": {
|
||||||
"paths": [
|
"paths": [
|
||||||
@ -347,36 +374,6 @@
|
|||||||
"setId": 0,
|
"setId": 0,
|
||||||
"iconIdx": 208
|
"iconIdx": 208
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"icon": {
|
|
||||||
"paths": [
|
|
||||||
"M810 896v-598h-468v598h468zM810 214q34 0 60 25t26 59v598q0 34-26 60t-60 26h-468q-34 0-60-26t-26-60v-598q0-34 26-59t60-25h468zM682 42v86h-512v598h-84v-598q0-34 25-60t59-26h512z"
|
|
||||||
],
|
|
||||||
"attrs": [
|
|
||||||
{}
|
|
||||||
],
|
|
||||||
"isMulticolor": false,
|
|
||||||
"tags": [
|
|
||||||
"content_copy"
|
|
||||||
],
|
|
||||||
"defaultCode": 57457,
|
|
||||||
"grid": 24
|
|
||||||
},
|
|
||||||
"attrs": [
|
|
||||||
{}
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"order": 43,
|
|
||||||
"id": 113,
|
|
||||||
"prevSize": 24,
|
|
||||||
"code": 57457,
|
|
||||||
"name": "content_copy",
|
|
||||||
"ligatures": "copy"
|
|
||||||
},
|
|
||||||
"setIdx": 4,
|
|
||||||
"setId": 9,
|
|
||||||
"iconIdx": 113
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"icon": {
|
"icon": {
|
||||||
"paths": [
|
"paths": [
|
||||||
|
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
@ -1242,7 +1242,7 @@ Clipperz.log("Warning: Record.fieldWithLabel('" + aLabel + "') is returning more
|
|||||||
Clipperz.Async.collectAll,
|
Clipperz.Async.collectAll,
|
||||||
Clipperz.Async.or
|
Clipperz.Async.or
|
||||||
]
|
]
|
||||||
}, {trace:false});
|
}, {trace:true});
|
||||||
deferredResult.addCallback(MochiKit.Base.values);
|
deferredResult.addCallback(MochiKit.Base.values);
|
||||||
deferredResult.addCallback(MochiKit.Base.bind(function(someValues) {
|
deferredResult.addCallback(MochiKit.Base.bind(function(someValues) {
|
||||||
return MochiKit.Iter.some(someValues, MochiKit.Base.operator.identity);
|
return MochiKit.Iter.some(someValues, MochiKit.Base.operator.identity);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
@ -836,15 +836,13 @@ Clipperz.log("Warning: User.recordWithLabel('" + aLabel + "') is returning more
|
|||||||
var user = this;
|
var user = this;
|
||||||
|
|
||||||
return Clipperz.Async.callbacks("User.cloneRecord", [
|
return Clipperz.Async.callbacks("User.cloneRecord", [
|
||||||
// MochiKit.Base.method(this, 'hasPendingChanges'),
|
MochiKit.Base.method(this, 'hasPendingChanges'),
|
||||||
// Clipperz.Async.deferredIf("User has pending changes", [
|
Clipperz.Async.deferredIf("User has pending changes", [
|
||||||
/// MochiKit.Async.fail
|
MochiKit.Async.fail
|
||||||
// ], [
|
], [
|
||||||
// MochiKit.Base.method(user, 'createNewRecord'),
|
|
||||||
// MochiKit.Base.methodcaller('setUpWithRecord', aRecord),
|
|
||||||
// ])
|
|
||||||
MochiKit.Base.method(user, 'createNewRecord'),
|
MochiKit.Base.method(user, 'createNewRecord'),
|
||||||
MochiKit.Base.methodcaller('setUpWithRecord', aRecord),
|
MochiKit.Base.methodcaller('setUpWithRecord', aRecord),
|
||||||
|
])
|
||||||
], {trace:false});
|
], {trace:false});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
@ -434,8 +434,7 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, {
|
|||||||
randomBytes = Clipperz.Crypto.Base.generateRandomSeed();
|
randomBytes = Clipperz.Crypto.Base.generateRandomSeed();
|
||||||
aConnection['b'] = new Clipperz.Crypto.BigInt(randomBytes, 16);
|
aConnection['b'] = new Clipperz.Crypto.BigInt(randomBytes, 16);
|
||||||
v = new Clipperz.Crypto.BigInt(aConnection['userData']['v'], 16);
|
v = new Clipperz.Crypto.BigInt(aConnection['userData']['v'], 16);
|
||||||
//aConnection['B'] = (Clipperz.Crypto.SRP.k().multiply(v)).add(Clipperz.Crypto.SRP.g().powerModule(aConnection['b'], Clipperz.Crypto.SRP.n()));
|
aConnection['B'] = (Clipperz.Crypto.SRP.k().multiply(v)).add(Clipperz.Crypto.SRP.g().powerModule(aConnection['b'], Clipperz.Crypto.SRP.n()));
|
||||||
aConnection['B'] = ((Clipperz.Crypto.SRP.k().multiply(v)).add(Clipperz.Crypto.SRP.g().powerModule(aConnection['b'], Clipperz.Crypto.SRP.n())).module(Clipperz.Crypto.SRP.n()));
|
|
||||||
|
|
||||||
aConnection['A'] = someParameters.parameters.A;
|
aConnection['A'] = someParameters.parameters.A;
|
||||||
|
|
||||||
@ -444,7 +443,7 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, {
|
|||||||
|
|
||||||
nextTollRequestType = 'CONNECT';
|
nextTollRequestType = 'CONNECT';
|
||||||
} else if (someParameters.message == "credentialCheck") {
|
} else if (someParameters.message == "credentialCheck") {
|
||||||
var v, u, s, S, A, K, M1, KK;
|
var v, u, s, S, A, K, M1;
|
||||||
var stringHash = function (aValue) {
|
var stringHash = function (aValue) {
|
||||||
return Clipperz.PM.Crypto.encryptingFunctions.versions[someParameters.version].hash(new Clipperz.ByteArray(aValue)).toHexString().substring(2);
|
return Clipperz.PM.Crypto.encryptingFunctions.versions[someParameters.version].hash(new Clipperz.ByteArray(aValue)).toHexString().substring(2);
|
||||||
};
|
};
|
||||||
@ -453,11 +452,9 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, {
|
|||||||
A = new Clipperz.Crypto.BigInt(aConnection['A'], 16);
|
A = new Clipperz.Crypto.BigInt(aConnection['A'], 16);
|
||||||
u = new Clipperz.Crypto.BigInt(Clipperz.PM.Crypto.encryptingFunctions.versions[someParameters.version].hash(new Clipperz.ByteArray(A.asString(10) + aConnection['B'].asString(10))).toHexString(), 16);
|
u = new Clipperz.Crypto.BigInt(Clipperz.PM.Crypto.encryptingFunctions.versions[someParameters.version].hash(new Clipperz.ByteArray(A.asString(10) + aConnection['B'].asString(10))).toHexString(), 16);
|
||||||
s = new Clipperz.Crypto.BigInt(aConnection['userData']['s'], 16);
|
s = new Clipperz.Crypto.BigInt(aConnection['userData']['s'], 16);
|
||||||
//S = (A.multiply(v.powerModule(u, Clipperz.Crypto.SRP.n()))).powerModule(aConnection['b'], Clipperz.Crypto.SRP.n());
|
S = (A.multiply(v.powerModule(u, Clipperz.Crypto.SRP.n()))).powerModule(aConnection['b'], Clipperz.Crypto.SRP.n());
|
||||||
S = v.powerModule(u, Clipperz.Crypto.SRP.n()).multiply(A).module(Clipperz.Crypto.SRP.n()).powerModule(aConnection['b'], Clipperz.Crypto.SRP.n());
|
|
||||||
|
|
||||||
K = stringHash(S.asString(10));
|
K = stringHash(S.asString(10));
|
||||||
KK = new Clipperz.Crypto.BigInt(K,16);
|
|
||||||
|
|
||||||
M1 = stringHash(
|
M1 = stringHash(
|
||||||
"597626870978286801440197562148588907434001483655788865609375806439877501869636875571920406529" +
|
"597626870978286801440197562148588907434001483655788865609375806439877501869636875571920406529" +
|
||||||
@ -465,7 +462,7 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, {
|
|||||||
s.asString(10) +
|
s.asString(10) +
|
||||||
A.asString(10) +
|
A.asString(10) +
|
||||||
aConnection['B'].asString(10) +
|
aConnection['B'].asString(10) +
|
||||||
KK.asString(10)
|
K
|
||||||
);
|
);
|
||||||
if (someParameters.parameters.M1 == M1) {
|
if (someParameters.parameters.M1 == M1) {
|
||||||
var M2;
|
var M2;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
@ -107,26 +107,20 @@ Clipperz.PM.Toll.prototype = MochiKit.Base.update(null, {
|
|||||||
var deferredResult;
|
var deferredResult;
|
||||||
var result;
|
var result;
|
||||||
var payment;
|
var payment;
|
||||||
var startTime;
|
var i;
|
||||||
var currentTime;
|
|
||||||
var elapsedTime;
|
|
||||||
|
|
||||||
currentTime = (new Date()).getMilliseconds();
|
|
||||||
startTime = currentTime;
|
|
||||||
|
|
||||||
result = null;
|
result = null;
|
||||||
payment = aPayment;
|
payment = aPayment;
|
||||||
elapsedTime = currentTime - startTime;
|
i = 0;
|
||||||
|
|
||||||
while ((result == null) && (elapsedTime < Clipperz.PM.Toll.maxTimeForCloseLoopIterations)) {
|
while ((result == null) && (i < Clipperz.PM.Toll.numberOfCloseLoopIterations)) {
|
||||||
if (Clipperz.ByteArray.prefixMatchingBits(aTargetValue, Clipperz.Crypto.SHA.sha256(payment)) > aCost) {
|
if (Clipperz.ByteArray.prefixMatchingBits(aTargetValue, Clipperz.Crypto.SHA.sha256(payment)) > aCost) {
|
||||||
result = payment;
|
result = payment;
|
||||||
} else {
|
} else {
|
||||||
payment.increment();
|
payment.increment();
|
||||||
}
|
}
|
||||||
|
|
||||||
currentTime = (new Date()).getMilliseconds();
|
i ++;
|
||||||
elapsedTime = currentTime - startTime;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result == null) {
|
if (result == null) {
|
||||||
@ -143,7 +137,8 @@ Clipperz.PM.Toll.prototype = MochiKit.Base.update(null, {
|
|||||||
var toll;
|
var toll;
|
||||||
|
|
||||||
toll = this;
|
toll = this;
|
||||||
deferredResult = new Clipperz.Async.Deferred("Toll.deferredPay", {trace:false});
|
deferredResult = new Clipperz.Async.Deferred("Toll.deferredPay");
|
||||||
|
//deferredResult.addLog("--->>> deferredPay - " + this.cost());
|
||||||
deferredResult.addMethod(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'getRandomBytes', 32);
|
deferredResult.addMethod(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'getRandomBytes', 32);
|
||||||
deferredResult.addMethod(toll, 'innerDeferredPay', new Clipperz.ByteArray("0x" + this.targetValue()), this.cost());
|
deferredResult.addMethod(toll, 'innerDeferredPay', new Clipperz.ByteArray("0x" + this.targetValue()), this.cost());
|
||||||
deferredResult.addCallback(MochiKit.Base.bind(function(aPayment) {
|
deferredResult.addCallback(MochiKit.Base.bind(function(aPayment) {
|
||||||
@ -156,6 +151,7 @@ Clipperz.PM.Toll.prototype = MochiKit.Base.update(null, {
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}, this));
|
}, this));
|
||||||
|
//deferredResult.addLog("<<<--- deferredPay - " + this.cost());
|
||||||
deferredResult.callback();
|
deferredResult.callback();
|
||||||
|
|
||||||
return deferredResult;
|
return deferredResult;
|
||||||
@ -189,5 +185,5 @@ Clipperz.PM.Toll.validate = function(aTargetValue, aToll, aCost) {
|
|||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
Clipperz.PM.Toll.maxTimeForCloseLoopIterations = 500; // milliseconds
|
Clipperz.PM.Toll.numberOfCloseLoopIterations = 50;
|
||||||
Clipperz.PM.Toll.pauseBetweenEachCloseLoop = 0.1; // seconds
|
Clipperz.PM.Toll.pauseBetweenEachCloseLoop = 0.5;
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
@ -34,7 +34,7 @@ Clipperz.PM.UI.AttachmentController = function(someParameters) {
|
|||||||
this.LATEST_ENCRYPTION_VERSION = '1.0'; // Versions aren't handled completely yet!
|
this.LATEST_ENCRYPTION_VERSION = '1.0'; // Versions aren't handled completely yet!
|
||||||
|
|
||||||
this.fileQueue = [];
|
this.fileQueue = [];
|
||||||
// this.notifications = [];
|
this.notifications = [];
|
||||||
this.operationsCount = null;
|
this.operationsCount = null;
|
||||||
|
|
||||||
this.encryptedDocument = null;
|
this.encryptedDocument = null;
|
||||||
@ -56,20 +56,19 @@ MochiKit.Base.update(Clipperz.PM.UI.AttachmentController.prototype, {
|
|||||||
},
|
},
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
/*
|
|
||||||
notifyUpdate: function() {
|
notifyUpdate: function() {
|
||||||
// MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'updateAttachmentQueueInfo', this.getQueueInfo(), this.getNotificationsInfo());
|
MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'updateAttachmentQueueInfo', this.getQueueInfo(), this.getNotificationsInfo());
|
||||||
MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'updateNotifications');
|
|
||||||
},
|
},
|
||||||
*/
|
|
||||||
getQueueInfo: function() {
|
getQueueInfo: function() {
|
||||||
return this.fileQueue;
|
return this.fileQueue;
|
||||||
},
|
},
|
||||||
/*
|
|
||||||
getNotificationsInfo: function() {
|
getNotificationsInfo: function() {
|
||||||
return this.notifications;
|
return this.notifications;
|
||||||
},
|
},
|
||||||
*/
|
|
||||||
//=========================================================================
|
//=========================================================================
|
||||||
// Entry points
|
// Entry points
|
||||||
//=========================================================================
|
//=========================================================================
|
||||||
@ -165,7 +164,7 @@ MochiKit.Base.update(Clipperz.PM.UI.AttachmentController.prototype, {
|
|||||||
|
|
||||||
var count = this.updateOperationsCount();
|
var count = this.updateOperationsCount();
|
||||||
|
|
||||||
// this.notifyUpdate();
|
this.notifyUpdate();
|
||||||
|
|
||||||
processNextElements = true;
|
processNextElements = true;
|
||||||
for (i in this.fileQueue) {
|
for (i in this.fileQueue) {
|
||||||
@ -210,7 +209,7 @@ MochiKit.Base.update(Clipperz.PM.UI.AttachmentController.prototype, {
|
|||||||
case 'WAITING_SAVE':
|
case 'WAITING_SAVE':
|
||||||
this.saveFile(currentElement['reference'], currentElement['decryptedArray'], currentElement['meta']['name'], currentElement['meta']['type']);
|
this.saveFile(currentElement['reference'], currentElement['decryptedArray'], currentElement['meta']['name'], currentElement['meta']['type']);
|
||||||
processNextElements = false;
|
processNextElements = false;
|
||||||
// Clipperz.Sound.beep();
|
Clipperz.Sound.beep();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -248,6 +247,7 @@ MochiKit.Base.update(Clipperz.PM.UI.AttachmentController.prototype, {
|
|||||||
|
|
||||||
addFileToQueue: function(someParameters) {
|
addFileToQueue: function(someParameters) {
|
||||||
this.fileQueue.push(someParameters);
|
this.fileQueue.push(someParameters);
|
||||||
|
this.addNotification(someParameters);
|
||||||
|
|
||||||
this.dispatchQueueOperations();
|
this.dispatchQueueOperations();
|
||||||
},
|
},
|
||||||
@ -268,10 +268,6 @@ MochiKit.Base.update(Clipperz.PM.UI.AttachmentController.prototype, {
|
|||||||
|
|
||||||
MochiKit.Base.update(this.fileQueue[queuePosition], someParameters);
|
MochiKit.Base.update(this.fileQueue[queuePosition], someParameters);
|
||||||
|
|
||||||
if ((someParameters['status'] == 'DONE') || (someParameters['status'] == 'FAILED')) {
|
|
||||||
this.addNotification(this.fileQueue[queuePosition], someParameters['status']);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.dispatchQueueOperations();
|
this.dispatchQueueOperations();
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -297,38 +293,13 @@ MochiKit.Base.update(Clipperz.PM.UI.AttachmentController.prototype, {
|
|||||||
// Notifications
|
// Notifications
|
||||||
//=========================================================================
|
//=========================================================================
|
||||||
|
|
||||||
addNotification: function(aQueueElement, aStatus) {
|
addNotification: function(aQueueElement) {
|
||||||
//console.log("ADD ATTACHMENT NOTIFICATION", aQueueElement);
|
this.notifications.push({
|
||||||
var messagePrefix = "";
|
'id': this.randomId(),
|
||||||
var message;
|
'queueElement': aQueueElement
|
||||||
var filename;
|
})
|
||||||
var level;
|
|
||||||
|
|
||||||
if (aStatus == 'DONE') {
|
|
||||||
level = 'info';
|
|
||||||
if (aQueueElement['process'] == 'DOWNLOAD') {
|
|
||||||
messagePrefix = "downloaded attachment ";
|
|
||||||
} else if (aQueueElement['process'] == 'UPLOAD') {
|
|
||||||
messagePrefix = "uploaded attachment ";
|
|
||||||
}
|
|
||||||
} else if (aStatus == 'FAILED') {
|
|
||||||
level = 'error';
|
|
||||||
if (aQueueElement['process'] == 'DOWNLOAD') {
|
|
||||||
messagePrefix = "error downloading attachment ";
|
|
||||||
} else if (aQueueElement['process'] == 'UPLOAD') {
|
|
||||||
messagePrefix = "error uploading attachment ";
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
level = 'warning';
|
|
||||||
messagePrefix = "???";
|
|
||||||
}
|
|
||||||
|
|
||||||
filename = aQueueElement['meta']['name'];
|
|
||||||
message = messagePrefix + filename;
|
|
||||||
|
|
||||||
MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'addNotification', {'message':message, 'level':level});
|
|
||||||
},
|
},
|
||||||
/*
|
|
||||||
removeNotification: function(aNotificationId) {
|
removeNotification: function(aNotificationId) {
|
||||||
var i, position;
|
var i, position;
|
||||||
|
|
||||||
@ -343,15 +314,14 @@ MochiKit.Base.update(Clipperz.PM.UI.AttachmentController.prototype, {
|
|||||||
this.notifications.splice(position, 1);
|
this.notifications.splice(position, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// this.notifyUpdate();
|
this.notifyUpdate();
|
||||||
},
|
},
|
||||||
*/
|
|
||||||
/*
|
|
||||||
randomId: function() {
|
randomId: function() {
|
||||||
return Clipperz.Crypto.randomKey();
|
return Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString().substring(2);
|
||||||
// return Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString().substring(2);
|
|
||||||
},
|
},
|
||||||
*/
|
|
||||||
|
|
||||||
//=========================================================================
|
//=========================================================================
|
||||||
// Queue Processing: READ
|
// Queue Processing: READ
|
||||||
//=========================================================================
|
//=========================================================================
|
||||||
@ -462,7 +432,6 @@ MochiKit.Base.update(Clipperz.PM.UI.AttachmentController.prototype, {
|
|||||||
'status': 'DONE',
|
'status': 'DONE',
|
||||||
'requestProgress': 1,
|
'requestProgress': 1,
|
||||||
}),
|
}),
|
||||||
// add notification
|
|
||||||
], {trace:false});
|
], {trace:false});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
@ -34,9 +34,7 @@ Clipperz.PM.UI.Components.ButtonClass = React.createClass({
|
|||||||
'handler': React.PropTypes.func.isRequired,
|
'handler': React.PropTypes.func.isRequired,
|
||||||
'className': React.PropTypes.string,
|
'className': React.PropTypes.string,
|
||||||
'badgeTopContent': React.PropTypes.number,
|
'badgeTopContent': React.PropTypes.number,
|
||||||
'badgeTopLevel': React.PropTypes.string,
|
|
||||||
'badgeBottomContent': React.PropTypes.number,
|
'badgeBottomContent': React.PropTypes.number,
|
||||||
'badgeBottomLevel': React.PropTypes.string,
|
|
||||||
},
|
},
|
||||||
|
|
||||||
//=========================================================================
|
//=========================================================================
|
||||||
@ -54,18 +52,18 @@ Clipperz.PM.UI.Components.ButtonClass = React.createClass({
|
|||||||
|
|
||||||
badgeTop = null;
|
badgeTop = null;
|
||||||
if (this.props['badgeTopContent']) {
|
if (this.props['badgeTopContent']) {
|
||||||
badgeTop = React.DOM.span({'className': Clipperz.PM.UI.Components.classNames('badge', 'top', this.props['badgeTopLevel'])}, this.props['badgeTopContent']);
|
badgeTop = React.DOM.span({'className': 'badge top'}, this.props['badgeTopContent']);
|
||||||
};
|
};
|
||||||
|
|
||||||
badgeBottom = null;
|
badgeBottom = null;
|
||||||
if (this.props['badgeBottomContent']) {
|
if (this.props['badgeBottomContent']) {
|
||||||
badgeBottom = React.DOM.span({'className': Clipperz.PM.UI.Components.classNames('badge', 'bottom', this.props['badgeBottomLevel'])}, this.props['badgeBottomContent']);
|
badgeBottom = React.DOM.span({'className': 'badge bottom'}, this.props['badgeBottomContent']);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
return React.DOM.div({'className':Clipperz.PM.UI.Components.classNames(classes), onClick:this.props['handler']}, [
|
return React.DOM.div({className:Clipperz.PM.UI.Components.classNames(classes), onClick:this.props['handler']}, [
|
||||||
React.DOM.div({'className':this.props['eventName']}, [
|
React.DOM.div({className:this.props['eventName']}, [
|
||||||
React.DOM.h3({'className':'label'}, this.props['label']),
|
React.DOM.h3({className:'label'}, this.props['label']),
|
||||||
badgeTop,
|
badgeTop,
|
||||||
badgeBottom,
|
badgeBottom,
|
||||||
])
|
])
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
@ -63,66 +63,33 @@ Clipperz.PM.UI.Components.CardToolbarClass = React.createClass({
|
|||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
notificationCounter: function () {
|
renderWithSidePanels: function () {
|
||||||
var result;
|
|
||||||
|
|
||||||
// console.log("CARD TOOLBAR NOTIFICATIONS", this.props['notifications']);
|
|
||||||
|
|
||||||
if (this.props['notifications']) {
|
|
||||||
result = this.props['notifications'].length;
|
|
||||||
} else {
|
|
||||||
result = null;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
var attachmentDownloadNotificationNumber = MochiKit.Base.filter(function(anElement) {
|
var attachmentDownloadNotificationNumber = MochiKit.Base.filter(function(anElement) {
|
||||||
return anElement['queueElement']['process'] == 'DOWNLOAD';
|
return anElement['queueElement']['process'] == 'DOWNLOAD';
|
||||||
}, this.props['attachmentQueueInfo']['notifications']).length;
|
}, this.props['attachmentQueueInfo']['notifications']).length;
|
||||||
|
|
||||||
var attachmentUploadNotificationNumber = this.props['attachmentQueueInfo']['notifications'].length - attachmentDownloadNotificationNumber;
|
var attachmentUploadNotificationNumber = this.props['attachmentQueueInfo']['notifications'].length - attachmentDownloadNotificationNumber;
|
||||||
|
|
||||||
// attachmentDownloadNotificationNumber = 2;
|
// attachmentDownloadNotificationNumber = 2;
|
||||||
// attachmentUploadNotificationNumber = 3;
|
// attachmentUploadNotificationNumber = 3;
|
||||||
/*
|
|
||||||
var verifyingCertificateNotificationNumber = this.props['certificateQueueInfo'] ? MochiKit.Base.filter(function (anCertificationInfo) {
|
var verifyingCertificateNotificationNumber = this.props['certificateQueueInfo'] ? MochiKit.Base.filter(function (anCertificationInfo) {
|
||||||
return anCertificationInfo['status'] == 'requested';
|
return anCertificationInfo['status'] == 'requested';
|
||||||
}, this.props['certificateQueueInfo']).length : 0;
|
}, this.props['certificateQueueInfo']).length : 0;
|
||||||
var verifiedCertificateNotificationNumber = this.props['certificateQueueInfo'] ? MochiKit.Base.filter(function (anCertificationInfo) {
|
var verifiedCertificateNotificationNumber = this.props['certificateQueueInfo'] ? MochiKit.Base.filter(function (anCertificationInfo) {
|
||||||
return anCertificationInfo['status'] == 'published';
|
return anCertificationInfo['status'] == 'published';
|
||||||
}, this.props['certificateQueueInfo']).length : 0;
|
}, this.props['certificateQueueInfo']).length : 0;
|
||||||
*/
|
|
||||||
return result;
|
|
||||||
},
|
|
||||||
|
|
||||||
notificationLevel: function () {
|
|
||||||
var result = 'info';
|
|
||||||
var i, c;
|
|
||||||
|
|
||||||
c = this.props['notifications'].length;
|
|
||||||
for (i=0; i<c; i++) {
|
|
||||||
var level;
|
|
||||||
|
|
||||||
level = this.props['notifications'][i]['level'];
|
|
||||||
if (level == 'error') {
|
|
||||||
result = 'error';
|
|
||||||
} else if ((level == 'warning') && (result == 'info')) {
|
|
||||||
result = 'warning';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
},
|
|
||||||
|
|
||||||
renderWithSidePanels: function () {
|
|
||||||
return [
|
return [
|
||||||
React.DOM.div({className:'selectionToggle'}, [
|
React.DOM.div({className:'selectionToggle'}, [
|
||||||
Clipperz.PM.UI.Components.Button({'eventName':'selectionToggleButton', 'label':"tags", 'handler':this.selectionToggleHandler})
|
Clipperz.PM.UI.Components.Button({eventName:'selectionToggleButton', label:"tags", handler:this.selectionToggleHandler})
|
||||||
]),
|
]),
|
||||||
this.renderWithoutSidePanels(),
|
this.renderWithoutSidePanels(),
|
||||||
|
|
||||||
// TODO: validate and adjust names
|
// TODO: validate and adjust names
|
||||||
React.DOM.div({'className':'settingsToggle'}, [
|
React.DOM.div({className:'settingsToggle'}, [
|
||||||
// Clipperz.PM.UI.Components.Button({eventName:'certificateQueueToggleButton', label:"certificate", handler:this.certificateQueueToggleHandler, badgeTopContent:verifyingCertificateNotificationNumber, badgeBottomContent:verifiedCertificateNotificationNumber}),
|
Clipperz.PM.UI.Components.Button({eventName:'certificateQueueToggleButton', label:"certificate", handler:this.certificateQueueToggleHandler, badgeTopContent:verifyingCertificateNotificationNumber, badgeBottomContent:verifiedCertificateNotificationNumber}),
|
||||||
// Clipperz.PM.UI.Components.Button({eventName:'attachmentQueueToggleButton', label:"\u2191\u2193", handler:this.attachmentQueueToggleHandler, badgeTopContent:attachmentDownloadNotificationNumber, badgeBottomContent:attachmentUploadNotificationNumber}),
|
Clipperz.PM.UI.Components.Button({eventName:'attachmentQueueToggleButton', label:"\u2191\u2193", handler:this.attachmentQueueToggleHandler, badgeTopContent:attachmentDownloadNotificationNumber, badgeBottomContent:attachmentUploadNotificationNumber}),
|
||||||
Clipperz.PM.UI.Components.Button({'eventName':'settingsToggleButton', 'label':"menu", 'handler':this.settingsToggleHandler, 'badgeTopContent':this.notificationCounter(), 'badgeTopLevel':this.notificationLevel()})
|
Clipperz.PM.UI.Components.Button({eventName:'settingsToggleButton', label:"menu", handler:this.settingsToggleHandler})
|
||||||
])
|
])
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
@ -135,36 +102,36 @@ Clipperz.PM.UI.Components.CardToolbarClass = React.createClass({
|
|||||||
//console.log("CARD TOOLBAR", this.props['filter']['type']);
|
//console.log("CARD TOOLBAR", this.props['filter']['type']);
|
||||||
|
|
||||||
if (this.props['filter']['type'] == 'RECENT') {
|
if (this.props['filter']['type'] == 'RECENT') {
|
||||||
result = [React.DOM.div({'className':'clipperz'}, [React.DOM.span({'className':'logo recent'}, "recent")])];
|
result = [React.DOM.div({className:'clipperz'}, [React.DOM.span({className:'logo recent'}, "recent")])];
|
||||||
} else if (this.props['filter']['type'] == 'WITH_ATTACHMENTS') {
|
} else if (this.props['filter']['type'] == 'WITH_ATTACHMENTS') {
|
||||||
result = [React.DOM.div({'className':'clipperz'}, [React.DOM.span({'className':'logo withAttachments'}, "attachment")])];
|
result = [React.DOM.div({className:'clipperz'}, [React.DOM.span({className:'logo withAttachments'}, "attachment")])];
|
||||||
} else if (this.props['filter']['type'] == 'TAG') {
|
} else if (this.props['filter']['type'] == 'TAG') {
|
||||||
result = [React.DOM.div({'className':'clipperz'}, [
|
result = [React.DOM.div({className:'clipperz'}, [
|
||||||
React.DOM.span({'className':'logo tag'}, "tag"),
|
React.DOM.span({className:'logo tag'}, "tag"),
|
||||||
React.DOM.span({'className':'value'}, this.props['filter']['value'])
|
React.DOM.span({className:'value'}, this.props['filter']['value'])
|
||||||
])];
|
])];
|
||||||
} else if (this.props['filter']['type'] == 'UNTAGGED') {
|
} else if (this.props['filter']['type'] == 'UNTAGGED') {
|
||||||
result = [React.DOM.div({'className':'clipperz'}, [
|
result = [React.DOM.div({className:'clipperz'}, [
|
||||||
React.DOM.span({'className':'logo tag'}, "tag"),
|
React.DOM.span({className:'logo tag'}, "tag"),
|
||||||
React.DOM.span({'className':'value'}, "untagged")
|
React.DOM.span({className:'value'}, "untagged")
|
||||||
])];
|
])];
|
||||||
} else if (this.props['filter']['type'] == 'SEARCH') {
|
} else if (this.props['filter']['type'] == 'SEARCH') {
|
||||||
result = [React.DOM.div({'className':'clipperz'}, [
|
result = [React.DOM.div({className:'clipperz'}, [
|
||||||
React.DOM.span({'className':'logo search'}, "search"),
|
React.DOM.span({className:'logo search'}, "search"),
|
||||||
React.DOM.span({'className':'value'}, this.props['filter']['value'])
|
React.DOM.span({className:'value'}, this.props['filter']['value'])
|
||||||
])];
|
])];
|
||||||
} else {
|
} else {
|
||||||
result = [React.DOM.div({'className':'clipperz'}, [React.DOM.span({'className':'logo clipperz'}, "clipperz")])];
|
result = [React.DOM.div({className:'clipperz'}, [React.DOM.span({className:'logo clipperz'}, "clipperz")])];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
result = [React.DOM.div({'className':'clipperz'}, [React.DOM.span({'className':'logo clipperz'}, "clipperz")])];
|
result = [React.DOM.div({className:'clipperz'}, [React.DOM.span({className:'logo clipperz'}, "clipperz")])];
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
render: function () {
|
render: function () {
|
||||||
return React.DOM.div({'className':'cardToolbar ' + this.props['style']}, [
|
return React.DOM.div({className:'cardToolbar ' + this.props['style']}, [
|
||||||
React.DOM.header({}, this.props['enableSidePanels'] ? this.renderWithSidePanels() : this.renderWithoutSidePanels()),
|
React.DOM.header({}, this.props['enableSidePanels'] ? this.renderWithSidePanels() : this.renderWithoutSidePanels()),
|
||||||
Clipperz.PM.UI.Components.AccountStatus(MochiKit.Base.update(this.props['accountInfo'], this.props['proxyInfo'])),
|
Clipperz.PM.UI.Components.AccountStatus(MochiKit.Base.update(this.props['accountInfo'], this.props['proxyInfo'])),
|
||||||
Clipperz.PM.UI.Components.MessageBox(this.props['messageBox']),
|
Clipperz.PM.UI.Components.MessageBox(this.props['messageBox']),
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
@ -66,7 +66,7 @@ Clipperz.PM.UI.Components.Cards.CertificateRendererClass = React.createClass({
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
return React.DOM.svg({'viewBox':'0 0 630 ' + height, 'width':'100%', 'height':height, 'fill':'currentcolor'}, [
|
return React.DOM.svg({'viewBox':'0 0 600 ' + height, 'width':'100%', 'height':height, 'fill':'currentcolor'}, [
|
||||||
arrow(0, height/2),
|
arrow(0, height/2),
|
||||||
React.DOM.rect({'x':arrowLength, 'y':0, 'width':rectWidth, 'height':height, 'fill':'blue', 'opacity':0.3}),
|
React.DOM.rect({'x':arrowLength, 'y':0, 'width':rectWidth, 'height':height, 'fill':'blue', 'opacity':0.3}),
|
||||||
React.DOM.rect({'x':arrowLength, 'y':0, 'width':rectWidth, 'height':height, 'fill':'none', 'stroke':'black', 'strokeWidth':1, 'opacity':1}),
|
React.DOM.rect({'x':arrowLength, 'y':0, 'width':rectWidth, 'height':height, 'fill':'none', 'stroke':'black', 'strokeWidth':1, 'opacity':1}),
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
@ -65,7 +65,7 @@ Clipperz.PM.UI.Components.Cards.CommandToolbarClass = React.createClass({
|
|||||||
'archive': { 'label': archiveLabel, 'broadcastEvent': 'toggleArchiveCard', 'enabled': this.isFeatureEnabled('EDIT_CARD')},
|
'archive': { 'label': archiveLabel, 'broadcastEvent': 'toggleArchiveCard', 'enabled': this.isFeatureEnabled('EDIT_CARD')},
|
||||||
// 'share': { 'label': "share", 'broadcastEvent': 'shareCard' },
|
// 'share': { 'label': "share", 'broadcastEvent': 'shareCard' },
|
||||||
'clone': { 'label': "clone", 'broadcastEvent': 'cloneCard', 'enabled': this.isFeatureEnabled('ADD_CARD')},
|
'clone': { 'label': "clone", 'broadcastEvent': 'cloneCard', 'enabled': this.isFeatureEnabled('ADD_CARD')},
|
||||||
// 'register': { 'label': "register", 'broadcastEvent': 'createCertificate', 'enabled': this.isFeatureEnabled('REGISTER_CARD') && !this.isCardCertified()},
|
'register': { 'label': "register", 'broadcastEvent': 'createCertificate', 'enabled': this.isFeatureEnabled('REGISTER_CARD') && !this.isCardCertified()},
|
||||||
'edit': { 'label': "edit", 'broadcastEvent': 'editCard', 'enabled': this.isFeatureEnabled('EDIT_CARD') && !this.isCardCertified()}
|
'edit': { 'label': "edit", 'broadcastEvent': 'editCard', 'enabled': this.isFeatureEnabled('EDIT_CARD') && !this.isCardCertified()}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
@ -306,33 +306,6 @@ Clipperz.PM.UI.Components.Cards.ViewClass = React.createClass({
|
|||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
onClickOnFieldValue: function (event) {
|
|
||||||
var succeeded;
|
|
||||||
var element;
|
|
||||||
|
|
||||||
element = event.target;
|
|
||||||
|
|
||||||
// event.target.focus();
|
|
||||||
// event.target.select();
|
|
||||||
// event.target.selectionStart = 0;
|
|
||||||
// event.target.selectionEnd = event.target.value.length;
|
|
||||||
// event.stopPropagation();
|
|
||||||
// event.preventDefault();
|
|
||||||
|
|
||||||
element.focus();
|
|
||||||
element.setSelectionRange(0, element.value.length);
|
|
||||||
event.stopPropagation();
|
|
||||||
event.preventDefault();
|
|
||||||
|
|
||||||
// selectedText = element.value;
|
|
||||||
|
|
||||||
succeeded = document.execCommand('copy');
|
|
||||||
if (succeeded === true) {
|
|
||||||
window.getSelection().removeAllRanges();
|
|
||||||
MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'copyFieldValueFeedback');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
//............................................................................
|
//............................................................................
|
||||||
|
|
||||||
renderField: function (aField) {
|
renderField: function (aField) {
|
||||||
@ -358,10 +331,10 @@ Clipperz.PM.UI.Components.Cards.ViewClass = React.createClass({
|
|||||||
React.DOM.div({'className':'fieldValues'}, [
|
React.DOM.div({'className':'fieldValues'}, [
|
||||||
React.DOM.div({'className':'fieldLabel'}, aField['label']),
|
React.DOM.div({'className':'fieldLabel'}, aField['label']),
|
||||||
Clipperz.PM.UI.Components.Cards.TextArea({
|
Clipperz.PM.UI.Components.Cards.TextArea({
|
||||||
|
// React.DOM.textarea({
|
||||||
'readOnly': true,
|
'readOnly': true,
|
||||||
// 'onMouseUp': function(e) { e.target.focus(); e.target.select(); e.stopPropagation(); e.preventDefault();},
|
// 'onMouseUp': function(e) { e.target.focus(); e.target.select(); e.stopPropagation(); e.preventDefault();},
|
||||||
// 'onClick': function(e) { e.target.focus(); e.target.select(); e.target.selectionStart = 0; e.target.selectionEnd = e.target.value.length; e.stopPropagation(); e.preventDefault(); },
|
'onClick': function(e) { e.target.focus(); e.target.select(); e.target.selectionStart = 0; e.target.selectionEnd = e.target.value.length; e.stopPropagation(); e.preventDefault(); },
|
||||||
'onClick': this.onClickOnFieldValue,
|
|
||||||
'className':Clipperz.PM.UI.Components.classNames(cardFieldValueClasses),
|
'className':Clipperz.PM.UI.Components.classNames(cardFieldValueClasses),
|
||||||
'value': aField['value'],
|
'value': aField['value'],
|
||||||
'rows': 1
|
'rows': 1
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright 2008-2018 Clipperz Srl
|
Copyright 2008-2015 Clipperz Srl
|
||||||
|
|
||||||
This file is part of Clipperz, the online password manager.
|
This file is part of Clipperz, the online password manager.
|
||||||
For further information about its features and functionalities please
|
For further information about its features and functionalities please
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user