diff --git a/AndroidManifest.xml b/AndroidManifest.xml index aed22eba9fe6f20a56c9654f3abcfda2b0518260..d4d0cf334985badd5fb4fad5f816269ab0c2715b 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> -<manifest android:hardwareAccelerated="true" android:versionCode="106030" android:versionName="1.6.3" package="fr.duniter.cesium" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> +<manifest android:hardwareAccelerated="true" android:versionCode="106040" android:versionName="1.6.4" package="fr.duniter.cesium" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> <uses-permission android:name="android.permission.INTERNET" /> <application tools:replace="android:appComponentFactory" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:hardwareAccelerated="true" android:icon="@mipmap/icon" android:label="@string/app_name" android:supportsRtl="true"> diff --git a/assets/www/config.js b/assets/www/config.js index 7b3bb56f0d871fd7e2282a2f67540ee2d4ae87b4..b2df25c551b3f6ad27ed649ffba92326a7bf60fa 100644 --- a/assets/www/config.js +++ b/assets/www/config.js @@ -95,8 +95,8 @@ angular.module("cesium.config", []) "defaultCountry": "France" } }, - "version": "1.6.3", - "build": "2020-04-14T15:27:14.343Z", + "version": "1.6.4", + "build": "2020-04-22T16:26:05.338Z", "newIssueUrl": "https://git.duniter.org/clients/cesium-grp/cesium/issues/new" }) diff --git a/assets/www/dist_js/cesium.js b/assets/www/dist_js/cesium.js index b462bdc2992aedc8a86a90fa3ff27512e6660563..f46864c7bf495c2923ecedb213ee43986fa1affa 100644 --- a/assets/www/dist_js/cesium.js +++ b/assets/www/dist_js/cesium.js @@ -8067,7 +8067,7 @@ angular.module('cesium.tx.services', ['ngApi', 'cesium.bma.services', tx.history.sort(function(tx1, tx2) { return (tx2.time - tx1.time); }); - var firstValidatedTxIndex = tx.history.findIndex(function(tx){ + var firstValidatedTxIndex = _.findIndex(tx.history, function(tx){ return (tx.block_number <= current.number - csSettings.data.blockValidityWindow); }); // remove validating from history @@ -16805,7 +16805,7 @@ function WalletListImportModalController($scope, $timeout, BMA, csWallet) { $scope.hasContent = angular.isDefined(file) && file !== ''; $scope.fileData = file.fileData ? file.fileData : ''; var isValidFile = $scope.fileData !== '' && - ($scope.fileData.type == 'text/csv' || $scope.fileData.type == 'text/plain' || 'application/vnd.ms-excel' /*fix issue #810*/); + ($scope.fileData.type === 'text/csv' || $scope.fileData.type === 'text/plain' || 'application/vnd.ms-excel' /*fix issue #810*/); // Bad file type: invalid file if (!isValidFile) { @@ -21039,6 +21039,17 @@ $templateCache.put('templates/blockchain/lookup.html','<ion-view><ion-nav-title> $templateCache.put('templates/blockchain/lookup_lg.html','<ion-view><ion-nav-title><span translate>BLOCKCHAIN.LOOKUP.TITLE</span></ion-nav-title><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="::\'templates/blockchain/list_blocks_lg.html\'"></ng-include></ion-content></ion-view>'); $templateCache.put('templates/blockchain/unlock_condition_popover.html','<ion-popover-view class="fit"><ion-header-bar><h1 class="title" translate>BLOCKCHAIN.VIEW.TX_OUTPUT_UNLOCK_CONDITIONS</h1></ion-header-bar><ion-content scroll="true"><div class="row" ng-repeat="condition in popoverData.unlockConditions track by $index" ng-style="::condition.style"><span class="gray" ng-if="::condition.operator">{{::\'BLOCKCHAIN.VIEW.TX_OUTPUT_OPERATOR.\'+condition.operator|translate}} </span><div ng-if="::condition.type==\'SIG\'"><i class="icon ion-key dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.SIG\' | translate"></span> <a ng-click="goState(\'app.wot_identity\', {pubkey:condition.value})" style="text-decoration: none" class="positive">{{condition.value|formatPubkey}}</a></div><div ng-if="::condition.type==\'XHX\'"><i class="icon ion-lock-combination dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.XHX\' | translate"></span> <a copy-on-click="{{::condition.value}}" class="positive">{{::condition.value|formatPubkey}}...</a></div><div ng-if="condition.type==\'CSV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CSV\' | translate"></span> {{::condition.value|formatDuration}}</div><div ng-if="condition.type==\'CLTV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CLTV\' | translate"></span> {{::condition.value|medianDate}}</div></div></ion-content></ion-popover-view>'); $templateCache.put('templates/blockchain/view_block.html','<ion-view><ion-nav-title><span class="title visible-xs visible-sm" ng-if="number==\'current\'">{{\'BLOCKCHAIN.VIEW.TITLE_CURRENT\'|translate}}</span> <span class="title visible-xs visible-sm" ng-if="number!=\'current\'">{{\'BLOCKCHAIN.VIEW.TITLE\'|translate:formData}}</span></ion-nav-title><ion-content class="no-padding-xs no-padding-sm" scroll="true"><div class="row no-padding"><div class="col no-padding"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list item-text-wrap no-padding-xs" ng-if="!loading"><div class="item item-text-wrap"><h3><span class="dark"><i class="icon ion-clock"></i> {{formData.medianTime | medianFromNowAndDate}}</span></h3><h3><span class="dark"><i class="icon ion-lock-combination"></i> {{\'BLOCKCHAIN.VIEW.COMPUTED_BY\'|translate}} </span><a class="positive" ui-sref="app.wot_identity({pubkey:issuer.pubkey, uid: issuer.uid})"><i class="icon ion-person positive"></i> {{issuer.name||issuer.uid}} <span class="gray" ng-if="issuer.name">({{issuer.uid}})</span></a></h3><h3><a ng-click="openRawBlock($event)"><i class="icon ion-share"></i> {{\'BLOCKCHAIN.VIEW.SHOW_RAW\'|translate}}</a></h3></div><span class="item item-divider">{{\'BLOCKCHAIN.VIEW.TECHNICAL_DIVIDER\' | translate}}</span><ion-item class="item-icon-left item-text-wrap" ng-if="!compactMode || $root.settings.expertMode"><i class="icon ion-gear-b"></i> {{\'BLOCKCHAIN.VIEW.VERSION\'|translate}} <span class="badge badge-stable">{{::formData.version}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="!compactMode || $root.settings.expertMode" copy-on-click="{{::formData.powMin}}"><i class="icon ion-lock-combination"></i> {{\'BLOCKCHAIN.VIEW.POW_MIN\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.POW_MIN_HELP\'|translate}}</h4><span class="badge badge-stable">{{::formData.powMin}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" copy-on-click="{{::formData.hash}}"><i class="icon ion-pound"></i> {{\'BLOCKCHAIN.VIEW.HASH\'|translate}}<h5 class="visible-xs visible-sm dark">{{::formData.hash}}</h5></ion-item><span class="item item-divider">{{\'BLOCKCHAIN.VIEW.DATA_DIVIDER\' | translate}}</span><ion-item ng-if="compactMode && formData.empty" class="item-icon-left item-text-wrap">{{\'BLOCKCHAIN.VIEW.EMPTY\'|translate}}</ion-item><ion-item ng-if="!compactMode || formData.dividend" class="item-icon-left item-text-wrap" copy-on-click="{{::formData.dividend/100}}"><i class="icon ion-arrow-up-c"></i><div class="col col-60">{{\'COMMON.UNIVERSAL_DIVIDEND\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.UNIVERSAL_DIVIDEND_HELP\'|translate: {membersCount: formData.membersCount} }}</h4></div><span class="badge badge-balanced" ng-if="formData.dividend">+1 <span ng-bind-html="formData.currency|currencySymbol: {useRelative: true} "></span> / {{\'COMMON.MEMBER\'|translate|lowercase}} </span><span class="badge badge-stable" ng-if="!formData.dividend">0</span> <span class="badge badge-secondary" ng-if="formData.dividend">+ {{formData.dividend| formatAmount: {currency: formData.currency, useRelative: false} }} / {{\'COMMON.MEMBER\'|translate|lowercase}}</span></ion-item><ng-if ng-if="!compactMode || formData.identitiesCount"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-clock" style="position: absolute; top: 16px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.IDENTITIES_COUNT\'|translate}} <span class="badge badge-balanced" ng-if="formData.identitiesCount">+{{::formData.identitiesCount}}</span> <span class="badge badge-stable" ng-if="!formData.identitiesCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.identitiesCount"><ion-item ng-repeat="identity in ::formData.identities" class="item-border-large item-small-height" ng-include="::\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.joinersCount"><ion-item class="item-icon-left"><i class="icon ion-person-add"></i> {{\'BLOCKCHAIN.VIEW.JOINERS_COUNT\'|translate}} <span class="badge badge-balanced" ng-if="formData.joinersCount">+{{::formData.joinersCount}}</span> <span class="badge badge-stable" ng-if="!formData.joinersCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.joinersCount"><ion-item ng-repeat="identity in ::formData.joiners" class="item-border-large item-small-height" ng-include="::\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.activesCount"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-refresh" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.ACTIVES_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.ACTIVES_COUNT_HELP\'|translate}}</h4><span class="badge badge-balanced" ng-if="formData.activesCount">{{::formData.activesCount}}</span> <span class="badge badge-stable" ng-if="!formData.activesCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.activesCount"><ion-item ng-repeat="identity in ::formData.actives" class="item-border-large item-small-height" ng-include="::\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || (formData.excludedCount-formData.revokedCount)"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-close dark" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.EXCLUDED_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.EXCLUDED_COUNT_HELP\'|translate}}</h4><span class="badge badge-assertive" ng-if="formData.excludedCount-formData.revokedCount">-{{::formData.excludedCount-formData.revokedCount}}</span> <span class="badge badge-stable" ng-if="!(formData.excludedCount-formData.revokedCount)">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.excludedCount"><ion-item ng-repeat="identity in ::formData.excluded" class="item-border-large item-small-height" ng-include="::\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.leaversCount"><ion-item class="item-icon-left" ng-if="!compactMode || formData.leaversCount"><i class="icon ion-person"></i> <b class="ion-minus" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.LEAVERS_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.LEAVERS_COUNT_HELP\'|translate}}</h4><span class="badge badge-assertive" ng-if="formData.leaversCount">-{{::formData.leaversCount}}</span> <span class="badge badge-stable" ng-if="!formData.leaversCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.leaversCount"><ion-item ng-repeat="identity in ::formData.leavers" class="item-border-large item-small-height" ng-include="::\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.revokedCount"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-minus-circled assertive" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.REVOKED_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.REVOKED_COUNT_HELP\'|translate}}</h4><span class="badge badge-balanced" ng-if="formData.revokedCount">-{{::formData.revokedCount}}</span> <span class="badge badge-stable" ng-if="!formData.revokedCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.revokedCount"><ion-item ng-repeat="identity in ::formData.revoked" class="item-border-large item-small-height" ng-include="::\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.certificationsCount"><ion-item class="item-icon-left"><i class="icon ion-ribbon-a"></i> {{\'BLOCKCHAIN.VIEW.CERT_COUNT\'|translate}} <span class="badge badge-stable" ng-class="{\'badge-positive\':formData.certificationsCount}">{{::formData.certificationsCount}}</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding no-padding-xs" ng-if="formData.certificationsCount"><div ng-repeat="(key, certs) in formData.certifications" class="item item-border-large item-small-height"><div class="row no-padding"><div class="col col-center no-padding"><ng-repeat ng-repeat="cert in certs"><ng-include src="::\'templates/blockchain/link_identity.html\'" onload="identity=cert.from"></ng-include><br></ng-repeat></div><div class="col col-10 col-center gray text-center no-padding"><h2><i class="icon ion-arrow-right-a"></i></h2></div><div class="col col-40 col-center no-padding" ng-include="::\'templates/blockchain/link_identity.html\'" onload="identity=certs[0].to"></div></div></div></div></ng-if><ng-if ng-if="!compactMode || formData.transactionsCount"><ion-item class="item-icon-left"><i class="icon ion-card"></i> {{\'BLOCKCHAIN.VIEW.TX_COUNT\'|translate}} <span class="badge badge-stable" ng-class="{\'badge-positive\':formData.transactionsCount}">{{::formData.transactionsCount}}</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding no-padding-xs" ng-if="formData.transactionsCount"><div ng-repeat="tx in ::formData.transactions" class="item item-small-height item-border-large"><div class="row no-padding" style="padding-top: 3px"><div class="col col-40 col-center no-padding list no-margin"><div ng-repeat="identity in ::tx.issuers" class="item no-padding item-small-height"><ng-include src="\'templates/blockchain/link_identity.html\'"></ng-include></div></div><div class="col col-10 col-center gray text-center no-padding"><h2><i class="icon ion-arrow-right-a"></i></h2></div><div class="col no-padding padding-right no-padding-xs col-text-wrap list no-margin"><span class="gray" ng-if="tx.toHimself" translate="">BLOCKCHAIN.VIEW.TX_TO_HIMSELF</span><div ng-repeat="output in ::tx.outputs" class="item no-padding item-small-height"><ng-include ng-if="::output.pubkey" src="\'templates/blockchain/link_identity.html\'" onload="identity=output"></ng-include><span ng-if="::!output.pubkey && output.unlockFunctions"><i class="icon ion-locked"></i> (<a ng-click="showUnlockConditionPopover(output, $event)"> <i ng-repeat="unlockFunction in ::output.unlockFunctions" ng-class="::{\'ion-key\': (unlockFunction==\'SIG\'), \'ion-clock\': (unlockFunction==\'CSV\' || unlockFunction==\'CLTV\'), \'ion-lock-combination\': (unlockFunction==\'XHX\') }" class="icon"></i> </a>) </span><span class="badge badge-balanced" ng-bind-html="::output.amount | formatAmount:{currency: formData.currency, useRelative: false} "></span></div></div></div></div></div></ng-if></div></div></div></ion-content></ion-view>'); +$templateCache.put('templates/common/badge_certification_count.html','<span ng-attr-id="{{$ctrl.csId}}" class="badge badge-balanced" ng-class="{\'badge-energized\': $ctrl.requirements.willNeedCertificationCount || ($ctrl.requirements.needCertificationCount + $ctrl.requirements.pendingCertificationCount >= $ctrl.parameters.sigQty),\n \'badge-assertive\': ($ctrl.requirements.needCertificationCount + $ctrl.requirements.pendingCertificationCount < $ctrl.parameters.sigQty)}"><span ng-if="$ctrl.requirements.certificationCount || !$ctrl.requirements.pendingCertificationCount"><i ng-if="!$ctrl.requirements.needCertificationCount" class="ion-android-done"></i> {{$ctrl.requirements.certificationCount}} <i ng-if="$ctrl.requirements.willNeedCertificationCount" class="ion-android-warning"></i> </span><span ng-if="$ctrl.requirements.pendingCertificationCount"><ng-if ng-if="$ctrl.requirements.certificationCount">+</ng-if><i class="ion-clock"></i> {{$ctrl.requirements.pendingCertificationCount}}</span></span>'); +$templateCache.put('templates/common/badge_given_certification_count.html','<div ng-attr-id="{{$ctrl.csId}}" class="badge badge-calm" ng-class="{\'badge-assertive\': $ctrl.identity.given_cert.length >= $ctrl.parameters.sigStock}"><span><i ng-if="$ctrl.identity.given_cert.length" class="ion-android-done"></i> {{$ctrl.identity.given_cert.length}} </span><span ng-if="$ctrl.identity.given_cert_pending.length">(<ng-if ng-if="$ctrl.identity.given_cert.length">+</ng-if><i class="ion-clock"></i> {{$ctrl.identity.given_cert_pending.length}}) </span><small>/ {{$ctrl.parameters.sigStock}}</small></div>'); +$templateCache.put('templates/common/form_error_messages.html','<div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.FIELD_ACCENT"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div>'); +$templateCache.put('templates/common/popover_copy.html','<ion-popover-view class="popover-copy" style="height: {{(!rows || rows <= 1) ? 50 : rows*22}}px"><ion-content scroll="false"><div class="list"><div class="item item-input"><input type="text" autocomplete="off" ng-if="!rows || rows <= 1" ng-model="value"><textarea ng-if="rows && rows > 1" ng-model="value" rows="{{rows}}" cols="10">\n </textarea></div></div></ion-content></ion-popover-view>'); +$templateCache.put('templates/common/popover_helptip.html','<ion-popover-view class="popover-helptip"><ion-content scroll="false" class="list"><p><i ng-if="icon.position && !icon.position.startsWith(\'bottom-\')" class="{{icon.class}} icon-{{icon.position}} hidden-xs" style="{{icon.style}}"></i><a ng-click="closePopover()" class="pull-right button-close" ng-class="{\'pull-left\': icon.position === \'right\', \'pull-right\': icon.position !== \'right\'}"><i class="ion-close"></i> </a><span> </span></p><p class="padding light"><ng-bind-html ng-bind-html="content | translate:contentParams"></ng-bind-html><ng-bind-html ng-bind-html="trustContent"></ng-bind-html></p><div class="text-center" ng-if="!tour"><button class="button button-small button-stable" ng-if="!hasNext" ng-click="closePopover(true)" translate>COMMON.BTN_UNDERSTOOD</button> <button class="button button-small button-stable" id="helptip-btn-ok" ng-if="hasNext" ng-click="closePopover(false)" translate>COMMON.BTN_UNDERSTOOD</button> <button id="helptip-btn-ok" class="button button-small button-positive icon-right ink" ng-if="hasNext" ng-click="closePopover(true)"><i class="icon ion-chevron-right"></i></button></div><div class="text-center" ng-if="tour"><button class="button button-small button-positive" id="helptip-btn-ok" ng-if="!hasNext" ng-click="closePopover(false)" translate>COMMON.BTN_CLOSE</button> <button id="helptip-btn-ok" class="button button-small button-positive icon-right ink" ng-if="hasNext" ng-click="closePopover(true)">{{\'COMMON.BTN_CONTINUE\'|translate}} <i class="icon ion-chevron-right"></i></button></div><p><i ng-if="icon.position && icon.position.startsWith(\'bottom-\')" class="{{icon.class}} icon-{{icon.position}} hidden-xs"></i></p></ion-content></ion-popover-view>'); +$templateCache.put('templates/common/popover_locales.html','<ion-popover-view class="fit popover-locales" style="height: {{locales.length*48}}px"><ion-content scroll="false"><div class="list item-text-wrap block"><a ng-repeat="l in locales track by l.id" class="item item-icon-left ink" ng-click="changeLanguage(l.id)"><i class="item-image avatar" style="background-image: url(./img/flag-{{l.flag}}.png)"></i> {{l.label | translate}}</a></div></ion-content></ion-popover-view>'); +$templateCache.put('templates/common/popover_profile.html',''); +$templateCache.put('templates/common/popover_share.html','<ion-popover-view class="popover-share"><ion-content scroll="false"><div class="bar bar-header"><h1 class="title">{{titleKey|translate:titleValues}}</h1><span class="gray pull-right">{{time|formatDate}}</span></div><div class="list no-margin no-padding has-header has-footer block"><div class="item item-input"><input type="text" autocomplete="off" ng-model="value"></div></div><div class="bar bar-footer"><div class="button-bar"><a class="button button-icon positive icon ion-social-facebook" href="https://www.facebook.com/sharer/sharer.php?u={{postUrl|formatEncodeURI}}&title={{postMessage|formatEncodeURI}}" onclick="window.open(this.href, \'facebook-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_FACEBOOK\'|translate}}"></a> <a class="button button-icon positive icon ion-social-twitter" href="https://twitter.com/intent/tweet?url={{postUrl|formatEncodeURI}}&text={{postMessage|formatEncodeURI}}" onclick="window.open(this.href, \'twitter-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_TWITTER\'|translate}}"></a> <a class="button button-icon positive icon ion-social-googleplus" href="https://plus.google.com/share?url={{postUrl|formatEncodeURI}}" onclick="window.open(this.href, \'google-plus-share\', \'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=296,width=580\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_GOOGLEPLUS\'|translate}}"></a> <a class="button button-icon positive icon ion-social-diaspora" href="https://sharetodiaspora.github.io/?title={{postMessage|formatEncodeURI}}&url={{postUrl|formatEncodeURI}}" onclick="window.open(this.href, \'diaspora-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_DIASPORA\'|translate}}"></a> <a class="button-close" title="{{\'COMMON.BTN_CLOSE\'|translate}}" ng-click="closePopover()"><i class="icon ion-close"></i></a></div></div></ion-content></ion-popover-view>'); +$templateCache.put('templates/common/popup_password.html','<form name="pwdForm" ng-submit="submit($event)"><div class="list" ng-init="setForm(pwdForm)"><label class="item item-input" ng-class="{\'item-input-error\': pwdForm.$submitted && pwdForm.password.$invalid}"><input name="password" type="password" placeholder="{{\'ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.PASSWORD_HELP\' | translate}}" ng-model="formData.password" ng-minlength="1" required></label><div class="form-errors" ng-if="pwdForm.$submitted && pwdForm.pseudo.$error" ng-messages="pwdForm.password.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="form-errors" ng-if="error"><div class="form-error">{{error|translate}}</div></div></div></form>'); +$templateCache.put('templates/common/qrcode.html','<a ng-attr-id="{{ qrcodeId }}" ng-show="!loading" class="qrcode fade-in pull-right" ng-class="{\'active\': toggleQRCode}" ng-click="toggleQRCode = !toggleQRCode"><div class="content"></div><div class="footer item item-icon-left item-text-wrap ink" on-hold="copy(formData.pubkey)" copy-on-click="{{:rebind:formData.pubkey}}" ng-click="$event.stopPropagation()"><i class="icon ion-key"></i> <span>{{:locale:\'COMMON.PUBKEY\'|translate}}</span><h4 id="pubkey" class="dark">{{:rebind:formData.pubkey}}</h4></div></a>'); +$templateCache.put('templates/common/view_passcode.html','<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm" translate>COMMON.PASSCODE.TITLE</span></ion-nav-title><ion-content scroll="false"></ion-content></ion-view>'); $templateCache.put('templates/currency/items_network.html','<ion-item id="helptip-network-blockchain" class="item-icon-left item-text-wrap"><i class="icon ion-clock"></i> <span class="col col-60" translate="">CURRENCY.VIEW.MEDIAN_TIME</span> <span class="badge badge-stable">{{formData.medianTime | medianDate}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-lock-combination"></i> <span class="col col-75" translate="">CURRENCY.VIEW.POW_MIN</span> <span class="badge badge-stable">{{formData.difficulty | formatInteger}}</span></ion-item><cs-extension-point name="network-actual"></cs-extension-point><div class="item item-divider"><span translate="">CURRENCY.VIEW.NETWORK_RULES_DIVIDER</span></div><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-clock" style="position: absolute; font-size: 20px; left: 16px; margin-top: 11px"></i> <b class="icon-secondary ion-lock-combination" style="left: 14px; margin-top: -4px"></b> <b class="icon-secondary ion-arrow-right-c" style="font-size: 12px; left: 28px; margin-top: -4px"></b> <b class="icon-secondary ion-lock-combination" style="left: 38px; margin-top: -4px"></b> <span class="col col-75" translate="">CURRENCY.VIEW.AVG_GEN_TIME</span> <span class="badge badge-stable">{{formData.avgGenTime | formatDuration}}</span></ion-item><div id="helptip-network-peers" class="item item-divider"><div class="pull-left"><span ng-if="search.type==\'member\'" translate="">PEER.MEMBERS</span> <span ng-if="search.type==\'mirror\'" translate="">PEER.MIRRORS</span> <span ng-if="search.type==\'offline\'" translate="">PEER.OFFLINE</span> <span ng-if="!search.type" translate="">PEER.PEERS</span> <span ng-if="!search.loading">({{search.results.length}})</span></div><div class="buttons pull-right"><ion-spinner class="icon" icon="android" ng-if="search.loading"></ion-spinner></div></div><ng-include src="::\'templates/network/items_peers.html\'"></ng-include>'); $templateCache.put('templates/currency/items_parameters.html','<div bind-notifier="{ rebind:formData.useRelative }"><ion-item class="item-icon-left item-text-wrap visible-xs visible-sm"><i class="icon ion-android-bookmark"></i> <span translate>CURRENCY.VIEW.CURRENCY_NAME</span><div class="item-note dark" ng-if="!loading">{{formData.currency}} (<span ng-bind-html=":rebind:formData.currency | currencySymbol:formData.useRelative"></span>)</div></ion-item><ion-item id="helptip-currency-mass-member" class="item-icon-left item-text-wrap"><i class="icon ion-pie-graph"></i><div class="col col-60"><span translate>CURRENCY.VIEW.SHARE</span> <span class="gray">(M<sub>t</sub>/N<sub>t</sub>)</span></div><span id="helptip-currency-mass-member-unit" ng-if="!loading" class="badge badge-calm" ng-bind-html=":rebind:formData.MoverN | formatAmount:{currency: formData.currency, useRelative: formData.useRelative, currentUD: formData.currentUD}"></span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-record"></i><div class="col col-60"><span translate>CURRENCY.VIEW.MASS</span> <span class="gray">(M<sub>t</sub>)</span></div><span class="badge badge-energized" ng-if="!loading" ng-bind-html=":rebind:formData.M | formatAmount:{currency: formData.currency, useRelative: formData.useRelative, currentUD: formData.currentUD}"></span></ion-item><cs-extension-point name="parameters-actual"></cs-extension-point><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-arrow-graph-up-right"></i><div class="col col-60"><span translate>CURRENCY.VIEW.C_ACTUAL</span> <span class="gray">(c<sub>{{\'CURRENCY.VIEW.CURRENT\'|translate}}</sub>)</span></div><span class="badge badge-stable">{{formData.cactual | formatNumeral: \'0,0.00\'}} % / {{formData.dt | formatPeriod}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-load-c"></i><div class="col col-60"><span translate>CURRENCY.VIEW.UD</span> <span class="gray">({{\'COMMON.UD\'|translate}}<sub>t</sub>)</span></div><div class="badge badge-royal" ng-if="!loading"><span ng-if="formData.useRelative">1<ng-bind-html ng-bind-html=":rebind:formData.currency| currencySymbol:true"></ng-bind-html></span><span ng-if="!formData.useRelative" ng-bind-html=":rebind:formData.currentUD | formatAmount:{currency: formData.currency, useRelative: formData.useRelative, currentUD: formData.currentUD}"></span> / {{formData.dt | formatPeriod}}</div></ion-item><div class="item item-toggle dark"><div class="item-label text-right gray" translate>COMMON.BTN_RELATIVE_UNIT</div><label class="toggle toggle-royal" id="helptip-currency-change-unit"><input type="checkbox" ng-model="formData.useRelative"><div class="track"><div class="handle"></div></div></label></div><a name="helptip-currency-rules-anchor"></a><div class="item item-divider" id="helptip-currency-rules"><span translate>CURRENCY.VIEW.MONEY_RULES_DIVIDER</span></div><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-arrow-graph-up-right"></i><div class="col col-60"><span translate>CURRENCY.VIEW.C_RULE</span> <span class="gray">(c)</span></div><span class="item-note dark" ng-if="!loading && !formData.udReevalTime0">{{formData.c*100 | formatNumeral: \'0,0.00\'}} % / {{formData.dt | formatPeriod}}</span><span class="badge badge-stable" ng-if="!loading && formData.udReevalTime0">{{formData.c*100 | formatNumeral: \'0,0.00\'}} % / {{formData.dtReeval | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.udReevalTime0 && formData.allRules"><i class="icon ion-load-c"></i> <b class="ion-clock icon-secondary" style="font-size: 18px; left: 36px; top: -12px"></b><div class="col col-60"><span translate>CURRENCY.VIEW.DT_REEVAL</span> <span class="gray">(dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)</span></div><span class="item-note dark" ng-if="!loading" translate="CURRENCY.VIEW.DT_REEVAL_VALUE" translate-values="formData"></span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.udReevalTime0 && formData.allRules"><i class="icon ion-load-c"></i> <b class="ion-calendar icon-secondary" style="font-size: 18px; left: 36px; top: -12px"></b><div class="col col-60"><span translate>CURRENCY.VIEW.UD_REEVAL_TIME0</span> <span class="gray">(t0<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)</span></div><span class="item-note dark" ng-if="!loading">{{formData.udReevalTime0|medianDate}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allRules"><i class="icon ion-load-c"></i> <b class="ion-calculator icon-secondary" style="font-size: 18px; left: 36px; top: -12px"></b><div class="col col-60"><span translate>CURRENCY.VIEW.UD_RULE</span> <span class="gray" ng-if="formData.udReevalTime0">- {{\'COMMON.UD\'|translate}}<sub>{{formData.dt|formatPeriod}}</sub>(t<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)</span></div><span class="item-note dark" ng-if="!loading && !formData.udReevalTime0">{{\'COMMON.UD\'|translate}}<sub>t-1</sub> + c<sup>2</sup> * M<sub>t-1</sub>/N<sub>t-1</sub></span><span class="item-note dark" ng-if="!loading && formData.udReevalTime0">{{\'COMMON.UD\'|translate}}<sub>{{formData.dt|formatPeriod}}</sub>(t<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub> - dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)+ c<sup>2</sup> * (M/N)(t<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub> - dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>) / dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub></span></ion-item><div class="item item-toggle dark"><div class="item-label text-right gray" translate>CURRENCY.VIEW.DISPLAY_ALL_RULES</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.allRules"><div class="track"><div class="handle"></div></div></label></div></div>'); $templateCache.put('templates/currency/items_wot.html','<div bind-notifier="{ rebind:formData.useRelative }"><a name="helptip-currency-newcomers-anchor"></a><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-person-stalker"></i><div class="col col-60"><span translate>CURRENCY.VIEW.MEMBERS</span> <span class="gray">(N<sub>{{\'CURRENCY.VIEW.CURRENT\'|translate}}</sub>)</span></div><span class="badge badge-calm" ng-if="!loading">{{formData.N | formatInteger}}</span></ion-item><ion-item id="helptip-currency-newcomers" class="item-icon-left item-text-wrap"><i class="icon ion-arrow-graph-up-right"></i><div class="col col-75"><span translate="CURRENCY.VIEW.MEMBERS_VARIATION" translate-values="{duration: formData.durationFromLastUD}"></span> <span class="gray">(ΔN)</span></div><div class="badge" ng-if="!loading" ng-class="{\'badge-balanced\': (formData.N>formData.Nprev), \'badge-stable\': (formData.N==formData.Nprev) ,\'badge-assertive\': (formData.Nprev>formData.N)}">{{formData.N > formData.Nprev ? \'+\' : \'\'}}{{formData.N - formData.Nprev}}</div></ion-item><cs-extension-point name="wot-actual"></cs-extension-point><div class="item item-divider"><span translate>CURRENCY.VIEW.WOT_RULES_DIVIDER</span></div><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-ribbon-b"></i> <span class="col col-75" translate>CURRENCY.VIEW.SIG_QTY_RULE</span> <span class="badge badge-balanced" ng-if="!loading">{{formData.sigQty}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-person"></i> <b class="ion-clock icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.MS_WINDOW</span> <span class="badge badge-assertive" ng-if="!loading">{{formData.msWindow | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-person"></i> <b class="ion-calendar icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.MS_VALIDITY</span> <span class="badge badge-balanced" ng-if="!loading">{{formData.msValidity | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-clock icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.SIG_WINDOW</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sigWindow | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-calendar icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.SIG_VALIDITY</span> <span class="badge badge-balanced" ng-if="!loading">{{formData.sigValidity | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-a"></i> <span class="col col-75" translate>CURRENCY.VIEW.SIG_STOCK</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sigStock}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-clock" style="position: absolute; font-size: 20px; left: 16px"></i> <b class="ion-ribbon-a icon-secondary" style="left: 16px; top: -15px"></b> <b class="ion-arrow-right-c icon-secondary" style="left: 28px; top: -15px"></b> <b class="ion-ribbon-a icon-secondary" style="left: 40px; top: -15px"></b> <span class="col col-75" translate>CURRENCY.VIEW.SIG_PERIOD</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sigPeriod | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-steam"></i> <b class="ion-person icon-secondary" style="left: 38px; top: -17px"></b><div class="col col-75"><span ng-bind-html="\'CURRENCY.VIEW.STEP_MAX\'|translate"></span> <span class="gray">(stepMax)</span></div><span class="badge badge-assertive" ng-if="!loading">{{formData.stepMax}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span class="col col-75" translate>CURRENCY.VIEW.SENTRIES</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sentries}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span class="col col-75" translate>CURRENCY.VIEW.SENTRIES_FORMULA</span> <span class="item-note dark" ng-if="!loading">{{\'CURRENCY.VIEW.MATH_CEILING\'| translate}}( N<sub>t</sub><sup>^ (1 / stepMax)</sup>)</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-pull-request"></i> <span class="col col-75" translate>CURRENCY.VIEW.XPERCENT</span> <span class="badge badge-stable" ng-if="!loading">{{formData.xpercent*100| formatNumeral: \'0,0\'}} %</span></ion-item><div class="item item-toggle dark"><div class="item-label text-right gray" translate>CURRENCY.VIEW.DISPLAY_ALL_RULES</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.allWotRules"><div class="track"><div class="handle"></div></div></label></div></div>'); @@ -21051,17 +21062,6 @@ $templateCache.put('templates/currency/view_currency_lg.html','<ion-view left-bu $templateCache.put('templates/help/help.html','<a name="join"></a><h2 translate>HELP.JOIN.SECTION</h2><a name="join-salt"></a><div class="row responsive-sm" ng-class="itemsClass[\'join-salt\']"><div class="col col-20" translate>LOGIN.SALT</div><div class="col" translate>HELP.JOIN.SALT</div></div><a name="join-password"></a><div class="row responsive-sm" ng-class="itemsClass[\'join-password\']"><div class="col col-20" translate>LOGIN.PASSWORD</div><div class="col" translate>HELP.JOIN.PASSWORD</div></div><a name="join-pseudo"></a><div class="row responsive-sm" ng-class="itemsClass[\'join-pseudo\']"><div class="col col-20" translate>ACCOUNT.NEW.PSEUDO</div><div class="col" translate>HELP.JOIN.PSEUDO</div></div><a name="login"></a><h2 translate>HELP.LOGIN.SECTION</h2><a name="login-pubkey"></a><div class="row responsive-sm" ng-class="itemsClass[\'login-pubkey\']"><div class="col col-20" translate>HELP.LOGIN.PUBKEY</div><div class="col" translate>HELP.LOGIN.PUBKEY_DEF</div></div><a name="login-method"></a><div class="row responsive-sm" ng-class="itemsClass[\'login-method\']"><div class="col col-20" translate>HELP.LOGIN.METHOD</div><div class="col" translate>HELP.LOGIN.METHOD_DEF</div></div><a name="glossary"></a><h2 translate>HELP.GLOSSARY.SECTION</h2><a name="pubkey"></a><div class="row responsive-sm" ng-class="itemsClass.pubkey"><div class="col col-20" translate>COMMON.PUBKEY</div><div class="col" translate>HELP.GLOSSARY.PUBKEY_DEF</div></div><a name="blockchain"></a><div class="row responsive-sm" ng-class="itemsClass.blockchain"><div class="col col-20" translate>HELP.GLOSSARY.BLOCKCHAIN</div><div class="col" translate>HELP.GLOSSARY.BLOCKCHAIN_DEF</div></div><a name="universal_dividend"></a> <a name="ud"></a><div class="row responsive-sm" ng-class="itemsClass.ud"><div class="col col-20" translate>COMMON.UNIVERSAL_DIVIDEND</div><div class="col" translate>HELP.GLOSSARY.UNIVERSAL_DIVIDEND_DEF</div></div><a name="member"></a><div class="row responsive-sm" ng-class="itemsClass.member"><div class="col col-20" translate>HELP.GLOSSARY.MEMBER</div><div class="col" translate>HELP.GLOSSARY.MEMBER_DEF</div></div><a name="wot"></a><div class="row responsive-sm" ng-class="itemsClass.wot"><div class="col col-20" translate>HELP.GLOSSARY.WOT</div><div class="col" translate>HELP.GLOSSARY.WOT_DEF</div></div><a name="currency_rules"></a><div class="row responsive-sm" ng-class="itemsClass.currency_rules"><div class="col col-20" translate>HELP.GLOSSARY.CURRENCY_RULES</div><div class="col" translate>HELP.GLOSSARY.CURRENCY_RULES_DEF</div></div><a name="distance_rule"></a><div class="row responsive-sm" ng-class="itemsClass.distance_rule"><div class="col col-20" translate>HELP.GLOSSARY.DISTANCE_RULE</div><div class="col" translate>HELP.GLOSSARY.DISTANCE_RULE_DEF</div></div>'); $templateCache.put('templates/help/modal_help.html','<ion-modal-view class="modal-full-height modal-help"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CLOSE</button><h1 class="title" translate>HELP.TITLE</h1></ion-header-bar><ion-content scroll="true" class="padding no-padding-xs"><div ng-class="listClass"><ng-include src="::\'templates/help/help.html\'"></ng-include></div><div class="padding hidden-xs text-center"><button class="button button-positive ink" type="submit" ng-click="closeModal()">{{\'COMMON.BTN_CLOSE\' | translate}}</button></div></ion-content></ion-modal-view>'); $templateCache.put('templates/help/view_help.html','<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm" translate="">HELP.TITLE</span></ion-nav-title><ion-content scroll="true" class="padding"><ng-include src="::\'templates/help/help.html\'"></ng-include></ion-content></ion-view>'); -$templateCache.put('templates/common/badge_certification_count.html','<span ng-attr-id="{{$ctrl.csId}}" class="badge badge-balanced" ng-class="{\'badge-energized\': $ctrl.requirements.willNeedCertificationCount || ($ctrl.requirements.needCertificationCount + $ctrl.requirements.pendingCertificationCount >= $ctrl.parameters.sigQty),\n \'badge-assertive\': ($ctrl.requirements.needCertificationCount + $ctrl.requirements.pendingCertificationCount < $ctrl.parameters.sigQty)}"><span ng-if="$ctrl.requirements.certificationCount || !$ctrl.requirements.pendingCertificationCount"><i ng-if="!$ctrl.requirements.needCertificationCount" class="ion-android-done"></i> {{$ctrl.requirements.certificationCount}} <i ng-if="$ctrl.requirements.willNeedCertificationCount" class="ion-android-warning"></i> </span><span ng-if="$ctrl.requirements.pendingCertificationCount"><ng-if ng-if="$ctrl.requirements.certificationCount">+</ng-if><i class="ion-clock"></i> {{$ctrl.requirements.pendingCertificationCount}}</span></span>'); -$templateCache.put('templates/common/badge_given_certification_count.html','<div ng-attr-id="{{$ctrl.csId}}" class="badge badge-calm" ng-class="{\'badge-assertive\': $ctrl.identity.given_cert.length >= $ctrl.parameters.sigStock}"><span><i ng-if="$ctrl.identity.given_cert.length" class="ion-android-done"></i> {{$ctrl.identity.given_cert.length}} </span><span ng-if="$ctrl.identity.given_cert_pending.length">(<ng-if ng-if="$ctrl.identity.given_cert.length">+</ng-if><i class="ion-clock"></i> {{$ctrl.identity.given_cert_pending.length}}) </span><small>/ {{$ctrl.parameters.sigStock}}</small></div>'); -$templateCache.put('templates/common/form_error_messages.html','<div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.FIELD_ACCENT"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div>'); -$templateCache.put('templates/common/popover_copy.html','<ion-popover-view class="popover-copy" style="height: {{(!rows || rows <= 1) ? 50 : rows*22}}px"><ion-content scroll="false"><div class="list"><div class="item item-input"><input type="text" autocomplete="off" ng-if="!rows || rows <= 1" ng-model="value"><textarea ng-if="rows && rows > 1" ng-model="value" rows="{{rows}}" cols="10">\n </textarea></div></div></ion-content></ion-popover-view>'); -$templateCache.put('templates/common/popover_helptip.html','<ion-popover-view class="popover-helptip"><ion-content scroll="false" class="list"><p><i ng-if="icon.position && !icon.position.startsWith(\'bottom-\')" class="{{icon.class}} icon-{{icon.position}} hidden-xs" style="{{icon.style}}"></i><a ng-click="closePopover()" class="pull-right button-close" ng-class="{\'pull-left\': icon.position === \'right\', \'pull-right\': icon.position !== \'right\'}"><i class="ion-close"></i> </a><span> </span></p><p class="padding light"><ng-bind-html ng-bind-html="content | translate:contentParams"></ng-bind-html><ng-bind-html ng-bind-html="trustContent"></ng-bind-html></p><div class="text-center" ng-if="!tour"><button class="button button-small button-stable" ng-if="!hasNext" ng-click="closePopover(true)" translate>COMMON.BTN_UNDERSTOOD</button> <button class="button button-small button-stable" id="helptip-btn-ok" ng-if="hasNext" ng-click="closePopover(false)" translate>COMMON.BTN_UNDERSTOOD</button> <button id="helptip-btn-ok" class="button button-small button-positive icon-right ink" ng-if="hasNext" ng-click="closePopover(true)"><i class="icon ion-chevron-right"></i></button></div><div class="text-center" ng-if="tour"><button class="button button-small button-positive" id="helptip-btn-ok" ng-if="!hasNext" ng-click="closePopover(false)" translate>COMMON.BTN_CLOSE</button> <button id="helptip-btn-ok" class="button button-small button-positive icon-right ink" ng-if="hasNext" ng-click="closePopover(true)">{{\'COMMON.BTN_CONTINUE\'|translate}} <i class="icon ion-chevron-right"></i></button></div><p><i ng-if="icon.position && icon.position.startsWith(\'bottom-\')" class="{{icon.class}} icon-{{icon.position}} hidden-xs"></i></p></ion-content></ion-popover-view>'); -$templateCache.put('templates/common/popover_locales.html','<ion-popover-view class="fit popover-locales" style="height: {{locales.length*48}}px"><ion-content scroll="false"><div class="list item-text-wrap block"><a ng-repeat="l in locales track by l.id" class="item item-icon-left ink" ng-click="changeLanguage(l.id)"><i class="item-image avatar" style="background-image: url(./img/flag-{{l.flag}}.png)"></i> {{l.label | translate}}</a></div></ion-content></ion-popover-view>'); -$templateCache.put('templates/common/popover_profile.html',''); -$templateCache.put('templates/common/popover_share.html','<ion-popover-view class="popover-share"><ion-content scroll="false"><div class="bar bar-header"><h1 class="title">{{titleKey|translate:titleValues}}</h1><span class="gray pull-right">{{time|formatDate}}</span></div><div class="list no-margin no-padding has-header has-footer block"><div class="item item-input"><input type="text" autocomplete="off" ng-model="value"></div></div><div class="bar bar-footer"><div class="button-bar"><a class="button button-icon positive icon ion-social-facebook" href="https://www.facebook.com/sharer/sharer.php?u={{postUrl|formatEncodeURI}}&title={{postMessage|formatEncodeURI}}" onclick="window.open(this.href, \'facebook-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_FACEBOOK\'|translate}}"></a> <a class="button button-icon positive icon ion-social-twitter" href="https://twitter.com/intent/tweet?url={{postUrl|formatEncodeURI}}&text={{postMessage|formatEncodeURI}}" onclick="window.open(this.href, \'twitter-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_TWITTER\'|translate}}"></a> <a class="button button-icon positive icon ion-social-googleplus" href="https://plus.google.com/share?url={{postUrl|formatEncodeURI}}" onclick="window.open(this.href, \'google-plus-share\', \'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=296,width=580\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_GOOGLEPLUS\'|translate}}"></a> <a class="button button-icon positive icon ion-social-diaspora" href="https://sharetodiaspora.github.io/?title={{postMessage|formatEncodeURI}}&url={{postUrl|formatEncodeURI}}" onclick="window.open(this.href, \'diaspora-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_DIASPORA\'|translate}}"></a> <a class="button-close" title="{{\'COMMON.BTN_CLOSE\'|translate}}" ng-click="closePopover()"><i class="icon ion-close"></i></a></div></div></ion-content></ion-popover-view>'); -$templateCache.put('templates/common/popup_password.html','<form name="pwdForm" ng-submit="submit($event)"><div class="list" ng-init="setForm(pwdForm)"><label class="item item-input" ng-class="{\'item-input-error\': pwdForm.$submitted && pwdForm.password.$invalid}"><input name="password" type="password" placeholder="{{\'ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.PASSWORD_HELP\' | translate}}" ng-model="formData.password" ng-minlength="1" required></label><div class="form-errors" ng-if="pwdForm.$submitted && pwdForm.pseudo.$error" ng-messages="pwdForm.password.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="form-errors" ng-if="error"><div class="form-error">{{error|translate}}</div></div></div></form>'); -$templateCache.put('templates/common/qrcode.html','<a ng-attr-id="{{ qrcodeId }}" ng-show="!loading" class="qrcode fade-in pull-right" ng-class="{\'active\': toggleQRCode}" ng-click="toggleQRCode = !toggleQRCode"><div class="content"></div><div class="footer item item-icon-left item-text-wrap ink" on-hold="copy(formData.pubkey)" copy-on-click="{{:rebind:formData.pubkey}}" ng-click="$event.stopPropagation()"><i class="icon ion-key"></i> <span>{{:locale:\'COMMON.PUBKEY\'|translate}}</span><h4 id="pubkey" class="dark">{{:rebind:formData.pubkey}}</h4></div></a>'); -$templateCache.put('templates/common/view_passcode.html','<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm" translate>COMMON.PASSCODE.TITLE</span></ion-nav-title><ion-content scroll="false"></ion-content></ion-view>'); $templateCache.put('templates/home/home.html','<ion-view id="home"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"></ion-nav-buttons><ion-content class="positive-900-bg circle-bg-dark"><div class="row padding-horizontal no-padding-xxs responsive-lg"><div class="col text-center no-padding-xs main-container"><div id="helptip-home-logo" class="logo"></div><h4><span class="hidden-xs" translate="">HOME.WELCOME</span> <b ng-show="!loading" translate-values=":currency:{currency: $root.currency.name}" translate="">HOME.MESSAGE</b></h4><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding animate-fade-in animate-show-hide ng-hide" ng-show="!loading && error"><div class="card card-item padding"><p class="item-content item-text-wrap"><span class="dark" trust-as-html="\'HOME.CONNECTION_ERROR\'|translate:node"></span></p><button type="button" class="button button-positive icon icon-left ion-refresh ink" ng-click="reload()">{{\'COMMON.BTN_REFRESH\'|translate}}</button></div></div><div class="center animate-show-hide ng-hide" ng-show="!loading && !error"><button type="button" class="button button-block button-stable button-raised icon-left icon ion-easel ink-dark hidden-xs" ng-show="login" ng-click="startHelpTour($event)">{{\'COMMON.BTN_HELP_TOUR\'|translate}}</button> <button type="button" class="button button-block button-positive button-raised ink-dark" ng-click="showJoinModal()" ng-if="!login" translate="">LOGIN.CREATE_FREE_ACCOUNT</button> <button type="button" class="item button button-block button-raised icon icon-left ion-person ink-dark" ng-class="{\'button-stable\': smallscreen, \'button-positive\': !smallscreen}" ui-sref="app.view_wallet" ng-show="login" translate="">MENU.ACCOUNT</button> <button type="button" class="item button button-block button-stable button-raised icon icon-left ion-card ink-dark visible-xs" ui-sref="app.view_wallet_tx" ng-if="login"><b class="icon-secondary ion-clock" style="left: 52px; top: -2px; font-size: 10pt; display: block"></b> {{\'MENU.TRANSACTIONS\'|translate}}</button> <button type="button" class="item button button-block button-positive button-raised icon icon-left ion-paper-airplane ink-dark visible-xs" ng-click="showTransferModal()" ng-if="login" translate="">COMMON.BTN_SEND_MONEY</button><br class="visible-xs visible-sm"><div class="text-center no-padding" ng-show="!login"><br class="visible-xs visible-sm">{{\'LOGIN.HAVE_ACCOUNT_QUESTION\'|translate}} <b></b></div><div class="text-center no-padding" ng-show="login"><br class="visible-xs visible-sm"><span ng-bind-html="\'HOME.NOT_YOUR_ACCOUNT_QUESTION\'|translate:{pubkey: walletData.pubkey}"></span><br><b><a class="assertive" ng-click="logout({askConfirm: true})" translate="">HOME.BTN_CHANGE_ACCOUNT</a></b></div><button type="button" class="button button-block button-stable button-raised ink visible-xs visible-sm" ui-sref="app.view_wallet" ng-if="!login" translate="">COMMON.BTN_LOGIN</button><div class="text-center no-padding visible-xs stable"><br>{{\'COMMON.APP_VERSION\'|translate:{version: config.version} }} | <a href="#" ng-click="showAboutModal()" translate="">HOME.BTN_ABOUT</a></div></div></div><div class="col no-padding" ng-class="{\'col-30\': !feed, \'col-10\': feed}"> </div><div class="col col-30 no-padding" ng-if="feed"><div class="feed padding-horizontal no-padding-xs padding-top"><h3 class="padding-left"><i class="icon ion-speakerphone"></i> {{feed.title}} <small><a ng-click="openLink($event, feed.home_page_url)" class="gray"><span translate="">HOME.SHOW_ALL_FEED</span> <i class="icon ion-chevron-right"></i></a></small></h3><div class="animate-show-hide ng-hide" ng-show="feed"><div ng-repeat="item in feed.items" class="card padding no-margin-xs"><div class="header"><i ng-if="item.author.avatar" class="avatar" style="background-image: url({{item.author.avatar}})"></i> <a ng-class="{\'avatar-left-padding\': item.author.avatar}" class="author" ng-click="item.author.url && openLink($event, item.author.url)">{{item.author.name}} </a><a ng-if="item.time" title="{{item.time|formatDate}}" ng-click="openLink($event, item.url)" class="item-note"><small><i class="icon ion-clock"></i> {{item.time|formatFromNow}}</small></a></div><h2 class="title feed-title"><a ng-click="openLink($event, item.url)">{{item.title}}</a></h2><div ng-if="item.content" class="content feed-content" trust-as-html="item.content"></div><h4 class="card-footer feed-footer text-right positive-100"><a ng-click="openLink($event, item.url)"><span ng-if="item.truncated" translate="">HOME.READ_MORE</span> <span ng-if="!item.truncated" translate="">COMMON.BTN_SHOW</span> <i class="icon ion-chevron-right"></i></a></h4></div></div></div></div></div></ion-content></ion-view>'); $templateCache.put('templates/join/modal_choose_account_type.html','<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="slidePrev()" ng-if="slides.slider.activeIndex"></button><h1 class="title" translate="">ACCOUNT.NEW.TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="slides.slider.activeIndex === 0" ng-click="slideNext()"><span translate="">COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page><ion-content class="has-header padding"><div class="center padding" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><div ng-if="!loading"><p ng-bind-html="\'ACCOUNT.NEW.INTRO_WARNING_TIME\'|translate:currency"></p><div class="row responsive-sm"><div class="col"><div class="item card item-icon-left padding item-text-wrap stable-bg"><i class="icon ion-android-warning assertive"></i><p class="item-content item-icon-left-padding"><span class="dark" translate="">ACCOUNT.NEW.INTRO_WARNING_SECURITY</span><br><small translate="">ACCOUNT.NEW.INTRO_WARNING_SECURITY_HELP</small></p></div></div><div class="col"><div class="item card item-icon-left padding item-text-wrap stable-bg"><i class="icon ion-information-circled positive"></i><p class="item-content item-icon-left-padding"><span class="dark" trust-as-html="\'ACCOUNT.NEW.REGISTRATION_NODE\'|translate:currency.node"></span><br><small trust-as-html="\'ACCOUNT.NEW.REGISTRATION_NODE_HELP\'|translate:currency.node"></small></p></div></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate="">COMMON.BTN_CANCEL</button> <button class="button button-positive icon-right ion-chevron-right ink" ng-click="slideNext()" ng-disabled="loading" type="button" translate="">COMMON.BTN_START</button></div></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header padding"><p translate="">ACCOUNT.NEW.SELECT_ACCOUNT_TYPE</p><div class="list"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectAccountTypeAndClose(\'member\')"><div class="item-content item-text-wrap"><i class="item-image icon dark ion-person"></i><h2 translate="">ACCOUNT.NEW.MEMBER_ACCOUNT</h2><h4 class="gray" ng-bind-html="\'ACCOUNT.NEW.MEMBER_ACCOUNT_HELP\'|translate:currency"></h4><i class="icon dark ion-ios-arrow-right"></i></div></div><cs-extension-point name="select-account-type"></cs-extension-point><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectAccountTypeAndClose(\'wallet\')"><div class="item-content item-text-wrap"><i class="item-image icon dark ion-card"></i><h2 translate="">ACCOUNT.NEW.WALLET_ACCOUNT</h2><h4 class="gray" translate="">ACCOUNT.NEW.WALLET_ACCOUNT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate="">COMMON.BTN_CANCEL</button></div></ion-content></ion-slide-page></ion-slides></ion-modal-view>'); $templateCache.put('templates/join/modal_join_member.html','<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="doPrev()" ng-if="slides.slider.activeIndex && slideBehavior.hasPreviousButton"></button> <button class="button button-icon button-clear icon ion-ios-help-outline visible-xs" ng-if="slideBehavior.helpAnchor" ng-click="showHelpModal(slideBehavior.helpAnchor)"></button><h1 class="title" translate>ACCOUNT.NEW.MEMBER_ACCOUNT_TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasNextButton" ng-click="doNext()"><span translate>COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-class="{\'button-text-stable\': !isLicenseRead}" ng-if="slideBehavior.hasAcceptButton" ng-click="isLicenseRead ? doNext() : undefined"><span translate>ACCOUNT.NEW.BTN_ACCEPT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasSendButton" ng-click="doNewAccount()"><i class="icon ion-android-send"></i></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page ng-if="licenseFileUrl"><ion-content class="has-header" scroll="false"><div class="padding" translate>ACCOUNT.NEW.INFO_LICENSE</div><div class="center padding" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><iframe ng-if="!loading" class="padding-left padding-right no-padding-xs iframe-license" id="iframe-license" ng-src="{{licenseFileUrl}}"></iframe><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="doNext(\'licenceForm\')" ng-disabled="!isLicenseRead" type="button" translate>ACCOUNT.NEW.BTN_ACCEPT_LICENSE</button></div></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="true"><form name="pseudoForm" novalidate="" ng-submit="doNext(\'pseudoForm\')"><div class="item item-text-wrap text-center padding"><a class="pull-right icon-help hidden-xs" ng-click="showHelpModal(\'join-pseudo\')"></a> <span translate>ACCOUNT.NEW.PSEUDO_WARNING</span></div><div class="list" ng-init="setForm(pseudoForm, \'pseudoForm\')"><div class="item item-input" ng-class="{\'item-input-error\': (pseudoForm.$submitted && pseudoForm.pseudo.$invalid) || (uiAlreadyUsed && formData.pseudo)}"><span class="input-label" translate>ACCOUNT.NEW.PSEUDO</span> <input id="pseudo" name="pseudo" type="text" placeholder="{{\'ACCOUNT.NEW.PSEUDO_HELP\' | translate}}" ng-model="formData.pseudo" autocomplete="off" ng-minlength="3" ng-maxlength="100" ng-pattern="userIdPattern" ng-model-options="{ debounce: 250 }" required></div><div class="form-errors" ng-show="pseudoForm.$submitted && pseudoForm.pseudo.$error" ng-messages="pseudoForm.pseudo.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 3}"></span></div><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG_WITH_LENGTH" translate-values="{maxLength: 100}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.INVALID_USER_ID"></span></div></div><div class="text-right" style="min-height: 18px"><div class="form-error gray" ng-if="formData.computing && formData.pseudo"><ion-spinner class="icon ion-spinner-small" icon="android" ng-if="formData.computing && formData.pseudo"></ion-spinner><span translate>ACCOUNT.NEW.CHECKING_PSEUDO</span></div><ng-if ng-if="!formData.computing && formData.pseudo"><div class="form-error balanced" ng-if="!uiAlreadyUsed "><i class="icon ion-checkmark balanced"></i> <span translate>ACCOUNT.NEW.PSEUDO_AVAILABLE</span></div><div class="form-error" ng-if="uiAlreadyUsed"><i class="icon ion-close-circled assertive"></i> <span translate>ACCOUNT.NEW.PSEUDO_NOT_AVAILABLE</span></div></ng-if></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" ng-disabled="uiAlreadyUsed" translate>COMMON.BTN_NEXT</button></div></div></form></ion-content></ion-slide-page><ion-slide-page ng-if="!formData.pubkey"><ion-content class="has-header" scroll="true"><form name="saltForm" novalidate="" ng-submit="doNext(\'saltForm\')"><div class="list" ng-init="setForm(saltForm, \'saltForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-salt\')"></a> <span translate>ACCOUNT.NEW.SALT_WARNING</span></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.username.$invalid}"><span class="input-label" translate>LOGIN.SALT</span> <input ng-if="!showUsername" name="username" type="password" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" autocomplete="off" ng-minlength="8" different-to="formData.pseudo" required> <input ng-if="showUsername" name="username" type="text" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" autocomplete="off" ng-minlength="8" different-to="formData.pseudo" required></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.username.$error" ng-messages="saltForm.username.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="differentTo"><span translate="ERROR.EQUALS_TO_PSEUDO"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.confirmSalt.$invalid}"><span class="input-label pull-right" translate>ACCOUNT.NEW.SALT_CONFIRM</span> <input ng-if="!showUsername" name="confirmUsername" type="password" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" autocomplete="off" compare-to="formData.username"> <input ng-if="showUsername" name="confirmUsername" type="text" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" autocomplete="off" compare-to="formData.username"></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.confirmUsername.$error" ng-messages="saltForm.confirmUsername.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.SALT_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showUsername"><div class="track"><div class="handle"></div></div></label></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></div></form></ion-content></ion-slide-page><ion-slide-page ng-if="!formData.pubkey"><ion-content class="has-header" scroll="true"><form name="passwordForm" novalidate="" ng-submit="doNext(\'passwordForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-password\')"></a> <span translate>ACCOUNT.NEW.PASSWORD_WARNING</span></div><div class="list" ng-init="setForm(passwordForm, \'passwordForm\')"><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.password.$invalid}"><span class="input-label" translate>LOGIN.PASSWORD</span> <input ng-if="!showPassword" name="password" type="password" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" autocomplete="off" ng-change="formDataChanged()" ng-minlength="8" different-to="formData.username" required> <input ng-if="showPassword" name="text" type="text" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" autocomplete="off" ng-change="formDataChanged()" ng-minlength="8" different-to="formData.username" required></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.password.$error" ng-messages="passwordForm.password.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="differentTo"><span translate="ERROR.EQUALS_TO_SALT"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.confirmPassword.$invalid}"><span class="input-label" translate>ACCOUNT.NEW.PASSWORD_CONFIRM</span> <input ng-if="!showPassword" name="confirmPassword" type="password" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" autocomplete="off" compare-to="formData.password"> <input ng-if="showPassword" name="confirmPassword" type="text" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" autocomplete="off" compare-to="formData.password"></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.confirmPassword.$error" ng-messages="passwordForm.confirmPassword.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.PASSWORD_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showPassword"><div class="track"><div class="handle"></div></div></label></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" ng-click="getRevocationDocument()" translate>COMMON.BTN_NEXT</button></div><div class="padding hidden-xs"></div></form></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="true"><div class="center padding" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><ng-if ng-if="!formData.computing"><div class="animate-fade-in animate-show-hide ng-hide" ng-show="accountAvailable"><div class="padding text-center" translate>ACCOUNT.NEW.LAST_SLIDE_CONGRATULATION</div><div class="list"><ion-item class="item text-center item-text-wrap"><h3 class="gray" translate>LOGIN.ASSOCIATED_PUBKEY</h3><h3 class="dark bold">{{formData.pubkey}}</h3></ion-item></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-click="doNewAccount()" translate>COMMON.BTN_SEND <i class="icon ion-android-send"></i></button></div></div><div class="animate-fade-in animate-show-hide ng-hide" ng-show="!accountAvailable"><ion-item class="item-icon-left item-text-wrap text-center"><i class="icon ion-minus-circled assertive"></i> <span id="modal-license" trust-as-html="\'ERROR.EXISTING_ACCOUNT\'|translate"></span></ion-item><div class="list"><ion-item class="item item-text-wrap item-border"><div class="padding text-center"><span class="gray text-no-wrap">{{formData.pubkey}}</span></div></ion-item><div class="padding text-center"><span translate>ERROR.EXISTING_ACCOUNT_REQUEST</span></div></div><div class="padding hidden-xs text-left"><button class="button button-assertive icon-left ion-chevron-left ink" ng-click="identifierRecovery()" translate>COMMON.BTN_MODIFY</button></div></div></ng-if></ion-content></ion-slide-page></ion-slides></ion-modal-view>'); @@ -31097,92 +31097,77 @@ $translateProvider.translations("nl-NL", { ); $translateProvider.translations("en-GB", { - "NETWORK": { - "VIEW": { - "BTN_GRAPH": "Statistics" - } - }, - "GRAPH": { + "MAP": { "COMMON": { - "LINEAR_SCALE" : "Linear scale", - "LOGARITHMIC_SCALE" : "Logarithmic scale", - "BTN_SHOW_STATS": "See statistics", - "BTN_SHOW_DETAILED_STATS": "Detailed statistics", - "RANGE_DURATION_DIVIDER": "Step unit:", - "RANGE_DURATION": { - "HOUR": "Group by <b>hour</b>", - "DAY": "Group by <b>day</b>", - "MONTH": "Group by <b>month</b>" - } - }, - "ACCOUNT": { - "TITLE": "Statistics", - "BTN_SHOW_STATS": "View account Statistics", - "BALANCE_DIVIDER": "Account status", - "BALANCE_TITLE": "Evolution of the account {{pubkey|formatPubkey}}", - "TX_RECEIVED_LABEL": "Receipts", - "TX_SENT_LABEL": "Spending", - "UD_LABEL": "UD", - "BALANCE_LABEL": "Balance", - "INPUT_CHART_TITLE": "Sum of incoming flows, per transmitter:", - "OUTPUT_CHART_TITLE": "Sum of outgoing flows, per recipient:" - }, - "BLOCKCHAIN": { - "TITLE": "Statistics", - "BLOCKS_ISSUERS_DIVIDER": "Written blocks by members", - "BLOCKS_ISSUERS_HELP": "<b>{{issuerCount|formatInteger}} members</b> calculated <b>{{blockCount|formatInteger}} blocks</b>", - "BLOCKS_ISSUERS_TITLE": "Number of blocks calculated per member", - "BLOCKS_ISSUERS_LABEL": "Number of blocks", - "TX_DIVIDER": "Analysis of transactions", - "TX_AMOUNT_TITLE": "Transaction volume", - "TX_AMOUNT_PUBKEY_TITLE": "Volume of transactions calculated by {{issuer | formatPubkey}}", - "TX_AMOUNT_LABEL": "Exchange volume", - "TX_COUNT_TITLE": "Number of written transactions", - "TX_COUNT_LABEL": "Number of transactions", - "TX_AVG_BY_BLOCK": "Average per block" - }, - "CURRENCY": { - "MONETARY_MASS_TITLE": "Evolution of the monetary mass", - "MONETARY_MASS_LABEL": "Monetary mass", - "MONETARY_MASS_SHARE_LABEL": "Average per member", - "UD_TITLE": "Evolution of the universal dividend", - "MEMBERS_COUNT_TITLE": "Evolution of the number of members", - "MEMBERS_COUNT_LABEL": "Number of members" + "SEARCH_DOTS": "Search...", + "BTN_LOCALIZE_ME": "Localize me" }, - "PEER": { + "NETWORK": { + "LOOKUP": { + "BTN_MAP": "Peers map", + "BTN_MAP_HELP": "Open peers map" + }, "VIEW": { - "BLOCK_COUNT_LABEL": "Computed blocks count", - "BLOCK_COUNT": "{{count}} blocks", - "NO_BLOCK": "No block" + "TITLE": "Peers map", + "LAYER": { + "MEMBER": "Member peers", + "MIRROR": "Mirror peers", + "OFFLINE": "Offline peers" + } } }, - "DOC_STATS": { - "TITLE": "Data storage statistics (Cesium+)", - "USER": { - "TITLE": "Number of documents linked to an account", - "USER_PROFILE": "User profiles", - "USER_SETTINGS": "Saved settings" - }, - "USER_DELTA": { - "TITLE": "Delta / Number of documents linked to an account", - "USER_PROFILE": "User profiles", - "USER_SETTINGS": "Saved settings" + "WOT": { + "LOOKUP": { + "BTN_MAP": "Map", + "BTN_MAP_HELP": "Open members map" }, - "MESSAGE": { - "TITLE": "Number of documents related to the communication", - "MESSAGE_INBOX": "Messages in inbox", - "MESSAGE_OUTBOX": "Messages in outbox", - "INVITATION_CERTIFICATION": "Invitations to certify" + "VIEW": { + "TITLE": "Members map", + "LAYER": { + "MEMBER": "<i class=\"icon ion-person positive\"></i> Members", + "PENDING": "<i class=\"icon ion-clock energized\"></i> Pending registrations", + "WALLET": "<i class=\"icon ion-card gray\"></i> Simple wallets" + } }, - "SOCIAL": { - "TITLE": "Number of page or group", - "PAGE_COMMENT": "Comments", - "PAGE_RECORD": "Pages", - "GROUP_RECORD": "Groups" + "ERROR": { + "LOAD_POSITION_FAILED": "Can not retrieve the positions to display." + } + }, + "REGISTRY": { + "LOOKUP": { + "BTN_MAP": "Map", + "BTN_MAP_HELP": "Open the map of the pages" }, - "OTHER": { - "TITLE": "Other documents", - "HISTORY_DELETE": "Deletion of documents" + "VIEW": { + "TITLE": "Map of pages", + "LAYER": { + "SHOP": "<i class=\"icon ion-page-shop positive\"></i> Local shops", + "COMPANY": "<i class=\"icon ion-page-company positive\"></i> Companies", + "ASSOCIATION": "<i class=\"icon ion-page-association energized\"></i> Associations", + "INSTITUTION": "<i class=\"icon ion-page-institution gray\"></i> Institutions" + } + } + }, + "PROFILE": { + "MARKER_HELP": "<b>Drag and drop</b> this marker to <b>update<br/>your position</b>, or use the buttons<br/>on top of the map." + }, + "ERROR": { + "LOCALIZE_ME_FAILED": "Unable to retrieve your current position" + }, + "SETTINGS": { + "MAP_DIVIDER": "Maps", + "ENABLE_GOOGLE_API": "Enable Google API services?", + "ENABLE_GOOGLE_API_HELP": "In the <b>members map</b>, allows you to display accounts with an address but without geolocation.", + "GOOGLE_API_KEY": "Google API key", + "BTN_GOOGLE_API": "Getting a key", + "BTN_GOOGLE_API_WARNING": "requires a Google account", + "GOOGLE_API_KEY_PLACEHOLDER": "eg: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I" + }, + "HELP": { + "TIP": { + "WOT": "This map displays <b>profiles with a position</b>, whether they are member accounts or not.<br/><br/>Only profiles with the option "appear on the map" has been activated.", + "WOT_BTN_LAYERS": "<b>Filter the displayed data</b>: members, pending registrations, simple portfolios, etc.", + "WOT_BTN_SEARCH": "You can <b>search</b> by name, public key, or member pseudonym." } } } @@ -31190,92 +31175,77 @@ $translateProvider.translations("en-GB", { ); $translateProvider.translations("en", { - "NETWORK": { - "VIEW": { - "BTN_GRAPH": "Statistics" - } - }, - "GRAPH": { + "MAP": { "COMMON": { - "LINEAR_SCALE" : "Linear scale", - "LOGARITHMIC_SCALE" : "Logarithmic scale", - "BTN_SHOW_STATS": "See statistics", - "BTN_SHOW_DETAILED_STATS": "Detailed statistics", - "RANGE_DURATION_DIVIDER": "Step unit:", - "RANGE_DURATION": { - "HOUR": "Group by <b>hour</b>", - "DAY": "Group by <b>day</b>", - "MONTH": "Group by <b>month</b>" - } - }, - "ACCOUNT": { - "TITLE": "Statistics", - "BTN_SHOW_STATS": "View account Statistics", - "BALANCE_DIVIDER": "Account status", - "BALANCE_TITLE": "Evolution of the account {{pubkey|formatPubkey}}", - "TX_RECEIVED_LABEL": "Receipts", - "TX_SENT_LABEL": "Spending", - "UD_LABEL": "UD", - "BALANCE_LABEL": "Balance", - "INPUT_CHART_TITLE": "Sum of incoming flows, per transmitter:", - "OUTPUT_CHART_TITLE": "Sum of outgoing flows, per recipient:" - }, - "BLOCKCHAIN": { - "TITLE": "Statistics", - "BLOCKS_ISSUERS_DIVIDER": "Written blocks by members", - "BLOCKS_ISSUERS_HELP": "<b>{{issuerCount|formatInteger}} members</b> calculated <b>{{blockCount|formatInteger}} blocks</b>", - "BLOCKS_ISSUERS_TITLE": "Number of blocks calculated per member", - "BLOCKS_ISSUERS_LABEL": "Number of blocks", - "TX_DIVIDER": "Analysis of transactions", - "TX_AMOUNT_TITLE": "Transaction volume", - "TX_AMOUNT_PUBKEY_TITLE": "Volume of transactions calculated by {{issuer | formatPubkey}}", - "TX_AMOUNT_LABEL": "Exchange volume", - "TX_COUNT_TITLE": "Number of written transactions", - "TX_COUNT_LABEL": "Number of transactions", - "TX_AVG_BY_BLOCK": "Average per block" - }, - "CURRENCY": { - "MONETARY_MASS_TITLE": "Evolution of the monetary mass", - "MONETARY_MASS_LABEL": "Monetary mass", - "MONETARY_MASS_SHARE_LABEL": "Average per member", - "UD_TITLE": "Evolution of the universal dividend", - "MEMBERS_COUNT_TITLE": "Evolution of the number of members", - "MEMBERS_COUNT_LABEL": "Number of members" + "SEARCH_DOTS": "Search...", + "BTN_LOCALIZE_ME": "Localize me" }, - "PEER": { + "NETWORK": { + "LOOKUP": { + "BTN_MAP": "Peers map", + "BTN_MAP_HELP": "Open peers map" + }, "VIEW": { - "BLOCK_COUNT_LABEL": "Computed blocks count", - "BLOCK_COUNT": "{{count}} blocks", - "NO_BLOCK": "No block" + "TITLE": "Peers map", + "LAYER": { + "MEMBER": "Member peers", + "MIRROR": "Mirror peers", + "OFFLINE": "Offline peers" + } } }, - "DOC_STATS": { - "TITLE": "Data storage statistics (Cesium+)", - "USER": { - "TITLE": "Number of documents linked to an account", - "USER_PROFILE": "User profiles", - "USER_SETTINGS": "Saved settings" + "WOT": { + "LOOKUP": { + "BTN_MAP": "Map", + "BTN_MAP_HELP": "Open members map" }, - "USER_DELTA": { - "TITLE": "Delta / Number of documents linked to an account", - "USER_PROFILE": "User profiles", - "USER_SETTINGS": "Saved settings" + "VIEW": { + "TITLE": "Members map", + "LAYER": { + "MEMBER": "<i class=\"icon ion-person positive\"></i> Members", + "PENDING": "<i class=\"icon ion-clock energized\"></i> Pending registrations", + "WALLET": "<i class=\"icon ion-card gray\"></i> Simple wallets" + } }, - "MESSAGE": { - "TITLE": "Number of documents related to the communication", - "MESSAGE_INBOX": "Messages in inbox", - "MESSAGE_OUTBOX": "Messages in outbox", - "INVITATION_CERTIFICATION": "Invitations to certify" - }, - "SOCIAL": { - "TITLE": "Number of page or group", - "PAGE_COMMENT": "Comments", - "PAGE_RECORD": "Pages", - "GROUP_RECORD": "Groups" + "ERROR": { + "LOAD_POSITION_FAILED": "Can not retrieve the positions to display." + } + }, + "REGISTRY": { + "LOOKUP": { + "BTN_MAP": "Map", + "BTN_MAP_HELP": "Open the map of the pages" }, - "OTHER": { - "TITLE": "Other documents", - "HISTORY_DELETE": "Deletion of documents" + "VIEW": { + "TITLE": "Map of pages", + "LAYER": { + "SHOP": "<i class=\"icon ion-page-shop positive\"></i> Local shops", + "COMPANY": "<i class=\"icon ion-page-company positive\"></i> Companies", + "ASSOCIATION": "<i class=\"icon ion-page-association energized\"></i> Associations", + "INSTITUTION": "<i class=\"icon ion-page-institution gray\"></i> Institutions" + } + } + }, + "PROFILE": { + "MARKER_HELP": "<b>Drag and drop</b> this marker to <b>update<br/>your position</b>, or use the buttons<br/>on top of the map." + }, + "ERROR": { + "LOCALIZE_ME_FAILED": "Unable to retrieve your current position" + }, + "SETTINGS": { + "MAP_DIVIDER": "Maps", + "ENABLE_GOOGLE_API": "Enable Google API services?", + "ENABLE_GOOGLE_API_HELP": "In the <b>members map</b>, allows you to display accounts with an address but without geolocation.", + "GOOGLE_API_KEY": "Google API key", + "BTN_GOOGLE_API": "Getting a key", + "BTN_GOOGLE_API_WARNING": "requires a Google account", + "GOOGLE_API_KEY_PLACEHOLDER": "eg: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I" + }, + "HELP": { + "TIP": { + "WOT": "This map displays <b>profiles with a position</b>, whether they are member accounts or not.<br/><br/>Only profiles with the option "appear on the map" has been activated.", + "WOT_BTN_LAYERS": "<b>Filter the displayed data</b>: members, pending registrations, simple portfolios, etc.", + "WOT_BTN_SEARCH": "You can <b>search</b> by name, public key, or member pseudonym." } } } @@ -31283,692 +31253,595 @@ $translateProvider.translations("en", { ); $translateProvider.translations("eo-EO", { - "NETWORK": { - "VIEW": { - "BTN_GRAPH": "Statistikoj" - } - }, - "GRAPH": { + "MAP": { "COMMON": { - "LINEAR_SCALE" : "Lineara skalo", - "LOGARITHMIC_SCALE" : "Logaritma skalo", - "BTN_SHOW_STATS": "Vidi la statistikojn", - "BTN_SHOW_DETAILED_STATS": "Detalaj statistikoj", - "RANGE_DURATION_DIVIDER": "Tempo-unuo:", - "RANGE_DURATION": { - "HOUR": "Horo", - "DAY": "Tago", - "MONTH": "Monato" - } - }, - "ACCOUNT": { - "TITLE": "Statistikoj", - "BTN_SHOW_STATS": "Vidi la statistikojn de la konto", - "BALANCE_DIVIDER": "Stato de la konto", - "BALANCE_TITLE": "Evoluo de la konto {{pubkey|formatPubkey}}", - "TX_RECEIVED_LABEL": "Enspezoj", - "TX_SENT_LABEL": "Elspezoj", - "TX_ACCUMULATION_LABEL": "Bilanco de la spezoj", - "UD_LABEL": "UD", - "UD_ACCUMULATION_LABEL": "Bilanco de la UD", - "BALANCE_LABEL": "Saldo", - "WOT_DIVIDER": "Reto de fido", - "CERTIFICATION_TITLE": "Nombro de atestaĵoj - {{pubkey|formatPubkey}}", - "RECEIVED_CERT_LABEL": "Tuto pri la ricevitaj", - "RECEIVED_CERT_DELTA_LABEL": "Vario pri la ricevitaj", - "GIVEN_CERT_LABEL": "Tuto pri la senditaj", - "GIVEN_CERT_DELTA_LABEL": "Vario pri la senditaj", - "INPUT_CHART_TITLE": "Sumo de la enirantaj fluoj, por ĉiu sendinto:", - "OUTPUT_CHART_TITLE": "Sumo de la elirantaj fluoj, por ĉiu ricevinto:" - }, - "BLOCKCHAIN": { - "TITLE": "Statistikoj", - "BLOCKS_ISSUERS_DIVIDER": "Analizo de la kalkul-distribuo", - "BLOCKS_ISSUERS_HELP": "<b>{{issuerCount|formatInteger}} membroj</b> kalkulis <b>{{blockCount|formatInteger}} blokojn</b>", - "BLOCKS_ISSUERS_TITLE": "Nombro de blokoj kalkulitaj por membro", - "BLOCKS_ISSUERS_LABEL": "Nombro de blokoj", - "TX_DIVIDER": "Analizo de la spezoj", - "TX_AMOUNT_TITLE": "Kvanto de la spezoj", - "TX_AMOUNT_PUBKEY_TITLE": "Kvanto de spezoj kalkulitaj de {{issuer | formatPubkey}}", - "TX_AMOUNT_LABEL": "Kvanto interŝanĝita", - "TX_COUNT_TITLE": "Nombro de spezoj skribitaj", - "TX_COUNT_LABEL": "Nombro de spezoj", - "TX_AVG_BY_BLOCK": "Meza nombro de spezoj / bloko" - - }, - "CURRENCY": { - "MONETARY_MASS_TITLE": "Evoluo de la mona maso", - "MONETARY_MASS_LABEL": "Mona maso", - "MONETARY_MASS_SHARE_LABEL": "Mezumo por membro", - "UD_TITLE": "Evoluo de la universala dividendo", - "MEMBERS_COUNT_TITLE": "Evoluo de la nombro de membroj", - "MEMBERS_COUNT_LABEL": "Nombro de membroj" + "SEARCH_DOTS": "Traserĉi...", + "BTN_LOCALIZE_ME": "Lokalizi min" }, - "PEER": { + "NETWORK": { + "LOOKUP": { + "BTN_MAP": "Mapo", + "BTN_MAP_HELP": "Malfermi la mapon pri nodoj" + }, "VIEW": { - "BLOCK_COUNT_LABEL": "Nombro de blokoj kalkulitaj", - "BLOCK_COUNT": "{{count}} blokoj", - "NO_BLOCK": "Neniu bloko" + "TITLE": "Mapo pri nodoj", + "LAYER": { + "MEMBER": "Membro-nodoj", + "MIRROR": "Spegul-nodoj", + "OFFLINE": "Nekonektitaj nodoj" + } } }, - "DOC_STATS": { - "TITLE": "Statistikoj pri stokado", - "USER": { - "TITLE": "Nombro de dokumentoj ligitaj al konto", - "USER_PROFILE": "Uzanto-profiloj", - "USER_SETTINGS": "Parametroj konservitaj" - }, - "USER_DELTA": { - "TITLE": "Variado de la nombro de dokumentoj ligitaj al konto", - "USER_PROFILE": "Uzanto-profiloj", - "USER_SETTINGS": "Parametroj konservitaj" - }, - "MESSAGE": { - "TITLE": "Nombro de dokumentoj ligitaj al komunikado", - "MESSAGE_INBOX": "Mesaĝoj en ricevujo", - "MESSAGE_OUTBOX": "Senditaj mesaĝoj konservitaj", - "INVITATION_CERTIFICATION": "Invitoj atestotaj" + "WOT": { + "LOOKUP": { + "BTN_MAP": "Mapo", + "BTN_MAP_HELP": "Malfermi la mapon pri membroj" }, - "SOCIAL": { - "TITLE": "Nombro de paĝoj aŭ grupoj", - "PAGE_COMMENT": "Komentoj", - "PAGE_RECORD": "Paĝoj", - "GROUP_RECORD": "Grupoj" + "VIEW": { + "TITLE": "Mapo pri membroj", + "LAYER": { + "MEMBER": "<i class=\"icon ion-person positive\"></i> Membroj", + "PENDING": "<i class=\"icon ion-clock energized\"></i> Aliĝoj atendantaj", + "WALLET": "<i class=\"icon ion-card gray\"></i> Simplaj monujoj" + } }, - "OTHER": { - "TITLE": "Aliaj dokumentoj", - "HISTORY_DELETE": "Forigoj de dokumentoj" + "ERROR": { + "LOAD_POSITION_FAILED": "Neeblas ricevi la lokojn afiŝotajn." } }, - "SYNCHRO": { - "TITLE": "Statistikoj pri sinkronigoj", - "COUNT": { - "TITLE": "Kvanto sinkronigita", - "INSERTS": "Enmetoj", - "UPDATES": "Ĝisdatigoj", - "DELETES": "Forigoj" - }, - "PEER": { - "TITLE": "Nodoj informpetitaj", - "ES_USER_API": "Nodoj pri datenoj de uzantoj", - "ES_SUBSCRIPTION_API": "Nodoj pri retaj servoj" + "REGISTRY": { + "LOOKUP": { + "BTN_MAP": "Mapo", + "BTN_MAP_HELP": "Malfermi la mapon pri paĝoj" }, - "PERFORMANCE": { - "TITLE": "Efikecoj pri efektiviĝo", - "DURATION": "Tempo por efektiviĝo (ms)" + "VIEW": { + "TITLE": "Mapo pri paĝoj", + "LAYER": { + "SHOP": "<i class=\"icon ion-page-shop positive\"></i> Lokaj komercoj", + "COMPANY": "<i class=\"icon ion-page-company positive\"></i> Entreprenoj", + "ASSOCIATION": "<i class=\"icon ion-page-association energized\"></i> Asocioj", + "INSTITUTION": "<i class=\"icon ion-page-institution gray\"></i> Institucioj" + } + } + }, + "PROFILE": { + "MARKER_HELP": "<b>Ŝovu-demetu</b> tiun ĉi markilon por <b>aktualigi<br/> vian lokon</b> sur la mapo, aŭ uzu la serĉo-butonon<br/>super la mapo." + }, + "ERROR": { + "LOCALIZE_ME_FAILED": "Neeblas ricevi vian nunan lokon" + }, + "SETTINGS": { + "MAP_DIVIDER": "Mapoj", + "ENABLE_GOOGLE_API": "Aktivigi la Google-API-servojn?", + "ENABLE_GOOGLE_API_HELP": "Ebligas afiŝi sur la <b>mapo pri membroj</b> kontojn kun adreso sed sen iu GPS-lokalizo.", + "GOOGLE_API_KEY": "Google-API-ŝlosilo", + "BTN_GOOGLE_API": "Ekhavi ŝlosilon", + "BTN_GOOGLE_API_WARNING": "Necesigas havi Google-konton", + "GOOGLE_API_KEY_PLACEHOLDER": "Ekzemple: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I" + }, + "HELP": { + "TIP": { + "WOT": "Tiu ĉi mapo afiŝas <b>la profilojn kun loko</b>, ĉu ili rilatas al membro-kontoj aŭ ne.<br/><br/>Nur videblas la profiloj, kies kromaĵo "aperi sur la mapo" estis aktivigita.", + "WOT_BTN_LAYERS": "<b>Filtru ĉi tie la afiŝitajn datenojn</b>: membroj, aliĝoj atendantaj, simplaj monujoj, ktp.", + "WOT_BTN_SEARCH": "Vi povas <b>efektivigi serĉadon</b> laŭ nomo, publika ŝlosilo aŭ membro-pseŭdonimo." } } } } ); -$translateProvider.translations("es-ES", { - "NETWORK": { - "VIEW": { - "BTN_GRAPH": "Estadística" - } - }, - "GRAPH": { +$translateProvider.translations("fr-FR", { + "MAP": { "COMMON": { - "LINEAR_SCALE" : "Escala lineal", - "LOGARITHMIC_SCALE" : "Escala logarítmica", - "BTN_SHOW_STATS": "Ver estadísticas", - "BTN_SHOW_DETAILED_STATS": "Estadísticas detalladas", - "RANGE_DURATION_DIVIDER": "Unidad de paso:", - "RANGE_DURATION": { - "HOUR": "Grupo por <b>hora</b>", - "DAY": "Grupo por <b>día</b>", - "MONTH": "Grupo por <b>mes</b>" - } + "SEARCH_DOTS": "Rechercher...", + "BTN_LOCALIZE_ME": "Me localiser" }, - "ACCOUNT": { - "INPUT_CHART_TITLE": "Suma del flujo entrante, por el transmisor:", - "OUTPUT_CHART_TITLE": "Suma de las salidas por destino:" + "NETWORK": { + "LOOKUP": { + "BTN_MAP": "Carte", + "BTN_MAP_HELP": "Ouvrir la carte des noeuds" + }, + "VIEW": { + "TITLE": "Carte des noeuds", + "LAYER": { + "MEMBER": "Nœuds membre", + "MIRROR": "Nœuds miroir", + "OFFLINE": "Nœuds hors ligne" + } + } }, - "BLOCKCHAIN": { - "TITLE": "Estadística", - "BLOCKS_ISSUERS_DIVIDER": "Bloques escritos por los miembros", - "BLOCKS_ISSUERS_HELP": "<b>{{issuerCount|formatInteger}} members</b> has computed <b>{{blockCount|formatInteger}} blocks</b>", - "BLOCKS_ISSUERS_TITLE": "Número de bloques miembro calculado", - "BLOCKS_ISSUERS_LABEL": "Número de bloques", - "TX_DIVIDER": "Análisis de transacciones", - "TX_AMOUNT_TITLE": "El volumen de operaciones", - "TX_AMOUNT_PUBKEY_TITLE": "El volumen de operaciones calculado por {{issuer | formatPubkey}}", - "TX_AMOUNT_LABEL": "Volumen negociado", - "TX_COUNT_TITLE": "Número de transacciones escritas", - "TX_COUNT_LABEL": "Número de transacciones", - "TX_AVG_BY_BLOCK": "Promedio por bloque" - }, - "CURRENCY": { - "MONETARY_MASS_TITLE": "Evolución de la masa monetaria", - "MONETARY_MASS_LABEL": "Masa monetaria", - "MONETARY_MASS_SHARE_LABEL": "Promedio miembro", - "UD_TITLE": "Evolución del dividendo universales", - "MEMBERS_COUNT_TITLE": "Evolución del número de miembros", - "MEMBERS_COUNT_LABEL": "Número de miembros" + "WOT": { + "LOOKUP": { + "BTN_MAP": "Carte", + "BTN_MAP_HELP": "Ouvrir la carte des membres" + }, + "VIEW": { + "TITLE": "Carte des membres", + "LAYER": { + "MEMBER": "<i class=\"icon ion-person positive\"></i> Membres", + "PENDING": "<i class=\"icon ion-clock energized\"></i> Inscriptions en attente", + "WALLET": "<i class=\"icon ion-card gray\"></i> Simples portefeuilles" + } + }, + "ERROR": { + "LOAD_POSITION_FAILED": "Impossible de récupérer les positions à afficher." + } }, - "PEER": { + "REGISTRY": { + "LOOKUP": { + "BTN_MAP": "Carte", + "BTN_MAP_HELP": "Ouvrir la carte des pages" + }, "VIEW": { - "BLOCK_COUNT_LABEL": "Número de bloques calculados", - "BLOCK_COUNT": "{{count}} bloques", - "NO_BLOCK": "Ningún bloque" + "TITLE": "Carte des pages", + "LAYER": { + "SHOP": "<i class=\"icon ion-page-shop positive\"></i> Commerces locaux", + "COMPANY": "<i class=\"icon ion-page-company positive\"></i> Entreprises", + "ASSOCIATION": "<i class=\"icon ion-page-association energized\"></i> Associations", + "INSTITUTION": "<i class=\"icon ion-page-institution gray\"></i> Institutions" + } + } + }, + "PROFILE": { + "MARKER_HELP": "<b>Glissez-déposez</b> ce marqueur pour <b>mettre<br/>à jour votre position</b> sur la carte, ou utilisez le bouton<br/>de recherche au-dessus de la carte." + }, + "ERROR": { + "LOCALIZE_ME_FAILED": "Impossible de récupérer votre position actuelle" + }, + "SETTINGS": { + "MAP_DIVIDER": "Cartes", + "ENABLE_GOOGLE_API": "Activer les services Google API ?", + "ENABLE_GOOGLE_API_HELP": "Permet l'affichage dans la <b>carte des membres</b> des comptes ayant une adresse mais aucun positionnement GPS.", + "GOOGLE_API_KEY": "Clé d'API Google", + "BTN_GOOGLE_API": "Obtenir une clé", + "BTN_GOOGLE_API_WARNING": "Nécessite d'avoir un compte Google", + "GOOGLE_API_KEY_PLACEHOLDER": "Exemple : AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I" + }, + "HELP": { + "TIP": { + "WOT": "Cette carte affiche <b>les profils ayant une position</b>, qu'ils correspondent à des comptes membre ou non.<br/><br/>Seuls sont visibles les profils dont l'option "apparaître sur la carte" a été activée.", + "WOT_BTN_LAYERS": "<b>Filtrez ici les données affichées</b> : membres, inscriptions en attente, simples portefeuilles, etc.", + "WOT_BTN_SEARCH": "Vous pouvez <b>effectuer une recherche</b> par nom, clef publique ou pseudonyme de membre." } } } } ); -$translateProvider.translations("fr-FR", { +$translateProvider.translations("it-IT", { + "MAP": { + "COMMON": { + "SEARCH_DOTS": "Ricerca...", + "BTN_LOCALIZE_ME": "Trovami" + }, + "NETWORK": { + "LOOKUP": { + "BTN_MAP": "Mappa dei peers", + "BTN_MAP_HELP": "Aprire mappa dei peers" + }, + "VIEW": { + "TITLE": "Mappa dei peers", + "LAYER": { + "MEMBER": "Peers membri", + "MIRROR": "Peers specchi", + "OFFLINE": "Peers offline" + } + } + }, + "WOT": { + "LOOKUP": { + "BTN_MAP": "Mappa dei membri", + "BTN_MAP_HELP": "Aprire mappa dei membri" + }, + "VIEW": { + "TITLE": "Mappa membri", + "LAYER": { + "MEMBER": "<i class=\"icon ion-person positive\"></i> Membri", + "PENDING": "<i class=\"icon ion-clock energized\"></i> Registrazione pendenti", + "WALLET": "<i class=\"icon ion-card gray\"></i> Portafogli osservatori" + } + }, + "ERROR": { + "LOAD_POSITION_FAILED": "Errore nel caricamento delle posizioni." + } + }, + "REGISTRY": { + "LOOKUP": { + "BTN_MAP": "Mappa", + "BTN_MAP_HELP": "Aprire la mappa delle pagine pro" + }, + "VIEW": { + "TITLE": "Mappa delle pagine pro", + "LAYER": { + "SHOP": "<i class=\"icon ion-page-shop positive\"></i> Negozi locali", + "COMPANY": "<i class=\"icon ion-page-company positive\"></i> Aziende", + "ASSOCIATION": "<i class=\"icon ion-page-association energized\"></i> Associazioni", + "INSTITUTION": "<i class=\"icon ion-page-institution gray\"></i> Instituti" + } + } + }, + "PROFILE": { + "MARKER_HELP": "<b>Drag and drop</b> questo indicatore per <b>aggiornare<br/>tua posizione</b>, o usa i bottoni <br/>sopra la mappa." + }, + "ERROR": { + "LOCALIZE_ME_FAILED": "Impossible trovare tua posizione attuale" + }, + "SETTINGS": { + "MAP_DIVIDER": "Mappe", + "ENABLE_GOOGLE_API": "Abilitare i servizi Google API ?", + "ENABLE_GOOGLE_API_HELP": "Sulla <b>mappa dei membri</b>, ti permette di visualizzare i conti con un indirizzo ma senza geolocalizzazione.", + "GOOGLE_API_KEY": "Chiave Google API", + "BTN_GOOGLE_API": "Ottenere una chiave", + "BTN_GOOGLE_API_WARNING": "necessita un conto Google", + "GOOGLE_API_KEY_PLACEHOLDER": "per es. : AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I" + }, + "HELP": { + "TIP": { + "WOT": "Questa mappa mostra <b>profili che hanno fornito una posizione</b>, che siano conti membri o no.<br/><br/>Solo i profili che hanno attivato l'opzione "apparire sulla mappa" sono stati attivati.", + "WOT_BTN_LAYERS": "<b>Filtrare i dati visibili</b>: membri, registrazioni pendenti, portafogli osservatori, etc.", + "WOT_BTN_SEARCH": "Puoi <b>cercare</b> per nome, chiave pubblica, o pseudonimo del membro." + } + } + } + } + ); + +$translateProvider.translations("en-GB", { "NETWORK": { "VIEW": { - "BTN_GRAPH": "Statistiques" + "BTN_GRAPH": "Statistics" } }, "GRAPH": { "COMMON": { - "LINEAR_SCALE" : "Echelle linéaire", - "LOGARITHMIC_SCALE" : "Echelle logarithmique", - "BTN_SHOW_STATS": "Voir les statistiques", - "BTN_SHOW_DETAILED_STATS": "Statistiques détaillées", - "RANGE_DURATION_DIVIDER": "Unité de temps :", + "LINEAR_SCALE" : "Linear scale", + "LOGARITHMIC_SCALE" : "Logarithmic scale", + "BTN_SHOW_STATS": "See statistics", + "BTN_SHOW_DETAILED_STATS": "Detailed statistics", + "RANGE_DURATION_DIVIDER": "Step unit:", "RANGE_DURATION": { - "HOUR": "Heure", - "DAY": "Jour", - "MONTH": "Mois" + "HOUR": "Group by <b>hour</b>", + "DAY": "Group by <b>day</b>", + "MONTH": "Group by <b>month</b>" } }, "ACCOUNT": { - "TITLE": "Statistiques", - "BTN_SHOW_STATS": "Voir les statistiques du compte", - "BALANCE_DIVIDER": "Situation du compte", - "BALANCE_TITLE": "Evolution du compte {{pubkey|formatPubkey}}", - "TX_RECEIVED_LABEL": "Recettes", - "TX_SENT_LABEL": "Dépenses", - "TX_ACCUMULATION_LABEL": "Bilan des transactions", - "UD_LABEL": "DU", - "UD_ACCUMULATION_LABEL": "Bilan des DU", - "BALANCE_LABEL": "Solde", - "WOT_DIVIDER": "Toile de confiance", - "CERTIFICATION_TITLE": "Nombre de certifications - {{pubkey|formatPubkey}}", - "RECEIVED_CERT_LABEL": "Total reçues", - "RECEIVED_CERT_DELTA_LABEL": "Variation reçues", - "GIVEN_CERT_LABEL": "Total envoyées", - "GIVEN_CERT_DELTA_LABEL": "Variation envoyées", - "INPUT_CHART_TITLE": "Somme des flux entrants, par émetteur :", - "OUTPUT_CHART_TITLE": "Somme des flux sortants, par destinaire :" + "TITLE": "Statistics", + "BTN_SHOW_STATS": "View account Statistics", + "BALANCE_DIVIDER": "Account status", + "BALANCE_TITLE": "Evolution of the account {{pubkey|formatPubkey}}", + "TX_RECEIVED_LABEL": "Receipts", + "TX_SENT_LABEL": "Spending", + "UD_LABEL": "UD", + "BALANCE_LABEL": "Balance", + "INPUT_CHART_TITLE": "Sum of incoming flows, per transmitter:", + "OUTPUT_CHART_TITLE": "Sum of outgoing flows, per recipient:" }, "BLOCKCHAIN": { - "TITLE": "Statistiques", - "BLOCKS_ISSUERS_DIVIDER": "Analyse de la répartition du calcul", - "BLOCKS_ISSUERS_HELP": "<b>{{issuerCount|formatInteger}} membres</b> ont calculé <b>{{blockCount|formatInteger}} blocs</b>", - "BLOCKS_ISSUERS_TITLE": "Nombre de blocs calculés par membre", - "BLOCKS_ISSUERS_LABEL": "Nombre de blocs", - "TX_DIVIDER": "Analyse des transactions", - "TX_AMOUNT_TITLE": "Volume des transactions", - "TX_AMOUNT_PUBKEY_TITLE": "Volume des transactions calculées par {{issuer | formatPubkey}}", - "TX_AMOUNT_LABEL": "Volume échangé", - "TX_COUNT_TITLE": "Nombre de transactions écrites", - "TX_COUNT_LABEL": "Nombre de transactions", - "TX_AVG_BY_BLOCK": "Nombre moyen de transactions / bloc" - + "TITLE": "Statistics", + "BLOCKS_ISSUERS_DIVIDER": "Written blocks by members", + "BLOCKS_ISSUERS_HELP": "<b>{{issuerCount|formatInteger}} members</b> calculated <b>{{blockCount|formatInteger}} blocks</b>", + "BLOCKS_ISSUERS_TITLE": "Number of blocks calculated per member", + "BLOCKS_ISSUERS_LABEL": "Number of blocks", + "TX_DIVIDER": "Analysis of transactions", + "TX_AMOUNT_TITLE": "Transaction volume", + "TX_AMOUNT_PUBKEY_TITLE": "Volume of transactions calculated by {{issuer | formatPubkey}}", + "TX_AMOUNT_LABEL": "Exchange volume", + "TX_COUNT_TITLE": "Number of written transactions", + "TX_COUNT_LABEL": "Number of transactions", + "TX_AVG_BY_BLOCK": "Average per block" }, "CURRENCY": { - "MONETARY_MASS_TITLE": "Evolution de la masse monétaire", - "MONETARY_MASS_LABEL": "Masse monétaire", - "MONETARY_MASS_SHARE_LABEL": "Moyenne par membre", - "UD_TITLE": "Evolution du dividende universel", - "MEMBERS_COUNT_TITLE": "Evolution du nombre de membres", - "MEMBERS_COUNT_LABEL": "Nombre de membres" + "MONETARY_MASS_TITLE": "Evolution of the monetary mass", + "MONETARY_MASS_LABEL": "Monetary mass", + "MONETARY_MASS_SHARE_LABEL": "Average per member", + "UD_TITLE": "Evolution of the universal dividend", + "MEMBERS_COUNT_TITLE": "Evolution of the number of members", + "MEMBERS_COUNT_LABEL": "Number of members" }, "PEER": { "VIEW": { - "BLOCK_COUNT_LABEL": "Nombre de blocs calculés", - "BLOCK_COUNT": "{{count}} blocs", - "NO_BLOCK": "Aucun bloc" + "BLOCK_COUNT_LABEL": "Computed blocks count", + "BLOCK_COUNT": "{{count}} blocks", + "NO_BLOCK": "No block" } }, "DOC_STATS": { - "TITLE": "Statistiques de stockage", + "TITLE": "Data storage statistics (Cesium+)", "USER": { - "TITLE": "Nombre de documents liés à un compte", - "USER_PROFILE": "Profils utilisateur", - "USER_SETTINGS": "Paramètres sauvegardés" + "TITLE": "Number of documents linked to an account", + "USER_PROFILE": "User profiles", + "USER_SETTINGS": "Saved settings" }, "USER_DELTA": { - "TITLE": "Variation du nombre de documents liés à un compte", - "USER_PROFILE": "Profils utilisateur", - "USER_SETTINGS": "Paramètres sauvegardés" + "TITLE": "Delta / Number of documents linked to an account", + "USER_PROFILE": "User profiles", + "USER_SETTINGS": "Saved settings" }, "MESSAGE": { - "TITLE": "Nombre de documents liés à la communication", - "MESSAGE_INBOX": "Messages en boîte de réception", - "MESSAGE_OUTBOX": "Messages envoyés sauvegardés", - "INVITATION_CERTIFICATION": "Invitations à certifier" - }, + "TITLE": "Number of documents related to the communication", + "MESSAGE_INBOX": "Messages in inbox", + "MESSAGE_OUTBOX": "Messages in outbox", + "INVITATION_CERTIFICATION": "Invitations to certify" + }, "SOCIAL": { - "TITLE": "Nombre de pages ou groupes", - "PAGE_COMMENT": "Commentaires", + "TITLE": "Number of page or group", + "PAGE_COMMENT": "Comments", "PAGE_RECORD": "Pages", - "GROUP_RECORD": "Groupes" + "GROUP_RECORD": "Groups" }, "OTHER": { - "TITLE": "Autres documents", - "HISTORY_DELETE": "Suppressions de documents" - } - }, - "SYNCHRO": { - "TITLE": "Statistiques de synchronisations", - "COUNT": { - "TITLE": "Volume synchronisé", - "INSERTS": "Insertions", - "UPDATES": "Mises à jour", - "DELETES": "Suppressions" - }, - "PEER": { - "TITLE": "Noeuds requêtés", - "ES_USER_API": "Noeuds données utilisateurs", - "ES_SUBSCRIPTION_API": "Noeuds services en ligne" - }, - "PERFORMANCE": { - "TITLE": "Performances d'exécution", - "DURATION": "Temps d'exécution (ms)" + "TITLE": "Other documents", + "HISTORY_DELETE": "Deletion of documents" } } } } ); -$translateProvider.translations("it-IT", { - "NETWORK": { - "VIEW": { - "BTN_GRAPH": "Statistiche" - } - }, - "GRAPH": { - "COMMON": { - "LINEAR_SCALE" : "Scala lineare", - "LOGARITHMIC_SCALE" : "Scala logaritmica", - "BTN_SHOW_STATS": "Vedere le statistiche", - "BTN_SHOW_DETAILED_STATS": "Statistiche dettagliate", - "RANGE_DURATION_DIVIDER": "Unità di tempo :", - "RANGE_DURATION": { - "HOUR": "Ora", - "DAY": "Giorno", - "MONTH": "Mese" - } - }, - "ACCOUNT": { - "TITLE": "Statistiche", - "BTN_SHOW_STATS": "Visualizzare le statistiche del conto", - "BALANCE_DIVIDER": "Situazione del conto", - "BALANCE_TITLE": "Evoluzione del conto {{pubkey|formatPubkey}}", - "TX_RECEIVED_LABEL": "Incassi", - "TX_SENT_LABEL": "Spese", - "TX_ACCUMULATION_LABEL": "Bilancio delle transazioni", - "UD_LABEL": "DU", - "UD_ACCUMULATION_LABEL": "Bilancio dei DU", - "BALANCE_LABEL": "Saldo", - "WOT_DIVIDER": "Tela di fiducia", - "CERTIFICATION_TITLE": "Numero di certificazioni - {{pubkey|formatPubkey}}", - "RECEIVED_CERT_LABEL": "Totale ricevute", - "RECEIVED_CERT_DELTA_LABEL": "Variazione ricevute", - "GIVEN_CERT_LABEL": "Totale inviate", - "GIVEN_CERT_DELTA_LABEL": "Variazione inviate", - "INPUT_CHART_TITLE": "Somma dei flussi in entrata, par emittente :", - "OUTPUT_CHART_TITLE": "Somma dei flussi in uscita, per destinatario :" - }, - "BLOCKCHAIN": { - "TITLE": "Statistiche", - "BLOCKS_ISSUERS_DIVIDER": "Analisi della ripartizione del calcolo", - "BLOCKS_ISSUERS_HELP": "<b>{{issuerCount|formatInteger}} membri</b> hanno calcolato <b>{{blockCount|formatInteger}} blocchi</b>", - "BLOCKS_ISSUERS_TITLE": "Numero di blocchi calcolati a membro", - "BLOCKS_ISSUERS_LABEL": "Numero di blocchi", - "TX_DIVIDER": "Analisi delle transazioni", - "TX_AMOUNT_TITLE": "Volume delle transazioni", - "TX_AMOUNT_PUBKEY_TITLE": "Volume delle transazioni calcolato da {{issuer | formatPubkey}}", - "TX_AMOUNT_LABEL": "Volume scambiato", - "TX_COUNT_TITLE": "Numero di transazioni scritte", - "TX_COUNT_LABEL": "Numero di transazioni", - "TX_AVG_BY_BLOCK": "Numero medio di transazioni / blocco" - }, - "CURRENCY": { - "MONETARY_MASS_TITLE": "Evoluzione della massa monetaria", - "MONETARY_MASS_LABEL": "Massa monetaria", - "MONETARY_MASS_SHARE_LABEL": "Media a membro", - "UD_TITLE": "Evoluzione del Dividendo Universale", - "MEMBERS_COUNT_TITLE": "Evoluzione del numero di membri", - "MEMBERS_COUNT_LABEL": "Numero di membri" - }, - "PEER": { - "VIEW": { - "BLOCK_COUNT_LABEL": "Numero di blocchi calcolati", - "BLOCK_COUNT": "{{count}} blocchi", - "NO_BLOCK": "Nessun blocco" - } - }, - "DOC_STATS": { - "TITLE": "Statistiche di stoccaggio", - "USER": { - "TITLE": "Numero di documenti legati ad un conto", - "USER_PROFILE": "Profili dell'utente", - "USER_SETTINGS": "Impostazioni salvate", - }, - "MESSAGE": { - "TITLE": "Numero di documenti legati alla conversazione", - "MESSAGE_INBOX": "Messaggi in arrivo", - "MESSAGE_OUTBOX": "Messaggi inviati salvati", - "INVITATION_CERTIFICATION": "Invitazioni da certificare" - }, - "SOCIAL": { - "TITLE": "Numero di pagine o gruppi", - "PAGE_COMMENT": "Commenti", - "PAGE_RECORD": "Pagine", - "GROUP_RECORD": "Gruppi", - }, - "OTHER": { - "TITLE": "Altri documenti", - "HISTORY_DELETE": "Cronologia eliminazione documenti", - } - }, - "SYNCHRO": { - "TITLE": "Statistiche di sincronizzazioni", - "COUNT": { - "TITLE": "Volume sincronizzato", - "INSERTS": "Inserimenti", - "UPDATES": "Aggiornamenti", - "DELETES": "Eliminazioni" - }, - "PEER": { - "TITLE": "Nodi interrogati", - "ES_USER_API": "Nodi dati utenti", - "ES_SUBSCRIPTION_API": "Noeuds servizi online" - }, - "PERFORMANCE": { - "TITLE": "Prestazioni (performance) di esecuzione", - "DURATION": "Tempo di esecuzione (ms)" - } - } - } - } -); - -$translateProvider.translations("nl-NL", { +$translateProvider.translations("en", { "NETWORK": { "VIEW": { - "BTN_GRAPH": "Statistieken" + "BTN_GRAPH": "Statistics" } }, "GRAPH": { "COMMON": { - "LINEAR_SCALE" : "Lineaire schaal", - "LOGARITHMIC_SCALE" : "Logaritmische schaal", - "BTN_SHOW_STATS": "Zie statistieken", - "BTN_SHOW_DETAILED_STATS": "Gedetailleerde statistieken", - "RANGE_DURATION_DIVIDER": "Stap eenheid:", + "LINEAR_SCALE" : "Linear scale", + "LOGARITHMIC_SCALE" : "Logarithmic scale", + "BTN_SHOW_STATS": "See statistics", + "BTN_SHOW_DETAILED_STATS": "Detailed statistics", + "RANGE_DURATION_DIVIDER": "Step unit:", "RANGE_DURATION": { - "HOUR": "Groep per <b>uur</b>", - "DAY": "Groep per <b>dag</b>", - "MONTH": "Groep per <b>maand</b>" + "HOUR": "Group by <b>hour</b>", + "DAY": "Group by <b>day</b>", + "MONTH": "Group by <b>month</b>" } }, "ACCOUNT": { - "INPUT_CHART_TITLE": "Som van de binnenkomende stroom, door de zender:", - "OUTPUT_CHART_TITLE": "Som van de uitstroom per bestemming:" + "TITLE": "Statistics", + "BTN_SHOW_STATS": "View account Statistics", + "BALANCE_DIVIDER": "Account status", + "BALANCE_TITLE": "Evolution of the account {{pubkey|formatPubkey}}", + "TX_RECEIVED_LABEL": "Receipts", + "TX_SENT_LABEL": "Spending", + "UD_LABEL": "UD", + "BALANCE_LABEL": "Balance", + "INPUT_CHART_TITLE": "Sum of incoming flows, per transmitter:", + "OUTPUT_CHART_TITLE": "Sum of outgoing flows, per recipient:" }, "BLOCKCHAIN": { - "TITLE": "Statistieken", - "BLOCKS_ISSUERS_DIVIDER": "Schriftelijke blokken door leden", - "BLOCKS_ISSUERS_HELP": "<b>{{issuerCount|formatInteger}} leden</b> berekend <b>{{blockCount|formatInteger}} blokken</b>", - "BLOCKS_ISSUERS_TITLE": "Aantal blokken berekend per lid", - "BLOCKS_ISSUERS_LABEL": "Aantal blokken", - "TX_DIVIDER": "Analyse van transacties", - "TX_AMOUNT_TITLE": "Trading volume", - "TX_AMOUNT_PUBKEY_TITLE": "Trading volume dat wordt berekend door {{issuer | formatPubkey}}", - "TX_AMOUNT_LABEL": "Verhandeld volume", - "TX_COUNT_TITLE": "Aantal schriftelijke transacties", - "TX_COUNT_LABEL": "Aantal transacties", - "TX_AVG_BY_BLOCK": "Gemiddeld aantal transacties / blok" + "TITLE": "Statistics", + "BLOCKS_ISSUERS_DIVIDER": "Written blocks by members", + "BLOCKS_ISSUERS_HELP": "<b>{{issuerCount|formatInteger}} members</b> calculated <b>{{blockCount|formatInteger}} blocks</b>", + "BLOCKS_ISSUERS_TITLE": "Number of blocks calculated per member", + "BLOCKS_ISSUERS_LABEL": "Number of blocks", + "TX_DIVIDER": "Analysis of transactions", + "TX_AMOUNT_TITLE": "Transaction volume", + "TX_AMOUNT_PUBKEY_TITLE": "Volume of transactions calculated by {{issuer | formatPubkey}}", + "TX_AMOUNT_LABEL": "Exchange volume", + "TX_COUNT_TITLE": "Number of written transactions", + "TX_COUNT_LABEL": "Number of transactions", + "TX_AVG_BY_BLOCK": "Average per block" }, "CURRENCY": { - "MONETARY_MASS_TITLE": "Evolutie van de monetaire massa", - "MONETARY_MASS_LABEL": "Monetaire massa", - "MONETARY_MASS_SHARE_LABEL": "Gemiddelde leden", - "UD_TITLE": "Ontwikkeling van de universele dividend", - "MEMBERS_COUNT_TITLE": "Evolutie van het aantal leden", - "MEMBERS_COUNT_LABEL": "Aantal leden" - } - } -} -); - -$translateProvider.translations("en-GB", { - "MAP": { - "COMMON": { - "SEARCH_DOTS": "Search...", - "BTN_LOCALIZE_ME": "Localize me" + "MONETARY_MASS_TITLE": "Evolution of the monetary mass", + "MONETARY_MASS_LABEL": "Monetary mass", + "MONETARY_MASS_SHARE_LABEL": "Average per member", + "UD_TITLE": "Evolution of the universal dividend", + "MEMBERS_COUNT_TITLE": "Evolution of the number of members", + "MEMBERS_COUNT_LABEL": "Number of members" }, - "NETWORK": { - "LOOKUP": { - "BTN_MAP": "Peers map", - "BTN_MAP_HELP": "Open peers map" - }, + "PEER": { "VIEW": { - "TITLE": "Peers map", - "LAYER": { - "MEMBER": "Member peers", - "MIRROR": "Mirror peers", - "OFFLINE": "Offline peers" - } + "BLOCK_COUNT_LABEL": "Computed blocks count", + "BLOCK_COUNT": "{{count}} blocks", + "NO_BLOCK": "No block" } }, - "WOT": { - "LOOKUP": { - "BTN_MAP": "Map", - "BTN_MAP_HELP": "Open members map" + "DOC_STATS": { + "TITLE": "Data storage statistics (Cesium+)", + "USER": { + "TITLE": "Number of documents linked to an account", + "USER_PROFILE": "User profiles", + "USER_SETTINGS": "Saved settings" }, - "VIEW": { - "TITLE": "Members map", - "LAYER": { - "MEMBER": "<i class=\"icon ion-person positive\"></i> Members", - "PENDING": "<i class=\"icon ion-clock energized\"></i> Pending registrations", - "WALLET": "<i class=\"icon ion-card gray\"></i> Simple wallets" - } + "USER_DELTA": { + "TITLE": "Delta / Number of documents linked to an account", + "USER_PROFILE": "User profiles", + "USER_SETTINGS": "Saved settings" }, - "ERROR": { - "LOAD_POSITION_FAILED": "Can not retrieve the positions to display." - } - }, - "REGISTRY": { - "LOOKUP": { - "BTN_MAP": "Map", - "BTN_MAP_HELP": "Open the map of the pages" + "MESSAGE": { + "TITLE": "Number of documents related to the communication", + "MESSAGE_INBOX": "Messages in inbox", + "MESSAGE_OUTBOX": "Messages in outbox", + "INVITATION_CERTIFICATION": "Invitations to certify" }, - "VIEW": { - "TITLE": "Map of pages", - "LAYER": { - "SHOP": "<i class=\"icon ion-page-shop positive\"></i> Local shops", - "COMPANY": "<i class=\"icon ion-page-company positive\"></i> Companies", - "ASSOCIATION": "<i class=\"icon ion-page-association energized\"></i> Associations", - "INSTITUTION": "<i class=\"icon ion-page-institution gray\"></i> Institutions" - } - } - }, - "PROFILE": { - "MARKER_HELP": "<b>Drag and drop</b> this marker to <b>update<br/>your position</b>, or use the buttons<br/>on top of the map." - }, - "ERROR": { - "LOCALIZE_ME_FAILED": "Unable to retrieve your current position" - }, - "SETTINGS": { - "MAP_DIVIDER": "Maps", - "ENABLE_GOOGLE_API": "Enable Google API services?", - "ENABLE_GOOGLE_API_HELP": "In the <b>members map</b>, allows you to display accounts with an address but without geolocation.", - "GOOGLE_API_KEY": "Google API key", - "BTN_GOOGLE_API": "Getting a key", - "BTN_GOOGLE_API_WARNING": "requires a Google account", - "GOOGLE_API_KEY_PLACEHOLDER": "eg: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I" - }, - "HELP": { - "TIP": { - "WOT": "This map displays <b>profiles with a position</b>, whether they are member accounts or not.<br/><br/>Only profiles with the option "appear on the map" has been activated.", - "WOT_BTN_LAYERS": "<b>Filter the displayed data</b>: members, pending registrations, simple portfolios, etc.", - "WOT_BTN_SEARCH": "You can <b>search</b> by name, public key, or member pseudonym." + "SOCIAL": { + "TITLE": "Number of page or group", + "PAGE_COMMENT": "Comments", + "PAGE_RECORD": "Pages", + "GROUP_RECORD": "Groups" + }, + "OTHER": { + "TITLE": "Other documents", + "HISTORY_DELETE": "Deletion of documents" } } } } ); -$translateProvider.translations("en", { - "MAP": { +$translateProvider.translations("eo-EO", { + "NETWORK": { + "VIEW": { + "BTN_GRAPH": "Statistikoj" + } + }, + "GRAPH": { "COMMON": { - "SEARCH_DOTS": "Search...", - "BTN_LOCALIZE_ME": "Localize me" - }, - "NETWORK": { - "LOOKUP": { - "BTN_MAP": "Peers map", - "BTN_MAP_HELP": "Open peers map" - }, - "VIEW": { - "TITLE": "Peers map", - "LAYER": { - "MEMBER": "Member peers", - "MIRROR": "Mirror peers", - "OFFLINE": "Offline peers" - } - } - }, - "WOT": { - "LOOKUP": { - "BTN_MAP": "Map", - "BTN_MAP_HELP": "Open members map" - }, - "VIEW": { - "TITLE": "Members map", - "LAYER": { - "MEMBER": "<i class=\"icon ion-person positive\"></i> Members", - "PENDING": "<i class=\"icon ion-clock energized\"></i> Pending registrations", - "WALLET": "<i class=\"icon ion-card gray\"></i> Simple wallets" - } - }, - "ERROR": { - "LOAD_POSITION_FAILED": "Can not retrieve the positions to display." - } - }, - "REGISTRY": { - "LOOKUP": { - "BTN_MAP": "Map", - "BTN_MAP_HELP": "Open the map of the pages" - }, - "VIEW": { - "TITLE": "Map of pages", - "LAYER": { - "SHOP": "<i class=\"icon ion-page-shop positive\"></i> Local shops", - "COMPANY": "<i class=\"icon ion-page-company positive\"></i> Companies", - "ASSOCIATION": "<i class=\"icon ion-page-association energized\"></i> Associations", - "INSTITUTION": "<i class=\"icon ion-page-institution gray\"></i> Institutions" - } + "LINEAR_SCALE" : "Lineara skalo", + "LOGARITHMIC_SCALE" : "Logaritma skalo", + "BTN_SHOW_STATS": "Vidi la statistikojn", + "BTN_SHOW_DETAILED_STATS": "Detalaj statistikoj", + "RANGE_DURATION_DIVIDER": "Tempo-unuo:", + "RANGE_DURATION": { + "HOUR": "Horo", + "DAY": "Tago", + "MONTH": "Monato" } }, - "PROFILE": { - "MARKER_HELP": "<b>Drag and drop</b> this marker to <b>update<br/>your position</b>, or use the buttons<br/>on top of the map." - }, - "ERROR": { - "LOCALIZE_ME_FAILED": "Unable to retrieve your current position" - }, - "SETTINGS": { - "MAP_DIVIDER": "Maps", - "ENABLE_GOOGLE_API": "Enable Google API services?", - "ENABLE_GOOGLE_API_HELP": "In the <b>members map</b>, allows you to display accounts with an address but without geolocation.", - "GOOGLE_API_KEY": "Google API key", - "BTN_GOOGLE_API": "Getting a key", - "BTN_GOOGLE_API_WARNING": "requires a Google account", - "GOOGLE_API_KEY_PLACEHOLDER": "eg: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I" + "ACCOUNT": { + "TITLE": "Statistikoj", + "BTN_SHOW_STATS": "Vidi la statistikojn de la konto", + "BALANCE_DIVIDER": "Stato de la konto", + "BALANCE_TITLE": "Evoluo de la konto {{pubkey|formatPubkey}}", + "TX_RECEIVED_LABEL": "Enspezoj", + "TX_SENT_LABEL": "Elspezoj", + "TX_ACCUMULATION_LABEL": "Bilanco de la spezoj", + "UD_LABEL": "UD", + "UD_ACCUMULATION_LABEL": "Bilanco de la UD", + "BALANCE_LABEL": "Saldo", + "WOT_DIVIDER": "Reto de fido", + "CERTIFICATION_TITLE": "Nombro de atestaĵoj - {{pubkey|formatPubkey}}", + "RECEIVED_CERT_LABEL": "Tuto pri la ricevitaj", + "RECEIVED_CERT_DELTA_LABEL": "Vario pri la ricevitaj", + "GIVEN_CERT_LABEL": "Tuto pri la senditaj", + "GIVEN_CERT_DELTA_LABEL": "Vario pri la senditaj", + "INPUT_CHART_TITLE": "Sumo de la enirantaj fluoj, por ĉiu sendinto:", + "OUTPUT_CHART_TITLE": "Sumo de la elirantaj fluoj, por ĉiu ricevinto:" }, - "HELP": { - "TIP": { - "WOT": "This map displays <b>profiles with a position</b>, whether they are member accounts or not.<br/><br/>Only profiles with the option "appear on the map" has been activated.", - "WOT_BTN_LAYERS": "<b>Filter the displayed data</b>: members, pending registrations, simple portfolios, etc.", - "WOT_BTN_SEARCH": "You can <b>search</b> by name, public key, or member pseudonym." - } - } - } -} -); + "BLOCKCHAIN": { + "TITLE": "Statistikoj", + "BLOCKS_ISSUERS_DIVIDER": "Analizo de la kalkul-distribuo", + "BLOCKS_ISSUERS_HELP": "<b>{{issuerCount|formatInteger}} membroj</b> kalkulis <b>{{blockCount|formatInteger}} blokojn</b>", + "BLOCKS_ISSUERS_TITLE": "Nombro de blokoj kalkulitaj por membro", + "BLOCKS_ISSUERS_LABEL": "Nombro de blokoj", + "TX_DIVIDER": "Analizo de la spezoj", + "TX_AMOUNT_TITLE": "Kvanto de la spezoj", + "TX_AMOUNT_PUBKEY_TITLE": "Kvanto de spezoj kalkulitaj de {{issuer | formatPubkey}}", + "TX_AMOUNT_LABEL": "Kvanto interŝanĝita", + "TX_COUNT_TITLE": "Nombro de spezoj skribitaj", + "TX_COUNT_LABEL": "Nombro de spezoj", + "TX_AVG_BY_BLOCK": "Meza nombro de spezoj / bloko" -$translateProvider.translations("eo-EO", { - "MAP": { - "COMMON": { - "SEARCH_DOTS": "Traserĉi...", - "BTN_LOCALIZE_ME": "Lokalizi min" }, - "NETWORK": { - "LOOKUP": { - "BTN_MAP": "Mapo", - "BTN_MAP_HELP": "Malfermi la mapon pri nodoj" - }, + "CURRENCY": { + "MONETARY_MASS_TITLE": "Evoluo de la mona maso", + "MONETARY_MASS_LABEL": "Mona maso", + "MONETARY_MASS_SHARE_LABEL": "Mezumo por membro", + "UD_TITLE": "Evoluo de la universala dividendo", + "MEMBERS_COUNT_TITLE": "Evoluo de la nombro de membroj", + "MEMBERS_COUNT_LABEL": "Nombro de membroj" + }, + "PEER": { "VIEW": { - "TITLE": "Mapo pri nodoj", - "LAYER": { - "MEMBER": "Membro-nodoj", - "MIRROR": "Spegul-nodoj", - "OFFLINE": "Nekonektitaj nodoj" - } + "BLOCK_COUNT_LABEL": "Nombro de blokoj kalkulitaj", + "BLOCK_COUNT": "{{count}} blokoj", + "NO_BLOCK": "Neniu bloko" } }, - "WOT": { - "LOOKUP": { - "BTN_MAP": "Mapo", - "BTN_MAP_HELP": "Malfermi la mapon pri membroj" + "DOC_STATS": { + "TITLE": "Statistikoj pri stokado", + "USER": { + "TITLE": "Nombro de dokumentoj ligitaj al konto", + "USER_PROFILE": "Uzanto-profiloj", + "USER_SETTINGS": "Parametroj konservitaj" }, - "VIEW": { - "TITLE": "Mapo pri membroj", - "LAYER": { - "MEMBER": "<i class=\"icon ion-person positive\"></i> Membroj", - "PENDING": "<i class=\"icon ion-clock energized\"></i> Aliĝoj atendantaj", - "WALLET": "<i class=\"icon ion-card gray\"></i> Simplaj monujoj" - } + "USER_DELTA": { + "TITLE": "Variado de la nombro de dokumentoj ligitaj al konto", + "USER_PROFILE": "Uzanto-profiloj", + "USER_SETTINGS": "Parametroj konservitaj" }, - "ERROR": { - "LOAD_POSITION_FAILED": "Neeblas ricevi la lokojn afiŝotajn." + "MESSAGE": { + "TITLE": "Nombro de dokumentoj ligitaj al komunikado", + "MESSAGE_INBOX": "Mesaĝoj en ricevujo", + "MESSAGE_OUTBOX": "Senditaj mesaĝoj konservitaj", + "INVITATION_CERTIFICATION": "Invitoj atestotaj" + }, + "SOCIAL": { + "TITLE": "Nombro de paĝoj aŭ grupoj", + "PAGE_COMMENT": "Komentoj", + "PAGE_RECORD": "Paĝoj", + "GROUP_RECORD": "Grupoj" + }, + "OTHER": { + "TITLE": "Aliaj dokumentoj", + "HISTORY_DELETE": "Forigoj de dokumentoj" } }, - "REGISTRY": { - "LOOKUP": { - "BTN_MAP": "Mapo", - "BTN_MAP_HELP": "Malfermi la mapon pri paĝoj" + "SYNCHRO": { + "TITLE": "Statistikoj pri sinkronigoj", + "COUNT": { + "TITLE": "Kvanto sinkronigita", + "INSERTS": "Enmetoj", + "UPDATES": "Ĝisdatigoj", + "DELETES": "Forigoj" }, - "VIEW": { - "TITLE": "Mapo pri paĝoj", - "LAYER": { - "SHOP": "<i class=\"icon ion-page-shop positive\"></i> Lokaj komercoj", - "COMPANY": "<i class=\"icon ion-page-company positive\"></i> Entreprenoj", - "ASSOCIATION": "<i class=\"icon ion-page-association energized\"></i> Asocioj", - "INSTITUTION": "<i class=\"icon ion-page-institution gray\"></i> Institucioj" - } + "PEER": { + "TITLE": "Nodoj informpetitaj", + "ES_USER_API": "Nodoj pri datenoj de uzantoj", + "ES_SUBSCRIPTION_API": "Nodoj pri retaj servoj" + }, + "PERFORMANCE": { + "TITLE": "Efikecoj pri efektiviĝo", + "DURATION": "Tempo por efektiviĝo (ms)" + } + } + } +} +); + +$translateProvider.translations("es-ES", { + "NETWORK": { + "VIEW": { + "BTN_GRAPH": "Estadística" + } + }, + "GRAPH": { + "COMMON": { + "LINEAR_SCALE" : "Escala lineal", + "LOGARITHMIC_SCALE" : "Escala logarítmica", + "BTN_SHOW_STATS": "Ver estadísticas", + "BTN_SHOW_DETAILED_STATS": "Estadísticas detalladas", + "RANGE_DURATION_DIVIDER": "Unidad de paso:", + "RANGE_DURATION": { + "HOUR": "Grupo por <b>hora</b>", + "DAY": "Grupo por <b>día</b>", + "MONTH": "Grupo por <b>mes</b>" } }, - "PROFILE": { - "MARKER_HELP": "<b>Ŝovu-demetu</b> tiun ĉi markilon por <b>aktualigi<br/> vian lokon</b> sur la mapo, aŭ uzu la serĉo-butonon<br/>super la mapo." + "ACCOUNT": { + "INPUT_CHART_TITLE": "Suma del flujo entrante, por el transmisor:", + "OUTPUT_CHART_TITLE": "Suma de las salidas por destino:" }, - "ERROR": { - "LOCALIZE_ME_FAILED": "Neeblas ricevi vian nunan lokon" + "BLOCKCHAIN": { + "TITLE": "Estadística", + "BLOCKS_ISSUERS_DIVIDER": "Bloques escritos por los miembros", + "BLOCKS_ISSUERS_HELP": "<b>{{issuerCount|formatInteger}} members</b> has computed <b>{{blockCount|formatInteger}} blocks</b>", + "BLOCKS_ISSUERS_TITLE": "Número de bloques miembro calculado", + "BLOCKS_ISSUERS_LABEL": "Número de bloques", + "TX_DIVIDER": "Análisis de transacciones", + "TX_AMOUNT_TITLE": "El volumen de operaciones", + "TX_AMOUNT_PUBKEY_TITLE": "El volumen de operaciones calculado por {{issuer | formatPubkey}}", + "TX_AMOUNT_LABEL": "Volumen negociado", + "TX_COUNT_TITLE": "Número de transacciones escritas", + "TX_COUNT_LABEL": "Número de transacciones", + "TX_AVG_BY_BLOCK": "Promedio por bloque" }, - "SETTINGS": { - "MAP_DIVIDER": "Mapoj", - "ENABLE_GOOGLE_API": "Aktivigi la Google-API-servojn?", - "ENABLE_GOOGLE_API_HELP": "Ebligas afiŝi sur la <b>mapo pri membroj</b> kontojn kun adreso sed sen iu GPS-lokalizo.", - "GOOGLE_API_KEY": "Google-API-ŝlosilo", - "BTN_GOOGLE_API": "Ekhavi ŝlosilon", - "BTN_GOOGLE_API_WARNING": "Necesigas havi Google-konton", - "GOOGLE_API_KEY_PLACEHOLDER": "Ekzemple: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I" + "CURRENCY": { + "MONETARY_MASS_TITLE": "Evolución de la masa monetaria", + "MONETARY_MASS_LABEL": "Masa monetaria", + "MONETARY_MASS_SHARE_LABEL": "Promedio miembro", + "UD_TITLE": "Evolución del dividendo universales", + "MEMBERS_COUNT_TITLE": "Evolución del número de miembros", + "MEMBERS_COUNT_LABEL": "Número de miembros" }, - "HELP": { - "TIP": { - "WOT": "Tiu ĉi mapo afiŝas <b>la profilojn kun loko</b>, ĉu ili rilatas al membro-kontoj aŭ ne.<br/><br/>Nur videblas la profiloj, kies kromaĵo "aperi sur la mapo" estis aktivigita.", - "WOT_BTN_LAYERS": "<b>Filtru ĉi tie la afiŝitajn datenojn</b>: membroj, aliĝoj atendantaj, simplaj monujoj, ktp.", - "WOT_BTN_SEARCH": "Vi povas <b>efektivigi serĉadon</b> laŭ nomo, publika ŝlosilo aŭ membro-pseŭdonimo." + "PEER": { + "VIEW": { + "BLOCK_COUNT_LABEL": "Número de bloques calculados", + "BLOCK_COUNT": "{{count}} bloques", + "NO_BLOCK": "Ningún bloque" } } } @@ -31976,77 +31849,119 @@ $translateProvider.translations("eo-EO", { ); $translateProvider.translations("fr-FR", { - "MAP": { + "NETWORK": { + "VIEW": { + "BTN_GRAPH": "Statistiques" + } + }, + "GRAPH": { "COMMON": { - "SEARCH_DOTS": "Rechercher...", - "BTN_LOCALIZE_ME": "Me localiser" + "LINEAR_SCALE" : "Echelle linéaire", + "LOGARITHMIC_SCALE" : "Echelle logarithmique", + "BTN_SHOW_STATS": "Voir les statistiques", + "BTN_SHOW_DETAILED_STATS": "Statistiques détaillées", + "RANGE_DURATION_DIVIDER": "Unité de temps :", + "RANGE_DURATION": { + "HOUR": "Heure", + "DAY": "Jour", + "MONTH": "Mois" + } }, - "NETWORK": { - "LOOKUP": { - "BTN_MAP": "Carte", - "BTN_MAP_HELP": "Ouvrir la carte des noeuds" - }, + "ACCOUNT": { + "TITLE": "Statistiques", + "BTN_SHOW_STATS": "Voir les statistiques du compte", + "BALANCE_DIVIDER": "Situation du compte", + "BALANCE_TITLE": "Evolution du compte {{pubkey|formatPubkey}}", + "TX_RECEIVED_LABEL": "Recettes", + "TX_SENT_LABEL": "Dépenses", + "TX_ACCUMULATION_LABEL": "Bilan des transactions", + "UD_LABEL": "DU", + "UD_ACCUMULATION_LABEL": "Bilan des DU", + "BALANCE_LABEL": "Solde", + "WOT_DIVIDER": "Toile de confiance", + "CERTIFICATION_TITLE": "Nombre de certifications - {{pubkey|formatPubkey}}", + "RECEIVED_CERT_LABEL": "Total reçues", + "RECEIVED_CERT_DELTA_LABEL": "Variation reçues", + "GIVEN_CERT_LABEL": "Total envoyées", + "GIVEN_CERT_DELTA_LABEL": "Variation envoyées", + "INPUT_CHART_TITLE": "Somme des flux entrants, par émetteur :", + "OUTPUT_CHART_TITLE": "Somme des flux sortants, par destinaire :" + }, + "BLOCKCHAIN": { + "TITLE": "Statistiques", + "BLOCKS_ISSUERS_DIVIDER": "Analyse de la répartition du calcul", + "BLOCKS_ISSUERS_HELP": "<b>{{issuerCount|formatInteger}} membres</b> ont calculé <b>{{blockCount|formatInteger}} blocs</b>", + "BLOCKS_ISSUERS_TITLE": "Nombre de blocs calculés par membre", + "BLOCKS_ISSUERS_LABEL": "Nombre de blocs", + "TX_DIVIDER": "Analyse des transactions", + "TX_AMOUNT_TITLE": "Volume des transactions", + "TX_AMOUNT_PUBKEY_TITLE": "Volume des transactions calculées par {{issuer | formatPubkey}}", + "TX_AMOUNT_LABEL": "Volume échangé", + "TX_COUNT_TITLE": "Nombre de transactions écrites", + "TX_COUNT_LABEL": "Nombre de transactions", + "TX_AVG_BY_BLOCK": "Nombre moyen de transactions / bloc" + + }, + "CURRENCY": { + "MONETARY_MASS_TITLE": "Evolution de la masse monétaire", + "MONETARY_MASS_LABEL": "Masse monétaire", + "MONETARY_MASS_SHARE_LABEL": "Moyenne par membre", + "UD_TITLE": "Evolution du dividende universel", + "MEMBERS_COUNT_TITLE": "Evolution du nombre de membres", + "MEMBERS_COUNT_LABEL": "Nombre de membres" + }, + "PEER": { "VIEW": { - "TITLE": "Carte des noeuds", - "LAYER": { - "MEMBER": "Nœuds membre", - "MIRROR": "Nœuds miroir", - "OFFLINE": "Nœuds hors ligne" - } + "BLOCK_COUNT_LABEL": "Nombre de blocs calculés", + "BLOCK_COUNT": "{{count}} blocs", + "NO_BLOCK": "Aucun bloc" } }, - "WOT": { - "LOOKUP": { - "BTN_MAP": "Carte", - "BTN_MAP_HELP": "Ouvrir la carte des membres" + "DOC_STATS": { + "TITLE": "Statistiques de stockage", + "USER": { + "TITLE": "Nombre de documents liés à un compte", + "USER_PROFILE": "Profils utilisateur", + "USER_SETTINGS": "Paramètres sauvegardés" }, - "VIEW": { - "TITLE": "Carte des membres", - "LAYER": { - "MEMBER": "<i class=\"icon ion-person positive\"></i> Membres", - "PENDING": "<i class=\"icon ion-clock energized\"></i> Inscriptions en attente", - "WALLET": "<i class=\"icon ion-card gray\"></i> Simples portefeuilles" - } + "USER_DELTA": { + "TITLE": "Variation du nombre de documents liés à un compte", + "USER_PROFILE": "Profils utilisateur", + "USER_SETTINGS": "Paramètres sauvegardés" }, - "ERROR": { - "LOAD_POSITION_FAILED": "Impossible de récupérer les positions à afficher." - } - }, - "REGISTRY": { - "LOOKUP": { - "BTN_MAP": "Carte", - "BTN_MAP_HELP": "Ouvrir la carte des pages" + "MESSAGE": { + "TITLE": "Nombre de documents liés à la communication", + "MESSAGE_INBOX": "Messages en boîte de réception", + "MESSAGE_OUTBOX": "Messages envoyés sauvegardés", + "INVITATION_CERTIFICATION": "Invitations à certifier" }, - "VIEW": { - "TITLE": "Carte des pages", - "LAYER": { - "SHOP": "<i class=\"icon ion-page-shop positive\"></i> Commerces locaux", - "COMPANY": "<i class=\"icon ion-page-company positive\"></i> Entreprises", - "ASSOCIATION": "<i class=\"icon ion-page-association energized\"></i> Associations", - "INSTITUTION": "<i class=\"icon ion-page-institution gray\"></i> Institutions" - } + "SOCIAL": { + "TITLE": "Nombre de pages ou groupes", + "PAGE_COMMENT": "Commentaires", + "PAGE_RECORD": "Pages", + "GROUP_RECORD": "Groupes" + }, + "OTHER": { + "TITLE": "Autres documents", + "HISTORY_DELETE": "Suppressions de documents" } }, - "PROFILE": { - "MARKER_HELP": "<b>Glissez-déposez</b> ce marqueur pour <b>mettre<br/>à jour votre position</b> sur la carte, ou utilisez le bouton<br/>de recherche au-dessus de la carte." - }, - "ERROR": { - "LOCALIZE_ME_FAILED": "Impossible de récupérer votre position actuelle" - }, - "SETTINGS": { - "MAP_DIVIDER": "Cartes", - "ENABLE_GOOGLE_API": "Activer les services Google API ?", - "ENABLE_GOOGLE_API_HELP": "Permet l'affichage dans la <b>carte des membres</b> des comptes ayant une adresse mais aucun positionnement GPS.", - "GOOGLE_API_KEY": "Clé d'API Google", - "BTN_GOOGLE_API": "Obtenir une clé", - "BTN_GOOGLE_API_WARNING": "Nécessite d'avoir un compte Google", - "GOOGLE_API_KEY_PLACEHOLDER": "Exemple : AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I" - }, - "HELP": { - "TIP": { - "WOT": "Cette carte affiche <b>les profils ayant une position</b>, qu'ils correspondent à des comptes membre ou non.<br/><br/>Seuls sont visibles les profils dont l'option "apparaître sur la carte" a été activée.", - "WOT_BTN_LAYERS": "<b>Filtrez ici les données affichées</b> : membres, inscriptions en attente, simples portefeuilles, etc.", - "WOT_BTN_SEARCH": "Vous pouvez <b>effectuer une recherche</b> par nom, clef publique ou pseudonyme de membre." + "SYNCHRO": { + "TITLE": "Statistiques de synchronisations", + "COUNT": { + "TITLE": "Volume synchronisé", + "INSERTS": "Insertions", + "UPDATES": "Mises à jour", + "DELETES": "Suppressions" + }, + "PEER": { + "TITLE": "Noeuds requêtés", + "ES_USER_API": "Noeuds données utilisateurs", + "ES_SUBSCRIPTION_API": "Noeuds services en ligne" + }, + "PERFORMANCE": { + "TITLE": "Performances d'exécution", + "DURATION": "Temps d'exécution (ms)" } } } @@ -32054,82 +31969,167 @@ $translateProvider.translations("fr-FR", { ); $translateProvider.translations("it-IT", { - "MAP": { + "NETWORK": { + "VIEW": { + "BTN_GRAPH": "Statistiche" + } + }, + "GRAPH": { "COMMON": { - "SEARCH_DOTS": "Ricerca...", - "BTN_LOCALIZE_ME": "Trovami" + "LINEAR_SCALE" : "Scala lineare", + "LOGARITHMIC_SCALE" : "Scala logaritmica", + "BTN_SHOW_STATS": "Vedere le statistiche", + "BTN_SHOW_DETAILED_STATS": "Statistiche dettagliate", + "RANGE_DURATION_DIVIDER": "Unità di tempo :", + "RANGE_DURATION": { + "HOUR": "Ora", + "DAY": "Giorno", + "MONTH": "Mese" + } + }, + "ACCOUNT": { + "TITLE": "Statistiche", + "BTN_SHOW_STATS": "Visualizzare le statistiche del conto", + "BALANCE_DIVIDER": "Situazione del conto", + "BALANCE_TITLE": "Evoluzione del conto {{pubkey|formatPubkey}}", + "TX_RECEIVED_LABEL": "Incassi", + "TX_SENT_LABEL": "Spese", + "TX_ACCUMULATION_LABEL": "Bilancio delle transazioni", + "UD_LABEL": "DU", + "UD_ACCUMULATION_LABEL": "Bilancio dei DU", + "BALANCE_LABEL": "Saldo", + "WOT_DIVIDER": "Tela di fiducia", + "CERTIFICATION_TITLE": "Numero di certificazioni - {{pubkey|formatPubkey}}", + "RECEIVED_CERT_LABEL": "Totale ricevute", + "RECEIVED_CERT_DELTA_LABEL": "Variazione ricevute", + "GIVEN_CERT_LABEL": "Totale inviate", + "GIVEN_CERT_DELTA_LABEL": "Variazione inviate", + "INPUT_CHART_TITLE": "Somma dei flussi in entrata, par emittente :", + "OUTPUT_CHART_TITLE": "Somma dei flussi in uscita, per destinatario :" }, - "NETWORK": { - "LOOKUP": { - "BTN_MAP": "Mappa dei peers", - "BTN_MAP_HELP": "Aprire mappa dei peers" - }, + "BLOCKCHAIN": { + "TITLE": "Statistiche", + "BLOCKS_ISSUERS_DIVIDER": "Analisi della ripartizione del calcolo", + "BLOCKS_ISSUERS_HELP": "<b>{{issuerCount|formatInteger}} membri</b> hanno calcolato <b>{{blockCount|formatInteger}} blocchi</b>", + "BLOCKS_ISSUERS_TITLE": "Numero di blocchi calcolati a membro", + "BLOCKS_ISSUERS_LABEL": "Numero di blocchi", + "TX_DIVIDER": "Analisi delle transazioni", + "TX_AMOUNT_TITLE": "Volume delle transazioni", + "TX_AMOUNT_PUBKEY_TITLE": "Volume delle transazioni calcolato da {{issuer | formatPubkey}}", + "TX_AMOUNT_LABEL": "Volume scambiato", + "TX_COUNT_TITLE": "Numero di transazioni scritte", + "TX_COUNT_LABEL": "Numero di transazioni", + "TX_AVG_BY_BLOCK": "Numero medio di transazioni / blocco" + }, + "CURRENCY": { + "MONETARY_MASS_TITLE": "Evoluzione della massa monetaria", + "MONETARY_MASS_LABEL": "Massa monetaria", + "MONETARY_MASS_SHARE_LABEL": "Media a membro", + "UD_TITLE": "Evoluzione del Dividendo Universale", + "MEMBERS_COUNT_TITLE": "Evoluzione del numero di membri", + "MEMBERS_COUNT_LABEL": "Numero di membri" + }, + "PEER": { "VIEW": { - "TITLE": "Mappa dei peers", - "LAYER": { - "MEMBER": "Peers membri", - "MIRROR": "Peers specchi", - "OFFLINE": "Peers offline" - } + "BLOCK_COUNT_LABEL": "Numero di blocchi calcolati", + "BLOCK_COUNT": "{{count}} blocchi", + "NO_BLOCK": "Nessun blocco" } }, - "WOT": { - "LOOKUP": { - "BTN_MAP": "Mappa dei membri", - "BTN_MAP_HELP": "Aprire mappa dei membri" + "DOC_STATS": { + "TITLE": "Statistiche di stoccaggio", + "USER": { + "TITLE": "Numero di documenti legati ad un conto", + "USER_PROFILE": "Profili dell'utente", + "USER_SETTINGS": "Impostazioni salvate", }, - "VIEW": { - "TITLE": "Mappa membri", - "LAYER": { - "MEMBER": "<i class=\"icon ion-person positive\"></i> Membri", - "PENDING": "<i class=\"icon ion-clock energized\"></i> Registrazione pendenti", - "WALLET": "<i class=\"icon ion-card gray\"></i> Portafogli osservatori" - } + "MESSAGE": { + "TITLE": "Numero di documenti legati alla conversazione", + "MESSAGE_INBOX": "Messaggi in arrivo", + "MESSAGE_OUTBOX": "Messaggi inviati salvati", + "INVITATION_CERTIFICATION": "Invitazioni da certificare" }, - "ERROR": { - "LOAD_POSITION_FAILED": "Errore nel caricamento delle posizioni." - } - }, - "REGISTRY": { - "LOOKUP": { - "BTN_MAP": "Mappa", - "BTN_MAP_HELP": "Aprire la mappa delle pagine pro" + "SOCIAL": { + "TITLE": "Numero di pagine o gruppi", + "PAGE_COMMENT": "Commenti", + "PAGE_RECORD": "Pagine", + "GROUP_RECORD": "Gruppi", }, - "VIEW": { - "TITLE": "Mappa delle pagine pro", - "LAYER": { - "SHOP": "<i class=\"icon ion-page-shop positive\"></i> Negozi locali", - "COMPANY": "<i class=\"icon ion-page-company positive\"></i> Aziende", - "ASSOCIATION": "<i class=\"icon ion-page-association energized\"></i> Associazioni", - "INSTITUTION": "<i class=\"icon ion-page-institution gray\"></i> Instituti" - } + "OTHER": { + "TITLE": "Altri documenti", + "HISTORY_DELETE": "Cronologia eliminazione documenti", } }, - "PROFILE": { - "MARKER_HELP": "<b>Drag and drop</b> questo indicatore per <b>aggiornare<br/>tua posizione</b>, o usa i bottoni <br/>sopra la mappa." - }, - "ERROR": { - "LOCALIZE_ME_FAILED": "Impossible trovare tua posizione attuale" - }, - "SETTINGS": { - "MAP_DIVIDER": "Mappe", - "ENABLE_GOOGLE_API": "Abilitare i servizi Google API ?", - "ENABLE_GOOGLE_API_HELP": "Sulla <b>mappa dei membri</b>, ti permette di visualizzare i conti con un indirizzo ma senza geolocalizzazione.", - "GOOGLE_API_KEY": "Chiave Google API", - "BTN_GOOGLE_API": "Ottenere una chiave", - "BTN_GOOGLE_API_WARNING": "necessita un conto Google", - "GOOGLE_API_KEY_PLACEHOLDER": "per es. : AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I" - }, - "HELP": { - "TIP": { - "WOT": "Questa mappa mostra <b>profili che hanno fornito una posizione</b>, che siano conti membri o no.<br/><br/>Solo i profili che hanno attivato l'opzione "apparire sulla mappa" sono stati attivati.", - "WOT_BTN_LAYERS": "<b>Filtrare i dati visibili</b>: membri, registrazioni pendenti, portafogli osservatori, etc.", - "WOT_BTN_SEARCH": "Puoi <b>cercare</b> per nome, chiave pubblica, o pseudonimo del membro." + "SYNCHRO": { + "TITLE": "Statistiche di sincronizzazioni", + "COUNT": { + "TITLE": "Volume sincronizzato", + "INSERTS": "Inserimenti", + "UPDATES": "Aggiornamenti", + "DELETES": "Eliminazioni" + }, + "PEER": { + "TITLE": "Nodi interrogati", + "ES_USER_API": "Nodi dati utenti", + "ES_SUBSCRIPTION_API": "Noeuds servizi online" + }, + "PERFORMANCE": { + "TITLE": "Prestazioni (performance) di esecuzione", + "DURATION": "Tempo di esecuzione (ms)" } } } } - ); +); + +$translateProvider.translations("nl-NL", { + "NETWORK": { + "VIEW": { + "BTN_GRAPH": "Statistieken" + } + }, + "GRAPH": { + "COMMON": { + "LINEAR_SCALE" : "Lineaire schaal", + "LOGARITHMIC_SCALE" : "Logaritmische schaal", + "BTN_SHOW_STATS": "Zie statistieken", + "BTN_SHOW_DETAILED_STATS": "Gedetailleerde statistieken", + "RANGE_DURATION_DIVIDER": "Stap eenheid:", + "RANGE_DURATION": { + "HOUR": "Groep per <b>uur</b>", + "DAY": "Groep per <b>dag</b>", + "MONTH": "Groep per <b>maand</b>" + } + }, + "ACCOUNT": { + "INPUT_CHART_TITLE": "Som van de binnenkomende stroom, door de zender:", + "OUTPUT_CHART_TITLE": "Som van de uitstroom per bestemming:" + }, + "BLOCKCHAIN": { + "TITLE": "Statistieken", + "BLOCKS_ISSUERS_DIVIDER": "Schriftelijke blokken door leden", + "BLOCKS_ISSUERS_HELP": "<b>{{issuerCount|formatInteger}} leden</b> berekend <b>{{blockCount|formatInteger}} blokken</b>", + "BLOCKS_ISSUERS_TITLE": "Aantal blokken berekend per lid", + "BLOCKS_ISSUERS_LABEL": "Aantal blokken", + "TX_DIVIDER": "Analyse van transacties", + "TX_AMOUNT_TITLE": "Trading volume", + "TX_AMOUNT_PUBKEY_TITLE": "Trading volume dat wordt berekend door {{issuer | formatPubkey}}", + "TX_AMOUNT_LABEL": "Verhandeld volume", + "TX_COUNT_TITLE": "Aantal schriftelijke transacties", + "TX_COUNT_LABEL": "Aantal transacties", + "TX_AVG_BY_BLOCK": "Gemiddeld aantal transacties / blok" + }, + "CURRENCY": { + "MONETARY_MASS_TITLE": "Evolutie van de monetaire massa", + "MONETARY_MASS_LABEL": "Monetaire massa", + "MONETARY_MASS_SHARE_LABEL": "Gemiddelde leden", + "UD_TITLE": "Ontwikkeling van de universele dividend", + "MEMBERS_COUNT_TITLE": "Evolutie van het aantal leden", + "MEMBERS_COUNT_LABEL": "Aantal leden" + } + } +} +); $translateProvider.translations("fr-FR", { "RML9": { @@ -32171,34 +32171,6 @@ $templateCache.put('plugins/rml9/templates/07-button.html','<!-- Button: Open a $templateCache.put('plugins/rml9/templates/07-view.html','<leaflet id="map-geojson" center="map.center" geojson="map.geojson"></leaflet>\n'); $templateCache.put('plugins/rml9/templates/final-button.html','<!-- Button: Open a view, using `ui-sref` attribute -->\n<button ng-if class="button button-balanced button-small-padding icon ion-android-archive"\n ui-sref="app.rml9({pubkey: formData.pubkey})"\n title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n</button>\n\n'); $templateCache.put('plugins/rml9/templates/final-view.html','<ion-view left-buttons="leftButtons">\n <ion-nav-title>\n {{\'RML9.VIEW.TITLE\' | translate}}\n </ion-nav-title>\n\n <ion-content>\n <div class="list">\n\n <!-- buttons bar -->\n <div class="center padding">\n <div class="buttons">\n <button class="button button-balanced icon-left icon ion-archive"\n ng-click="onExportButtonClick()">{{\'RML9.BTN_EXPORT\' | translate}}\n </button>\n </div>\n </div>\n\n <!-- the pubkey -->\n <div class="item">\n {{\'COMMON.PUBKEY\'|translate}}\n <div class="badge">{{pubkey|formatPubkey}}</div>\n </div>\n\n <!-- the balance -->\n <div class="item">\n {{\'RML9.VIEW.BALANCE\'|translate}}\n <div class="badge badge-calm">\n {{balance|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n </div>\n </div>\n\n <!-- a text divider-->\n <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n <!-- iterate on each TX -->\n <div class="row">\n <div class="col col-75">\n <div class="item item-text-wrap" ng-repeat="item in items">\n\n <h3>\n {{item.time|formatDate}}\n <span ng-if="item.comment" class="gray"> | {{item.comment}}</span>\n </h3>\n\n <h4 ng-if="item.uid" class="positive"><i class="icon ion-person"></i> {{item.name||item.uid}}</h4>\n <h4 ng-if="!item.uid" class="gray"><i class="icon ion-key"></i> {{item.pubkey|formatPubkey}}</h4>\n\n <div class="badge"\n ng-class="{\'badge-balanced\': item.amount > 0}">\n {{item.amount|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n </div>\n </div>\n\n </div>\n\n <div class="col col-25">\n\n <!-- [NEW] TX input chart -->\n <p class="gray" translate>RML9.CHART.INPUT_CHART_TITLE</p>\n <canvas id="chart-received-pie" class="chart-pie"\n chart-data="inputChart.data"\n chart-labels="inputChart.labels">\n </canvas>\n\n <!-- [NEW] TX input chart -->\n <p class="gray" translate>RML9.CHART.OUTPUT_CHART_TITLE</p>\n <canvas id="chart-sent-pie" class="chart-pie"\n chart-data="outputChart.data"\n chart-labels="outputChart.labels">\n </canvas>\n </div>\n </div>\n </div>\n </ion-content>\n</ion-view>\n'); -$templateCache.put('plugins/graph/templates/account/graph_balance.html','\n <!-- button bar -->\n <div class="button-bar-inline "\n style="top: 33px; margin-top:-33px; position: relative;">\n <button\n class="button button-stable button-clear no-padding-xs pull-right"\n ng-click="showActionsPopover($event)">\n <i class="icon ion-navicon-round"></i>\n </button>\n </div>\n\n <div class="padding-left padding-right">\n <canvas id="account-balance" class="chart-bar"\n height="{{height}}" width="{{width}}"\n chart-data="data"\n chart-dataset-override="datasetOverride"\n chart-colors="colors"\n chart-options="options"\n chart-labels="labels"\n chart-click="onChartClick">\n </canvas>\n </div>\n\n <ng-include src="::\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'); -$templateCache.put('plugins/graph/templates/account/graph_certifications.html','\n <div class="padding-left padding-right">\n <canvas id="account-certifications" class="chart-bar"\n height="{{height}}" width="{{width}}"\n chart-data="data"\n chart-dataset-override="datasetOverride"\n chart-colors="colors"\n chart-options="options"\n chart-labels="labels"\n chart-click="onChartClick">\n </canvas>\n </div>\n'); -$templateCache.put('plugins/graph/templates/account/graph_sum_tx.html','<div class="row responsive-sm" ng-if="!loading">\n\n <div class="col col-10 hidden-xs hidden-sm"> </div>\n\n <div class="col text-center">\n\n <!-- TX input chart -->\n <p class="gray padding text-wrap"\n ng-if="inputChart.data.length"\n translate>GRAPH.ACCOUNT.INPUT_CHART_TITLE</p>\n <canvas id="chart-received-pie" class="chart-pie"\n chart-data="inputChart.data"\n chart-labels="inputChart.labels"\n chart-colors="inputChart.colors"\n chart-click="onInputChartClick">\n </canvas>\n\n </div>\n\n <div class="col col-10 hidden-xs hidden-sm"> </div>\n\n <div class="col text-center">\n\n <!-- TX output chart -->\n <p class="gray padding text-wrap"\n ng-if="outputChart.data.length"\n translate>GRAPH.ACCOUNT.OUTPUT_CHART_TITLE</p>\n <canvas id="chart-sent-pie" class="chart-pie"\n chart-data="outputChart.data"\n chart-labels="outputChart.labels"\n chart-colors="outputChart.colors"\n chart-click="onOutputChartClick">\n </canvas>\n\n </div>\n\n <div class="col col-10 hidden-xs hidden-sm"> </div>\n\n</div>\n'); -$templateCache.put('plugins/graph/templates/account/view_identity_tx_extend.html','<!-- Buttons section -->\n<ng-if ng-if=":state:enable && extensionPoint === \'buttons\'">\n\n <button class="button button-stable button-small-padding icon ion-stats-bars"\n ui-sref="app.wot_identity_stats({pubkey: formData.pubkey})"\n title="{{\'GRAPH.ACCOUNT.BTN_SHOW_STATS\' | translate}}">\n </button>\n\n</ng-if>\n'); -$templateCache.put('plugins/graph/templates/account/view_stats.html','<ion-view left-buttons="leftButtons"\n cache-view="false">\n <ion-nav-title>\n {{\'GRAPH.ACCOUNT.TITLE\' | translate}}{{id}}\n </ion-nav-title>\n\n <ion-content scroll="true" class="no-padding">\n\n\n\n <div class="list" >\n\n <!-- - - - - Balance - - - - -->\n <ng-controller ng-controller="GpAccountBalanceCtrl">\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <div class="item item-divider" ng-if="!loading" >\n {{\'GRAPH.ACCOUNT.BALANCE_DIVIDER\'|translate}}\n <ion-spinner ng-if="loadingRange" class="ion-spinner-small" icon="android"></ion-spinner>\n </div>\n\n <div class="item no-padding-xs"\n ng-if="!loading"\n ng-include="::\'plugins/graph/templates/account/graph_balance.html\'"\n ng-init="setSize(350, 1000)">\n </div>\n </ng-controller>\n\n </div>\n\n <div class="item no-padding-xs"\n ng-include="::\'plugins/graph/templates/account/graph_sum_tx.html\'"\n ng-controller="GpAccountSumTxCtrl">\n </div>\n\n <!-- - - - - WOT - - - -\n <div class="item item-divider" translate>\n GRAPH.ACCOUNT.WOT_DIVIDER\n </div>\n\n <div class="item no-padding-xs"\n ng-include="::\'plugins/graph/templates/account/graph_certifications.html\'"\n ng-controller="GpAccountCertificationCtrl"\n ng-init="setSize(350, 1000)">\n </div>-->\n\n </ion-content>\n\n</ion-view>\n'); -$templateCache.put('plugins/graph/templates/account/view_wallet_tx_extend.html','<!-- Buttons section -->\n<ng-if ng-if=":state:enable && extensionPoint === \'buttons\'">\n\n <button class="button button-stable button-small-padding icon ion-stats-bars"\n ui-sref="app.wot_identity_stats({pubkey: formData.pubkey})"\n title="{{\'GRAPH.ACCOUNT.BTN_SHOW_STATS\' | translate}}">\n </button>\n\n</ng-if>\n'); -$templateCache.put('plugins/graph/templates/blockchain/graph_block_issuers.html','\n <div class="row responsive-lg">\n\n <!-- bar -->\n <div class="col col-75">\n <canvas id="bar" class="chart-bar"\n height="{{height}}" width="{{width}}"\n chart-data="data"\n chart-labels="labels"\n chart-colors="colors"\n chart-options="barOptions"\n chart-click="onChartClick">\n </canvas>\n </div>\n\n <!-- pie -->\n <div class="col col-25 padding-top">\n <canvas id="blocksByIssuer-pie" class="chart-pie"\n chart-data="data"\n chart-labels="labels"\n chart-colors="colors"\n chart-click="onChartClick">\n </canvas>\n\n <div class="gray padding-top text-center">\n <small ng-bind-html="\'GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_HELP\'| translate:{issuerCount: data.length, blockCount: blockCount }"></small>\n </div>\n </div>\n </div>\n'); -$templateCache.put('plugins/graph/templates/blockchain/graph_tx_count.html','\n <!-- button bar -->\n <div class="button-bar-inline "\n style="top: 33px; margin-top:-33px; position: relative;">\n <button\n class="button button-stable button-clear no-padding-xs pull-right"\n ng-click="showActionsPopover($event)">\n <i class="icon ion-navicon-round"></i>\n </button>\n </div>\n\n <div class="padding-left padding-right">\n <canvas id="tx-line" class="chart-bar"\n height="{{height}}" width="{{width}}"\n chart-data="data"\n chart-dataset-override="datasetOverride"\n chart-colors="colors"\n chart-options="options"\n chart-labels="labels"\n chart-click="onChartClick">\n </canvas>\n </div>\n\n <ng-include src="::\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'); -$templateCache.put('plugins/graph/templates/blockchain/view_stats.html','<ion-view left-buttons="leftButtons"\n cache-view="false">\n <ion-nav-title>\n {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}{{id}}\n </ion-nav-title>\n\n <ion-content scroll="true" class="no-padding">\n\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <div class="list" ng-if="!loading">\n\n\n <!-- TX count -->\n <ng-controller ng-controller="GpBlockchainTxCountCtrl">\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <div class="item item-divider" ng-if="!loading" >\n {{\'GRAPH.BLOCKCHAIN.TX_DIVIDER\'|translate}}\n <ion-spinner ng-if="loadingRange" class="ion-spinner-small" icon="android"></ion-spinner>\n </div>\n\n <div class="item no-padding-xs no-padding-sm"\n ng-if="!loading"\n ng-include="::\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n ng-init="setSize(350, 1000)">\n </div>\n </ng-controller>\n\n\n <!-- Blocks issuer -->\n <ng-controller ng-controller="GpBlockchainIssuersCtrl">\n\n <div class="item item-divider" ng-if="!loading" translate>GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_DIVIDER</div>\n\n <div class="item no-padding-xs no-padding-sm"\n ng-if="!loading"\n ng-include="::\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n ng-init="setSize(300, 750)">\n </div>\n\n </ng-controller>\n\n </ion-content>\n\n</ion-view>\n'); -$templateCache.put('plugins/graph/templates/common/graph_range_bar.html','\n <div class="range range-positive no-padding-left no-padding-right">\n <a\n class="button button-stable button-clear no-padding pull-left"\n ng-click="goPreviousRange($event)">\n <i class="icon ion-chevron-left"></i>\n </a>\n <input type="range"\n ng-model="formData.timePct"\n name="timePct"\n min="0" max="100"\n value="{{formData.timePct}}"\n ng-change="onRangeChanged();"\n ng-model-options="{ debounce: 250 }">\n <a\n class="button button-stable button-clear no-padding pull-right"\n ng-click="goNextRange($event)">\n <i class="icon ion-chevron-right"></i>\n </a>\n </div>\n'); -$templateCache.put('plugins/graph/templates/common/popover_range_actions.html','<ion-popover-view class="has-header popover-graph-currency">\n <ion-header-bar>\n <h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1>\n </ion-header-bar>\n <ion-content scroll="false">\n <div class="list item-text-wrap">\n\n <!-- scale -->\n <a class="item item-icon-left ink"\n ng-click="toggleScale()">\n <i class="icon ion-ios-checkmark-empty" ng-show="formData.scale==\'logarithmic\'"></i>\n <span ng-bind-html="\'GRAPH.COMMON.LOGARITHMIC_SCALE\' | translate"></span>\n </a>\n\n <!-- duration divider -->\n <div class="item item-divider">\n {{\'GRAPH.COMMON.RANGE_DURATION_DIVIDER\'|translate}}\n </div>\n\n <!-- duration: hour -->\n <a class="item item-icon-left ink"\n ng-click="setRangeDuration(\'hour\')">\n <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'hour\'"></i>\n <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.HOUR\' | translate"></span>\n </a>\n\n <!-- duration: day -->\n <a class="item item-icon-left ink"\n ng-click="setRangeDuration(\'day\')">\n <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'day\'"></i>\n <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.DAY\' | translate"></span>\n </a>\n\n <!-- duration: month -->\n <a class="item item-icon-left ink"\n ng-click="setRangeDuration(\'month\')">\n <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'month\'"></i>\n <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.MONTH\' | translate"></span>\n </a>\n\n </div>\n </ion-content>\n</ion-popover-view>\n'); -$templateCache.put('plugins/graph/templates/currency/graph_du.html','\n <!-- graphs button bar -->\n <div class="button-bar-inline "\n style="top: 33px; margin-top:-33px; position: relative;">\n <button\n class="button button-stable button-clear no-padding-xs no-padding-sm pull-right"\n ng-click="showActionsPopover($event)">\n <i class="icon ion-navicon-round"></i>\n </button>\n </div>\n\n <canvas id="monetaryMass-bar" class="chart-bar"\n height="{{height}}"\n width="{{width}}"\n chart-data="data"\n chart-labels="labels"\n chart-colors="colors"\n chart-dataset-override="datasetOverride"\n chart-options="options"\n chart-click="showBlock">\n </canvas>\n'); -$templateCache.put('plugins/graph/templates/currency/graph_members_count.html',' <canvas id="membersCount-bar" class="chart-line"\n height="{{height}}"\n width="{{width}}"\n chart-data="data"\n chart-labels="labels"\n chart-colors="colors"\n chart-options="options"\n chart-dataset-override="datasetOverride"\n chart-click="onChartClick">\n </canvas>\n'); -$templateCache.put('plugins/graph/templates/currency/graph_monetary_mass.html','\n <!-- graphs button bar -->\n <div class="button-bar-inline "\n style="top: 33px; margin-top:-33px; position: relative;">\n <button\n class="button button-stable button-clear no-padding-xs pull-right"\n ng-click="showActionsPopover($event)">\n <i class="icon ion-navicon-round"></i>\n </button>\n </div>\n\n <canvas id="monetaryMass-bar"\n class="chart-bar"\n height="{{height}}"\n width="{{width}}"\n chart-data="data"\n chart-labels="labels"\n chart-colors="colors"\n chart-dataset-override="datasetOverride"\n chart-options="options"\n chart-click="onChartClick">\n </canvas>\n'); -$templateCache.put('plugins/graph/templates/currency/popover_monetary_mass_actions.html','<ion-popover-view class="fit has-header">\n <ion-header-bar>\n <h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1>\n </ion-header-bar>\n <ion-content scroll="false">\n <div class="list item-text-wrap">\n\n <a class="item item-icon-left ink"\n ng-click="toggleScale()">\n <i class="icon ion-ios-checkmark-empty" ng-show="formData.scale==\'logarithmic\'"></i>\n <span ng-bind-html="\'GRAPH.COMMON.LOGARITHMIC_SCALE\' | translate"></span>\n </a>\n\n </div>\n </ion-content>\n</ion-popover-view>\n'); -$templateCache.put('plugins/graph/templates/currency/tab_blocks_extend.html','<!-- buttons -->\n<ng-if ng-if=":state:enable && extensionPoint === \'buttons\'">\n <div class="item item-divider">\n <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_blocks_stats">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n </a>\n </div>\n</ng-if>\n'); -$templateCache.put('plugins/graph/templates/currency/view_currency_extend.html','\n<!-- section actual parameters -->\n<ng-if ng-if=":state:enable && extensionPoint === \'parameters-actual\'" >\n\n <ng-if ng-if="!smallscreen">\n <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n ng-include="::\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n ng-controller="GpCurrencyMonetaryMassCtrl"\n ng-init="displayShareAxis=false;">\n </div>\n <div class="item buttons no-padding-top ">\n <a class="pull-right button button-text button-small button-small-padding ink" ui-sref="app.currency_stats_lg">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.COMMON.BTN_SHOW_DETAILED_STATS</span>\n </a>\n </div>\n </ng-if>\n\n <div class="item item-divider"\n ng-if="smallscreen">\n <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_parameters_stats">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n </a>\n </div>\n</ng-if>\n\n<!-- section Wot -->\n<ng-if ng-if=":state:enable && extensionPoint === \'wot-actual\'" >\n\n <ng-if ng-if="!smallscreen">\n <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n ng-include="::\'plugins/graph/templates/currency/graph_members_count.html\'"\n ng-controller="GpCurrencyMembersCountCtrl">\n </div>\n <div class="item buttons no-padding-top ">\n <a class="pull-right button button-text button-small button-small-padding ink" ui-sref="app.currency_stats_lg">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.COMMON.BTN_SHOW_DETAILED_STATS</span>\n </a>\n </div>\n </ng-if>\n\n <div class="item item-divider"\n ng-if="smallscreen">\n <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_wot_stats">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n </a>\n </div>\n</ng-if>\n\n<!-- section Wot -->\n<ng-if ng-if=":state:enable && extensionPoint === \'network-actual\'" >\n\n <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n ng-if="!smallscreen"\n ng-include="::\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n ng-controller="GpBlockchainIssuersCtrl">\n </div>\n\n <div class="item item-divider"\n ng-if="smallscreen">\n <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_network_stats">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n </a>\n </div>\n</ng-if>\n\n'); -$templateCache.put('plugins/graph/templates/currency/view_stats_lg.html','<ion-view left-buttons="leftButtons"\n cache-view="false">\n <ion-nav-title>\n {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}\n </ion-nav-title>\n\n <ion-content scroll="true" class="padding" >\n\n\n\n <div class="list" >\n\n <!-- Monetary mass -->\n <ng-controller ng-controller="GpCurrencyMonetaryMassCtrl" >\n\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <div class="item no-padding-xs" ng-if="!loading"\n ng-include="::\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n ng-init="setSize(250, 1000)">\n </div>\n\n <div ng-if="!loading"\n class="item item-toggle dark no-border text-right">\n <span class="" translate>COMMON.BTN_RELATIVE_UNIT</span>\n <label class="toggle toggle-royal" id="helptip-currency-change-unit">\n <input type="checkbox" ng-model="formData.useRelative">\n <div class="track">\n <div class="handle"></div>\n </div>\n </label>\n </div>\n </ng-controller>\n\n <!-- DU -->\n <ng-controller ng-controller="GpCurrencyDUCtrl" >\n <div class="item no-padding-xs"\n ng-if="!loading"\n ng-include="::\'plugins/graph/templates/currency/graph_du.html\'"\n ng-init="setSize(250, 1000)">\n </div>\n </ng-controller>\n\n <!-- Member count -->\n <ng-controller ng-controller="GpCurrencyMembersCountCtrl" >\n <div class="item no-padding-xs"\n ng-if="!loading"\n ng-include="::\'plugins/graph/templates/currency/graph_members_count.html\'"\n ng-init="setSize(250, 1000)">\n </div>\n\n\n </div>\n\n </ion-content>\n\n</ion-view>\n'); -$templateCache.put('plugins/graph/templates/currency/view_wot_stats.html','<ion-view left-buttons="leftButtons"\n cache-view="false">\n\n <ion-content scroll="true" >\n\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <ng-include\n ng-if="!loading"\n src="\'plugins/graph/templates/currency/graph_members_count.html\'" ></ng-include>\n </ion-content>\n </ion-view>\n'); -$templateCache.put('plugins/graph/templates/docstats/graph.html','\n <!-- graphs button bar -->\n <div class="button-bar-inline "\n style="top: 33px; margin-top:-33px; position: relative;">\n <button\n class="button button-stable button-clear no-padding-xs no-padding-sm pull-right"\n ng-click="showActionsPopover($event)">\n <i class="icon ion-navicon-round"></i>\n </button>\n </div>\n\n <canvas id="{{::chartIdPrefix}}{{chart.id}}"\n class="chart-line"\n height="{{height}}"\n width="{{width}}"\n chart-data="chart.data"\n chart-labels="labels"\n chart-dataset-override="chart.datasetOverride"\n chart-options="chart.options"\n chart-click="onChartClick">\n </canvas>\n\n <ng-include src="::\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'); -$templateCache.put('plugins/graph/templates/docstats/view_stats.html','<ion-view left-buttons="leftButtons"\n cache-view="false">\n <ion-nav-title>\n {{\'GRAPH.DOC_STATS.TITLE\' | translate}}\n </ion-nav-title>\n\n <ion-content scroll="true" class="padding" >\n\n <div class="list" >\n\n <!-- Doc stat -->\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <div class="item no-padding-xs no-padding-sm" ng-if="!loading"\n ng-repeat="chart in charts"\n ng-include="::\'plugins/graph/templates/docstats/graph.html\'"\n ng-init="setSize(250, 1000)">\n </div>\n\n </div>\n\n </ion-content>\n\n</ion-view>\n'); -$templateCache.put('plugins/graph/templates/network/view_es_network_extend.html','<!-- Buttons section -->\n<ng-if ng-if=":state:enable && extensionPoint === \'documents-buttons\'">\n <a class="button button-text button-small ink"\n ui-sref="app.doc_stats_lg" >\n <i class="icon ion-stats-bars"></i>\n <span>{{\'NETWORK.VIEW.BTN_GRAPH\'|translate}}</span>\n </a>\n</ng-if>\n'); -$templateCache.put('plugins/graph/templates/network/view_es_peer_extend.html','<!-- Buttons section -->\n<ng-if ng-if=":state:enable && extensionPoint === \'general\'">\n\n <a class="item item-icon-left item-icon-right item-text-wrap ink"\n ng-if="isReachable"\n ui-sref="app.doc_stats_lg(node)">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.DOC_STATS.TITLE</span>\n <i class="gray icon ion-ios-arrow-right"></i>\n </a>\n\n <a class="item item-icon-left item-icon-right item-text-wrap ink"\n ng-if="isReachable"\n ui-sref="app.doc_synchro_lg(node)">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.SYNCHRO.TITLE</span>\n <i class="gray icon ion-ios-arrow-right"></i>\n </a>\n</ng-if>\n\n'); -$templateCache.put('plugins/graph/templates/network/view_network_extend.html','<!-- Buttons section -->\n<ng-if ng-if=":state:enable && extensionPoint === \'blockchain-buttons\'">\n <a class="button button-text button-small ink"\n ui-sref="app.blockchain_stats" >\n <i class="icon ion-stats-bars"></i>\n <span>{{\'NETWORK.VIEW.BTN_GRAPH\'|translate}}</span>\n </a>\n</ng-if>\n'); -$templateCache.put('plugins/graph/templates/network/view_peer_extend.html','<!-- Buttons section -->\n<ng-if ng-if=":state:enable && extensionPoint === \'general\'">\n\n <a class="item item-icon-left item-icon-right item-text-wrap ink"\n ui-sref="app.view_peer_stats({pubkey: node.pubkey})">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.PEER.VIEW.BLOCK_COUNT_LABEL</span>\n <span class="badge"\n ng-if="!loading"\n ng-class="{\'badge-stable\': blockCount > 0, \'badge-assertive\': !blockCount}">\n {{!blockCount ? \'GRAPH.PEER.VIEW.NO_BLOCK\' : \'GRAPH.PEER.VIEW.BLOCK_COUNT\' | translate:{count: blockCount} }}\n </span>\n <ion-spinner class="badge" icon="android" ng-if="loading"></ion-spinner>\n <i class="gray icon ion-ios-arrow-right"></i>\n </a>\n</ng-if>\n\n'); -$templateCache.put('plugins/graph/templates/network/view_peer_stats.html','<ion-view left-buttons="leftButtons"\n cache-view="false">\n <ion-nav-title>\n {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}{{id}}\n </ion-nav-title>\n\n <ion-content scroll="true" class="no-padding">\n\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <div class="list" ng-if="!loading">\n\n <!-- - - - - TX divider - - - - -->\n <div class="item item-divider hidden-xs hidden-sm" translate>\n GRAPH.BLOCKCHAIN.TX_DIVIDER\n </div>\n\n <div class="item no-padding-xs"\n ng-include="::\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n ng-init="setSize(350, 1000)">\n </div>\n\n </ion-content>\n\n</ion-view>\n'); -$templateCache.put('plugins/graph/templates/synchro/graph.html','\n <!-- graphs button bar -->\n <div class="button-bar-inline "\n style="top: 33px; margin-top:-33px; position: relative;">\n <button\n class="button button-stable button-clear no-padding-xs pull-right"\n ng-click="showActionsPopover($event)">\n <i class="icon ion-navicon-round"></i>\n </button>\n </div>\n\n <canvas id="synchro-chart-{{chart.id}}"\n class="chart-bar"\n height="{{height}}"\n width="{{width}}"\n chart-data="chart.data"\n chart-labels="labels"\n chart-dataset-override="chart.datasetOverride"\n chart-options="chart.options">\n </canvas>\n\n <ng-include src="::\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'); -$templateCache.put('plugins/graph/templates/synchro/view_stats.html','<ion-view left-buttons="leftButtons"\n cache-view="false">\n <ion-nav-title>\n {{\'GRAPH.SYNCHRO.TITLE\' | translate}}\n </ion-nav-title>\n\n <ion-content scroll="true" class="padding" >\n\n <div class="list" >\n\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <div class="item no-padding-xs" ng-if="!loading"\n ng-repeat="chart in charts"\n ng-include="::\'plugins/graph/templates/synchro/graph.html\'"\n ng-init="setSize(250, 1000)">\n </div>\n\n </div>\n\n </ion-content>\n\n</ion-view>\n'); $templateCache.put('plugins/es/templates/blockchain/items_blocks.html','<div class="padding gray" ng-if=":rebind:!search.loading && !search.results.length" translate="">COMMON.SEARCH_NO_RESULT</div><ng-if ng-if=":rebind:!smallscreen"><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="!block.empty ? \'templates/blockchain/item_block_lg.html\' : \'templates/blockchain/item_block_empty_lg.html\'"></ng-repeat></ng-if><ng-if ng-if=":rebind:smallscreen"><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="::\'templates/blockchain/item_block.html\'"></ng-repeat></ng-if>'); $templateCache.put('plugins/es/templates/blockchain/lookup.html','<ion-view><ion-nav-title><span translate>BLOCKCHAIN.LOOKUP.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-navicon visible-xs visible-sm" ng-click="toggleCompactMode()"><b class="icon-secondary" ng-class="{\'ion-arrow-down-b\': !compactMode, \'ion-arrow-up-b\': compactMode}" style="top: -12px; left: 11px; font-size: 10px"></b> <b class="icon-secondary" ng-class="{\'ion-arrow-up-b\': !compactMode,\'ion-arrow-down-b\': compactMode}" style="top: 12px; left: 11px; font-size: 10px"></b></button> <button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="::\'plugins/es/templates/blockchain/lookup_form.html\'"></ng-include></ion-content></ion-view>'); $templateCache.put('plugins/es/templates/blockchain/lookup_form.html','<div class="lookupForm"><div class="item no-padding"><div class="button button-small button-text button-stable button-icon-event padding no-padding-right ink" ng-repeat="filter in search.filters" ng-if="filter"><span ng-bind-html="\'BLOCKCHAIN.LOOKUP.TX_SEARCH_FILTER.\'+filter.type|translate:filter"></span> <i class="icon ion-close" ng-click="itemRemove($index)"></i></div><label class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'BLOCKCHAIN.LOOKUP.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearchText()"><div class="helptip-anchor-center"><a id="helptip-blockchain-search-text"></a></div></label></div><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4 ng-if="search.type==\'last\'" translate="">BLOCKCHAIN.LOOKUP.LAST_BLOCKS</h4><h4 ng-if="search.type==\'text\'">{{\'COMMON.RESULTS_LIST\'|translate}}</h4><h5 class="dark" ng-if="!search.loading && search.total"><span translate="COMMON.RESULTS_COUNT" translate-values="{count: search.total}"></span> <small class="gray" ng-if=":rebind:search.took && expertMode">- {{:rebind:\'COMMON.EXECUTION_TIME\'|translate: {duration: search.took} }} </small><small class="gray" ng-if=":rebind:expertMode && search.filters && search.filters.length">- <a ng-click="toggleShowQuery()" ng-if="!showQuery">{{\'DOCUMENT.LOOKUP.SHOW_QUERY\'|translate }} <i class="icon ion-arrow-down-b gray"></i> </a><a ng-click="toggleShowQuery()" ng-if="showQuery">{{\'DOCUMENT.LOOKUP.HIDE_QUERY\'|translate }} <i class="icon ion-arrow-up-b gray"></i></a></small></h5><h5 class="gray" ng-if="search.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner><span translate="">COMMON.SEARCHING</span><br></h5></div></div><div class="item no-border no-padding" ng-if=":rebind:search.filters && search.filters.length && expertMode"><small class="no-padding no-margin" ng-if="showQuery"><span class="gray text-wrap dark">{{:rebind:search.query}}</span></small></div><ion-list class="list list-blocks" ng-class="::motion.ionListClass"><ng-include src="::\'plugins/es/templates/blockchain/items_blocks.html\'"></ng-include></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll></div>'); @@ -32237,13 +32209,13 @@ $templateCache.put('plugins/es/templates/group/lookup_item.html','<i class="item $templateCache.put('plugins/es/templates/group/modal_record_type.html','<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>GROUP.TYPE.TITLE</h1></ion-header-bar><ion-content class="lookupForm padding"><h3 translate>GROUP.TYPE.SELECT_TYPE</h3><div class="list"><div class="item item-complex card stable-bg item-icon-left ink" ng-click="closeModal(\'open\')"><div class="item-content item-text-wrap"><i class="item-image icon ion-android-people dark"></i><h2 translate>GROUP.TYPE.OPEN_GROUP</h2><h4 class="gray" translate>GROUP.TYPE.OPEN_GROUP_HELP</h4></div></div><div class="item item-complex card stable-bg item-icon-left ink" ng-click="closeModal(\'managed\')"><div class="item-content item-text-wrap"><i class="item-image icon ion-android-people dark"></i> <i class="icon-secondary ion-android-lock dark" style="left: 10px; top: -8px"></i><h2 translate>GROUP.TYPE.MANAGED_GROUP</h2><h4 class="gray" translate>GROUP.TYPE.MANAGED_GROUP_HELP</h4></div></div></div></ion-content></ion-modal-view>'); $templateCache.put('plugins/es/templates/group/view_popover_actions.html','<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>GROUP.VIEW.MENU_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="showSharePopover($event)"><i class="icon ion-android-share-alt"></i> {{\'COMMON.BTN_SHARE\' | translate}}</a></div></ion-content></ion-popover-view>'); $templateCache.put('plugins/es/templates/group/view_record.html','<ion-view left-buttons="leftButtons"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-bar button-icon button-clear visible-xs visible-sm" ng-click="edit()" ng-if="canEdit"><i class="icon ion-android-create"></i></button> <button class="button button-bar button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true"><div class="positive-900-bg hero"><div class="content" ng-if="!loading"><i class="avatar cion-registry-{{formData.type}}" ng-if="!formData.avatar"></i> <i class="avatar" style="background-image: url({{::formData.avatar.src}})" ng-if="formData.avatar"></i><h3 ng-bind-html="formData.title"></h3><h4> </h4></div><h4 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><div class="row no-padding-xs no-padding-sm"><div class="col list item-text-wrap no-padding-xs no-padding-sm" ng-class="::motion.ionListClass"><div class="item"><h2 class="gray"><a ng-if="formData.city" ui-sref="app.groups({location:formData.city})"><i class="icon ion-location"></i> <span ng-bind-html="formData.city"></span> </a><span ng-if="formData.city && formData.type"> | </span> <a ng-if="formData.type" ui-sref="app.groups({type:formData.type})"><i class="icon ion-flag"></i> {{\'GROUP.TYPE.ENUM.\'+formData.type|upper|translate}}</a></h2><h4><i class="icon ion-clock" ng-if="formData.time"></i> <span translate="">COMMON.SUBMIT_BY</span> <a ng-class="{\'positive\': issuer.uid, \'gray\': !issuer.uid}" ui-sref="app.wot_identity({pubkey:issuer.pubkey, uid: issuer.name||issuer.uid})"><ng-if ng-if="issuer.uid"><i class="icon ion-person"></i> {{::issuer.name||issuer.uid}}</ng-if><span ng-if="!issuer.uid"><i class="icon ion-key"></i> {{issuer.pubkey|formatPubkey}} </span></a><span>{{formData.time|formatFromNow}}<h4 class="gray hidden-xs">| {{formData.time | formatDate}}</h4></span></h4></div><a id="group-share-anchor-{{id}}"></a><ion-item><h2><span trust-as-html="formData.description"></span></h2></ion-item><ion-item><h4 ng-if="formData.address"><span class="gray" translate="">REGISTRY.VIEW.LOCATION</span> <a class="positive" target="_blank" href="https://www.google.fr/maps/?q={{formData.address}},%20{{formData.city}}"><span ng-bind-html="formData.address"></span> <span ng-if="formData.city">- </span><span ng-bind-html="formData.city"></span></a></h4></ion-item><ng-if ng-if="formData.socials && formData.socials.length>0"><ion-item class="item-icon-left" type="no-padding item-text-wrap" ng-repeat="social in formData.socials track by social.url" id="social-{{social.url|formatSlug}}"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}}</p><h2><a href="{{social.url}}" ng-if="social.type != \'email\'" target="_blank">{{social.url}}</a> <a href="mailto:{{social.url}}" ng-if="social.type == \'email\'">{{social.url}}</a></h2></ion-item></ng-if><div class="lazy-load"><ng-include src="::\'plugins/es/templates/common/view_pictures.html\'"></ng-include><span class="item item-divider" ng-if="formData.pubkey"><span translate="">REGISTRY.TECHNICAL_DIVIDER</span></span><div class="item item-icon-left item-text-wrap ink" ng-if="formData.pubkey" copy-on-click="{{::formData.pubkey}}"><i class="icon ion-key"></i> <span translate="">REGISTRY.EDIT.RECORD_PUBKEY</span><h4 class="dark">{{::formData.pubkey}}</h4></div><ng-include src="::\'plugins/es/templates/common/view_comments.html\'"></ng-include></div></div></div></ion-content><button class="button button-fab button-fab-bottom-right button-assertive icon ion-android-send visible-xs visible-sm" ng-if="formData.pubkey && !isUserPubkey(formData.pubkey)" ng-click="showTransferModal({pubkey: formData.pubkey, uid: formData.title})"></button></ion-view>'); +$templateCache.put('plugins/es/templates/join/modal_join_extend.html','<ng-if ng-if=":state:enable && extensionPoint === \'select-account-type\'"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-class="{ activated: accountTypeMember != null && !accountTypeMember }" ng-click="selectAccountType(\'organization\')"><div class="item-content item-text-wrap"><i class="item-image icon dark cion-registry-association"></i><h2 translate>ACCOUNT.NEW.ORGANIZATION_ACCOUNT</h2><h4 class="gray" translate>ACCOUNT.NEW.ORGANIZATION_ACCOUNT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'last-slide\'"><ion-slide-page><ion-content class="has-header" scroll="false"><p>TOTO</p></ion-content></ion-slide-page></ng-if>'); $templateCache.put('plugins/es/templates/invitation/list_invitation.html','<ion-list class="{{::motion.ionListClass}}"><ion-item ng-repeat="invitation in search.results" class="item-border-large item-text-wrap item-avatar"><i ng-if="::!invitation.avatar" class="item-image icon {{::invitation.avatarIcon}}"></i> <i ng-if="::invitation.avatar" class="item-image avatar" style="background-image: url({{::invitation.avatar.src}})"></i><h3 trust-as-html="invitation.message | translate:invitation"></h3><h3 class="dark text-italic" ng-if="invitation.comment"><i class="icon ion-quote"></i> <span ng-bind-html="invitation.comment"></span></h3><h4><i class="icon {{::invitation.icon}}"></i> <span class="dark" ng-if="::invitation.issuer" trust-as-html="\'INVITATION.SUGGESTED_BY\' | translate:invitation"></span> <span class="dark">{{::invitation.time|formatFromNow}}</span> <span class="gray">| {{::invitation.time|formatDate}}</span></h4><div class="block text-right"><button class="button button-positive button-small button-small-padding" ng-click="accept(invitation)" ng-if="::invitation.state" translate>{{::(invitation.okText||\'COMMON.BTN_SHOW\') |translate}}</button> <button class="button button-stable button-small button-small-padding" ng-click="delete($index)" translate>INVITATION.BTN_DELETE</button></div></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'); $templateCache.put('plugins/es/templates/invitation/modal_new_invitation.html','<ion-modal-view id="transfer" class="modal-invitation modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>INVITATION.NEW.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSend()"></button></ion-header-bar><ion-content scroll="true"><ng-include src="::\'plugins/es/templates/invitation/new_invitation_form.html\'"></ng-include></ion-content></ion-modal-view>'); $templateCache.put('plugins/es/templates/invitation/new_invitation_form.html','<form name="invitationForm" novalidate="" ng-submit="doSend()"><div class="list" ng-init="setForm(invitationForm)"><a class="item item-icon-right gray ink" ng-class="{\'disable-pointer-events\': recipients.length, \'item-input-error\': form.$submitted && !recipients.length}" ng-click="showSelectRecipientModal($event)"><span class="gray" translate="">INVITATION.NEW.RECIPIENTS</span> <span class="item-note"><span class="hidden-xs" ng-if="!recipients.length" translate="">INVITATION.NEW.RECIPIENTS_HELP</span><ng-repeat ng-repeat="identity in recipients track by identity.id" class="button button-small button-text button-stable button-icon-event ink" ng-class="{\'button-text-positive\': identity.selected}"><ng-bind-html ng-bind-html="identity.name||identity.uid||(identity.pubkey|formatPubkey)"></ng-bind-html><b class="enable-pointer-events ion-close" ng-click="removeRecipient($index, $event)"> </b></ng-repeat></span><i class="gray icon enable-pointer-events ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !recipients.length"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><a class="item item-icon-right gray ink" ng-class="{\'disable-pointer-events\': suggestions.length, \'item-input-error\': form.$submitted && !suggestions.length}" ng-click="showSelectSuggestionModal($event)"><span class="gray enable-pointer-events" translate="">INVITATION.NEW.SUGGESTION_IDENTITIES</span> <span class="item-note"><span class="hidden-xs" ng-if="!suggestions.length" translate="">INVITATION.NEW.SUGGESTION_IDENTITIES_HELP</span><ng-repeat ng-repeat="identity in suggestions track by identity.id" class="button button-small button-text button-stable button-icon-event ink" ng-class="{\'button-text-positive\': identity.selected}"><ng-bind-html ng-bind-html="identity.name||identity.uid||(identity.pubkey|formatPubkey)"></ng-bind-html><b class="enable-pointer-events ion-close" ng-click="removeSuggestion($index, $event)"> </b></ng-repeat></span><i class="gray icon enable-pointer-events ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !suggestions.length"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-content item-toggle dark visible-xs visible-sm"><span class="input-label gray">{{\'TRANSFER.BTN_ADD_COMMENT\' | translate}}</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useComment"><div class="track"><div class="handle"></div></div></label></div><label class="item item-input item-floating-label visible-xs visible-sm" ng-if="formData.useComment" ng-class="{\'item-input-error\': form.$submitted && form.comment.$invalid}"><span class="input-label">{{\'TRANSFER.COMMENT\' | translate}}</span><textarea placeholder="{{\'TRANSFER.COMMENT_HELP\' | translate}}" name="comment" ng-model="formData.comment" ng-maxlength="255">\n </textarea></label><div class="form-errors" ng-show="form.$submitted && form.comment.$error" ng-messages="form.comment.$error"><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.FIELD_ACCENT"></span></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" tabindex="-1" ng-click="cancel()" type="button" translate="">COMMON.BTN_CANCEL</button> <button class="button button-positive ink" tabindex="8" type="submit" translate="">TRANSFER.BTN_SEND</button></div></form>'); $templateCache.put('plugins/es/templates/invitation/popover_actions.html','<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-class="{\'gray\': !search.results.length, \'assertive\': search.results.length}" ng-click="deleteAll()"><i class="icon ion-trash-a"></i> <span translate>INVITATION.BTN_DELETE_ALL</span></a></div></ion-content></ion-popover-view>'); $templateCache.put('plugins/es/templates/invitation/popover_invitation.html',''); $templateCache.put('plugins/es/templates/invitation/view_invitations.html','<ion-view left-buttons="leftButtons" class="view-invitation"><ion-nav-title>{{\'INVITATION.LIST.TITLE\' | translate}}</ion-nav-title><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><div class="row no-padding"><div class="col no-padding-xs no-padding-sm"><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="padding gray" ng-if="!search.loading && !search.results.length" translate="">INVITATION.NO_RESULT</div><ng-include src="::\'plugins/es/templates/invitation/list_invitation.html\'"></ng-include></div></div></ion-content><button id="fab-new-invitation" class="button button-fab button-fab-bottom-right button-assertive icon ion-android-send visible-xs visible-sm spin" ng-click="showNewInvitationModal()"></button></ion-view>'); -$templateCache.put('plugins/es/templates/join/modal_join_extend.html','<ng-if ng-if=":state:enable && extensionPoint === \'select-account-type\'"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-class="{ activated: accountTypeMember != null && !accountTypeMember }" ng-click="selectAccountType(\'organization\')"><div class="item-content item-text-wrap"><i class="item-image icon dark cion-registry-association"></i><h2 translate>ACCOUNT.NEW.ORGANIZATION_ACCOUNT</h2><h4 class="gray" translate>ACCOUNT.NEW.ORGANIZATION_ACCOUNT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'last-slide\'"><ion-slide-page><ion-content class="has-header" scroll="false"><p>TOTO</p></ion-content></ion-slide-page></ng-if>'); $templateCache.put('plugins/es/templates/message/compose.html','<ion-view left-buttons="leftButtons" id="composeMessage"><ion-nav-title><span class="visible-xs visible-sm" nf-if="!isReply" translate="">MESSAGE.COMPOSE.TITLE</span> <span class="visible-xs visible-sm" nf-if="isReply" translate="">MESSAGE.COMPOSE.TITLE_REPLY</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSend()"></button></ion-nav-buttons><ion-content scroll="true"><div class="row"><div class="col"><ng-include src="::\'plugins/es/templates/message/compose_form.html\'"></ng-include></div></div></ion-content></ion-view>'); $templateCache.put('plugins/es/templates/message/compose_form.html','<form name="messageForm" novalidate="" ng-submit="doSend()"><div class="list no-margin" ng-init="setForm(messageForm)"><a class="item item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.destPub}" ng-click="showWotLookupModal()"><span class="gray" translate>MESSAGE.COMPOSE.TO</span> <span class="badge badge-royal" ng-if="destUid"><i class="ion-person"></i> {{destName||destUid}}</span> <span class="badge badge-stable" ng-if="!destUid && destPub">{{destName}} <span ng-if="!destName"><i class="ion-key"></i>{{destPub | formatPubkey}}</span> </span> <i class="gray icon ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !formData.destPub"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><ion-item class="item-text-wrap ink" ng-class="{\'item-icon-right\': enableSelectWallet}" ng-click="showSelectWalletModal()"><span class="gray" translate>TRANSFER.FROM</span> <span class="badge badge-balanced animate-fade-in animate-show-hide" ng-show="!loading"><ion-spinner icon="android" ng-if="!walletData.pubkey"></ion-spinner><span ng-if="walletData.pubkey && !walletData.isMember"><i class="ion-key"></i> {{walletData.pubkey| formatPubkey}} </span><span ng-if="walletData.isMember"><i class="ion-person"></i> {{walletData.name||walletData.uid}} </span></span><i class="gray icon ion-ios-arrow-right" ng-if="enableSelectWallet"></i></ion-item><div class="item item-input" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><input type="text" autocomplete="off" placeholder="{{\'MESSAGE.COMPOSE.OBJECT_HELP\' | translate}}" name="title" ng-model="formData.title" ng-maxlength="256" required> <span class="badge item-note" ng-if="isReply">({{\'MESSAGE.COMPOSE.OBJECT\' | translate}})</span></div><div class="form-errors" ng-show="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="maxlength"><span translate="MESSAGE.ERROR.MESSAGE_CONTENT_TOO_LONG" translate-values="{maxLength: 256}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.content.$invalid}"><span class="input-label">{{\'MESSAGE.COMPOSE.MESSAGE\' | translate}}</span><textarea placeholder="{{\'MESSAGE.COMPOSE.MESSAGE_HELP\' | translate}}" autocomplete="off" name="content" ng-model="formData.content" rows="8" ng-maxlength="5000">\n </textarea></div><div class="form-errors" ng-show="form.$submitted && form.content.$error" ng-messages="form.content.$error"><div class="form-error" ng-message="maxlength"><span translate="MESSAGE.ERROR.MESSAGE_CONTENT_TOO_LONG" translate-values="{maxLength: 5000}"></span></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="cancel()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" type="submit" ng-disabled="sending" translate>TRANSFER.BTN_SEND</button></div><div class="list no-margin"><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i><h4 class="positive" translate>MESSAGE.COMPOSE.ENCRYPTED_HELP</h4></div></div></form>'); $templateCache.put('plugins/es/templates/message/list.html','<div class="padding gray" ng-if="!search.loading && !search.results.length"><span ng-if="search.type==\'last\'">{{ (\'MESSAGE.NO_MESSAGE_\' + type) | upper | translate }}</span> <span ng-if="search.type==\'text\'" translate="">COMMON.SEARCH_NO_RESULT</span></div><ion-list class="{{::motion.ionListClass}}" can-swipe="$root.device.enable"><ion-item class="item item-border-large item-avatar item-icon-right ink" ng-repeat="msg in :rebind:search.results track by msg.id" ng-click="select(msg, $event)"><i ng-if="::!msg.avatar" class="item-image icon" ng-class="{\'ion-person\': msg.uid, \'ion-email\': !msg.uid}"></i> <i ng-if="::msg.avatar" class="item-image avatar" style="background-image: url({{::msg.avatar.src}})"></i><h4 class="pull-right visible-xs visible-sm dark"><i class="ion-clock"></i> {{::msg.time|formatFromNow}}</h4><h3><a class="positive" ng-if="::msg.name||msg.uid" ui-sref="app.wot_identity({pubkey:msg.issuer, uid:msg.name||msg.uid})"><i class="ion-person"></i> {{::msg.name||msg.uid}} </a><a class="gray" ng-if="::!msg.name && !msg.uid" ui-sref="app.wot_identity({pubkey:msg.issuer})"><i class="ion-key"></i> {{::msg.issuer|formatPubkey}}</a></h3><h2 ng-class="{\'unread\': !msg.read}" ng-bind-html="::msg.title"></h2><p ng-bind-html="::msg.summary||msg.content"></p><i class="icon ion-ios-arrow-right"></i><ion-option-button class="button-stable" ng-click="showReplyModal($index)" translate="">MESSAGE.BTN_REPLY</ion-option-button><ion-option-button class="button-assertive" ng-click="delete($index)" translate="">COMMON.BTN_DELETE</ion-option-button></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" icon="ion-loading-c" on-infinite="showMore()" distance="10%"></ion-infinite-scroll>'); @@ -32255,6 +32227,10 @@ $templateCache.put('plugins/es/templates/message/modal_compose.html','<ion-modal $templateCache.put('plugins/es/templates/message/popover_message.html',''); $templateCache.put('plugins/es/templates/message/view_message.html','<ion-view left-buttons="leftButtons" class="view-message"><ion-nav-title><span translate="">MESSAGE.VIEW.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true"><div class="row no-padding"><div class="col no-padding"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list animate-fade-slide-in item-text-wrap"><div class="item item-avatar" ng-class="{\'item-avatar\': formData.avatar}"><i ng-if="!formData.avatar" class="item-image" ng-class="{\'ion-person\': formData.uid, \'ion-email\': !formData.uid}"></i> <i ng-if="formData.avatar" class="item-image avatar" style="background-image: url({{::formData.avatar.src}})"></i><h4>{{type == \'inbox\' ? \'MESSAGE.VIEW.SENDER\': \'MESSAGE.VIEW.RECIPIENT\'|translate}} <a class="positive" ui-sref="app.wot_identity({pubkey: (type == \'inbox\') ? formData.issuer : formData.recipient, uid: formData.name||formData.uid})"><span ng-if="formData.uid"><i class="ion-person"></i> {{formData.name||formData.uid}} </span><span ng-if="!formData.uid" class="gray"><i class="ion-key gray"></i> {{formData.name||(formData.issuer|formatPubkey)}}</span></a></h4><h5 class="gray visible-xs visible-sm"><i class="ion-clock"></i> {{formData.time | formatDate}}</h5></div><ion-item class="visible-xs visible-sm"><h1 class="title" ng-bind-html="formData.title"></h1></ion-item><ion-item><p ng-bind-html="formData.html"></p><div class="padding gray" ng-if="!formData.content" translate="">MESSAGE.VIEW.NO_CONTENT</div></ion-item></div></div></div></ion-content><button id="fab-view-message-reply" class="button button-fab button-fab-bottom-right button-calm icon ion-reply visible-xs visible-sm spin" ng-click="showReplyModal()"></button></ion-view>'); $templateCache.put('plugins/es/templates/message/view_popover_actions.html','<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left assertive ink" ng-click="delete()"><i class="icon ion-trash-a"></i> {{\'MESSAGE.VIEW.DELETE\' | translate}}</a></div></ion-content></ion-popover-view>'); +$templateCache.put('plugins/es/templates/notification/list_notification.html','<ion-list class="{{::motion.ionListClass}}"><ion-item ng-repeat="notification in search.results track by notification.id" class="item-border-large item-text-wrap ink item-avatar" ng-class="{\'unread\': !notification.read}" ng-click="select($event, notification)"><i ng-if="!notification.avatar" class="item-image icon {{::notification.avatarIcon}}"></i> <i ng-if="notification.avatar" class="item-image avatar" style="background-image: url({{::notification.avatar.src}})"></i><h3 trust-as-html="notification.message | translate:(notification.messageParams||notification)"></h3><h4 ng-if="!notification.medianTime"><i class="icon {{notification.icon}}"></i> <span class="dark">{{notification.time|formatFromNow}}</span> <span class="gray">| {{notification.time|formatDate}}</span></h4><h4 ng-if="notification.medianTime"><i class="icon {{notification.icon}}"></i> <span class="dark">{{notification.medianTime|medianFromNow}}</span> <span class="gray">| {{notification.medianTime|medianDate}}</span></h4></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'); +$templateCache.put('plugins/es/templates/notification/popover_actions.html','<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-disabled="!search.results.length" ng-click="markAllAsRead()"><i class="icon ion-android-checkmark-circle"></i> {{\'COMMON.NOTIFICATIONS.MARK_ALL_AS_READ\' | translate}}</a></div></ion-content></ion-popover-view>'); +$templateCache.put('plugins/es/templates/notification/popover_notification.html',''); +$templateCache.put('plugins/es/templates/notification/view_notifications.html','<ion-view left-buttons="leftButtons" class="view-notification"><ion-nav-title>{{\'COMMON.NOTIFICATIONS.TITLE\' | translate}}</ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh(true)"></ion-refresher><div class="row no-padding"><div class="col no-padding-xs no-padding-sm"><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="padding gray" ng-if="!search.loading && !search.results.length" translate="">COMMON.NOTIFICATIONS.NO_RESULT</div><ng-include src="::\'plugins/es/templates/notification/list_notification.html\'"></ng-include></div></div></ion-content></ion-view>'); $templateCache.put('plugins/es/templates/network/item_content_peer.html','<i class="icon ion-android-desktop" ng-class=":rebind:{\'balanced\': peer.online && peer.hasMainConsensusBlock, \'energized\': peer.online && peer.hasConsensusBlock, \'gray\': peer.online && !peer.hasConsensusBlock && !peer.hasMainConsensusBlock, \'stable\': !peer.online}" ng-if=":rebind:!peer.avatar"></i> <b class="icon-secondary ion-person" ng-if=":rebind:!peer.avatar" ng-class=":rebind:{\'balanced\': peer.online && peer.hasMainConsensusBlock, \'energized\': peer.online && peer.hasConsensusBlock, \'gray\': peer.online && !peer.hasConsensusBlock && !peer.hasMainConsensusBlock, \'stable\': !peer.online}" style="left: 26px; top: -3px"></b> <i class="avatar" ng-if=":rebind:peer.avatar" style="background-image: url(\'{{:rebind:peer.avatar.src}}\')"></i> <b class="icon-secondary assertive ion-close-circled" ng-if=":rebind:!peer.online" style="left: 37px; top: -10px"></b><div class="row no-padding"><div class="col no-padding"><h3 class="dark">{{:rebind:peer.dns || peer.server}}</h3><h4><span class="gray" ng-if=":rebind:!peer.name"><i class="ion-key"></i> {{:rebind:peer.pubkey|formatPubkey}} </span><span class="positive" ng-if=":rebind:peer.name"><i class="ion-person"></i> {{:rebind:peer.name}} </span><span class="gray">{{:rebind:peer.dns && (\' | \' + peer.server) + (peer.ep.path||\'\') }}</span></h4></div><div class="col col-20 no-padding text-center" ng-if="::!expertMode && search.type != \'offline\'"><div style="min-width: 50px; padding-top: 5px" ng-if=":rebind:peer.docCount.emailSubscription!==undefined"><span ng-if=":rebind:peer.hasEndpoint(\'ES_SUBSCRIPTION_API\')" title="{{\'ES_PEER.EMAIL_SUBSCRIPTION_COUNT\'|translate: peer.docCount }}"><i class="ion-email"></i> {{:rebind:peer.docCount.emailSubscription || \'?\'}}</span></div></div><div class="col col-20 no-padding text-center" ng-if="::expertMode && search.type != \'offline\'"></div><div class="col col-20 no-padding text-center" id="{{$index === 0 ? helptipPrefix + \'-peer-0-block\' : \'\'}}"><span class="badge badge-stable">{{:rebind:peer.docCount.record !== undefined ? (peer.docCount.record|formatInteger) : \'?\'}} <span ng-if=":rebind:!expertMode && peer.docCount.record!==undefined">{{::\'ES_PEER.DOCUMENTS\'|translate|lowercase }} </span></span><span class="badge badge-secondary" ng-class=":rebind:{\'balanced\': peer.hasMainConsensusBlock, \'energized\': peer.hasConsensusBlock, \'ng-hide\': !peer.currentNumber }" ng-if="::expertMode">{{:rebind:\'BLOCKCHAIN.VIEW.TITLE\'|translate: {number:peer.currentNumber} }}</span></div></div>'); $templateCache.put('plugins/es/templates/network/items_peers.html','<div ng-class="::motion.ionListClass" class="no-padding"><div class="item item-text-wrap no-border done in gray no-padding-top no-padding-bottom inline text-italic" ng-if="::isHttps && expertMode"><small><i class="icon ion-alert-circled"></i> {{::\'NETWORK.INFO.ONLY_SSL_PEERS\'|translate}}</small></div><div ng-repeat="peer in :rebind:search.results track by peer.id" class="item item-peer item-icon-left ink" ng-class="::ionItemClass" id="{{helptipPrefix}}-peer-{{$index}}" ng-click="selectPeer(peer)" ng-include="::\'plugins/es/templates/network/item_content_peer.html\'"></div></div>'); $templateCache.put('plugins/es/templates/network/lookup_popover_actions.html','<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>PEER.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'member\')"><i class="icon ion-person"></i> {{\'PEER.MEMBERS\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'member\'"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'mirror\')"><i class="icon ion-radio-waves"></i> {{\'PEER.MIRRORS\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'mirror\'"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'offline\')"><i class="icon ion-eye-disabled"></i> {{\'PEER.OFFLINE\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'offline\'"></i></a></div></ion-content></ion-popover-view>'); @@ -32265,10 +32241,6 @@ $templateCache.put('plugins/es/templates/network/popover_peer_info.html',''); $templateCache.put('plugins/es/templates/network/view_es_network.html','<ion-view><ion-nav-title><span translate="">MENU.NETWORK</span> <span translate="">ES_SETTINGS.PLUGIN_NAME</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="refresh()"></button></ion-nav-buttons><ion-content scroll="true" ng-init="enableFilter=true; ionItemClass=\'item-border-large\';"><div class="row responsive-sm responsive-md responsive-lg"><div class="col list col-border-right"><div class="padding padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4><span ng-if="enableFilter && !search.online" translate="">PEER.OFFLINE_PEERS</span> <span ng-if="!enableFilter || search.online" translate="">PEER.ALL_PEERS</span> <span ng-if="search.results.length">({{search.results.length}})</span><ion-spinner ng-if="search.loading" class="icon ion-spinner-small" icon="android"></ion-spinner></h4></div><div class="pull-right"><div class="pull-right" ng-if="enableFilter"><cs-extension-point name="filter-buttons"></cs-extension-point></div></div></div><div id="helptip-network-peers" style="display: block"></div><ng-include src="::\'plugins/es/templates/network/items_peers.html\'"></ng-include></div><div class="col col-33" ng-controller="ESLastDocumentsCtrl"><div class="padding padding-xs" style="display: block"><h4 translate="">DOCUMENT.LOOKUP.LAST_DOCUMENTS_DOTS</h4></div><ng-include src="::\'plugins/es/templates/document/list_documents.html\'"></ng-include></div></div></ion-content></ion-view>'); $templateCache.put('plugins/es/templates/network/view_es_peer.html','<ion-view><ion-nav-title><span translate="">PEER.VIEW.TITLE</span> <span translate="">ES_SETTINGS.PLUGIN_NAME</span></ion-nav-title><ion-content><div class="row no-padding"><div class="col list"><ion-item><h1><span translate="">PEER.VIEW.TITLE</span> <span class="gray">{{node.host}}</span></h1><h2 class="gray"><i class="gray icon ion-android-globe"></i> {{node.ep.dns || node.server}} <span class="gray" ng-if="!loading && node.useSsl"><i class="gray ion-locked"></i> <small>SSL</small> </span><span class="gray" ng-if="!loading && node.useTor"><i class="gray ion-bma-tor-api"></i></span></h2><h3><span class="dark"><i class="icon ion-android-desktop"></i> {{\'PEER.VIEW.OWNER\'|translate}} </span><a class="positive" ng-if="node.name" ui-sref="app.wot_identity({pubkey: node.pubkey, uid: node.name})"><i class="ion-person"></i> {{node.name}} </a><span ng-if="!loading && !node.name"><a class="gray" ui-sref="app.wot_identity({pubkey: node.pubkey})"><i class="ion-key"></i> {{node.pubkey|formatPubkey}}</a></span></h3><h3><a ng-click="openRawPeering($event)"><i class="icon ion-share"></i> {{\'PEER.VIEW.SHOW_RAW_PEERING\'|translate}} </a><span class="gray" ng-if="!isReachable">| </span><a ng-if="!isReachable" ng-click="openRawCurrentBlock($event)"><i class="icon ion-share"></i> <span translate="">PEER.VIEW.SHOW_RAW_CURRENT_BLOCK</span></a></h3></ion-item><div class="item item-divider" translate="">PEER.VIEW.GENERAL_DIVIDER</div><ion-item class="item-icon-left item-text-wrap ink" copy-on-click="{{node.pubkey}}"><i class="icon ion-key"></i> <span translate="">COMMON.PUBKEY</span><h4 class="dark text-left">{{node.pubkey}}</h4></ion-item><ion-item class="item item-icon-left item-text-wrap ink" ng-if="isReachable"><i class="icon ion-cube"></i> <span translate="">BLOCKCHAIN.VIEW.TITLE_CURRENT</span><div class="badge badge-calm" ng-if="!loading">{{current.number|formatInteger}}</div></ion-item><ion-item class="item item-icon-left item-text-wrap" ng-if="isReachable"><i class="icon ion-document"></i> <span translate="">ES_PEER.DOCUMENT_COUNT</span><div class="badge badge-stable" ng-if="!loading">{{node.docCount|formatInteger}}</div></ion-item><a class="item item-icon-left item-icon-right item-text-wrap ink" ng-if="isReachable" ui-sref="app.document_search(options.document)"><i class="icon ion-document" style="font-size: 25px"></i> <i class="icon-secondary ion-clock" style="font-size: 18px; left: 33px; top: -12px"></i> <span translate="">DOCUMENT.LOOKUP.LAST_DOCUMENTS</span> <i class="gray icon ion-ios-arrow-right"></i></a><cs-extension-point name="general"></cs-extension-point><div class="item item-divider" ng-hide="loading || !isReachable" translate="">PEER.VIEW.KNOWN_PEERS</div><ion-item class="item item-text-wrap no-border done in gray no-padding-top no-padding-bottom inline text-italic" ng-show="!loading && !isReachable"><small><i class="icon ion-alert-circled"></i> {{\'NETWORK.INFO.ONLY_SSL_PEERS\'|translate}}</small></ion-item><div class="item center" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><div class="list no-padding {{::motion.ionListClass}}" ng-if="isReachable"><div ng-repeat="peer in :rebind:peers track by peer.id" class="item item-peer item-icon-left ink" ng-class="::ionItemClass" ng-click="selectPeer(peer)" ng-include="::\'plugins/es/templates/network/item_content_peer.html\'"></div></div></div></div></ion-content></ion-view>'); $templateCache.put('plugins/es/templates/network/view_network_extend.html','<ng-if ng-if=":state:enable && extensionPoint === \'network-buttons\'"></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'blockchain-buttons\'"><a class="button button-text button-small ink" ui-sref="app.blockchain_search"><i class="icon ion-android-search"></i> <span>{{\'COMMON.BTN_SEARCH\'|translate}}</span></a></ng-if>'); -$templateCache.put('plugins/es/templates/notification/list_notification.html','<ion-list class="{{::motion.ionListClass}}"><ion-item ng-repeat="notification in search.results track by notification.id" class="item-border-large item-text-wrap ink item-avatar" ng-class="{\'unread\': !notification.read}" ng-click="select($event, notification)"><i ng-if="!notification.avatar" class="item-image icon {{::notification.avatarIcon}}"></i> <i ng-if="notification.avatar" class="item-image avatar" style="background-image: url({{::notification.avatar.src}})"></i><h3 trust-as-html="notification.message | translate:(notification.messageParams||notification)"></h3><h4 ng-if="!notification.medianTime"><i class="icon {{notification.icon}}"></i> <span class="dark">{{notification.time|formatFromNow}}</span> <span class="gray">| {{notification.time|formatDate}}</span></h4><h4 ng-if="notification.medianTime"><i class="icon {{notification.icon}}"></i> <span class="dark">{{notification.medianTime|medianFromNow}}</span> <span class="gray">| {{notification.medianTime|medianDate}}</span></h4></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'); -$templateCache.put('plugins/es/templates/notification/popover_actions.html','<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-disabled="!search.results.length" ng-click="markAllAsRead()"><i class="icon ion-android-checkmark-circle"></i> {{\'COMMON.NOTIFICATIONS.MARK_ALL_AS_READ\' | translate}}</a></div></ion-content></ion-popover-view>'); -$templateCache.put('plugins/es/templates/notification/popover_notification.html',''); -$templateCache.put('plugins/es/templates/notification/view_notifications.html','<ion-view left-buttons="leftButtons" class="view-notification"><ion-nav-title>{{\'COMMON.NOTIFICATIONS.TITLE\' | translate}}</ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh(true)"></ion-refresher><div class="row no-padding"><div class="col no-padding-xs no-padding-sm"><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="padding gray" ng-if="!search.loading && !search.results.length" translate="">COMMON.NOTIFICATIONS.NO_RESULT</div><ng-include src="::\'plugins/es/templates/notification/list_notification.html\'"></ng-include></div></div></ion-content></ion-view>'); $templateCache.put('plugins/es/templates/registry/edit_record.html','<ion-view left-buttons="leftButtons" class="view-page"><ion-nav-title><span class="visible-xs" ng-if="id" ng-bind-html="formData.title"></span> <span class="visible-xs" ng-if="!loading && !id" translate="">REGISTRY.EDIT.TITLE_NEW</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear visible-xs visible-sm" ng-class="{\'ion-android-send\':!id, \'ion-android-done\': id}" ng-click="save()"></button></ion-nav-buttons><ion-content scroll="true"><div class="hero"><div class="content"><i class="avatar" ng-class="avatarClass" ng-style="avatarStyle"><button class="button button-positive button-large button-clear flat icon ion-camera visible-xs visible-sm" style="display: inline-block" ng-click="showAvatarModal()"></button> <button ng-if="avatar.src" class="button button-positive button-large button-clear flat visible-xs visible-sm" style="display: inline-block; left: 85px; bottom:15px" ng-click="rotateAvatar()"><i class="icon-secondary ion-image" style="left: 24px; top: 3px; font-size: 24px"></i> <i class="icon-secondary ion-forward" style="left: 26px; top: -13px"></i></button></i><h3 class="dark"><span ng-if="!loading && formData.title">{{formData.title}}</span> <span ng-if="!loading && !id && !formData.title" translate="">REGISTRY.EDIT.TITLE_NEW</span></h3><h4 class="dark"><ion-spinner ng-if="loading" icon="android"></ion-spinner></h4></div></div><div class="row no-padding"><div class="col no-padding-xs no-padding-sm"><form name="recordForm" novalidate="" ng-submit="save()"><div class="list {{::motion.ionListClass}}" ng-init="setForm(recordForm)"><div class="item" ng-if="id"><h4 class="gray"><i class="icon ion-calendar"></i> {{\'COMMON.LAST_MODIFICATION_DATE\'|translate}} {{formData.time | formatDate}}</h4><div class="badge badge-balanced badge-editable" ng-click="showRecordTypeModal()">{{\'REGISTRY.TYPE.ENUM.\'+formData.type|upper|translate}}</div></div><ng-include src="::\'plugins/es/templates/common/edit_pictures.html\'"></ng-include><div class="item item-divider" translate="">REGISTRY.GENERAL_DIVIDER</div><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><span class="input-label" translate="">REGISTRY.EDIT.RECORD_TITLE</span> <input type="text" placeholder="{{\'REGISTRY.EDIT.RECORD_TITLE_HELP\'|translate}}" name="title" id="registry-record-title" ng-model="formData.title" ng-minlength="3" ng-required="true"></div><div class="form-errors" ng-if="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="item item-input item-floating-label"><span class="input-label" translate="">REGISTRY.EDIT.RECORD_DESCRIPTION</span><textarea placeholder="{{\'REGISTRY.EDIT.RECORD_DESCRIPTION_HELP\'|translate}}" ng-model="formData.description" rows="8" cols="10">\n </textarea></div><div class="item item-icon-right ink" ng-if="loading || formData.type===\'company\' || formData.type===\'shop\'" ng-class="{\'item-input-error\': form.$submitted && !formData.category.id, \'done in\': !loading}" ng-click="showCategoryModal()"><span translate="">REGISTRY.CATEGORY</span> <span class="badge badge-royal">{{formData.category.name | formatCategory}}</span> <i class="gray icon ion-ios-arrow-right"></i></div><input type="hidden" name="category" ng-model="formData.category.id" required-if="formData.type==\'company\' || formData.type==\'shop\'"><div class="form-errors" ng-if="form.$submitted && form.category.$error" ng-messages="form.category.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><ng-include src="::\'plugins/es/templates/common/edit_position.html\'" ng-controller="ESPositionEditCtrl as ctrl"></ng-include><ng-include src="::\'plugins/es/templates/common/edit_socials.html\'" ng-controller="ESSocialsEditCtrl"></ng-include><div class="item item-divider" translate="">REGISTRY.TECHNICAL_DIVIDER</div><div class="item item-input item-floating-label"><span class="input-label" translate="">REGISTRY.EDIT.RECORD_PUBKEY</span> <input type="text" placeholder="{{\'REGISTRY.EDIT.RECORD_PUBKEY_HELP\'|translate}}" ng-model="formData.pubkey"></div></div></form></div></div></ion-content></ion-view>'); $templateCache.put('plugins/es/templates/registry/lookup_form.html','<form ng-submit="doSearch()"><div class="item no-padding"><div class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'REGISTRY.SEARCH.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()" on-return="doSearchText()" select-on-click=""></div></div><ng-include src="::\'plugins/es/templates/common/item_location_search.html\'" ng-if="entered && options.location.show && (!search.geoPoint || smallscreen)" ng-controller="ESSearchPositionItemCtrl"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_form_options.html\'"></ng-include></form><div class="padding-top padding-xs padding-sm" style="display: block; height: 60px"><div class="pull-left ng-hide" ng-show="!search.loading && search.results"><ng-if ng-if="search.lastRecords"><h4 translate="">REGISTRY.SEARCH.LAST_RECORDS</h4><small class="gray no-padding" ng-if="search.total"><span ng-if="search.geoPoint && search.total">{{\'REGISTRY.SEARCH.LAST_RECORD_COUNT_LOCATION\'|translate:{count: search.total, location: search.location} }}</span> <span ng-if="!search.geoPoint && search.total">{{\'REGISTRY.SEARCH.LAST_RECORD_COUNT\'|translate:{count: search.total} }}</span></small></ng-if><ng-if ng-if="!search.lastRecords"><h4 translate="">COMMON.RESULTS_LIST</h4><small class="gray no-padding" ng-if="search.total"><span ng-if="search.geoPoint && search.total">{{\'REGISTRY.SEARCH.RESULT_COUNT_LOCATION\'|translate:{count: search.total, location: search.location} }}</span> <span ng-if="!search.geoPoint && search.total">{{\'REGISTRY.SEARCH.RESULT_COUNT\'|translate:{count: search.total} }}</span></small></ng-if></div></div><div class="center" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="padding assertive" ng-if="!search.loading && search.results.length===0" translate="">COMMON.SEARCH_NO_RESULT</div>'); $templateCache.put('plugins/es/templates/registry/lookup_form_options.html','<div class="item item-icon-left item-input item-select stable-bg" ng-if="search.advanced && options.location.show"><i class="icon ion-arrow-resize gray"></i> <span class="input-label item-icon-left-padding" translate="">LOCATION.DISTANCE</span><label><select ng-model="search.geoDistance" class="col-border-left" ng-options="i as (geoDistanceLabels[i].labelKey | translate:geoDistanceLabels[i].labelParams ) for i in geoDistances track by i"></select></label></div>'); @@ -32299,6 +32271,34 @@ $templateCache.put('plugins/es/templates/wot/popover_certification_actions.html' $templateCache.put('plugins/es/templates/wot/view_certifications_extend.html','<ng-if ng-if=":state:enable && extensionPoint === \'nav-buttons\'"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showCertificationActionsPopover($event)"></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'buttons\'"><button class="button button-stable button-small-padding icon ion-android-more-vertical" ng-click="showCertificationActionsPopover($event)" title="{{\'COMMON.POPOVER_ACTIONS_TITLE\' | translate}}"></button></ng-if>'); $templateCache.put('plugins/es/templates/wot/view_identity_extend.html','<ng-if ng-if=":state:enable && extensionPoint === \'hero\'"><small class="light" style="display: inline-block" ng-include="::\'plugins/es/templates/common/view_likes.html\'"></small></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'buttons-top-fab\'"><button id="fab-compose-{{:rebind:formData.pubkey}}" class="button button-fab button-fab-top-left button-fab-hero mini button-stable spin" style="left: 88px" ng-click="showNewMessageModal()"><i class="icon ion-email"></i></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'buttons\'"><button class="button button-stable button-small-padding icon ion-email" ng-disabled="loading" ng-click="showNewMessageModal()" title="{{\'MESSAGE.BTN_WRITE\' | translate}}"></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'after-buttons\'"><button class="button button-stable button-small-padding icon ion-android-more-vertical" ng-click="showActionsPopover($event)"></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'after-general\'"><span class="item item-divider item-divider-top-border"><span>{{\'PROFILE.PROFILE_DIVIDER\' | translate}} <a style="font-size: 12pt; cursor: pointer" ng-click="showProfileHelp=!showProfileHelp" class="icon positive ion-ios-help-outline ink" title="{{\'PROFILE.PROFILE_DIVIDER_HELP\' | translate}}"></a></span></span><div class="item item-text-wrap positive item-small-height" ng-show="showProfileHelp"><small translate>PROFILE.PROFILE_DIVIDER_HELP</small></div><ng-include src="::\'plugins/es/templates/user/items_profile.html\'" ng-init="showName=false;"></ng-include></ng-if>'); $templateCache.put('plugins/es/templates/wot/view_popover_actions.html','<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink visible-xs visible-sm" ng-click="showSharePopover($event)"><i class="icon ion-android-share-alt"></i> {{\'COMMON.BTN_SHARE\' | translate}} </a><a class="item item-icon-left assertive ink" ng-if="canDelete" ng-click="delete()"><i class="icon ion-trash-a"></i> {{\'COMMON.BTN_DELETE\' | translate}} </a><a class="item item-icon-left ink" ng-if="!canEdit && likeData.likes" ng-click="hideActionsPopover() && toggleLike($event)"><i class="icon" ng-class="{\'ion-heart-broken\': likeData.likes.wasHit, \'ion-heart\': !likeData.likes.wasHit}"></i> {{(likeData.likes.wasHit ? \'COMMON.BTN_LIKE_REMOVE\' : \'COMMON.BTN_LIKE\' )| translate}} </a><a class="item item-icon-left ink" ng-if="!canEdit && likeData.abuses" ng-disabled="!!likeData.abuses.wasHitCount" ng-class="{\'gray\': !!likeData.abuses.wasHitCount}" ng-click="hideActionsPopover() && reportAbuse($event)"><i class="icon ion-android-warning"></i> {{\'COMMON.BTN_REPORT_ABUSE_DOTS\' | translate}}</a></div></ion-content></ion-popover-view>'); +$templateCache.put('plugins/graph/templates/account/graph_balance.html','\n <!-- button bar -->\n <div class="button-bar-inline "\n style="top: 33px; margin-top:-33px; position: relative;">\n <button\n class="button button-stable button-clear no-padding-xs pull-right"\n ng-click="showActionsPopover($event)">\n <i class="icon ion-navicon-round"></i>\n </button>\n </div>\n\n <div class="padding-left padding-right">\n <canvas id="account-balance" class="chart-bar"\n height="{{height}}" width="{{width}}"\n chart-data="data"\n chart-dataset-override="datasetOverride"\n chart-colors="colors"\n chart-options="options"\n chart-labels="labels"\n chart-click="onChartClick">\n </canvas>\n </div>\n\n <ng-include src="::\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'); +$templateCache.put('plugins/graph/templates/account/graph_certifications.html','\n <div class="padding-left padding-right">\n <canvas id="account-certifications" class="chart-bar"\n height="{{height}}" width="{{width}}"\n chart-data="data"\n chart-dataset-override="datasetOverride"\n chart-colors="colors"\n chart-options="options"\n chart-labels="labels"\n chart-click="onChartClick">\n </canvas>\n </div>\n'); +$templateCache.put('plugins/graph/templates/account/graph_sum_tx.html','<div class="row responsive-sm" ng-if="!loading">\n\n <div class="col col-10 hidden-xs hidden-sm"> </div>\n\n <div class="col text-center">\n\n <!-- TX input chart -->\n <p class="gray padding text-wrap"\n ng-if="inputChart.data.length"\n translate>GRAPH.ACCOUNT.INPUT_CHART_TITLE</p>\n <canvas id="chart-received-pie" class="chart-pie"\n chart-data="inputChart.data"\n chart-labels="inputChart.labels"\n chart-colors="inputChart.colors"\n chart-click="onInputChartClick">\n </canvas>\n\n </div>\n\n <div class="col col-10 hidden-xs hidden-sm"> </div>\n\n <div class="col text-center">\n\n <!-- TX output chart -->\n <p class="gray padding text-wrap"\n ng-if="outputChart.data.length"\n translate>GRAPH.ACCOUNT.OUTPUT_CHART_TITLE</p>\n <canvas id="chart-sent-pie" class="chart-pie"\n chart-data="outputChart.data"\n chart-labels="outputChart.labels"\n chart-colors="outputChart.colors"\n chart-click="onOutputChartClick">\n </canvas>\n\n </div>\n\n <div class="col col-10 hidden-xs hidden-sm"> </div>\n\n</div>\n'); +$templateCache.put('plugins/graph/templates/account/view_identity_tx_extend.html','<!-- Buttons section -->\n<ng-if ng-if=":state:enable && extensionPoint === \'buttons\'">\n\n <button class="button button-stable button-small-padding icon ion-stats-bars"\n ui-sref="app.wot_identity_stats({pubkey: formData.pubkey})"\n title="{{\'GRAPH.ACCOUNT.BTN_SHOW_STATS\' | translate}}">\n </button>\n\n</ng-if>\n'); +$templateCache.put('plugins/graph/templates/account/view_stats.html','<ion-view left-buttons="leftButtons"\n cache-view="false">\n <ion-nav-title>\n {{\'GRAPH.ACCOUNT.TITLE\' | translate}}{{id}}\n </ion-nav-title>\n\n <ion-content scroll="true" class="no-padding">\n\n\n\n <div class="list" >\n\n <!-- - - - - Balance - - - - -->\n <ng-controller ng-controller="GpAccountBalanceCtrl">\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <div class="item item-divider" ng-if="!loading" >\n {{\'GRAPH.ACCOUNT.BALANCE_DIVIDER\'|translate}}\n <ion-spinner ng-if="loadingRange" class="ion-spinner-small" icon="android"></ion-spinner>\n </div>\n\n <div class="item no-padding-xs"\n ng-if="!loading"\n ng-include="::\'plugins/graph/templates/account/graph_balance.html\'"\n ng-init="setSize(350, 1000)">\n </div>\n </ng-controller>\n\n </div>\n\n <div class="item no-padding-xs"\n ng-include="::\'plugins/graph/templates/account/graph_sum_tx.html\'"\n ng-controller="GpAccountSumTxCtrl">\n </div>\n\n <!-- - - - - WOT - - - -\n <div class="item item-divider" translate>\n GRAPH.ACCOUNT.WOT_DIVIDER\n </div>\n\n <div class="item no-padding-xs"\n ng-include="::\'plugins/graph/templates/account/graph_certifications.html\'"\n ng-controller="GpAccountCertificationCtrl"\n ng-init="setSize(350, 1000)">\n </div>-->\n\n </ion-content>\n\n</ion-view>\n'); +$templateCache.put('plugins/graph/templates/account/view_wallet_tx_extend.html','<!-- Buttons section -->\n<ng-if ng-if=":state:enable && extensionPoint === \'buttons\'">\n\n <button class="button button-stable button-small-padding icon ion-stats-bars"\n ui-sref="app.wot_identity_stats({pubkey: formData.pubkey})"\n title="{{\'GRAPH.ACCOUNT.BTN_SHOW_STATS\' | translate}}">\n </button>\n\n</ng-if>\n'); +$templateCache.put('plugins/graph/templates/blockchain/graph_block_issuers.html','\n <div class="row responsive-lg">\n\n <!-- bar -->\n <div class="col col-75">\n <canvas id="bar" class="chart-bar"\n height="{{height}}" width="{{width}}"\n chart-data="data"\n chart-labels="labels"\n chart-colors="colors"\n chart-options="barOptions"\n chart-click="onChartClick">\n </canvas>\n </div>\n\n <!-- pie -->\n <div class="col col-25 padding-top">\n <canvas id="blocksByIssuer-pie" class="chart-pie"\n chart-data="data"\n chart-labels="labels"\n chart-colors="colors"\n chart-click="onChartClick">\n </canvas>\n\n <div class="gray padding-top text-center">\n <small ng-bind-html="\'GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_HELP\'| translate:{issuerCount: data.length, blockCount: blockCount }"></small>\n </div>\n </div>\n </div>\n'); +$templateCache.put('plugins/graph/templates/blockchain/graph_tx_count.html','\n <!-- button bar -->\n <div class="button-bar-inline "\n style="top: 33px; margin-top:-33px; position: relative;">\n <button\n class="button button-stable button-clear no-padding-xs pull-right"\n ng-click="showActionsPopover($event)">\n <i class="icon ion-navicon-round"></i>\n </button>\n </div>\n\n <div class="padding-left padding-right">\n <canvas id="tx-line" class="chart-bar"\n height="{{height}}" width="{{width}}"\n chart-data="data"\n chart-dataset-override="datasetOverride"\n chart-colors="colors"\n chart-options="options"\n chart-labels="labels"\n chart-click="onChartClick">\n </canvas>\n </div>\n\n <ng-include src="::\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'); +$templateCache.put('plugins/graph/templates/blockchain/view_stats.html','<ion-view left-buttons="leftButtons"\n cache-view="false">\n <ion-nav-title>\n {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}{{id}}\n </ion-nav-title>\n\n <ion-content scroll="true" class="no-padding">\n\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <div class="list" ng-if="!loading">\n\n\n <!-- TX count -->\n <ng-controller ng-controller="GpBlockchainTxCountCtrl">\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <div class="item item-divider" ng-if="!loading" >\n {{\'GRAPH.BLOCKCHAIN.TX_DIVIDER\'|translate}}\n <ion-spinner ng-if="loadingRange" class="ion-spinner-small" icon="android"></ion-spinner>\n </div>\n\n <div class="item no-padding-xs no-padding-sm"\n ng-if="!loading"\n ng-include="::\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n ng-init="setSize(350, 1000)">\n </div>\n </ng-controller>\n\n\n <!-- Blocks issuer -->\n <ng-controller ng-controller="GpBlockchainIssuersCtrl">\n\n <div class="item item-divider" ng-if="!loading" translate>GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_DIVIDER</div>\n\n <div class="item no-padding-xs no-padding-sm"\n ng-if="!loading"\n ng-include="::\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n ng-init="setSize(300, 750)">\n </div>\n\n </ng-controller>\n\n </ion-content>\n\n</ion-view>\n'); +$templateCache.put('plugins/graph/templates/common/graph_range_bar.html','\n <div class="range range-positive no-padding-left no-padding-right">\n <a\n class="button button-stable button-clear no-padding pull-left"\n ng-click="goPreviousRange($event)">\n <i class="icon ion-chevron-left"></i>\n </a>\n <input type="range"\n ng-model="formData.timePct"\n name="timePct"\n min="0" max="100"\n value="{{formData.timePct}}"\n ng-change="onRangeChanged();"\n ng-model-options="{ debounce: 250 }">\n <a\n class="button button-stable button-clear no-padding pull-right"\n ng-click="goNextRange($event)">\n <i class="icon ion-chevron-right"></i>\n </a>\n </div>\n'); +$templateCache.put('plugins/graph/templates/common/popover_range_actions.html','<ion-popover-view class="has-header popover-graph-currency">\n <ion-header-bar>\n <h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1>\n </ion-header-bar>\n <ion-content scroll="false">\n <div class="list item-text-wrap">\n\n <!-- scale -->\n <a class="item item-icon-left ink"\n ng-click="toggleScale()">\n <i class="icon ion-ios-checkmark-empty" ng-show="formData.scale==\'logarithmic\'"></i>\n <span ng-bind-html="\'GRAPH.COMMON.LOGARITHMIC_SCALE\' | translate"></span>\n </a>\n\n <!-- duration divider -->\n <div class="item item-divider">\n {{\'GRAPH.COMMON.RANGE_DURATION_DIVIDER\'|translate}}\n </div>\n\n <!-- duration: hour -->\n <a class="item item-icon-left ink"\n ng-click="setRangeDuration(\'hour\')">\n <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'hour\'"></i>\n <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.HOUR\' | translate"></span>\n </a>\n\n <!-- duration: day -->\n <a class="item item-icon-left ink"\n ng-click="setRangeDuration(\'day\')">\n <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'day\'"></i>\n <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.DAY\' | translate"></span>\n </a>\n\n <!-- duration: month -->\n <a class="item item-icon-left ink"\n ng-click="setRangeDuration(\'month\')">\n <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'month\'"></i>\n <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.MONTH\' | translate"></span>\n </a>\n\n </div>\n </ion-content>\n</ion-popover-view>\n'); +$templateCache.put('plugins/graph/templates/currency/graph_du.html','\n <!-- graphs button bar -->\n <div class="button-bar-inline "\n style="top: 33px; margin-top:-33px; position: relative;">\n <button\n class="button button-stable button-clear no-padding-xs no-padding-sm pull-right"\n ng-click="showActionsPopover($event)">\n <i class="icon ion-navicon-round"></i>\n </button>\n </div>\n\n <canvas id="monetaryMass-bar" class="chart-bar"\n height="{{height}}"\n width="{{width}}"\n chart-data="data"\n chart-labels="labels"\n chart-colors="colors"\n chart-dataset-override="datasetOverride"\n chart-options="options"\n chart-click="showBlock">\n </canvas>\n'); +$templateCache.put('plugins/graph/templates/currency/graph_members_count.html',' <canvas id="membersCount-bar" class="chart-line"\n height="{{height}}"\n width="{{width}}"\n chart-data="data"\n chart-labels="labels"\n chart-colors="colors"\n chart-options="options"\n chart-dataset-override="datasetOverride"\n chart-click="onChartClick">\n </canvas>\n'); +$templateCache.put('plugins/graph/templates/currency/graph_monetary_mass.html','\n <!-- graphs button bar -->\n <div class="button-bar-inline "\n style="top: 33px; margin-top:-33px; position: relative;">\n <button\n class="button button-stable button-clear no-padding-xs pull-right"\n ng-click="showActionsPopover($event)">\n <i class="icon ion-navicon-round"></i>\n </button>\n </div>\n\n <canvas id="monetaryMass-bar"\n class="chart-bar"\n height="{{height}}"\n width="{{width}}"\n chart-data="data"\n chart-labels="labels"\n chart-colors="colors"\n chart-dataset-override="datasetOverride"\n chart-options="options"\n chart-click="onChartClick">\n </canvas>\n'); +$templateCache.put('plugins/graph/templates/currency/popover_monetary_mass_actions.html','<ion-popover-view class="fit has-header">\n <ion-header-bar>\n <h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1>\n </ion-header-bar>\n <ion-content scroll="false">\n <div class="list item-text-wrap">\n\n <a class="item item-icon-left ink"\n ng-click="toggleScale()">\n <i class="icon ion-ios-checkmark-empty" ng-show="formData.scale==\'logarithmic\'"></i>\n <span ng-bind-html="\'GRAPH.COMMON.LOGARITHMIC_SCALE\' | translate"></span>\n </a>\n\n </div>\n </ion-content>\n</ion-popover-view>\n'); +$templateCache.put('plugins/graph/templates/currency/tab_blocks_extend.html','<!-- buttons -->\n<ng-if ng-if=":state:enable && extensionPoint === \'buttons\'">\n <div class="item item-divider">\n <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_blocks_stats">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n </a>\n </div>\n</ng-if>\n'); +$templateCache.put('plugins/graph/templates/currency/view_currency_extend.html','\n<!-- section actual parameters -->\n<ng-if ng-if=":state:enable && extensionPoint === \'parameters-actual\'" >\n\n <ng-if ng-if="!smallscreen">\n <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n ng-include="::\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n ng-controller="GpCurrencyMonetaryMassCtrl"\n ng-init="displayShareAxis=false;">\n </div>\n <div class="item buttons no-padding-top ">\n <a class="pull-right button button-text button-small button-small-padding ink" ui-sref="app.currency_stats_lg">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.COMMON.BTN_SHOW_DETAILED_STATS</span>\n </a>\n </div>\n </ng-if>\n\n <div class="item item-divider"\n ng-if="smallscreen">\n <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_parameters_stats">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n </a>\n </div>\n</ng-if>\n\n<!-- section Wot -->\n<ng-if ng-if=":state:enable && extensionPoint === \'wot-actual\'" >\n\n <ng-if ng-if="!smallscreen">\n <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n ng-include="::\'plugins/graph/templates/currency/graph_members_count.html\'"\n ng-controller="GpCurrencyMembersCountCtrl">\n </div>\n <div class="item buttons no-padding-top ">\n <a class="pull-right button button-text button-small button-small-padding ink" ui-sref="app.currency_stats_lg">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.COMMON.BTN_SHOW_DETAILED_STATS</span>\n </a>\n </div>\n </ng-if>\n\n <div class="item item-divider"\n ng-if="smallscreen">\n <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_wot_stats">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n </a>\n </div>\n</ng-if>\n\n<!-- section Wot -->\n<ng-if ng-if=":state:enable && extensionPoint === \'network-actual\'" >\n\n <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n ng-if="!smallscreen"\n ng-include="::\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n ng-controller="GpBlockchainIssuersCtrl">\n </div>\n\n <div class="item item-divider"\n ng-if="smallscreen">\n <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_network_stats">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n </a>\n </div>\n</ng-if>\n\n'); +$templateCache.put('plugins/graph/templates/currency/view_stats_lg.html','<ion-view left-buttons="leftButtons"\n cache-view="false">\n <ion-nav-title>\n {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}\n </ion-nav-title>\n\n <ion-content scroll="true" class="padding" >\n\n\n\n <div class="list" >\n\n <!-- Monetary mass -->\n <ng-controller ng-controller="GpCurrencyMonetaryMassCtrl" >\n\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <div class="item no-padding-xs" ng-if="!loading"\n ng-include="::\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n ng-init="setSize(250, 1000)">\n </div>\n\n <div ng-if="!loading"\n class="item item-toggle dark no-border text-right">\n <span class="" translate>COMMON.BTN_RELATIVE_UNIT</span>\n <label class="toggle toggle-royal" id="helptip-currency-change-unit">\n <input type="checkbox" ng-model="formData.useRelative">\n <div class="track">\n <div class="handle"></div>\n </div>\n </label>\n </div>\n </ng-controller>\n\n <!-- DU -->\n <ng-controller ng-controller="GpCurrencyDUCtrl" >\n <div class="item no-padding-xs"\n ng-if="!loading"\n ng-include="::\'plugins/graph/templates/currency/graph_du.html\'"\n ng-init="setSize(250, 1000)">\n </div>\n </ng-controller>\n\n <!-- Member count -->\n <ng-controller ng-controller="GpCurrencyMembersCountCtrl" >\n <div class="item no-padding-xs"\n ng-if="!loading"\n ng-include="::\'plugins/graph/templates/currency/graph_members_count.html\'"\n ng-init="setSize(250, 1000)">\n </div>\n\n\n </div>\n\n </ion-content>\n\n</ion-view>\n'); +$templateCache.put('plugins/graph/templates/currency/view_wot_stats.html','<ion-view left-buttons="leftButtons"\n cache-view="false">\n\n <ion-content scroll="true" >\n\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <ng-include\n ng-if="!loading"\n src="\'plugins/graph/templates/currency/graph_members_count.html\'" ></ng-include>\n </ion-content>\n </ion-view>\n'); +$templateCache.put('plugins/graph/templates/docstats/graph.html','\n <!-- graphs button bar -->\n <div class="button-bar-inline "\n style="top: 33px; margin-top:-33px; position: relative;">\n <button\n class="button button-stable button-clear no-padding-xs no-padding-sm pull-right"\n ng-click="showActionsPopover($event)">\n <i class="icon ion-navicon-round"></i>\n </button>\n </div>\n\n <canvas id="{{::chartIdPrefix}}{{chart.id}}"\n class="chart-line"\n height="{{height}}"\n width="{{width}}"\n chart-data="chart.data"\n chart-labels="labels"\n chart-dataset-override="chart.datasetOverride"\n chart-options="chart.options"\n chart-click="onChartClick">\n </canvas>\n\n <ng-include src="::\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'); +$templateCache.put('plugins/graph/templates/docstats/view_stats.html','<ion-view left-buttons="leftButtons"\n cache-view="false">\n <ion-nav-title>\n {{\'GRAPH.DOC_STATS.TITLE\' | translate}}\n </ion-nav-title>\n\n <ion-content scroll="true" class="padding" >\n\n <div class="list" >\n\n <!-- Doc stat -->\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <div class="item no-padding-xs no-padding-sm" ng-if="!loading"\n ng-repeat="chart in charts"\n ng-include="::\'plugins/graph/templates/docstats/graph.html\'"\n ng-init="setSize(250, 1000)">\n </div>\n\n </div>\n\n </ion-content>\n\n</ion-view>\n'); +$templateCache.put('plugins/graph/templates/network/view_es_network_extend.html','<!-- Buttons section -->\n<ng-if ng-if=":state:enable && extensionPoint === \'documents-buttons\'">\n <a class="button button-text button-small ink"\n ui-sref="app.doc_stats_lg" >\n <i class="icon ion-stats-bars"></i>\n <span>{{\'NETWORK.VIEW.BTN_GRAPH\'|translate}}</span>\n </a>\n</ng-if>\n'); +$templateCache.put('plugins/graph/templates/network/view_es_peer_extend.html','<!-- Buttons section -->\n<ng-if ng-if=":state:enable && extensionPoint === \'general\'">\n\n <a class="item item-icon-left item-icon-right item-text-wrap ink"\n ng-if="isReachable"\n ui-sref="app.doc_stats_lg(node)">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.DOC_STATS.TITLE</span>\n <i class="gray icon ion-ios-arrow-right"></i>\n </a>\n\n <a class="item item-icon-left item-icon-right item-text-wrap ink"\n ng-if="isReachable"\n ui-sref="app.doc_synchro_lg(node)">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.SYNCHRO.TITLE</span>\n <i class="gray icon ion-ios-arrow-right"></i>\n </a>\n</ng-if>\n\n'); +$templateCache.put('plugins/graph/templates/network/view_network_extend.html','<!-- Buttons section -->\n<ng-if ng-if=":state:enable && extensionPoint === \'blockchain-buttons\'">\n <a class="button button-text button-small ink"\n ui-sref="app.blockchain_stats" >\n <i class="icon ion-stats-bars"></i>\n <span>{{\'NETWORK.VIEW.BTN_GRAPH\'|translate}}</span>\n </a>\n</ng-if>\n'); +$templateCache.put('plugins/graph/templates/network/view_peer_extend.html','<!-- Buttons section -->\n<ng-if ng-if=":state:enable && extensionPoint === \'general\'">\n\n <a class="item item-icon-left item-icon-right item-text-wrap ink"\n ui-sref="app.view_peer_stats({pubkey: node.pubkey})">\n <i class="icon ion-stats-bars"></i>\n <span translate>GRAPH.PEER.VIEW.BLOCK_COUNT_LABEL</span>\n <span class="badge"\n ng-if="!loading"\n ng-class="{\'badge-stable\': blockCount > 0, \'badge-assertive\': !blockCount}">\n {{!blockCount ? \'GRAPH.PEER.VIEW.NO_BLOCK\' : \'GRAPH.PEER.VIEW.BLOCK_COUNT\' | translate:{count: blockCount} }}\n </span>\n <ion-spinner class="badge" icon="android" ng-if="loading"></ion-spinner>\n <i class="gray icon ion-ios-arrow-right"></i>\n </a>\n</ng-if>\n\n'); +$templateCache.put('plugins/graph/templates/network/view_peer_stats.html','<ion-view left-buttons="leftButtons"\n cache-view="false">\n <ion-nav-title>\n {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}{{id}}\n </ion-nav-title>\n\n <ion-content scroll="true" class="no-padding">\n\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <div class="list" ng-if="!loading">\n\n <!-- - - - - TX divider - - - - -->\n <div class="item item-divider hidden-xs hidden-sm" translate>\n GRAPH.BLOCKCHAIN.TX_DIVIDER\n </div>\n\n <div class="item no-padding-xs"\n ng-include="::\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n ng-init="setSize(350, 1000)">\n </div>\n\n </ion-content>\n\n</ion-view>\n'); +$templateCache.put('plugins/graph/templates/synchro/graph.html','\n <!-- graphs button bar -->\n <div class="button-bar-inline "\n style="top: 33px; margin-top:-33px; position: relative;">\n <button\n class="button button-stable button-clear no-padding-xs pull-right"\n ng-click="showActionsPopover($event)">\n <i class="icon ion-navicon-round"></i>\n </button>\n </div>\n\n <canvas id="synchro-chart-{{chart.id}}"\n class="chart-bar"\n height="{{height}}"\n width="{{width}}"\n chart-data="chart.data"\n chart-labels="labels"\n chart-dataset-override="chart.datasetOverride"\n chart-options="chart.options">\n </canvas>\n\n <ng-include src="::\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'); +$templateCache.put('plugins/graph/templates/synchro/view_stats.html','<ion-view left-buttons="leftButtons"\n cache-view="false">\n <ion-nav-title>\n {{\'GRAPH.SYNCHRO.TITLE\' | translate}}\n </ion-nav-title>\n\n <ion-content scroll="true" class="padding" >\n\n <div class="list" >\n\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <div class="item no-padding-xs" ng-if="!loading"\n ng-repeat="chart in charts"\n ng-include="::\'plugins/graph/templates/synchro/graph.html\'"\n ng-init="setSize(250, 1000)">\n </div>\n\n </div>\n\n </ion-content>\n\n</ion-view>\n'); $templateCache.put('plugins/map/templates/common/edit_position_extend.html','<div class="item no-padding hidden-xs hidden-sm {{ionItemClass}}" ng-if="formData.geoPoint && formData.geoPoint.lat && formData.geoPoint.lon">\n <leaflet id="{{::mapId}}"\n height="250px"\n center="map.center"\n markers="map.markers"\n defaults="map.defaults">\n </leaflet>\n</div>\n'); $templateCache.put('plugins/map/templates/network/item_search_tooltip.html','<a href="#">\n {{peer.dns || peer.server}}\n <span class="{{peer.uid ? \'positive\' : \'gray\'}}">\n <i class="icon {{peer.uid ? \'ion-person\' : \'ion-key\'}}"></i>\n {{peer.uid ? (peer.name||peer.uid) : (peer.pubkey|formatPubkey) }}\n </span>\n <span class="gray">{{peer.ipv4 ? (peer.ipv4 + \':\' + peer.port) : \'\'}}</span>\n <span class="{{peer.bma.useSsl ? \'\' : \'ng-hide\'}}"><i class="ion-locked"></i> <small>SSL</small></span>\n</a>\n'); $templateCache.put('plugins/map/templates/network/lookup_extend.html','<!-- FIXME issue #755 - https://git.duniter.org/clients/cesium-grp/cesium/issues/755\n<a ng-if="enable"\n class="button button-text button-small ink hidden-sm hidden-xs"\n title="{{\'MAP.NETWORK.LOOKUP.BTN_MAP_HELP\' | translate}}"\n ui-sref="app.view_network_map">\n <i class="icon ion-ios-location"></i>\n {{\'MAP.NETWORK.LOOKUP.BTN_MAP\' | translate}}\n</a>\n -->\n'); @@ -32312,12 +32312,12 @@ $templateCache.put('plugins/map/templates/wot/item_search_tooltip.html','<a href $templateCache.put('plugins/map/templates/wot/lookup_lg_extend.html','<a ng-if="enable"\n class="button button-text button-small ink hidden-sm hidden-xs"\n title="{{\'MAP.WOT.LOOKUP.BTN_MAP_HELP\' | translate}}"\n ui-sref="app.view_wot_map">\n <i class="icon ion-ios-location"></i>\n {{\'MAP.WOT.LOOKUP.BTN_MAP\' | translate}}\n</a>\n'); $templateCache.put('plugins/map/templates/wot/popup_marker.html','\n<div class="item no-border no-padding item-avatar "\n ng-if="loadingMarker">\n\n <i class="item-image icon ion-person"></i>\n\n <div class="item-content item-avatar-left-padding padding-top" >\n <h2 class="stable-bg">\n \n </h2>\n <h4 class="stable-bg col-75">\n \n </h4>\n <h4 class="stable-bg col-50">\n \n </h4>\n </div>\n</div>\n\n<a class="item no-border no-padding item-avatar ink animate-fade-in animate-show-hide ng-hide"\n ng-show="!loadingMarker"\n ui-sref="app.wot_identity({pubkey: formData.pubkey, uid: formData.uid})">\n\n <i ng-if="formData.avatar" class="item-image avatar" style="background-image: url({{::formData.avatar.src}})"></i>\n <i ng-if="!formData.avatar && formData.uid" class="item-image icon ion-person"></i>\n <i ng-if="!formData.avatar && !formData.uid" class="item-image icon ion-card"></i>\n\n <div class="item-content item-avatar-left-padding padding-top">\n <h2 class="dark">\n {{formData.name}}\n </h2>\n <h4>\n <span ng-if="formData.uid" class="positive">\n <b class="ion-person"></b>\n {{formData.uid}}\n </span>\n <span class="gray" title="{{formData.pubkey}}"><b class="ion-key"></b> {{formData.pubkey|formatPubkey}}</span>\n <span class="assertive" ng-if="!formData.isMember">\n {{::\'WOT.NOT_MEMBER_PARENTHESIS\'|translate}}\n </span>\n </h4>\n <h4 ng-if="formData.profile.city" class="gray" title="{{formData.profile.city}}">\n <b class="ion-location"></b> {{formData.profile.city}}\n </h4>\n </div>\n</a>\n<!-- buttons -->\n<div class="item no-border no-padding">\n <div class="pull-left gray">\n <!-- show description -->\n <a class="animate-fade-in animate-show-hide gray ng-hide"\n ng-class="{\'ion-arrow-down-b\': !showDescription, \'ion-arrow-up-b\': showDescription}"\n ng-click="showDescription=!showDescription;"\n title="{{\'PROFILE.DESCRIPTION\'|translate}}"\n ng-show="!loadingMarker && formData.profile.description">\n \n </a>\n </div>\n <div style="font-size: 18px;" class="pull-right gray">\n <!-- share -->\n <a class="icon ion-android-share-alt "\n ng-click="showSharePopover($event)"\n title="{{\'COMMON.BTN_SHARE\' | translate}}"> </a>\n <!-- certify -->\n <a class="icon ion-ribbon-b"\n ng-click="certify()"\n title="{{\'WOT.BTN_CERTIFY\' | translate}}"\n ng-hide="!canCertify"> </a>\n <!-- compose message -->\n <a class="icon ion-compose"\n ng-click="showNewMessageModal()"\n title="{{\'MESSAGE.BTN_WRITE\' | translate}}"> </a>\n <!-- transfer -->\n <a class="icon ion-card"\n ng-click="showTransferModal({pubkey:formData.pubkey, uid: formData.name||formData.uid})"\n title="{{\'COMMON.BTN_SEND_MONEY\' | translate}}"> </a>\n\n </div>\n</div>\n<div class="item no-border no-padding item-text-wrap hidden-xs ng-hide" ng-show="showDescription">\n <small trust-as-html="formData.profile.description|truncText:500"></small>\n</div>\n'); $templateCache.put('plugins/map/templates/wot/view_map.html','<ion-view left-buttons="leftButtons" class="view-map-wot">\n <ion-nav-title>\n <span class="hidden-xs" translate>MAP.WOT.VIEW.TITLE</span>\n </ion-nav-title>\n\n <ion-nav-buttons side="secondary">\n <button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="load()">\n </button>\n </ion-nav-buttons>\n\n <ion-content data-tap-disabled="true">\n <a id="helptip-map-wot" style="left: 150px; top: 50px; position: relative;"></a>\n <leaflet id="{{::mapId}}"\n height="100%"\n layers="map.layers"\n markers="map.markers"\n lf-center="map.center"\n bounds="map.bounds">\n </leaflet>\n </ion-content>\n</ion-view>\n'); +$templateCache.put('plugins/es/templates/message/tabs/tab_list.html','<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear icon ion-android-more-vertical" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh()"></ion-refresher><cs-extension-point name="buttons"></cs-extension-point><ng-include src="::\'plugins/es/templates/message/list.html\'"></ng-include></ion-content><div class="visible-xs visible-sm"><button ng-if="fabButtonNewMessageId" id="{{::fabButtonNewMessageId}}" class="button button-fab button-fab-bottom-right button-assertive spin has-footer" ng-click="showNewMessageModal()"><i class="icon ion-compose"></i></button></div></ion-view>'); +$templateCache.put('plugins/es/templates/registry/tabs/tab_registry.html','<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear" ng-click="showFiltersPopover($event)"><i class="icon ion-android-funnel"></i></button> <button class="button button-icon button-clear icon ion-android-more-vertical" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doSearch()"></ion-refresher><cs-extension-point name="buttons"></cs-extension-point><ng-include src="::\'plugins/es/templates/registry/lookup_form.html\'"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_list.html\'"></ng-include></ion-content></ion-view>'); $templateCache.put('plugins/graph/templates/currency/tabs/tab_blocks_stats.html','<ion-view>\n <ion-content>\n <div\n ng-include="::\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n ng-controller="GpBlockchainTxCountCtrl"\n ng-init="setSize(500,700,false)">\n </div>\n </ion-content>\n</ion-view>\n'); $templateCache.put('plugins/graph/templates/currency/tabs/tab_network_stats.html','<ion-view>\n <ion-content>\n\n <div class="list">\n <div class="item"\n ng-include="::\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n ng-controller="GpBlockchainIssuersCtrl"\n ng-init="setSize(500,700,true)">\n </div>\n </div>\n </ion-content>\n</ion-view>\n'); $templateCache.put('plugins/graph/templates/currency/tabs/tab_parameters_stats.html','<ion-view>\n <ion-content>\n <div class="list no-padding-xs no-padding-sm">\n\n <ng-container ng-controller="GpCurrencyMonetaryMassCtrl">\n\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <!-- Monetary mass -->\n <div class="item"\n ng-include="::\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n ng-init="setSize(500,700,true)">\n </div>\n </ng-container>\n\n <!-- DU -->\n <ng-container ng-controller="GpCurrencyDUCtrl">\n <div class="item"\n ng-include="::\'plugins/graph/templates/currency/graph_du.html\'"\n ng-init="setSize(500,700,true)">\n </div>\n </ng-container>\n </div>\n </ion-content>\n</ion-view>\n'); -$templateCache.put('plugins/graph/templates/currency/tabs/tab_wot_stats.html','<ion-view>\n <ion-content>\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <div class="list no-padding">\n <div class="item no-padding-top"\n ng-include="::\'plugins/graph/templates/currency/graph_members_count.html\'"\n ng-init="setSize(600,700,false)">\n </div>\n </div>\n </ion-content>\n</ion-view>\n'); -$templateCache.put('plugins/es/templates/message/tabs/tab_list.html','<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear icon ion-android-more-vertical" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh()"></ion-refresher><cs-extension-point name="buttons"></cs-extension-point><ng-include src="::\'plugins/es/templates/message/list.html\'"></ng-include></ion-content><div class="visible-xs visible-sm"><button ng-if="fabButtonNewMessageId" id="{{::fabButtonNewMessageId}}" class="button button-fab button-fab-bottom-right button-assertive spin has-footer" ng-click="showNewMessageModal()"><i class="icon ion-compose"></i></button></div></ion-view>'); -$templateCache.put('plugins/es/templates/registry/tabs/tab_registry.html','<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear" ng-click="showFiltersPopover($event)"><i class="icon ion-android-funnel"></i></button> <button class="button button-icon button-clear icon ion-android-more-vertical" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doSearch()"></ion-refresher><cs-extension-point name="buttons"></cs-extension-point><ng-include src="::\'plugins/es/templates/registry/lookup_form.html\'"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_list.html\'"></ng-include></ion-content></ion-view>');}]); +$templateCache.put('plugins/graph/templates/currency/tabs/tab_wot_stats.html','<ion-view>\n <ion-content>\n <div class="center padding" ng-if="loading">\n <ion-spinner icon="android"></ion-spinner>\n </div>\n\n <div class="list no-padding">\n <div class="item no-padding-top"\n ng-include="::\'plugins/graph/templates/currency/graph_members_count.html\'"\n ng-init="setSize(600,700,false)">\n </div>\n </div>\n </ion-content>\n</ion-view>\n');}]); angular.module('cesium.es.plugin', [ // Services diff --git a/assets/www/manifest.json b/assets/www/manifest.json index 7151a961d7901ad48d0c3336233d3cf12dce45a5..f7b9f733e59610895b0c2099bef012203c3c890b 100644 --- a/assets/www/manifest.json +++ b/assets/www/manifest.json @@ -2,9 +2,9 @@ "short_name": "Cesium", "name": "Cesium", "manifest_version": 1, - "version": "1.6.2-alpha", + "version": "1.6.4", "default_locale": "fr", - "description": "Manage your Duniter Wallet on a libre currency, like Ğ1", + "description": "Cesium Wallet for Ğ1 libre currency", "icons": [ { "src": "img/logo_32px.png", diff --git a/libs/barcodescanner.aar b/libs/barcodescanner.aar deleted file mode 100644 index 6312ccab948387f970089d0aeabf5afc1b834d9b..0000000000000000000000000000000000000000 Binary files a/libs/barcodescanner.aar and /dev/null differ diff --git a/phonegap-plugin-barcodescanner/cesium-barcodescanner.gradle b/phonegap-plugin-barcodescanner/cesium-barcodescanner.gradle index 4e096bc6e37ba002453e12e88a8b59287565f69a..13a609b39b2c701f85a5c330edc033cf7b8011fb 100644 --- a/phonegap-plugin-barcodescanner/cesium-barcodescanner.gradle +++ b/phonegap-plugin-barcodescanner/cesium-barcodescanner.gradle @@ -6,8 +6,7 @@ repositories{ } dependencies { - compile 'com.android.support:support-v4:+' - compile(name:'barcodescanner', ext:'aar') + compile(name:'barcodescanner-release-2.1.5', ext:'aar') } android { diff --git a/res/xml/config.xml b/res/xml/config.xml index a359ac09c8647c4c55073472c01f606498571417..e4f220ffff05a8225da6456441cdc467ec2c494f 100644 --- a/res/xml/config.xml +++ b/res/xml/config.xml @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> -<widget android-versionCode="106030" id="fr.duniter.cesium" ios-CFBundleIdentifier="org.duniter.cesium" version="1.6.3" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> +<widget android-versionCode="106040" id="fr.duniter.cesium" ios-CFBundleIdentifier="org.duniter.cesium" version="1.6.4" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <feature name="Clipboard"> <param name="android-package" value="com.verso.cordova.clipboard.Clipboard" /> </feature>