芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/www/cloud.pulsehost.co.uk/modules/ContactsWebclient/js/models/CGroupModel.js
'use strict'; var ko = require('knockout'), AddressUtils = require('%PathToCoreWebclientModule%/js/utils/Address.js'), TextUtils = require('%PathToCoreWebclientModule%/js/utils/Text.js'), App = require('%PathToCoreWebclientModule%/js/App.js') ; /** * @constructor */ function CGroupModel() { this.isNew = ko.observable(false); this.readOnly = ko.observable(false); this.uuid = ko.observable(''); this.idUser = ko.observable(0); this.name = ko.observable(''); this.isOrganization = ko.observable(false); this.email = ko.observable(''); this.country = ko.observable(''); this.city = ko.observable(''); this.company = ko.observable(''); this.fax = ko.observable(''); this.phone = ko.observable(''); this.state = ko.observable(''); this.street = ko.observable(''); this.web = ko.observable(''); this.zip = ko.observable(''); this.edited = ko.observable(false); this.nameFocused = ko.observable(false); this.canBeSave = ko.computed(function () { return '' !== this.name(); }, this); this.newContactsInGroupCount = ko.observable(0); this.newContactsInGroupHint = ko.computed(function () { var iCount = this.newContactsInGroupCount(); return this.isNew() && 0 < iCount ? TextUtils.i18n('%MODULENAME%/INFO_NEW_GROUP_CONTACTS_PLURAL', { 'COUNT' : iCount }, null, iCount) : ''; }, this); } CGroupModel.prototype.getFullEmail = function () { return AddressUtils.getFullEmail(this.name(), this.email()); }; CGroupModel.prototype.clear = function () { this.isNew(false); this.uuid(''); this.idUser(0); this.name(''); this.nameFocused(false); this.edited(false); this.isOrganization(false); this.email(''); this.country(''); this.city(''); this.company(''); this.fax(''); this.phone(''); this.state(''); this.street(''); this.web(''); this.zip(''); }; CGroupModel.prototype.populate = function (oGroup) { this.isNew(oGroup.isNew()); this.uuid(oGroup.uuid()); this.idUser(oGroup.idUser()); this.name(oGroup.name()); this.nameFocused(oGroup.nameFocused()); this.edited(oGroup.edited()); this.isOrganization(oGroup.isOrganization()); this.email(oGroup.email()); this.country(oGroup.country()); this.city(oGroup.city()); this.company(oGroup.company()); this.fax(oGroup.fax()); this.phone(oGroup.phone()); this.state(oGroup.state()); this.street(oGroup.street()); this.web(oGroup.web()); this.zip(oGroup.zip()); }; CGroupModel.prototype.switchToNew = function () { this.clear(); this.edited(true); this.isNew(true); if (!App.isMobile()) { this.nameFocused(true); } }; CGroupModel.prototype.switchToView = function () { this.edited(false); }; /** * @param {array} aContactUUIDs * @return {Object} */ CGroupModel.prototype.toObject = function (aContactUUIDs) { return { 'UUID': this.uuid(), 'Name': this.name(), 'IsOrganization': this.isOrganization() ? '1' : '0', 'Email': this.email(), 'Country': this.country(), 'City': this.city(), 'Company': this.company(), 'Fax': this.fax(), 'Phone': this.phone(), 'State': this.state(), 'Street': this.street(), 'Web': this.web(), 'Zip': this.zip(), 'Contacts': aContactUUIDs }; }; module.exports = CGroupModel;