diff --git a/htdocs/css/admin.css b/htdocs/css/admin.css index ec59bd2..aeaf728 100644 --- a/htdocs/css/admin.css +++ b/htdocs/css/admin.css @@ -1,6 +1,10 @@ @import url("openwebrx-header.css"); @import url("openwebrx-globals.css"); +html, body { + height: unset; +} + .buttons { text-align: right; } @@ -59,8 +63,16 @@ table.bookmarks .frequency { text-align: right; } -table.bookmarks input, table.bookmarks select { +.bookmarks table input, .bookmarks table select { width: initial; text-align: inherit; display: initial; +} + +.actions { + margin: 1rem 0; +} + +.actions .btn { + width: 100%; } \ No newline at end of file diff --git a/htdocs/lib/settings/BookmarkTable.js b/htdocs/lib/settings/BookmarkTable.js index b530513..04372da 100644 --- a/htdocs/lib/settings/BookmarkTable.js +++ b/htdocs/lib/settings/BookmarkTable.js @@ -1,6 +1,6 @@ $.fn.bookmarktable = function() { $.each(this, function(){ - var $table = $(this); + var $table = $(this).find('table'); var inputs = $table.find('tr.inputs td').map(function(){ var candidates = $(this).find('input, select') @@ -8,6 +8,16 @@ $.fn.bookmarktable = function() { }).toArray(); $table.find('tr.inputs').remove(); + var transformToHtml = function($cell) { + var $input = $cell.find('input, select'); + var $option = $input.find('option:selected') + if ($option.length) { + $cell.html($option.html()); + } else { + $cell.html($input.val()); + } + }; + $table.on('dblclick', 'td', function(e) { var $cell = $(e.target); var html = $cell.html(); @@ -18,6 +28,7 @@ $.fn.bookmarktable = function() { var $input = inputs[index]; if (!$input) return; + $table.find('tr[data-id="new"]').remove(); $input.val($cell.data('value') || html); $input.prop('disabled', false); $cell.html($input); @@ -30,12 +41,7 @@ $.fn.bookmarktable = function() { contentType: 'application/json', method: 'POST' }).then(function(){ - var $option = $input.find('option:selected') - if ($option.length) { - $cell.html($option.html()); - } else { - $cell.html($input.val()); - } + transformToHtml($cell); }); }; @@ -46,5 +52,64 @@ $.fn.bookmarktable = function() { } }); }); + + $(this).find('.bookmark-add').on('click', function() { + if ($table.find('tr[data-id="new"]').length) return; + + var row = $('