diff --git a/apps/common/main/lib/component/TreeView.js b/apps/common/main/lib/component/TreeView.js index d8b645e2c..8f32ea245 100644 --- a/apps/common/main/lib/component/TreeView.js +++ b/apps/common/main/lib/component/TreeView.js @@ -264,6 +264,22 @@ define([ expandToLevel: function(expandLevel) { this.store.expandToLevel(expandLevel); this.scroller.update({minScrollbarLength: 40, alwaysVisibleY: this.scrollAlwaysVisible}); + }, + + expandRecord: function(record) { + if (record) { + record.set('isExpanded', true); + this.store.expandSubItems(record); + this.scroller.update({minScrollbarLength: 40, alwaysVisibleY: this.scrollAlwaysVisible}); + } + }, + + collapseRecord: function(record) { + if (record) { + record.set('isExpanded', false); + this.store.collapseSubItems(record); + this.scroller.update({minScrollbarLength: 40, alwaysVisibleY: this.scrollAlwaysVisible}); + } } } })()); diff --git a/apps/documenteditor/main/app/view/HyperlinkSettingsDialog.js b/apps/documenteditor/main/app/view/HyperlinkSettingsDialog.js index 2cfb377bd..643fc3839 100644 --- a/apps/documenteditor/main/app/view/HyperlinkSettingsDialog.js +++ b/apps/documenteditor/main/app/view/HyperlinkSettingsDialog.js @@ -200,6 +200,7 @@ define([ hasParent: false, isEmptyItem: false, isNotHeader: false, + type: Asc.c_oAscHyperlinkAnchor.Heading, hasSubItems: false })); @@ -232,6 +233,7 @@ define([ hasParent: false, isEmptyItem: false, isNotHeader: false, + type: Asc.c_oAscHyperlinkAnchor.Bookmark, hasSubItems: false })); @@ -294,19 +296,25 @@ define([ } else { me.inputUrl.setValue(''); } + this.btnOk.setDisabled($.trim(this.inputUrl.getValue())==''); } else { if (props.is_TopOfDocument()) this.internalList.selectByIndex(0); else if (props.is_Heading()) { - var heading = props.get_Heading(), - rec = this.internalList.store.findWhere({type: Asc.c_oAscHyperlinkAnchor.Heading, headingParagraph: heading }); - if (rec) + var rec = this.internalList.store.findWhere({type: Asc.c_oAscHyperlinkAnchor.Heading, headingParagraph: props.get_Heading() }); + if (rec) { + this.internalList.expandRecord(this.internalList.store.at(1)); this.internalList.scrollToRecord(this.internalList.selectRecord(rec)); + } } else { var rec = this.internalList.store.findWhere({type: Asc.c_oAscHyperlinkAnchor.Bookmark, name: bookmark}); - if (rec) + if (rec) { + this.internalList.expandRecord(this.internalList.store.findWhere({type: Asc.c_oAscHyperlinkAnchor.Bookmark, level: 0})); this.internalList.scrollToRecord(this.internalList.selectRecord(rec)); + } } + var rec = this.internalList.getSelectedRec(); + this.btnOk.setDisabled(!rec || rec.get('level')==0 && rec.get('index')>0); } if (props.get_Text() !== null) { diff --git a/apps/presentationeditor/main/app/view/HyperlinkSettingsDialog.js b/apps/presentationeditor/main/app/view/HyperlinkSettingsDialog.js index c2cf38d00..04bcfab52 100644 --- a/apps/presentationeditor/main/app/view/HyperlinkSettingsDialog.js +++ b/apps/presentationeditor/main/app/view/HyperlinkSettingsDialog.js @@ -158,58 +158,6 @@ define([ maxLength : Asc.c_oAscMaxTooltipLength }); - // me.radioNext = new Common.UI.RadioBox({ - // el: $('#id-dlg-hyperlink-radio-next'), - // labelText: this.txtNext, - // name: 'asc-radio-slide', - // checked: true - // }); - // - // me.radioPrev = new Common.UI.RadioBox({ - // el: $('#id-dlg-hyperlink-radio-prev'), - // labelText: this.txtPrev, - // name: 'asc-radio-slide' - // }); - // - // me.radioFirst = new Common.UI.RadioBox({ - // el: $('#id-dlg-hyperlink-radio-first'), - // labelText: this.txtFirst, - // name: 'asc-radio-slide' - // }); - // - // me.radioLast = new Common.UI.RadioBox({ - // el: $('#id-dlg-hyperlink-radio-last'), - // labelText: this.txtLast, - // name: 'asc-radio-slide' - // }); - // - // me.radioSlide = new Common.UI.RadioBox({ - // el: $('#id-dlg-hyperlink-radio-slide'), - // labelText: this.txtSlide, - // name: 'asc-radio-slide' - // }); - // - // me.cmbSlides = new Common.UI.ComboBox({ - // el: $('#id-dlg-hyperlink-slide'), - // cls: 'input-group-nr', - // style: 'width: 50px;', - // menuStyle: 'min-width: 50px; max-height: 200px;', - // data: this.slides - // }); - // me.cmbSlides.setValue(0); - // me.cmbSlides.on('selected', _.bind(function(combo, record) { - // me.radioSlide.setValue(true); - // }, me)) - // .on('changed:after', _.bind(function(combo, record) { - // me.radioSlide.setValue(true); - // if (record.value>me.slides.length) - // combo.setValue(me.slides.length-1); - // else if (record.value<1) - // combo.setValue(0); - // else - // combo.setValue(record.value-1); - // }, me)); - me.internalList = new Common.UI.TreeView({ el: $('#id-dlg-hyperlink-list'), store: new Common.UI.TreeViewStore(), @@ -408,6 +356,7 @@ define([ store.reset(arr); } var rec = this.internalList.getSelectedRec(); + rec && this.internalList.scrollToRecord(rec); this.btnOk.setDisabled(!rec || rec.get('index')==4); } else this.btnOk.setDisabled($.trim(this.inputUrl.getValue())==''); diff --git a/apps/spreadsheeteditor/main/app/view/HyperlinkSettingsDialog.js b/apps/spreadsheeteditor/main/app/view/HyperlinkSettingsDialog.js index 5010d1568..a1a6e11b4 100644 --- a/apps/spreadsheeteditor/main/app/view/HyperlinkSettingsDialog.js +++ b/apps/spreadsheeteditor/main/app/view/HyperlinkSettingsDialog.js @@ -206,26 +206,21 @@ define([ var type = (settings.props) ? settings.props.asc_getType() : Asc.c_oAscHyperlinkType.WebLink; (type == Asc.c_oAscHyperlinkType.WebLink) ? me.btnExternal.toggle(true) : me.btnInternal.toggle(true); - me.ShowHideElem(type); + me.ShowHideElem(type, settings.props); me.btnInternal.setDisabled(!settings.allowInternal && (type == Asc.c_oAscHyperlinkType.WebLink)); me.btnExternal.setDisabled(!settings.allowInternal && (type == Asc.c_oAscHyperlinkType.RangeLink)); - var sheet = settings.currentSheet; if (!settings.props) { this.inputDisplay.setValue(settings.isLock ? this.textDefault : settings.text); this.focusedInput = this.inputUrl.cmpEl.find('input'); } else { if (type == Asc.c_oAscHyperlinkType.RangeLink) { - sheet = settings.props.asc_getSheet(); - if (sheet) { + if (settings.props.asc_getSheet()) { this.inputRange.setValue(settings.props.asc_getRange()); } else {// named range - sheet = settings.props.asc_getRange(); this.inputRange.setDisabled(true); } this.focusedInput = this.inputRange.cmpEl.find('input'); - var rec = this.internalList.store.findWhere({name: sheet }); - rec && this.internalList.scrollToRecord(this.internalList.selectRecord(rec)); } else { this.inputUrl.setValue(settings.props.asc_getHyperlinkUrl().replace(new RegExp(" ",'g'), "%20")); this.focusedInput = this.inputUrl.cmpEl.find('input'); @@ -248,7 +243,7 @@ define([ if (rec && rec.get('level')>0) { if (rec.get('type')) {// named range props.asc_setSheet(null); - props.asc_setRange(rec.get('name')); + props.asc_setLocation(rec.get('name')); def_display = rec.get('name'); } else { props.asc_setSheet(rec.get('name')); @@ -313,7 +308,7 @@ define([ this.close(); }, - ShowHideElem: function(value) { + ShowHideElem: function(value, props) { this.externalPanel.toggleClass('hidden', value !== Asc.c_oAscHyperlinkType.WebLink); this.internalPanel.toggleClass('hidden', value !== Asc.c_oAscHyperlinkType.RangeLink); var store = this.internalList.store; @@ -329,6 +324,7 @@ define([ hasParent: false, isEmptyItem: false, isNotHeader: true, + isExpanded: false, hasSubItems: true })); for (var i=0; i