[DE mobile] Fixed add/edit link
This commit is contained in:
parent
25e20d4877
commit
0e18a30fd2
|
@ -49,7 +49,8 @@ define([
|
||||||
|
|
||||||
DE.Controllers.DocumentHolder = Backbone.Controller.extend((function() {
|
DE.Controllers.DocumentHolder = Backbone.Controller.extend((function() {
|
||||||
// private
|
// private
|
||||||
var _isEdit = false;
|
var _stack,
|
||||||
|
_isEdit = false;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
models: [],
|
models: [],
|
||||||
|
@ -71,7 +72,6 @@ define([
|
||||||
|
|
||||||
this.api.asc_registerCallback('asc_onShowPopMenu', _.bind(this.onApiShowPopMenu, this));
|
this.api.asc_registerCallback('asc_onShowPopMenu', _.bind(this.onApiShowPopMenu, this));
|
||||||
this.api.asc_registerCallback('asc_onHidePopMenu', _.bind(this.onApiHidePopMenu, this));
|
this.api.asc_registerCallback('asc_onHidePopMenu', _.bind(this.onApiHidePopMenu, this));
|
||||||
this.api.asc_registerCallback('asc_onFocusObject', _.bind(this.onApiFocusObject, this));
|
|
||||||
},
|
},
|
||||||
|
|
||||||
setMode: function (mode) {
|
setMode: function (mode) {
|
||||||
|
@ -109,6 +109,13 @@ define([
|
||||||
|
|
||||||
DE.getController('AddContainer').showModal();
|
DE.getController('AddContainer').showModal();
|
||||||
DE.getController('AddOther').getView('AddOther').showLink();
|
DE.getController('AddOther').getView('AddOther').showLink();
|
||||||
|
} else if ('openlink' == eventName) {
|
||||||
|
_.some(_stack, function (item) {
|
||||||
|
if (item.get_ObjectType() == Asc.c_oAscTypeSelectElement.Hyperlink) {
|
||||||
|
me._openLink(item.get_ObjectValue().get_Value());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
me.view.hideMenu();
|
me.view.hideMenu();
|
||||||
|
@ -122,7 +129,10 @@ define([
|
||||||
|
|
||||||
onApiShowPopMenu: function(posX, posY) {
|
onApiShowPopMenu: function(posX, posY) {
|
||||||
var me = this,
|
var me = this,
|
||||||
items = me._initMenu(me.api.getSelectedElements());
|
items;
|
||||||
|
|
||||||
|
_stack = me.api.getSelectedElements();
|
||||||
|
items = me._initMenu(_stack);
|
||||||
|
|
||||||
me.view.showMenu(items, posX, posY);
|
me.view.showMenu(items, posX, posY);
|
||||||
},
|
},
|
||||||
|
@ -131,12 +141,18 @@ define([
|
||||||
this.view.hideMenu();
|
this.view.hideMenu();
|
||||||
},
|
},
|
||||||
|
|
||||||
onApiFocusObject: function (objects) {
|
|
||||||
//
|
|
||||||
},
|
|
||||||
|
|
||||||
// Internal
|
// Internal
|
||||||
|
|
||||||
|
_openLink: function(url) {
|
||||||
|
if (this.api.asc_getUrlType(url) > 0) {
|
||||||
|
var newDocumentPage = window.open(url, '_blank');
|
||||||
|
|
||||||
|
if (newDocumentPage) {
|
||||||
|
newDocumentPage.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
_initMenu: function (stack) {
|
_initMenu: function (stack) {
|
||||||
var me = this,
|
var me = this,
|
||||||
menuItems = [],
|
menuItems = [],
|
||||||
|
@ -149,6 +165,34 @@ define([
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var isText = false,
|
||||||
|
isTable = false,
|
||||||
|
isImage = false,
|
||||||
|
isChart = false,
|
||||||
|
isShape = false,
|
||||||
|
isLink = false;
|
||||||
|
|
||||||
|
_.each(stack, function (item) {
|
||||||
|
var objectType = item.get_ObjectType(),
|
||||||
|
objectValue = item.get_ObjectValue();
|
||||||
|
|
||||||
|
if (objectType == Asc.c_oAscTypeSelectElement.Text) {
|
||||||
|
isText = true;
|
||||||
|
} else if (objectType == Asc.c_oAscTypeSelectElement.Image) {
|
||||||
|
if (objectValue && objectValue.get_ChartProperties()) {
|
||||||
|
isChart = true;
|
||||||
|
} else if (objectType && objectValue.get_ShapeProperties()) {
|
||||||
|
isShape = true;
|
||||||
|
} else {
|
||||||
|
isImage = true;
|
||||||
|
}
|
||||||
|
} else if (objectType == Asc.c_oAscTypeSelectElement.Table) {
|
||||||
|
isTable = true;
|
||||||
|
} else if (objectType == Asc.c_oAscTypeSelectElement.Hyperlink) {
|
||||||
|
isLink = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (stack.length > 0) {
|
if (stack.length > 0) {
|
||||||
var topObject = stack[stack.length - 1],
|
var topObject = stack[stack.length - 1],
|
||||||
topObjectType = topObject.get_ObjectType(),
|
topObjectType = topObject.get_ObjectType(),
|
||||||
|
@ -187,13 +231,16 @@ define([
|
||||||
|
|
||||||
if (!_.isEmpty(text)) {
|
if (!_.isEmpty(text)) {
|
||||||
menuItems.push({
|
menuItems.push({
|
||||||
caption: 'Add Hyperlink',
|
caption: 'Add Link',
|
||||||
event: 'addlink'
|
event: 'addlink'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Asc.c_oAscTypeSelectElement.Paragraph == topObjectType) {
|
if (isLink) {
|
||||||
//
|
menuItems.push({
|
||||||
|
caption: 'Open Link',
|
||||||
|
event: 'openlink'
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -129,11 +129,10 @@ define([
|
||||||
|
|
||||||
url = url.replace(new RegExp("%20",'g')," ");
|
url = url.replace(new RegExp("%20",'g')," ");
|
||||||
|
|
||||||
var props = new Asc.asc_CHyperlink();
|
var props = new Asc.CHyperlinkProperty();
|
||||||
// props.asc_setType(1);
|
props.put_Value(url);
|
||||||
props.asc_setHyperlinkUrl(url);
|
props.put_Text(_.isEmpty(display) ? url : display);
|
||||||
props.asc_setText(_.isEmpty(display) ? url : display);
|
props.put_ToolTip(tip);
|
||||||
props.asc_setTooltip(tip);
|
|
||||||
|
|
||||||
me.api.add_Hyperlink(props);
|
me.api.add_Hyperlink(props);
|
||||||
|
|
||||||
|
|
|
@ -125,11 +125,10 @@ define([
|
||||||
|
|
||||||
url = url.replace(new RegExp("%20",'g')," ");
|
url = url.replace(new RegExp("%20",'g')," ");
|
||||||
|
|
||||||
var props = new Asc.asc_CHyperlink();
|
var props = new Asc.CHyperlinkProperty();
|
||||||
// props.asc_setType(1);
|
props.put_Value(url);
|
||||||
props.asc_setHyperlinkUrl(url);
|
props.put_Text(_.isEmpty(display) ? url : display);
|
||||||
props.asc_setText(_.isEmpty(display) ? url : display);
|
props.put_ToolTip(tip);
|
||||||
props.asc_setTooltip(tip);
|
|
||||||
|
|
||||||
me.api.change_Hyperlink(props);
|
me.api.change_Hyperlink(props);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue