app/assets/javascripts/roroacms/admin/menu.js in roroacms-0.0.6.9 vs app/assets/javascripts/roroacms/admin/menu.js in roroacms-0.0.7
- old
+ new
@@ -1,135 +1,135 @@
-$(document).ready(function() {
- var build_under_form, do_alert, do_update_function, populate;
- do_update_function = function() {
- var arr, data;
- arr = $("ol.sortable").nestedSortable("toArray");
- data = "data=" + JSON.stringify(arr) + "&menuid=" + $("ol.sortable").attr("data-menuid");
- $.ajax({
- type: "POST",
- url: $('.js-settings').attr('data-site-url') + "admin/menus/save_menu",
- data: data,
- dataType: "html",
- success: function(data) {
- if(data == 'demo'){
- do_demo_alert();
- } else {
- do_alert();
- }
- }
- });
- };
- do_alert = function() {
- $("#main-content .row > .col-md-12 .alert-wrapper").html("<div class=\"alert alert-success\"><button data-dismiss=\"alert\" class=\"close\" type=\"button\">x</button><strong>Success!</strong> Menu was successfully updated</div>");
- $("html,body").animate({
- scrollTop: $("#header").offset().top
- }, "slow");
- };
-
- do_demo_alert = function(){
- $("#main-content .row > .col-md-12 .alert-wrapper").html("<div class=\"alert alert-danger\"><button data-dismiss=\"alert\" class=\"close\" type=\"button\">x</button><strong>Error!</strong> You are working in demo mode so no CRUD functions will be undertaken</div>");
- $("html,body").animate({
- scrollTop: $("#header").offset().top
- }, "slow");
- }
- build_under_form = function(data, selector) {
- $.ajax({
- type: "POST",
- url: $('.js-settings').attr('data-site-url') + "admin/menus/ajax_dropbox",
- data: data,
- dataType: "html",
- success: function(data) {
- populate(data, selector);
- $("input").iCheck({
- checkboxClass: "icheckbox_flat-grey",
- radioClass: "iradio_flat-grey"
- });
- $('.saveWrapper').removeClass('hidden');
- }
- });
- };
- populate = function(d, selector) {
- $(selector).append(d);
- };
- $("#menu-sortable-fields ol.sortable").nestedSortable({
- items: "li",
- maxLevels: 3
- });
- $(".update-menu").bind("click", function(e) {
- do_update_function();
- });
- $("ol.sortable").on("click", "i.handler", function() {
- var container;
- container = $(" > .item-information", $(this).closest("li"));
- if (container.hasClass("active")) {
- $(this).removeClass("fa-minus");
- $(this).addClass("fa-plus");
- container.slideUp("slow");
- container.removeClass("active");
- } else {
- $(this).removeClass("fa-plus");
- $(this).addClass("fa-minus");
- container.slideDown("slow");
- container.addClass("active");
- }
- });
- $("select.mod").bind("change", function(e) {
- var form;
- form = $(this).closest("form");
- $("input[name=\"type\"]", form).val($(":selected", $(this)).attr("data-type"));
- $("input[name=label]", form).val($(":selected", $(this)).text());
- });
- $("#menu-forms form").bind("submit", function(e) {
- var data, dataString, formData, html, label, randomnumber, type;
- e.preventDefault();
- type = $(this).attr("data-type");
- data = $(this).serializeArray();
- dataString = $(this).serialize();
- if (data[2]["value"] === "") {
- label = "";
- } else {
- label = data[2]["value"];
- }
- randomnumber = Math.floor(Math.random() * 11);
- if (type === "custom") {
- if (($("input[name=customlink]", $(this)).val() !== "") && ($("input[name=label]", $(this)).val() !== "")) {
- html = "<li class=\"dd-item\" style=\"\" data-id=\"option_" + data[1]["value"] + "\" id=\"custom_" + randomnumber + "\" data-type=\"custom\" data-data=\"" + dataString + "\"><div class=\"dd-handle\">" + label + "<i class=\"fa fa-plus pull-right handler\"></i></div>";
- $("ol.sortable").append(html);
- build_under_form(data, "#custom_" + randomnumber);
- }
- } else {
- if (($("select[name=linkto]", $(this)).val() !== "") && ($("input[name=label]", $(this)).val() !== "")) {
- formData = $(this).serialize();
- html = "<li class=\"dd-item\" style=\"\" data-id=\"option_" + data[1]["value"] + "\" id=\"" + data[0]["value"] + "_" + randomnumber + "\" data-type=\"" + data[0]["value"] + "\" data-data=\"" + dataString + "\"><div class=\"dd-handle\">" + label + "<i class=\"fa fa-plus pull-right handler\"></i></div>";
- $("ol.sortable").append(html);
- build_under_form(data, "#" + data[0]["value"] + "_" + randomnumber);
- }
- }
- $(this)[0].reset();
- });
-
- /*
- on save of individual li option - this will serialize the data to the html so when you
- save the actual menu it will take this data and send it to the server
- */
- $("ol.sortable").on("click", ".submit-form", function() {
- var form_data;
- form_data = $(this).closest("form");
- $(this).closest("li").attr("data-data", form_data.serialize());
- $(this).closest("li").find('> .dd-handle > .list-name-option').text(form_data.find('input[name=label]').val());
- $(".update-menu").trigger("click");
- });
-
- /*
- remove the option form the list. The form is not updated until you click the update function
- at which point it serializes the data without the option in.
- */
- $("#menu-sortable-fields").on("click", ".delete-option", function(e) {
- var li;
- e.preventDefault();
- $(this).closest(".item-information").slideUp("slow");
- li = $(this).closest("li").fadeOut("slow");
- setTimeout((function(e) {
- $(li).remove();
- }), 1000);
- });
-});
+$(document).ready(function() {
+ var build_under_form, do_alert, do_update_function, populate;
+ do_update_function = function() {
+ var arr, data;
+ arr = $("ol.sortable").nestedSortable("toArray");
+ data = "data=" + JSON.stringify(arr) + "&menuid=" + $("ol.sortable").attr("data-menuid");
+ $.ajax({
+ type: "POST",
+ url: $('.js-settings').attr('data-site-url') + "admin/menus/save_menu",
+ data: data,
+ dataType: "html",
+ success: function(data) {
+ if(data == 'demo'){
+ do_demo_alert();
+ } else {
+ do_alert();
+ }
+ }
+ });
+ };
+ do_alert = function() {
+ $("#main-content .row > .col-md-12 .alert-wrapper").html("<div class=\"alert alert-success\"><button data-dismiss=\"alert\" class=\"close\" type=\"button\">x</button><strong>Success!</strong> Menu was successfully updated</div>");
+ $("html,body").animate({
+ scrollTop: $("#header").offset().top
+ }, "slow");
+ };
+
+ do_demo_alert = function(){
+ $("#main-content .row > .col-md-12 .alert-wrapper").html("<div class=\"alert alert-danger\"><button data-dismiss=\"alert\" class=\"close\" type=\"button\">x</button><strong>Error!</strong> You are working in demo mode so no CRUD functions will be undertaken</div>");
+ $("html,body").animate({
+ scrollTop: $("#header").offset().top
+ }, "slow");
+ }
+ build_under_form = function(data, selector) {
+ $.ajax({
+ type: "POST",
+ url: $('.js-settings').attr('data-site-url') + "admin/menus/ajax_dropbox",
+ data: data,
+ dataType: "html",
+ success: function(data) {
+ populate(data, selector);
+ $("input").iCheck({
+ checkboxClass: "icheckbox_flat-grey",
+ radioClass: "iradio_flat-grey"
+ });
+ $('.saveWrapper').removeClass('hidden');
+ }
+ });
+ };
+ populate = function(d, selector) {
+ $(selector).append(d);
+ };
+ $("#menu-sortable-fields ol.sortable").nestedSortable({
+ items: "li",
+ maxLevels: 3
+ });
+ $(".update-menu").bind("click", function(e) {
+ do_update_function();
+ });
+ $("ol.sortable").on("click", "i.handler", function() {
+ var container;
+ container = $(" > .item-information", $(this).closest("li"));
+ if (container.hasClass("active")) {
+ $(this).removeClass("fa-minus");
+ $(this).addClass("fa-plus");
+ container.slideUp("slow");
+ container.removeClass("active");
+ } else {
+ $(this).removeClass("fa-plus");
+ $(this).addClass("fa-minus");
+ container.slideDown("slow");
+ container.addClass("active");
+ }
+ });
+ $("select.mod").bind("change", function(e) {
+ var form;
+ form = $(this).closest("form");
+ $("input[name=\"type\"]", form).val($(":selected", $(this)).attr("data-type"));
+ $("input[name=label]", form).val($(":selected", $(this)).text());
+ });
+ $("#menu-forms form").bind("submit", function(e) {
+ var data, dataString, formData, html, label, randomnumber, type;
+ e.preventDefault();
+ type = $(this).attr("data-type");
+ data = $(this).serializeArray();
+ dataString = $(this).serialize();
+ if (data[2]["value"] === "") {
+ label = "";
+ } else {
+ label = data[2]["value"];
+ }
+ randomnumber = Math.floor(Math.random() * 11);
+ if (type === "custom") {
+ if (($("input[name=customlink]", $(this)).val() !== "") && ($("input[name=label]", $(this)).val() !== "")) {
+ html = "<li class=\"dd-item\" style=\"\" data-id=\"option_" + data[1]["value"] + "\" id=\"custom_" + randomnumber + "\" data-type=\"custom\" data-data=\"" + dataString + "\"><div class=\"dd-handle\">" + label + "<i class=\"fa fa-plus pull-right handler\"></i></div>";
+ $("ol.sortable").append(html);
+ build_under_form(data, "#custom_" + randomnumber);
+ }
+ } else {
+ if (($("select[name=linkto]", $(this)).val() !== "") && ($("input[name=label]", $(this)).val() !== "")) {
+ formData = $(this).serialize();
+ html = "<li class=\"dd-item\" style=\"\" data-id=\"option_" + data[1]["value"] + "\" id=\"" + data[0]["value"] + "_" + randomnumber + "\" data-type=\"" + data[0]["value"] + "\" data-data=\"" + dataString + "\"><div class=\"dd-handle\">" + label + "<i class=\"fa fa-plus pull-right handler\"></i></div>";
+ $("ol.sortable").append(html);
+ build_under_form(data, "#" + data[0]["value"] + "_" + randomnumber);
+ }
+ }
+ $(this)[0].reset();
+ });
+
+ /*
+ on save of individual li option - this will serialize the data to the html so when you
+ save the actual menu it will take this data and send it to the server
+ */
+ $("ol.sortable").on("click", ".submit-form", function() {
+ var form_data;
+ form_data = $(this).closest("form");
+ $(this).closest("li").attr("data-data", form_data.serialize());
+ $(this).closest("li").find('> .dd-handle > .list-name-option').text(form_data.find('input[name=label]').val());
+ $(".update-menu").trigger("click");
+ });
+
+ /*
+ remove the option form the list. The form is not updated until you click the update function
+ at which point it serializes the data without the option in.
+ */
+ $("#menu-sortable-fields").on("click", ".delete-option", function(e) {
+ var li;
+ e.preventDefault();
+ $(this).closest(".item-information").slideUp("slow");
+ li = $(this).closest("li").fadeOut("slow");
+ setTimeout((function(e) {
+ $(li).remove();
+ }), 1000);
+ });
+});