From 0ec2fbb4d4c6055a599df04d700c77d451eb5ee8 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Wed, 10 Jul 2013 18:24:36 -0700 Subject: [PATCH] Use alterClass() --- adminer/static/editing.js | 21 +++++++++------------ adminer/static/functions.js | 15 ++++++++++++--- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/adminer/static/editing.js b/adminer/static/editing.js index a7c93f47..8ad422b3 100644 --- a/adminer/static/editing.js +++ b/adminer/static/editing.js @@ -69,7 +69,7 @@ function typePassword(el, disable) { function loginDriver(driver) { var trs = parentTag(driver, 'table').rows; for (var i=1; i < trs.length - 1; i++) { - trs[i].className = (/sqlite/.test(driver.value) ? 'hidden' : ''); + alterClass(trs[i], 'hidden', /sqlite/.test(driver.value)); } } @@ -368,16 +368,16 @@ function editingTypeChange(type) { el.checked = false; } if (el.name == name + '[collation]') { - el.className = (/(char|text|enum|set)$/.test(text) ? '' : 'hidden'); + alterClass(el, 'hidden', !/(char|text|enum|set)$/.test(text)); } if (el.name == name + '[unsigned]') { - el.className = (/((^|[^o])int|float|double|decimal)$/.test(text) ? '' : 'hidden'); + alterClass(el, 'hidden', !/((^|[^o])int|float|double|decimal)$/.test(text)); } if (el.name == name + '[on_update]') { - el.className = (text == 'timestamp' ? '' : 'hidden'); + alterClass(el, 'hidden', text != 'timestamp'); } if (el.name == name + '[on_delete]') { - el.className = (/`/.test(text) ? '' : 'hidden'); + alterClass(el, 'hidden', !/`/.test(text)); } } } @@ -386,10 +386,7 @@ function editingTypeChange(type) { * @param HTMLInputElement */ function editingLengthChange(el) { - el.className = el.className.replace(/( |^)required( |$)/, '$2'); - if (!el.value.length && /var(char|binary)$/.test(selectValue(el.parentNode.previousSibling.firstChild))) { - el.className += ' required'; - } + alterClass(el, 'required', !el.value.length && /var(char|binary)$/.test(selectValue(el.parentNode.previousSibling.firstChild))); } /** Edit enum or set @@ -426,7 +423,7 @@ function editingLengthBlur(edit) { function columnShow(checked, column) { var trs = document.getElementById('edit-fields').getElementsByTagName('tr'); for (var i=0; i < trs.length; i++) { - trs[i].getElementsByTagName('td')[column].className = (checked ? '' : 'hidden'); + alterClass(trs[i].getElementsByTagName('td')[column], 'hidden', !checked); } } @@ -444,8 +441,8 @@ function editingHideDefaults() { */ function partitionByChange(el) { var partitionTable = /RANGE|LIST/.test(selectValue(el)); - el.form['partitions'].className = (partitionTable || !el.selectedIndex ? 'hidden' : ''); - document.getElementById('partition-table').className = (partitionTable ? '' : 'hidden'); + alterClass(el.form['partitions'], 'hidden', partitionTable || !el.selectedIndex); + alterClass(document.getElementById('partition-table'), 'hidden', !partitionTable); } /** Add next partition row diff --git a/adminer/static/functions.js b/adminer/static/functions.js index cc761780..44a2520a 100644 --- a/adminer/static/functions.js +++ b/adminer/static/functions.js @@ -1,4 +1,13 @@ +/** Add or remove CSS class +* @param HTMLElement +* @param string +* @param [bool] +*/ +function alterClass(el, className, enable) { + el.className = el.className.replace(RegExp('(^|\\s)' + className + '(\\s|$)'), '$2') + (enable ? ' ' + className : ''); +} + /** Toggle visibility * @param string * @return boolean @@ -59,7 +68,7 @@ function parentTag(el, tag) { */ function trCheck(el) { var tr = parentTag(el, 'tr'); - tr.className = tr.className.replace(/(^|\s)checked(\s|$)/, '$2') + (el.checked ? ' checked' : ''); + alterClass(tr, 'checked', el.checked); if (el.form && el.form['all']) { el.form['all'].onclick(); } @@ -613,7 +622,7 @@ function setupSubmitHighlight(parent) { function inputFocus() { var submit = findDefaultSubmit(this.form); if (submit) { - submit.className += ' default'; + alterClass(submit, 'default', true); } } @@ -623,7 +632,7 @@ function inputFocus() { function inputBlur() { var submit = findDefaultSubmit(this.form); if (submit) { - submit.className = submit.className.replace(/ default( |$)/, '$1'); + alterClass(submit, 'default'); } }