108 lines
3.1 KiB
JavaScript
108 lines
3.1 KiB
JavaScript
/************************************************************************
|
|
* This file is part of EspoCRM.
|
|
*
|
|
* EspoCRM - Open Source CRM application.
|
|
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
|
* Website: https://www.espocrm.com
|
|
*
|
|
* EspoCRM is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* EspoCRM is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
|
*
|
|
* The interactive user interfaces in modified source and object code versions
|
|
* of this program must display Appropriate Legal Notices, as required under
|
|
* Section 5 of the GNU General Public License version 3.
|
|
*
|
|
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
|
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
|
************************************************************************/
|
|
|
|
define('page-title', [], function () {
|
|
|
|
/**
|
|
* A page-title util.
|
|
*
|
|
* @class
|
|
* @name Class
|
|
* @memberOf module:page-title
|
|
*
|
|
* @param {module:models/settings.Class} config A config.
|
|
*/
|
|
let PageTitle = function (config) {
|
|
/**
|
|
* @private
|
|
* @type {boolean}
|
|
*/
|
|
this.displayNotificationNumber = config.get('newNotificationCountInTitle') || false;
|
|
|
|
/**
|
|
* @private
|
|
* @type {string}
|
|
*/
|
|
this.title = $('head title').text() || '';
|
|
|
|
/**
|
|
* @private
|
|
* @type {number}
|
|
*/
|
|
this.notificationNumber = 0;
|
|
};
|
|
|
|
_.extend(PageTitle.prototype, /** @lends module:page-title.Class# */{
|
|
|
|
/**
|
|
* Set a title.
|
|
*
|
|
* @param {string} title A title.
|
|
*/
|
|
setTitle: function (title) {
|
|
this.title = title;
|
|
|
|
this.update();
|
|
},
|
|
|
|
/**
|
|
* Set a notification number.
|
|
*
|
|
* @param {number} notificationNumber A number.
|
|
*/
|
|
setNotificationNumber: function (notificationNumber) {
|
|
this.notificationNumber = notificationNumber;
|
|
|
|
if (this.displayNotificationNumber) {
|
|
this.update();
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Update a page title.
|
|
*/
|
|
update: function () {
|
|
let value = '';
|
|
|
|
if (this.displayNotificationNumber && this.notificationNumber) {
|
|
value = '(' + this.notificationNumber.toString() + ')';
|
|
|
|
if (this.title) {
|
|
value += ' ';
|
|
}
|
|
}
|
|
|
|
value += this.title;
|
|
|
|
$('head title').text(value);
|
|
},
|
|
});
|
|
|
|
return PageTitle;
|
|
});
|