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>,
key: 'key',
vkey: 'vkey',
referenceData: 'data for external paste',
info: {
owner: 'owner name',
folder: 'path to document',
@ -218,6 +219,7 @@
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)
uiTheme: 'theme-dark' // set interface theme: id or default-dark/default-light
integrationMode: "embed" // turn off scroll to frame
},
coEditing: {
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
'onRequestSharingSettings': <request sharing settings>,// must call setSharingSettings method
'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.canRequestSharingSettings = _config.events && !!_config.events.onRequestSharingSettings;
_config.editorConfig.canRequestCreateNew = _config.events && !!_config.events.onRequestCreateNew;
_config.editorConfig.canRequestReferenceData = _config.events && !!_config.events.onRequestReferenceData;
_config.frameEditorId = placeholderId;
_config.parentOrigin = window.location.origin;
@ -490,6 +494,9 @@
if (target && _checkConfigParams()) {
iframe = createIframe(_config);
if (_config.editorConfig.customization && _config.editorConfig.customization.integrationMode==='embed')
window.AscEmbed && window.AscEmbed.initWorker(iframe);
if (iframe.src) {
var pathArray = iframe.src.split('/');
this.frameOrigin = pathArray[0] + '//' + pathArray[2];
@ -732,6 +739,13 @@
});
};
var _setReferenceData = function(data) {
_sendCommand({
command: 'setReferenceData',
data: data
});
};
var _serviceCommand = function(command, data) {
_sendCommand({
command: 'internalCommand',
@ -766,7 +780,8 @@
setFavorite : _setFavorite,
requestClose : _requestClose,
grabFocus : _grabFocus,
blurFocus : _blurFocus
blurFocus : _blurFocus,
setReferenceData : _setReferenceData
}
};

View file

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

View file

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

View file

@ -393,18 +393,36 @@ define([
if (suspendEvents)
this.suspendEvents();
if (!this.multiSelect) {
this.extremeSeletedRec = record;
if (!this.multiSelect || ( !this.pressedShift && !this.pressedCtrl) || !this.currentSelectedRec || (this.pressedShift && this.currentSelectedRec == record)) {
_.each(this.store.where({selected: true}), function(rec){
rec.set({selected: false});
});
if (record) {
record.set({selected: true});
this.currentSelectedRec = record;
}
} else {
if (record)
record.set({selected: !record.get('selected')});
if (record) {
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)
@ -708,13 +726,22 @@ define([
onKeyDown: function (e, data) {
if ( this.disabled ) return;
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.stopPropagation();
var rec = this.getSelectedRec();
if (this.lastSelectedRec===null)
var rec =(this.multiSelect) ? this.extremeSeletedRec : this.getSelectedRec();
if (this.lastSelectedRec === null)
this.lastSelectedRec = rec;
if (data.keyCode==Common.UI.Keys.RETURN) {
if (data.keyCode == Common.UI.Keys.RETURN) {
this.lastSelectedRec = null;
if (this.selectedBeforeHideRec) // only for ComboDataView menuPicker
rec = this.selectedBeforeHideRec;
@ -724,6 +751,7 @@ define([
if (this.parentMenu)
this.parentMenu.hide();
} else {
this.pressedCtrl=false;
var idx = _.indexOf(this.store.models, rec);
if (idx<0) {
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() {
if (this.enableKeyEvents && this.handleSelect) {
var el = $(this.el).find('.inner').addBack().filter('.inner');
el.addClass('canfocused');
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:keyup' : 'keyup', _.bind(this.onKeyUp, this));
}
},
@ -819,7 +855,11 @@ define([
this.scrollToRecord(this.lastSelectedRec);
this.lastSelectedRec = null;
} 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);
}.bind(this));
Common.NotificationCenter.on('app:ready', this.onAppReady.bind(this));
},
onLaunch: function () {
var filter = Common.localStorage.getKeysFilter();
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.setComparator();
@ -1645,16 +1655,25 @@ define([
},
setPreviewMode: function(mode) {
if (this.viewmode === mode) return;
this.viewmode = mode;
if (mode)
this._state.disableEditing = mode;
this.updatePreviewMode();
},
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.mode.canComments = (mode) ? false : this.prevcanComments;
this.mode.canComments = (viewmode) ? false : this.prevcanComments;
this.closeEditing();
this.setMode(this.mode);
this.updateComments(true);
if (this.getPopover())
mode ? this.getPopover().hide() : this.getPopover().update(true);
viewmode ? this.getPopover().hide() : this.getPopover().update(true);
},
clearCollections: function() {
@ -1718,6 +1737,27 @@ define([
}
}
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 || {}));

View file

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

View file

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

View file

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

View file

@ -457,7 +457,7 @@ Common.UI.HintManager = new(function() {
};
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;
_api = api;
@ -480,7 +480,7 @@ Common.UI.HintManager = new(function() {
_clearHints();
});
$(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();
if (!_hintVisible) {
$('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 &&
!(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();
}
});
@ -663,7 +664,7 @@ Common.UI.HintManager = new(function() {
};
var _clearHints = function (isComplete) {
if (Common.Utils.isIE)
if (Common.Utils.isIE || Common.UI.isMac && Common.Utils.isGecko)
return;
_hintVisible && _hideHints();
if (_currentHints.length > 0) {

View file

@ -105,6 +105,7 @@ define([
Common.NotificationCenter.on('app:face', this.onAppShowed.bind(this));
Common.NotificationCenter.on('uitheme:changed', 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) {
@ -151,6 +152,16 @@ define([
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) {
this.api = api;
@ -225,6 +236,10 @@ define([
var _group = $('> .group', me.$toolbarPanelPlugins);
var $slot = $('<span class="btn-slot text x-huge"></span>').appendTo(_group);
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;
});
_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 {
console.error('toolbar panel isnot created');
}
@ -518,10 +537,13 @@ define([
}
var variationsArr = [],
pluginVisible = false;
pluginVisible = false,
isDisplayedInViewer = false;
item.variations.forEach(function(itemVar){
var visible = (isEdit || itemVar.isViewer && (itemVar.isDisplayedInViewer!==false)) && _.contains(itemVar.EditorsSupport, editor) && !itemVar.isSystem;
if ( visible ) pluginVisible = true;
if (itemVar.isViewer && (itemVar.isDisplayedInViewer!==false))
isDisplayedInViewer = true;
if (item.isUICustomizer ) {
visible && arrUI.push({
@ -571,7 +593,8 @@ define([
groupName: (item.group) ? item.group.name : '',
groupRank: (item.group) ? item.group.rank : 0,
minVersion: item.minVersion,
original: item
original: item,
isDisplayedInViewer: isDisplayedInViewer
}));
}
});
@ -720,6 +743,19 @@ define([
}, funcComplete);
} else
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 || {}));
});

View file

@ -82,7 +82,8 @@ define([
'reviewchange:view': _.bind(this.onReviewViewClick, this),
'reviewchange:compare': _.bind(this.onCompareClick, 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': {
'reviewchange:accept': _.bind(this.onAcceptClick, this),
@ -102,7 +103,15 @@ define([
this.userCollection = this.getApplication().getCollection('Common.Collections.Users');
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('spelling:turn', this.onTurnSpelling.bind(this));
@ -164,26 +173,35 @@ define([
SetDisabled: function(state, reviewMode, fillFormMode) {
if (this.dlgChanges)
this.dlgChanges.close();
if (reviewMode)
if (reviewMode) {
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);
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.setPreviewMode(state);
},
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
if (this.viewmode === mode) return;
this.viewmode = mode;
if (mode)
this._state.disableEditing = mode;
this.updatePreviewMode();
},
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.appConfig.canReview = (mode) ? false : this.prevcanReview;
this.appConfig.canReview = (viewmode) ? false : this.prevcanReview;
var me = this;
this.popoverChanges && this.popoverChanges.each(function (model) {
model.set('hint', !me.appConfig.canReview);
@ -207,17 +225,14 @@ define([
onApiShowChange: function (sdkchange, isShow) {
var btnlock = true,
changes;
if (this.appConfig.canReview && !this.appConfig.isReviewOnly) {
if (this.appConfig.canReview && !(this.appConfig.isReviewOnly || this._state.docProtection.isReviewOnly)) {
if (sdkchange && sdkchange.length>0) {
changes = this.readSDKChange(sdkchange);
btnlock = this.isSelectedChangesLocked(changes, isShow);
}
if (this._state.lock !== btnlock) {
Common.Utils.lockControls(Common.enumLock.reviewChangelock, btnlock, {array: [this.view.btnAccept, this.view.btnReject]});
if (this.dlgChanges) {
this.dlgChanges.btnAccept.setDisabled(btnlock);
this.dlgChanges.btnReject.setDisabled(btnlock);
}
this.dlgChanges && Common.Utils.lockControls(Common.enumLock.reviewChangelock, btnlock, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
this._state.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()),
user = me.userCollection.findOriginalUser(item.get_UserId()),
isProtectedReview = me._state.docProtection.isReviewOnly,
change = new Common.Models.ReviewChange({
uid : Common.UI.getId(),
userid : item.get_UserId(),
@ -499,8 +515,9 @@ define([
changedata : item,
scope : me.view,
hint : !me.appConfig.canReview,
docProtection: me._state.docProtection,
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);
@ -589,7 +606,7 @@ define([
},
onTurnPreview: function(state, global, fromApi) {
if ( this.appConfig.isReviewOnly ) {
if ( this.appConfig.isReviewOnly) {
this.view.turnChanges(true);
} else
if ( this.appConfig.canReview ) {
@ -603,7 +620,7 @@ define([
},
onApiTrackRevisionsChange: function(localFlag, globalFlag, userId) {
if ( this.appConfig.isReviewOnly ) {
if ( this.appConfig.isReviewOnly || this._state.docProtection.isReviewOnly) {
this.view.turnChanges(true);
} else
if ( this.appConfig.canReview ) {
@ -634,8 +651,10 @@ define([
this.turnDisplayMode(item.value);
if (!this.appConfig.isEdit && !this.appConfig.isRestrictedEdit)
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.Utils.InternalSettings.set(this.view.appPrefix + "review-mode-editor", item.value);
}
Common.NotificationCenter.trigger('edit:complete', this.view);
},
@ -805,7 +824,7 @@ define([
rightMenu: {clear: disable, disable: true},
statusBar: true,
leftMenu: {disable: false, previewMode: true},
fileMenu: {protect: true},
fileMenu: {protect: true, info: true},
navigation: {disable: false, previewMode: true},
comments: {disable: false, previewMode: true},
chat: false,
@ -829,10 +848,10 @@ define([
onAppReady: function (config) {
var me = this;
if ( config.canReview ) {
(new Promise(function (resolve) {
resolve();
})).then(function () {
(new Promise(function (resolve) {
resolve();
})).then(function () {
if ( config.canReview ) {
// function _setReviewStatus(state, global) {
// me.view.turnChanges(state, global);
// !global && me.api.asc_SetLocalTrackRevisions(state);
@ -854,7 +873,7 @@ define([
!val && (val = me.appConfig.customization ? me.appConfig.customization.reviewDisplay : undefined);
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.view.turnDisplayMode(val);
@ -862,46 +881,49 @@ define([
(!me.appConfig.customization.review || me.appConfig.customization.review.showReviewChanges===undefined) && me.appConfig.customization.showReviewChanges==true) ) {
me.dlgChanges = (new Common.Views.ReviewChangesDialog({
popoverChanges : me.popoverChanges,
mode : me.appConfig
mode : me.appConfig,
docProtection : me._state.docProtection
}));
var sdk = $('#editor_sdk'),
offset = sdk.offset();
me.dlgChanges.show(Math.max(10, offset.left + sdk.width() - 300), Math.max(10, offset.top + sdk.height() - 150));
}
});
} else if (config.canViewReview) {
config.canViewReview = (config.isEdit || me.api.asc_HaveRevisionsChanges(true)); // check revisions from all users
if (config.canViewReview) {
var val = Common.localStorage.getItem(me.view.appPrefix + (config.isEdit || config.isRestrictedEdit ? "review-mode-editor" : "review-mode"));
if (val===null) {
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 = /^(original|final|markup|simple)$/i.test(val) ? val.toLocaleLowerCase() : (config.isEdit || config.isRestrictedEdit ? 'markup' : 'original');
} else if (config.canViewReview) {
config.canViewReview = (config.isEdit || me.api.asc_HaveRevisionsChanges(true)); // check revisions from all users
if (config.canViewReview) {
var val = Common.localStorage.getItem(me.view.appPrefix + (config.isEdit || config.isRestrictedEdit ? "review-mode-editor" : "review-mode"));
if (val===null) {
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 = /^(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) {
me.getApplication().getController('LeftMenu').leftMenu.btnChat.on('toggle', function(btn, state){
if (state !== me.view.btnChat.pressed)
me.view.turnChat(state);
});
}
me.onChangeProtectSheet();
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['Objects'], !!this._state.wsProps['Objects'], {array: [me.view.btnCommentRemove, me.view.btnCommentResolve]});
}
if (me.view && me.view.btnChat) {
me.getApplication().getController('LeftMenu').leftMenu.btnChat.on('toggle', function(btn, state){
if (state !== me.view.btnChat.pressed)
me.view.turnChat(state);
});
}
me.onChangeProtectSheet();
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['Objects'], !!me._state.wsProps['Objects'], {array: [me.view.btnCommentRemove, me.view.btnCommentResolve]});
}
var val = Common.localStorage.getItem(me.view.appPrefix + "settings-review-hover-mode");
if (val === null) {
val = me.appConfig.customization && me.appConfig.customization.review ? !!me.appConfig.customization.review.hoverMode : false;
} else
val = !!parseInt(val);
Common.Utils.InternalSettings.set(me.view.appPrefix + "settings-review-hover-mode", val);
me.appConfig.reviewHoverMode = val;
var val = Common.localStorage.getItem(me.view.appPrefix + "settings-review-hover-mode");
if (val === null) {
val = me.appConfig.customization && me.appConfig.customization.review ? !!me.appConfig.customization.review.hoverMode : false;
} else
val = !!parseInt(val);
Common.Utils.InternalSettings.set(me.view.appPrefix + "settings-review-hover-mode", val);
me.appConfig.reviewHoverMode = val;
me.view && me.view.onAppReady(config);
});
},
applySettings: function(menu) {
@ -971,7 +993,8 @@ define([
},
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() {
@ -1011,6 +1034,37 @@ define([
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>',
textDeleted: '<b>Deleted:</b>',
textParaInserted: '<b>Paragraph Inserted</b> ',

View file

@ -9,7 +9,7 @@
<div class="btn-goto img-commonctrl"></div>
<% } %>
<% if (!hint) { %>
<% if (scope.appConfig.isReviewOnly) { %>
<% if (scope.appConfig.isReviewOnly || docProtection.isReviewOnly) { %>
<% if (editable) { %>
<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',
showCls: (this.options.iconType==='svg' ? 'svg-icon' : 'toolbar__icon') + ' btn-sheet-view',
hideCls: (this.options.iconType==='svg' ? 'svg-icon' : 'toolbar__icon') + ' hide-password',
maxLength: this.options.maxPasswordLength,
validateOnBlur: false,
showPwdOnClick: true,
validation : function(value) {

View file

@ -154,6 +154,8 @@ define([
this.$window.css('left',(maxWidth - width - borders_width) / 2);
this.$window.css('top',(maxHeight - height - this._headerFooterHeight) / 2);
this._restoreHeight = this._restoreWidth = undefined;
},
onWindowResize: function() {
@ -162,26 +164,38 @@ define([
win_width = this.getWidth(),
win_height = this.getHeight(),
bordersOffset = (this.resizable) ? 0 : this.bordersOffset;
if (win_height<main_height-bordersOffset*2+0.1 && win_width<main_width-bordersOffset*2+0.1) {
var left = this.getLeft(),
top = this.getTop();
if (win_height<main_height-bordersOffset*2+0.1 ) {
if (!this.resizable && this._restoreHeight>0 && win_height < this._restoreHeight) {
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);
else if (top+win_height>main_height-bordersOffset)
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);
else if (left+win_width>main_width-bordersOffset)
this.$window.css('left', main_width-bordersOffset-win_width);
} else {
if (win_height>main_height-bordersOffset*2) {
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) {
this.setWidth(Math.max(main_width-bordersOffset*2, this.initConfig.minwidth));
this.$window.css('left', bordersOffset);
if (this._restoreWidth===undefined) {
this._restoreWidth = win_width;
}
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);
this._locked = false;
this._state = {
DisabledControls: false
DisabledControls: false,
docProtection: {
isReadOnly: false,
isReviewOnly: false,
isFormsOnly: false,
isCommentsOnly: false
}
};
this.lockedControls = [];
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) {
@ -153,6 +155,7 @@ define([
if ( !this.storePlugins.isEmpty() ) {
var me = this;
var _group = $('<div class="group"></div>');
var _set = Common.enumLock;
this.storePlugins.each(function (model) {
if (model.get('visible')) {
var modes = model.get('variations'),
@ -167,6 +170,7 @@ define([
split: modes && modes.length > 1,
value: guid,
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',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
@ -179,6 +183,10 @@ define([
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);
$('<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) {
if (!this.pluginsPanel) return false;
@ -289,9 +307,6 @@ define([
this.loadMask.hide();
},
_onAppReady: function (mode) {
},
parseIcons: function(icons) {
if (icons.length && typeof icons[0] !== 'string') {
var theme = Common.UI.Themes.currentThemeId().toLowerCase(),
@ -389,6 +404,7 @@ define([
});
});
var _set = Common.enumLock;
var btn = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconImg: icon_url,
@ -397,6 +413,7 @@ define([
split: _menu_items.length > 1,
value: guid,
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',
dataHintDirection: 'bottom',
dataHintOffset: 'small'

View file

@ -238,6 +238,10 @@ define([
me.fireEvent('comment:resolveComments', [item.value]);
});
}
Common.NotificationCenter.on('protect:doclock', function (e) {
me.fireEvent('protect:update');
});
me.fireEvent('protect:update');
}
return {
@ -259,7 +263,7 @@ define([
caption: this.txtAccept,
split: !this.appConfig.canUseReviewPermissions,
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',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
@ -271,7 +275,7 @@ define([
caption: this.txtReject,
split: !this.appConfig.canUseReviewPermissions,
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',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
@ -284,7 +288,7 @@ define([
caption: this.txtCompare,
split: true,
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',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
@ -294,7 +298,7 @@ define([
this.btnTurnOn = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
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,
split: !this.appConfig.isReviewOnly,
enableToggle: true,
@ -309,7 +313,7 @@ define([
this.btnPrev = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
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,
dataHint: '1',
dataHintDirection: 'bottom',
@ -320,7 +324,7 @@ define([
this.btnNext = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
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,
dataHint: '1',
dataHintDirection: 'bottom',
@ -336,7 +340,7 @@ define([
this.btnReviewView = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
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,
menu: new Common.UI.Menu({
cls: 'ppm-toolbar',
@ -404,7 +408,7 @@ define([
this.btnCoAuthMode = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-ic-coedit',
lock: [_set.viewFormMode, _set.lostConnect],
lock: [_set.viewFormMode, _set.lostConnect, _set.docLockView],
caption: this.txtCoAuthMode,
menu: true,
dataHint: '1',
@ -450,7 +454,7 @@ define([
caption: this.txtCommentRemove,
split: true,
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',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
@ -461,15 +465,13 @@ define([
caption: this.txtCommentResolve,
split: true,
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',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
});
this.lockedControls.push(this.btnCommentResolve);
}
Common.NotificationCenter.on('app:ready', this.onAppReady.bind(this));
},
render: function (el) {
@ -693,7 +695,6 @@ define([
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'));
setEvents.call(me);
});
},
@ -731,7 +732,7 @@ define([
var button = new Common.UI.Button({
cls : 'btn-toolbar',
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',
hint : this.tipReview,
split : !this.appConfig.isReviewOnly,
@ -778,7 +779,7 @@ define([
button = new Common.UI.Button({
cls: 'btn-toolbar',
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',
hint: this.tipSetSpelling,
enableToggle: true,
@ -794,7 +795,7 @@ define([
button = new Common.UI.Button({
cls: 'btn-toolbar',
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',
hint: this.tipSetDocLang,
dataHint: '0',
@ -973,6 +974,7 @@ define([
this.options.tpl = _.template(this.template)(this.options);
this.popoverChanges = this.options.popoverChanges;
this.mode = this.options.mode;
this.docProtection = this.options.docProtection;
var filter = Common.localStorage.getKeysFilter();
this.appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
@ -983,6 +985,7 @@ define([
render: function() {
Common.UI.Window.prototype.render.call(this);
var _set = Common.enumLock;
this.btnPrev = new Common.UI.Button({
cls: 'dlg-btn iconic',
iconCls: 'img-commonctrl prev',
@ -1003,7 +1006,8 @@ define([
cls : 'btn-toolbar',
caption : this.txtAccept,
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({
items: [
this.mnuAcceptCurrent = new Common.UI.MenuItem({
@ -1023,7 +1027,7 @@ define([
cls : 'btn-toolbar',
caption : this.txtReject,
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({
items: [
this.mnuRejectCurrent = new Common.UI.MenuItem({
@ -1038,6 +1042,13 @@ define([
})
});
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;
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}}
{{#sprites}}
{{#parselang name}}.x-huge .{{name}}{{/parselang}},
{{#parselang name}}.x-huge .{{name}}{{/parselang}}:not(.menu__icon),
.toolbar__icon-big.{{name}}
{
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-active-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-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;
color: @text-normal-ie;
color: @text-normal;
&:-ms-input-placeholder {
color: @text-tertiary-ie;
}
.placeholder();
}
.btn-edit-table,

View file

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

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