added (un)Select All buttons and fixed assetManager.js so that it actually preserves checkbox state across column sorts.

This commit is contained in:
Matthew Wilson 2005-06-20 07:02:24 +00:00
parent de867152ac
commit 7299c5469b
3 changed files with 27 additions and 8 deletions

View file

@ -3184,8 +3184,8 @@ sub www_manageAssets {
$output .= "
<script type=\"text/javascript\">
var assetManager = new AssetManager();
assetManager.AddColumn('','','center','form');
assetManager.AddColumn('','','center','');
assetManager.AddColumn('&nbsp;','','center','form');
assetManager.AddColumn('&nbsp;','','center','');
assetManager.AddColumn('".$i18n->get("rank")."','','right','numeric');
assetManager.AddColumn('".$i18n->get("99")."','','left','');
assetManager.AddColumn('".$i18n->get("type")."','','left','');
@ -3213,9 +3213,11 @@ sub www_manageAssets {
$output .= "assetManager.AddLineSortData('','','','".$child->getTitle."','".$child->getName
."','".$child->get("lastUpdated")."','".$child->get("assetSize")."','');\n";
}
$output .= 'assetManager.AddButton("'.$i18n->get("delete").'","deleteList");
assetManager.AddButton("'.$i18n->get("cut").'","cutList");
assetManager.AddButton("'.$i18n->get("copy").'","copyList");
$output .= 'assetManager.AddButton("'.WebGUI::International::get("select all","Asset").'","var fieldList=document.assetManagerForm.assetId;for(i=0;i<fieldList.length;i++)fieldList[i].checked=true;}");
assetManager.AddButton("'.WebGUI::International::get("unselect all","Asset").'","var fieldList=document.assetManagerForm.assetId;for(i=0;i<fieldList.length;i++)fieldList[i].checked=false;}");
assetManager.AddButton("'.$i18n->get("delete").'","this.form.func.value=\\\'deleteList\\\';this.form.submit();");
assetManager.AddButton("'.$i18n->get("cut").'","this.form.func.value=\\\'cutList\\\';this.form.submit();");
assetManager.AddButton("'.$i18n->get("copy").'","this.form.func.value=\\\'copyList\\\';this.form.submit();");
assetManager.Write();
</script> <div class="adminConsoleSpacer">
&nbsp;

View file

@ -102,7 +102,13 @@ our $I18N = {
lastUpdated => 1099344172,
context => q|A label for the select all checkbox on the asset manager clipboard|
},
'unselect all' => {
message => q|Unselect All|,
lastUpdated => 1119240143,
context => q|A label for the unselect all checkbox on the asset manager|
},
'packages' => {
message => q|Packages|,
lastUpdated => 1099344172,

View file

@ -77,7 +77,7 @@ function AssetManager_AddColumn(name,td,align,type) {
function AssetManager_Write() {
var open_div = "";
var close_div = "";
document.write('<form method="post"><input type="hidden" name="func" />');
document.write('<form method="post" name="assetManagerForm"><input type="hidden" name="func" />');
document.write('<table class="am-table">');
document.write('<thead><tr class="am-headers">');
for (var i=0; i<this.Columns.length; i++) {
@ -104,7 +104,7 @@ function AssetManager_Write() {
}
document.write('</tbody></table>');
for (var j=0; j<this.Buttons.length; j++) {
document.write('<input type="button" onclick="this.form.func.value=\''+this.Buttons[j].func+'\';this.form.submit();" value="'+this.Buttons[j].label+'" />');
document.write('<input type="button" onclick="'+this.Buttons[j].func+'" value="'+this.Buttons[j].label+'" />');
}
document.write('</form>');
}
@ -122,11 +122,18 @@ function AssetManager_SortRows(table,column) {
if (table.tablecontainsforms) {
var iname="1";
var tempcolumns = new Object();
var tempcheckboxes = new Object();
for (var i=0; i<table.Lines.length; i++) {
for (var j=0; j<table.Columns.length; j++) {
if(table.Columns[j].type == "form") {
var cell_name = "d"+table.name+"-"+i+"-"+j;
tempcolumns[iname] = document.getElementById(cell_name).innerHTML;
// Okay, this is an even nastier hack...
// Other temporary arrays could be created to hold other attribute states.
var inputboxes = document.getElementById(cell_name).getElementsByTagName('input');
for(k = 0; k < inputboxes.length; k++) {
tempcheckboxes[iname] = inputboxes[k].checked;
}
table.Lines[i][j].text = iname;
iname++;
}
@ -180,6 +187,10 @@ function AssetManager_SortRows(table,column) {
if(table.Columns[j].type == "form") {
var iname = table.Lines[i][j].text;
document.getElementById(cell_name).innerHTML = tempcolumns[iname];
var inputboxes = document.getElementById(cell_name).getElementsByTagName('input');
for(k = 0; k < inputboxes.length; k++) {
inputboxes[k].checked = tempcheckboxes[iname];
}
}
else {
document.getElementById(cell_name).innerHTML = table.Lines[i][j].text;