Merge branch 'feature/long_title' of https://github.com/ONLYOFFICE/web-apps into feature/long_title

This commit is contained in:
Maxim Kadushkin 2022-05-09 20:04:04 +03:00
commit 2993cc8bc5
6 changed files with 84 additions and 39 deletions

View file

@ -204,10 +204,9 @@ define([
} }
function onAppShowed(config) { function onAppShowed(config) {
//config.isCrypted =true; //delete fore merge! // config.isCrypted =true; //delete fore merge!
if ( this.labelDocName ) { if ( this.labelDocName ) {
if ( config.isCrypted ) { if ( config.isCrypted ) {
this.labelDocName.attr({'style':'text-align: left;'});
this.labelDocName.before( this.labelDocName.before(
'<div class="inner-box-icon crypted">' + '<div class="inner-box-icon crypted">' +
'<svg class="icon"><use xlink:href="#svg-icon-crypted"></use></svg>' + '<svg class="icon"><use xlink:href="#svg-icon-crypted"></use></svg>' +
@ -215,14 +214,21 @@ define([
this.imgCrypted = this.labelDocName.parent().find('.crypted'); this.imgCrypted = this.labelDocName.parent().find('.crypted');
} }
if (!config.isEdit || !config.customization || !config.customization.compactHeader) {
var $parent = this.labelDocName.parent(); var $parent = this.labelDocName.parent();
if (!config.isEdit || !config.customization || !config.customization.compactHeader) {
var _left_width = $parent.position().left, var _left_width = $parent.position().left,
_right_width = $parent.next().outerWidth(); _right_width = $parent.next().outerWidth();
if ( _left_width < _right_width ) if ( _left_width < _right_width )
this.labelDocName.parent().css('padding-left', _right_width - _left_width); $parent.css('padding-left', Math.max(2, _right_width - _left_width));
else this.labelDocName.parent().css('padding-right', _left_width - _right_width); else
$parent.css('padding-right', Math.max(2, _left_width - _right_width));
}
if (!(config.customization && config.customization.toolbarHideFileName) && (!config.isEdit || config.customization && config.customization.compactHeader)) {
var basis = parseFloat($parent.css('padding-left') || 0) + parseFloat($parent.css('padding-right') || 0) + parseInt(this.labelDocName.css('min-width') || 50); // 2px - box-shadow
$parent.css('flex-basis', Math.ceil(basis) + 'px');
$parent.closest('.extra.right').css('flex-basis', Math.ceil(basis) + $parent.next().outerWidth() + 'px');
} }
} }
} }
@ -343,6 +349,7 @@ define([
me.withoutExt = true; me.withoutExt = true;
_.delay(function(){ _.delay(function(){
me.setDocTile(name); me.setDocTile(name);
me.labelDocName.select();
},100); },100);
} }
@ -352,8 +359,8 @@ define([
var name = me.labelDocName.val(); var name = me.labelDocName.val();
if ( e.keyCode == Common.UI.Keys.RETURN ) { if ( e.keyCode == Common.UI.Keys.RETURN ) {
name = name.trim(); name = name.trim();
me.isSaveDocName =true;
if ( !_.isEmpty(name) && me.cutDocName(me.documentCaption) !== name ) { if ( !_.isEmpty(name) && me.cutDocName(me.documentCaption) !== name ) {
me.isSaveDocName =true;
if ( /[\t*\+:\"<>?|\\\\/]/gim.test(name) ) { if ( /[\t*\+:\"<>?|\\\\/]/gim.test(name) ) {
_.defer(function() { _.defer(function() {
Common.UI.error({ Common.UI.error({
@ -378,14 +385,15 @@ define([
} }
} else { } else {
Common.NotificationCenter.trigger('edit:complete', me); Common.NotificationCenter.trigger('edit:complete', me);
} }
} else } else
if ( e.keyCode == Common.UI.Keys.ESC ) { if ( e.keyCode == Common.UI.Keys.ESC ) {
Common.NotificationCenter.trigger('edit:complete', this); Common.NotificationCenter.trigger('edit:complete', this);
} else { } else {
me.labelDocName.attr('size', name.length + me.fileExtention.length > 10 ? name.length + me.fileExtention.length : 10); _.delay(function(){
me.setDocTile();
},10);
} }
} }
@ -658,10 +666,6 @@ define([
this.isModified && (value += '*'); this.isModified && (value += '*');
if ( this.labelDocName ) { if ( this.labelDocName ) {
this.setDocTile( value ); this.setDocTile( value );
// this.labelDocName.attr('size', value.length);
//this.setCanRename(this.options.canRename);
//this.setCanRename(true);
} }
return value; return value;
}, },
@ -707,7 +711,6 @@ define([
setCanRename: function (rename) { setCanRename: function (rename) {
//rename = true; //comment out for merge //rename = true; //comment out for merge
var me = this; var me = this;
me.options.canRename = rename; me.options.canRename = rename;
if ( me.labelDocName ) { if ( me.labelDocName ) {
@ -723,6 +726,7 @@ define([
'focus': onFocusDocName.bind(this), 'focus': onFocusDocName.bind(this),
'blur': function (e) { 'blur': function (e) {
me.imgCrypted && me.imgCrypted.attr('hidden', false); me.imgCrypted && me.imgCrypted.attr('hidden', false);
label[0].selectionStart = label[0].selectionEnd = 0;
if(!me.isSaveDocName) { if(!me.isSaveDocName) {
me.withoutExt = false; me.withoutExt = false;
me.setDocTile(me.documentCaption); me.setDocTile(me.documentCaption);
@ -731,7 +735,8 @@ define([
'paste': function (e) { 'paste': function (e) {
setTimeout(function() { setTimeout(function() {
var name = me.cutDocName(me.labelDocName.val()); var name = me.cutDocName(me.labelDocName.val());
me.setDocTile(name); }); me.setDocTile(name);
});
} }
}); });
@ -754,11 +759,26 @@ define([
return (name.substring(idx) == this.fileExtention) ? name.substring(0, idx) : name ; return (name.substring(idx) == this.fileExtention) ? name.substring(0, idx) : name ;
}, },
setDocTile: function(name){
this.labelDocName.val(name);
var ln = this.withoutExt ? this.fileExtention.length : 0;
this.labelDocName.attr('size', name.length + ln > 10 ? name.length + ln : 10);
setDocTile: function(name){
if(name)
this.labelDocName.val(name);
else
name = this.labelDocName.val();
var width = this.getTextWidth(name);
(width>=0) && this.labelDocName.width(width);
},
getTextWidth: function(text) {
if (!this._testCanvas ) {
var font = (this.labelDocName.css('font-size') + ' ' + this.labelDocName.css('font-family')).trim();
if (font) {
var canvas = document.createElement("canvas");
this._testCanvas = canvas.getContext('2d');
this._testCanvas.font = font;
}
}
return this._testCanvas ? this._testCanvas.measureText(text).width : -1;
}, },
setUserName: function(name) { setUserName: function(name) {

View file

@ -51,6 +51,8 @@
&.right { &.right {
flex-grow: 1; flex-grow: 1;
flex-shrink: 0;
overflow: hidden;
} }
.status-label { .status-label {
@ -94,6 +96,9 @@
flex-grow: 1; flex-grow: 1;
display: flex; display: flex;
justify-content: center; justify-content: center;
padding: 4px 2px;
overflow: hidden;
flex-shrink: 0;
} }
#rib-doc-name { #rib-doc-name {
@ -102,13 +107,20 @@
overflow: hidden; overflow: hidden;
min-width: 50px; min-width: 50px;
text-align: center; text-align: center;
color: @text-toolbar-header-ie; color: @text-toolbar-header-ie;
color: @text-toolbar-header; color: @text-toolbar-header;
background-color: transparent; background-color: transparent;
border: 0 none; border: 0 none;
padding: 1px 5px;
cursor: default; cursor: default;
line-height: 32px; line-height: 24px;
&:hover,&:focus {
box-shadow: 0 0 0 1px @highlight-header-button-hover-ie;
box-shadow: 0 0 0 1px @highlight-header-button-hover;
border-radius: 1px;
cursor: text;
}
} }
#rib-save-status { #rib-save-status {
@ -487,6 +499,7 @@
display: flex; display: flex;
justify-content: center; justify-content: center;
overflow: hidden; overflow: hidden;
padding: 4px 2px;
} }
#title-doc-name { #title-doc-name {
@ -495,10 +508,21 @@
overflow: hidden; overflow: hidden;
text-align: center; text-align: center;
font-size: 12px; font-size: 12px;
line-height: 28px; line-height: 24px;
padding: 1px 5px;
background-color: transparent; background-color: transparent;
border: 0 none; border: 0 none;
cursor: default; cursor: default;
&:hover,&:focus{
box-shadow: 0 0 0 1px @highlight-header-button-hover-ie;
box-shadow: 0 0 0 1px @highlight-header-button-hover;
/*border:@highlight-header-button-hover-ie solid 1px;
border:@highlight-header-button-hover solid 1px;*/
border-radius: 1px;
cursor: text;
}
} }
.lr-separator { .lr-separator {
@ -510,7 +534,7 @@
.inner-box-icon.crypted { .inner-box-icon.crypted {
width: 20px; width: 20px;
position: relative; position: relative;
margin-right: 1px;
> svg { > svg {
position: absolute; position: absolute;
width: 20px; width: 20px;

View file

@ -60,6 +60,7 @@
position: relative; position: relative;
overflow: hidden; overflow: hidden;
display: flex; display: flex;
flex-shrink: 1;
> ul { > ul {
padding: 4px 0 0; padding: 4px 0 0;
@ -544,6 +545,10 @@
#rib-doc-name { #rib-doc-name {
color: @text-normal-ie; color: @text-normal-ie;
color: @text-normal; color: @text-normal;
&:hover,&:focus {
box-shadow: 0 0 0 1px @highlight-button-hover-ie;
box-shadow: 0 0 0 1px @highlight-button-hover;
}
} }
&.editor-native-color { &.editor-native-color {
@ -555,7 +560,7 @@
} }
&.style-skip-docname .toolbar { &.style-skip-docname .toolbar {
#box-doc-name > label { #box-doc-name > input {
display: none; display: none;
} }
} }

View file

@ -473,6 +473,9 @@ define([
docInfo.put_Lang(this.editorConfig.lang); docInfo.put_Lang(this.editorConfig.lang);
docInfo.put_Mode(this.editorConfig.mode); docInfo.put_Mode(this.editorConfig.mode);
if (this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object' && this.editorConfig.coEditing.mode!==undefined)
docInfo.put_CoEditingMode(this.editorConfig.coEditing.mode);
var enable = !this.editorConfig.customization || (this.editorConfig.customization.macros!==false); var enable = !this.editorConfig.customization || (this.editorConfig.customization.macros!==false);
docInfo.asc_putIsEnabledMacroses(!!enable); docInfo.asc_putIsEnabledMacroses(!!enable);
enable = !this.editorConfig.customization || (this.editorConfig.customization.plugins!==false); enable = !this.editorConfig.customization || (this.editorConfig.customization.plugins!==false);
@ -1564,9 +1567,8 @@ define([
Common.NotificationCenter.on('comments:showdummy', _.bind(this.onShowDummyComment, this)); Common.NotificationCenter.on('comments:showdummy', _.bind(this.onShowDummyComment, this));
// change = true by default in editor // change = true by default in editor
this.appOptions.canLiveView = !!params.asc_getLiveViewerSupport() && (this.editorConfig.mode === 'view') && !isPDFViewer; // viewer: change=false when no flag canLiveViewer (i.g. old license), change=true by default when canLiveViewer==true
this.appOptions.canChangeCoAuthoring = this.appOptions.isEdit && this.appOptions.canCoAuthoring && !(this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object' && this.editorConfig.coEditing.change===false) || this.appOptions.canChangeCoAuthoring = this.appOptions.isEdit && this.appOptions.canCoAuthoring && !(this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object' && this.editorConfig.coEditing.change===false) ||
this.appOptions.canLiveView && !(this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object' && this.editorConfig.coEditing.change===false); !this.appOptions.isEdit && !this.appOptions.isRestrictedEdit && (this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object' && this.editorConfig.coEditing.change===true) ;
this.loadCoAuthSettings(); this.loadCoAuthSettings();
this.applyModeCommonElements(); this.applyModeCommonElements();

View file

@ -430,10 +430,8 @@ define([
docInfo.put_Lang(this.editorConfig.lang); docInfo.put_Lang(this.editorConfig.lang);
docInfo.put_Mode(this.editorConfig.mode); docInfo.put_Mode(this.editorConfig.mode);
var coEditMode = !(this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object') ? 'fast' : // fast by default if (this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object' && this.editorConfig.coEditing.mode!==undefined)
this.editorConfig.mode === 'view' && this.editorConfig.coEditing.change!==false ? 'fast' : // if can change mode in viewer - set fast for using live viewer docInfo.put_CoEditingMode(this.editorConfig.coEditing.mode);
this.editorConfig.coEditing.mode || 'fast';
docInfo.put_CoEditingMode(coEditMode);
var enable = !this.editorConfig.customization || (this.editorConfig.customization.macros!==false); var enable = !this.editorConfig.customization || (this.editorConfig.customization.macros!==false);
docInfo.asc_putIsEnabledMacroses(!!enable); docInfo.asc_putIsEnabledMacroses(!!enable);
@ -1210,9 +1208,8 @@ define([
this.editorConfig.customization && Common.UI.FeaturesManager.init(this.editorConfig.customization.features, this.appOptions.canBrandingExt); this.editorConfig.customization && Common.UI.FeaturesManager.init(this.editorConfig.customization.features, this.appOptions.canBrandingExt);
// change = true by default in editor // change = true by default in editor
this.appOptions.canLiveView = !!params.asc_getLiveViewerSupport() && (this.editorConfig.mode === 'view'); // viewer: change=false when no flag canLiveViewer (i.g. old license), change=true by default when canLiveViewer==true
this.appOptions.canChangeCoAuthoring = this.appOptions.isEdit && this.appOptions.canCoAuthoring && !(this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object' && this.editorConfig.coEditing.change===false) || this.appOptions.canChangeCoAuthoring = this.appOptions.isEdit && this.appOptions.canCoAuthoring && !(this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object' && this.editorConfig.coEditing.change===false) ||
this.appOptions.canLiveView && !(this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object' && this.editorConfig.coEditing.change===false); !this.appOptions.isEdit && !this.appOptions.isRestrictedEdit && (this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object' && this.editorConfig.coEditing.change===true) ;
this.loadCoAuthSettings(); this.loadCoAuthSettings();
this.applyModeCommonElements(); this.applyModeCommonElements();

View file

@ -504,10 +504,8 @@ define([
docInfo.put_Lang(this.editorConfig.lang); docInfo.put_Lang(this.editorConfig.lang);
docInfo.put_Mode(this.editorConfig.mode); docInfo.put_Mode(this.editorConfig.mode);
var coEditMode = !(this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object') ? 'fast' : // fast by default if (this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object' && this.editorConfig.coEditing.mode!==undefined)
this.editorConfig.mode === 'view' && this.editorConfig.coEditing.change!==false ? 'fast' : // if can change mode in viewer - set fast for using live viewer docInfo.put_CoEditingMode(this.editorConfig.coEditing.mode);
this.editorConfig.coEditing.mode || 'fast';
docInfo.put_CoEditingMode(coEditMode);
var enable = !this.editorConfig.customization || (this.editorConfig.customization.macros!==false); var enable = !this.editorConfig.customization || (this.editorConfig.customization.macros!==false);
docInfo.asc_putIsEnabledMacroses(!!enable); docInfo.asc_putIsEnabledMacroses(!!enable);
@ -1297,11 +1295,10 @@ define([
this.appOptions.canHelp = !((typeof (this.editorConfig.customization) == 'object') && this.editorConfig.customization.help===false); this.appOptions.canHelp = !((typeof (this.editorConfig.customization) == 'object') && this.editorConfig.customization.help===false);
this.appOptions.isRestrictedEdit = !this.appOptions.isEdit && this.appOptions.canComments; this.appOptions.isRestrictedEdit = !this.appOptions.isEdit && this.appOptions.canComments;
// change = true by default in editor // change = true by default in editor, change = false by default in viewer
this.appOptions.canLiveView = !!params.asc_getLiveViewerSupport() && (this.editorConfig.mode === 'view'); // viewer: change=false when no flag canLiveViewer (i.g. old license), change=true by default when canLiveViewer==true
this.appOptions.canChangeCoAuthoring = this.appOptions.isEdit && !(this.appOptions.isEditDiagram || this.appOptions.isEditMailMerge || this.appOptions.isEditOle) && this.appOptions.canCoAuthoring && this.appOptions.canChangeCoAuthoring = this.appOptions.isEdit && !(this.appOptions.isEditDiagram || this.appOptions.isEditMailMerge || this.appOptions.isEditOle) && this.appOptions.canCoAuthoring &&
!(this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object' && this.editorConfig.coEditing.change===false) || !(this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object' && this.editorConfig.coEditing.change===false) ||
this.appOptions.canLiveView && !(this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object' && this.editorConfig.coEditing.change===false); !this.appOptions.isEdit && !this.appOptions.isRestrictedEdit && (this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object' && this.editorConfig.coEditing.change===true) ;
if (!this.appOptions.isEditDiagram && !this.appOptions.isEditMailMerge && !this.appOptions.isEditOle) { if (!this.appOptions.isEditDiagram && !this.appOptions.isEditMailMerge && !this.appOptions.isEditOle) {
this.appOptions.canBrandingExt = params.asc_getCanBranding() && (typeof this.editorConfig.customization == 'object' || this.editorConfig.plugins); this.appOptions.canBrandingExt = params.asc_getCanBranding() && (typeof this.editorConfig.customization == 'object' || this.editorConfig.plugins);