aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-04-25 14:20:04 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2022-04-25 14:20:04 +0200
commit43526f64dfb1cb6468b5515ff77ae321eb285f38 (patch)
treef3138f9d7ae8d47fbffc6bee2547d1a3002d68e6
parentMinor cleanup. (diff)
downloadcalp-43526f64dfb1cb6468b5515ff77ae321eb285f38.tar.gz
calp-43526f64dfb1cb6468b5515ff77ae321eb285f38.tar.xz
Remove arbitary_kv.js.
The file has been bit-rotting since the move to typescript, and even so, was far from done or working. However, the generall idea of having free-form editing at the end of the edit fields is a good idea, which maybe should be revisited in the future.
-rw-r--r--static/arbitary_kv.js160
1 files changed, 0 insertions, 160 deletions
diff --git a/static/arbitary_kv.js b/static/arbitary_kv.js
deleted file mode 100644
index baf387eb..00000000
--- a/static/arbitary_kv.js
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- The freeform key-value fields at the bottom of any popup.
- */
-
-function init_arbitary_kv() {
- for (let el of document.getElementsByClassName("newfield")) {
- let [name, type_selector, value_field] = el.children;
-
- /* TODO list fields */
- /* TODO add and remove fields. See update_inline_list */
-
- function update_value_field (el) {
- let [name_field, type_selector, value_field] = el.children;
-
-
- let value = makeElement('input');
- let values = [value];
-
-
- switch (name_field.value.toUpperCase()) {
- case 'GEO':
- value.type = 'number';
- values.push(makeElement('input', {
- type: 'number',
- }));
- break;
-
- case 'CLASS':
- // Add auto completion
- break;
-
- case 'ACTION':
- // Add auto completion
- break;
-
- case 'TRANSP':
- // Replace with toggle betwen OPAQUE and TRANSPARENT
- break;
-
- case 'PERCENT-COMPLETE':
- value.min = 0;
- value.max = 100;
- break;
-
- case 'PRIORITY':
- value.min = 0;
- value.max = 9;
- break;
-
- default:
-
-
- switch (type_selector.options[type_selector.selectedIndex].value) {
- case 'integer':
- case 'float':
- value.type = 'number';
- break;
-
- case 'uri':
- value.type = 'url';
- break;
-
- case 'binary':
- value.type = 'file';
- break;
-
- case 'date-time':
- values.push(makeElement('input', {
- type: 'time',
- }));
- /* fallthrough */
- case 'date':
- value.type = 'date';
- break;
-
- case 'cal-address':
- value.type = 'email';
- break;
-
- case 'utc-offset':
- value.type = 'time';
- let lbl = makeElement('label');
- let id = gensym();
-
- lbl.setAttribute('for', id);
-
- /* TODO make these labels stand out more */
- lbl.appendChild(makeElement('span', {
- className: 'plus',
- innerText: '+',
- }));
- lbl.appendChild(makeElement('span', {
- className: 'minus',
- innerText: '-',
- }));
- values.splice(0,0,lbl);
- values.splice(0,0, makeElement('input', {
- type: 'checkbox',
- style: 'display:none',
- className: 'plusminuscheck',
- id: id,
- }));
- break;
-
- case 'boolean':
- value.type = 'checkbox';
- break;
-
- case 'period':
- value.type = 'text';
- // TODO validate /P\d*H/ typ
- break;
-
- case 'recur':
- // TODO
- default:
- value.type = 'text';
- }
- }
-
-
- value_field.innerHTML = '';
- for (let v of values) {
- console.log(v);
- value_field.appendChild(v);
- }
- }
-
- name.addEventListener('input', function setOptionDropdown () {
- let types = valid_input_types[this.value.toUpperCase()];
- let el = this.parentElement;
- let [_, type_selector, value_field] = el.children;
-
- type_selector.disabled = false;
- if (types) {
- type_selector.innerHTML = '';
- for (let type of types) {
- type_selector.appendChild(
- makeElement('option', { value: type, innerText: type }))
- }
- if (types.length == 1) {
- type_selector.disabled = true;
- }
- } else {
- type_selector.innerHTML = '';
- for (let type of all_types) {
- type_selector.appendChild(
- makeElement('option', { value: type, innerText: type }))
- }
- }
-
- update_value_field(el);
- });
-
- type_selector.addEventListener('change', function () {
- update_value_field(this.parentElement);
- });
- }
-
-}