From 26f7ff14c2bcfbb4ebcfd1dee6a0c85b9dfac3d1 Mon Sep 17 00:00:00 2001 From: maxkadushkin Date: Mon, 28 Aug 2023 18:28:35 +0300 Subject: [PATCH] [common] remove unused scripts --- .../mobile/lib/component/HsbColorPicker.js | 326 ------------ .../mobile/lib/component/ThemeColorPalette.js | 266 ---------- apps/common/mobile/lib/view/Collaboration.js | 493 ------------------ apps/common/mobile/utils/SharedSettings.js | 79 --- apps/common/mobile/utils/extendes.js | 92 ---- apps/common/mobile/utils/utils.js | 129 ----- 6 files changed, 1385 deletions(-) delete mode 100644 apps/common/mobile/lib/component/HsbColorPicker.js delete mode 100644 apps/common/mobile/lib/component/ThemeColorPalette.js delete mode 100644 apps/common/mobile/lib/view/Collaboration.js delete mode 100644 apps/common/mobile/utils/SharedSettings.js delete mode 100644 apps/common/mobile/utils/extendes.js delete mode 100644 apps/common/mobile/utils/utils.js diff --git a/apps/common/mobile/lib/component/HsbColorPicker.js b/apps/common/mobile/lib/component/HsbColorPicker.js deleted file mode 100644 index 23e51b8e98..0000000000 --- a/apps/common/mobile/lib/component/HsbColorPicker.js +++ /dev/null @@ -1,326 +0,0 @@ -/* - * (c) Copyright Ascensio System SIA 2010-2023 - * - * This program is a free software product. You can redistribute it and/or - * modify it under the terms of the GNU Affero General Public License (AGPL) - * version 3 as published by the Free Software Foundation. In accordance with - * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect - * that Ascensio System SIA expressly excludes the warranty of non-infringement - * of any third-party rights. - * - * This program is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For - * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html - * - * You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * The interactive user interfaces in modified source and object code versions - * of the Program must display Appropriate Legal Notices, as required under - * Section 5 of the GNU AGPL version 3. - * - * Pursuant to Section 7(b) of the License you must retain the original Product - * logo when distributing the program. Pursuant to Section 7(e) we decline to - * grant you any rights under trademark law for use of our trademarks. - * - * All the Product's GUI elements, including illustrations and icon sets, as - * well as technical writing content are licensed under the terms of the - * Creative Commons Attribution-ShareAlike 4.0 International. See the License - * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode - * - */ - -/** - * HsbColorPicker.js - * - * Created by Julia Svinareva on 02/10/19 - * Copyright (c) 2019 Ascensio System SIA. All rights reserved. - * - */ - -if (Common === undefined) - var Common = {}; - -Common.UI = Common.UI || {}; - -define([ - 'jquery', - 'underscore', - 'backbone' -], function ($, _, Backbone) { - 'use strict'; - - Common.UI.HsbColorPicker = Backbone.View.extend(_.extend({ - options: { - color: '#000000' - }, - template: _.template([ - '
', - '
', - '<%=circlesColors%>', - '
', - '
', - '
', - '
', - '
', - '
', - '
', - '
', - '
', - '
', - '', - '
', - '
' - ].join('')), - - initialize : function(options) { - var me = this, - el = $(me.el); - me.currentColor = options.color; - if(_.isObject(me.currentColor)) { - me.currentColor = me.currentColor.color; - } - if (!me.currentColor) { - me.currentColor = me.options.color; - } - if (me.currentColor === 'transparent') { - me.currentColor = 'ffffff'; - } - var colorRgb = me.colorHexToRgb(me.currentColor); - me.currentHsl = me.colorRgbToHsl(colorRgb[0],colorRgb[1],colorRgb[2]); - me.currentHsb = me.colorHslToHsb(me.currentHsl[0],me.currentHsl[1],me.currentHsl[2]); - me.currentHue = []; - - me.options = _({}).extend(me.options, options); - me.render(); - }, - - render: function () { - var me = this; - - var total = 256, - circles = ''; - for (var i = total; i > 0; i -= 1) { - var angle = i * Math.PI / (total / 2); - var hue = 360 / total * i; - circles += ''; - } - - (me.$el || $(me.el)).html(me.template({ - circlesColors: circles, - scope: me, - phone: Common.SharedSettings.get('phone'), - android: Common.SharedSettings.get('android') - })); - - $('.current-color-hsb-preview').css({'background-color': '#' + me.currentColor}); - - this.afterRender(); - - return me; - }, - - afterRender: function () { - this.$colorPicker = $('.color-picker-wheel'); - this.$colorPicker.on({ - 'touchstart': this.handleTouchStart.bind(this), - 'touchmove': this.handleTouchMove.bind(this), - 'touchend': this.handleTouchEnd.bind(this) - }); - $('#add-new-color').single('click', _.bind(this.onClickAddNewColor, this)); - this.updateCustomColor(); - }, - - colorHexToRgb: function(hex) { - var h = hex.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function(m, r, g, b) { return (r + r + g + g + b + b)}); - var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(h); - return result - ? result.slice(1).map(function (n) { return parseInt(n, 16)}) - : null; - }, - - colorRgbToHsl: function(r, g, b) { - r /= 255; - g /= 255; - b /= 255; - var max = Math.max(r, g, b); - var min = Math.min(r, g, b); - var d = max - min; - var h; - if (d === 0) h = 0; - else if (max === r) h = ((g - b) / d) % 6; - else if (max === g) h = (b - r) / d + 2; - else if (max === b) h = (r - g) / d + 4; - var l = (min + max) / 2; - var s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1)); - if (h < 0) h = 360 / 60 + h; - return [h * 60, s, l]; - }, - - colorHslToHsb: function(h, s, l) { - var HSB = {h: h, s: 0, b: 0}; - var HSL = {h: h, s: s, l: l}; - var t = HSL.s * (HSL.l < 0.5 ? HSL.l : 1 - HSL.l); - HSB.b = HSL.l + t; - HSB.s = HSL.l > 0 ? 2 * t / HSB.b : HSB.s; - return [HSB.h, HSB.s, HSB.b]; - }, - - colorHsbToHsl: function(h, s, b) { - var HSL = {h: h, s: 0, l: 0}; - var HSB = { h: h, s: s, b: b }; - HSL.l = (2 - HSB.s) * HSB.b / 2; - HSL.s = HSL.l && HSL.l < 1 ? HSB.s * HSB.b / (HSL.l < 0.5 ? HSL.l * 2 : 2 - HSL.l * 2) : HSL.s; - return [HSL.h, HSL.s, HSL.l]; - }, - - colorHslToRgb: function(h, s, l) { - var c = (1 - Math.abs(2 * l - 1)) * s; - var hp = h / 60; - var x = c * (1 - Math.abs((hp % 2) - 1)); - var rgb1; - if (Number.isNaN(h) || typeof h === 'undefined') { - rgb1 = [0, 0, 0]; - } else if (hp <= 1) rgb1 = [c, x, 0]; - else if (hp <= 2) rgb1 = [x, c, 0]; - else if (hp <= 3) rgb1 = [0, c, x]; - else if (hp <= 4) rgb1 = [0, x, c]; - else if (hp <= 5) rgb1 = [x, 0, c]; - else if (hp <= 6) rgb1 = [c, 0, x]; - var m = l - (c / 2); - var result = rgb1.map(function (n) { - return Math.max(0, Math.min(255, Math.round(255 * (n + m)))); - }); - return result; - }, - - colorRgbToHex: function(r, g, b) { - var result = [r, g, b].map( function (n) { - var hex = n.toString(16); - return hex.length === 1 ? ('0' + hex) : hex; - }).join(''); - return ('#' + result); - }, - - setHueFromWheelCoords: function (x, y) { - var wheelCenterX = this.wheelRect.left + this.wheelRect.width / 2; - var wheelCenterY = this.wheelRect.top + this.wheelRect.height / 2; - var angleRad = Math.atan2(y - wheelCenterY, x - wheelCenterX); - var angleDeg = angleRad * 180 / Math.PI + 90; - if (angleDeg < 0) angleDeg += 360; - angleDeg = 360 - angleDeg; - this.currentHsl[0] = angleDeg; - this.updateCustomColor(); - }, - - setSBFromSpecterCoords: function (x, y) { - var s = (x - this.specterRect.left) / this.specterRect.width; - var b = (y - this.specterRect.top) / this.specterRect.height; - s = Math.max(0, Math.min(1, s)); - b = 1 - Math.max(0, Math.min(1, b)); - - this.currentHsb = [this.currentHsl[0], s, b]; - this.currentHsl = this.colorHsbToHsl(this.currentHsl[0], s, b); - this.updateCustomColor(); - }, - - handleTouchStart: function (e) { - if (this.isMoved || this.isTouched) return; - this.touchStartX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; - this.touchCurrentX = this.touchStartX; - this.touchStartY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; - this.touchCurrentY = this.touchStartY; - var $targetEl = $(e.target); - this.wheelHandleIsTouched = $targetEl.closest('.color-picker-wheel-handle').length > 0; - this.wheelIsTouched = $targetEl.closest('circle').length > 0; - this.specterHandleIsTouched = $targetEl.closest('.color-picker-sb-spectrum-handle').length > 0; - if (!this.specterHandleIsTouched) { - this.specterIsTouched = $targetEl.closest('.color-picker-sb-spectrum').length > 0; - } - if (this.wheelIsTouched) { - this.wheelRect = this.$el.find('.color-picker-wheel')[0].getBoundingClientRect(); - this.setHueFromWheelCoords(this.touchStartX, this.touchStartY); - } - if (this.specterIsTouched) { - this.specterRect = this.$el.find('.color-picker-sb-spectrum')[0].getBoundingClientRect(); - this.setSBFromSpecterCoords(this.touchStartX, this.touchStartY); - } - if (this.specterHandleIsTouched || this.specterIsTouched) { - this.$el.find('.color-picker-sb-spectrum-handle').addClass('color-picker-sb-spectrum-handle-pressed'); - } - }, - - handleTouchMove: function (e) { - if (!(this.wheelIsTouched || this.wheelHandleIsTouched) && !(this.specterIsTouched || this.specterHandleIsTouched)) return; - this.touchCurrentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; - this.touchCurrentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; - e.preventDefault(); - if (!this.isMoved) { - // First move - this.isMoved = true; - if (this.wheelHandleIsTouched) { - this.wheelRect = this.$el.find('.color-picker-wheel')[0].getBoundingClientRect(); - } - if (this.specterHandleIsTouched) { - this.specterRect = this.$el.find('.color-picker-sb-spectrum')[0].getBoundingClientRect(); - } - } - if (this.wheelIsTouched || this.wheelHandleIsTouched) { - this.setHueFromWheelCoords(this.touchCurrentX, this.touchCurrentY); - } - if (this.specterIsTouched || this.specterHandleIsTouched) { - this.setSBFromSpecterCoords(this.touchCurrentX, this.touchCurrentY); - } - }, - - handleTouchEnd: function () { - this.isMoved = false; - if (this.specterIsTouched || this.specterHandleIsTouched) { - this.$el.find('.color-picker-sb-spectrum-handle').removeClass('color-picker-sb-spectrum-handle-pressed'); - } - this.wheelIsTouched = false; - this.wheelHandleIsTouched = false; - this.specterIsTouched = false; - this.specterHandleIsTouched = false; - }, - - updateCustomColor: function (first) { - var specterWidth = this.$el.find('.color-picker-sb-spectrum')[0].offsetWidth, - specterHeight = this.$el.find('.color-picker-sb-spectrum')[0].offsetHeight, - wheelSize = this.$el.find('.color-picker-wheel')[0].offsetWidth, - wheelHalfSize = wheelSize / 2, - angleRad = this.currentHsl[0] * Math.PI / 180, - handleSize = wheelSize / 6, - handleHalfSize = handleSize / 2, - tX = wheelHalfSize - Math.sin(angleRad) * (wheelHalfSize - handleHalfSize) - handleHalfSize, - tY = wheelHalfSize - Math.cos(angleRad) * (wheelHalfSize - handleHalfSize) - handleHalfSize; - this.$el.find('.color-picker-wheel-handle') - .css({'background-color': 'hsl(' + this.currentHsl[0] + ', 100%, 50%)'}) - .css({transform: 'translate(' + tX + 'px,' + tY + 'px)'}); - - this.$el.find('.color-picker-sb-spectrum') - .css({'background-color': 'hsl(' + this.currentHsl[0] + ', 100%, 50%)'}); - - if (this.currentHsb && this.currentHsl) { - this.$el.find('.color-picker-sb-spectrum-handle') - .css({'background-color': 'hsl(' + this.currentHsl[0] + ', ' + (this.currentHsl[1] * 100) + '%,' + (this.currentHsl[2] * 100) + '%)'}) - .css({transform: 'translate(' + specterWidth * this.currentHsb[1] + 'px, ' + specterHeight * (1 - this.currentHsb[2]) + 'px)'}); - } - var color = this.colorHslToRgb(this.currentHsl[0], this.currentHsl[1], this.currentHsl[2]); - this.currentColor = this.colorRgbToHex(color[0], color[1], color[2]); - $('.new-color-hsb-preview').css({'background-color': this.currentColor}); - - }, - - onClickAddNewColor: function() { - var color = this.currentColor; - if (color) { - if (color.charAt(0) === '#') { - color = color.substr(1); - } - this.trigger('addcustomcolor', this, color); - } - } - - }, Common.UI.HsbColorPicker || {})); -}); \ No newline at end of file diff --git a/apps/common/mobile/lib/component/ThemeColorPalette.js b/apps/common/mobile/lib/component/ThemeColorPalette.js deleted file mode 100644 index 7c9b28d54d..0000000000 --- a/apps/common/mobile/lib/component/ThemeColorPalette.js +++ /dev/null @@ -1,266 +0,0 @@ -/* - * (c) Copyright Ascensio System SIA 2010-2023 - * - * This program is a free software product. You can redistribute it and/or - * modify it under the terms of the GNU Affero General Public License (AGPL) - * version 3 as published by the Free Software Foundation. In accordance with - * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect - * that Ascensio System SIA expressly excludes the warranty of non-infringement - * of any third-party rights. - * - * This program is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For - * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html - * - * You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * The interactive user interfaces in modified source and object code versions - * of the Program must display Appropriate Legal Notices, as required under - * Section 5 of the GNU AGPL version 3. - * - * Pursuant to Section 7(b) of the License you must retain the original Product - * logo when distributing the program. Pursuant to Section 7(e) we decline to - * grant you any rights under trademark law for use of our trademarks. - * - * All the Product's GUI elements, including illustrations and icon sets, as - * well as technical writing content are licensed under the terms of the - * Creative Commons Attribution-ShareAlike 4.0 International. See the License - * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode - * - */ - -/** - * ThemeColorPalette.js - * - * Created by Alexander Yuzhin on 10/27/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -if (Common === undefined) - var Common = {}; - -Common.UI = Common.UI || {}; - -define([ - 'jquery', - 'underscore', - 'backbone' -], function ($, _, Backbone) { - 'use strict'; - - Common.UI.ThemeColorPalette = Backbone.View.extend(_.extend({ - options: { - dynamiccolors: 10, - standardcolors: 10, - themecolors: 10, - effects: 5, - allowReselect: true, - transparent: false, - value: '000000', - cls: '', - style: '' - }, - - template: _.template([ - '<% var me = this; %>', - '
', - '', - '
' - ].join('')), - - // colorRe: /(?:^|\s)color-(.{6})(?:\s|$)/, - // selectedCls: 'selected', - // - initialize : function(options) { - var me = this, - el = $(me.el); - - me.options = _({}).extend(me.options, options); - me.render(); - - el.find('.color-palette a').on('click', _.bind(me.onColorClick, me)); - }, - - render: function () { - var me = this, - themeColors = [], - row = -1, - standartColors = Common.Utils.ThemeColor.getStandartColors(); - - // Disable duplicate - if ($(me.el).find('.list-block.color-palette').length > 0) { - return - } - - _.each(Common.Utils.ThemeColor.getEffectColors(), function(effect, index) { - if (0 == index % me.options.themecolors) { - themeColors.push([]); - row++ - } - themeColors[row].push(effect); - }); - - // custom color - this.dynamicColors = Common.localStorage.getItem('asc.'+Common.localStorage.getId()+'.colors.custom'); - this.dynamicColors = this.dynamicColors ? this.dynamicColors.toLowerCase().split(',') : []; - - - $(me.el).append(me.template({ - themeColors: themeColors, - standartColors: standartColors, - dynamicColors: me.dynamicColors - })); - - return me; - }, - - isColor: function(val) { - return typeof(val) == 'string' && (/[0-9A-Fa-f]{6}/).test(val); - }, - isTransparent: function(val) { - return typeof(val) == 'string' && (val=='transparent'); - }, - - isEffect: function(val) { - return (typeof(val) == 'object' && val.effectId !== undefined); - }, - - onColorClick:function (e) { - var me = this, - el = $(me.el), - $target = $(e.currentTarget); - - var color = $target.data('color').toString(), - effectId = $target.data('effectid'); - - if (color !== 'empty') { - el.find('.color-palette a').removeClass('active'); - $target.addClass('active'); - me.currentColor = color; - if (effectId!==undefined) { - me.currentColor = {color: color, effectId: effectId}; - } - me.trigger('select', me, me.currentColor); - } else { - me.fireEvent('customcolor', me); - } - }, - - select: function(color) { - var me = this, - el = $(me.el); - - me.currentColor = color; - - me.clearSelection(); - - if (_.isObject(color)) { - if (! _.isUndefined(color.effectId)) { - el.find('a[data-effectid=' + color.effectId + ']').addClass('active'); - } else if (! _.isUndefined(color.effectValue)) { - el.find('a[data-effectvalue=' + color.effectValue + '][data-color=' + color.color + ']').addClass('active'); - } - } else { - if (/#?[a-fA-F0-9]{6}/.test(color)) { - color = /#?([a-fA-F0-9]{6})/.exec(color)[1]; - } - - if (/^[a-fA-F0-9]{6}|transparent$/.test(color) || _.indexOf(Common.Utils.ThemeColor.getStandartColors(), color) > -1 || _.indexOf(this.dynamicColors, color) > -1) { - el.find('.standart-colors a[data-color=' + color + '], .dynamic-colors a[data-color=' + color + ']').first().addClass('active'); - } - - } - }, - - - clearSelection: function() { - $(this.el).find('.color-palette a').removeClass('active'); - }, - - saveDynamicColor: function(color) { - var key_name = 'asc.'+Common.localStorage.getId()+'.colors.custom'; - var colors = Common.localStorage.getItem(key_name); - colors = colors ? colors.split(',') : []; - if (colors.push(color) > this.options.dynamiccolors) colors.shift(); - this.dynamicColors = colors; - Common.localStorage.setItem(key_name, colors.join().toUpperCase()); - }, - - updateDynamicColors: function() { - var me = this; - var dynamicColors = Common.localStorage.getItem('asc.'+Common.localStorage.getId()+'.colors.custom'); - dynamicColors = dynamicColors ? dynamicColors.toLowerCase().split(',') : []; - var templateColors = ''; - _.each(dynamicColors, function(color) { - templateColors += ''; - }); - if (dynamicColors.length < this.options.dynamiccolors) { - for (var i = dynamicColors.length; i < this.options.dynamiccolors; i++) { - templateColors += ''; - } - } - $(this.el).find('.dynamic-colors .item-inner').html(_.template(templateColors)); - $(this.el).find('.color-palette .dynamic-colors a').on('click', _.bind(this.onColorClick, this)); - }, - - addNewDynamicColor: function(colorPicker, color) { - if (color) { - this.saveDynamicColor(color); - this.updateDynamicColors(); - this.trigger('select', this, color); - this.select(color); - } - }, - - textThemeColors: 'Theme Colors', - textStandartColors: 'Standard Colors', - textCustomColors: 'Custom Colors' - }, Common.UI.ThemeColorPalette || {})); -}); \ No newline at end of file diff --git a/apps/common/mobile/lib/view/Collaboration.js b/apps/common/mobile/lib/view/Collaboration.js deleted file mode 100644 index 3b49e7f56a..0000000000 --- a/apps/common/mobile/lib/view/Collaboration.js +++ /dev/null @@ -1,493 +0,0 @@ -/* - * (c) Copyright Ascensio System SIA 2010-2023 - * - * This program is a free software product. You can redistribute it and/or - * modify it under the terms of the GNU Affero General Public License (AGPL) - * version 3 as published by the Free Software Foundation. In accordance with - * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect - * that Ascensio System SIA expressly excludes the warranty of non-infringement - * of any third-party rights. - * - * This program is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For - * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html - * - * You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * The interactive user interfaces in modified source and object code versions - * of the Program must display Appropriate Legal Notices, as required under - * Section 5 of the GNU AGPL version 3. - * - * Pursuant to Section 7(b) of the License you must retain the original Product - * logo when distributing the program. Pursuant to Section 7(e) we decline to - * grant you any rights under trademark law for use of our trademarks. - * - * All the Product's GUI elements, including illustrations and icon sets, as - * well as technical writing content are licensed under the terms of the - * Creative Commons Attribution-ShareAlike 4.0 International. See the License - * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode - * - */ - -/** - * Collaboration.js - * - * Created by Julia Svinareva on 12/7/19 - * Copyright (c) 2019 Ascensio System SIA. All rights reserved. - * - */ - -if (Common === undefined) - var Common = {}; - -Common.Views = Common.Views || {}; - -define([ - 'text!common/mobile/lib/template/Collaboration.template', - 'jquery', - 'underscore', - 'backbone' -], function (settingsTemplate, $, _, Backbone) { - 'use strict'; - - Common.Views.Collaboration = Backbone.View.extend(_.extend((function() { - // private - - return { - - template: _.template(settingsTemplate), - - events: { - // - }, - - initialize: function() { - Common.NotificationCenter.on('collaborationcontainer:show', _.bind(this.initEvents, this)); - this.on('page:show', _.bind(this.updateItemHandlers, this)); - }, - - initEvents: function () { - var me = this; - - Common.Utils.addScrollIfNeed('.view[data-page=collaboration-root-view] .pages', '.view[data-page=collaboration-root-view] .page'); - me.updateItemHandlers(); - }, - - initControls: function() { - // - }, - - // Render layout - render: function() { - this.layout = $('
').append(this.template({ - android : Common.SharedSettings.get('android'), - phone : Common.SharedSettings.get('phone'), - orthography: Common.SharedSettings.get('sailfish'), - scope : this, - editor : !!window.DE ? 'DE' : !!window.PE ? 'PE' : 'SSE' - })); - - return this; - }, - - updateItemHandlers: function () { - var selectorsDynamicPage = [ - '.page[data-page=collaboration-root-view]', - '.page[data-page=reviewing-settings-view]' - ].map(function (selector) { - return selector + ' a.item-link[data-page]'; - }).join(', '); - - $(selectorsDynamicPage).single('click', _.bind(this.onItemClick, this)); - }, - - onItemClick: function (e) { - var $target = $(e.currentTarget), - page = $target.data('page'); - - if (page && page.length > 0 ) { - this.showPage(page); - } - }, - - rootLayout: function () { - if (this.layout) { - var $layour = this.layout.find('#collaboration-root-view'), - isPhone = Common.SharedSettings.get('phone'); - if (!this.canViewComments) { - $layour.find('#item-comments').remove(); - } - - return $layour.html(); - } - - return ''; - }, - - showPage: function(templateId, animate) { - var me = this; - var prefix = !!window.DE ? DE : !!window.PE ? PE : SSE; - var rootView = prefix.getController('Common.Controllers.Collaboration').rootView(); - - - if (rootView && this.layout) { - var $content = this.layout.find(templateId); - - // Android fix for navigation - if (Framework7.prototype.device.android) { - $content.find('.page').append($content.find('.navbar')); - } - - rootView.router.load({ - content: $content.html(), - animatePages: animate !== false - }); - - this.fireEvent('page:show', [this, templateId]); - } - }, - - //Comments - - sliceQuote: function(text) { - if (text) { - var sliced = text.slice(0, 100); - if (sliced.length < text.length) { - sliced += '...'; - return sliced; - } - return text; - } - }, - - renderViewComments: function(comments, indCurComment) { - var isAndroid = Framework7.prototype.device.android === true; - var me = this; - var res = false; - if ($('.page-view-comments .page-content').length > 0) { - var template = ''; - if (comments && comments.length > 0) { - var comment = comments[indCurComment]; - res = !comment.hide; - if (res) { - template = '
' + - '
    '; - template += '
  • ' + - '
    ' + - '
    '; - if (isAndroid) { - template += '
    ' + comment.userInitials + '
    '; - } - template += '
    ' + me.getUserName(comment.username) + '
    ' + - '
    ' + comment.date + '
    '; - if (isAndroid) { - template += '
    '; - } - template += '
    '; - if (!me.viewmode) { - template += '
    ' + - '
    ' + - '
    ' + - '
    '; - } - template += '
    '; - - if (comment.quote) template += '
    ' + me.sliceQuote(comment.quote) + '
    '; - template += '
    ' + comment.comment + '
    '; - if (comment.replys.length > 0) { - template += '
      '; - _.each(comment.replys, function (reply) { - if (!reply.hide) { - template += '
    • ' + - '
      ' + - '
      '; - if (isAndroid) { - template += '
      ' + reply.userInitials + '
      ' - } - template += '
      ' + me.getUserName(reply.username) + '
      ' + - '
      ' + reply.date + '
      ' + - '
      '; - if (isAndroid) { - template += '
      '; - } - if ((reply.editable || reply.removable) && !me.viewmode) { - template += '
      '; - } - template += '
      ' + - '
      ' + reply.reply + '
      ' + - '
    • '; - } - }); - template += '
    ' - } - - template += '
    ' + - '
  • '; - template += '
'; - $('.page-view-comments .page-content').html(template); - } - } - } - Common.Utils.addScrollIfNeed('.page-view-comments.page', '.page-view-comments .page-content'); - return res; - }, - - renderComments: function (comments) { - var me = this; - var $pageComments = $('.page-comments .page-content'); - if (!comments) { - if ($('.comment').length > 0) { - $('.comment').remove(); - } - var template = '
' + this.textNoComments + '
'; - $pageComments.append(_.template(template)); - } else { - if ($('#no-comments').length > 0) { - $('#no-comments').remove(); - } - var sortComments = _.sortBy(comments, 'time').reverse(); - var $listComments = $('#comments-list'), - items = []; - _.each(sortComments, function (comment) { - var itemTemplate = [ - '<% if (!item.hide) { %>', - '
  • ', - '
    ', - '
    ', - '<% if (android) { %>
    <%= item.userInitials %>
    <% } %>', - '
    <%= scope.getUserName(item.username) %>
    ', - '
    <%= item.date %>
    ', - '<% if (android) { %>
    <% } %>', - '
    ', - '<% if (!viewmode) { %>', - '
    ', - '
    ', - '
    ', - '
    ', - '<% } %>', - '
    ', - '<% if(item.quote) {%>', - '
    <%= quote %>
    ', - '<% } %>', - '
    <%= item.comment %>
    ', - '<% if(replys > 0) {%>', - '
      ', - '<% _.each(item.replys, function (reply) { %>', - '<% if (!reply.hide) { %>', - '
    • ', - '
      ', - '
      ', - '<% if (android) { %>
      <%= reply.userInitials %>
      <% } %>', - '
      <%= scope.getUserName(reply.username) %>
      ', - '
      <%= reply.date %>
      ', - '
      ', - '<% if (android) { %>
      <% } %>', - '<% if ((reply.editable || reply.removable) && !viewmode) { %>', - '
      ', - '<% } %>', - '
      ', - '
      <%= reply.reply %>
      ', - '
    • ', - '<% } %>', - '<% }); %>', - '
    ', - '<% } %>', - '
    ', - '
  • ', - '<% } %>' - ].join(''); - items.push(_.template(itemTemplate)({ - android: Framework7.prototype.device.android, - item: comment, - replys: comment.replys.length, - viewmode: me.viewmode, - quote: me.sliceQuote(comment.quote), - scope: me - })); - }); - $listComments.html(items.join('')); - } - }, - - renderEditComment: function(comment) { - var $pageEdit = $('.page-edit-comment .page-content'); - var isAndroid = Framework7.prototype.device.android === true; - var template = '
    ' + - (isAndroid ? '
    ' + comment.userInitials + '
    ' : '') + - '
    ' + this.getUserName(comment.username) + '
    ' + - '
    ' + comment.date + '
    ' + - (isAndroid ? '
    ' : '') + - '
    ' + - '
    '; - $pageEdit.html(_.template(template)); - }, - - renderAddReply: function(name, color, initials, date) { - var $pageAdd = $('.page-add-reply .page-content'); - var isAndroid = Framework7.prototype.device.android === true; - var template = '
    ' + - (isAndroid ? '
    ' + initials + '
    ' : '') + - '
    ' + this.getUserName(name) + '
    ' + - '
    ' + date + '
    ' + - (isAndroid ? '
    ' : '') + - '
    ' + - '
    '; - $pageAdd.html(_.template(template)); - }, - - renderEditReply: function(reply) { - var $pageEdit = $('.page-edit-reply .page-content'); - var isAndroid = Framework7.prototype.device.android === true; - var template = '
    ' + - (isAndroid ? '
    ' + reply.userInitials + '
    ' : '') + - '
    ' + this.getUserName(reply.username) + '
    ' + - '
    ' + reply.date + '
    ' + - (isAndroid ? '
    ' : '') + - '
    ' + - '
    '; - $pageEdit.html(_.template(template)); - }, - - //view comments - getTemplateAddReplyPopup: function(name, color, initial, date) { - var isAndroid = Framework7.prototype.device.android === true; - var template = ''; - return template; - }, - - getTemplateContainerViewComments: function() { - var template = '
    ' + - '
    ' + - '
    ' + - (!this.viewmode ? '' + this.textAddReply + '' : '') + - '
    ' + - '
    ' + - '' + - '' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    '; - return template; - }, - - getTemplateEditCommentPopup: function(comment) { - var isAndroid = Framework7.prototype.device.android === true; - var template = ''; - return template; - }, - - getTemplateEditReplyPopup: function(reply) { - var isAndroid = Framework7.prototype.device.android === true; - var template = ''; - return template; - }, - - renderChangeReview: function(change) { - var isAndroid = Framework7.prototype.device.android === true; - var template = (isAndroid ? '
    ' + change.initials + '
    ' : '') + - '
    ' + this.getUserName(change.user) + '
    ' + - '
    ' + change.date + '
    ' + - (isAndroid ? '
    ' : '') + - '
    ' + change.text + '
    '; - $('#current-change').html(_.template(template)); - }, - - getUserName: function (username) { - return Common.Utils.String.htmlEncode(AscCommon.UserInfoParser.getParsedName(username)); - }, - - textCollaboration: 'Collaboration', - textReviewing: 'Review', - textСomments: 'Сomments', - textBack: 'Back', - textReview: 'Track Changes', - textAcceptAllChanges: 'Accept All Changes', - textRejectAllChanges: 'Reject All Changes', - textDisplayMode: 'Display Mode', - textMarkup: 'Markup', - textFinal: 'Final', - textOriginal: 'Original', - textChange: 'Review Change', - textEditUsers: 'Users', - textNoComments: 'This document doesn\'t contain comments', - textEditСomment: 'Edit Comment', - textDone: 'Done', - textAddReply: 'Add Reply', - textEditReply: 'Edit Reply', - textCancel: 'Cancel', - textAllChangesEditing: 'All changes (Editing)', - textAllChangesAcceptedPreview: 'All changes accepted (Preview)', - textAllChangesRejectedPreview: 'All changes rejected (Preview)', - textAccept: 'Accept', - textReject: 'Reject' - } - })(), Common.Views.Collaboration || {})) -}); \ No newline at end of file diff --git a/apps/common/mobile/utils/SharedSettings.js b/apps/common/mobile/utils/SharedSettings.js deleted file mode 100644 index 489d44d042..0000000000 --- a/apps/common/mobile/utils/SharedSettings.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * (c) Copyright Ascensio System SIA 2010-2023 - * - * This program is a free software product. You can redistribute it and/or - * modify it under the terms of the GNU Affero General Public License (AGPL) - * version 3 as published by the Free Software Foundation. In accordance with - * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect - * that Ascensio System SIA expressly excludes the warranty of non-infringement - * of any third-party rights. - * - * This program is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For - * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html - * - * You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * The interactive user interfaces in modified source and object code versions - * of the Program must display Appropriate Legal Notices, as required under - * Section 5 of the GNU AGPL version 3. - * - * Pursuant to Section 7(b) of the License you must retain the original Product - * logo when distributing the program. Pursuant to Section 7(e) we decline to - * grant you any rights under trademark law for use of our trademarks. - * - * All the Product's GUI elements, including illustrations and icon sets, as - * well as technical writing content are licensed under the terms of the - * Creative Commons Attribution-ShareAlike 4.0 International. See the License - * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode - * - */ - -/** - * SharedSettings.js - * - * Created by Alexander Yuzhin on 10/7/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - - -if (Common === undefined) - var Common = {}; - -Common.SharedSettings = new (function() { - var _keys = []; - var _data = {}; - - var _set = function (key, value) { - if (_data[key] === void 0) { - _keys.push(key); - } - _data[key] = value; - }; - - var _get = function (key) { - return _data[key]; - }; - - var _remove = function (key) { - var index = _keys.indexOf(key); - if (index != -1) { - _keys.splice(index, 1); - } - - delete _data[key]; - }; - - var _size = function () { - return _keys.length; - }; - - return { - set: _set, - get: _get, - remove: _remove, - size: _size - }; -})(); diff --git a/apps/common/mobile/utils/extendes.js b/apps/common/mobile/utils/extendes.js deleted file mode 100644 index d632d0d867..0000000000 --- a/apps/common/mobile/utils/extendes.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * (c) Copyright Ascensio System SIA 2010-2023 - * - * This program is a free software product. You can redistribute it and/or - * modify it under the terms of the GNU Affero General Public License (AGPL) - * version 3 as published by the Free Software Foundation. In accordance with - * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect - * that Ascensio System SIA expressly excludes the warranty of non-infringement - * of any third-party rights. - * - * This program is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For - * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html - * - * You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * The interactive user interfaces in modified source and object code versions - * of the Program must display Appropriate Legal Notices, as required under - * Section 5 of the GNU AGPL version 3. - * - * Pursuant to Section 7(b) of the License you must retain the original Product - * logo when distributing the program. Pursuant to Section 7(e) we decline to - * grant you any rights under trademark law for use of our trademarks. - * - * All the Product's GUI elements, including illustrations and icon sets, as - * well as technical writing content are licensed under the terms of the - * Creative Commons Attribution-ShareAlike 4.0 International. See the License - * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode - * - */ - -/** - * extendes.js - * - * Created by Alexander Yuzhin on 10/14/16 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define( - ['jquery','underscore','framework7'], - function () { - //Extend String - if (!String.prototype.format) { - String.prototype.format = function() { - var args = arguments; - return this.replace(/{(\d+)}/g, function(match, number) { - return typeof args[number] != 'undefined' ? args[number] : match; - }); - }; - } - - //Extend jQuery functions - jQuery.fn.extend( { - single: function(types, selector, data, fn) { - return this.off(types).on(types, selector, data, fn); - } - }); - - //Extend Dom7 functions - var methods = ['addClass', 'toggleClass', 'removeClass']; - - _.each(methods, function (method, index) { - var originalMethod = Dom7.fn[method]; - - Dom7.fn[method] = function(className) { - var result = originalMethod.apply(this, arguments); - this.trigger(method, className); - return result; - }; - }); - - //Extend Underscope functions - _.buffered = function(func, buffer, scope, args) { - var timerId; - - return function() { - var callArgs = args || Array.prototype.slice.call(arguments, 0), - me = scope || this; - - if (timerId) { - clearTimeout(timerId); - } - - timerId = setTimeout(function(){ - func.apply(me, callArgs); - }, buffer); - }; - }; - } -); diff --git a/apps/common/mobile/utils/utils.js b/apps/common/mobile/utils/utils.js deleted file mode 100644 index d1f50e2b0b..0000000000 --- a/apps/common/mobile/utils/utils.js +++ /dev/null @@ -1,129 +0,0 @@ -/* - * (c) Copyright Ascensio System SIA 2010-2023 - * - * This program is a free software product. You can redistribute it and/or - * modify it under the terms of the GNU Affero General Public License (AGPL) - * version 3 as published by the Free Software Foundation. In accordance with - * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect - * that Ascensio System SIA expressly excludes the warranty of non-infringement - * of any third-party rights. - * - * This program is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For - * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html - * - * You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha - * street, Riga, Latvia, EU, LV-1050. - * - * The interactive user interfaces in modified source and object code versions - * of the Program must display Appropriate Legal Notices, as required under - * Section 5 of the GNU AGPL version 3. - * - * Pursuant to Section 7(b) of the License you must retain the original Product - * logo when distributing the program. Pursuant to Section 7(e) we decline to - * grant you any rights under trademark law for use of our trademarks. - * - * All the Product's GUI elements, including illustrations and icon sets, as - * well as technical writing content are licensed under the terms of the - * Creative Commons Attribution-ShareAlike 4.0 International. See the License - * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode - * - */ - -/** - * utils.js - * - * Created by Maxim.Kadushkin on 1/30/2017 - * Copyright (c) 2018 Ascensio System SIA. All rights reserved. - * - */ - -define([ - 'jquery', - 'underscore' -], function ($, _) { - 'use strict'; - - !Common && (Common = {}); - !Common.Utils && (Common.Utils = {}); - - Common.Utils.androidMenuTop = function ($popover, $target) { - $popover.css({left: '', top: ''}); - var modalWidth = $popover.width(); - var modalHeight = $popover.height(); - var modalAngleSize = 10; - var targetWidth = $target.outerWidth(); - var targetHeight = $target.outerHeight(); - var targetOffset = $target.offset(); - var targetParentPage = $target.parents('.page'); - if (targetParentPage.length > 0) { - targetOffset.top = targetOffset.top - targetParentPage[0].scrollTop; - } - - var windowHeight = $(window).height(); - var windowWidth = $(window).width(); - - var modalTop = 0; - var modalLeft = 0; - - // Top Position - var modalPosition = 'top';// material ? 'bottom' : 'top'; - { - if ((modalHeight + modalAngleSize) < targetOffset.top) { - // On top - modalTop = targetOffset.top - modalHeight - modalAngleSize; - } - else if ((modalHeight + modalAngleSize) < windowHeight - targetOffset.top - targetHeight) { - // On bottom - modalPosition = 'bottom'; - modalTop = targetOffset.top + targetHeight + modalAngleSize; - } - else { - // On middle - modalPosition = 'middle'; - modalTop = targetHeight / 2 + targetOffset.top - modalHeight / 2; - - if (modalTop <= 0) { - modalTop = 5; - } - else if (modalTop + modalHeight >= windowHeight) { - modalTop = windowHeight - modalHeight - 5; - } - } - - // Horizontal Position - if (modalPosition === 'top' || modalPosition === 'bottom') { - modalLeft = targetWidth / 2 + targetOffset.left - modalWidth / 2; - if (modalLeft < 5) modalLeft = 5; - if (modalLeft + modalWidth > windowWidth) modalLeft = windowWidth - modalWidth - 5; - } - else if (modalPosition === 'middle') { - modalLeft = targetOffset.left - modalWidth - modalAngleSize; - - if (modalLeft < 5 || (modalLeft + modalWidth > windowWidth)) { - if (modalLeft < 5) modalLeft = targetOffset.left + targetWidth + modalAngleSize; - if (modalLeft + modalWidth > windowWidth) modalLeft = windowWidth - modalWidth - 5; - } - } - } - - // Apply Styles - $popover.css({top: modalTop + 'px', left: modalLeft + 'px'}); - }; - - Common.Utils.addScrollIfNeed = function (targetSelector, containerSelector) { - if (Common.SharedSettings.get('sailfish')) { - _.delay(function(){ - var $targetEl = $(targetSelector); - var $containerEl = $(containerSelector); - - if ($targetEl.length == 0 || $containerEl == 0) { - return; - } - - $containerEl.css('height', 'auto'); - new IScroll(targetSelector); - }, 500); - } - }; -});