From 52c78856be9433bd3de09c010afed28f055e0342 Mon Sep 17 00:00:00 2001 From: Harry Bomrah Date: Fri, 13 Mar 2015 16:39:09 +0800 Subject: [PATCH] added insert new widgets to kernel --- app/controllers/page_parts_controller.rb | 31 ++++++++++++++++++++++ app/views/admin/members/_side_bar.html.erb | 2 +- app/views/page_parts/_form.html.erb | 8 ++++++ 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/app/controllers/page_parts_controller.rb b/app/controllers/page_parts_controller.rb index d2d5eaf..032d7ef 100644 --- a/app/controllers/page_parts_controller.rb +++ b/app/controllers/page_parts_controller.rb @@ -5,6 +5,8 @@ class PagePartsController < ApplicationController @part.sub_parts.build @part_number = params[:part] @page_id = params[:page_id] + page = Page.find(@page_id) + @child_page_count = (page.root? ? 0 : page.child_page.count) rescue 0 @modules = ModuleApp.widget_enabled @modules = @modules.concat(OrbitWidget.all) @no_orbit_bar = @no_side_bar = true @@ -19,6 +21,8 @@ class PagePartsController < ApplicationController @part = parts.where(:part_id => params[:id]).first @part.sub_parts.build @page_id = params[:page_id] + page = Page.find(@page_id) + @child_page_count = (page.root? ? 0 : page.child_page.count) rescue 0 @part_number = params[:id] @select_number = @part.sub_parts.count @modules = ModuleApp.widget_enabled @@ -32,6 +36,7 @@ class PagePartsController < ApplicationController @part = part_model.find(params[:part_id]) @subpart = SubPart.find(params[:sub_part_id]) @select_number = @part.sub_parts.index(@subpart) + @child_page_count = 0 @kind = @subpart.kind @modules = ModuleApp.widget_enabled @modules = @modules.concat(OrbitWidget.all) @@ -138,6 +143,7 @@ class PagePartsController < ApplicationController def create @part = part_model.new(part_params) @part.save! + apply_to_sub_pages(part_params,nil,nil) if !params[:apply_to_subpage].nil? && !@part.page_id.nil? render :json => {"success"=>true}.to_json end @@ -145,11 +151,36 @@ class PagePartsController < ApplicationController def update @part = part_model.find(params[:part_id]) @part.update_attributes(part_params) + apply_to_sub_pages(part_params,params[:part_id],params[:page_id]) if !params[:apply_to_subpage].nil? && !@part.page_id.nil? render :json => {"success"=>true}.to_json end private + def apply_to_sub_pages(part_params,part_id=nil,page_id=nil) + page_id = part_params[:page_id] if page_id.nil? + page = Page.find(page_id) rescue nil + if !page.nil? + child_pages = page.child_page + child_pages.each do |cp| + temp = part_params + if part_id.nil? + partid = part_params[:part_id] + else + partid = part_model.find(part_id).part_id + end + page_part = cp.page_parts.where(:part_id => partid).first rescue nil + if page_part.nil? + temp[:page_id] = cp.id.to_s + part = part_model.new(temp) + part.save! + else + page_part.update_attributes(temp) + end + end + end + end + def get_widget_files(module_name) temp = [] f = File.join("#{Rails.root}/app/templates/#{@key}/modules/#{module_name.downcase}/info.json") diff --git a/app/views/admin/members/_side_bar.html.erb b/app/views/admin/members/_side_bar.html.erb index f1ba75c..32a197b 100644 --- a/app/views/admin/members/_side_bar.html.erb +++ b/app/views/admin/members/_side_bar.html.erb @@ -51,7 +51,7 @@

<%= t(:groups) %>

<%= content_tag :ul, :class => ("nav nav-list ") do -%> <%= content_tag :li, link_to((content_tag(:span, "My Groups")), admin_groups_path), :class => active_for_action('groups', 'index') %> - <%= content_tag :li, link_to((content_tag(:span, "Categories")), admin_groups_categories_path), :class => active_for_action('groups','group_category') %> + <%= content_tag :li, link_to((content_tag(:span, "Categories")), admin_groups_categories_path), :class => active_for_action('groups','categories') %> <% end -%> diff --git a/app/views/page_parts/_form.html.erb b/app/views/page_parts/_form.html.erb index 4c0b141..08407f7 100644 --- a/app/views/page_parts/_form.html.erb +++ b/app/views/page_parts/_form.html.erb @@ -62,6 +62,14 @@ <%= select_tag("page_part[sub_parts_attributes][#{@select_number}][module]", options_for_select(@modules.map{|m| [m.title,m.key]}, (@subpart.module rescue nil)),{:include_blank => true,"class" => "input-xlarge change module_name"}) %> + <% if @child_page_count > 0 %> +
+ +
+ +
+
+ <% end %>
<% if params[:action] == "edit_sub_part" && @kind == "module_widget"%> <%= render :partial => "widget_form" %>