Merge branch 'feature/collaboration-tab' into develop

This commit is contained in:
Julia Radzhabova 2017-10-27 16:03:03 +03:00
commit db3475a6e6
40 changed files with 481 additions and 73 deletions

View file

@ -76,7 +76,8 @@ define([
'reviewchange:delete': _.bind(this.onDeleteClick, this),
'reviewchange:preview': _.bind(this.onBtnPreviewClick, this),
'reviewchanges:view': _.bind(this.onReviewViewClick, this),
'lang:document': _.bind(this.onDocLanguage, this)
'lang:document': _.bind(this.onDocLanguage, this),
'collaboration:coauthmode': _.bind(this.onCoAuthMode, this)
},
'Common.Views.ReviewChangesDialog': {
'reviewchange:accept': _.bind(this.onAcceptClick, this),
@ -131,7 +132,7 @@ define([
SetDisabled: function(state) {
if (this.dlgChanges)
this.dlgChanges.close();
this.view && this.view.SetDisabled(state);
this.view && this.view.SetDisabled(state, this.langs);
},
onApiShowChange: function (sdkchange) {
@ -487,7 +488,7 @@ define([
state = (state == 'on');
this.api.asc_SetTrackRevisions(state);
Common.localStorage.setItem("de-track-changes", state ? 1 : 0);
Common.localStorage.setItem(this.view.appPrefix + "track-changes", state ? 1 : 0);
this.view.turnChanges(state);
}
@ -497,7 +498,7 @@ define([
state = (state == 'on');
this.view.turnSpelling(state);
Common.localStorage.setItem("de-settings-spellcheck", state ? 1 : 0);
Common.localStorage.setItem(this.view.appPrefix + "settings-spellcheck", state ? 1 : 0);
this.api.asc_setSpellCheck(state);
Common.Utils.InternalSettings.set("de-settings-spellcheck", state);
},
@ -520,6 +521,32 @@ define([
return this._state.previewMode;
},
onCoAuthMode: function(menu, item, e) {
Common.localStorage.setItem(this.view.appPrefix + "settings-coauthmode", item.value);
if (this.api) {
this.api.asc_SetFastCollaborative(item.value==1);
if (this.api.SetCollaborativeMarksShowType) {
var value = Common.localStorage.getItem(item.value ? this.view.appPrefix + "settings-showchanges-fast" : this.view.appPrefix + "settings-showchanges-strict");
if (value !== null)
this.api.SetCollaborativeMarksShowType(value == 'all' ? Asc.c_oAscCollaborativeMarksShowType.All :
value == 'none' ? Asc.c_oAscCollaborativeMarksShowType.None : Asc.c_oAscCollaborativeMarksShowType.LastChanges);
else
this.api.SetCollaborativeMarksShowType(item.value ? Asc.c_oAscCollaborativeMarksShowType.None : Asc.c_oAscCollaborativeMarksShowType.LastChanges);
}
value = Common.localStorage.getItem(this.view.appPrefix + "settings-autosave");
if (value===null && this.appConfig.customization && this.appConfig.customization.autosave===false)
value = 0;
value = (!item.value && value!==null) ? parseInt(value) : 1;
Common.localStorage.setItem(this.view.appPrefix + "settings-autosave", value);
this.api.asc_setAutoSaveGap(value);
}
Common.NotificationCenter.trigger('edit:complete', this.view);
},
disableEditing: function(disable) {
var app = this.getApplication();
app.getController('RightMenu').getView('RightMenu').clearSelection();
@ -537,6 +564,12 @@ define([
if (this.view) {
this.view.$el.find('.no-group-mask').css('opacity', 1);
this.view.btnsDocLang && this.view.btnsDocLang.forEach(function(button) {
if ( button ) {
button.setDisabled(disable || this.langs.length<1);
}
}, this);
}
},
@ -551,7 +584,7 @@ define([
onAppReady: function (config) {
var me = this;
if ( me.view && Common.localStorage.getBool("de-settings-spellcheck", true) )
if ( me.view && Common.localStorage.getBool(me.view.appPrefix + "settings-spellcheck", true) )
me.view.turnSpelling(true);
if ( config.canReview ) {
@ -572,7 +605,7 @@ define([
_setReviewStatus(false);
} else {
me.api.asc_HaveRevisionsChanges() && me.view.markChanges(true);
_setReviewStatus(Common.localStorage.getBool("de-track-changes"));
_setReviewStatus(Common.localStorage.getBool(me.view.appPrefix + "track-changes"));
}
if ( typeof (me.appConfig.customization) == 'object' && (me.appConfig.customization.showReviewChanges==true) ) {
@ -586,10 +619,19 @@ define([
}
});
}
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);
});
}
},
applySettings: function(menu) {
this.view && this.view.turnSpelling( Common.localStorage.getBool("de-settings-spellcheck", true) );
this.view && this.view.turnSpelling( Common.localStorage.getBool(this.view.appPrefix + "settings-spellcheck", true) );
this.view && this.view.turnCoAuthMode( Common.localStorage.getBool(this.view.appPrefix + "settings-coauthmode", true) );
},
synchronizeChanges: function() {
@ -600,7 +642,11 @@ define([
setLanguages: function (array) {
this.langs = array;
this.view.btnDocLang.setDisabled(this.langs.length<1);
this.view && this.view.btnsDocLang && this.view.btnsDocLang.forEach(function(button) {
if ( button ) {
button.setDisabled(this.langs.length<1);
}
}, this);
},
onDocLanguage: function() {
@ -625,6 +671,10 @@ define([
})).show();
},
onLostEditRights: function() {
this.view && this.view.onLostEditRights();
},
textInserted: '<b>Inserted:</b>',
textDeleted: '<b>Deleted:</b>',
textParaInserted: '<b>Paragraph Inserted</b> ',

View file

@ -125,6 +125,9 @@ define(['gateway'], function () {
setKeysFilter: function(value) {
_filter = value;
},
getKeysFilter: function() {
return _filter;
},
itemExists: _getItemExists,
sync: _refresh,
save: _save

View file

@ -412,30 +412,35 @@ define([
Common.Views.ReviewChanges = Common.UI.BaseView.extend(_.extend((function(){
var template =
'<section id="review-changes-panel" class="panel" data-tab="review">' +
'<div class="group">' +
'<span id="slot-set-lang" class="btn-slot text x-huge"></span>' +
'<div class="group no-group-mask">' +
'<span id="slot-btn-sharing" class="btn-slot text x-huge"></span>' +
'<span id="slot-btn-coauthmode" class="btn-slot text x-huge"></span>' +
'</div>' +
'<div class="group no-group-mask" style="padding-left: 0;">' +
'<span id="slot-btn-spelling" class="btn-slot text x-huge"></span>' +
'</div>' +
'<div class="separator long comments"/>' +
'<div class="separator long sharing"/>' +
'<div class="group">' +
'<span class="btn-slot text x-huge slot-comment"></span>' +
'</div>' +
'<div class="separator long review"/>' +
'<div class="separator long comments"/>' +
'<div class="group">' +
'<span id="btn-review-on" class="btn-slot text x-huge"></span>' +
'</div>' +
'<div class="group no-group-mask" style="padding-left: 0;">' +
'<span id="btn-review-view" class="btn-slot text x-huge"></span>' +
'</div>' +
'<div class="separator long review"/>' +
'<div class="group move-changes">' +
'<div class="group move-changes" style="padding-left: 0;">' +
'<span id="btn-change-prev" class="btn-slot text x-huge"></span>' +
'<span id="btn-change-next" class="btn-slot text x-huge"></span>' +
'<span id="btn-change-accept" class="btn-slot text x-huge"></span>' +
'<span id="btn-change-reject" class="btn-slot text x-huge"></span>' +
'</div>' +
'<div class="separator long review"/>' +
'<div class="group no-group-mask">' +
'<span id="slot-btn-chat" class="btn-slot text x-huge"></span>' +
'</div>' +
'<div class="separator long chat"/>' +
'<div class="group no-group-mask">' +
'<span id="slot-btn-history" class="btn-slot text x-huge"></span>' +
'</div>' +
'</section>';
function setEvents() {
@ -489,8 +494,26 @@ define([
});
});
this.btnDocLang.on('click', function (btn, e) {
me.fireEvent('lang:document', this);
this.btnsDocLang.forEach(function(button) {
button.on('click', function (b, e) {
me.fireEvent('lang:document', this);
});
});
this.btnSharing && this.btnSharing.on('click', function (btn, e) {
Common.NotificationCenter.trigger('collaboration:sharing');
});
this.btnCoAuthMode && this.btnCoAuthMode.menu.on('item:click', function (menu, item, e) {
me.fireEvent('collaboration:coauthmode', [menu, item]);
});
this.btnHistory && this.btnHistory.on('click', function (btn, e) {
Common.NotificationCenter.trigger('collaboration:history');
});
this.btnChat && this.btnChat.on('click', function (btn, e) {
me.fireEvent('collaboration:chat', [btn.pressed]);
});
}
@ -549,20 +572,45 @@ define([
});
}
this.btnSetSpelling = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'btn-ic-docspell',
caption: this.txtSpelling,
enableToggle: true
});
this.btnsSpelling = [this.btnSetSpelling];
if (!!this.appConfig.sharingSettingsUrl && this.appConfig.sharingSettingsUrl.length && this._readonlyRights!==true) {
this.btnSharing = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'btn-ic-sharing',
caption: this.txtSharing
});
}
this.btnDocLang = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'btn-ic-doclang',
caption: this.txtDocLang,
disabled: true
});
if (!this.appConfig.isOffline && this.appConfig.canCoAuthoring) {
this.btnCoAuthMode = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'btn-ic-coedit',
caption: this.txtCoAuthMode,
menu: true
});
}
this.btnsSpelling = [];
this.btnsDocLang = [];
if (this.appConfig.canUseHistory && !this.appConfig.isDisconnected) {
this.btnHistory = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'btn-ic-history',
caption: this.txtHistory
});
}
if (this.appConfig.canCoAuthoring && this.appConfig.canChat) {
this.btnChat = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'btn-ic-chat',
caption: this.txtChat,
enableToggle: true
});
}
var filter = Common.localStorage.getKeysFilter();
this.appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
Common.NotificationCenter.on('app:ready', this.onAppReady.bind(this));
},
@ -616,29 +664,39 @@ define([
);
me.btnReject.updateHint([me.tipRejectCurrent, me.txtRejectChanges]);
var menuTemplate = _.template('<a id="<%= id %>" tabindex="-1" type="menuitem"><div><%= caption %></div>' +
'<% if (options.description !== null) { %><label style="display: block;color: #a5a5a5;cursor: pointer;white-space: normal;"><%= options.description %></label>' +
'<% } %></a>');
me.btnReviewView.setMenu(
new Common.UI.Menu({
cls: 'ppm-toolbar',
items: [
{
caption: me.txtMarkup,
caption: me.txtMarkupCap,
checkable: true,
toggleGroup: 'menuReviewView',
checked: true,
value: 'markup'
value: 'markup',
template: menuTemplate,
description: me.txtMarkup
},
{
caption: me.txtFinal,
caption: me.txtFinalCap,
checkable: true,
toggleGroup: 'menuReviewView',
checked: false,
template: menuTemplate,
description: me.txtFinal,
value: 'final'
},
{
caption: me.txtOriginal,
caption: me.txtOriginalCap,
checkable: true,
toggleGroup: 'menuReviewView',
checked: false,
template: menuTemplate,
description: me.txtOriginal,
value: 'original'
}
]
@ -647,20 +705,76 @@ define([
me.btnAccept.setDisabled(config.isReviewOnly);
me.btnReject.setDisabled(config.isReviewOnly);
} else {
me.$el.find('.separator.review')
.hide()
.next('.group').hide();
}
if ( !config.canComments || !config.canCoAuthoring) {
$('.separator.comments', me.$el)
.hide()
.next('.group').hide();
me.btnSharing && me.btnSharing.updateHint(me.tipSharing);
me.btnHistory && me.btnHistory.updateHint(me.tipHistory);
me.btnChat && me.btnChat.updateHint(me.txtChat + Common.Utils.String.platformKey('Alt+Q'));
if (me.btnCoAuthMode) {
me.btnCoAuthMode.setMenu(
new Common.UI.Menu({
cls: 'ppm-toolbar',
style: 'max-width: 220px;',
items: [
{
caption: me.strFast,
checkable: true,
toggleGroup: 'menuCoauthMode',
checked: true,
template: menuTemplate,
description: me.strFastDesc,
value: 1
},
{
caption: me.strStrict,
checkable: true,
toggleGroup: 'menuCoauthMode',
checked: false,
template: menuTemplate,
description: me.strStrictDesc,
value: 0
}
]
}));
me.btnCoAuthMode.updateHint(me.tipCoAuthMode);
var value = Common.localStorage.getItem(me.appPrefix + "settings-coauthmode");
if (value===null && !Common.localStorage.itemExists(me.appPrefix + "settings-autosave") &&
config.customization && config.customization.autosave===false) {
value = 0; // use customization.autosave only when de-settings-coauthmode and de-settings-autosave are null
}
me.turnCoAuthMode((value===null || parseInt(value) == 1) && !(config.isDesktopApp && config.isOffline) && config.canCoAuthoring);
}
me.btnDocLang.updateHint(me.tipSetDocLang);
me.btnSetSpelling.updateHint(me.tipSetSpelling);
var separator_sharing = !(me.btnSharing || me.btnCoAuthMode) ? me.$el.find('.separator.sharing') : '.separator.sharing',
separator_comments = !(config.canComments && config.canCoAuthoring) ? me.$el.find('.separator.comments') : '.separator.comments',
separator_review = !config.canReview ? me.$el.find('.separator.review') : '.separator.review',
separator_chat = !me.btnChat ? me.$el.find('.separator.chat') : '.separator.chat',
separator_last;
if (typeof separator_sharing == 'object')
separator_sharing.hide().prev('.group').hide();
else
separator_last = separator_sharing;
if (typeof separator_comments == 'object')
separator_comments.hide().prev('.group').hide();
else
separator_last = separator_comments;
if (typeof separator_review == 'object')
separator_review.hide().prevUntil('.separator.comments').hide();
else
separator_last = separator_review;
if (typeof separator_chat == 'object')
separator_chat.hide().prev('.group').hide();
else
separator_last = separator_chat;
if (!me.btnHistory && separator_last)
me.$el.find(separator_last).hide();
Common.NotificationCenter.trigger('tab:visible', 'review', true);
@ -680,8 +794,10 @@ define([
this.btnReviewView.render(this.$el.find('#btn-review-view'));
}
this.btnSetSpelling.render(this.$el.find('#slot-btn-spelling'));
this.btnDocLang.render(this.$el.find('#slot-set-lang'));
this.btnSharing && this.btnSharing.render(this.$el.find('#slot-btn-sharing'));
this.btnCoAuthMode && this.btnCoAuthMode.render(this.$el.find('#slot-btn-coauthmode'));
this.btnHistory && this.btnHistory.render(this.$el.find('#slot-btn-history'));
this.btnChat && this.btnChat.render(this.$el.find('#slot-btn-chat'));
return this.$el;
},
@ -727,6 +843,17 @@ define([
});
this.btnsSpelling.push(button);
return button;
} else if (type == 'doclang' && parent == 'statusbar' ) {
button = new Common.UI.Button({
cls: 'btn-toolbar',
iconCls: 'btn-ic-doclang',
hintAnchor : 'top',
hint: this.tipSetDocLang,
disabled: true
});
this.btnsDocLang.push(button);
return button;
}
},
@ -760,17 +887,42 @@ define([
}, this);
},
SetDisabled: function (state) {
turnCoAuthMode: function (fast) {
if (this.btnCoAuthMode) {
this.btnCoAuthMode.menu.items[0].setChecked(fast, true);
this.btnCoAuthMode.menu.items[1].setChecked(!fast, true);
}
},
turnChat: function (state) {
this.btnChat && this.btnChat.toggle(state, true);
},
SetDisabled: function (state, langs) {
this.btnsSpelling && this.btnsSpelling.forEach(function(button) {
if ( button ) {
button.setDisabled(state);
}
}, this);
this.btnsDocLang && this.btnsDocLang.forEach(function(button) {
if ( button ) {
button.setDisabled(state || langs && langs.length<1);
}
}, this);
this.btnsTurnReview && this.btnsTurnReview.forEach(function(button) {
if ( button ) {
button.setDisabled(state);
}
}, this);
this.btnChat && this.btnChat.setDisabled(state);
},
onLostEditRights: function() {
this._readonlyRights = true;
if (!this.rendered)
return;
this.btnSharing && this.btnSharing.setDisabled(true);
},
txtAccept: 'Accept',
@ -792,12 +944,26 @@ define([
txtAcceptChanges: 'Accept Changes',
txtRejectChanges: 'Reject Changes',
txtView: 'Display Mode',
txtMarkup: 'All changes (Editing)',
txtFinal: 'All changes accepted (Preview)',
txtOriginal: 'All changes rejected (Preview)',
txtMarkup: 'Text with changes (Editing)',
txtFinal: 'All changes like accept (Preview)',
txtOriginal: 'Text without changes (Preview)',
tipReviewView: 'Select the way you want the changes to be displayed',
tipAcceptCurrent: 'Accept current changes',
tipRejectCurrent: 'Reject current changes'
tipRejectCurrent: 'Reject current changes',
txtSharing: 'Sharing',
tipSharing: 'Manage document access rights',
txtCoAuthMode: 'Co-editing Mode',
tipCoAuthMode: 'Set co-editing mode',
strFast: 'Fast',
strStrict: 'Strict',
txtHistory: 'Version History',
tipHistory: 'Show version history',
txtChat: 'Chat',
txtMarkupCap: 'Markup',
txtFinalCap: 'Final',
txtOriginalCap: 'Original',
strFastDesc: 'Real-time co-editing. All changes are saved automatically.',
strStrictDesc: 'Use the \'Save\' button to sync the changes you and others make.'
}
}()), Common.Views.ReviewChanges || {}));

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View file

@ -11,10 +11,10 @@
<polygon points="13,31 10,28 10,30 6,30 6,32 10,32 10,34 "/>
</symbol>
<symbol id="svg-btn-users" viewBox="0 0 20 20">
<path d="M16.469,14.184l-0.161-1.113c0.658-0.479,1.118-1.524,1.118-2.319c0-1.092-0.863-2.013-1.926-2.013c-1.063,0-1.925,0.868-1.925,1.961c0,0.795,0.46,1.766,1.118,2.242l-0.162,1.247c-0.461,0.039-0.863,0.108-1.214,0.215
c-0.886-1.419-2.496-2.061-3.997-2.226l-0.129-0.844c0.903-0.804,1.559-2.239,1.559-3.48c0-1.85-1.458-3.354-3.25-3.354S4.25,5.985,4.25,7.811c0,1.23,0.644,2.616,1.562,3.419l-0.135,0.952C3.459,12.427,1,13.705,1,17h18
C19,16,18.387,14.345,16.469,14.184z M2.517,16c0.136-1.908,1.116-2.647,3.642-2.86l0.397-0.033l0.328-2.317L6.64,10.612C5.86,10.048,5.25,8.816,5.25,7.811C5.25,6.536,6.26,5.5,7.5,5.5s2.25,1.056,2.25,2.354c0,1.024-0.624,2.312-1.391,2.868L8.113,10.9
l0.337,2.202l0.393,0.033c2.525,0.213,3.505,0.952,3.641,2.864H2.517z"/>
<path fill="#FFFFFF" d="M7,3.999c1.103,0,2,0.897,2,2C9,7.103,8.103,8,7,8C5.897,8,5,7.103,5,5.999C5,4.896,5.897,3.999,7,3.999 M7,2.999c-1.657,0-3,1.344-3,3S5.343,9,7,9c1.657,0,3-1.345,3-3.001S8.657,2.999,7,2.999L7,2.999z"/>
<path fill="#FFFFFF" d="M7,11.666c4.185,0,4.909,2.268,5,2.642V16H2v-1.688C2.1,13.905,2.841,11.666,7,11.666 M7,10.666 c-5.477,0-6,3.545-6,3.545V17h12v-2.789C13,14.211,12.477,10.666,7,10.666L7,10.666z"/>
<circle fill="#FFFFFF" cx="14.5" cy="8.001" r="2.5"/>
<path fill="#FFFFFF" d="M14.5,11.863c-0.566,0-1.056,0.059-1.49,0.152c0.599,0.726,0.895,1.481,0.979,2.049L14,14.138V17h5v-2.263 C19,14.737,18.607,11.863,14.5,11.863z"/>
</symbol>
<symbol id="svg-btn-download" viewBox="0 0 20 20">
<rect x="4" y="16" width="12" height="1"/>

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -279,6 +279,10 @@
.button-normal-icon(~'x-huge .btn-ic-docspell', 12, @toolbar-big-icon-size);
.button-normal-icon(~'x-huge .btn-ic-review', 13, @toolbar-big-icon-size);
.button-normal-icon(~'x-huge .btn-ic-reviewview', 30, @toolbar-big-icon-size);
.button-normal-icon(~'x-huge .btn-ic-sharing', 31, @toolbar-big-icon-size);
.button-normal-icon(~'x-huge .btn-ic-coedit', 32, @toolbar-big-icon-size);
.button-normal-icon(~'x-huge .btn-ic-chat', 33, @toolbar-big-icon-size);
.button-normal-icon(~'x-huge .btn-ic-history', 34, @toolbar-big-icon-size);
.button-normal-icon(review-save, 14, @toolbar-big-icon-size);
.button-normal-icon(review-deny, 15, @toolbar-big-icon-size);
.button-normal-icon(review-next, 16, @toolbar-big-icon-size);

View file

@ -103,11 +103,18 @@ define([
'search:replace': _.bind(this.onQueryReplace, this),
'search:replaceall': _.bind(this.onQueryReplaceAll, this),
'search:highlight': _.bind(this.onSearchHighlight, this)
},
'Common.Views.ReviewChanges': {
'collaboration:chat': _.bind(this.onShowHideChat, this)
}
});
Common.NotificationCenter.on('leftmenu:change', _.bind(this.onMenuChange, this));
Common.NotificationCenter.on('app:comment:add', _.bind(this.onAppAddComment, this));
Common.NotificationCenter.on('collaboration:history', _.bind(function () {
if ( !this.leftMenu.panelHistory.isVisible() )
this.clickMenuFileItem(null, 'history');
}, this));
},
onLaunch: function() {
@ -271,7 +278,7 @@ define([
default: close_menu = false;
}
if (close_menu) {
if (close_menu && menu) {
menu.hide();
}
},
@ -718,7 +725,7 @@ define([
win = new Common.Views.SignDialog({
api: me.api,
signType: 'invisible',
handler: function(dlg, result) {
handler: function (dlg, result) {
if (result == 'ok') {
var props = dlg.getSettings();
me.api.asc_Sign(props.certificateId);
@ -732,6 +739,18 @@ define([
menu.hide();
},
onShowHideChat: function(state) {
if (this.mode.canCoAuthoring && this.mode.canChat && !this.mode.isLightVersion) {
if (state) {
Common.UI.Menu.Manager.hideAll();
this.leftMenu.showMenu('chat');
} else {
this.leftMenu.btnChat.toggle(false, true);
this.leftMenu.onBtnMenuClick(this.leftMenu.btnChat);
}
}
},
textNoTextFound : 'Text not found',
newDocumentTitle : 'Unnamed document',
requestEditRightsText : 'Requesting editing rights...',

View file

@ -99,6 +99,8 @@ define([
me.btnSpelling = review.getButton('spelling', 'statusbar');
me.btnSpelling.render( me.statusbar.$layout.find('#btn-doc-spell') );
me.btnDocLang = review.getButton('doclang', 'statusbar');
me.btnDocLang.render( me.statusbar.$layout.find('#btn-doc-lang') );
} else {
me.statusbar.$el.find('.el-edit, .el-review').hide();
}

View file

@ -2841,7 +2841,7 @@ define([
me.toolbar.render(_.extend({isCompactView: compactview}, config));
if ( config.isEdit ) {
var tab = {action: 'review', caption: me.toolbar.textTabReview};
var tab = {action: 'review', caption: me.toolbar.textTabCollaboration};
var $panel = DE.getController('Common.Controllers.ReviewChanges').createToolbarPanel();
if ( $panel ) {

View file

@ -19,6 +19,7 @@
<div class="caret up img-commonctrl" />
</div>
</div>
<span id="btn-doc-lang" class="el-edit"></span>
<span id="btn-doc-spell" class="el-edit"></span>
<div class="separator short el-edit"></div>
<div id="btn-doc-review" class="el-edit el-review" style="display: inline-block;"></div>

View file

@ -870,6 +870,8 @@ define([
});
}
Common.NotificationCenter.on('collaboration:sharing', _.bind(this.changeAccessRights, this));
return this;
},

View file

@ -276,7 +276,7 @@ define([
}
if (this.mode.canChat) {
this.panelChat['hide']();
this.btnChat.toggle(false, true);
this.btnChat.toggle(false);
}
}
/** coauthoring end **/

View file

@ -2507,7 +2507,8 @@ define([
capImgWrapping: 'Wrapping',
capBtnComment: 'Comment',
textColumnsCustom: 'Custom Columns',
textSurface: 'Surface'
textSurface: 'Surface',
textTabCollaboration: 'Collaboration'
}
})(), DE.Views.Toolbar || {}));
});

View file

@ -207,10 +207,13 @@
"Common.Views.ReviewChanges.txtAcceptCurrent": "Accept Current Change",
"Common.Views.ReviewChanges.txtClose": "Close",
"Common.Views.ReviewChanges.txtDocLang": "Language",
"Common.Views.ReviewChanges.txtFinal": "All changes accepted (Preview)",
"Common.Views.ReviewChanges.txtMarkup": "All changes (Editing)",
"Common.Views.ReviewChanges.txtFinal": "All changes like accept (Preview)",
"Common.Views.ReviewChanges.txtMarkup": "Text with changes (Editing)",
"Common.Views.ReviewChanges.txtNext": "Next",
"Common.Views.ReviewChanges.txtOriginal": "All changes rejected (Preview)",
"Common.Views.ReviewChanges.txtOriginal": "Text without changes (Preview)",
"Common.Views.ReviewChanges.txtMarkupCap": "Markup",
"Common.Views.ReviewChanges.txtFinalCap": "Final",
"Common.Views.ReviewChanges.txtOriginalCap": "Original",
"Common.Views.ReviewChanges.txtPrev": "Previous",
"Common.Views.ReviewChanges.txtReject": "Reject",
"Common.Views.ReviewChanges.txtRejectAll": "Reject All Changes",
@ -219,6 +222,16 @@
"Common.Views.ReviewChanges.txtSpelling": "Spell Checking",
"Common.Views.ReviewChanges.txtTurnon": "Track Changes",
"Common.Views.ReviewChanges.txtView": "Display Mode",
"Common.Views.ReviewChanges.txtSharing": "Sharing",
"Common.Views.ReviewChanges.tipSharing": "Manage document access rights",
"Common.Views.ReviewChanges.txtCoAuthMode": "Co-editing Mode",
"Common.Views.ReviewChanges.tipCoAuthMode": "Set co-editing mode",
"Common.Views.ReviewChanges.strFast": "Fast",
"Common.Views.ReviewChanges.strStrict": "Strict",
"Common.Views.ReviewChanges.strFastDesc": "Real-time co-editing. All changes are saved automatically.",
"Common.Views.ReviewChanges.strStrictDesc": "Use the 'Save' button to sync the changes you and others make.",
"Common.Views.ReviewChanges.txtHistory": "Version History",
"Common.Views.ReviewChanges.tipHistory": "Show version history",
"Common.Views.ReviewChangesDialog.textTitle": "Review Changes",
"Common.Views.ReviewChangesDialog.txtAccept": "Accept",
"Common.Views.ReviewChangesDialog.txtAcceptAll": "Accept All Changes",
@ -1665,6 +1678,7 @@
"DE.Views.Toolbar.textTabInsert": "Insert",
"DE.Views.Toolbar.textTabLayout": "Layout",
"DE.Views.Toolbar.textTabReview": "Review",
"DE.Views.Toolbar.textTabCollaboration": "Collaboration",
"DE.Views.Toolbar.textTitleError": "Error",
"DE.Views.Toolbar.textToCurrent": "To current position",
"DE.Views.Toolbar.textTop": "Top: ",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View file

@ -317,7 +317,7 @@
//.button-normal-icon(btn-text, 46, @toolbar-icon-size);
//.button-normal-icon(btn-insertequation, 53, @toolbar-icon-size);
//.button-normal-icon(btn-dropcap, 50, @toolbar-icon-size);
//.button-normal-icon(btn-ic-doclang, 67, @toolbar-icon-size);
.button-normal-icon(btn-ic-doclang, 67, @toolbar-icon-size);
@menu-icon-size: 22px;
.menu-icon-normal(mnu-wrap-inline, 0, @menu-icon-size);

View file

@ -155,6 +155,7 @@ require([
/** coauthoring end **/
,'Common.Controllers.Plugins'
,'Common.Controllers.ExternalDiagramEditor'
,'Common.Controllers.ReviewChanges'
]
});
@ -185,6 +186,7 @@ require([
'common/main/lib/controller/Plugins',
'presentationeditor/main/app/view/ChartSettings',
'common/main/lib/controller/ExternalDiagramEditor'
,'common/main/lib/controller/ReviewChanges'
], function() {
app.start();
});

View file

@ -96,6 +96,9 @@ define([
'hide': _.bind(this.onSearchDlgHide, this),
'search:back': _.bind(this.onQuerySearch, this, 'back'),
'search:next': _.bind(this.onQuerySearch, this, 'next')
},
'Common.Views.ReviewChanges': {
'collaboration:chat': _.bind(this.onShowHideChat, this)
}
});
Common.NotificationCenter.on('leftmenu:change', _.bind(this.onMenuChange, this));
@ -587,6 +590,18 @@ define([
}
},
onShowHideChat: function(state) {
if (this.mode.canCoAuthoring && this.mode.canChat && !this.mode.isLightVersion) {
if (state) {
Common.UI.Menu.Manager.hideAll();
this.leftMenu.showMenu('chat');
} else {
this.leftMenu.btnChat.toggle(false, true);
this.leftMenu.onBtnMenuClick(this.leftMenu.btnChat);
}
}
},
textNoTextFound : 'Text not found',
newDocumentTitle : 'Unnamed document',
requestEditRightsText : 'Requesting editing rights...'

View file

@ -874,7 +874,8 @@ define([
application = this.getApplication(),
toolbarController = application.getController('Toolbar'),
rightmenuController = application.getController('RightMenu'),
fontsControllers = application.getController('Common.Controllers.Fonts');
fontsControllers = application.getController('Common.Controllers.Fonts'),
reviewController = application.getController('Common.Controllers.ReviewChanges');
// me.getStore('SlideLayouts');
fontsControllers && fontsControllers.setApi(me.api);
@ -882,6 +883,8 @@ define([
rightmenuController && rightmenuController.setApi(me.api);
reviewController.setMode(me.appOptions).setConfig({config: me.editorConfig}, me.api);
var viewport = this.getApplication().getController('Viewport').getView('Viewport');
viewport.applyEditorMode();

View file

@ -2071,6 +2071,15 @@ define([
}
me.toolbar.render(_.extend({compactview: compactview}, config));
if ( config.isEdit ) {
var tab = {action: 'review', caption: me.toolbar.textTabCollaboration};
var $panel = PE.getController('Common.Controllers.ReviewChanges').createToolbarPanel();
if ( $panel ) {
me.toolbar.addTab(tab, $panel, 3);
}
}
},
onAppReady: function (config) {

View file

@ -665,6 +665,8 @@ define([
});
}
Common.NotificationCenter.on('collaboration:sharing', _.bind(this.changeAccessRights, this));
return this;
},

View file

@ -282,7 +282,7 @@ define([
}
if (this.mode.canChat) {
this.panelChat['hide']();
this.btnChat.toggle(false, true);
this.btnChat.toggle(false);
}
}
/** coauthoring end **/

View file

@ -1841,7 +1841,8 @@ define([
textTabHome: 'Home',
textTabInsert: 'Insert',
textSurface: 'Surface',
textShowPresenterView: 'Show presenter view'
textShowPresenterView: 'Show presenter view',
textTabCollaboration: 'Collaboration'
}
}()), PE.Views.Toolbar || {}));
});

View file

@ -146,6 +146,7 @@ require([
/** coauthoring end **/
,'Common.Controllers.Plugins'
,'Common.Controllers.ExternalDiagramEditor'
,'Common.Controllers.ReviewChanges'
]
});
@ -176,6 +177,7 @@ require([
'common/main/lib/controller/Plugins',
'presentationeditor/main/app/view/ChartSettings',
'common/main/lib/controller/ExternalDiagramEditor'
,'common/main/lib/controller/ReviewChanges'
], function() {
window.compareVersions = true;
app.start();

View file

@ -126,6 +126,45 @@
"Common.Views.RenameDialog.okButtonText": "Ok",
"Common.Views.RenameDialog.textName": "File name",
"Common.Views.RenameDialog.txtInvalidName": "The file name cannot contain any of the following characters: ",
"Common.Views.ReviewChanges.hintNext": "To next change",
"Common.Views.ReviewChanges.hintPrev": "To previous change",
"Common.Views.ReviewChanges.tipAcceptCurrent": "Accept current change",
"Common.Views.ReviewChanges.tipRejectCurrent": "Reject current change",
"Common.Views.ReviewChanges.tipReview": "Track changes",
"Common.Views.ReviewChanges.tipReviewView": "Select the mode you want the changes to be displayed",
"Common.Views.ReviewChanges.tipSetDocLang": "Set document language",
"Common.Views.ReviewChanges.tipSetSpelling": "Spell checking",
"Common.Views.ReviewChanges.txtAccept": "Accept",
"Common.Views.ReviewChanges.txtAcceptAll": "Accept All Changes",
"Common.Views.ReviewChanges.txtAcceptChanges": "Accept changes",
"Common.Views.ReviewChanges.txtAcceptCurrent": "Accept Current Change",
"Common.Views.ReviewChanges.txtClose": "Close",
"Common.Views.ReviewChanges.txtDocLang": "Language",
"Common.Views.ReviewChanges.txtFinal": "All changes like accept (Preview)",
"Common.Views.ReviewChanges.txtMarkup": "Text with changes (Editing)",
"Common.Views.ReviewChanges.txtNext": "Next",
"Common.Views.ReviewChanges.txtOriginal": "Text without changes (Preview)",
"Common.Views.ReviewChanges.txtMarkupCap": "Markup",
"Common.Views.ReviewChanges.txtFinalCap": "Final",
"Common.Views.ReviewChanges.txtOriginalCap": "Original",
"Common.Views.ReviewChanges.txtPrev": "Previous",
"Common.Views.ReviewChanges.txtReject": "Reject",
"Common.Views.ReviewChanges.txtRejectAll": "Reject All Changes",
"Common.Views.ReviewChanges.txtRejectChanges": "Reject changes",
"Common.Views.ReviewChanges.txtRejectCurrent": "Reject Current Change",
"Common.Views.ReviewChanges.txtSpelling": "Spell Checking",
"Common.Views.ReviewChanges.txtTurnon": "Track Changes",
"Common.Views.ReviewChanges.txtView": "Display Mode",
"Common.Views.ReviewChanges.txtSharing": "Sharing",
"Common.Views.ReviewChanges.tipSharing": "Manage document access rights",
"Common.Views.ReviewChanges.txtCoAuthMode": "Co-editing Mode",
"Common.Views.ReviewChanges.tipCoAuthMode": "Set co-editing mode",
"Common.Views.ReviewChanges.strFast": "Fast",
"Common.Views.ReviewChanges.strStrict": "Strict",
"Common.Views.ReviewChanges.strFastDesc": "Real-time co-editing. All changes are saved automatically.",
"Common.Views.ReviewChanges.strStrictDesc": "Use the 'Save' button to sync the changes you and others make.",
"Common.Views.ReviewChanges.txtHistory": "Version History",
"Common.Views.ReviewChanges.tipHistory": "Show version history",
"Common.Views.SignDialog.textTitle": "Sign Document",
"Common.Views.SignDialog.textPurpose": "Purpose for signing this document",
"Common.Views.SignDialog.textCertificate": "Certificate",
@ -1352,6 +1391,7 @@
"PE.Views.Toolbar.textTabFile": "File",
"PE.Views.Toolbar.textTabHome": "Home",
"PE.Views.Toolbar.textTabInsert": "Insert",
"PE.Views.Toolbar.textTabCollaboration": "Collaboration",
"PE.Views.Toolbar.textTitleError": "Error",
"PE.Views.Toolbar.textUnderline": "Underline",
"PE.Views.Toolbar.textZoom": "Zoom",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View file

@ -160,6 +160,7 @@ require([
'Common.Controllers.Chat',
'Common.Controllers.Comments',
'Common.Controllers.Plugins'
,'Common.Controllers.ReviewChanges'
]
});
@ -191,6 +192,7 @@ require([
'common/main/lib/controller/Comments',
'common/main/lib/controller/Chat',
'common/main/lib/controller/Plugins'
,'common/main/lib/controller/ReviewChanges'
], function() {
app.start();
});

View file

@ -90,6 +90,9 @@ define([
'search:next': _.bind(this.onQuerySearch, this, 'next'),
'search:replace': _.bind(this.onQueryReplace, this),
'search:replaceall': _.bind(this.onQueryReplaceAll, this)
},
'Common.Views.ReviewChanges': {
'collaboration:chat': _.bind(this.onShowHideChat, this)
}
});
Common.NotificationCenter.on('app:comment:add', _.bind(this.onAppAddComment, this));
@ -812,6 +815,18 @@ define([
menu.hide();
},
onShowHideChat: function(state) {
if (this.mode.canCoAuthoring && this.mode.canChat && !this.mode.isLightVersion) {
if (state) {
Common.UI.Menu.Manager.hideAll();
this.leftMenu.showMenu('chat');
} else {
this.leftMenu.btnChat.toggle(false, true);
this.leftMenu.onBtnMenuClick(this.leftMenu.btnChat);
}
}
},
textNoTextFound : 'Text not found',
newDocumentTitle : 'Unnamed document',
textItemEntireCell : 'Entire cell contents',

View file

@ -943,7 +943,8 @@ define([
toolbarController = application.getController('Toolbar'),
statusbarController = application.getController('Statusbar'),
rightmenuController = application.getController('RightMenu'),
fontsControllers = application.getController('Common.Controllers.Fonts');
fontsControllers = application.getController('Common.Controllers.Fonts'),
reviewController = application.getController('Common.Controllers.ReviewChanges');
fontsControllers && fontsControllers.setApi(me.api);
toolbarController && toolbarController.setApi(me.api);
@ -951,6 +952,8 @@ define([
rightmenuController && rightmenuController.setApi(me.api);
reviewController.setMode(me.appOptions).setConfig({config: me.editorConfig}, me.api);
if (statusbarController) {
statusbarController.getView('Statusbar').changeViewMode(true);
}

View file

@ -2926,11 +2926,18 @@ define([
if ( !config.isEditDiagram && !config.isEditMailMerge ) {
var tab = {action: 'pivot', caption: me.textPivot};
var $panel = me.getApplication().getController('PivotTable').createToolbarPanel();
if ( $panel ) {
me.toolbar.addTab(tab, $panel, 3);
me.toolbar.setVisible('pivot', true);
}
tab = {action: 'review', caption: me.toolbar.textTabCollaboration};
$panel = SSE.getController('Common.Controllers.ReviewChanges').createToolbarPanel();
if ( $panel ) {
me.toolbar.addTab(tab, $panel, 4);
me.toolbar.setVisible('review', true);
}
}
});
},

View file

@ -1119,6 +1119,8 @@ define([
});
}
Common.NotificationCenter.on('collaboration:sharing', _.bind(this.changeAccessRights, this));
return this;
},

View file

@ -255,7 +255,7 @@ define([
}
if (this.mode.canChat) {
this.panelChat['hide']();
this.btnChat.toggle(false, true);
this.btnChat.toggle(false);
}
}
/** coauthoring end **/

View file

@ -2068,6 +2068,7 @@ define([
textTabHome: 'Home',
textTabInsert: 'Insert',
textSurface: 'Surface',
tipChangeChart: 'Change Chart Type'
tipChangeChart: 'Change Chart Type',
textTabCollaboration: 'Collaboration'
}, SSE.Views.Toolbar || {}));
});

View file

@ -150,6 +150,7 @@ require([
'Common.Controllers.Chat',
'Common.Controllers.Comments',
'Common.Controllers.Plugins'
,'Common.Controllers.ReviewChanges'
]
});
@ -181,6 +182,7 @@ require([
'common/main/lib/controller/Comments',
'common/main/lib/controller/Chat',
'common/main/lib/controller/Plugins'
,'common/main/lib/controller/ReviewChanges'
], function() {
window.compareVersions = true;
app.start();

View file

@ -112,6 +112,45 @@
"Common.Views.RenameDialog.okButtonText": "Ok",
"Common.Views.RenameDialog.textName": "File name",
"Common.Views.RenameDialog.txtInvalidName": "The file name cannot contain any of the following characters: ",
"Common.Views.ReviewChanges.hintNext": "To next change",
"Common.Views.ReviewChanges.hintPrev": "To previous change",
"Common.Views.ReviewChanges.tipAcceptCurrent": "Accept current change",
"Common.Views.ReviewChanges.tipRejectCurrent": "Reject current change",
"Common.Views.ReviewChanges.tipReview": "Track changes",
"Common.Views.ReviewChanges.tipReviewView": "Select the mode you want the changes to be displayed",
"Common.Views.ReviewChanges.tipSetDocLang": "Set document language",
"Common.Views.ReviewChanges.tipSetSpelling": "Spell checking",
"Common.Views.ReviewChanges.txtAccept": "Accept",
"Common.Views.ReviewChanges.txtAcceptAll": "Accept All Changes",
"Common.Views.ReviewChanges.txtAcceptChanges": "Accept changes",
"Common.Views.ReviewChanges.txtAcceptCurrent": "Accept Current Change",
"Common.Views.ReviewChanges.txtClose": "Close",
"Common.Views.ReviewChanges.txtDocLang": "Language",
"Common.Views.ReviewChanges.txtFinal": "All changes like accept (Preview)",
"Common.Views.ReviewChanges.txtMarkup": "Text with changes (Editing)",
"Common.Views.ReviewChanges.txtNext": "Next",
"Common.Views.ReviewChanges.txtOriginal": "Text without changes (Preview)",
"Common.Views.ReviewChanges.txtMarkupCap": "Markup",
"Common.Views.ReviewChanges.txtFinalCap": "Final",
"Common.Views.ReviewChanges.txtOriginalCap": "Original",
"Common.Views.ReviewChanges.txtPrev": "Previous",
"Common.Views.ReviewChanges.txtReject": "Reject",
"Common.Views.ReviewChanges.txtRejectAll": "Reject All Changes",
"Common.Views.ReviewChanges.txtRejectChanges": "Reject changes",
"Common.Views.ReviewChanges.txtRejectCurrent": "Reject Current Change",
"Common.Views.ReviewChanges.txtSpelling": "Spell Checking",
"Common.Views.ReviewChanges.txtTurnon": "Track Changes",
"Common.Views.ReviewChanges.txtView": "Display Mode",
"Common.Views.ReviewChanges.txtSharing": "Sharing",
"Common.Views.ReviewChanges.tipSharing": "Manage document access rights",
"Common.Views.ReviewChanges.txtCoAuthMode": "Co-editing Mode",
"Common.Views.ReviewChanges.tipCoAuthMode": "Set co-editing mode",
"Common.Views.ReviewChanges.strFast": "Fast",
"Common.Views.ReviewChanges.strStrict": "Strict",
"Common.Views.ReviewChanges.strFastDesc": "Real-time co-editing. All changes are saved automatically.",
"Common.Views.ReviewChanges.strStrictDesc": "Use the 'Save' button to sync the changes you and others make.",
"Common.Views.ReviewChanges.txtHistory": "Version History",
"Common.Views.ReviewChanges.tipHistory": "Show version history",
"Common.Views.SignDialog.textTitle": "Sign Document",
"Common.Views.SignDialog.textPurpose": "Purpose for signing this document",
"Common.Views.SignDialog.textCertificate": "Certificate",
@ -1694,6 +1733,7 @@
"SSE.Views.Toolbar.textTabFile": "File",
"SSE.Views.Toolbar.textTabHome": "Home",
"SSE.Views.Toolbar.textTabInsert": "Insert",
"SSE.Views.Toolbar.textTabCollaboration": "Collaboration",
"SSE.Views.Toolbar.textTopBorders": "Top Borders",
"SSE.Views.Toolbar.textUnderline": "Underline",
"SSE.Views.Toolbar.textWinLossSpark": "Win/Loss",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB