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
|
||||
|
||||
[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.
|
||||
|
||||
[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/
|
||||
|
||||
|
||||
@ -64,7 +61,7 @@ Please [download][CA] and review the Contributor Agreement for a complete unders
|
||||
## Building
|
||||
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
|
||||
./scripts/build install --backends php python --frontends delta
|
||||
|
||||
|
@ -438,11 +438,6 @@ class message(HandlerMixin):
|
||||
result['oldestUsedEncryptedVersion'] = oldest_encryption_version
|
||||
result['versions'] = record_versions
|
||||
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})
|
||||
|
||||
@login_required
|
||||
@ -664,15 +659,6 @@ class message(HandlerMixin):
|
||||
result['result'] = 'done'
|
||||
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):
|
||||
|
||||
|
@ -104,12 +104,8 @@ class RecordVersion(db.Model):
|
||||
self.version = self.record.version
|
||||
self.previous_version_key = recordVersionData['previousVersionKey']
|
||||
self.update_date = datetime.datetime.utcnow()
|
||||
self.access_date = datetime.datetime.utcnow()
|
||||
|
||||
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.api_version = data['version']
|
||||
self.update_date = datetime.datetime.now()
|
||||
self.access_date = datetime.datetime.now()
|
||||
self.current_record_version = record_version
|
||||
self.version += 1
|
||||
|
||||
def access(self):
|
||||
self.access_date = datetime.datetime.now()
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"request.path": "../index.php",
|
||||
"dump.path": "/../dump.php?frontend=",
|
||||
"dump.path": "../dump.php",
|
||||
"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.onetimepasswordstatus.php";
|
||||
|
||||
//$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");
|
||||
|
||||
}
|
||||
|
||||
$htmlContent = file_get_contents("../index.html");
|
||||
|
||||
session_start();
|
||||
|
||||
|
@ -409,11 +409,7 @@ error_log("message");
|
||||
$recordStats["updateDate"] = $record->update_date;
|
||||
$recordsStats[$record->reference] = $recordStats;
|
||||
}
|
||||
if ( isset( $recordsStats ) ) {
|
||||
$result["recordsStats"] = $recordsStats;
|
||||
} else {
|
||||
$result["recordsStats"] = NULL;
|
||||
}
|
||||
|
||||
$result["statistics"] = $user->statistics;
|
||||
$result["version"] = $user->version;
|
||||
@ -547,11 +543,7 @@ error_log("message");
|
||||
|
||||
$user->Save();
|
||||
|
||||
if (isset( $parameters["parameters"]["records"]["deleted"] ) ) {
|
||||
$recordToDeleteReferenceList = $parameters["parameters"]["records"]["deleted"];
|
||||
} else {
|
||||
$recordToDeleteReferenceList = NULL;
|
||||
}
|
||||
$recordList = array();
|
||||
$c = count($recordToDeleteReferenceList);
|
||||
for ($i=0; $i<$c; $i++) {
|
||||
|
@ -17,12 +17,19 @@
|
||||
$databaseUser = $GLOBALS['configuration']['user'];
|
||||
$databasePassword = $GLOBALS['configuration']['pass'];
|
||||
$databasePort = $GLOBALS['configuration']['port'];
|
||||
$this->connection = mysqli_connect ($serverName, $databaseUser, $databasePassword , $databaseName, $databasePort);
|
||||
if (!$this->connection)
|
||||
$this->connection = mysql_connect ($serverName.":".$databasePort, $databaseUser, $databasePassword);
|
||||
if ($this->connection)
|
||||
{
|
||||
if (!mysql_select_db ($databaseName))
|
||||
{
|
||||
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()
|
||||
{
|
||||
@ -36,19 +43,19 @@
|
||||
|
||||
public static function Reader($query, $connection)
|
||||
{
|
||||
$cursor = mysqli_query($connection, $query);
|
||||
$cursor = mysql_query($query, $connection);
|
||||
return $cursor;
|
||||
}
|
||||
|
||||
public static function Read($cursor)
|
||||
{
|
||||
return mysqli_fetch_assoc($cursor);
|
||||
return mysql_fetch_assoc($cursor);
|
||||
}
|
||||
|
||||
public static function NonQuery($query, $connection)
|
||||
{
|
||||
mysqli_query($connection, $query);
|
||||
$result = mysqli_affected_rows($connection);
|
||||
mysql_query($query, $connection);
|
||||
$result = mysql_affected_rows($connection);
|
||||
if ($result == -1)
|
||||
{
|
||||
return false;
|
||||
@ -59,14 +66,14 @@
|
||||
|
||||
public static function Query($query, $connection)
|
||||
{
|
||||
$result = mysqli_query($connection, $query);
|
||||
return mysqli_num_rows($result);
|
||||
$result = mysql_query($query, $connection);
|
||||
return mysql_num_rows($result);
|
||||
}
|
||||
|
||||
public static function InsertOrUpdate($query, $connection)
|
||||
{
|
||||
$result = mysqli_query($connection, $query);
|
||||
return intval(mysqli_insert_id($connection));
|
||||
$result = mysql_query($query, $connection);
|
||||
return intval(mysql_insert_id($connection));
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -92,10 +92,10 @@ class POG_Base
|
||||
return $objectList;
|
||||
}
|
||||
|
||||
private function CreateObjects($mysqli_result, $objectClass, $lazyLoad = true)
|
||||
private function CreateObjects($mysql_result, $objectClass, $lazyLoad = true)
|
||||
{
|
||||
$objectList = array();
|
||||
while ($row = mysqli_fetch_assoc($mysqli_result))
|
||||
while ($row = mysql_fetch_assoc($mysql_result))
|
||||
{
|
||||
$pog_object = new $objectClass();
|
||||
$this->PopulateObjectAttributes($row, $pog_object);
|
||||
|
@ -164,26 +164,24 @@ if(count($_POST) > 0 && $_SESSION['diagnosticsSuccessful']==false)
|
||||
if ($errors == 0)
|
||||
{
|
||||
AddTrace('File Structure....OK!');
|
||||
#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']))
|
||||
if (!mysql_connect ($GLOBALS['configuration']['host'].":".$GLOBALS['configuration']['port'], $GLOBALS['configuration']['user'], $GLOBALS['configuration']['pass']))
|
||||
{
|
||||
$errors++;
|
||||
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())
|
||||
{
|
||||
$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');
|
||||
}
|
||||
# if ($errors == 0)
|
||||
# {
|
||||
# if (!@mysql_select_db ($GLOBALS['configuration']['db']))
|
||||
# {
|
||||
# $errors++;
|
||||
# AddError('Cannot find the specified database "'.$GLOBALS['configuration']['db'].'". Edit configuration.php');
|
||||
# }
|
||||
# }
|
||||
if ($errors == 0)
|
||||
{
|
||||
if (!@mysql_select_db ($GLOBALS['configuration']['db']))
|
||||
{
|
||||
$errors++;
|
||||
AddError('Cannot find the specified database "'.$GLOBALS['configuration']['db'].'". Edit configuration.php');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -276,10 +276,10 @@
|
||||
{
|
||||
$link = '';
|
||||
$content = file_get_contents($objectFilePath);
|
||||
$contentParts = explode("<b>",$content);
|
||||
$contentParts = split("<b>",$content);
|
||||
if (isset($contentParts[1]))
|
||||
{
|
||||
$contentParts2 = explode("</b>",$contentParts[1]);
|
||||
$contentParts2 = split("</b>",$contentParts[1]);
|
||||
}
|
||||
if (isset($contentParts2[0]))
|
||||
{
|
||||
@ -287,8 +287,8 @@
|
||||
}
|
||||
if (isset($className))
|
||||
{
|
||||
$linkParts1 = explode("\*\/", $contentParts[1]);
|
||||
$linkParts2 = explode("\@link", $linkParts1[0]);
|
||||
$linkParts1 = split("\*\/", $contentParts[1]);
|
||||
$linkParts2 = split("\@link", $linkParts1[0]);
|
||||
if (isset($linkParts2[1]))
|
||||
{
|
||||
$link = $linkParts2[1];
|
||||
@ -313,10 +313,10 @@
|
||||
function GetObjectName($objectFilePath)
|
||||
{
|
||||
$content = file_get_contents($objectFilePath);
|
||||
$contentParts = explode("<b>",$content);
|
||||
$contentParts = split("<b>",$content);
|
||||
if (isset($contentParts[1]))
|
||||
{
|
||||
$contentParts2 = explode("</b>",$contentParts[1]);
|
||||
$contentParts2 = split("</b>",$contentParts[1]);
|
||||
}
|
||||
if (isset($contentParts2[0]))
|
||||
{
|
||||
@ -593,10 +593,10 @@
|
||||
|
||||
//extract sql
|
||||
$content = file_get_contents($objectFilePath);
|
||||
$contentParts = explode("<b>",$content);
|
||||
$contentParts = split("<b>",$content);
|
||||
if (isset($contentParts[1]))
|
||||
{
|
||||
$contentParts2 = explode("</b>",$contentParts[1]);
|
||||
$contentParts2 = split("</b>",$contentParts[1]);
|
||||
}
|
||||
if (isset($contentParts2[0]))
|
||||
{
|
||||
@ -604,8 +604,8 @@
|
||||
}
|
||||
if (isset($className))
|
||||
{
|
||||
$sqlParts = explode(";",$contentParts[0]);
|
||||
$sqlPart = explode("CREATE",$sqlParts[0]);
|
||||
$sqlParts = split(";",$contentParts[0]);
|
||||
$sqlPart = split("CREATE",$sqlParts[0]);
|
||||
$sql = "CREATE ".$sqlPart[1].";";
|
||||
|
||||
//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.
|
||||
# For further information about its features and functionalities please
|
||||
|
@ -13,7 +13,7 @@
|
||||
<script>
|
||||
Clipperz_IEisBroken = false;
|
||||
Clipperz_normalizedNewLine = '\n';
|
||||
Clipperz_dumpUrl = "@dump.path@beta";
|
||||
Clipperz_dumpUrl = "@dump.path@/beta";
|
||||
</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_b(new Clipperz.Crypto.BigInt(randomBytes, 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())).module(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_A(someParameters.parameters.A);
|
||||
|
||||
@ -364,7 +363,7 @@ Clipperz.PM.Proxy.Offline.DataStore.prototype = MochiKit.Base.update(null, {
|
||||
|
||||
nextTollRequestType = 'CONNECT';
|
||||
} 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) {
|
||||
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);
|
||||
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 = (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())
|
||||
S = (A.multiply(v.powerModule(u, Clipperz.Crypto.SRP.n()))).powerModule(this.b(), Clipperz.Crypto.SRP.n());
|
||||
|
||||
K = stringHash(S.asString(10));
|
||||
KK = new Clipperz.Crypto.BigInt(K,16);
|
||||
|
||||
M1 = stringHash(
|
||||
"597626870978286801440197562148588907434001483655788865609375806439877501869636875571920406529" +
|
||||
@ -386,7 +383,7 @@ Clipperz.PM.Proxy.Offline.DataStore.prototype = MochiKit.Base.update(null, {
|
||||
s.asString(10) +
|
||||
A.asString(10) +
|
||||
this.B().asString(10) +
|
||||
KK.asString(10)
|
||||
K
|
||||
);
|
||||
if (someParameters.parameters.M1 == M1) {
|
||||
var M2;
|
||||
|
@ -4,7 +4,7 @@ Copyright 2008-2015 Clipperz Srl
|
||||
|
||||
This file is part of Clipperz, the online password manager.
|
||||
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
|
||||
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'], {
|
||||
'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",
|
||||
'loginFormUsernameLabel': "nom d’utilisateur",
|
||||
'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?",
|
||||
'loginFormVerifyTheCodeLabel': "vérifiez le code",
|
||||
'loginFormButtonLabel': "S’identifer",
|
||||
'loginPanelSwithLanguageDescription': "<p>Sélectionnez votre langue préférée</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> ",
|
||||
'loginPanelSwithLanguageDescription': "<p>Sélectionnez votre langue préféré</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 ...",
|
||||
'loginMessagePanelInitialButtonLabel': "Annuler",
|
||||
'loginMessagePanelConnectedTitle': "Connecté",
|
||||
@ -57,18 +57,18 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
||||
'userLoginPanelLoadingUserDataMessageTitle': "Utilisateur identifié",
|
||||
'userLoginPanelLoadingUserDataMessageText': "Téléchargement des cartes d’en-têtes chiffrés depuis Clipperz",
|
||||
'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é",
|
||||
'userLoginPanelDecryptingUserStatisticsMessageText': "Déchiffrement local des statistiques",
|
||||
'userLoginPanelDecryptingUserStatisticsMessageText': "Décryptage local des statistiques",
|
||||
'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",
|
||||
'registrationFormTitle': "créer votre compte",
|
||||
'registrationFormUsernameLabel': "nom d’utilisateur",
|
||||
'registrationFormPassphraseLabel': "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.",
|
||||
'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?",
|
||||
'registrationFormSimplyLoginLabel': "identifiez-vous",
|
||||
'registrationFormButtonLabel': "S’inscrire",
|
||||
@ -125,12 +125,12 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
||||
'changeCredentialsPanelCreatingNewCredentialsMessageTitle': "Modifier votre phrase secrète",
|
||||
'changeCredentialsPanelCreatingNewCredentialsMessageText': "Mettre à jour vos identifiants",
|
||||
'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",
|
||||
'changeCredentialsPanelDoneMessageText': "Terminé",
|
||||
'manageOTPTabLabel': "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",
|
||||
'accountPreferencesTabTitle': "Préférences",
|
||||
'accountPreferencesLanguageTitle': "Choix de la langue",
|
||||
@ -147,10 +147,10 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
||||
'deleteAccountTabTitle': "Supprimer votre compte",
|
||||
'deleteAccountFormUsernameLabel': "nom d’utilisateur",
|
||||
'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",
|
||||
'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.",
|
||||
'accountPanelDeletingAccountPanelConfirmationTitle': "ATTENTION",
|
||||
'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",
|
||||
'offlineCopyTabLabel': "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",
|
||||
'sharingTabLabel': "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> ",
|
||||
'printingTabLabel': "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",
|
||||
'contactsTabLabel': "Contacts",
|
||||
'contactsTabTitle': "Contacts",
|
||||
@ -178,12 +178,12 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
||||
'bookmarkletTabTitle': "Bookmarklet",
|
||||
'paswordGeneratorTabDescription': "<p> </p> ",
|
||||
'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",
|
||||
'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",
|
||||
'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",
|
||||
'mainPanelAddRecordButtonLabel': "Ajouter une nouvelle carte",
|
||||
'mainPanelRemoveRecordButtonLabel': "Supprimer une carte",
|
||||
@ -191,7 +191,7 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
||||
'mainPanelRecordFilterBlockTagsLabel': "tags",
|
||||
'mainPanelRecordFilterBlockSearchLabel': "chercher",
|
||||
'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> ",
|
||||
'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> ",
|
||||
@ -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> ",
|
||||
'fields': {
|
||||
'TXT': "Nom",
|
||||
'TXT': "Adresse email",
|
||||
'TXT': "Adresse eMail",
|
||||
'TXT': "Téléphone",
|
||||
'TXT': "Mobile",
|
||||
'ADDR': "Adresse"
|
||||
@ -256,23 +256,23 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
||||
},
|
||||
'recordFieldTypologies': {
|
||||
'TXT': {
|
||||
'description': "un simple champ de texte",
|
||||
'description': "simple text field",
|
||||
'shortDescription': "texte"
|
||||
},
|
||||
'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"
|
||||
},
|
||||
'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"
|
||||
},
|
||||
'DATE': {
|
||||
'description': "un champ avec un calendrier pour aider à la saisie de dates",
|
||||
'description': "a value set with a calendar helper",
|
||||
'shortDescription': "date"
|
||||
},
|
||||
'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"
|
||||
},
|
||||
'CHECK': {
|
||||
@ -303,7 +303,7 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
||||
'deleteRecordPanelCollectRecordDataMessageText': "Mise à jour de la liste des cartes",
|
||||
'deleteRecordPanelEncryptUserDataMessageTitle': "Supprimer la 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",
|
||||
'deleteRecordPanelUpdatingTheInterfaceMessageTitle': "Supprimer la carte",
|
||||
'deleteRecordPanelUpdatingTheInterfaceMessageText': "Mise à jour de l'interface",
|
||||
@ -325,20 +325,20 @@ Clipperz.PM.Strings.Languages['fr-FR'.toLowerCase()] = MochiKit.Base.merge(Clipp
|
||||
'recordDetailPasswordFieldUnscrambleLabel': "en clair",
|
||||
'recordDetailDirectLoginBlockTitle': "Accès directs",
|
||||
'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",
|
||||
'recordDetailEditButtonLabel': "Modifier",
|
||||
'recordDetailSaveButtonLabel': "Sauver",
|
||||
'recordDetailCancelButtonLabel': "Annuler",
|
||||
'newRecordTitleLabel': "_nouvelle carte_",
|
||||
'recordSaveChangesPanelCollectRecordInfoMessageTitle': "Enregistrement de la carte",
|
||||
'recordSaveChangesPanelCollectRecordInfoMessageText': "Mise à jour des entêtes de la carte",
|
||||
'recordSaveChangesPanelCollectRecordInfoMessageText': "Updating card headers",
|
||||
'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",
|
||||
'recordSaveChangesPanelEncryptRecordDataMessageText': "Chiffrement local des en-têtes",
|
||||
'recordSaveChangesPanelEncryptRecordDataMessageText': "Cryptage local des en-têtes chiffrés",
|
||||
'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",
|
||||
'recordSaveChangesPanelSendingDataToTheServerMessageText': "Téléchargement des cartes d’en-têtes chiffrés depuis Clipperz",
|
||||
'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": {
|
||||
"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": [],
|
||||
"isMulticolor": false,
|
||||
"width": 1440,
|
||||
"grid": 0,
|
||||
"tags": [
|
||||
"3d glasses",
|
||||
"glasses"
|
||||
"CLIPPERZ_SOLO_LOGO-nero"
|
||||
],
|
||||
"grid": 32
|
||||
"width": 1024
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"order": 42,
|
||||
"id": 0,
|
||||
"prevSize": 32,
|
||||
"code": 59649,
|
||||
"name": "3dglasses",
|
||||
"ligatures": "preview"
|
||||
"code": 59650,
|
||||
"name": "CLIPPERZ_SOLO_LOGO-nero",
|
||||
"ligatures": "clipperz"
|
||||
},
|
||||
"setIdx": 1,
|
||||
"setId": 12,
|
||||
"setIdx": 0,
|
||||
"setId": 13,
|
||||
"iconIdx": 0
|
||||
},
|
||||
{
|
||||
@ -100,12 +100,39 @@
|
||||
"prevSize": 32,
|
||||
"code": 58884,
|
||||
"name": "logo",
|
||||
"ligatures": "clipperz"
|
||||
"ligatures": "qibberz"
|
||||
},
|
||||
"setIdx": 8,
|
||||
"setId": 4,
|
||||
"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": {
|
||||
"paths": [
|
||||
@ -347,36 +374,6 @@
|
||||
"setId": 0,
|
||||
"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": {
|
||||
"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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.or
|
||||
]
|
||||
}, {trace:false});
|
||||
}, {trace:true});
|
||||
deferredResult.addCallback(MochiKit.Base.values);
|
||||
deferredResult.addCallback(MochiKit.Base.bind(function(someValues) {
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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;
|
||||
|
||||
return Clipperz.Async.callbacks("User.cloneRecord", [
|
||||
// MochiKit.Base.method(this, 'hasPendingChanges'),
|
||||
// Clipperz.Async.deferredIf("User has pending changes", [
|
||||
/// MochiKit.Async.fail
|
||||
// ], [
|
||||
// MochiKit.Base.method(user, 'createNewRecord'),
|
||||
// MochiKit.Base.methodcaller('setUpWithRecord', aRecord),
|
||||
// ])
|
||||
MochiKit.Base.method(this, 'hasPendingChanges'),
|
||||
Clipperz.Async.deferredIf("User has pending changes", [
|
||||
MochiKit.Async.fail
|
||||
], [
|
||||
MochiKit.Base.method(user, 'createNewRecord'),
|
||||
MochiKit.Base.methodcaller('setUpWithRecord', aRecord),
|
||||
])
|
||||
], {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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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();
|
||||
aConnection['b'] = new Clipperz.Crypto.BigInt(randomBytes, 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())).module(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['A'] = someParameters.parameters.A;
|
||||
|
||||
@ -444,7 +443,7 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, {
|
||||
|
||||
nextTollRequestType = 'CONNECT';
|
||||
} 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) {
|
||||
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);
|
||||
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 = (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());
|
||||
S = (A.multiply(v.powerModule(u, Clipperz.Crypto.SRP.n()))).powerModule(aConnection['b'], Clipperz.Crypto.SRP.n());
|
||||
|
||||
K = stringHash(S.asString(10));
|
||||
KK = new Clipperz.Crypto.BigInt(K,16);
|
||||
|
||||
M1 = stringHash(
|
||||
"597626870978286801440197562148588907434001483655788865609375806439877501869636875571920406529" +
|
||||
@ -465,7 +462,7 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, {
|
||||
s.asString(10) +
|
||||
A.asString(10) +
|
||||
aConnection['B'].asString(10) +
|
||||
KK.asString(10)
|
||||
K
|
||||
);
|
||||
if (someParameters.parameters.M1 == M1) {
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
For further information about its features and functionalities please
|
||||
@ -107,26 +107,20 @@ Clipperz.PM.Toll.prototype = MochiKit.Base.update(null, {
|
||||
var deferredResult;
|
||||
var result;
|
||||
var payment;
|
||||
var startTime;
|
||||
var currentTime;
|
||||
var elapsedTime;
|
||||
|
||||
currentTime = (new Date()).getMilliseconds();
|
||||
startTime = currentTime;
|
||||
var i;
|
||||
|
||||
result = null;
|
||||
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) {
|
||||
result = payment;
|
||||
} else {
|
||||
payment.increment();
|
||||
}
|
||||
|
||||
currentTime = (new Date()).getMilliseconds();
|
||||
elapsedTime = currentTime - startTime;
|
||||
i ++;
|
||||
}
|
||||
|
||||
if (result == null) {
|
||||
@ -143,7 +137,8 @@ Clipperz.PM.Toll.prototype = MochiKit.Base.update(null, {
|
||||
var toll;
|
||||
|
||||
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(toll, 'innerDeferredPay', new Clipperz.ByteArray("0x" + this.targetValue()), this.cost());
|
||||
deferredResult.addCallback(MochiKit.Base.bind(function(aPayment) {
|
||||
@ -156,6 +151,7 @@ Clipperz.PM.Toll.prototype = MochiKit.Base.update(null, {
|
||||
|
||||
return result;
|
||||
}, this));
|
||||
//deferredResult.addLog("<<<--- deferredPay - " + this.cost());
|
||||
deferredResult.callback();
|
||||
|
||||
return deferredResult;
|
||||
@ -189,5 +185,5 @@ Clipperz.PM.Toll.validate = function(aTargetValue, aToll, aCost) {
|
||||
return result;
|
||||
};
|
||||
|
||||
Clipperz.PM.Toll.maxTimeForCloseLoopIterations = 500; // milliseconds
|
||||
Clipperz.PM.Toll.pauseBetweenEachCloseLoop = 0.1; // seconds
|
||||
Clipperz.PM.Toll.numberOfCloseLoopIterations = 50;
|
||||
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.
|
||||
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.fileQueue = [];
|
||||
// this.notifications = [];
|
||||
this.notifications = [];
|
||||
this.operationsCount = null;
|
||||
|
||||
this.encryptedDocument = null;
|
||||
@ -56,20 +56,19 @@ MochiKit.Base.update(Clipperz.PM.UI.AttachmentController.prototype, {
|
||||
},
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
|
||||
notifyUpdate: function() {
|
||||
// MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'updateAttachmentQueueInfo', this.getQueueInfo(), this.getNotificationsInfo());
|
||||
MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'updateNotifications');
|
||||
MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'updateAttachmentQueueInfo', this.getQueueInfo(), this.getNotificationsInfo());
|
||||
},
|
||||
*/
|
||||
|
||||
getQueueInfo: function() {
|
||||
return this.fileQueue;
|
||||
},
|
||||
/*
|
||||
|
||||
getNotificationsInfo: function() {
|
||||
return this.notifications;
|
||||
},
|
||||
*/
|
||||
|
||||
//=========================================================================
|
||||
// Entry points
|
||||
//=========================================================================
|
||||
@ -165,7 +164,7 @@ MochiKit.Base.update(Clipperz.PM.UI.AttachmentController.prototype, {
|
||||
|
||||
var count = this.updateOperationsCount();
|
||||
|
||||
// this.notifyUpdate();
|
||||
this.notifyUpdate();
|
||||
|
||||
processNextElements = true;
|
||||
for (i in this.fileQueue) {
|
||||
@ -210,7 +209,7 @@ MochiKit.Base.update(Clipperz.PM.UI.AttachmentController.prototype, {
|
||||
case 'WAITING_SAVE':
|
||||
this.saveFile(currentElement['reference'], currentElement['decryptedArray'], currentElement['meta']['name'], currentElement['meta']['type']);
|
||||
processNextElements = false;
|
||||
// Clipperz.Sound.beep();
|
||||
Clipperz.Sound.beep();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -248,6 +247,7 @@ MochiKit.Base.update(Clipperz.PM.UI.AttachmentController.prototype, {
|
||||
|
||||
addFileToQueue: function(someParameters) {
|
||||
this.fileQueue.push(someParameters);
|
||||
this.addNotification(someParameters);
|
||||
|
||||
this.dispatchQueueOperations();
|
||||
},
|
||||
@ -268,10 +268,6 @@ MochiKit.Base.update(Clipperz.PM.UI.AttachmentController.prototype, {
|
||||
|
||||
MochiKit.Base.update(this.fileQueue[queuePosition], someParameters);
|
||||
|
||||
if ((someParameters['status'] == 'DONE') || (someParameters['status'] == 'FAILED')) {
|
||||
this.addNotification(this.fileQueue[queuePosition], someParameters['status']);
|
||||
}
|
||||
|
||||
this.dispatchQueueOperations();
|
||||
},
|
||||
|
||||
@ -297,38 +293,13 @@ MochiKit.Base.update(Clipperz.PM.UI.AttachmentController.prototype, {
|
||||
// Notifications
|
||||
//=========================================================================
|
||||
|
||||
addNotification: function(aQueueElement, aStatus) {
|
||||
//console.log("ADD ATTACHMENT NOTIFICATION", aQueueElement);
|
||||
var messagePrefix = "";
|
||||
var message;
|
||||
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});
|
||||
addNotification: function(aQueueElement) {
|
||||
this.notifications.push({
|
||||
'id': this.randomId(),
|
||||
'queueElement': aQueueElement
|
||||
})
|
||||
},
|
||||
/*
|
||||
|
||||
removeNotification: function(aNotificationId) {
|
||||
var i, position;
|
||||
|
||||
@ -343,15 +314,14 @@ MochiKit.Base.update(Clipperz.PM.UI.AttachmentController.prototype, {
|
||||
this.notifications.splice(position, 1);
|
||||
}
|
||||
|
||||
// this.notifyUpdate();
|
||||
this.notifyUpdate();
|
||||
},
|
||||
*/
|
||||
/*
|
||||
|
||||
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
|
||||
//=========================================================================
|
||||
@ -462,7 +432,6 @@ MochiKit.Base.update(Clipperz.PM.UI.AttachmentController.prototype, {
|
||||
'status': 'DONE',
|
||||
'requestProgress': 1,
|
||||
}),
|
||||
// add notification
|
||||
], {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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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,
|
||||
'className': React.PropTypes.string,
|
||||
'badgeTopContent': React.PropTypes.number,
|
||||
'badgeTopLevel': React.PropTypes.string,
|
||||
'badgeBottomContent': React.PropTypes.number,
|
||||
'badgeBottomLevel': React.PropTypes.string,
|
||||
},
|
||||
|
||||
//=========================================================================
|
||||
@ -54,18 +52,18 @@ Clipperz.PM.UI.Components.ButtonClass = React.createClass({
|
||||
|
||||
badgeTop = null;
|
||||
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;
|
||||
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']}, [
|
||||
React.DOM.div({'className':this.props['eventName']}, [
|
||||
React.DOM.h3({'className':'label'}, this.props['label']),
|
||||
return React.DOM.div({className:Clipperz.PM.UI.Components.classNames(classes), onClick:this.props['handler']}, [
|
||||
React.DOM.div({className:this.props['eventName']}, [
|
||||
React.DOM.h3({className:'label'}, this.props['label']),
|
||||
badgeTop,
|
||||
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.
|
||||
For further information about its features and functionalities please
|
||||
@ -63,66 +63,33 @@ Clipperz.PM.UI.Components.CardToolbarClass = React.createClass({
|
||||
|
||||
//============================================================================
|
||||
|
||||
notificationCounter: function () {
|
||||
var result;
|
||||
|
||||
// console.log("CARD TOOLBAR NOTIFICATIONS", this.props['notifications']);
|
||||
|
||||
if (this.props['notifications']) {
|
||||
result = this.props['notifications'].length;
|
||||
} else {
|
||||
result = null;
|
||||
}
|
||||
/*
|
||||
renderWithSidePanels: function () {
|
||||
var attachmentDownloadNotificationNumber = MochiKit.Base.filter(function(anElement) {
|
||||
return anElement['queueElement']['process'] == 'DOWNLOAD';
|
||||
}, this.props['attachmentQueueInfo']['notifications']).length;
|
||||
|
||||
var attachmentUploadNotificationNumber = this.props['attachmentQueueInfo']['notifications'].length - attachmentDownloadNotificationNumber;
|
||||
|
||||
// attachmentDownloadNotificationNumber = 2;
|
||||
// attachmentUploadNotificationNumber = 3;
|
||||
/*
|
||||
var verifyingCertificateNotificationNumber = this.props['certificateQueueInfo'] ? MochiKit.Base.filter(function (anCertificationInfo) {
|
||||
return anCertificationInfo['status'] == 'requested';
|
||||
}, this.props['certificateQueueInfo']).length : 0;
|
||||
var verifiedCertificateNotificationNumber = this.props['certificateQueueInfo'] ? MochiKit.Base.filter(function (anCertificationInfo) {
|
||||
return anCertificationInfo['status'] == 'published';
|
||||
}, 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 [
|
||||
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(),
|
||||
|
||||
// TODO: validate and adjust names
|
||||
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:'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()})
|
||||
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:'attachmentQueueToggleButton', label:"\u2191\u2193", handler:this.attachmentQueueToggleHandler, badgeTopContent:attachmentDownloadNotificationNumber, badgeBottomContent:attachmentUploadNotificationNumber}),
|
||||
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']);
|
||||
|
||||
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') {
|
||||
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') {
|
||||
result = [React.DOM.div({'className':'clipperz'}, [
|
||||
React.DOM.span({'className':'logo tag'}, "tag"),
|
||||
React.DOM.span({'className':'value'}, this.props['filter']['value'])
|
||||
result = [React.DOM.div({className:'clipperz'}, [
|
||||
React.DOM.span({className:'logo tag'}, "tag"),
|
||||
React.DOM.span({className:'value'}, this.props['filter']['value'])
|
||||
])];
|
||||
} else if (this.props['filter']['type'] == 'UNTAGGED') {
|
||||
result = [React.DOM.div({'className':'clipperz'}, [
|
||||
React.DOM.span({'className':'logo tag'}, "tag"),
|
||||
React.DOM.span({'className':'value'}, "untagged")
|
||||
result = [React.DOM.div({className:'clipperz'}, [
|
||||
React.DOM.span({className:'logo tag'}, "tag"),
|
||||
React.DOM.span({className:'value'}, "untagged")
|
||||
])];
|
||||
} else if (this.props['filter']['type'] == 'SEARCH') {
|
||||
result = [React.DOM.div({'className':'clipperz'}, [
|
||||
React.DOM.span({'className':'logo search'}, "search"),
|
||||
React.DOM.span({'className':'value'}, this.props['filter']['value'])
|
||||
result = [React.DOM.div({className:'clipperz'}, [
|
||||
React.DOM.span({className:'logo search'}, "search"),
|
||||
React.DOM.span({className:'value'}, this.props['filter']['value'])
|
||||
])];
|
||||
} 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 {
|
||||
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;
|
||||
},
|
||||
|
||||
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()),
|
||||
Clipperz.PM.UI.Components.AccountStatus(MochiKit.Base.update(this.props['accountInfo'], this.props['proxyInfo'])),
|
||||
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.
|
||||
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),
|
||||
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}),
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
|
||||
Copyright 2008-2018 Clipperz Srl
|
||||
Copyright 2008-2015 Clipperz Srl
|
||||
|
||||
This file is part of Clipperz, the online password manager.
|
||||
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')},
|
||||
// 'share': { 'label': "share", 'broadcastEvent': 'shareCard' },
|
||||
'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()}
|
||||
};
|
||||
},
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
|
||||
Copyright 2008-2018 Clipperz Srl
|
||||
Copyright 2008-2015 Clipperz Srl
|
||||
|
||||
This file is part of Clipperz, the online password manager.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
For further information about its features and functionalities please
|
||||
@ -306,33 +306,6 @@ Clipperz.PM.UI.Components.Cards.ViewClass = React.createClass({
|
||||
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) {
|
||||
@ -358,10 +331,10 @@ Clipperz.PM.UI.Components.Cards.ViewClass = React.createClass({
|
||||
React.DOM.div({'className':'fieldValues'}, [
|
||||
React.DOM.div({'className':'fieldLabel'}, aField['label']),
|
||||
Clipperz.PM.UI.Components.Cards.TextArea({
|
||||
// React.DOM.textarea({
|
||||
'readOnly': true,
|
||||
// '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': this.onClickOnFieldValue,
|
||||
'onClick': function(e) { e.target.focus(); e.target.select(); e.target.selectionStart = 0; e.target.selectionEnd = e.target.value.length; e.stopPropagation(); e.preventDefault(); },
|
||||
'className':Clipperz.PM.UI.Components.classNames(cardFieldValueClasses),
|
||||
'value': aField['value'],
|
||||
'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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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