diff --git a/app/assets/javascripts/lib/items/items.js.erb b/app/assets/javascripts/lib/items/items.js.erb index d9b9677..b97ceae 100755 --- a/app/assets/javascripts/lib/items/items.js.erb +++ b/app/assets/javascripts/lib/items/items.js.erb @@ -18,16 +18,6 @@ var Items = function(){ } this.bindHandlers = function(){ - var $openSlide = $('.open-slide'), - $pageslideW = $(window).width() > 1440 ? 1024 : 954; - $(window).resize(function() { - $(this).width() > 1440 ? $pageslideW = 1024 : $pageslideW = 954; - }); - $iFrame = $openSlide.filter('.view-page.open-slide'); - $iFrame.pageslide({ - W: $pageslideW, - iframe: true - }); $('.sortable').nestedSortable({ handle: '.brand', items: 'li', @@ -233,3 +223,87 @@ $(function(){ $("#pageslide_iframe").css("box-shadow","0px 0px 40px #333"); }); }); + +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() + } + }); +} diff --git a/app/assets/javascripts/lib/pageslide.js b/app/assets/javascripts/lib/pageslide.js index 610259a..1d62e5b 100755 --- a/app/assets/javascripts/lib/pageslide.js +++ b/app/assets/javascripts/lib/pageslide.js @@ -32,7 +32,6 @@ // Are we loading an element from the page or a URL? if ( settings.href.indexOf("#") === 0 ) { // Load a page element - window.console.log("in HTML"); var _contentHtml = $(settings.href).html(); var dtd = $.Deferred(); function appendHtml(dtd) { @@ -53,7 +52,6 @@ } else { // Load a URL. Into an iframe? if(settings.iframe) { - window.console.log("iFrame"); var iframe = $('').attr({ src: settings.href, frameborder: 0, @@ -66,7 +64,6 @@ $pageslide.find('.content').css('overflow', 'hidden').html(iframe).show(); if(settings.loadComplete)settings.loadComplete.call(this, $pageslide, $element); } else { - window.console.log("Load"); $pageslide.find('.content').load(settings.href, function(response, status, xhr){ if(status == 'success') { $pageslide.show(); @@ -95,9 +92,9 @@ slideAnimateIn = {}; // If the slide is open or opening, just ignore the call - if($pageslide.is(':visible') || _sliding) return; + + if($pageslide.is(':visible')) return; _sliding = true; - switch(settings.direction) { case 'left': $pageslide.css({left: 'auto', right: '-' + slideWidth + 'px'}); @@ -132,6 +129,7 @@ // On click $elements.click( function(e) { + var $self = $(this), settings = $.extend({href: $self.attr('href'), pageTitle: $self.data('title')}, options); diff --git a/app/controllers/admin/items_controller.rb b/app/controllers/admin/items_controller.rb index e277159..c6282cd 100644 --- a/app/controllers/admin/items_controller.rb +++ b/app/controllers/admin/items_controller.rb @@ -4,5 +4,7 @@ class Admin::ItemsController < OrbitAdminController layout "structure" def index @items = Page.all + @parent_pages = [] + end end diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 295a1a2..94c1167 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -131,6 +131,7 @@ class PagesController < ApplicationController def destroy page = Page.find(params[:id]) + @parent_pages = page.parent_pages_without_root page.destroy respond_to do |format| format.js @@ -198,6 +199,7 @@ class PagesController < ApplicationController @page = Page.find(params[:id]) @page.update_attributes(page_update_params) @page.save + @parent_pages = @page.parent_pages_without_root respond_to do |format| format.js end @@ -208,6 +210,7 @@ class PagesController < ApplicationController params['page']['page_id'] = params['page']['page_id'].gsub('-','_') @page = Page.new(page_params) @page.save! + @parent_pages = @page.parent_pages_without_root respond_to do |format| format.js end diff --git a/app/models/page.rb b/app/models/page.rb index 88eb55b..d8b0636 100644 --- a/app/models/page.rb +++ b/app/models/page.rb @@ -39,6 +39,28 @@ class Page self.number = number end + def parent_pages + parent_page = self.parent_page + pages = [] + while parent_page != nil + pages << parent_page.id + parent_page = parent_page.parent_page + end + pages + end + + def parent_pages_without_root + parent_page = self.parent_page + pages = [] + while parent_page != nil + if parent_page.parent_page_id != nil + pages << parent_page.id + end + parent_page = parent_page.parent_page + end + pages + end + def to_param page_id.parameterize end diff --git a/app/views/admin/items/_node_and_children.html.erb b/app/views/admin/items/_node_and_children.html.erb index 732d6ad..6319375 100644 --- a/app/views/admin/items/_node_and_children.html.erb +++ b/app/views/admin/items/_node_and_children.html.erb @@ -1,5 +1,5 @@ <% unless node.root? %> -