diff --git a/etemplate/js/et2_widget_link.js b/etemplate/js/et2_widget_link.js index 827e6483b1..f980f1f797 100644 --- a/etemplate/js/et2_widget_link.js +++ b/etemplate/js/et2_widget_link.js @@ -1484,6 +1484,44 @@ 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") + { + this.list.empty(); + for(var id in _value.to_id) + { + var link = _value.to_id[id]; + if(link.app) + { + // Icon should be in registry + if(typeof link.icon == 'undefined') + { + link.icon = egw.link_get_registry(link.app,'icon'); + // No icon, try by mime type - different place for un-saved entries + if(link.icon == false && link.id.type) + { + // Triggers icon by mime type, not thumbnail or app + link.type = link.id.type; + link.icon = true; + } + } + // Special handling for file - if not existing, we can't ask for title + if(link.app == 'file' && typeof link.title == 'undefined') + { + link.title = link.id.name || ''; + } + this._add_link(link); + } + } + } + else + { + this._super.apply(this,arguments); + } + }, + _add_link: function(_link_data) { var row = $j(document.createElement("tr")) .attr("id", "link_"+_link_data.link_id)