mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-10 06:58:27 +03:00
PreRelease fixes
This commit is contained in:
parent
34a9b8cbc5
commit
42bac6aa2f
55 changed files with 578 additions and 238 deletions
|
|
@ -1378,7 +1378,16 @@
|
|||
if ($LAB && window.crypto && window.crypto.getRandomValues && Settings.capa(Enums.Capa.OpenPGP))
|
||||
{
|
||||
var fOpenpgpCallback = function (openpgp) {
|
||||
|
||||
PgpStore.openpgp = openpgp;
|
||||
|
||||
if (window.Worker)
|
||||
{
|
||||
PgpStore.openpgp.initWorker(Links.openPgpWorkerJs());
|
||||
}
|
||||
|
||||
// PgpStore.openpgp.config.useWebCrypto = false;
|
||||
|
||||
PgpStore.openpgpKeyring = new openpgp.Keyring();
|
||||
PgpStore.capaOpenPGP(true);
|
||||
|
||||
|
|
|
|||
|
|
@ -390,7 +390,23 @@
|
|||
*/
|
||||
Links.prototype.openPgpJs = function ()
|
||||
{
|
||||
return this.sStaticPrefix + 'js/min/openpgp.js';
|
||||
return this.sStaticPrefix + 'js/min/openpgp.min.js';
|
||||
};
|
||||
|
||||
/**
|
||||
* @return {string}
|
||||
*/
|
||||
Links.prototype.openPgpWorkerJs = function ()
|
||||
{
|
||||
return this.sStaticPrefix + 'js/min/openpgp.worker.min.js';
|
||||
};
|
||||
|
||||
/**
|
||||
* @return {string}
|
||||
*/
|
||||
Links.prototype.openPgpWorkerPath = function ()
|
||||
{
|
||||
return this.sStaticPrefix + 'js/min/';
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
90
dev/External/ko.js
vendored
90
dev/External/ko.js
vendored
|
|
@ -821,7 +821,7 @@
|
|||
'parseOnBlur': true,
|
||||
'allowDragAndDrop': true,
|
||||
'focusCallback': fFocusCallback,
|
||||
'inputDelimiters': [',', ';', '\n'],
|
||||
'inputDelimiters': [',', ';', "\n"],
|
||||
'autoCompleteSource': fAutoCompleteSource,
|
||||
// 'elementHook': function (oEl, oItem) {
|
||||
// if (oEl && oItem)
|
||||
|
|
@ -832,52 +832,70 @@
|
|||
// },
|
||||
'parseHook': function (aInput) {
|
||||
|
||||
var aResult = [];
|
||||
|
||||
_.each(aInput, function (sInputValue) {
|
||||
return _.map(aInput, function (sInputValue) {
|
||||
|
||||
var
|
||||
aM = null,
|
||||
aValues = [],
|
||||
sValue = Utils.trim(sInputValue),
|
||||
oEmail = null
|
||||
;
|
||||
|
||||
if ('' !== sValue)
|
||||
{
|
||||
aM = sValue.match(/[@]/g);
|
||||
if (aM && 0 < aM.length)
|
||||
{
|
||||
sValue = sValue.replace(/[\r\n]+/g, '; ').replace(/[\s]+/g, ' ');
|
||||
aValues = EmailModel.splitHelper(sValue, ';');
|
||||
|
||||
_.each(aValues, function (sV) {
|
||||
|
||||
oEmail = new EmailModel();
|
||||
oEmail.mailsoParse(sV);
|
||||
|
||||
if (oEmail.email)
|
||||
{
|
||||
aResult.push([oEmail.toLine(false), oEmail]);
|
||||
}
|
||||
else
|
||||
{
|
||||
aResult.push(['', null]);
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
aResult.push([sInputValue, null]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
aResult.push([sInputValue, null]);
|
||||
oEmail = new EmailModel();
|
||||
oEmail.mailsoParse(sValue);
|
||||
return [oEmail.toLine(false), oEmail];
|
||||
}
|
||||
|
||||
return [sValue, null];
|
||||
|
||||
});
|
||||
|
||||
return aResult;
|
||||
// var aResult = [];
|
||||
//
|
||||
// _.each(aInput, function (sInputValue) {
|
||||
//
|
||||
// var
|
||||
// aM = null,
|
||||
// aValues = [],
|
||||
// sValue = Utils.trim(sInputValue),
|
||||
// oEmail = null
|
||||
// ;
|
||||
//
|
||||
// if ('' !== sValue)
|
||||
// {
|
||||
// aM = sValue.match(/[@]/g);
|
||||
// if (aM && 0 < aM.length)
|
||||
// {
|
||||
// sValue = sValue.replace(/[\r\n]+/g, '; ').replace(/[\s]+/g, ' ');
|
||||
// aValues = EmailModel.splitHelper(sValue, ';');
|
||||
//
|
||||
// _.each(aValues, function (sV) {
|
||||
//
|
||||
// oEmail = new EmailModel();
|
||||
// oEmail.mailsoParse(sV);
|
||||
//
|
||||
// if (oEmail.email)
|
||||
// {
|
||||
// aResult.push([oEmail.toLine(false), oEmail]);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// aResult.push(['', null]);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// aResult.push([sInputValue, null]);
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// aResult.push([sInputValue, null]);
|
||||
// }
|
||||
// });
|
||||
//
|
||||
// return aResult;
|
||||
},
|
||||
'change': _.bind(function (oEvent) {
|
||||
$oEl.data('EmailsTagsValue', oEvent.target.value);
|
||||
|
|
|
|||
|
|
@ -33,10 +33,12 @@
|
|||
this.identityForDeletion = ko.observable(null).deleteAccessHelper();
|
||||
}
|
||||
|
||||
AccountsUserSettings.prototype.scrollableOptions = function ()
|
||||
AccountsUserSettings.prototype.scrollableOptions = function (sWrapper)
|
||||
{
|
||||
return {
|
||||
handle: '.drag-handle'
|
||||
handle: '.drag-handle',
|
||||
containment: sWrapper || 'parent',
|
||||
axis: 'y'
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -110,10 +110,12 @@
|
|||
}, this);
|
||||
}
|
||||
|
||||
FiltersUserSettings.prototype.scrollableOptions = function ()
|
||||
FiltersUserSettings.prototype.scrollableOptions = function (sWrapper)
|
||||
{
|
||||
return {
|
||||
handle: '.drag-handle'
|
||||
handle: '.drag-handle',
|
||||
containment: sWrapper || 'parent',
|
||||
axis: 'y'
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
var
|
||||
_ = require('_'),
|
||||
ko = require('ko'),
|
||||
window = require('window'),
|
||||
|
||||
Utils = require('Common/Utils'),
|
||||
|
||||
|
|
@ -24,6 +25,8 @@
|
|||
this.openpgpkeysPrivate = PgpStore.openpgpkeysPrivate;
|
||||
|
||||
this.openPgpKeyForDeletion = ko.observable(null).deleteAccessHelper();
|
||||
|
||||
this.isHttps = window.document && window.document.location ? 'https:' === window.document.location.protocol : false;
|
||||
}
|
||||
|
||||
OpenPgpUserSettings.prototype.addOpenPgpKey = function ()
|
||||
|
|
|
|||
|
|
@ -31,10 +31,12 @@
|
|||
this.templateForDeletion = ko.observable(null).deleteAccessHelper();
|
||||
}
|
||||
|
||||
TemplatesUserSettings.prototype.scrollableOptions = function ()
|
||||
TemplatesUserSettings.prototype.scrollableOptions = function (sWrapper)
|
||||
{
|
||||
return {
|
||||
handle: '.drag-handle'
|
||||
handle: '.drag-handle',
|
||||
containment: sWrapper || 'parent',
|
||||
axis: 'y'
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
cursor: pointer;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
|
||||
.identity-name {
|
||||
display: inline-block;
|
||||
word-break: break-all;
|
||||
|
|
@ -50,6 +50,12 @@
|
|||
}
|
||||
}
|
||||
|
||||
.accounts-list-top-padding, .identities-list-top-padding {
|
||||
display: inline-block;
|
||||
height: 5px;
|
||||
width: 5px;
|
||||
}
|
||||
|
||||
.account-item {
|
||||
|
||||
.e-action {
|
||||
|
|
|
|||
|
|
@ -46,6 +46,12 @@
|
|||
}
|
||||
}
|
||||
|
||||
.filters-list-top-padding {
|
||||
display: inline-block;
|
||||
height: 5px;
|
||||
width: 5px;
|
||||
}
|
||||
|
||||
.filter-item {
|
||||
|
||||
.e-action {
|
||||
|
|
|
|||
|
|
@ -37,6 +37,12 @@
|
|||
}
|
||||
}
|
||||
|
||||
.templates-list-top-padding {
|
||||
display: inline-block;
|
||||
height: 5px;
|
||||
width: 5px;
|
||||
}
|
||||
|
||||
.template-item {
|
||||
|
||||
.e-action {
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@
|
|||
var
|
||||
self = this,
|
||||
sUserID = '',
|
||||
mKeyPair = null,
|
||||
oOpenpgpKeyring = PgpStore.openpgpKeyring
|
||||
;
|
||||
|
||||
|
|
@ -72,7 +71,7 @@
|
|||
'passphrase': Utils.trim(self.password())
|
||||
});
|
||||
|
||||
mPromise.then(function () {
|
||||
mPromise.then(function (mKeyPair) {
|
||||
|
||||
self.submitRequest(false);
|
||||
|
||||
|
|
@ -80,6 +79,7 @@
|
|||
{
|
||||
oOpenpgpKeyring.privateKeys.importKey(mKeyPair.privateKeyArmored);
|
||||
oOpenpgpKeyring.publicKeys.importKey(mKeyPair.publicKeyArmored);
|
||||
|
||||
oOpenpgpKeyring.store();
|
||||
|
||||
require('App/User').reloadOpenPgpKeys();
|
||||
|
|
@ -89,8 +89,11 @@
|
|||
})['catch'](function() {
|
||||
self.submitRequest(false);
|
||||
});
|
||||
|
||||
} catch (e) {}
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
self.submitRequest(false);
|
||||
}
|
||||
|
||||
}, 100);
|
||||
|
||||
|
|
|
|||
17
gulpfile.js
17
gulpfile.js
|
|
@ -140,11 +140,17 @@ cfg.paths.js = {
|
|||
]
|
||||
},
|
||||
openpgp: {
|
||||
name: 'openpgp.js',
|
||||
name: 'openpgp.min.js',
|
||||
src: [
|
||||
'vendors/openpgp/openpgp-0.10.1.min.js'
|
||||
]
|
||||
},
|
||||
openpgpworker: {
|
||||
name: 'openpgp.worker.min.js',
|
||||
src: [
|
||||
'vendors/openpgp/openpgp-0.10.1.worker.min.js'
|
||||
]
|
||||
},
|
||||
encrypt: {
|
||||
name: 'bundle.js',
|
||||
header: '(function (window) {',
|
||||
|
|
@ -294,6 +300,13 @@ gulp.task('js:openpgp', function() {
|
|||
.pipe(gulp.dest(cfg.paths.staticMinJS));
|
||||
});
|
||||
|
||||
gulp.task('js:openpgpworker', function() {
|
||||
return gulp.src(cfg.paths.js.openpgpworker.src)
|
||||
.pipe(rename(cfg.paths.js.openpgpworker.name))
|
||||
.pipe(eol('\n', true))
|
||||
.pipe(gulp.dest(cfg.paths.staticMinJS));
|
||||
});
|
||||
|
||||
gulp.task('js:libs', function() {
|
||||
return gulp.src(cfg.paths.js.libs.src)
|
||||
.pipe(concat(cfg.paths.js.libs.name, {separator: '\n\n'}))
|
||||
|
|
@ -642,7 +655,7 @@ gulp.task('rainloop:owncloud:clean', ['rainloop:owncloud:copy', 'rainloop:ownclo
|
|||
});
|
||||
|
||||
// MAIN
|
||||
gulp.task('default', ['js:libs', 'js:boot', 'js:openpgp', 'js:min', 'css:main:min', 'ckeditor', 'fontastic']);
|
||||
gulp.task('default', ['js:libs', 'js:boot', 'js:openpgp', 'js:openpgpworker', 'js:min', 'css:main:min', 'ckeditor', 'fontastic']);
|
||||
gulp.task('fast-', ['js:app', 'js:admin', 'js:chunks', 'css:main']);
|
||||
|
||||
gulp.task('fast', ['package:community-on', 'fast-']);
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"name": "RainLoop",
|
||||
"title": "RainLoop Webmail",
|
||||
"version": "1.9.1",
|
||||
"release": "335",
|
||||
"version": "1.9.2",
|
||||
"release": "342",
|
||||
"description": "Simple, modern & fast web-based email client",
|
||||
"homepage": "http://rainloop.net",
|
||||
"main": "gulpfile.js",
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
"plugins"
|
||||
],
|
||||
"readmeFilename": "README.md",
|
||||
"ownCloudPackageVersion": "4.3",
|
||||
"ownCloudPackageVersion": "4.4",
|
||||
"engines": {
|
||||
"node": ">= 0.10.0"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -49,7 +49,13 @@ class DateTimeHelper
|
|||
*/
|
||||
public static function ParseRFC2822DateString($sDateTime)
|
||||
{
|
||||
$sDateTime = \trim(\preg_replace('/ \([a-zA-Z0-9]+\)$/', '', \trim($sDateTime)));
|
||||
$sDateTime = \trim($sDateTime);
|
||||
if (empty($sDateTime))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
$sDateTime = \trim(\preg_replace('/ \([a-zA-Z0-9]+\)$/', '', $sDateTime));
|
||||
$oDateTime = \DateTime::createFromFormat('D, d M Y H:i:s O', $sDateTime, \MailSo\Base\DateTimeHelper::GetUtcTimeZoneObject());
|
||||
return $oDateTime ? $oDateTime->getTimestamp() : 0;
|
||||
}
|
||||
|
|
@ -65,7 +71,12 @@ class DateTimeHelper
|
|||
public static function ParseInternalDateString($sDateTime)
|
||||
{
|
||||
$sDateTime = \trim($sDateTime);
|
||||
if (\preg_match('/^[a-z]{2,4}, /i', $sDateTime)) // RFC2822
|
||||
if (empty($sDateTime))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (\preg_match('/^[a-z]{2,4}, /i', $sDateTime)) // RFC2822 ~ "Thu, 10 Jun 2010 08:58:33 -0700 (PDT)"
|
||||
{
|
||||
return \MailSo\Base\DateTimeHelper::ParseRFC2822DateString($sDateTime);
|
||||
}
|
||||
|
|
@ -83,7 +94,13 @@ class DateTimeHelper
|
|||
*/
|
||||
public static function ParseDateStringType1($sDateTime)
|
||||
{
|
||||
$oDateTime = \DateTime::createFromFormat('Y-m-d H:i:s O', \trim($sDateTime), \MailSo\Base\DateTimeHelper::GetUtcTimeZoneObject());
|
||||
$sDateTime = \trim($sDateTime);
|
||||
if (empty($sDateTime))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
$oDateTime = \DateTime::createFromFormat('Y-m-d H:i:s O', $sDateTime, \MailSo\Base\DateTimeHelper::GetUtcTimeZoneObject());
|
||||
return $oDateTime ? $oDateTime->getTimestamp() : 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2368,7 +2368,8 @@ END;
|
|||
{
|
||||
$aMatch = array();
|
||||
return \preg_match('/.+(\.[a-zA-Z]+)$/', $sDomain, $aMatch) && !empty($aMatch[1]) && \in_array($aMatch[1], \explode(' ',
|
||||
'.aero .asia .biz .cat .com .coop .edu .gov .info .int .jobs .mil .mobi .museum .name .net .org .pro .tel .travel .xxx .ac .ad .ae .af .ag .ai .al .am .an .ao .aq .ar .as .at .au .aw .ax .az .ba .bb .bd .be .bf .bg .bh .bi .bj .bm .bn .bo .br .bs .bt .bv .bw .by .bz .ca .cc .cd .cf .cg .ch .ci .ck .cl .cm .cn .co .cr .cs .cu .cv .cx .cy .cz .dd .de .dj .dk .dm .do .dz .ec .ee .eg .er .es .et .eu .fi .fj .fk .fm .fo .fr .ga .gb .gd .ge .gf .gg .gh .gi .gl .gm .gn .gp .gq .gr .gs .gt .gu .gw .gy .hk .hm .hn .hr .ht .hu .id .ie .il .im .in .io .iq .ir .is .it .je .jm .jo .jp .ke .kg .kh .ki .km .kn .kp .kr .kw .ky .kz .la .lb .lc .li .lk .lr .ls .lt .lu .lv .ly .ma .mc .md .me .mg .mh .mk .ml .mm .mn .mo .mp .mq .mr .ms .mt .mu .mv .mw .mx .my .mz .na .nc .ne .nf .ng .ni .nl .no .np .nr .nu .nz .om .pa .pe .pf .pg .ph .pk .pl .pm .pn .pr .ps .pt .pw .py .qa .re .ro .rs .ru . .rw .sa .sb .sc .sd .se .sg .sh .si .sj .sk .sl .sm .sn .so .sr .st .su .sv .sy .sz .tc .td .tf .tg .th .tj .tk .tl .tm .tn .to .tp .tr .tt .tv .tw .tz .ua .ug .uk .us .uy .uz .va .vc .ve .vg .vi .vn .vu .wf .ws .ye .yt .za .zm .zw'
|
||||
'.academy .actor .agency .audio .bar .beer .bike .blue .boutique .cab .camera .camp .capital .cards .careers .cash .catering .center .cheap .city .cleaning .clinic .clothing .club .coffee .community .company .computer .construction .consulting .contractors .cool .credit .dance .dating .democrat .dental .diamonds .digital .direct .directory .discount .domains .education .email .energy .equipment .estate .events .expert .exposed .fail .farm .fish .fitness .florist .fund .futbol .gallery .gift .glass .graphics .guru .help .holdings .holiday .host .hosting .house .institute .international .kitchen .land .life .lighting .limo .link .management .market .marketing .media .menu .moda .partners .parts .photo .photography .photos .pics .pink .press .productions .pub .red .rentals .repair .report .rest .sexy .shoes .social .solar .solutions .space .support .systems .tattoo .tax .technology .tips .today .tools .town .toys .trade .training .university .uno .vacations .vision .vodka .voyage .watch .webcam .wiki .work .works .wtf .zone .aero .asia .biz .cat .com .coop .edu .gov .info .int .jobs .mil .mobi .museum .name .net .org .pro .tel .travel .xxx '.
|
||||
'.ac .ad .ae .af .ag .ai .al .am .an .ao .aq .ar .as .at .au .aw .ax .az .ba .bb .bd .be .bf .bg .bh .bi .bj .bm .bn .bo .br .bs .bt .bv .bw .by .bz .ca .cc .cd .cf .cg .ch .ci .ck .cl .cm .cn .co .cr .cs .cu .cv .cx .cy .cz .dd .de .dj .dk .dm .do .dz .ec .ee .eg .er .es .et .eu .fi .fj .fk .fm .fo .fr .ga .gb .gd .ge .gf .gg .gh .gi .gl .gm .gn .gp .gq .gr .gs .gt .gu .gw .gy .hk .hm .hn .hr .ht .hu .id .ie .il .im .in .io .iq .ir .is .it .je .jm .jo .jp .ke .kg .kh .ki .km .kn .kp .kr .kw .ky .kz .la .lb .lc .li .lk .lr .ls .lt .lu .lv .ly .ma .mc .md .me .mg .mh .mk .ml .mm .mn .mo .mp .mq .mr .ms .mt .mu .mv .mw .mx .my .mz .na .nc .ne .nf .ng .ni .nl .no .np .nr .nu .nz .om .pa .pe .pf .pg .ph .pk .pl .pm .pn .pr .ps .pt .pw .py .qa .re .ro .rs .ru . .rw .sa .sb .sc .sd .se .sg .sh .si .sj .sk .sl .sm .sn .so .sr .st .su .sv .sy .sz .tc .td .tf .tg .th .tj .tk .tl .tm .tn .to .tp .tr .tt .tv .tw .tz .ua .ug .uk .us .uy .uz .va .vc .ve .vg .vi .vn .vu .wf .ws .ye .yt .za .zm .zw'
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1889,7 +1889,7 @@ class ImapClient extends \MailSo\Net\NetClient
|
|||
* @throws \MailSo\Net\Exceptions\Exception
|
||||
*/
|
||||
private function partialParseResponseBranch(&$oImapResponse, $iStackIndex = -1,
|
||||
$bTreatAsAtom = false, $sParentToken = '')
|
||||
$bTreatAsAtom = false, $sParentToken = '', $sOpenBracket = '')
|
||||
{
|
||||
$mNull = null;
|
||||
|
||||
|
|
@ -2020,7 +2020,7 @@ class ImapClient extends \MailSo\Net\NetClient
|
|||
if ($bTreatAsAtom)
|
||||
{
|
||||
$sAtomBlock = $this->partialParseResponseBranch($mNull, $iStackIndex, true,
|
||||
null === $sPreviousAtomUpperCase ? '' : \strtoupper($sPreviousAtomUpperCase));
|
||||
null === $sPreviousAtomUpperCase ? '' : \strtoupper($sPreviousAtomUpperCase), $sOpenBracket);
|
||||
|
||||
$sAtomBuilder .= $sAtomBlock;
|
||||
$iPos = $this->iResponseBufParsedPos;
|
||||
|
|
@ -2035,7 +2035,7 @@ class ImapClient extends \MailSo\Net\NetClient
|
|||
else if ($bIsGotoNotAtomBracket)
|
||||
{
|
||||
$aSubItems = $this->partialParseResponseBranch($mNull, $iStackIndex, false,
|
||||
null === $sPreviousAtomUpperCase ? '' : \strtoupper($sPreviousAtomUpperCase));
|
||||
null === $sPreviousAtomUpperCase ? '' : \strtoupper($sPreviousAtomUpperCase), $sOpenBracket);
|
||||
|
||||
$aList[] = $aSubItems;
|
||||
$iPos = $this->iResponseBufParsedPos;
|
||||
|
|
@ -2065,27 +2065,36 @@ class ImapClient extends \MailSo\Net\NetClient
|
|||
$sChar = $this->sResponseBuffer[$iPos];
|
||||
}
|
||||
|
||||
switch ($sChar)
|
||||
switch (true)
|
||||
{
|
||||
case ']':
|
||||
case ')':
|
||||
case ']' === $sChar:
|
||||
$iPos++;
|
||||
$sPreviousAtomUpperCase = null;
|
||||
$bIsEndOfList = true;
|
||||
break;
|
||||
case ' ':
|
||||
case ')' === $sChar:
|
||||
$iPos++;
|
||||
$sPreviousAtomUpperCase = null;
|
||||
$bIsEndOfList = true;
|
||||
break;
|
||||
case ' ' === $sChar:
|
||||
if ($bTreatAsAtom)
|
||||
{
|
||||
$sAtomBuilder .= ' ';
|
||||
}
|
||||
$iPos++;
|
||||
break;
|
||||
case '[':
|
||||
case '[' === $sChar:
|
||||
$bIsClosingBracketSquare = true;
|
||||
case '(':
|
||||
case '(' === $sChar:
|
||||
if ('(' === $sChar)
|
||||
{
|
||||
$bIsClosingBracketSquare = false;
|
||||
}
|
||||
|
||||
if ($bTreatAsAtom)
|
||||
{
|
||||
$sAtomBuilder .= ($bIsClosingBracketSquare) ? '[' : '(';
|
||||
$sAtomBuilder .= $bIsClosingBracketSquare ? '[' : '(';
|
||||
}
|
||||
$iPos++;
|
||||
|
||||
|
|
@ -2093,13 +2102,15 @@ class ImapClient extends \MailSo\Net\NetClient
|
|||
if ($bTreatAsAtom)
|
||||
{
|
||||
$bIsGotoAtomBracket = true;
|
||||
$sOpenBracket = $bIsClosingBracketSquare ? '[' : '(';
|
||||
}
|
||||
else
|
||||
{
|
||||
$bIsGotoNotAtomBracket = true;
|
||||
$sOpenBracket = $bIsClosingBracketSquare ? '[' : '(';
|
||||
}
|
||||
break;
|
||||
case '{':
|
||||
case '{' === $sChar:
|
||||
$bIsLiteralParsed = false;
|
||||
$mLiteralEndPos = \strpos($this->sResponseBuffer, '}', $iPos);
|
||||
if (false !== $mLiteralEndPos && $mLiteralEndPos > $iPos)
|
||||
|
|
@ -2120,7 +2131,7 @@ class ImapClient extends \MailSo\Net\NetClient
|
|||
}
|
||||
$sPreviousAtomUpperCase = null;
|
||||
break;
|
||||
case '"':
|
||||
case '"' === $sChar:
|
||||
$bIsQuotedParsed = false;
|
||||
while (true)
|
||||
{
|
||||
|
|
@ -2206,7 +2217,7 @@ class ImapClient extends \MailSo\Net\NetClient
|
|||
$sPreviousAtomUpperCase = null;
|
||||
break;
|
||||
|
||||
case 'GOTO_DEFAULT':
|
||||
case 'GOTO_DEFAULT' === $sChar:
|
||||
default:
|
||||
$iCharBlockStartPos = $iPos;
|
||||
|
||||
|
|
@ -2214,7 +2225,7 @@ class ImapClient extends \MailSo\Net\NetClient
|
|||
{
|
||||
$iPos = $iBufferEndIndex;
|
||||
|
||||
while ($iPos > $iCharBlockStartPos && $this->sResponseBuffer[$iCharBlockStartPos] == ' ')
|
||||
while ($iPos > $iCharBlockStartPos && $this->sResponseBuffer[$iCharBlockStartPos] === ' ')
|
||||
{
|
||||
$iCharBlockStartPos++;
|
||||
}
|
||||
|
|
@ -2224,9 +2235,9 @@ class ImapClient extends \MailSo\Net\NetClient
|
|||
while (!$bIsAtomDone && ($iPos <= $iBufferEndIndex))
|
||||
{
|
||||
$sCharDef = $this->sResponseBuffer[$iPos];
|
||||
switch ($sCharDef)
|
||||
switch (true)
|
||||
{
|
||||
case '[':
|
||||
case '[' === $sCharDef:
|
||||
if (null === $sAtomBuilder)
|
||||
{
|
||||
$sAtomBuilder = '';
|
||||
|
|
@ -2238,7 +2249,7 @@ class ImapClient extends \MailSo\Net\NetClient
|
|||
$this->iResponseBufParsedPos = $iPos;
|
||||
|
||||
$sListBlock = $this->partialParseResponseBranch($mNull, $iStackIndex, true,
|
||||
null === $sPreviousAtomUpperCase ? '' : \strtoupper($sPreviousAtomUpperCase));
|
||||
null === $sPreviousAtomUpperCase ? '' : \strtoupper($sPreviousAtomUpperCase), '[');
|
||||
|
||||
if (null !== $sListBlock)
|
||||
{
|
||||
|
|
@ -2248,9 +2259,9 @@ class ImapClient extends \MailSo\Net\NetClient
|
|||
$iPos = $this->iResponseBufParsedPos;
|
||||
$iCharBlockStartPos = $iPos;
|
||||
break;
|
||||
case ' ':
|
||||
case ']':
|
||||
case ')':
|
||||
case ' ' === $sCharDef:
|
||||
case ')' === $sCharDef && '(' === $sOpenBracket:
|
||||
case ']' === $sCharDef && '[' === $sOpenBracket:
|
||||
$bIsAtomDone = true;
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -622,7 +622,7 @@ class Message
|
|||
$this->sInReplyTo = $oHeaders->ValueByName(\MailSo\Mime\Enumerations\Header::IN_REPLY_TO);
|
||||
$this->sReferences = \MailSo\Base\Utils::StripSpaces(
|
||||
$oHeaders->ValueByName(\MailSo\Mime\Enumerations\Header::REFERENCES));
|
||||
|
||||
|
||||
$sHeaderDate = $oHeaders->ValueByName(\MailSo\Mime\Enumerations\Header::DATE);
|
||||
$this->sHeaderDate = $sHeaderDate;
|
||||
$this->iHeaderTimeStampInUTC = \MailSo\Base\DateTimeHelper::ParseRFC2822DateString($sHeaderDate);
|
||||
|
|
|
|||
|
|
@ -9411,14 +9411,23 @@ class Actions
|
|||
{
|
||||
$oAccount = \call_user_func($fGetAccount);
|
||||
|
||||
$iDateTimeStampInUTC = $mResponse->InternalTimeStampInUTC();
|
||||
if (0 === $iDateTimeStampInUTC || !!$this->Config()->Get('labs', 'date_from_headers', false))
|
||||
{
|
||||
$iDateTimeStampInUTC = $mResponse->HeaderTimeStampInUTC();
|
||||
if (0 === $iDateTimeStampInUTC)
|
||||
{
|
||||
$iDateTimeStampInUTC = $mResponse->InternalTimeStampInUTC();
|
||||
}
|
||||
}
|
||||
|
||||
$mResult = \array_merge($this->objectData($mResponse, $sParent, $aParameters), array(
|
||||
'Folder' => $mResponse->Folder(),
|
||||
'Uid' => (string) $mResponse->Uid(),
|
||||
'Subject' => \trim(\MailSo\Base\Utils::Utf8Clear($mResponse->Subject())),
|
||||
'MessageId' => $mResponse->MessageId(),
|
||||
'Size' => $mResponse->Size(),
|
||||
'DateTimeStampInUTC' => !!$this->Config()->Get('labs', 'date_from_headers', false)
|
||||
? $mResponse->HeaderTimeStampInUTC() : $mResponse->InternalTimeStampInUTC(),
|
||||
'DateTimeStampInUTC' => $iDateTimeStampInUTC,
|
||||
'ReplyTo' => $this->responseObject($mResponse->ReplyTo(), $sParent, $aParameters),
|
||||
'From' => $this->responseObject($mResponse->From(), $sParent, $aParameters),
|
||||
'To' => $this->responseObject($mResponse->To(), $sParent, $aParameters),
|
||||
|
|
|
|||
|
|
@ -98,6 +98,14 @@ class Property
|
|||
return PropertyType::WEB_PAGE === $this->Type;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function IsValueForLower()
|
||||
{
|
||||
return $this->IsEmail() || $this->IsName() || $this->IsWeb();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
|
|
@ -142,7 +150,7 @@ class Property
|
|||
}
|
||||
|
||||
// lower value for searching
|
||||
if (\MailSo\Base\Utils::FunctionExistsAndEnabled('mb_strtolower'))
|
||||
if ($this->IsValueForLower() && \MailSo\Base\Utils::FunctionExistsAndEnabled('mb_strtolower'))
|
||||
{
|
||||
$this->ValueLower = (string) @\mb_strtolower($this->Value, 'UTF-8');
|
||||
}
|
||||
|
|
@ -153,6 +161,7 @@ class Property
|
|||
$sPhone = \trim($this->Value);
|
||||
$sPhone = \preg_replace('/^[+]+/', '', $sPhone);
|
||||
$sPhone = \preg_replace('/[^\d]/', '', $sPhone);
|
||||
|
||||
$this->ValueCustom = \trim($sPhone);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1895,6 +1895,11 @@ SQLITEINITIAL;
|
|||
1 => $this->getInitialTablesArray($this->sDsnType),
|
||||
2 => array(
|
||||
'ALTER TABLE rainloop_ab_properties ADD prop_value_lower varchar(255) NOT NULL DEFAULT \'\' AFTER prop_value_custom;'
|
||||
),
|
||||
3 => array(
|
||||
'ALTER TABLE rainloop_ab_properties CHANGE prop_value prop_value TEXT NOT NULL;',
|
||||
'ALTER TABLE rainloop_ab_properties CHANGE prop_value_custom prop_value_custom TEXT NOT NULL;',
|
||||
'ALTER TABLE rainloop_ab_properties CHANGE prop_value_lower prop_value_lower TEXT NOT NULL;'
|
||||
)
|
||||
));
|
||||
break;
|
||||
|
|
@ -1903,7 +1908,8 @@ SQLITEINITIAL;
|
|||
1 => $this->getInitialTablesArray($this->sDsnType),
|
||||
2 => array(
|
||||
'ALTER TABLE rainloop_ab_properties ADD prop_value_lower text NOT NULL DEFAULT \'\';'
|
||||
)
|
||||
),
|
||||
3 => array()
|
||||
));
|
||||
break;
|
||||
case 'sqlite':
|
||||
|
|
@ -1911,7 +1917,8 @@ SQLITEINITIAL;
|
|||
1 => $this->getInitialTablesArray($this->sDsnType),
|
||||
2 => array(
|
||||
'ALTER TABLE rainloop_ab_properties ADD prop_value_lower text NOT NULL DEFAULT \'\';'
|
||||
)
|
||||
),
|
||||
3 => array()
|
||||
));
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -149,6 +149,12 @@
|
|||
<input type="text" size="70" autocomplete="off" data-bind="textInput: subject" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="e-row">
|
||||
<div class="e-cell e-label">
|
||||
</div>
|
||||
<div class="e-cell e-value" data-bind="text: to">
|
||||
</div>
|
||||
</div>
|
||||
<div class="e-row">
|
||||
<div class="e-cell e-label"></div>
|
||||
<div class="e-cell e-value">
|
||||
|
|
@ -174,15 +180,18 @@
|
|||
<div class="btn-group pull-right">
|
||||
<a class="btn first" data-tooltip-join="bottom"
|
||||
style="padding-left: 10px; padding-right: 10px;"
|
||||
data-bind="visible: addAttachmentEnabled(), initDom: composeUploaderButton, tooltip: 'COMPOSE/ATTACH_FILES'">
|
||||
data-bind="visible: addAttachmentEnabled(), initDom: composeUploaderButton, tooltip: 'COMPOSE/ATTACH_FILES',
|
||||
css: {'last': !(driveEnabled() && driveVisible()) && !(dropboxEnabled())}">
|
||||
<sup style="font-weight: bold; font-size: 100%; top: -0.3em;">+</sup><i class="icon-attachment"></i>
|
||||
</a>
|
||||
<a class="btn" data-tooltip-join="bottom"
|
||||
data-bind="visible: dropboxEnabled, command: dropboxCommand, tooltip: 'COMPOSE/DROPBOX', css: {'first': !addAttachmentEnabled(), 'last': !driveEnabled()}">
|
||||
data-bind="visible: dropboxEnabled, command: dropboxCommand, tooltip: 'COMPOSE/DROPBOX',
|
||||
css: {'first': !addAttachmentEnabled(), 'last': !(driveEnabled() && driveVisible())}">
|
||||
<i class="icon-dropbox"></i>
|
||||
</a>
|
||||
<a class="btn last" data-tooltip-join="bottom"
|
||||
data-bind="visible: driveEnabled() && driveVisible(), command: driveCommand, tooltip: 'COMPOSE/GOOGLE_DRIVE'">
|
||||
data-bind="visible: driveEnabled() && driveVisible(), command: driveCommand, tooltip: 'COMPOSE/GOOGLE_DRIVE',
|
||||
css: {'first': !addAttachmentEnabled() && !(driveEnabled() && driveVisible())}">
|
||||
<i class="icon-google-drive"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
<div class="control-group">
|
||||
<label class="i18n control-label" data-i18n="POPUPS_GENERATE_OPEN_PGP_KEYS/LABEL_KEY_BIT_LENGTH"></label>
|
||||
<div class="controls">
|
||||
<select data-bind="value: keyBitLength, options: [1024, 2048]"></select>
|
||||
<select data-bind="value: keyBitLength, options: [2048, 4096]"></select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -15,34 +15,37 @@
|
|||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<table class="table table-hover list-table accounts-list" data-bind="i18nUpdate: accounts">
|
||||
<colgroup>
|
||||
<col />
|
||||
<col style="width: 150px" />
|
||||
<col style="width: 1%" />
|
||||
</colgroup>
|
||||
<tbody data-bind="sortable: {data: accounts, options: scrollableOptions(), afterMove: accountsAndIdentitiesAfterMove}">
|
||||
<tr class="account-item">
|
||||
<td class="e-action" data-bind="css: {'e-action': canBeEdit}">
|
||||
<span class="account-img icon-user"></span>
|
||||
<i class="icon-braille drag-handle"></i>
|
||||
|
||||
<span class="account-name" data-bind="text: email"></span>
|
||||
</td>
|
||||
<td>
|
||||
<span data-bind="visible: !canBeDeleted()"></span>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-delete button-delete-transitions" data-bind="visible: canBeDeleted, css: {'delete-access': deleteAccess}, click: function(oAccount) { $root.deleteAccount(oAccount); }">
|
||||
<span class="i18n" data-i18n="SETTINGS_ACCOUNTS/DELETING_ASK"></span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="delete-account" data-bind="visible: !deleteAccess() && canBeDeleted(), click: function (oAccount) { $root.accountForDeletion(oAccount); }">
|
||||
<i class="icon-trash"></i>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="accounts-list-wrp">
|
||||
<div class="accounts-list-top-padding"></div>
|
||||
<table class="table table-hover list-table accounts-list" data-bind="i18nUpdate: accounts">
|
||||
<colgroup>
|
||||
<col />
|
||||
<col style="width: 150px" />
|
||||
<col style="width: 1%" />
|
||||
</colgroup>
|
||||
<tbody data-bind="sortable: {data: accounts, options: scrollableOptions('.accounts-list-wrp'), afterMove: accountsAndIdentitiesAfterMove}">
|
||||
<tr class="account-item">
|
||||
<td class="e-action" data-bind="css: {'e-action': canBeEdit}">
|
||||
<span class="account-img icon-user"></span>
|
||||
<i class="icon-braille drag-handle"></i>
|
||||
|
||||
<span class="account-name" data-bind="text: email"></span>
|
||||
</td>
|
||||
<td>
|
||||
<span data-bind="visible: !canBeDeleted()"></span>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-delete button-delete-transitions" data-bind="visible: canBeDeleted, css: {'delete-access': deleteAccess}, click: function(oAccount) { $root.deleteAccount(oAccount); }">
|
||||
<span class="i18n" data-i18n="SETTINGS_ACCOUNTS/DELETING_ASK"></span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="delete-account" data-bind="visible: !deleteAccess() && canBeDeleted(), click: function (oAccount) { $root.accountForDeletion(oAccount); }">
|
||||
<i class="icon-trash"></i>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div data-bind="visible: allowIdentities">
|
||||
<br />
|
||||
|
|
@ -59,37 +62,40 @@
|
|||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<table class="table table-hover list-table identities-list" data-bind="i18nUpdate: identities">
|
||||
<colgroup>
|
||||
<col />
|
||||
<col style="width: 150px" />
|
||||
<col style="width: 1%" />
|
||||
</colgroup>
|
||||
<tbody data-bind="sortable: {data: identities, options: scrollableOptions(), afterMove: accountsAndIdentitiesAfterMove}">
|
||||
<tr class="identity-item">
|
||||
<td class="e-action">
|
||||
<span class="identity-img icon-user"></span>
|
||||
<i class="icon-braille drag-handle"></i>
|
||||
|
||||
<span class="identity-name" data-bind="text: formattedName()"></span>
|
||||
|
||||
<span class="identity-default" data-bind="visible: 0 === $index()">
|
||||
(<span class="i18n" data-i18n="SETTINGS_ACCOUNTS/DEFAULT_IDENTITY_LABEL"></span>)
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span data-bind="visible: !canBeDeleted()"></span>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-delete button-delete-transitions" data-bind="visible: canBeDeleted, css: {'delete-access': deleteAccess}, click: function(oIdentity) { $root.deleteIdentity(oIdentity); }">
|
||||
<span class="i18n" data-i18n="SETTINGS_ACCOUNTS/DELETING_ASK"></span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="delete-identity" data-bind="visible: !deleteAccess() && canBeDeleted(), click: function (oIdentity) { $root.identityForDeletion(oIdentity); }">
|
||||
<i class="icon-trash"></i>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="identities-list-wrp">
|
||||
<div class="identities-list-top-padding"></div>
|
||||
<table class="table table-hover list-table identities-list" data-bind="i18nUpdate: identities">
|
||||
<colgroup>
|
||||
<col />
|
||||
<col style="width: 150px" />
|
||||
<col style="width: 1%" />
|
||||
</colgroup>
|
||||
<tbody data-bind="sortable: {data: identities, options: scrollableOptions('.identities-list-wrp'), afterMove: accountsAndIdentitiesAfterMove}">
|
||||
<tr class="identity-item">
|
||||
<td class="e-action">
|
||||
<span class="identity-img icon-user"></span>
|
||||
<i class="icon-braille drag-handle"></i>
|
||||
|
||||
<span class="identity-name" data-bind="text: formattedName()"></span>
|
||||
|
||||
<span class="identity-default" data-bind="visible: 0 === $index()">
|
||||
(<span class="i18n" data-i18n="SETTINGS_ACCOUNTS/DEFAULT_IDENTITY_LABEL"></span>)
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span data-bind="visible: !canBeDeleted()"></span>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-delete button-delete-transitions" data-bind="visible: canBeDeleted, css: {'delete-access': deleteAccess}, click: function(oIdentity) { $root.deleteIdentity(oIdentity); }">
|
||||
<span class="i18n" data-i18n="SETTINGS_ACCOUNTS/DELETING_ASK"></span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="delete-identity" data-bind="visible: !deleteAccess() && canBeDeleted(), click: function (oIdentity) { $root.identityForDeletion(oIdentity); }">
|
||||
<i class="icon-trash"></i>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -60,43 +60,47 @@
|
|||
data-bind="value: filterRaw, valueUpdate: 'afterkeydown'"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<table class="table table-hover list-table g-ui-user-select-none"
|
||||
data-bind="visible: inited() && (!filterRaw.active() || !filterRaw.active()), i18nUpdate: filters">
|
||||
<colgroup>
|
||||
<col style="width: 30px" />
|
||||
<col style="width: 16px" />
|
||||
<col />
|
||||
<col style="width: 140px" />
|
||||
<col style="width: 1%" />
|
||||
</colgroup>
|
||||
<tbody data-bind="sortable: {data: filters, options: scrollableOptions()}" style="width: 600px">
|
||||
<tr class="filter-item">
|
||||
<td>
|
||||
<span class="disabled-filter" data-bind="click: function () { $root.haveChanges(true); enabled(!enabled()); }">
|
||||
<i data-bind="css: {'icon-checkbox-checked': enabled, 'icon-checkbox-unchecked': !enabled()}"></i>
|
||||
</span>
|
||||
</td>
|
||||
<td class="drag-wrapper">
|
||||
<i class="icon-braille drag-handle"></i>
|
||||
</td>
|
||||
<td class="e-action">
|
||||
<span class="filter-name" data-bind="text: name()"></span>
|
||||
|
||||
<span class="filter-sub-name" data-bind="text: nameSub()"></span>
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-delete button-delete-transitions" data-bind="css: {'delete-access': deleteAccess()}, click: function(oFilter) { $root.deleteFilter(oFilter); }">
|
||||
<span class="i18n" data-i18n="SETTINGS_FILTERS/DELETING_ASK"></span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="delete-filter" data-bind="visible: !deleteAccess() && canBeDeleted(), click: function (oFilter) { $root.filterForDeletion(oFilter); }">
|
||||
<i class="icon-trash"></i>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="filters-list-wrp">
|
||||
<div class="filters-list-top-padding"></div>
|
||||
<table class="table table-hover list-table filters-list g-ui-user-select-none"
|
||||
data-bind="visible: inited() && (!filterRaw.active() || !filterRaw.active()), i18nUpdate: filters">
|
||||
<colgroup>
|
||||
<col style="width: 30px" />
|
||||
<col style="width: 16px" />
|
||||
<col />
|
||||
<col style="width: 140px" />
|
||||
<col style="width: 1%" />
|
||||
</colgroup>
|
||||
<tbody data-bind="sortable: {data: filters, options: scrollableOptions('.filters-list-wrp')}" style="width: 600px">
|
||||
<tr class="filter-item">
|
||||
<td>
|
||||
<span class="disabled-filter" data-bind="click: function () { $root.haveChanges(true); enabled(!enabled()); }">
|
||||
<i data-bind="css: {'icon-checkbox-checked': enabled, 'icon-checkbox-unchecked': !enabled()}"></i>
|
||||
</span>
|
||||
</td>
|
||||
<td class="drag-wrapper">
|
||||
<i class="icon-braille drag-handle"></i>
|
||||
</td>
|
||||
<td class="e-action">
|
||||
<span class="filter-name" data-bind="text: name()"></span>
|
||||
|
||||
<span class="filter-sub-name" data-bind="text: nameSub()"></span>
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-delete button-delete-transitions" data-bind="css: {'delete-access': deleteAccess()}, click: function(oFilter) { $root.deleteFilter(oFilter); }">
|
||||
<span class="i18n" data-i18n="SETTINGS_FILTERS/DELETING_ASK"></span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="delete-filter" data-bind="visible: !deleteAccess() && canBeDeleted(), click: function (oFilter) { $root.filterForDeletion(oFilter); }">
|
||||
<i class="icon-trash"></i>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -4,17 +4,19 @@
|
|||
<span class="i18n" data-i18n="SETTINGS_OPEN_PGP/LEGEND_OPEN_PGP"></span>
|
||||
</div>
|
||||
</div>
|
||||
<a class="btn" data-bind="click: addOpenPgpKey">
|
||||
<button class="btn" data-bind="click: addOpenPgpKey">
|
||||
<i class="icon-list-add"></i>
|
||||
|
||||
<span class="i18n" data-i18n="SETTINGS_OPEN_PGP/BUTTON_ADD_OPEN_PGP_KEY"></span>
|
||||
</a>
|
||||
<!--
|
||||
<a class="btn" data-bind="click: generateOpenPgpKey">
|
||||
<i class="icon-key"></i>
|
||||
|
||||
<span class="i18n" data-i18n="SETTINGS_OPEN_PGP/BUTTON_GENERATE_OPEN_PGP_KEYS"></span>
|
||||
</a>-->
|
||||
</button>
|
||||
|
||||
<div style="display: inline-block" data-tooltip-join="left" data-bind="tooltip: isHttps ? '' : 'SETTINGS_OPEN_PGP/GENERATE_ONLY_HTTPS'">
|
||||
<button class="btn" data-bind="click: generateOpenPgpKey, disable: !isHttps">
|
||||
<i class="icon-key"></i>
|
||||
|
||||
<span class="i18n" data-i18n="SETTINGS_OPEN_PGP/BUTTON_GENERATE_OPEN_PGP_KEYS"></span>
|
||||
</button>
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
|
|
|||
|
|
@ -14,31 +14,35 @@
|
|||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<table class="table table-hover list-table templates-list" data-bind="i18nUpdate: templates">
|
||||
<colgroup>
|
||||
<col />
|
||||
<col style="width: 150px" />
|
||||
<col style="width: 1%" />
|
||||
</colgroup>
|
||||
<tbody data-bind="sortable: {data: templates, options: scrollableOptions()}">
|
||||
<tr class="template-item">
|
||||
<td class="e-action">
|
||||
<span class="template-img icon-user"></span>
|
||||
<i class="icon-braille drag-handle"></i>
|
||||
|
||||
<span class="template-name" data-bind="text: name"></span>
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-delete button-delete-transitions" data-bind="css: {'delete-access': deleteAccess}, click: function(oTemplate) { $root.deleteTemplate(oTemplate); }">
|
||||
<span class="i18n" data-i18n="SETTINGS_TEMPLATES/DELETING_ASK"></span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="delete-template" data-bind="visible: !deleteAccess(), click: function (oTemplate) { $root.templateForDeletion(oTemplate); }">
|
||||
<i class="icon-trash"></i>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="templates-list-wrp">
|
||||
<div class="templates-list-top-padding"></div>
|
||||
<table class="table table-hover list-table templates-list" data-bind="i18nUpdate: templates">
|
||||
<colgroup>
|
||||
<col />
|
||||
<col style="width: 150px" />
|
||||
<col style="width: 1%" />
|
||||
</colgroup>
|
||||
<tbody data-bind="sortable: {data: templates, options: scrollableOptions('.templates-list-wrp')}">
|
||||
<tr class="template-item">
|
||||
<td class="e-action">
|
||||
<span class="template-img icon-user"></span>
|
||||
<i class="icon-braille drag-handle"></i>
|
||||
|
||||
<span class="template-name" data-bind="text: name"></span>
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-delete button-delete-transitions" data-bind="css: {'delete-access': deleteAccess}, click: function(oTemplate) { $root.deleteTemplate(oTemplate); }">
|
||||
<span class="i18n" data-i18n="SETTINGS_TEMPLATES/DELETING_ASK"></span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="delete-template" data-bind="visible: !deleteAccess(), click: function (oTemplate) { $root.templateForDeletion(oTemplate); }">
|
||||
<i class="icon-trash"></i>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -70,7 +70,7 @@ Options -Indexes
|
|||
define('APP_DATA_FOLDER_PATH_UNIX', str_replace('\\', '/', APP_DATA_FOLDER_PATH));
|
||||
|
||||
$sSalt = @file_get_contents(APP_DATA_FOLDER_PATH.'SALT.php');
|
||||
$sData = @file_get_contents(APP_DATA_FOLDER_PATH.'DATA.php');
|
||||
$sData = file_exists(APP_DATA_FOLDER_PATH.'DATA.php') ? @file_get_contents(APP_DATA_FOLDER_PATH.'DATA.php') : '';
|
||||
$sInstalled = @file_get_contents(APP_DATA_FOLDER_PATH.'INSTALLED');
|
||||
|
||||
// installation checking data folder
|
||||
|
|
@ -129,29 +129,20 @@ Options -Indexes
|
|||
unset($sCheckName, $sCheckFilePath, $sCheckFolder, $sTest);
|
||||
}
|
||||
|
||||
if (false === $sSalt || false === $sData)
|
||||
if (false === $sSalt)
|
||||
{
|
||||
if (false === $sSalt)
|
||||
{
|
||||
// random salt
|
||||
$sSalt = '<'.'?php //'
|
||||
.md5(microtime(true).rand(1000, 5000))
|
||||
.md5(microtime(true).rand(5000, 9999))
|
||||
.md5(microtime(true).rand(1000, 5000));
|
||||
// random salt
|
||||
$sSalt = '<'.'?php //'
|
||||
.md5(microtime(true).rand(1000, 5000))
|
||||
.md5(microtime(true).rand(5000, 9999))
|
||||
.md5(microtime(true).rand(1000, 5000));
|
||||
|
||||
@file_put_contents(APP_DATA_FOLDER_PATH.'SALT.php', $sSalt);
|
||||
}
|
||||
|
||||
if (false === $sData)
|
||||
{
|
||||
// random data folder name
|
||||
$sData = '<'.'?php //'.md5(microtime(true).rand(1000, 9999));
|
||||
@file_put_contents(APP_DATA_FOLDER_PATH.'DATA.php', $sData);
|
||||
}
|
||||
@file_put_contents(APP_DATA_FOLDER_PATH.'SALT.php', $sSalt);
|
||||
}
|
||||
|
||||
define('APP_SALT', md5($sSalt.APP_PRIVATE_DATA_NAME.$sSalt));
|
||||
define('APP_PRIVATE_DATA', APP_DATA_FOLDER_PATH.'_data_'.md5($sData).'/'.APP_PRIVATE_DATA_NAME.'/');
|
||||
define('APP_PRIVATE_DATA', APP_DATA_FOLDER_PATH.'_data_'.($sData ? md5($sData) : '').'/'.APP_PRIVATE_DATA_NAME.'/');
|
||||
|
||||
define('APP_PLUGINS_PATH', APP_PRIVATE_DATA.'plugins/');
|
||||
|
||||
if (APP_VERSION !== $sInstalled || (APP_MULTIPLY && !@is_dir(APP_PRIVATE_DATA)))
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Sign"
|
|||
BUTTON_ENCRYPT = "Encrypt"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "Двустъпков тест за удостоверяване"
|
||||
LABEL_CODE = "Код"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
|
|||
TITLE_PRIVATE = "Private"
|
||||
TITLE_PUBLIC = "Public"
|
||||
DELETING_ASK = "Are you sure?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Keyboard shortcuts help"
|
||||
|
|
|
|||
|
|
@ -319,6 +319,12 @@ BUTTON_SIGN = "Podepsat"
|
|||
BUTTON_ENCRYPT = "Šifrovat"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Podepsat a šifrovat"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "Dvoufázové ověření"
|
||||
LABEL_CODE = "Kód"
|
||||
|
|
@ -600,6 +606,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Generovat OpenPGP Klíče"
|
|||
TITLE_PRIVATE = "Soukromý"
|
||||
TITLE_PUBLIC = "Veřejný"
|
||||
DELETING_ASK = "Opravdu to chcete?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Klávesové zkratky"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Unterschreiben"
|
|||
BUTTON_ENCRYPT = "Verschlüsseln"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Unterschreiben und verschlüsseln"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "Zwei-Faktor-Authentifizierung"
|
||||
LABEL_CODE = "Code"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "OpenPGP-Schlüssel generieren"
|
|||
TITLE_PRIVATE = "Privat"
|
||||
TITLE_PUBLIC = "Öffentlich"
|
||||
DELETING_ASK = "Sind Sie sicher?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Tastaturkürzel-Hilfe"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Sign"
|
|||
BUTTON_ENCRYPT = "Encrypt"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "2-Step verification test"
|
||||
LABEL_CODE = "Code"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
|
|||
TITLE_PRIVATE = "Private"
|
||||
TITLE_PUBLIC = "Public"
|
||||
DELETING_ASK = "Are you sure?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Keyboard shortcuts help"
|
||||
|
|
|
|||
|
|
@ -607,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
|
|||
TITLE_PRIVATE = "Private"
|
||||
TITLE_PUBLIC = "Public"
|
||||
DELETING_ASK = "Are you sure?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Keyboard shortcuts help"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Firmar"
|
|||
BUTTON_ENCRYPT = "Encriptar"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Firmar and encriptar"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "Prueba de verificación de 2 pasos"
|
||||
LABEL_CODE = "Código"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Generar llaves OpenPGP"
|
|||
TITLE_PRIVATE = "Privado"
|
||||
TITLE_PUBLIC = "Público"
|
||||
DELETING_ASK = "¿Está usted seguro?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Ayuda de atajos de teclado"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Signer"
|
|||
BUTTON_ENCRYPT = "Chiffrer"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Signer et chiffrer"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "Test d'authentification en deux étapes"
|
||||
LABEL_CODE = "Code"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Générer les clefs OpenPGP"
|
|||
TITLE_PRIVATE = "Privé"
|
||||
TITLE_PUBLIC = "Public"
|
||||
DELETING_ASK = "Êtes-vous sûr ?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Aide pour les raccourcis clavier"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Aláírás"
|
|||
BUTTON_ENCRYPT = "Titkosítás"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Aláírás és titkosítás"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "2-lépés hitelesítés teszt"
|
||||
LABEL_CODE = "Kód"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "OpenPGP kulcs generálás"
|
|||
TITLE_PRIVATE = "Private"
|
||||
TITLE_PUBLIC = "Public"
|
||||
DELETING_ASK = "Are you sure?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Keyboard shortcuts help"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Sign"
|
|||
BUTTON_ENCRYPT = "Encrypt"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "2-Step verification test"
|
||||
LABEL_CODE = "Code"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
|
|||
TITLE_PRIVATE = "Private"
|
||||
TITLE_PUBLIC = "Public"
|
||||
DELETING_ASK = "Are you sure?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Keyboard shortcuts help"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Firma"
|
|||
BUTTON_ENCRYPT = "Cifra"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Firma e cifra"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "Verifica a 2 fattori"
|
||||
LABEL_CODE = "Codice"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Genera chiave OpenPGP"
|
|||
TITLE_PRIVATE = "Privata"
|
||||
TITLE_PUBLIC = "Pubblica"
|
||||
DELETING_ASK = "Sei sicuro?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Aiuto sulle scorciatoie da tastiera"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Sign"
|
|||
BUTTON_ENCRYPT = "Encrypt"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "2-Step verification test"
|
||||
LABEL_CODE = "Code"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
|
|||
TITLE_PRIVATE = "Private"
|
||||
TITLE_PUBLIC = "Public"
|
||||
DELETING_ASK = "Are you sure?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Keyboard shortcuts help"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Sign"
|
|||
BUTTON_ENCRYPT = "Encrypt"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "2-Step verification test"
|
||||
LABEL_CODE = "Code"
|
||||
|
|
@ -598,6 +604,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
|
|||
TITLE_PRIVATE = "Private"
|
||||
TITLE_PUBLIC = "Public"
|
||||
DELETING_ASK = "Are you sure?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Keyboard shortcuts help"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Pasirašyti"
|
|||
BUTTON_ENCRYPT = "Šifruoti"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Pasirašyti ir šifruoti"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "2-jų žingsnių patikrinimo bandymas"
|
||||
LABEL_CODE = "Kodas"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Sukurti OpenPGP raktus"
|
|||
TITLE_PRIVATE = "Privatus"
|
||||
TITLE_PUBLIC = "Viešas"
|
||||
DELETING_ASK = "Jūs įsitikinę?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Sparčiųjų klavišų pagalba"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Sign"
|
|||
BUTTON_ENCRYPT = "Encrypt"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "2-Step verification test"
|
||||
LABEL_CODE = "Code"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
|
|||
TITLE_PRIVATE = "Private"
|
||||
TITLE_PUBLIC = "Public"
|
||||
DELETING_ASK = "Are you sure?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Keyboard shortcuts help"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Ondertekenen"
|
|||
BUTTON_ENCRYPT = "Versleutelen"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Ondertekenen en versleutelen"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "2-Stap verificatie test"
|
||||
LABEL_CODE = "Code"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Genereer OpenPGP sleutels"
|
|||
TITLE_PRIVATE = "Privé sleutel"
|
||||
TITLE_PUBLIC = "Publieke sleutel"
|
||||
DELETING_ASK = "Weet u het zeker?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Hulp bij toetsenbord sneltoetsen"
|
||||
|
|
|
|||
|
|
@ -319,6 +319,12 @@ BUTTON_SIGN = "Signer"
|
|||
BUTTON_ENCRYPT = "Krypter"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Signer og krypter"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "2-stegs verifiseringstest"
|
||||
LABEL_CODE = "Kode"
|
||||
|
|
@ -600,6 +606,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Generer OpenPGP-nøkler"
|
|||
TITLE_PRIVATE = "Privat"
|
||||
TITLE_PUBLIC = "Offentlig"
|
||||
DELETING_ASK = "Er du sikker?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Tastatursnarveier"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Podpisz"
|
|||
BUTTON_ENCRYPT = "Szyfruj"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Podpisz i szyfruj"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "Test autoryzacji dwuskładnikowej"
|
||||
LABEL_CODE = "Kod"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Generuj klucz OpenPGP"
|
|||
TITLE_PRIVATE = "Prywatny"
|
||||
TITLE_PUBLIC = "Publiczny"
|
||||
DELETING_ASK = "Czy na pewno chcesz usunąć?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Skróty klawiaturowe"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Assinar"
|
|||
BUTTON_ENCRYPT = "Criptografar"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Assinar e criptografar"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "Testar verificação de duas etapas"
|
||||
LABEL_CODE = "Código"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Gerar chave OpenPGP"
|
|||
TITLE_PRIVATE = "Privado"
|
||||
TITLE_PUBLIC = "Público"
|
||||
DELETING_ASK = "Você tem certeza?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Ajuda com os atalhos de teclado"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Assinar"
|
|||
BUTTON_ENCRYPT = "Encriptar"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Assinar e encriptar"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "Teste de verificação em 2-Etapas"
|
||||
LABEL_CODE = "Código"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Gerar chaves OpenPGP"
|
|||
TITLE_PRIVATE = "Privada"
|
||||
TITLE_PUBLIC = "Pública"
|
||||
DELETING_ASK = "Tem a certeza?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Ajuda para atalhos de teclado"
|
||||
|
|
|
|||
|
|
@ -319,6 +319,12 @@ BUTTON_SIGN = "Sign"
|
|||
BUTTON_ENCRYPT = "Encrypt"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "2-Step verification test"
|
||||
LABEL_CODE = "Code"
|
||||
|
|
@ -600,6 +606,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
|
|||
TITLE_PRIVATE = "Private"
|
||||
TITLE_PUBLIC = "Public"
|
||||
DELETING_ASK = "Are you sure?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Keyboard shortcuts help"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Подпись"
|
|||
BUTTON_ENCRYPT = "Шифрование"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Подпись и шифрование"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "Тест двухфакторной верификации"
|
||||
LABEL_CODE = "Код"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Новый OpenPGP ключ"
|
|||
TITLE_PRIVATE = "Приватный"
|
||||
TITLE_PUBLIC = "Публичный"
|
||||
DELETING_ASK = "Точно?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Сочетания клавиш"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Sign"
|
|||
BUTTON_ENCRYPT = "Encrypt"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "2-Step verification test"
|
||||
LABEL_CODE = "Code"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
|
|||
TITLE_PRIVATE = "Private"
|
||||
TITLE_PUBLIC = "Public"
|
||||
DELETING_ASK = "Are you sure?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Keyboard shortcuts help"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Singera"
|
|||
BUTTON_ENCRYPT = "Kryptera"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Signera och kryptera"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "2-Stegs verifikations test"
|
||||
LABEL_CODE = "Kod"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Skapa OpenPGP nycklar"
|
|||
TITLE_PRIVATE = "Privat"
|
||||
TITLE_PUBLIC = "Publik"
|
||||
DELETING_ASK = "Är du säker?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Tangentbordsgenvägar hjälp"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Giriş Yap"
|
|||
BUTTON_ENCRYPT = "Şifrele"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Giriş Yap and şifrele"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "2-Basamaklı doğrulama testi"
|
||||
LABEL_CODE = "Kod"
|
||||
|
|
@ -599,6 +605,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "OpenPGP Key Oluştur"
|
|||
TITLE_PRIVATE = "Private"
|
||||
TITLE_PUBLIC = "Public"
|
||||
DELETING_ASK = "Eminmisiniz?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Klavye kısayolları yardım"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Підпис"
|
|||
BUTTON_ENCRYPT = "Шифрування"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Підпис и шифрування"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "Тест двофакторної верифікації"
|
||||
LABEL_CODE = "Код"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "Новий OpenPGP ключ"
|
|||
TITLE_PRIVATE = "Приватний"
|
||||
TITLE_PUBLIC = "Публічний"
|
||||
DELETING_ASK = "Впевнені?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Сполучення клавіш"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Sign"
|
|||
BUTTON_ENCRYPT = "Encrypt"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "两步验证测试"
|
||||
LABEL_CODE = "代码"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "生成 OpenPGP 密匙"
|
|||
TITLE_PRIVATE = "私有"
|
||||
TITLE_PUBLIC = "公开"
|
||||
DELETING_ASK = "你确定吗?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Keyboard shortcuts help"
|
||||
|
|
|
|||
|
|
@ -320,6 +320,12 @@ BUTTON_SIGN = "Sign"
|
|||
BUTTON_ENCRYPT = "Encrypt"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
|
||||
|
||||
[POPUPS_MESSAGE_OPEN_PGP]
|
||||
TITLE_MESSAGE_OPEN_PGP = "OpenPGP Decrypt"
|
||||
LABEL_KEY = "Private Key"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_DECRYPT = "Decrypt"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "兩步驗證測試"
|
||||
LABEL_CODE = "代碼"
|
||||
|
|
@ -601,6 +607,7 @@ BUTTON_GENERATE_OPEN_PGP_KEYS = "生成 OpenPGP 密鑰"
|
|||
TITLE_PRIVATE = "私有"
|
||||
TITLE_PUBLIC = "公開"
|
||||
DELETING_ASK = "你確定嗎?"
|
||||
GENERATE_ONLY_HTTPS = "HTTPS only"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Keyboard shortcuts help"
|
||||
|
|
|
|||
1
vendors/openpgp/openpgp-0.10.1.worker.min.js
vendored
Normal file
1
vendors/openpgp/openpgp-0.10.1.worker.min.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
/*! OpenPGPjs.org this is LGPL licensed code, see LICENSE/our website for more information.- v0.10.1 - 2015-02-13 */!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(){function a(a){window.openpgp.crypto.random.randomBuffer.size<d&&postMessage({event:"request-seed"}),postMessage(a)}function b(a){var b=window.openpgp.packet.List.fromStructuredClone(a);return new window.openpgp.key.Key(b)}function c(a){var b=window.openpgp.packet.List.fromStructuredClone(a);return new window.openpgp.message.Message(b)}window={},Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),importScripts("openpgp.min.js");var d=4e4,e=6e4;window.openpgp.crypto.random.randomBuffer.init(e),self.onmessage=function(d){var e=null,f=null,g=d.data,h=!1;switch(g.event){case"configure":for(var i in g.config)window.openpgp.config[i]=g.config[i];break;case"seed-random":g.buf instanceof Uint8Array||(g.buf=new Uint8Array(g.buf)),window.openpgp.crypto.random.randomBuffer.set(g.buf);break;case"encrypt-message":g.keys.length||(g.keys=[g.keys]),g.keys=g.keys.map(b),window.openpgp.encryptMessage(g.keys,g.text).then(function(b){a({event:"method-return",data:b})})["catch"](function(b){a({event:"method-return",err:b.message})});break;case"sign-and-encrypt-message":g.publicKeys.length||(g.publicKeys=[g.publicKeys]),g.publicKeys=g.publicKeys.map(b),g.privateKey=b(g.privateKey),window.openpgp.signAndEncryptMessage(g.publicKeys,g.privateKey,g.text).then(function(b){a({event:"method-return",data:b})})["catch"](function(b){a({event:"method-return",err:b.message})});break;case"decrypt-message":g.privateKey=b(g.privateKey),g.message=c(g.message.packets),window.openpgp.decryptMessage(g.privateKey,g.message).then(function(b){a({event:"method-return",data:b})})["catch"](function(b){a({event:"method-return",err:b.message})});break;case"decrypt-and-verify-message":g.privateKey=b(g.privateKey),g.publicKeys.length||(g.publicKeys=[g.publicKeys]),g.publicKeys=g.publicKeys.map(b),g.message=c(g.message.packets),window.openpgp.decryptAndVerifyMessage(g.privateKey,g.publicKeys,g.message).then(function(b){a({event:"method-return",data:b})})["catch"](function(b){a({event:"method-return",err:b.message})});break;case"sign-clear-message":g.privateKeys=g.privateKeys.map(b),window.openpgp.signClearMessage(g.privateKeys,g.text).then(function(b){a({event:"method-return",data:b})})["catch"](function(b){a({event:"method-return",err:b.message})});break;case"verify-clear-signed-message":g.publicKeys.length||(g.publicKeys=[g.publicKeys]),g.publicKeys=g.publicKeys.map(b);var j=window.openpgp.packet.List.fromStructuredClone(g.message.packets);g.message=new window.openpgp.cleartext.CleartextMessage(g.message.text,j),window.openpgp.verifyClearSignedMessage(g.publicKeys,g.message).then(function(b){a({event:"method-return",data:b})})["catch"](function(b){a({event:"method-return",err:b.message})});break;case"generate-key-pair":window.openpgp.generateKeyPair(g.options).then(function(b){b.key=b.key.toPacketlist(),a({event:"method-return",data:b})})["catch"](function(b){a({event:"method-return",err:b.message})});break;case"decrypt-key":try{g.privateKey=b(g.privateKey),h=g.privateKey.decrypt(g.password),h?e=g.privateKey.toPacketlist():f="Wrong password"}catch(k){f=k.message}a({event:"method-return",data:e,err:f});break;case"decrypt-key-packet":try{g.privateKey=b(g.privateKey),g.keyIds=g.keyIds.map(window.openpgp.Keyid.fromClone),h=g.privateKey.decryptKeyPacket(g.keyIds,g.password),h?e=g.privateKey.toPacketlist():f="Wrong password"}catch(k){f=k.message}a({event:"method-return",data:e,err:f});break;default:throw new Error("Unknown Worker Event.")}}},{}]},{},[1]);
|
||||
Loading…
Add table
Add a link
Reference in a new issue