aboutsummaryrefslogtreecommitdiff
path: root/js/params.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/params.js')
-rw-r--r--js/params.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/js/params.js b/js/params.js
new file mode 100644
index 0000000..ac552a5
--- /dev/null
+++ b/js/params.js
@@ -0,0 +1,50 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This Source Code Form is "Incompatible With Secondary Licenses", as
+ * defined by the Mozilla Public License, v. 2.0.
+ */
+
+function sortedList_moveItem(paramName, direction, separator) {
+ var select = document.getElementById('select_' + paramName);
+ var inputField = document.getElementById('input_' + paramName);
+ var currentIndex = select.selectedIndex;
+ var newIndex = currentIndex + direction;
+ var optionCurrentIndex;
+ var optionNewIndex;
+
+ /* Return if no selection */
+ if (currentIndex < 0) return;
+ /* Return if trying to move upward out of list */
+ if (newIndex < 0) return;
+ /* Return if trying to move downward out of list */
+ if (newIndex >= select.length) return;
+
+ /* Move selection */
+ optionNewIndex = select.options[newIndex];
+ optionCurrentIndex = select.options[currentIndex];
+ /* Because some browsers don't accept the same option object twice in a
+ * selection list, we need to put a blank option here first */
+ select.options[newIndex] = new Option();
+ select.options[currentIndex] = optionNewIndex;
+ select.options[newIndex] = optionCurrentIndex;
+ select.selectedIndex = newIndex;
+ populateInputField(select, inputField, separator);
+}
+
+function populateInputField(select, inputField, separator) {
+ var i;
+ var stringRepresentation = '';
+
+ for (i = 0; i < select.length; i++) {
+ if (select.options[i].value == separator) {
+ break;
+ }
+ if (stringRepresentation != '') {
+ stringRepresentation += ',';
+ }
+ stringRepresentation += select.options[i].value;
+ }
+ inputField.value = stringRepresentation;
+}