From 9970de587530f7868f1f88f93321caee4bf68d4f Mon Sep 17 00:00:00 2001 From: dbs Date: Thu, 8 Jul 2010 15:32:59 +0000 Subject: [PATCH] Reclaim cataloguing real estate by hiding unnecessary rows in fixed field grid editor The fixed field grid editor currently shows blank rows for fixed field attributes that don't apply to the currently displayed MARC record type. We can hide these rows and offer more screen real estate for the MARC record proper. git-svn-id: svn://svn.open-ils.org/ILS/trunk@16884 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/xul/staff_client/server/cat/marcedit.js | 32 +++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/Open-ILS/xul/staff_client/server/cat/marcedit.js b/Open-ILS/xul/staff_client/server/cat/marcedit.js index 673ad55bb..32e7031e7 100644 --- a/Open-ILS/xul/staff_client/server/cat/marcedit.js +++ b/Open-ILS/xul/staff_client/server/cat/marcedit.js @@ -346,7 +346,7 @@ function setFocusToNextTag (row, direction) { while (direction == 'up' ? row = row.previousSibling : row = row.nextSibling) { var children = row.childNodes; for (var i = 0; i < children.length; i++) { - // This would be way cleaner with dojo.query() + // This would be way cleaner with dojo.query() if (row.className == 'marcDatafieldRow') { // marcSubfield lives in hbox.hbox.textbox var hboxKids = children[i].childNodes; @@ -1124,6 +1124,36 @@ function toggleFFE () { function changeFFEditor (type) { var grid = document.getElementById('leaderGrid'); grid.setAttribute('type',type); + + // Hide FFEditor rows that we don't need for our current type + // Again, this would be easier with dojo + var row_list = grid.childNodes; + var rows; + for (var i = 0; i < row_list.length; i++) { + if (row_list[i].nodeType && row_list[i].tagName == 'rows') { + rows = row_list[i]; + } + } + + // If all of the labels for a given row do not include our + // desired type in their set attribute, we can hide that row + row_list = rows.childNodes; + for (var i = 0; i < row_list.length; i++) { + if (row_list[i].nodeType && row_list[i].tagName == 'row') { + var label_list = row_list[i].childNodes; + var found_type = false; + for (var j = 0; j < label_list.length; j++) { + if (label_list[j].nodeType && + label_list[j].tagName == 'label' && + label_list[j].getAttribute('set').indexOf(type) != -1) { + found_type = true; + } + } + if (!found_type) { + row_list[i].hidden = true; + } + } + } } function fillFixedFields (rec) { -- 2.11.0