diff --git a/public/less/admin/general/navigation.less b/public/less/admin/general/navigation.less index 3ae2c28c25..338971b4a1 100644 --- a/public/less/admin/general/navigation.less +++ b/public/less/admin/general/navigation.less @@ -2,5 +2,9 @@ ul { list-style-type: none; padding: 0; + + li { + cursor: move; + } } } \ No newline at end of file diff --git a/public/src/admin/general/navigation.js b/public/src/admin/general/navigation.js index acf1c31ae6..6e95f578b9 100644 --- a/public/src/admin/general/navigation.js +++ b/public/src/admin/general/navigation.js @@ -25,8 +25,31 @@ define('admin/general/navigation', function() { $('#save').on('click', saveNavigation); - $('#enabled').sortable(); - $('#enabled').disableSelection(); + $('#enabled') + .sortable() + .droppable({ + accept: $('#available li') + }) + .disableSelection(); + + $('#available li') + .draggable({ + connectToSortable: '#enabled', + helper: 'clone', + distance: 10, + stop: function(ev, ui) { + var id = ui.helper.attr('data-id'), + el = $('#enabled [data-id="' + id + '"]'), + data = id === 'custom' ? {} : available[id]; + + templates.parse('admin/general/navigation', 'enabled', {enabled: [data]}, function(li) { + li = $(li); + el.after(li); + el.remove(); + }); + } + }) + .disableSelection(); }; function saveNavigation() { @@ -58,5 +81,13 @@ define('admin/general/navigation', function() { }); } + function getDefaultsByRoute(route) { + available.forEach(function(item) { + if (item.route.match(route)) { + return item; + } + }); + } + return navigation; }); \ No newline at end of file diff --git a/src/views/admin/general/navigation.tpl b/src/views/admin/general/navigation.tpl index 0f2890f855..3a658efb5b 100644 --- a/src/views/admin/general/navigation.tpl +++ b/src/views/admin/general/navigation.tpl @@ -45,8 +45,8 @@