From 45cb8434ae88fb9b1b2ed2e05260f0e3b682b400 Mon Sep 17 00:00:00 2001 From: Joey Schulze Date: Mon, 17 Jul 2017 23:10:17 +0200 Subject: [PATCH] Add convenient function to make elements editable and add default JavaScript callback --- src/infodrom.css | 4 ++++ src/infodrom.js | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/infodrom.css b/src/infodrom.css index 79989a0..3d0eae6 100644 --- a/src/infodrom.css +++ b/src/infodrom.css @@ -224,6 +224,10 @@ div#error_div p { background: yellow; } +[data-is-editing="1"] { + background: lightblue !important; +} + /* * Footer */ diff --git a/src/infodrom.js b/src/infodrom.js index fa61440..c9b4d2a 100644 --- a/src/infodrom.js +++ b/src/infodrom.js @@ -48,6 +48,32 @@ function hide_error(text) return false; } +function editable_callback(data) +{ + if (data.content) { + var elem = $(data.$el); + var route = elem.attr('route'); + var item_id = elem.attr('item_id'); + if (typeof(route) == 'string' && typeof(item_id) == 'string') + $.invoke(route, + {id: item_id, + name: elem.attr('name'), + content: data.content}); + } + + return false; +} + +function make_editable(selector) +{ + var list = $(selector); + if (list.length) + list.editable({ + closeOnEnter : true, + event : 'click', + callback: editable_callback + }); +} (function($){ $.fn.ltag = function() { return this.prop("tagName").toLowerCase(); -- 2.20.1