[DE] Hyperlink refactoring
This commit is contained in:
parent
29212eadfe
commit
c23422465e
|
@ -157,7 +157,12 @@ define([
|
||||||
me.internalList = new Common.UI.TreeView({
|
me.internalList = new Common.UI.TreeView({
|
||||||
el: $('#id-dlg-hyperlink-list'),
|
el: $('#id-dlg-hyperlink-list'),
|
||||||
store: new Common.UI.TreeViewStore(),
|
store: new Common.UI.TreeViewStore(),
|
||||||
enableKeyEvents: false
|
enableKeyEvents: true
|
||||||
|
});
|
||||||
|
me.internalList.on('item:select', _.bind(this.onSelectItem, this));
|
||||||
|
|
||||||
|
me.btnOk = new Common.UI.Button({
|
||||||
|
el: $window.find('.primary')
|
||||||
});
|
});
|
||||||
|
|
||||||
$window.find('.dlg-btn').on('click', _.bind(this.onBtnClick, this));
|
$window.find('.dlg-btn').on('click', _.bind(this.onBtnClick, this));
|
||||||
|
@ -170,79 +175,86 @@ define([
|
||||||
this.externalPanel.toggleClass('hidden', value !== c_oHyperlinkType.WebLink);
|
this.externalPanel.toggleClass('hidden', value !== c_oHyperlinkType.WebLink);
|
||||||
this.internalPanel.toggleClass('hidden', value !== c_oHyperlinkType.InternalLink);
|
this.internalPanel.toggleClass('hidden', value !== c_oHyperlinkType.InternalLink);
|
||||||
var store = this.internalList.store;
|
var store = this.internalList.store;
|
||||||
if (value==c_oHyperlinkType.InternalLink && store.length<1) {
|
if (value==c_oHyperlinkType.InternalLink) {
|
||||||
var anchors = this.api.asc_GetHyperlinkAnchors(),
|
if (store.length<1) {
|
||||||
count = anchors.length,
|
var anchors = this.api.asc_GetHyperlinkAnchors(),
|
||||||
prev_level = 0,
|
count = anchors.length,
|
||||||
header_level = 0,
|
prev_level = 0,
|
||||||
arr = [];
|
header_level = 0,
|
||||||
arr.push(new Common.UI.TreeViewModel({
|
arr = [];
|
||||||
name : this.txtBeginning,
|
arr.push(new Common.UI.TreeViewModel({
|
||||||
level: 0,
|
name : this.txtBeginning,
|
||||||
index: 0,
|
level: 0,
|
||||||
hasParent: false,
|
index: 0,
|
||||||
isEmptyItem: false,
|
hasParent: false,
|
||||||
isNotHeader: true,
|
isEmptyItem: false,
|
||||||
hasSubItems: false
|
isNotHeader: true,
|
||||||
}));
|
hasSubItems: false
|
||||||
arr.push(new Common.UI.TreeViewModel({
|
}));
|
||||||
name : this.txtHeadings,
|
arr.push(new Common.UI.TreeViewModel({
|
||||||
level: 0,
|
name : this.txtHeadings,
|
||||||
index: 1,
|
level: 0,
|
||||||
hasParent: false,
|
index: 1,
|
||||||
isEmptyItem: false,
|
hasParent: false,
|
||||||
isNotHeader: false,
|
isEmptyItem: false,
|
||||||
hasSubItems: false
|
isNotHeader: false,
|
||||||
}));
|
hasSubItems: false
|
||||||
|
}));
|
||||||
|
|
||||||
for (var i=0; i<count; i++) {
|
for (var i=0; i<count; i++) {
|
||||||
var anchor = anchors[i],
|
var anchor = anchors[i],
|
||||||
level = anchors[i].asc_GetHeadingLevel(),
|
level = anchors[i].asc_GetHeadingLevel(),
|
||||||
hasParent = true;
|
hasParent = true;
|
||||||
if (anchor.asc_GetType()== Asc.c_oAscHyperlinkAnchor.Heading){
|
if (anchor.asc_GetType()== Asc.c_oAscHyperlinkAnchor.Heading){
|
||||||
if (level>prev_level)
|
if (level>prev_level)
|
||||||
arr[arr.length-1].set('hasSubItems', true);
|
arr[arr.length-1].set('hasSubItems', true);
|
||||||
if (level<=header_level) {
|
if (level<=header_level) {
|
||||||
header_level = level;
|
header_level = level;
|
||||||
hasParent = false;
|
hasParent = false;
|
||||||
|
}
|
||||||
|
arr.push(new Common.UI.TreeViewModel({
|
||||||
|
name : anchor.asc_GetHeadingText(),
|
||||||
|
level: level,
|
||||||
|
index: i+2,
|
||||||
|
hasParent: hasParent
|
||||||
|
}));
|
||||||
|
prev_level = level;
|
||||||
}
|
}
|
||||||
arr.push(new Common.UI.TreeViewModel({
|
|
||||||
name : anchor.asc_GetHeadingText(),
|
|
||||||
level: level,
|
|
||||||
index: i+2,
|
|
||||||
hasParent: hasParent
|
|
||||||
}));
|
|
||||||
prev_level = level;
|
|
||||||
}
|
}
|
||||||
}
|
arr.push(new Common.UI.TreeViewModel({
|
||||||
arr.push(new Common.UI.TreeViewModel({
|
name : this.txtBookmarks,
|
||||||
name : this.txtBookmarks,
|
level: 0,
|
||||||
level: 0,
|
index: arr.length,
|
||||||
index: arr.length,
|
hasParent: false,
|
||||||
hasParent: false,
|
isEmptyItem: false,
|
||||||
isEmptyItem: false,
|
isNotHeader: false,
|
||||||
isNotHeader: false,
|
hasSubItems: false
|
||||||
hasSubItems: false
|
}));
|
||||||
}));
|
|
||||||
|
|
||||||
prev_level = 0;
|
prev_level = 0;
|
||||||
for (var i=0; i<count; i++) {
|
for (var i=0; i<count; i++) {
|
||||||
var anchor = anchors[i],
|
var anchor = anchors[i],
|
||||||
hasParent = true;
|
hasParent = true;
|
||||||
if (anchor.asc_GetType()== Asc.c_oAscHyperlinkAnchor.Bookmark){
|
if (anchor.asc_GetType()== Asc.c_oAscHyperlinkAnchor.Bookmark){
|
||||||
if (prev_level<1)
|
if (prev_level<1)
|
||||||
arr[arr.length-1].set('hasSubItems', true);
|
arr[arr.length-1].set('hasSubItems', true);
|
||||||
arr.push(new Common.UI.TreeViewModel({
|
arr.push(new Common.UI.TreeViewModel({
|
||||||
name : anchor.asc_GetBookmarkName(),
|
name : anchor.asc_GetBookmarkName(),
|
||||||
level: 1,
|
level: 1,
|
||||||
index: arr.length,
|
index: arr.length,
|
||||||
hasParent: false
|
hasParent: false
|
||||||
}));
|
}));
|
||||||
prev_level = 1;
|
prev_level = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
store.reset(arr);
|
||||||
}
|
}
|
||||||
store.reset(arr);
|
var rec = this.internalList.getSelectedRec();
|
||||||
}
|
this.btnOk.setDisabled(rec.length<1 || rec[0].get('level')==0 && rec[0].get('index')>0);
|
||||||
|
|
||||||
|
} else
|
||||||
|
this.btnOk.setDisabled(false);
|
||||||
|
|
||||||
this.linkType = value;
|
this.linkType = value;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -250,6 +262,10 @@ define([
|
||||||
this.ShowHideElem(type);
|
this.ShowHideElem(type);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onSelectItem: function(picker, item, record, e){
|
||||||
|
this.btnOk.setDisabled(record.get('level')==0 && record.get('index')>0);
|
||||||
|
},
|
||||||
|
|
||||||
show: function() {
|
show: function() {
|
||||||
Common.UI.Window.prototype.show.apply(this, arguments);
|
Common.UI.Window.prototype.show.apply(this, arguments);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue