// Items Quantity function itemsQuantity() { var $sortable = $('.sortable'), $host = $sortable.children('.navbar').eq(0), $navbar = $('.sortable li').children('.navbar'), $quantity = $sortable.find('li').length; $host.find('.badge').text($quantity); $navbar.each(function(i) { if($navbar.eq(i).next('ol').length>0) { var $amount = $navbar.eq(i).next('ol').find('li').length; $navbar.eq(i).find('.badge').text($amount); }else{ $navbar.eq(i).find('.badge').text('0'); } $navbar.eq(i).find('.badge').text()>0 ? $navbar.eq(i).find('.badge').addClass('badge-info'):$navbar.eq(i).find('.badge').removeClass('badge-info'); }) } function tip() { if(!$.support.touch) { $('.tip').tooltip({ position: { my: "center bottom-4", at: "center top", } }); }; } function touchSupport() { if($.support.touch) { $('.item-menu').css({ 'display': 'inline-block' }) } } function customOpenSlide() { var $openSlide = $('.open-slide'), $pageslideW; $(window).width() > 1440 ? $pageslideW = 1024 : $pageslideW = 954; $(window).resize(function() { $(this).width() > 1440 ? $pageslideW = 1024 : $pageslideW = 954; }); $noiFrame = $openSlide.not('.view-page'); $iFrame = $openSlide.filter('.view-page.open-slide'); $noiFrame.pageslide({ W: 314, openFn: function(pageslide, element) { element.addClass('active') .closest('.item-menu') .css('display', 'inline-block') .closest('.navbar-inner') .addClass('active'); }, closeFn: function(pageslide, element) { $('.item-menu').removeAttr('style'); element.removeClass('active') .closest('.navbar-inner') .removeClass('active'); }, loadComplete: function(pageslide, element) { $openSlide.removeClass('active'); $('.navbar-inner').removeClass('active'); $('.item-menu').removeAttr('style'); element.addClass('active') .closest('.item-menu') .css('display', 'inline-block') .closest('.navbar-inner') .addClass('active'); _type = element.hasClass('page') ? 'page' : 'link'; var _id = element.data('id'), _parent = element.data('parent'), _edit = element.hasClass('edit') ? true : false; $('#pageslide .parent').val(_parent); if(_id !== 'new') { $('#pageslide form').attr({ 'action': $('#pageslide form').attr('action') + '/' + _id, 'id': 'edit_' + _type + '_' + _id, 'method': 'put' }); setForm(element.data('form')); } else { $('#pageslide form').prop('method', 'post') }; _type == 'page' ? pageSetting(element.data('id'), _edit, pageslide) : linkSetting(element.data('id'), _edit, pageslide); } }); $iFrame.pageslide({ W: $pageslideW, iframe: true, openFn: function(pageslide, element) { element.addClass('active') .closest('.item-menu') .css('display', 'inline-block') .closest('.navbar-inner') .addClass('active'); }, closeFn: function(pageslide, element) { $('.item-menu').removeAttr('style'); element.removeClass('active') .closest('.navbar-inner') .removeClass('active'); $('#main-wrap').css('width', 'auto') }, loadComplete: function(pageslide, element) { $openSlide.removeClass('active'); $('.navbar-inner').removeClass('active'); $('.item-menu').removeAttr('style'); element.addClass('active') .closest('.item-menu') .css('display', 'inline-block') .closest('.navbar-inner') .addClass('active'); pageslide.find('.content').css('padding', 0); iFrameContent() } }); } function iFrameContent() { function iFrameFunction(iContents, pc) { pc.each(function(index, el) { if($(this).siblings('*').length == 0) { var _parentH = $(this).parent('*').outerHeight(); $(this).css('height', _parentH); } }); iContents.find('#orbit-bar').hide(); iContents.find('.main_wrap').css('margin-top', 0); iContents.find('a').not('.edit_link a').on('click', function(event) { event.preventDefault(); }).css('cursor', 'default'); } $('#pageslide_iframe').load(function() { var $iContents = $(this).contents(), $pc = $iContents.find('.page_content'); iFrameFunction($iContents, $pc); }); } function pageSetting(id, edit, ps) { $pageModule = $('#pageslide #page_module_app_id'); $pageF2E = $('#pageslide #page_app_frontend_url'); $pageDivF2E = $('#pageslide #front_url'); $pageDesign = $('#pageslide #page_design'); $pageTheme = $('#pageslide #page_theme_id'); $pageCategory = $('#pageslide #page-category'); $pageCategoryGroup = $('#pageslide #page-category-groups'); $pageTags = $('#pageslide #page-tags'); $pageTagsGroup = $('#pageslide #page-tags-groups'); $pagePublishedTrue = $('#pageslide #page_is_published_true'); $pageCount = $('#pageslide #page_count'); $pageDivCount = $('#pageslide #front_count'); _status = edit; _ID = id; if(_status) { $.ajax({ url: "<%= Rails.application.routes.url_helpers.get_page_setting_json_admin_pages_path %>", contentType: "application/json; charset=utf-8", dataType: 'json', data: {id: id}, cache: false, }) .done(function(data) { _boolean = true; _selectData = data; $.each(_pageData.design, function(index, val) { $pageDesign.append(''); if(val.main[1] == _selectData.design.main) { $.each(val.sub, function(index, val) { $pageTheme.append('') }); }; }); $.each(_pageData.module, function(index, val) { $pageModule.append(''); if(_selectData.module.main && val.main[1] == _selectData.module.main) { $pageDivF2E.show(); $.each(val.sub, function(index, val) { $pageF2E.append('') }); $.each(val.count, function(index, val) { $pageCount.append(''); }); $pageDivCount.show(); if(val.category.length > 0) { $.each(val.category, function(index, val) { var _arr = $.inArray($(this)[1], _selectData.module.category); $pageCategory.append(''); if(_arr !== -1) { $pageCategory.find('input[type="checkbox"]').eq(index).prop('checked', true); } var $all = $pageCategory.siblings('.checkbox').children('.select_all'), $hiddenInput = $pageCategory.siblings('input[type="hidden"]'); _selectData.module.category.length ? $hiddenInput.removeAttr('name') : $hiddenInput.attr('name', 'page[category][]'); _selectData.module.category.length == index + 1 ? $all.prop('checked', true) : $all.prop('checked', false); console.log($hiddenInput, _selectData.module.category) }); $pageCategoryGroup.show(); } if(val.tags.length > 0) { $.each(val.tags, function(index, val) { var _arr = $.inArray($(this)[1], _selectData.module.tags); $pageTags.append(''); if(_arr !== -1) { $pageTags.find('input[type="checkbox"]').eq(index).prop('checked', true); } var $all = $pageTags.siblings('.checkbox').children('.select_all'), $hiddenInput = $pageTags.siblings('input[type="hidden"]'); _selectData.module.tags.length ? $hiddenInput.removeAttr('name') : $hiddenInput.attr('name', 'page[tag][]'); _selectData.module.tags.length == index + 1 ? $all.prop('checked', true) : $all.prop('checked', false); }); $pageTagsGroup.show(); } getView(_selectData.module.main, id); }; }); _selectData.module.public ? $pagePublishedTrue.prop('checked', true) : $pagePublishedTrue.prop('checked', false); $.each(_selectData.module.link, function(index, val) { if(val[1]) { $('#pageslide .active-link.' + val[0]).find('input[type="checkbox"]').prop('checked', true).end().find('.active-mune').slideDown(300); $('#pageslide .active-link.' + val[0]).find('input[type="radio"]').eq(val[2]).prop('checked', true); } }); $('#pageslide').find('.nano').nanoScroller({ scrollTop: 0, iOSNativeScrolling: true }); $pagePublishedTrue.prop('checked') ? $('.link-options').slideDown(300) : $('.link-options').slideUp(300); }) .fail(function(jqXHR, textStatus) { console.log(jqXHR.status, textStatus) var $errorMsg = '

Sorry! Something is wrong

' $('#pageslide .view-page').append($errorMsg); }); } else { _boolean = false; $.each(_pageData.design, function(index, val) { $pageDesign.append(''); if(val.main[2]) { $.each(val.sub, function(index, val) { $pageTheme.append('') }); }; }); $.each(_pageData.module, function(index, val) { $pageModule.append(''); }); }; }; function linkSetting(id, edit, ps) { $linkPublishedTrue = ps.find('#link_is_published_true'); _status = edit; if(_status) { $.ajax({ url: "<%= Rails.application.routes.url_helpers.get_link_setting_json_admin_links_path %>", contentType: "application/json; charset=utf-8", dataType: 'json', data: {id: id}, cache: false, }) .done(function(data) { _linkData = data; console.log($linkPublishedTrue) data.public ? $linkPublishedTrue.prop('checked', true) : $linkPublishedTrue.prop('checked', false); $linkPublishedTrue.prop('checked') ? $('.link-options').slideDown(300) : $('.link-options').slideUp(300); $.each(_linkData.link, function(index, val) { if(val[1]) { $('#pageslide .active-link.' + val[0]).find('input[type="checkbox"]').prop('checked', true).end().find('.active-mune').slideDown(300); $('#pageslide .active-link.' + val[0]).find('input[type="radio"]').eq(val[2]).prop('checked', true); } }); $('#pageslide').find('.nano').nanoScroller({ scrollTop: 0, iOSNativeScrolling: true }); }) .fail(function(jqXHR, textStatus) { console.log(jqXHR.status, textStatus) var $errorMsg = '

Sorry! Something is wrong

' $('#pageslide .view-page').append($errorMsg); }); } } function getPageData() { $.getJSON("<%= Rails.application.routes.url_helpers.get_page_design_module_json_admin_items_path %>").done(function(data) { _pageData = data; }); } function getView(module_id, id) { var _data = {}; _data.val = $('#pageslide #page_app_frontend_url option:selected').val(); _data.id = id; _data.module_id = module_id $.ajax({ url: "<%= Rails.application.routes.url_helpers.get_display_style_admin_pages_path %>", dataType: "script", data: _data, contentType: "application/html; charset=utf-8", cache: false, }); } $(function() { $pageModule = null, $pageF2E = null, $pageDivF2E = null, $pageDesign = null, $pageTheme = null, $pageCategory = null, $pageCategoryGroup = null, $pageTags = null, $pageTagsGroup = null, $pagePublishedTrue = null, $pageCount = null, $pageDivCount = null, $linkKey = null, $linkUrl = null, $linkTitle = null, $linkPublishedTrue = null, _boolean = null, _ID = null, _type = null, _status = null, _pageData = null, _selectData = null, _linkData = null; $('.sortable').nestedSortable({ handle: '.brand', items: 'li', maxLevels: 3, opacity: .6, toleranceElement: '> div', placeholder: 'placeholder', startCollapsed: true, disableNesting: 'no-nest', update: function(event, ui) { var position = null; if($(ui.item).closest('ol').hasClass('item-groups')) { position = $(ui.item).index() - 1; } else { position = $(ui.item).index(); }; var next_sibling = $(ui.item).next(), next_sibling_id = null; if( next_sibling ) next_sibling_id = next_sibling.attr("id"); $.post("<%= Rails.application.routes.url_helpers.update_position_admin_items_path %>", { id: ui.item.attr('id'), parent_id: (ui.item.parent().closest('li').attr('id') || ui.item.parent().closest('ol').attr('id')), position: position, "next_sibling_id" : next_sibling_id } ); } }); $(".sortable").delegate(".brand, .delete", clickEvent, function(e){ if($(this).hasClass('delete')) { $target = $(this); $('#dialog a.delete-item').attr("href", $(this).attr("rel")); $('#dialog').modal('show'); } else { if($(this).closest('li').children('ol').length > 0){ $(this).closest('li').toggleClass('collapsed'); } } e.preventDefault(); }); $("#dialog").on('show', function (e) { $(this).find('.delete-item').on(clickEvent, function() { $target.parents('.navbar').parent('li').remove(); $('ol').not('.sortable').each(function() { if($(this).children('li').index() == -1) { $(this).remove(); } }); itemsQuantity(); $('#dialog').modal('hide'); e.preventDefault(); }) }); $('#pageslide').on('change', '.change', function(event) { var _data, _select, _subData, $subSelete; if(event.target.id !== 'page_app_frontend_url') { if(event.target.id == 'page_design') { _data = _pageData.design; _select = _boolean ? _selectData.design : null; _subData = 'template'; $subSelete = $('#pageslide #page_theme_id'); } else { _data = _pageData.module; _select = _boolean ? _selectData.module : null; _subData = 'module'; $subSelete = $('#pageslide #page_app_frontend_url'); $pageDivF2E.show(); }; $(this).children("option:selected").each(function () { var _val = $(this).val(); $subSelete.empty(); $pageCount.empty(); if(_val) { $.each(_data, function(index, val) { if(_val == val.main[1]) { $.each(val.sub, function(index, val) { var _selected = _select && $(this)[1] == _select.sub ? 'selected="selected"' : ''; $subSelete.append(''); }); $.each(val.count, function(index, val) { $pageCount.append(''); }); getView(val.main[1]); $pageDivCount.show(); if(event.target.id == 'page_module_app_id') { $pageCategory.empty(); var $hiddenInputA = $pageCategory.siblings('input[type="hidden"]'); if(val.category.length > 0) { $.each(val.category, function(index, val) { if(val !== 0) { var _arr = _select ? $.inArray($(this)[1], _select.category) : ''; $pageCategory.append(''); if(_boolean && _arr !== -1) { $pageCategory.find('input[type="checkbox"]').eq(index).prop('checked', true); } var $all = $pageCategory.siblings('.checkbox').children('.select_all'); _val == _select.main && _select.category.length ? $hiddenInputA.removeAttr('name') : $hiddenInputA.attr('name', 'page[category][]'); _boolean && _val == _select.main && _select.category.length == index + 1 ? $all.prop('checked', true) : $all.prop('checked', false); } }); $pageCategoryGroup.slideDown(300); } else { $pageCategoryGroup.slideUp(300); $hiddenInputA.removeAttr('name'); } $pageTags.empty(); var $hiddenInputB = $pageTags.siblings('input[type="hidden"]'); if(val.tags.length > 0) { $.each(val.tags, function(index, val) { if(val !== 0) { var _arr = _select ? $.inArray($(this)[1], _select.tags) : ''; $pageTags.append(''); if(_boolean && _arr !== -1) { $pageTags.find('input[type="checkbox"]').eq(index).prop('checked', true); } var $all = $pageTags.siblings('.checkbox').children('.select_all'); _val == _select.main && _select.tags.length ? $hiddenInputB.removeAttr('name') : $hiddenInputB.attr('name', 'page[tag][]'); _boolean && _val == _select.main && _select.tags.length == index + 1 ? $all.prop('checked', true) : $all.prop('checked', false); } }); $pageTagsGroup.slideDown(300); } else { $pageTagsGroup.slideUp(300); $hiddenInputB.removeAttr('name'); } } return false; }; }); } else { $pageCategory.empty(); $pageCategoryGroup.hide(); $pageTags.empty(); $pageTagsGroup.hide(); $pageF2E.empty(); $pageDivF2E.hide(); $pageCount.empty(); $pageDivCount.hide(); } }); } else { getView($pageModule.val()); } event.preventDefault(); }); $('#pageslide').on('change', '.checkbox-groups input', function(event) { var $checked = $(this); if($checked.attr('type') == 'checkbox') { if($checked.hasClass('select_all')) { if($checked.prop('checked')) { $checked.closest('.checkbox').siblings('.groups').find('input[type="checkbox"]').prop('checked', true); $checked.closest('.checkbox').siblings('input[type="hidden"]').removeAttr('name'); } else { $checked.closest('.checkbox').siblings('.groups').find('input[type="checkbox"]').prop('checked', false); $checked.closest('.checkbox').siblings('input[type="hidden"]').attr('name', 'page['+$checked.closest('.checkbox-groups').data('for')+'][]'); } } else if($checked.hasClass('lang-enable')) { var checkboxes = $checked.closest('.groups').find('input[type="checkbox"]'); if($checked.prop('checked')) { $checked.closest('.active-link').addClass('active').siblings('active-link').removeClass('active').end().find('.active-mune').slideDown(300); if(_status) { var _index = $checked.closest('.link-options').find('.active').index() - 1, _index = _type == 'page' ? _selectData.module.link[_index][1] : _linkData.link[_index][1] ; $checked.closest('.active-link').find('.active-mune input').eq(_index).prop('checked', true); } } else { $('.active-link').removeClass('active'); $checked.closest('.active-link').find('.active-mune').slideUp(300, function() { $(this).find('input:eq(0)').prop('checked', true); }) } } else { var _l = $checked.closest('.groups').find('input[type="checkbox"]').length, _c = $checked.closest('.groups').find('input[type="checkbox"]:checked').length; if(_l == _c) { $checked.closest('.groups').siblings('.checkbox').find('.select_all').prop('checked', true); } else { $checked.closest('.groups').siblings('.checkbox').find('.select_all').prop('checked', false); }; _c == 0 ? $checked.closest('.groups').siblings('input[type="hidden"]').attr('name', 'page['+$checked.closest('.checkbox-groups').data('for')+'][]') : $checked.closest('.groups').siblings('input[type="hidden"]').removeAttr('name'); } return false; } else if($checked.attr('type') == 'radio' && !$(this).closest('div').hasClass('active-mune')) { $('#pageslide #page_is_published_true').prop('checked') || $('#pageslide #link_is_published_true').prop('checked') ? $('.link-options').slideDown(300) : $('.link-options').slideUp(300); return false; } event.preventDefault(); }); tip(); touchSupport() itemsQuantity(); getPageData(); }); function reloadStructure(){ $.pageslide.close(); customOpenSlide(); tip(); touchSupport() itemsQuantity(); };