mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-03 12:39:25 +01:00
Add different formatting for linked files when they're in sub-directories
This commit is contained in:
parent
0b89f4040b
commit
687d90c37a
@ -1761,7 +1761,12 @@ var et2_link_list = et2_link_string.extend(
|
|||||||
.appendTo(row)
|
.appendTo(row)
|
||||||
.addClass(columns[i])
|
.addClass(columns[i])
|
||||||
.text(_link_data[columns[i]] ? _link_data[columns[i]]+"" : "");
|
.text(_link_data[columns[i]] ? _link_data[columns[i]]+"" : "");
|
||||||
|
|
||||||
|
var dirs = _link_data[columns[i]] ? _link_data[columns[i]].split('/') : [];
|
||||||
|
if(columns[i] == 'title' && _link_data.type && dirs.length > 1)
|
||||||
|
{
|
||||||
|
this._format_vfs($td, dirs, _link_data);
|
||||||
|
}
|
||||||
//Bind the click handler if there is download_url
|
//Bind the click handler if there is download_url
|
||||||
if (_link_data && (typeof _link_data.download_url != 'undefined' || _link_data.app !='egw-data'))
|
if (_link_data && (typeof _link_data.download_url != 'undefined' || _link_data.app !='egw-data'))
|
||||||
{
|
{
|
||||||
@ -1945,6 +1950,52 @@ var et2_link_list = et2_link_string.extend(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When the link is to a VFS file, we do some special formatting.
|
||||||
|
*
|
||||||
|
* Instead of listing the full path, we use
|
||||||
|
* Path: - filename
|
||||||
|
* When multiple files from the same directory are linked, we exclude
|
||||||
|
* the directory name from all but the first link to that directory
|
||||||
|
*
|
||||||
|
* @param {JQuery} $td Current table data cell for the title
|
||||||
|
* @param {String[]} dirs List of directories in the linked file's path
|
||||||
|
* @param {String[]} _link_data Data for the egw_link
|
||||||
|
* @returns {undefined}
|
||||||
|
*/
|
||||||
|
_format_vfs: function($td, dirs, _link_data)
|
||||||
|
{
|
||||||
|
// Keep it here for matching next row
|
||||||
|
$td.attr('data-title', _link_data['title']);
|
||||||
|
|
||||||
|
// VFS link - check for same dir as above, and hide dir
|
||||||
|
var prev = $j('td.title',$td.parent().prev('tr'));
|
||||||
|
if(prev.length === 1)
|
||||||
|
{
|
||||||
|
var prev_dirs = (prev.attr('data-title') || '').split('/');
|
||||||
|
if(prev_dirs.length > 1 && prev_dirs.length == dirs.length)
|
||||||
|
{
|
||||||
|
var span_size = 0.3;
|
||||||
|
for(var i = 0; i < dirs.length; i++)
|
||||||
|
{
|
||||||
|
// Current is same as prev, blank it
|
||||||
|
if(dirs[i] === prev_dirs[i])
|
||||||
|
{
|
||||||
|
span_size += dirs[i].length+1;
|
||||||
|
dirs[i] = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$td.html('<span style="display: inline-block; width:'+span_size+'ex;"></span> - '+dirs.join(''));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Different format for directory
|
||||||
|
var filename = dirs.pop();
|
||||||
|
$td.text(dirs.join('/') + ': - ' + filename);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
et2_register_widget(et2_link_list, ["link-list"]);
|
et2_register_widget(et2_link_list, ["link-list"]);
|
||||||
|
Loading…
Reference in New Issue
Block a user