mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-27 00:58:55 +01:00
Add support for link change handler, better support for not saved links
This commit is contained in:
parent
8a32ae7c32
commit
f0d4523de1
@ -1431,7 +1431,13 @@ var et2_link_list = et2_link_string.extend(
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Show links that are marked as deleted, being held for purge"
|
||||
}
|
||||
},
|
||||
"onchange": {
|
||||
"name": "onchange",
|
||||
"type": "js",
|
||||
"default": et2_no_init,
|
||||
"description": "JS code which is executed when the links change."
|
||||
},
|
||||
},
|
||||
|
||||
/**
|
||||
@ -1534,7 +1540,7 @@ var et2_link_list = et2_link_string.extend(
|
||||
var link_id = isNaN(self.context.data.link_id) ? self.context.data : self.context.data.link_id;
|
||||
var row = jQuery('#link_'+(self.context.data.dom_id ? self.context.data.dom_id : self.context.data.link_id), self.list);
|
||||
et2_dialog.show_dialog(
|
||||
function(button) { debugger; if(button == et2_dialog.YES_BUTTON) self._delete_link(link_id,row);},
|
||||
function(button) { if(button == et2_dialog.YES_BUTTON) self._delete_link(link_id,row);},
|
||||
egw.lang('Delete link?')
|
||||
);
|
||||
});
|
||||
@ -1558,12 +1564,22 @@ var et2_link_list = et2_link_string.extend(
|
||||
set_value: function(_value)
|
||||
{
|
||||
// Handle server passed a list of links that aren't ready yet
|
||||
if(_value && typeof _value == "object" && _value.to_id && typeof _value.to_id == "object")
|
||||
if(_value && typeof _value == "object")
|
||||
{
|
||||
var list = [];
|
||||
this.list.empty();
|
||||
for(var id in _value.to_id)
|
||||
if(_value.to_id && typeof _value.to_id == "object")
|
||||
{
|
||||
var link = _value.to_id[id];
|
||||
list = _value.to_id;
|
||||
}
|
||||
else if (_value.length)
|
||||
{
|
||||
list = _value;
|
||||
}
|
||||
|
||||
for(var id in list)
|
||||
{
|
||||
var link = list[id];
|
||||
if(link.app)
|
||||
{
|
||||
// Temp IDs can cause problems since the ID includes the file name or :
|
||||
@ -1603,6 +1619,14 @@ var et2_link_list = et2_link_string.extend(
|
||||
.attr("id", "link_"+(_link_data.dom_id ? _link_data.dom_id : _link_data.link_id))
|
||||
.attr("draggable", _link_data.app == 'file' ? "true" : "")
|
||||
.appendTo(this.list);
|
||||
if(!_link_data.link_id)
|
||||
{
|
||||
for(var k in _link_data)
|
||||
{
|
||||
row[0].dataset[k] = _link_data[k];
|
||||
}
|
||||
}
|
||||
row[0].dataset = _link_data;
|
||||
|
||||
// Icon
|
||||
var icon = $j(document.createElement("td"))
|
||||
@ -1680,6 +1704,8 @@ var et2_link_list = et2_link_string.extend(
|
||||
|
||||
// Context menu
|
||||
row.bind("contextmenu", function(e) {
|
||||
// Comment ony available if link_id is there
|
||||
self.context.getItem("comment").set_enabled(typeof _link_data.link_id != 'undefined');
|
||||
// File info only available for existing files
|
||||
self.context.getItem("file_info").set_enabled(typeof _link_data.id != 'object' && _link_data.app == 'file');
|
||||
// Zip download only offered if there are at least 2 files
|
||||
@ -1756,6 +1782,10 @@ var et2_link_list = et2_link_string.extend(
|
||||
delete_button.removeClass("delete").addClass("loading");
|
||||
row.off();
|
||||
}
|
||||
if(this.onchange)
|
||||
{
|
||||
this.onchange(this,link_id,row);
|
||||
}
|
||||
if(typeof link_id != "object")
|
||||
{
|
||||
egw.json(this.egw().getAppName()+".etemplate_widget_link.ajax_delete.etemplate", [link_id],
|
||||
|
Loading…
Reference in New Issue
Block a user