Merge branch 'develop' into feature/for-bug-45489

This commit is contained in:
Maxim Kadushkin 2022-10-24 16:43:54 +03:00
commit d7f64f49dd
1520 changed files with 27440 additions and 14630 deletions

View file

@ -23,6 +23,7 @@
options: <advanced options>, options: <advanced options>,
key: 'key', key: 'key',
vkey: 'vkey', vkey: 'vkey',
referenceData: 'data for external paste',
info: { info: {
owner: 'owner name', owner: 'owner name',
folder: 'path to document', folder: 'path to document',
@ -218,6 +219,7 @@
hideRulers: false // hide or show rulers on first loading (presentation or document editor) hideRulers: false // hide or show rulers on first loading (presentation or document editor)
hideNotes: false // hide or show notes panel on first loading (presentation editor) hideNotes: false // hide or show notes panel on first loading (presentation editor)
uiTheme: 'theme-dark' // set interface theme: id or default-dark/default-light uiTheme: 'theme-dark' // set interface theme: id or default-dark/default-light
integrationMode: "embed" // turn off scroll to frame
}, },
coEditing: { coEditing: {
mode: 'fast', // <coauthoring mode>, 'fast' or 'strict'. if 'fast' and 'customization.autosave'=false -> set 'customization.autosave'=true. 'fast' - default for editor mode: 'fast', // <coauthoring mode>, 'fast' or 'strict'. if 'fast' and 'customization.autosave'=false -> set 'customization.autosave'=true. 'fast' - default for editor
@ -263,6 +265,7 @@
'onRequestCompareFile': <request file to compare>,// must call setRevisedFile method 'onRequestCompareFile': <request file to compare>,// must call setRevisedFile method
'onRequestSharingSettings': <request sharing settings>,// must call setSharingSettings method 'onRequestSharingSettings': <request sharing settings>,// must call setSharingSettings method
'onRequestCreateNew': <try to create document>, 'onRequestCreateNew': <try to create document>,
'onRequestReferenceData': <try to refresh external data>,
} }
} }
@ -326,6 +329,7 @@
_config.editorConfig.canRequestCompareFile = _config.events && !!_config.events.onRequestCompareFile; _config.editorConfig.canRequestCompareFile = _config.events && !!_config.events.onRequestCompareFile;
_config.editorConfig.canRequestSharingSettings = _config.events && !!_config.events.onRequestSharingSettings; _config.editorConfig.canRequestSharingSettings = _config.events && !!_config.events.onRequestSharingSettings;
_config.editorConfig.canRequestCreateNew = _config.events && !!_config.events.onRequestCreateNew; _config.editorConfig.canRequestCreateNew = _config.events && !!_config.events.onRequestCreateNew;
_config.editorConfig.canRequestReferenceData = _config.events && !!_config.events.onRequestReferenceData;
_config.frameEditorId = placeholderId; _config.frameEditorId = placeholderId;
_config.parentOrigin = window.location.origin; _config.parentOrigin = window.location.origin;
@ -490,6 +494,9 @@
if (target && _checkConfigParams()) { if (target && _checkConfigParams()) {
iframe = createIframe(_config); iframe = createIframe(_config);
if (_config.editorConfig.customization && _config.editorConfig.customization.integrationMode==='embed')
window.AscEmbed && window.AscEmbed.initWorker(iframe);
if (iframe.src) { if (iframe.src) {
var pathArray = iframe.src.split('/'); var pathArray = iframe.src.split('/');
this.frameOrigin = pathArray[0] + '//' + pathArray[2]; this.frameOrigin = pathArray[0] + '//' + pathArray[2];
@ -732,6 +739,13 @@
}); });
}; };
var _setReferenceData = function(data) {
_sendCommand({
command: 'setReferenceData',
data: data
});
};
var _serviceCommand = function(command, data) { var _serviceCommand = function(command, data) {
_sendCommand({ _sendCommand({
command: 'internalCommand', command: 'internalCommand',
@ -766,7 +780,8 @@
setFavorite : _setFavorite, setFavorite : _setFavorite,
requestClose : _requestClose, requestClose : _requestClose,
grabFocus : _grabFocus, grabFocus : _grabFocus,
blurFocus : _blurFocus blurFocus : _blurFocus,
setReferenceData : _setReferenceData
} }
}; };

View file

@ -138,6 +138,10 @@ if (window.Common === undefined) {
'grabFocus': function(data) { 'grabFocus': function(data) {
$me.trigger('grabfocus', data); $me.trigger('grabfocus', data);
},
'setReferenceData': function(data) {
$me.trigger('setreferencedata', data);
} }
}; };
@ -347,6 +351,10 @@ if (window.Common === undefined) {
_postMessage({event:'onRequestCreateNew'}); _postMessage({event:'onRequestCreateNew'});
}, },
requestReferenceData: function (data) {
_postMessage({event:'onRequestReferenceData', data: data});
},
pluginsReady: function() { pluginsReady: function() {
_postMessage({ event: 'onPluginsReady' }); _postMessage({ event: 'onPluginsReady' });
}, },

View file

@ -769,7 +769,7 @@ define([
return (this.cmpEl) ? this.cmpEl.is(":visible") : $(this.el).is(":visible"); return (this.cmpEl) ? this.cmpEl.is(":visible") : $(this.el).is(":visible");
}, },
updateHint: function(hint) { updateHint: function(hint, isHtml) {
this.options.hint = hint; this.options.hint = hint;
if (!this.rendered) return; if (!this.rendered) return;
@ -795,10 +795,12 @@ define([
this.btnMenuEl.removeData('bs.tooltip'); this.btnMenuEl.removeData('bs.tooltip');
this.btnEl.tooltip({ this.btnEl.tooltip({
html: !!isHtml,
title : (typeof hint == 'string') ? hint : hint[0], title : (typeof hint == 'string') ? hint : hint[0],
placement : this.options.hintAnchor||'cursor' placement : this.options.hintAnchor||'cursor'
}); });
this.btnMenuEl && this.btnMenuEl.tooltip({ this.btnMenuEl && this.btnMenuEl.tooltip({
html: !!isHtml,
title : hint[1], title : hint[1],
placement : this.options.hintAnchor||'cursor' placement : this.options.hintAnchor||'cursor'
}); });

View file

@ -393,18 +393,36 @@ define([
if (suspendEvents) if (suspendEvents)
this.suspendEvents(); this.suspendEvents();
this.extremeSeletedRec = record;
if (!this.multiSelect) { if (!this.multiSelect || ( !this.pressedShift && !this.pressedCtrl) || !this.currentSelectedRec || (this.pressedShift && this.currentSelectedRec == record)) {
_.each(this.store.where({selected: true}), function(rec){ _.each(this.store.where({selected: true}), function(rec){
rec.set({selected: false}); rec.set({selected: false});
}); });
if (record) { if (record) {
record.set({selected: true}); record.set({selected: true});
this.currentSelectedRec = record;
} }
} else { } else {
if (record) if (record) {
record.set({selected: !record.get('selected')}); if(this.pressedCtrl) {
record.set({selected: !record.get('selected')});
this.currentSelectedRec = record;
}
else if(this.pressedShift){
var me =this;
var inRange=false;
_.each(me.store.models, function(rec){
if(me.currentSelectedRec == rec || record == rec){
inRange = !inRange;
rec.set({selected: true});
}
else {
rec.set({selected: (inRange)});
}
});
}
}
} }
if (suspendEvents) if (suspendEvents)
@ -708,13 +726,22 @@ define([
onKeyDown: function (e, data) { onKeyDown: function (e, data) {
if ( this.disabled ) return; if ( this.disabled ) return;
if (data===undefined) data = e; if (data===undefined) data = e;
if (_.indexOf(this.moveKeys, data.keyCode)>-1 || data.keyCode==Common.UI.Keys.RETURN) {
if(this.multiSelect) {
if (data.keyCode == Common.UI.Keys.CTRL) {
this.pressedCtrl = true;
} else if (data.keyCode == Common.UI.Keys.SHIFT) {
this.pressedShift = true;
}
}
if (_.indexOf(this.moveKeys, data.keyCode)>-1 || data.keyCode==Common.UI.Keys.RETURN) {
data.preventDefault(); data.preventDefault();
data.stopPropagation(); data.stopPropagation();
var rec = this.getSelectedRec(); var rec =(this.multiSelect) ? this.extremeSeletedRec : this.getSelectedRec();
if (this.lastSelectedRec===null) if (this.lastSelectedRec === null)
this.lastSelectedRec = rec; this.lastSelectedRec = rec;
if (data.keyCode==Common.UI.Keys.RETURN) { if (data.keyCode == Common.UI.Keys.RETURN) {
this.lastSelectedRec = null; this.lastSelectedRec = null;
if (this.selectedBeforeHideRec) // only for ComboDataView menuPicker if (this.selectedBeforeHideRec) // only for ComboDataView menuPicker
rec = this.selectedBeforeHideRec; rec = this.selectedBeforeHideRec;
@ -724,6 +751,7 @@ define([
if (this.parentMenu) if (this.parentMenu)
this.parentMenu.hide(); this.parentMenu.hide();
} else { } else {
this.pressedCtrl=false;
var idx = _.indexOf(this.store.models, rec); var idx = _.indexOf(this.store.models, rec);
if (idx<0) { if (idx<0) {
if (data.keyCode==Common.UI.Keys.LEFT) { if (data.keyCode==Common.UI.Keys.LEFT) {
@ -804,12 +832,20 @@ define([
} }
}, },
onKeyUp: function(e){
if(e.keyCode == Common.UI.Keys.SHIFT)
this.pressedShift = false;
if(e.keyCode == Common.UI.Keys.CTRL)
this.pressedCtrl = false;
},
attachKeyEvents: function() { attachKeyEvents: function() {
if (this.enableKeyEvents && this.handleSelect) { if (this.enableKeyEvents && this.handleSelect) {
var el = $(this.el).find('.inner').addBack().filter('.inner'); var el = $(this.el).find('.inner').addBack().filter('.inner');
el.addClass('canfocused'); el.addClass('canfocused');
el.attr('tabindex', this.tabindex.toString()); el.attr('tabindex', this.tabindex.toString());
el.on((this.parentMenu && this.useBSKeydown) ? 'dataview:keydown' : 'keydown', _.bind(this.onKeyDown, this)); el.on((this.parentMenu && this.useBSKeydown) ? 'dataview:keydown' : 'keydown', _.bind(this.onKeyDown, this));
el.on((this.parentMenu && this.useBSKeydown) ? 'dataview:keyup' : 'keyup', _.bind(this.onKeyUp, this));
} }
}, },
@ -819,7 +855,11 @@ define([
this.scrollToRecord(this.lastSelectedRec); this.scrollToRecord(this.lastSelectedRec);
this.lastSelectedRec = null; this.lastSelectedRec = null;
} else { } else {
this.scrollToRecord(this.getSelectedRec()); var selectedRec = this.getSelectedRec();
if (!this.multiSelect)
this.scrollToRecord(selectedRec);
else if(selectedRec && selectedRec.length > 0)
this.scrollToRecord(selectedRec[selectedRec.length - 1]);
} }
}, },

View file

@ -144,10 +144,20 @@ define([
} }
}, this, area); }, this, area);
}.bind(this)); }.bind(this));
Common.NotificationCenter.on('app:ready', this.onAppReady.bind(this));
}, },
onLaunch: function () { onLaunch: function () {
var filter = Common.localStorage.getKeysFilter(); var filter = Common.localStorage.getKeysFilter();
this.appPrefix = (filter && filter.length) ? filter.split(',')[0] : ''; this.appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
this._state = {
disableEditing: false, // disable editing when disconnect/signed file/mail merge preview/review final or original/forms preview
docProtection: {
isReadOnly: false,
isReviewOnly: false,
isFormsOnly: false,
isCommentsOnly: false
}
};
this.collection = this.getApplication().getCollection('Common.Collections.Comments'); this.collection = this.getApplication().getCollection('Common.Collections.Comments');
this.setComparator(); this.setComparator();
@ -1645,16 +1655,25 @@ define([
}, },
setPreviewMode: function(mode) { setPreviewMode: function(mode) {
if (this.viewmode === mode) return; this._state.disableEditing = mode;
this.viewmode = mode; this.updatePreviewMode();
if (mode) },
updatePreviewMode: function() {
var docProtection = this._state.docProtection;
var viewmode = this._state.disableEditing || docProtection.isReadOnly || docProtection.isFormsOnly;
if (this.viewmode === viewmode) return;
this.viewmode = viewmode;
if (viewmode)
this.prevcanComments = this.mode.canComments; this.prevcanComments = this.mode.canComments;
this.mode.canComments = (mode) ? false : this.prevcanComments; this.mode.canComments = (viewmode) ? false : this.prevcanComments;
this.closeEditing(); this.closeEditing();
this.setMode(this.mode); this.setMode(this.mode);
this.updateComments(true); this.updateComments(true);
if (this.getPopover()) if (this.getPopover())
mode ? this.getPopover().hide() : this.getPopover().update(true); viewmode ? this.getPopover().hide() : this.getPopover().update(true);
}, },
clearCollections: function() { clearCollections: function() {
@ -1718,6 +1737,27 @@ define([
} }
} }
this.updateComments(true); this.updateComments(true);
},
onAppReady: function (config) {
var me = this;
(new Promise(function (accept, reject) {
accept();
})).then(function(){
me.onChangeProtectDocument();
Common.NotificationCenter.on('protect:doclock', _.bind(me.onChangeProtectDocument, me));
});
},
onChangeProtectDocument: function(props) {
if (!props) {
var docprotect = this.getApplication().getController('DocProtection');
props = docprotect ? docprotect.getDocProps() : null;
}
if (props) {
this._state.docProtection = props;
this.updatePreviewMode();
}
} }
}, Common.Controllers.Comments || {})); }, Common.Controllers.Comments || {}));

View file

@ -144,6 +144,7 @@ define([
setApi: function(api) { setApi: function(api) {
this.api = api; this.api = api;
this.api.asc_registerCallback('asc_onCloseChartEditor', _.bind(this.onDiagrammEditingDisabled, this)); this.api.asc_registerCallback('asc_onCloseChartEditor', _.bind(this.onDiagrammEditingDisabled, this));
this.api.asc_registerCallback('asc_sendFromGeneralToFrameEditor', _.bind(this.onSendFromGeneralToFrameEditor, this));
return this; return this;
}, },
@ -187,7 +188,7 @@ define([
iconCls: 'warn', iconCls: 'warn',
buttons: ['ok'], buttons: ['ok'],
callback: _.bind(function(btn){ callback: _.bind(function(btn){
this.setControlsDisabled(false); this.diagramEditorView.setControlsDisabled(false);
this.diagramEditorView.hide(); this.diagramEditorView.hide();
}, this) }, this)
}); });
@ -242,6 +243,9 @@ define([
h = eventData.data.height; h = eventData.data.height;
if (w>0 && h>0) if (w>0 && h>0)
this.diagramEditorView.setInnerSize(w, h); this.diagramEditorView.setInnerSize(w, h);
} else
if (eventData.type == "frameToGeneralData") {
this.api && this.api.asc_getInformationBetweenFrameAndGeneralEditor(eventData.data);
} else } else
this.diagramEditorView.fireEvent('internalmessage', this.diagramEditorView, eventData); this.diagramEditorView.fireEvent('internalmessage', this.diagramEditorView, eventData);
} }
@ -253,6 +257,10 @@ define([
} }
}, },
onSendFromGeneralToFrameEditor: function(data) {
externalEditor && externalEditor.serviceCommand('generalToFrameData', data);
},
warningTitle: 'Warning', warningTitle: 'Warning',
warningText: 'The object is disabled because of editing by another user.', warningText: 'The object is disabled because of editing by another user.',
textClose: 'Close', textClose: 'Close',

View file

@ -142,6 +142,7 @@ define([
setApi: function(api) { setApi: function(api) {
this.api = api; this.api = api;
this.api.asc_registerCallback('asc_onCloseMergeEditor', _.bind(this.onMergeEditingDisabled, this)); this.api.asc_registerCallback('asc_onCloseMergeEditor', _.bind(this.onMergeEditingDisabled, this));
this.api.asc_registerCallback('asc_sendFromGeneralToFrameEditor', _.bind(this.onSendFromGeneralToFrameEditor, this));
return this; return this;
}, },
@ -186,7 +187,7 @@ define([
iconCls: 'warn', iconCls: 'warn',
buttons: ['ok'], buttons: ['ok'],
callback: _.bind(function(btn){ callback: _.bind(function(btn){
this.setControlsDisabled(false); this.mergeEditorView.setControlsDisabled(false);
this.mergeEditorView.hide(); this.mergeEditorView.hide();
}, this) }, this)
}); });
@ -242,6 +243,9 @@ define([
h = eventData.data.height; h = eventData.data.height;
if (w>0 && h>0) if (w>0 && h>0)
this.mergeEditorView.setInnerSize(w, h); this.mergeEditorView.setInnerSize(w, h);
} else
if (eventData.type == "frameToGeneralData") {
this.api && this.api.asc_getInformationBetweenFrameAndGeneralEditor(eventData.data);
} else } else
this.mergeEditorView.fireEvent('internalmessage', this.mergeEditorView, eventData); this.mergeEditorView.fireEvent('internalmessage', this.mergeEditorView, eventData);
} }
@ -253,6 +257,10 @@ define([
} }
}, },
onSendFromGeneralToFrameEditor: function(data) {
externalEditor && externalEditor.serviceCommand('generalToFrameData', data);
},
warningTitle: 'Warning', warningTitle: 'Warning',
warningText: 'The object is disabled because of editing by another user.', warningText: 'The object is disabled because of editing by another user.',
textClose: 'Close', textClose: 'Close',

View file

@ -142,6 +142,7 @@ define([
setApi: function(api) { setApi: function(api) {
this.api = api; this.api = api;
this.api.asc_registerCallback('asc_onCloseOleEditor', _.bind(this.onOleEditingDisabled, this)); this.api.asc_registerCallback('asc_onCloseOleEditor', _.bind(this.onOleEditingDisabled, this));
this.api.asc_registerCallback('asc_sendFromGeneralToFrameEditor', _.bind(this.onSendFromGeneralToFrameEditor, this));
return this; return this;
}, },
@ -185,7 +186,7 @@ define([
iconCls: 'warn', iconCls: 'warn',
buttons: ['ok'], buttons: ['ok'],
callback: _.bind(function(btn){ callback: _.bind(function(btn){
this.setControlsDisabled(false); this.oleEditorView.setControlsDisabled(false);
this.oleEditorView.hide(); this.oleEditorView.hide();
}, this) }, this)
}); });
@ -241,6 +242,9 @@ define([
h = eventData.data.height; h = eventData.data.height;
if (w>0 && h>0) if (w>0 && h>0)
this.oleEditorView.setInnerSize(w, h); this.oleEditorView.setInnerSize(w, h);
} else
if (eventData.type == "frameToGeneralData") {
this.api && this.api.asc_getInformationBetweenFrameAndGeneralEditor(eventData.data);
} else } else
this.oleEditorView.fireEvent('internalmessage', this.oleEditorView, eventData); this.oleEditorView.fireEvent('internalmessage', this.oleEditorView, eventData);
} }
@ -252,6 +256,10 @@ define([
} }
}, },
onSendFromGeneralToFrameEditor: function(data) {
externalEditor && externalEditor.serviceCommand('generalToFrameData', data);
},
warningTitle: 'Warning', warningTitle: 'Warning',
warningText: 'The object is disabled because of editing by another user.', warningText: 'The object is disabled because of editing by another user.',
textClose: 'Close', textClose: 'Close',

View file

@ -457,7 +457,7 @@ Common.UI.HintManager = new(function() {
}; };
var _init = function(api) { var _init = function(api) {
if (Common.Utils.isIE) if (Common.Utils.isIE || Common.UI.isMac && Common.Utils.isGecko) // turn off hints on IE and FireFox (shortcut F6 selects link in address bar)
return; return;
_api = api; _api = api;
@ -480,7 +480,7 @@ Common.UI.HintManager = new(function() {
_clearHints(); _clearHints();
}); });
$(document).on('keyup', function(e) { $(document).on('keyup', function(e) {
if (e.keyCode == Common.UI.Keys.ALT && _needShow && !(window.SSE && window.SSE.getController('Statusbar').getIsDragDrop())) { if ((e.keyCode == Common.UI.Keys.ALT || e.keyCode === 91) && _needShow && !(window.SSE && window.SSE.getController('Statusbar').getIsDragDrop())) {
e.preventDefault(); e.preventDefault();
if (!_hintVisible) { if (!_hintVisible) {
$('input:focus').blur(); // to change value in inputField $('input:focus').blur(); // to change value in inputField
@ -622,10 +622,11 @@ Common.UI.HintManager = new(function() {
} }
} }
_needShow = (Common.Utils.InternalSettings.get(_appPrefix + "settings-use-alt-key") && !e.shiftKey && e.keyCode == Common.UI.Keys.ALT && _needShow = (Common.Utils.InternalSettings.get(_appPrefix + "settings-show-alt-hints") && !e.shiftKey &&
(!Common.Utils.isMac && e.keyCode == Common.UI.Keys.ALT || Common.Utils.isMac && e.metaKey && e.keyCode === Common.UI.Keys.F6) &&
!Common.Utils.ModalWindow.isVisible() && _isDocReady && _arrAlphabet.length > 0 && !Common.Utils.ModalWindow.isVisible() && _isDocReady && _arrAlphabet.length > 0 &&
!(window.PE && $('#pe-preview').is(':visible'))); !(window.PE && $('#pe-preview').is(':visible')));
if (e.altKey && e.keyCode !== 115) { if (Common.Utils.InternalSettings.get(_appPrefix + "settings-show-alt-hints") && !Common.Utils.isMac && e.altKey && e.keyCode !== 115) {
e.preventDefault(); e.preventDefault();
} }
}); });
@ -663,7 +664,7 @@ Common.UI.HintManager = new(function() {
}; };
var _clearHints = function (isComplete) { var _clearHints = function (isComplete) {
if (Common.Utils.isIE) if (Common.Utils.isIE || Common.UI.isMac && Common.Utils.isGecko)
return; return;
_hintVisible && _hideHints(); _hintVisible && _hideHints();
if (_currentHints.length > 0) { if (_currentHints.length > 0) {

View file

@ -105,6 +105,7 @@ define([
Common.NotificationCenter.on('app:face', this.onAppShowed.bind(this)); Common.NotificationCenter.on('app:face', this.onAppShowed.bind(this));
Common.NotificationCenter.on('uitheme:changed', this.updatePluginsButtons.bind(this)); Common.NotificationCenter.on('uitheme:changed', this.updatePluginsButtons.bind(this));
Common.NotificationCenter.on('window:resize', this.updatePluginsButtons.bind(this)); Common.NotificationCenter.on('window:resize', this.updatePluginsButtons.bind(this));
Common.NotificationCenter.on('app:ready', this.onAppReady.bind(this));
}, },
loadConfig: function(data) { loadConfig: function(data) {
@ -151,6 +152,16 @@ define([
onAppShowed: function (config) { onAppShowed: function (config) {
}, },
onAppReady: function (config) {
var me = this;
(new Promise(function (accept, reject) {
accept();
})).then(function(){
me.onChangeProtectDocument();
Common.NotificationCenter.on('protect:doclock', _.bind(me.onChangeProtectDocument, me));
});
},
setApi: function(api) { setApi: function(api) {
this.api = api; this.api = api;
@ -225,6 +236,10 @@ define([
var _group = $('> .group', me.$toolbarPanelPlugins); var _group = $('> .group', me.$toolbarPanelPlugins);
var $slot = $('<span class="btn-slot text x-huge"></span>').appendTo(_group); var $slot = $('<span class="btn-slot text x-huge"></span>').appendTo(_group);
btn.render($slot); btn.render($slot);
var docProtection = me.panelPlugins._state.docProtection;
Common.Utils.lockControls(Common.enumLock.docLockView, docProtection.isReadOnly, {array: btn});
Common.Utils.lockControls(Common.enumLock.docLockForms, docProtection.isFormsOnly, {array: btn});
Common.Utils.lockControls(Common.enumLock.docLockComments, docProtection.isCommentsOnly, {array: btn});
} }
}, },
@ -259,6 +274,10 @@ define([
rank = new_rank; rank = new_rank;
}); });
_group.appendTo(me.$toolbarPanelPlugins); _group.appendTo(me.$toolbarPanelPlugins);
var docProtection = me.panelPlugins._state.docProtection;
Common.Utils.lockControls(Common.enumLock.docLockView, docProtection.isReadOnly, {array: me.panelPlugins.lockedControls});
Common.Utils.lockControls(Common.enumLock.docLockForms, docProtection.isFormsOnly, {array: me.panelPlugins.lockedControls});
Common.Utils.lockControls(Common.enumLock.docLockComments, docProtection.isCommentsOnly, {array: me.panelPlugins.lockedControls});
} else { } else {
console.error('toolbar panel isnot created'); console.error('toolbar panel isnot created');
} }
@ -518,10 +537,13 @@ define([
} }
var variationsArr = [], var variationsArr = [],
pluginVisible = false; pluginVisible = false,
isDisplayedInViewer = false;
item.variations.forEach(function(itemVar){ item.variations.forEach(function(itemVar){
var visible = (isEdit || itemVar.isViewer && (itemVar.isDisplayedInViewer!==false)) && _.contains(itemVar.EditorsSupport, editor) && !itemVar.isSystem; var visible = (isEdit || itemVar.isViewer && (itemVar.isDisplayedInViewer!==false)) && _.contains(itemVar.EditorsSupport, editor) && !itemVar.isSystem;
if ( visible ) pluginVisible = true; if ( visible ) pluginVisible = true;
if (itemVar.isViewer && (itemVar.isDisplayedInViewer!==false))
isDisplayedInViewer = true;
if (item.isUICustomizer ) { if (item.isUICustomizer ) {
visible && arrUI.push({ visible && arrUI.push({
@ -571,7 +593,8 @@ define([
groupName: (item.group) ? item.group.name : '', groupName: (item.group) ? item.group.name : '',
groupRank: (item.group) ? item.group.rank : 0, groupRank: (item.group) ? item.group.rank : 0,
minVersion: item.minVersion, minVersion: item.minVersion,
original: item original: item,
isDisplayedInViewer: isDisplayedInViewer
})); }));
} }
}); });
@ -720,6 +743,19 @@ define([
}, funcComplete); }, funcComplete);
} else } else
funcComplete(); funcComplete();
},
onChangeProtectDocument: function(props) {
if (!props) {
var docprotect = this.getApplication().getController('DocProtection');
props = docprotect ? docprotect.getDocProps() : null;
}
if (props && this.panelPlugins) {
this.panelPlugins._state.docProtection = props;
Common.Utils.lockControls(Common.enumLock.docLockView, props.isReadOnly, {array: this.panelPlugins.lockedControls});
Common.Utils.lockControls(Common.enumLock.docLockForms, props.isFormsOnly, {array: this.panelPlugins.lockedControls});
Common.Utils.lockControls(Common.enumLock.docLockComments, props.isCommentsOnly, {array: this.panelPlugins.lockedControls});
}
} }
}, Common.Controllers.Plugins || {})); }, Common.Controllers.Plugins || {}));
}); });

View file

@ -82,7 +82,8 @@ define([
'reviewchange:view': _.bind(this.onReviewViewClick, this), 'reviewchange:view': _.bind(this.onReviewViewClick, this),
'reviewchange:compare': _.bind(this.onCompareClick, this), 'reviewchange:compare': _.bind(this.onCompareClick, this),
'lang:document': _.bind(this.onDocLanguage, this), 'lang:document': _.bind(this.onDocLanguage, this),
'collaboration:coauthmode': _.bind(this.onCoAuthMode, this) 'collaboration:coauthmode': _.bind(this.onCoAuthMode, this),
'protect:update': _.bind(this.onChangeProtectDocument, this)
}, },
'Common.Views.ReviewChangesDialog': { 'Common.Views.ReviewChangesDialog': {
'reviewchange:accept': _.bind(this.onAcceptClick, this), 'reviewchange:accept': _.bind(this.onAcceptClick, this),
@ -102,7 +103,15 @@ define([
this.userCollection = this.getApplication().getCollection('Common.Collections.Users'); this.userCollection = this.getApplication().getCollection('Common.Collections.Users');
this.viewmode = false; this.viewmode = false;
this._state = {posx: -1000, posy: -1000, popoverVisible: false, previewMode: false, compareSettings: null, wsLock: false, wsProps: []}; this._state = { posx: -1000, posy: -1000, popoverVisible: false, previewMode: false, compareSettings: null, wsLock: false, wsProps: [],
disableEditing: false, // disable editing when disconnect/signed file/mail merge preview/review final or original/forms preview
docProtection: {
isReadOnly: false,
isReviewOnly: false,
isFormsOnly: false,
isCommentsOnly: false
}
};
Common.NotificationCenter.on('reviewchanges:turn', this.onTurnPreview.bind(this)); Common.NotificationCenter.on('reviewchanges:turn', this.onTurnPreview.bind(this));
Common.NotificationCenter.on('spelling:turn', this.onTurnSpelling.bind(this)); Common.NotificationCenter.on('spelling:turn', this.onTurnSpelling.bind(this));
@ -164,26 +173,35 @@ define([
SetDisabled: function(state, reviewMode, fillFormMode) { SetDisabled: function(state, reviewMode, fillFormMode) {
if (this.dlgChanges) if (this.dlgChanges)
this.dlgChanges.close(); this.dlgChanges.close();
if (reviewMode) if (reviewMode) {
this.lockToolbar(Common.enumLock.previewReviewMode, state); this.lockToolbar(Common.enumLock.previewReviewMode, state);
else if (fillFormMode) this.dlgChanges && Common.Utils.lockControls(Common.enumLock.previewReviewMode, state, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
} else if (fillFormMode) {
this.lockToolbar(Common.enumLock.viewFormMode, state); this.lockToolbar(Common.enumLock.viewFormMode, state);
else this.dlgChanges && Common.Utils.lockControls(Common.enumLock.viewFormMode, state, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
} else {
this.lockToolbar(Common.enumLock.viewMode, state); this.lockToolbar(Common.enumLock.viewMode, state);
}
this.setPreviewMode(state); this.setPreviewMode(state);
}, },
lockToolbar: function (causes, lock, opts) { lockToolbar: function (causes, lock, opts) {
Common.Utils.lockControls(causes, lock, opts, this.view.getButtons()); this.view && Common.Utils.lockControls(causes, lock, opts, this.view.getButtons());
}, },
setPreviewMode: function(mode) { //disable accept/reject in popover setPreviewMode: function(mode) { //disable accept/reject in popover
if (this.viewmode === mode) return; this._state.disableEditing = mode;
this.viewmode = mode; this.updatePreviewMode();
if (mode) },
updatePreviewMode: function() {
var viewmode = this._state.disableEditing || this._state.docProtection.isReadOnly || this._state.docProtection.isFormsOnly || this._state.docProtection.isCommentsOnly;
if (this.viewmode === viewmode) return;
this.viewmode = viewmode;
if (viewmode)
this.prevcanReview = this.appConfig.canReview; this.prevcanReview = this.appConfig.canReview;
this.appConfig.canReview = (mode) ? false : this.prevcanReview; this.appConfig.canReview = (viewmode) ? false : this.prevcanReview;
var me = this; var me = this;
this.popoverChanges && this.popoverChanges.each(function (model) { this.popoverChanges && this.popoverChanges.each(function (model) {
model.set('hint', !me.appConfig.canReview); model.set('hint', !me.appConfig.canReview);
@ -207,17 +225,14 @@ define([
onApiShowChange: function (sdkchange, isShow) { onApiShowChange: function (sdkchange, isShow) {
var btnlock = true, var btnlock = true,
changes; changes;
if (this.appConfig.canReview && !this.appConfig.isReviewOnly) { if (this.appConfig.canReview && !(this.appConfig.isReviewOnly || this._state.docProtection.isReviewOnly)) {
if (sdkchange && sdkchange.length>0) { if (sdkchange && sdkchange.length>0) {
changes = this.readSDKChange(sdkchange); changes = this.readSDKChange(sdkchange);
btnlock = this.isSelectedChangesLocked(changes, isShow); btnlock = this.isSelectedChangesLocked(changes, isShow);
} }
if (this._state.lock !== btnlock) { if (this._state.lock !== btnlock) {
Common.Utils.lockControls(Common.enumLock.reviewChangelock, btnlock, {array: [this.view.btnAccept, this.view.btnReject]}); Common.Utils.lockControls(Common.enumLock.reviewChangelock, btnlock, {array: [this.view.btnAccept, this.view.btnReject]});
if (this.dlgChanges) { this.dlgChanges && Common.Utils.lockControls(Common.enumLock.reviewChangelock, btnlock, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
this.dlgChanges.btnAccept.setDisabled(btnlock);
this.dlgChanges.btnReject.setDisabled(btnlock);
}
this._state.lock = btnlock; this._state.lock = btnlock;
Common.Utils.InternalSettings.set(this.view.appPrefix + "accept-reject-lock", btnlock); Common.Utils.InternalSettings.set(this.view.appPrefix + "accept-reject-lock", btnlock);
} }
@ -485,6 +500,7 @@ define([
} }
var date = (item.get_DateTime() == '') ? new Date() : new Date(item.get_DateTime()), var date = (item.get_DateTime() == '') ? new Date() : new Date(item.get_DateTime()),
user = me.userCollection.findOriginalUser(item.get_UserId()), user = me.userCollection.findOriginalUser(item.get_UserId()),
isProtectedReview = me._state.docProtection.isReviewOnly,
change = new Common.Models.ReviewChange({ change = new Common.Models.ReviewChange({
uid : Common.UI.getId(), uid : Common.UI.getId(),
userid : item.get_UserId(), userid : item.get_UserId(),
@ -499,8 +515,9 @@ define([
changedata : item, changedata : item,
scope : me.view, scope : me.view,
hint : !me.appConfig.canReview, hint : !me.appConfig.canReview,
docProtection: me._state.docProtection,
goto : (item.get_MoveType() == Asc.c_oAscRevisionsMove.MoveTo || item.get_MoveType() == Asc.c_oAscRevisionsMove.MoveFrom), goto : (item.get_MoveType() == Asc.c_oAscRevisionsMove.MoveTo || item.get_MoveType() == Asc.c_oAscRevisionsMove.MoveFrom),
editable : me.appConfig.isReviewOnly && (item.get_UserId() == me.currentUserId) || !me.appConfig.isReviewOnly && (!me.appConfig.canUseReviewPermissions || AscCommon.UserInfoParser.canEditReview(item.get_UserName())) editable : (me.appConfig.isReviewOnly || isProtectedReview) && (item.get_UserId() == me.currentUserId) || !(me.appConfig.isReviewOnly || isProtectedReview) && (!me.appConfig.canUseReviewPermissions || AscCommon.UserInfoParser.canEditReview(item.get_UserName()))
}); });
arr.push(change); arr.push(change);
@ -589,7 +606,7 @@ define([
}, },
onTurnPreview: function(state, global, fromApi) { onTurnPreview: function(state, global, fromApi) {
if ( this.appConfig.isReviewOnly ) { if ( this.appConfig.isReviewOnly) {
this.view.turnChanges(true); this.view.turnChanges(true);
} else } else
if ( this.appConfig.canReview ) { if ( this.appConfig.canReview ) {
@ -603,7 +620,7 @@ define([
}, },
onApiTrackRevisionsChange: function(localFlag, globalFlag, userId) { onApiTrackRevisionsChange: function(localFlag, globalFlag, userId) {
if ( this.appConfig.isReviewOnly ) { if ( this.appConfig.isReviewOnly || this._state.docProtection.isReviewOnly) {
this.view.turnChanges(true); this.view.turnChanges(true);
} else } else
if ( this.appConfig.canReview ) { if ( this.appConfig.canReview ) {
@ -634,8 +651,10 @@ define([
this.turnDisplayMode(item.value); this.turnDisplayMode(item.value);
if (!this.appConfig.isEdit && !this.appConfig.isRestrictedEdit) if (!this.appConfig.isEdit && !this.appConfig.isRestrictedEdit)
Common.localStorage.setItem(this.view.appPrefix + "review-mode", item.value); // for viewer Common.localStorage.setItem(this.view.appPrefix + "review-mode", item.value); // for viewer
else if (item.value=='markup' || item.value=='simple') else if (item.value=='markup' || item.value=='simple') {
Common.localStorage.setItem(this.view.appPrefix + "review-mode-editor", item.value); // for editor save only markup modes Common.localStorage.setItem(this.view.appPrefix + "review-mode-editor", item.value); // for editor save only markup modes
Common.Utils.InternalSettings.set(this.view.appPrefix + "review-mode-editor", item.value);
}
Common.NotificationCenter.trigger('edit:complete', this.view); Common.NotificationCenter.trigger('edit:complete', this.view);
}, },
@ -805,7 +824,7 @@ define([
rightMenu: {clear: disable, disable: true}, rightMenu: {clear: disable, disable: true},
statusBar: true, statusBar: true,
leftMenu: {disable: false, previewMode: true}, leftMenu: {disable: false, previewMode: true},
fileMenu: {protect: true}, fileMenu: {protect: true, info: true},
navigation: {disable: false, previewMode: true}, navigation: {disable: false, previewMode: true},
comments: {disable: false, previewMode: true}, comments: {disable: false, previewMode: true},
chat: false, chat: false,
@ -829,10 +848,10 @@ define([
onAppReady: function (config) { onAppReady: function (config) {
var me = this; var me = this;
if ( config.canReview ) { (new Promise(function (resolve) {
(new Promise(function (resolve) { resolve();
resolve(); })).then(function () {
})).then(function () { if ( config.canReview ) {
// function _setReviewStatus(state, global) { // function _setReviewStatus(state, global) {
// me.view.turnChanges(state, global); // me.view.turnChanges(state, global);
// !global && me.api.asc_SetLocalTrackRevisions(state); // !global && me.api.asc_SetLocalTrackRevisions(state);
@ -854,7 +873,7 @@ define([
!val && (val = me.appConfig.customization ? me.appConfig.customization.reviewDisplay : undefined); !val && (val = me.appConfig.customization ? me.appConfig.customization.reviewDisplay : undefined);
val = /^(original|final|markup|simple)$/i.test(val) ? val.toLocaleLowerCase() : 'markup'; val = /^(original|final|markup|simple)$/i.test(val) ? val.toLocaleLowerCase() : 'markup';
} }
Common.Utils.InternalSettings.set(me.view.appPrefix + "review-mode-editor", val);
me.turnDisplayMode(val); // load display mode for all modes (viewer or editor) me.turnDisplayMode(val); // load display mode for all modes (viewer or editor)
me.view.turnDisplayMode(val); me.view.turnDisplayMode(val);
@ -862,46 +881,49 @@ define([
(!me.appConfig.customization.review || me.appConfig.customization.review.showReviewChanges===undefined) && me.appConfig.customization.showReviewChanges==true) ) { (!me.appConfig.customization.review || me.appConfig.customization.review.showReviewChanges===undefined) && me.appConfig.customization.showReviewChanges==true) ) {
me.dlgChanges = (new Common.Views.ReviewChangesDialog({ me.dlgChanges = (new Common.Views.ReviewChangesDialog({
popoverChanges : me.popoverChanges, popoverChanges : me.popoverChanges,
mode : me.appConfig mode : me.appConfig,
docProtection : me._state.docProtection
})); }));
var sdk = $('#editor_sdk'), var sdk = $('#editor_sdk'),
offset = sdk.offset(); offset = sdk.offset();
me.dlgChanges.show(Math.max(10, offset.left + sdk.width() - 300), Math.max(10, offset.top + sdk.height() - 150)); me.dlgChanges.show(Math.max(10, offset.left + sdk.width() - 300), Math.max(10, offset.top + sdk.height() - 150));
} }
}); } else if (config.canViewReview) {
} else if (config.canViewReview) { config.canViewReview = (config.isEdit || me.api.asc_HaveRevisionsChanges(true)); // check revisions from all users
config.canViewReview = (config.isEdit || me.api.asc_HaveRevisionsChanges(true)); // check revisions from all users if (config.canViewReview) {
if (config.canViewReview) { var val = Common.localStorage.getItem(me.view.appPrefix + (config.isEdit || config.isRestrictedEdit ? "review-mode-editor" : "review-mode"));
var val = Common.localStorage.getItem(me.view.appPrefix + (config.isEdit || config.isRestrictedEdit ? "review-mode-editor" : "review-mode")); if (val===null) {
if (val===null) { val = me.appConfig.customization && me.appConfig.customization.review ? me.appConfig.customization.review.reviewDisplay : undefined;
val = me.appConfig.customization && me.appConfig.customization.review ? me.appConfig.customization.review.reviewDisplay : undefined; !val && (val = me.appConfig.customization ? me.appConfig.customization.reviewDisplay : undefined);
!val && (val = me.appConfig.customization ? me.appConfig.customization.reviewDisplay : undefined); val = /^(original|final|markup|simple)$/i.test(val) ? val.toLocaleLowerCase() : (config.isEdit || config.isRestrictedEdit ? 'markup' : 'original');
val = /^(original|final|markup|simple)$/i.test(val) ? val.toLocaleLowerCase() : (config.isEdit || config.isRestrictedEdit ? 'markup' : 'original'); }
me.turnDisplayMode(val);
me.view.turnDisplayMode(val);
} }
me.turnDisplayMode(val);
me.view.turnDisplayMode(val);
} }
}
if (me.view && me.view.btnChat) { if (me.view && me.view.btnChat) {
me.getApplication().getController('LeftMenu').leftMenu.btnChat.on('toggle', function(btn, state){ me.getApplication().getController('LeftMenu').leftMenu.btnChat.on('toggle', function(btn, state){
if (state !== me.view.btnChat.pressed) if (state !== me.view.btnChat.pressed)
me.view.turnChat(state); me.view.turnChat(state);
}); });
} }
me.onChangeProtectSheet(); me.onChangeProtectSheet();
if (me.view) { if (me.view) {
me.lockToolbar(Common.enumLock.hideComments, !Common.localStorage.getBool(me.view.appPrefix + "settings-livecomment", true), {array: [me.view.btnCommentRemove, me.view.btnCommentResolve]}); me.lockToolbar(Common.enumLock.hideComments, !Common.localStorage.getBool(me.view.appPrefix + "settings-livecomment", true), {array: [me.view.btnCommentRemove, me.view.btnCommentResolve]});
me.lockToolbar(Common.enumLock['Objects'], !!this._state.wsProps['Objects'], {array: [me.view.btnCommentRemove, me.view.btnCommentResolve]}); me.lockToolbar(Common.enumLock['Objects'], !!me._state.wsProps['Objects'], {array: [me.view.btnCommentRemove, me.view.btnCommentResolve]});
} }
var val = Common.localStorage.getItem(me.view.appPrefix + "settings-review-hover-mode"); var val = Common.localStorage.getItem(me.view.appPrefix + "settings-review-hover-mode");
if (val === null) { if (val === null) {
val = me.appConfig.customization && me.appConfig.customization.review ? !!me.appConfig.customization.review.hoverMode : false; val = me.appConfig.customization && me.appConfig.customization.review ? !!me.appConfig.customization.review.hoverMode : false;
} else } else
val = !!parseInt(val); val = !!parseInt(val);
Common.Utils.InternalSettings.set(me.view.appPrefix + "settings-review-hover-mode", val); Common.Utils.InternalSettings.set(me.view.appPrefix + "settings-review-hover-mode", val);
me.appConfig.reviewHoverMode = val; me.appConfig.reviewHoverMode = val;
me.view && me.view.onAppReady(config);
});
}, },
applySettings: function(menu) { applySettings: function(menu) {
@ -971,7 +993,8 @@ define([
}, },
onCoAuthoringDisconnect: function() { onCoAuthoringDisconnect: function() {
this.lockToolbar(Common.enumLock.lostConnect, true) this.lockToolbar(Common.enumLock.lostConnect, true);
this.dlgChanges && Common.Utils.lockControls(Common.enumLock.lostConnect, true, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
}, },
onUpdateUsers: function() { onUpdateUsers: function() {
@ -1011,6 +1034,37 @@ define([
this.lockToolbar(Common.enumLock['Objects'], !!this._state.wsProps['Objects'], {array: [this.view.btnCommentRemove, this.view.btnCommentResolve]}); this.lockToolbar(Common.enumLock['Objects'], !!this._state.wsProps['Objects'], {array: [this.view.btnCommentRemove, this.view.btnCommentResolve]});
}, },
onChangeProtectDocument: function(props) {
if (!props) {
var docprotect = this.getApplication().getController('DocProtection');
props = docprotect ? docprotect.getDocProps() : null;
}
if (props) {
this._state.docProtection = props;
this.lockToolbar(Common.enumLock.docLockView, props.isReadOnly);
this.lockToolbar(Common.enumLock.docLockForms, props.isFormsOnly);
this.lockToolbar(Common.enumLock.docLockReview, props.isReviewOnly);
this.lockToolbar(Common.enumLock.docLockComments, props.isCommentsOnly);
if (this.dlgChanges) {
Common.Utils.lockControls(Common.enumLock.docLockView, props.isReadOnly, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
Common.Utils.lockControls(Common.enumLock.docLockForms, props.isFormsOnly, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
Common.Utils.lockControls(Common.enumLock.docLockReview, props.isReviewOnly, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
Common.Utils.lockControls(Common.enumLock.docLockComments, props.isCommentsOnly, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
}
if (this.appConfig.canReview) {
if (props.isReviewOnly) {
this.onTurnPreview(true);
this.onApiShowChange();
} else if (this._state.prevReviewProtected) {
this.onTurnPreview(false);
this.onApiShowChange();
}
this._state.prevReviewProtected = props.isReviewOnly;
}
this.updatePreviewMode();
}
},
textInserted: '<b>Inserted:</b>', textInserted: '<b>Inserted:</b>',
textDeleted: '<b>Deleted:</b>', textDeleted: '<b>Deleted:</b>',
textParaInserted: '<b>Paragraph Inserted</b> ', textParaInserted: '<b>Paragraph Inserted</b> ',

View file

@ -9,7 +9,7 @@
<div class="btn-goto img-commonctrl"></div> <div class="btn-goto img-commonctrl"></div>
<% } %> <% } %>
<% if (!hint) { %> <% if (!hint) { %>
<% if (scope.appConfig.isReviewOnly) { %> <% if (scope.appConfig.isReviewOnly || docProtection.isReviewOnly) { %>
<% if (editable) { %> <% if (editable) { %>
<div class="btn-delete img-commonctrl"></div> <div class="btn-delete img-commonctrl"></div>
<% } %> <% } %>

File diff suppressed because it is too large Load diff

View file

@ -207,6 +207,7 @@ define([
type: 'password', type: 'password',
showCls: (this.options.iconType==='svg' ? 'svg-icon' : 'toolbar__icon') + ' btn-sheet-view', showCls: (this.options.iconType==='svg' ? 'svg-icon' : 'toolbar__icon') + ' btn-sheet-view',
hideCls: (this.options.iconType==='svg' ? 'svg-icon' : 'toolbar__icon') + ' hide-password', hideCls: (this.options.iconType==='svg' ? 'svg-icon' : 'toolbar__icon') + ' hide-password',
maxLength: this.options.maxPasswordLength,
validateOnBlur: false, validateOnBlur: false,
showPwdOnClick: true, showPwdOnClick: true,
validation : function(value) { validation : function(value) {

View file

@ -154,6 +154,8 @@ define([
this.$window.css('left',(maxWidth - width - borders_width) / 2); this.$window.css('left',(maxWidth - width - borders_width) / 2);
this.$window.css('top',(maxHeight - height - this._headerFooterHeight) / 2); this.$window.css('top',(maxHeight - height - this._headerFooterHeight) / 2);
this._restoreHeight = this._restoreWidth = undefined;
}, },
onWindowResize: function() { onWindowResize: function() {
@ -162,26 +164,38 @@ define([
win_width = this.getWidth(), win_width = this.getWidth(),
win_height = this.getHeight(), win_height = this.getHeight(),
bordersOffset = (this.resizable) ? 0 : this.bordersOffset; bordersOffset = (this.resizable) ? 0 : this.bordersOffset;
if (win_height<main_height-bordersOffset*2+0.1 && win_width<main_width-bordersOffset*2+0.1) { if (win_height<main_height-bordersOffset*2+0.1 ) {
var left = this.getLeft(), if (!this.resizable && this._restoreHeight>0 && win_height < this._restoreHeight) {
top = this.getTop(); var height = Math.max(Math.min(this._restoreHeight, main_height-bordersOffset*2), this.initConfig.minheight);
this.setHeight(height);
this.boxEl.css('height', height - this._headerFooterHeight);
}
var top = this.getTop();
if (top<bordersOffset) this.$window.css('top', bordersOffset); if (top<bordersOffset) this.$window.css('top', bordersOffset);
else if (top+win_height>main_height-bordersOffset) else if (top+win_height>main_height-bordersOffset)
this.$window.css('top', main_height-bordersOffset - win_height); this.$window.css('top', main_height-bordersOffset - win_height);
} else {
if (this._restoreHeight===undefined) {
this._restoreHeight = win_height;
}
this.setHeight(Math.max(main_height-bordersOffset*2, this.initConfig.minheight));
this.boxEl.css('height', Math.max(main_height-bordersOffset*2, this.initConfig.minheight) - this._headerFooterHeight);
this.$window.css('top', bordersOffset);
}
if (win_width<main_width-bordersOffset*2+0.1) {
if (!this.resizable && this._restoreWidth>0 && win_width < this._restoreWidth) {
this.setWidth(Math.max(Math.min(this._restoreWidth, main_width-bordersOffset*2), this.initConfig.minwidth));
}
var left = this.getLeft();
if (left<bordersOffset) this.$window.css('left', bordersOffset); if (left<bordersOffset) this.$window.css('left', bordersOffset);
else if (left+win_width>main_width-bordersOffset) else if (left+win_width>main_width-bordersOffset)
this.$window.css('left', main_width-bordersOffset-win_width); this.$window.css('left', main_width-bordersOffset-win_width);
} else { } else {
if (win_height>main_height-bordersOffset*2) { if (this._restoreWidth===undefined) {
this.setHeight(Math.max(main_height-bordersOffset*2, this.initConfig.minheight)); this._restoreWidth = win_width;
this.boxEl.css('height', Math.max(main_height-bordersOffset*2, this.initConfig.minheight) - this._headerFooterHeight);
this.$window.css('top', bordersOffset);
}
if (win_width>main_width-bordersOffset*2) {
this.setWidth(Math.max(main_width-bordersOffset*2, this.initConfig.minwidth));
this.$window.css('left', bordersOffset);
} }
this.setWidth(Math.max(main_width-bordersOffset*2, this.initConfig.minwidth));
this.$window.css('left', bordersOffset);
} }
}, },

View file

@ -74,14 +74,16 @@ define([
_.extend(this, options); _.extend(this, options);
this._locked = false; this._locked = false;
this._state = { this._state = {
DisabledControls: false DisabledControls: false,
docProtection: {
isReadOnly: false,
isReviewOnly: false,
isFormsOnly: false,
isCommentsOnly: false
}
}; };
this.lockedControls = []; this.lockedControls = [];
Common.UI.BaseView.prototype.initialize.call(this, arguments); Common.UI.BaseView.prototype.initialize.call(this, arguments);
Common.NotificationCenter.on('app:ready', function (mode) {
Common.Utils.asyncCall(this._onAppReady, this, mode);
}.bind(this));
}, },
render: function(el) { render: function(el) {
@ -153,6 +155,7 @@ define([
if ( !this.storePlugins.isEmpty() ) { if ( !this.storePlugins.isEmpty() ) {
var me = this; var me = this;
var _group = $('<div class="group"></div>'); var _group = $('<div class="group"></div>');
var _set = Common.enumLock;
this.storePlugins.each(function (model) { this.storePlugins.each(function (model) {
if (model.get('visible')) { if (model.get('visible')) {
var modes = model.get('variations'), var modes = model.get('variations'),
@ -167,6 +170,7 @@ define([
split: modes && modes.length > 1, split: modes && modes.length > 1,
value: guid, value: guid,
hint: model.get('name'), hint: model.get('name'),
lock: model.get('isDisplayedInViewer') ? [_set.viewMode, _set.previewReviewMode, _set.viewFormMode, _set.selRangeEdit, _set.editFormula] : [_set.viewMode, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.selRangeEdit, _set.editFormula],
dataHint: '1', dataHint: '1',
dataHintDirection: 'bottom', dataHintDirection: 'bottom',
dataHintOffset: 'small' dataHintOffset: 'small'
@ -179,6 +183,10 @@ define([
me.lockedControls.push(btn); me.lockedControls.push(btn);
} }
}); });
var docProtection = me._state.docProtection
Common.Utils.lockControls(Common.enumLock.docLockView, docProtection.isReadOnly, {array: me.lockedControls});
Common.Utils.lockControls(Common.enumLock.docLockForms, docProtection.isFormsOnly, {array: me.lockedControls});
Common.Utils.lockControls(Common.enumLock.docLockComments, docProtection.isCommentsOnly, {array: me.lockedControls});
parent.html(_group); parent.html(_group);
$('<div class="separator long"></div>').prependTo(parent); $('<div class="separator long"></div>').prependTo(parent);
@ -204,6 +212,16 @@ define([
} }
}, },
SetDisabled: function(disable, reviewMode, fillFormMode) {
if (reviewMode) {
Common.Utils.lockControls(Common.enumLock.previewReviewMode, disable, {array: this.lockedControls});
} else if (fillFormMode) {
Common.Utils.lockControls(Common.enumLock.viewFormMode, disable, {array: this.lockedControls});
} else {
Common.Utils.lockControls(Common.enumLock.viewMode, disable, {array: this.lockedControls});
}
},
openInsideMode: function(name, url, frameId) { openInsideMode: function(name, url, frameId) {
if (!this.pluginsPanel) return false; if (!this.pluginsPanel) return false;
@ -289,9 +307,6 @@ define([
this.loadMask.hide(); this.loadMask.hide();
}, },
_onAppReady: function (mode) {
},
parseIcons: function(icons) { parseIcons: function(icons) {
if (icons.length && typeof icons[0] !== 'string') { if (icons.length && typeof icons[0] !== 'string') {
var theme = Common.UI.Themes.currentThemeId().toLowerCase(), var theme = Common.UI.Themes.currentThemeId().toLowerCase(),
@ -389,6 +404,7 @@ define([
}); });
}); });
var _set = Common.enumLock;
var btn = new Common.UI.Button({ var btn = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top', cls: 'btn-toolbar x-huge icon-top',
iconImg: icon_url, iconImg: icon_url,
@ -397,6 +413,7 @@ define([
split: _menu_items.length > 1, split: _menu_items.length > 1,
value: guid, value: guid,
hint: model.get('name'), hint: model.get('name'),
lock: model.get('isDisplayedInViewer') ? [_set.viewMode, _set.previewReviewMode, _set.viewFormMode, _set.selRangeEdit, _set.editFormula] : [_set.viewMode, _set.previewReviewMode, _set.viewFormMode, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.selRangeEdit, _set.editFormula ],
dataHint: '1', dataHint: '1',
dataHintDirection: 'bottom', dataHintDirection: 'bottom',
dataHintOffset: 'small' dataHintOffset: 'small'

View file

@ -238,6 +238,10 @@ define([
me.fireEvent('comment:resolveComments', [item.value]); me.fireEvent('comment:resolveComments', [item.value]);
}); });
} }
Common.NotificationCenter.on('protect:doclock', function (e) {
me.fireEvent('protect:update');
});
me.fireEvent('protect:update');
} }
return { return {
@ -259,7 +263,7 @@ define([
caption: this.txtAccept, caption: this.txtAccept,
split: !this.appConfig.canUseReviewPermissions, split: !this.appConfig.canUseReviewPermissions,
iconCls: 'toolbar__icon btn-review-save', iconCls: 'toolbar__icon btn-review-save',
lock: [_set.reviewChangelock, _set.isReviewOnly, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect], lock: [_set.reviewChangelock, _set.isReviewOnly, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.docLockReview],
dataHint: '1', dataHint: '1',
dataHintDirection: 'bottom', dataHintDirection: 'bottom',
dataHintOffset: 'small' dataHintOffset: 'small'
@ -271,7 +275,7 @@ define([
caption: this.txtReject, caption: this.txtReject,
split: !this.appConfig.canUseReviewPermissions, split: !this.appConfig.canUseReviewPermissions,
iconCls: 'toolbar__icon btn-review-deny', iconCls: 'toolbar__icon btn-review-deny',
lock: [_set.reviewChangelock, _set.isReviewOnly, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect], lock: [_set.reviewChangelock, _set.isReviewOnly, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.docLockReview],
dataHint: '1', dataHint: '1',
dataHintDirection: 'bottom', dataHintDirection: 'bottom',
dataHintOffset: 'small' dataHintOffset: 'small'
@ -284,7 +288,7 @@ define([
caption: this.txtCompare, caption: this.txtCompare,
split: true, split: true,
iconCls: 'toolbar__icon btn-compare', iconCls: 'toolbar__icon btn-compare',
lock: [_set.hasCoeditingUsers, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect], lock: [_set.hasCoeditingUsers, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments],
dataHint: '1', dataHint: '1',
dataHintDirection: 'bottom', dataHintDirection: 'bottom',
dataHintOffset: 'small' dataHintOffset: 'small'
@ -294,7 +298,7 @@ define([
this.btnTurnOn = new Common.UI.Button({ this.btnTurnOn = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top', cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-ic-review', iconCls: 'toolbar__icon btn-ic-review',
lock: [_set.previewReviewMode, _set.viewFormMode, _set.lostConnect], lock: [_set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.docLockReview],
caption: this.txtTurnon, caption: this.txtTurnon,
split: !this.appConfig.isReviewOnly, split: !this.appConfig.isReviewOnly,
enableToggle: true, enableToggle: true,
@ -309,7 +313,7 @@ define([
this.btnPrev = new Common.UI.Button({ this.btnPrev = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top', cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-review-prev', iconCls: 'toolbar__icon btn-review-prev',
lock: [_set.previewReviewMode, _set.viewFormMode, _set.lostConnect], lock: [_set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments],
caption: this.txtPrev, caption: this.txtPrev,
dataHint: '1', dataHint: '1',
dataHintDirection: 'bottom', dataHintDirection: 'bottom',
@ -320,7 +324,7 @@ define([
this.btnNext = new Common.UI.Button({ this.btnNext = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top', cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-review-next', iconCls: 'toolbar__icon btn-review-next',
lock: [_set.previewReviewMode, _set.viewFormMode, _set.lostConnect], lock: [_set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments],
caption: this.txtNext, caption: this.txtNext,
dataHint: '1', dataHint: '1',
dataHintDirection: 'bottom', dataHintDirection: 'bottom',
@ -336,7 +340,7 @@ define([
this.btnReviewView = new Common.UI.Button({ this.btnReviewView = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top', cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-ic-reviewview', iconCls: 'toolbar__icon btn-ic-reviewview',
lock: [_set.viewFormMode, _set.lostConnect], lock: [_set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments],
caption: this.txtView, caption: this.txtView,
menu: new Common.UI.Menu({ menu: new Common.UI.Menu({
cls: 'ppm-toolbar', cls: 'ppm-toolbar',
@ -404,7 +408,7 @@ define([
this.btnCoAuthMode = new Common.UI.Button({ this.btnCoAuthMode = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top', cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-ic-coedit', iconCls: 'toolbar__icon btn-ic-coedit',
lock: [_set.viewFormMode, _set.lostConnect], lock: [_set.viewFormMode, _set.lostConnect, _set.docLockView],
caption: this.txtCoAuthMode, caption: this.txtCoAuthMode,
menu: true, menu: true,
dataHint: '1', dataHint: '1',
@ -450,7 +454,7 @@ define([
caption: this.txtCommentRemove, caption: this.txtCommentRemove,
split: true, split: true,
iconCls: 'toolbar__icon btn-rem-comment', iconCls: 'toolbar__icon btn-rem-comment',
lock: [_set.previewReviewMode, _set.viewFormMode, _set.hideComments, _set['Objects'], _set.lostConnect], lock: [_set.previewReviewMode, _set.viewFormMode, _set.hideComments, _set['Objects'], _set.lostConnect, _set.docLockView, _set.docLockForms],
dataHint: '1', dataHint: '1',
dataHintDirection: 'bottom', dataHintDirection: 'bottom',
dataHintOffset: 'small' dataHintOffset: 'small'
@ -461,15 +465,13 @@ define([
caption: this.txtCommentResolve, caption: this.txtCommentResolve,
split: true, split: true,
iconCls: 'toolbar__icon btn-resolve-all', iconCls: 'toolbar__icon btn-resolve-all',
lock: [_set.previewReviewMode, _set.viewFormMode, _set.hideComments, _set['Objects'], _set.lostConnect], lock: [_set.previewReviewMode, _set.viewFormMode, _set.hideComments, _set['Objects'], _set.lostConnect, _set.docLockView, _set.docLockForms],
dataHint: '1', dataHint: '1',
dataHintDirection: 'bottom', dataHintDirection: 'bottom',
dataHintOffset: 'small' dataHintOffset: 'small'
}); });
this.lockedControls.push(this.btnCommentResolve); this.lockedControls.push(this.btnCommentResolve);
} }
Common.NotificationCenter.on('app:ready', this.onAppReady.bind(this));
}, },
render: function (el) { render: function (el) {
@ -693,7 +695,6 @@ define([
me.$el.find(separator_last).hide(); me.$el.find(separator_last).hide();
Common.NotificationCenter.trigger('tab:visible', 'review', (config.isEdit || config.canViewReview || config.canCoAuthoring && config.canComments) && Common.UI.LayoutManager.isElementVisible('toolbar-collaboration')); Common.NotificationCenter.trigger('tab:visible', 'review', (config.isEdit || config.canViewReview || config.canCoAuthoring && config.canComments) && Common.UI.LayoutManager.isElementVisible('toolbar-collaboration'));
setEvents.call(me); setEvents.call(me);
}); });
}, },
@ -731,7 +732,7 @@ define([
var button = new Common.UI.Button({ var button = new Common.UI.Button({
cls : 'btn-toolbar', cls : 'btn-toolbar',
iconCls : 'toolbar__icon btn-ic-review', iconCls : 'toolbar__icon btn-ic-review',
lock: [Common.enumLock.viewMode, Common.enumLock.previewReviewMode, Common.enumLock.viewFormMode, Common.enumLock.lostConnect], lock: [Common.enumLock.viewMode, Common.enumLock.previewReviewMode, Common.enumLock.viewFormMode, Common.enumLock.lostConnect, Common.enumLock.docLockView, Common.enumLock.docLockForms, Common.enumLock.docLockComments, Common.enumLock.docLockReview],
hintAnchor : 'top', hintAnchor : 'top',
hint : this.tipReview, hint : this.tipReview,
split : !this.appConfig.isReviewOnly, split : !this.appConfig.isReviewOnly,
@ -778,7 +779,7 @@ define([
button = new Common.UI.Button({ button = new Common.UI.Button({
cls: 'btn-toolbar', cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-ic-docspell', iconCls: 'toolbar__icon btn-ic-docspell',
lock: [Common.enumLock.viewMode, Common.enumLock.viewFormMode, Common.enumLock.previewReviewMode], lock: [Common.enumLock.viewMode, Common.enumLock.viewFormMode, Common.enumLock.previewReviewMode, Common.enumLock.docLockView, Common.enumLock.docLockForms, Common.enumLock.docLockComments],
hintAnchor : 'top', hintAnchor : 'top',
hint: this.tipSetSpelling, hint: this.tipSetSpelling,
enableToggle: true, enableToggle: true,
@ -794,7 +795,7 @@ define([
button = new Common.UI.Button({ button = new Common.UI.Button({
cls: 'btn-toolbar', cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-ic-doclang', iconCls: 'toolbar__icon btn-ic-doclang',
lock: [Common.enumLock.viewMode, Common.enumLock.previewReviewMode, Common.enumLock.viewFormMode, Common.enumLock.noSpellcheckLangs, Common.enumLock.lostConnect], lock: [Common.enumLock.viewMode, Common.enumLock.previewReviewMode, Common.enumLock.viewFormMode, Common.enumLock.noSpellcheckLangs, Common.enumLock.lostConnect, Common.enumLock.docLockView, Common.enumLock.docLockForms, Common.enumLock.docLockComments],
hintAnchor : 'top', hintAnchor : 'top',
hint: this.tipSetDocLang, hint: this.tipSetDocLang,
dataHint: '0', dataHint: '0',
@ -973,6 +974,7 @@ define([
this.options.tpl = _.template(this.template)(this.options); this.options.tpl = _.template(this.template)(this.options);
this.popoverChanges = this.options.popoverChanges; this.popoverChanges = this.options.popoverChanges;
this.mode = this.options.mode; this.mode = this.options.mode;
this.docProtection = this.options.docProtection;
var filter = Common.localStorage.getKeysFilter(); var filter = Common.localStorage.getKeysFilter();
this.appPrefix = (filter && filter.length) ? filter.split(',')[0] : ''; this.appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
@ -983,6 +985,7 @@ define([
render: function() { render: function() {
Common.UI.Window.prototype.render.call(this); Common.UI.Window.prototype.render.call(this);
var _set = Common.enumLock;
this.btnPrev = new Common.UI.Button({ this.btnPrev = new Common.UI.Button({
cls: 'dlg-btn iconic', cls: 'dlg-btn iconic',
iconCls: 'img-commonctrl prev', iconCls: 'img-commonctrl prev',
@ -1003,7 +1006,8 @@ define([
cls : 'btn-toolbar', cls : 'btn-toolbar',
caption : this.txtAccept, caption : this.txtAccept,
split : true, split : true,
disabled : this.mode.isReviewOnly || !!Common.Utils.InternalSettings.get(this.appPrefix + "accept-reject-lock"), disabled : this.mode.isReviewOnly || this.docProtection.isReviewOnly || !!Common.Utils.InternalSettings.get(this.appPrefix + "accept-reject-lock"),
lock : [_set.reviewChangelock, _set.isReviewOnly, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.docLockReview],
menu : this.mode.canUseReviewPermissions ? false : new Common.UI.Menu({ menu : this.mode.canUseReviewPermissions ? false : new Common.UI.Menu({
items: [ items: [
this.mnuAcceptCurrent = new Common.UI.MenuItem({ this.mnuAcceptCurrent = new Common.UI.MenuItem({
@ -1023,7 +1027,7 @@ define([
cls : 'btn-toolbar', cls : 'btn-toolbar',
caption : this.txtReject, caption : this.txtReject,
split : true, split : true,
disabled : this.mode.isReviewOnly || !!Common.Utils.InternalSettings.get(this.appPrefix + "accept-reject-lock"), lock : [_set.reviewChangelock, _set.isReviewOnly, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.docLockReview],
menu : this.mode.canUseReviewPermissions ? false : new Common.UI.Menu({ menu : this.mode.canUseReviewPermissions ? false : new Common.UI.Menu({
items: [ items: [
this.mnuRejectCurrent = new Common.UI.MenuItem({ this.mnuRejectCurrent = new Common.UI.MenuItem({
@ -1038,6 +1042,13 @@ define([
}) })
}); });
this.btnReject.render(this.$window.find('#id-review-button-reject')); this.btnReject.render(this.$window.find('#id-review-button-reject'));
var arr = [this.btnAccept, this.btnReject];
Common.Utils.lockControls(Common.enumLock.isReviewOnly, this.mode.isReviewOnly, {array: arr});
Common.Utils.lockControls(Common.enumLock.docLockView, this.docProtection.isReadOnly, {array: arr});
Common.Utils.lockControls(Common.enumLock.docLockForms, this.docProtection.isFormsOnly, {array: arr});
Common.Utils.lockControls(Common.enumLock.docLockReview, this.docProtection.isReviewOnly, {array: arr});
Common.Utils.lockControls(Common.enumLock.docLockComments, this.docProtection.isCommentsOnly, {array: arr});
Common.Utils.lockControls(Common.enumLock.reviewChangelock, !!Common.Utils.InternalSettings.get(this.appPrefix + "accept-reject-lock"), {array: arr});
var me = this; var me = this;
this.btnPrev.on('click', function (e) { this.btnPrev.on('click', function (e) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 760 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 760 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 B

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 B

After

Width:  |  Height:  |  Size: 191 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 562 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 339 B

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 712 B

View file

@ -25,7 +25,7 @@
} }
{{/spritesheet}} {{/spritesheet}}
{{#sprites}} {{#sprites}}
{{#parselang name}}.x-huge .{{name}}{{/parselang}}, {{#parselang name}}.x-huge .{{name}}{{/parselang}}:not(.menu__icon),
.toolbar__icon-big.{{name}} .toolbar__icon-big.{{name}}
{ {
background-position: 0 {{px.offset_y}}; background-position: 0 {{px.offset_y}};

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 B

After

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 765 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 845 B

View file

@ -131,7 +131,7 @@
--component-hover-icon-opacity: .8; --component-hover-icon-opacity: .8;
--component-active-icon-opacity: 1; --component-active-icon-opacity: 1;
--component-active-hover-icon-opacity: 1; --component-active-hover-icon-opacity: 1;
--component-disabled-opacity: .6; --component-disabled-opacity: .4;
--header-component-normal-icon-opacity: .8; --header-component-normal-icon-opacity: .8;
--header-component-hover-icon-opacity: .8; --header-component-hover-icon-opacity: .8;

View file

@ -78,6 +78,12 @@
} }
} }
} }
.masked & {
&.disabled {
opacity: 1;
}
}
} }

View file

@ -236,6 +236,10 @@ textarea {
background-color: @background-normal; background-color: @background-normal;
color: @text-normal-ie; color: @text-normal-ie;
color: @text-normal; color: @text-normal;
&:-ms-input-placeholder {
color: @text-tertiary-ie;
}
.placeholder();
} }
.btn-edit-table, .btn-edit-table,

View file

@ -9,7 +9,9 @@
border: @scaled-one-px-value solid @border-regular-control; border: @scaled-one-px-value solid @border-regular-control;
background-color: @background-normal-ie; background-color: @background-normal-ie;
background-color: @background-normal; background-color: @background-normal;
&:-ms-input-placeholder {
color: @text-tertiary-ie;
}
&:focus { &:focus {
border-color: @border-control-focus-ie; border-color: @border-control-focus-ie;
border-color: @border-control-focus; border-color: @border-control-focus;

Some files were not shown because too many files have changed in this diff Show more