From 939207ef45a35a3e075d8cf2a7b9e8ffba7ec45e Mon Sep 17 00:00:00 2001 From: psychobunny Date: Mon, 24 Jun 2013 17:25:16 -0400 Subject: [PATCH] moved admin categories into its own file --- public/src/forum/admin/categories.js | 79 +++++++++++++++++++++++++ public/templates/admin/categories.tpl | 85 +-------------------------- 2 files changed, 82 insertions(+), 82 deletions(-) create mode 100644 public/src/forum/admin/categories.js diff --git a/public/src/forum/admin/categories.js b/public/src/forum/admin/categories.js new file mode 100644 index 0000000000..f8e0ce65ab --- /dev/null +++ b/public/src/forum/admin/categories.js @@ -0,0 +1,79 @@ + +var modified_categories = {}; + +function modified(el) { + var cid = $(el).parents('li').attr('data-cid'); + + modified_categories[cid] = modified_categories[cid] || {}; + modified_categories[cid][el.getAttribute('data-name')] = el.value; +} + +function save() { + socket.emit('api:admin.categories.update', modified_categories); + modified_categories = {}; +} + +function select_icon(el) { + var selected = el.className.replace(' icon-2x', ''); + jQuery('#icons .selected').removeClass('selected'); + jQuery('#icons .' + selected).parent().addClass('selected'); + + + bootbox.confirm('

Select an icon.

' + document.getElementById('icons').innerHTML, function(confirm) { + if (confirm) { + var iconClass = jQuery('.bootbox .selected').children(':first').attr('class'); + el.className = iconClass + ' icon icon-2x'; + el.value = iconClass; + + modified(el); + } + }); + + jQuery('.bootbox .span3').on('click', function() { + jQuery('.bootbox .selected').removeClass('selected'); + jQuery(this).addClass('selected'); + }); +} + + +function update_blockclass(el) { + el.parentNode.parentNode.className = 'entry-row ' + el.value; +} + +jQuery('#entry-container').sortable(); +jQuery('.blockclass').each(function() { + jQuery(this).val(this.getAttribute('data-value')); +}); + + +//DRY Failure. this needs to go into an ajaxify onready style fn. Currently is copy pasted into every single function so after ACP is off the ground fix asap +(function() { + jQuery('document').ready(function() { + var url = window.location.href, + parts = url.split('/'), + active = parts[parts.length-1]; + + jQuery('.nav-pills li').removeClass('active'); + jQuery('.nav-pills li a').each(function() { + if (this.getAttribute('href').match(active)) { + jQuery(this.parentNode).addClass('active'); + return false; + } + }); + + jQuery('#save').on('click', save); + + jQuery('.icon').on('click', function(ev) { + select_icon(ev.target); + }); + + jQuery('.blockclass').on('change', function(ev) { + update_blockclass(ev.target); + }); + + jQuery('.category_name, .category_description, .blockclass').on('change', function(ev) { + modified(ev.target); + }); + }); + +}()); \ No newline at end of file diff --git a/public/templates/admin/categories.tpl b/public/templates/admin/categories.tpl index 0699a6d1a7..7d8d1749fb 100644 --- a/public/templates/admin/categories.tpl +++ b/public/templates/admin/categories.tpl @@ -35,90 +35,11 @@ - - - - - \ No newline at end of file + + + \ No newline at end of file