芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/www/cloud.pulsehost.co.uk/modules/MailMobileWebclient/js/views/MailView.js
'use strict'; var _ = require('underscore'), ko = require('knockout'), $ = require('jquery'), Routing = require('%PathToCoreWebclientModule%/js/Routing.js'), MailCache = require('modules/MailWebclient/js/Cache.js'), App = require('%PathToCoreWebclientModule%/js/App.js'), CFolderListView = require('modules/%ModuleName%/js/views/CFolderListView.js'), CMailView = require('modules/MailWebclient/js/views/CMailView.js') ; /** * @constructor */ function CMailMobileView() { CMailView.call(this); this.oFolderList = new CFolderListView(); this.messageList().ViewTemplate = '%ModuleName%_MessagesView'; this.messageList().oPageSwitcher.ViewTemplate = 'CoreMobileWebclient_PageSwitcherView' this.oBaseMessagePaneView.ViewTemplate = '%ModuleName%_MessagePaneView'; this.selectedPanel = ko.observable(Enums.MobilePanel.Items); MailCache.currentMessage.subscribe(function () { this.gotoMessagePane(); }, this); this.appsDom = null; this.showApps = ko.observable(false); this.init(); MailCache.currentAccountId.subscribe(function () { this.selectedPanel(Enums.MobilePanel.Items); }, this); App.broadcastEvent('%ModuleName%::ConstructView::after', {'Name': this.ViewConstructorName, 'View': this}); } _.extendOwn(CMailMobileView.prototype, CMailView.prototype); CMailMobileView.prototype.ViewTemplate = '%ModuleName%_MailView'; CMailMobileView.prototype.ViewConstructorName = 'CMailMobileView'; CMailMobileView.prototype.init = function () { this.selectedPanel.subscribe(function (value) { var bOpen = value === Enums.MobilePanel.Groups; $('body').toggleClass('with-panel-left-reveal', bOpen).toggleClass('panel-closing', !bOpen); }); var self = this; this.appsDom = $('#apps-list'); this.appsDom.on('click', function () { self.showApps(false); }); this.showApps.subscribe(function (value) { $('body').toggleClass('with-panel-right-cover', value); }, this); }; CMailMobileView.prototype.togleFolderList = function (oData, oEvent, bValue) { var bValue = bValue || this.selectedPanel() !== Enums.MobilePanel.Groups, newPanel = bValue ? Enums.MobilePanel.Groups : Enums.MobilePanel.Items ; this.changeSelectedPanel(newPanel); }; CMailMobileView.prototype.gotoFolderList = function () { this.changeSelectedPanel(Enums.MobilePanel.Groups); }; CMailMobileView.prototype.gotoMessageList = function () { this.changeSelectedPanel(Enums.MobilePanel.Items); if (MailCache.currentMessage()) { Routing.replaceHashWithoutMessageUid(MailCache.currentMessage().longUid()); } return true; }; CMailMobileView.prototype.gotoMessagePane = function () { if (MailCache.currentMessage()) { this.changeSelectedPanel(Enums.MobilePanel.View); } else { this.gotoMessageList(); } }; /** * @param {number} iPanel */ CMailMobileView.prototype.changeSelectedPanel = function (iPanel) { this.selectedPanel(iPanel); }; module.exports = new CMailMobileView();