เด
เดญเดฟเดตเดพเดฆเตเดฏเดเตเดเตพ, เดธเดเดพเดเตเดเดณเต. เดเดจเตเดฑเต เดเตเดเดฌเดพเดฑเตเดฑเต เดธเตเตผเดตเดฑเตเดเดณเดฟเตฝ เดฎเดจเตเดนเดฐเด
เดธเตเดนเตเดคเตเดคเตเดเตเดเตพ เด
เดตเตผเดเตเดเดพเดฏเดฟ เดเดฐเต เดตเดฟเดเดธเดจ เดซเดพเด เดธเดเตเดเตเดเดฐเดฟเดเตเดเดพเตป เดเดจเตเดจเตเดเต เดเดตเดถเตเดฏเดชเตเดชเตเดเตเดเต, เดเดจเตเดฑเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เดเตเดเดชเตเดฒเตเดฑเตเดฑเตเดเตพ เดตเดฒเดฟเดเตเดเดฟเดเตเดจเตเดจเดคเดฟเดจเตเดชเดเดฐเด, เดฐเดธเดเดฐเดฎเดพเดฏ เดเดฐเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดเดพเตป เดเตผเดคเตเดคเต.
เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดเดฑเดตเดฟเดเดเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดเตเตบเดซเดฟเดเดฑเตเดทเดจเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดธเตเดทเตโเดเดฟเดเตเด zip เดเตผเดเตเดเตเดตเต Chrome เดเดตเดฟเดเตเดฏเดพเดฃเต เดตเดฒเดฟเดเตเดเตเดจเตเดจเดคเต เดเดจเตเดจเต เดเดพเตป เดจเตเดเตเดเดฟ, เด
เดตเดฟเดเต "เดฌเตเดฒเตเดฌเต:" เดเดจเตเดจเต เดคเตเดเดเตเดเตเดจเตเดจ เดเดฐเต เดตเดฟเดฒเดพเดธเด เดเดจเดฟเดเตเดเดพเดฏเดฟ เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, เดถเตเดถเต. เดธเตเดตเดจเด เดตเดดเดฟเดฏเดฟเตฝ เดเดจเตเดจเตเด เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒเตเดจเตเดจเต เดเดคเดฟเดจเดเด เดตเตเดฏเดเตเดคเดฎเดพเดฏเดฟเดเตเดเตเดฃเตเดเต, เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เดเดคเตเดฒเตเดฒเดพเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเต js เดเดฃเต. เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, zip เดเตผเดเตเดเตเดตเต, เดเตเดฒเดฏเดจเตเดฑเต, เดฌเตเดฐเตเดธเตผ, เดเดพเดตเดพเดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเดจเตเดจเดฟเดตเดฏเดพเตฝ เดธเตเดทเตเดเดฟเดเตเดเดชเตเดชเตเดเตเดเดคเดพเดฃเต. เด. เดชเดฆเตเดงเดคเดฟ เดเดจเตเดจเดคเดพเดฃเต เดญเดเดเดฟ
เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดซเตเตผเดเตเดเต เดเตเดฏเตเดค เดถเตเดทเด, เดเดจเตเดฑเต เดเดชเตเดทเดจเตเดเตพ เดเดจเตเดคเดพเดฃเตเดจเตเดจเต เดเดพเตป เดเดฟเดจเตเดคเดฟเดเตเดเดพเตป เดคเตเดเดเตเดเดฟ. เดชเดฟเดจเตเดจเดพเดฎเตเดชเตเดฑเดเตเดเดณเดฟเดฒเตเดฒเดพเดคเต, เดถเตเดฆเตเดงเดฎเดพเดฏ เดเดฐเต เดซเตเดฐเดฃเตเดเต เดเตปเดกเต เดเดฏเดฟเดคเตเดคเดจเตเดจเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดจเดฟเดฒเดจเดฟเตฝเดเตเดเดฃเดฎเตเดจเตเดจ เดตเตเดฏเดตเดธเตเดฅเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเดฟเดเดฒเดฟเดเตเดเดพเตป เดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ เดเดจเตเดจเดคเต เดเตเดฎเดคเดฒ เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดเตเดเดฟ. เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดเดฑเตเดฑเดตเตเด เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเดฐเดฟเดนเดพเดฐเด เดจเตเดกเตเดเตเดเตพ เดตเดฒเดฟเดเตเดเดฟเดเตเดเดฏเตเด เดจเตเดฐเดฟเดเตเดเตเดณเตเดณ เดฒเดฟเดเตเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดเตเตบเดซเดฟเดเดฑเตเดเดณเตเดณเตเดณ เดเดฐเต เดเตผเดเตเดเตเดตเต เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดจเดฟเตผเดฌเดจเตเดงเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด เดเดจเตเดจเดคเดพเดฃเต.
เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ, เดงเดพเดฐเดพเดณเด เดเดชเตเดทเดจเตเดเตพ เดเดฒเตเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดเตเดเตเดคเตฝ เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เดชเดฑเดเตเดเดพเตฝ เดเดจเตเดจเต เดฎเดพเดคเตเดฐเด เดฎเดจเดธเตเดธเดฟเตฝ เดตเดจเตเดจเต. เดเดฐเต zip เดเตผเดเตเดเตเดตเต เดฒเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดเตเดเตพ เดเตเตบเดซเดฟเดเดฑเตเดเตพ เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เดธเตเตผเดตเตผ เดเตบเดธเตเดณเดฟเดฒเตเดเตเดเต เดชเดเตผเดคเตเดคเดพเตป เดเดดเดฟเดฏเตเดจเตเดจ เดเดฐเต เดฒเดฟเดเตเดเต เดจเตเดเตเดเดฏเตเด เดตเตเดฃเด.
เดคเดคเตเดซเดฒเดฎเดพเดฏเตเดฃเตเดเดพเดเตเดจเตเดจ เดธเดฟเดชเตเดชเต เดเตผเดเตเดเตเดตเดฟเดฒเต เดจเดฟเดฐเดตเดงเดฟ เดเตเดเตโเดธเตโเดฑเตเดฑเต เดซเดฏเดฒเตเดเตพเดเตเดเต เดเตเดฑเดเตเดเต เดญเดพเดฐเดฎเตเดฃเตเดเต, เด
เดเตเดทเดฐเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดเตเดฑเดเตเดเต เดเดฟเดฒเตเดฌเตเดฑเตเดฑเตเดเตพ. เดเตบเดธเตเดณเดฟเตฝ เดเดฎเดพเตปเดกเต เดเดณเตเดณ เดธเตเตผเดตเดฑเดฟเตฝ เดเดฏเดฟเดฐเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดเดจเดฑเตเดฑเตเดฑเต เดเตเดฏเตเดค zip เดเตผเดเตเดเตเดตเดฟเตฝ เดจเดฟเดจเตเดจเต base64 เดธเตเดเตเดฐเดฟเดเดเต เดเดเตเดคเตเดคเต เดฌเดซเดฑเดฟเดฒเตเดเตเดเต เดเดฑเดฟเดฏเตเด เดเดจเตเดจเดคเดพเดฏเดฟเดฐเตเดจเตเดจเต เดตเตเดฏเดเตเดคเดฎเดพเดฏ เดชเดฐเดฟเดนเดพเดฐเด.
echo 'base64string' | base64 --decode > config.zip
เดเดคเต zip เดซเดฏเตฝ เดจเดฎเตเดเตเดเต เดเดฃเตเดเดพเดเตเดเดพเด.
เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดเดฑเดตเดฟเดเดเตเดเดณเดฟเตฝ เดเดฐเต zip เดเตผเดเตเดเตเดตเต เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดฐเตเดคเดฟ เดเดเตเดเตพ เดเดพเดฃเตเดจเตเดจเต:
$scope.downloadZip = function() {
var zip = new JSZip();
var sourceCodes = $window.document.querySelectorAll('main .file .code.source');
for (var i = 0; i < sourceCodes.length; i++) {
var sourceCode = sourceCodes[i];
var name = sourceCode.dataset.filename;
var content = sourceCode.children[0].children[0].innerText;
if (!$scope.isSymlink() && name.match(/^sites-available//)) {
name = name.replace(/^sites-available//, 'sites-enabled/');
}
zip.file(name, content);
if (name.match(/^sites-available//)) {
zip.file(name.replace(/^sites-available//, 'sites-enabled/'), '../' + name, {
unixPermissions: parseInt('120755', 8),
});
}
}
zip.generateAsync({
type: 'blob',
platform: 'UNIX',
}).then(function(content) {
saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip');
});
gtag('event', $scope.getDomains().join(','), {
event_category: 'download_zip',
});
};
เดฒเตเดฌเตเดฐเดฑเดฟ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฒเตเดฒเดพเด เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฃเต
saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip');
เดธเดฟเดชเตเดชเต เดเตผเดเตเดเตเดตเดฟเดจเตเดฑเต เดซเดฒเดฎเดพเดฏเตเดฃเตเดเดพเดเตเดจเตเดจ เดฌเตเดฒเตเดฌเต เดเดฌเตโเดเดเตเดฑเตเดฑเดพเดฃเต เดเดณเตเดณเดเดเตเดเด.
เดถเดฐเดฟ, เดเดพเตป เดเตเดฏเตเดฏเตเดฃเตเดเดคเต เด เดคเดฟเดจเดเตเดคเตเดคเดพเดฏเดฟ เดฎเดฑเตเดฑเตเดฐเต เดฌเดเตเดเตบ เดเตเตผเดเตเดเตเดเดฏเดพเดฃเต, เดเดพเตป เด เดคเดฟเตฝ เดเตเดฒเดฟเดเตเดเต เดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ, เดคเดคเตเดซเดฒเดฎเดพเดฏเตเดฃเตเดเดพเดเตเดจเตเดจ zip เดเตผเดเตเดเตเดตเต เดฌเตเดฐเตเดธเดฑเดฟเตฝ เดธเดเดฐเดเตเดทเดฟเดเตเดเดฟเดฒเตเดฒ, เดชเดเตเดทเต เด เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด เดเดฟเดธเตเดฅเดพเดจ64 เดเตเดกเต เดจเตเดเตเด. เด เตฝเดชเตเดชเด เดเตเดฑเตเดฑเดฟเดเตเดเดฑเดเตเดเดฟเดฏ เดถเตเดทเด, เดเดฐเต เดกเตเตบเดฒเตเดกเตเดธเดฟเดชเตเดชเดฟเดจเต เดชเดเดฐเด เดเดจเดฟเดเตเดเต 2 เดฐเตเดคเดฟเดเตพ เดฒเดญเดฟเดเตเดเต:
$scope.downloadZip = function() {
generateZip(function (content) {
saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip');
});
gtag('event', $scope.getDomains().join(','), {
event_category: 'download_zip',
});
};
$scope.downloadBase64 = function() {
generateZip(function (content) {
var reader = new FileReader();
reader.readAsDataURL(content);
reader.onloadend = function() {
var base64 = reader.result.replace(/^data:.+;base64,/, '');
// ะฒ ะฟะตัะตะผะตะฝะฝะพะน base64 ะบะฐะบ ัะฐะท ะฝัะถะฝัะน ะผะฝะต zip ะฐัั
ะธะฒ ะฒ ะฒะธะดะต base64 ัััะพะบะธ
}
});
gtag('event', $scope.getDomains().join(','), {
event_category: 'download_base64',
});
};
เดจเดฟเดเตเดเตพ เดถเตเดฐเดฆเตเดงเดฟเดเตเดเดฟเดฐเดฟเดเตเดเดพเด, เดเดพเตป zip เดเตผเดเตเดเตเดตเดฟเดจเตเดฑเต เดเดจเดฑเตเดทเตป เดคเดจเตเดจเต เดธเตเดตเดเดพเดฐเตเดฏ เดเดจเดฑเตเดฑเตเดฑเตเดธเดฟเดชเตเดชเต เดฐเตเดคเดฟเดฏเดฟเดฒเตเดเตเดเตเด เดฎเดฑเตเดฑเตเด เดจเตเดเตเดเดฟ. เดเดคเดพเดฃเต AngularJS, เดฐเดเดฏเดฟเดคเดพเดตเต เดคเดจเตเดจเต เดเตเตพเดฌเดพเดเตเดเตเดเดณเดฟเตฝ เดเดฑเดเตเดเตเดจเดฟเตฝเดเตเดเตเดจเตเดจเต, เดตเดพเดเตเดฆเดพเดจเดเตเดเดณเดฟเดฒเตเดเต เด
เดคเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดฟเดฏเดฟเดฒเตเดฒ. เดกเตเตบเดฒเตเดกเตเดธเดฟเดชเตเดชเต เดเดชเตเดชเตเดดเตเด เดเดฐเต เดเดเตเดเตเดชเตเดเตเดเดพเดฏเดฟ เดธเตเดตเตเดเดธเต เดเตเดฏเตเดคเต, เดกเตเตบเดฒเตเดกเตเดฌเตเดธเต64 เด
เดฒเตเดชเด เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏ เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดเตเดฏเตเดคเต. เดเดเตเดเตพ เดเดฐเต เดซเดฏเตฝ เดฑเตเดกเตผ เดเดฌเตโเดเดเตเดฑเตเดฑเต เดธเตเดทเตโเดเดฟเดเตเดเตเดจเตเดจเต, เด
เดคเต html5-เตฝ เดเดเตเดเตพเดเตเดเต เดตเดจเตเดจเต, เด
เดคเต เดเดคเดฟเดจเดเด เดคเดจเตเดจเต เดถเดฐเดฟเดฏเดพเดฃเต
position: absolute;
z-index: -1;
opacity: 0;
เดเดพเดดเตเดเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดเดเด เดฎเดฑเดฏเตโเดเตเดเดพเดจเตเด เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด เดคเต เดชเตเดเดฟเตฝ เดเดเดพเดจเตเด เดเดคเต เดเดจเตเดจเต เด เดจเตเดตเดฆเดฟเดเตเดเต. เดตเตเดฏเตโเดฒ, เดเดพเดธเตเดเต เดชเตเตผเดคเตเดคเดฟเดฏเดพเดฏเดฟ, เดเดพเตป เดเดจเตเดฑเต เดฌเดเตเดเดฃเดฟเตฝ เดเตเดฒเดฟเดเตเดเตเดเตเดฏเตเดคเดชเตเดชเตเตพ, เดเดคเตเดชเตเดฒเตเดณเตเดณ เดเดฐเต เดตเดฐเดฟ เดฌเดซเดฑเดฟเตฝ เดธเตเดฅเดพเดชเดฟเดเตเดเต:
echo 'base64string' | base64 --decode > config.zip
เด
เดคเต เดเดพเตป เดธเตเตผเดตเดฑเดฟเดฒเต เดเตบเดธเตเดณเดฟเตฝ เดเดเตเดเดฟเดเตเดเต, เดเดเตป เดคเดจเตเดจเต เดเดฒเตเดฒเดพ เดเตเตบเดซเดฟเดเดฑเตเดเดณเตเดฎเตเดณเตเดณ เดเดฐเต zip เดเตผเดเตเดเตเดตเต เดฒเดญเดฟเดเตเดเต.
เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดเดพเตป เดฐเดเดฏเดฟเดคเดพเดตเดฟเดจเต เดเดฐเต เดชเตเตพ เด
เดญเตเดฏเตผเดคเตเดฅเดจ เด
เดฏเดเตเดเต, เดเดพเดฐเดฃเด... เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดธเดเตเดตเดตเตเด เดธเดเตเดตเดตเตเดฎเดพเดฃเต, เดฐเดเดฏเดฟเดคเดพเดตเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด
เดชเตโเดกเตเดฑเตเดฑเตเดเตพ เดเดพเดฃเดพเดจเตเด เดเดจเตเดฑเต เดธเตเดตเดจเตเดคเด เดฌเดเตเดเตบ เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเดพเดจเตเด เดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต) เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดณเตเดณเดตเตผเดเตเดเต, เดเดคเต เดเดคเดพ.
เดเดฒเตเดฒเดพเดตเตผเดเตเดเตเด เดตเดฟเดเดธเดจเด เดเดถเดเดธเดฟเดเตเดเตเดจเตเดจเต)
เด
เดตเดฒเดเดฌเด: www.habr.com