芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/www/cloud.pulsehost.co.uk/modules/MailWebclient/js/popups/CreateFolderPopup.js
'use strict'; var _ = require('underscore'), ko = require('knockout'), TextUtils = require('%PathToCoreWebclientModule%/js/utils/Text.js'), Utils = require('%PathToCoreWebclientModule%/js/utils/Common.js'), Api = require('%PathToCoreWebclientModule%/js/Api.js'), CAbstractPopup = require('%PathToCoreWebclientModule%/js/popups/CAbstractPopup.js'), AccountList = require('modules/%ModuleName%/js/AccountList.js'), Ajax = require('modules/%ModuleName%/js/Ajax.js'), MailCache = require('modules/%ModuleName%/js/Cache.js') ; /** * @constructor */ function CCreateFolderPopup() { CAbstractPopup.call(this); this.isCreating = ko.observable(false); MailCache.folderListLoading.subscribe(function () { var bListLoading = MailCache.folderListLoading.indexOf(MailCache.editedFolderList().iAccountId) !== -1; if (!bListLoading && this.isCreating()) { if (_.isFunction(this.fCallback)) { this.fCallback(this.folderName(), this.parentFolder()); } this.isCreating(false); this.closePopup(); } }, this); this.options = ko.observableArray([]); this.parentFolder = ko.observable(''); this.folderName = ko.observable(''); this.folderNameFocus = ko.observable(false); this.fCallback = null; this.defaultOptionsAfterRender = Utils.defaultOptionsAfterRender; } _.extendOwn(CCreateFolderPopup.prototype, CAbstractPopup.prototype); CCreateFolderPopup.prototype.PopupTemplate = '%ModuleName%_Settings_CreateFolderPopup'; /** * @param {Function} fCallback */ CCreateFolderPopup.prototype.onOpen = function (fCallback) { this.options(MailCache.editedFolderList().getOptions(TextUtils.i18n('%MODULENAME%/LABEL_NO_PARENT_FOLDER'), true, false, true)); this.fCallback = fCallback; this.folderName(''); this.folderNameFocus(true); }; CCreateFolderPopup.prototype.create = function () { var sParentFolder = (this.parentFolder() === '' ? MailCache.editedFolderList().sNamespaceFolder : this.parentFolder()), oParameters = { 'AccountID': AccountList.editedId(), 'FolderNameInUtf8': this.folderName(), 'FolderParentFullNameRaw': sParentFolder, 'Delimiter': MailCache.editedFolderList().sDelimiter } ; this.folderNameFocus(false); this.isCreating(true); Ajax.send('CreateFolder', oParameters, this.onCreateFolderResponse, this); }; /** * @param {Object} oResponse * @param {Object} oRequest */ CCreateFolderPopup.prototype.onCreateFolderResponse = function (oResponse, oRequest) { if (!oResponse.Result) { this.isCreating(false); Api.showErrorByCode(oResponse, TextUtils.i18n('%MODULENAME%/ERROR_CREATE_FOLDER')); } else { MailCache.getFolderList(AccountList.editedId()); } }; CCreateFolderPopup.prototype.cancelPopup = function () { if (!this.isCreating()) { if (_.isFunction(this.fCallback)) { this.fCallback('', ''); } this.closePopup(); } }; module.exports = new CCreateFolderPopup();