Skip to content

Commit

Permalink
Temp checkin
Browse files Browse the repository at this point in the history
  • Loading branch information
seancribbs committed Oct 27, 2008
1 parent fa36065 commit 1d88f05
Show file tree
Hide file tree
Showing 20 changed files with 127 additions and 141 deletions.
3 changes: 2 additions & 1 deletion app/controllers/admin/page_parts_controller.rb
@@ -1,5 +1,6 @@
class Admin::PagePartsController < Admin::ResourceController
def new
def create
self.model.attributes = params[model_symbol]
@controller_name = 'page'
@action_name = 'edit'
render :partial => "page_part", :object => model,
Expand Down
33 changes: 4 additions & 29 deletions app/controllers/admin/pages_controller.rb
@@ -1,5 +1,5 @@
class Admin::PagesController < Admin::AbstractModelController
before_filter :initialize_meta_rows_and_buttons, :only => [:new, :edit]
class Admin::PagesController < Admin::ResourceController
before_filter :initialize_meta_rows_and_buttons, :only => [:new, :edit, :create, :update]

def index
@homepage = Page.find_by_parent_id(nil)
Expand All @@ -8,14 +8,14 @@ def index
format.js do
@level = params[:level].to_i
response.headers['Content-Type'] = 'text/html;charset=utf-8'
render :template => 'children.html.haml', :layout => false
render :template => 'children.html.haml', :layout => false
end
format.xml { render :xml => models }
end
end

def new
self.model = Page.new_with_defaults(config)
self.model = model_class.new_with_defaults(config)
super
end

Expand All @@ -30,7 +30,6 @@ def filter_reference
end

private

def model_class
if params[:page_id]
Page.find(params[:page_id]).children
Expand Down Expand Up @@ -59,28 +58,4 @@ def initialize_meta_rows_and_buttons
@meta << {:field => "description", :type => "text_field", :args => [{:class => 'textbox', :maxlength => 200}]}
@meta << {:field => "keywords", :type => "text_field", :args => [{:class => 'textbox', :maxlength => 200}]}
end

def save
parts = @page.parts
parts_to_update = {}
(params[:part]||{}).each {|k,v| parts_to_update[v[:name]] = v }

parts_to_remove = []
@page.parts.each do |part|
if(attrs = parts_to_update.delete(part.name))
part.attributes = part.attributes.merge(attrs)
else
parts_to_remove << part
end
end
parts_to_update.values.each do |attrs|
@page.parts.build(attrs)
end
if result = @page.save
new_parts = @page.parts - parts_to_remove
new_parts.each { |part| part.save }
@page.parts = new_parts
end
result
end
end
5 changes: 5 additions & 0 deletions app/controllers/admin/references_controller.rb
@@ -0,0 +1,5 @@
class Admin::ReferencesController < ApplicationController
def show
render :action => params[:id]
end
end
2 changes: 1 addition & 1 deletion app/controllers/admin/welcome_controller.rb
Expand Up @@ -3,7 +3,7 @@ class Admin::WelcomeController < ApplicationController
skip_before_filter :verify_authenticity_token

def index
redirect_to page_index_url
redirect_to admin_pages_url
end

def login
Expand Down
2 changes: 1 addition & 1 deletion app/helpers/admin/node_helper.rb
Expand Up @@ -30,7 +30,7 @@ def expanded
show_all? || expanded_rows.include?(@current_node.id)
end

def padding_left
def padding_left(level)
(level * 22) + 4
end

Expand Down
@@ -1,44 +1,26 @@
module Admin::PageHelper
module Admin::PagesHelper
include Admin::NodeHelper

def meta_errors?
!!(@page.errors[:slug] or @page.errors[:breadcrumb])
end

def tag_reference(class_name)
returning String.new do |output|
class_name.constantize.tag_descriptions.sort.each do |tag_name, description|
output << render(:partial => "tag_reference",
:locals => {:tag_name => tag_name, :description => description})
end
end
end

def filter_reference(filter_name)
unless filter_name.blank?
filter_class = (filter_name.gsub(" ", "") + "Filter").constantize
filter_class.description.blank? ? "There is no documentation on this filter." : filter_class.description
else
"There is no filter on the current page part."
end
end


def default_filter_name
@page.parts.empty? ? "" : @page.parts[0].filter_id
end

def homepage
@homepage ||= Page.find_by_parent_id(nil)
end

def page_edit_javascripts
<<-CODE
var last_type = "#{@page.class_name}";
function load_tag_reference(part) {
page_type = $F('page_class_name');
popup = $('tag-reference-popup');
if(last_type != page_type) {
url = "#{tag_reference_url}";
url = "#{admin_reference_path(:id => 'tags')}";
params = "class_name=" + page_type;
new Effect.Highlight('tag-reference-link-'+ part);
req = new Ajax.Request(url, { method: 'get', parameters: params, evalScripts: true });
Expand All @@ -53,7 +35,7 @@ def page_edit_javascripts
filter_type = $F("part_" + part + "_filter_id");
popup = $('filter-reference-popup');
if(last_filter != filter_type) {
url = "#{filter_reference_url}";
url = "#{admin_reference_path(:id => 'filters')}";
params = "filter_name=" + filter_type;
new Effect.Highlight('filter-reference-link-'+ part);
req = new Ajax.Request(url, { method: 'get', parameters: params, evalScripts: true });
Expand Down
22 changes: 22 additions & 0 deletions app/helpers/admin/references_helper.rb
@@ -0,0 +1,22 @@
module Admin::ReferencesHelper
def tag_reference
class_name = params[:class_name] || 'Page'
returning String.new do |output|
class_name.constantize.tag_descriptions.sort.each do |tag_name, description|
output << render(:partial => "tag_reference",
:locals => {:tag_name => tag_name, :description => description})
end
end
end

def filter_reference
filter_name = params[:filter_name]
unless filter_name.blank?
filter_class = (filter_name.gsub(" ", "") + "Filter").constantize
filter_class.description.blank? ? "There is no documentation on this filter." : filter_class.description
else
"There is no filter on the current page part."
end
end

end
2 changes: 1 addition & 1 deletion app/views/admin/page_parts/_page_part.html.haml
@@ -1,6 +1,6 @@
.page{:id => "page-#{index}"}
.part{:id => "part-#{index}"}
- fields_for "page[page_parts][]", part do |p|
- fields_for "page[page_parts][]", page_part do |p|
= p.hidden_field :name, :id => "part_#{index}_name"
%p
%label{:for => "part_#{index}_filter_id"} Filter
Expand Down
124 changes: 62 additions & 62 deletions app/views/admin/pages/_form.html.haml
@@ -1,62 +1,62 @@
- main.edit_form do
- form_for([:admin, @page], :html => {:multipart => true}) do |f|
= f.hidden_field :lock_version
= render_region :form_top
.form-area
- render_region :form do |form|
- form.edit_title do
%p.title
%label{:for=>"page_title"}
Page Title
= f.text_field :title, :class => 'textbox', :maxlength => 255
- form.edit_extended_metadata do
#extended-metadata.row{meta_visible(:meta)}
%table.fieldset
= render :partial => "meta_row", :collection => @meta, :locals => {:f => f}
= render_region :extended_metadata, :locals => {:f => f}
%p.more-or-less
%small
%a#more-extended-metadata{meta_visible(:meta_more), :href => "#", :onclick=>toggle_javascript_for('extended-metadata')} More
%a#less-extended-metadata{meta_visible(:meta_less), :href => "#", :onclick=>toggle_javascript_for('extended-metadata')} Less
- form.edit_page_parts do
#tab-control
#tabs.tabs
#tab-toolbar
= link_to_function image('plus', :alt => 'plus'), 'toggle_add_part_popup()', :title => 'Add Tab'
= link_to_function image('minus', :alt => 'minus'), 'if(confirm(\'Delete the current tab?\')) { tabControl.removeTab(tabControl.selected) }', :title => 'Remove Tab'
#pages.pages
- @page.parts.each_with_index |part, index|
= render :partial => 'admin/page_parts/page_part', :object => part, :locals => { :index => index }
- render_region :parts_bottom do |parts_bottom|
- parts_bottom.edit_layout_and_type do
.row
%p
%label{:for=>"page_layout_id"}
Layout
= f.select :layout_id, [['<inherit>', '']] + Layout.find(:all).map { |s| [s.name, s.id] }
%p
%label{:for=>"page_class_name"}
Page Type
= f.select :class_name, [['<normal>', 'Page']] + Page.descendants.map { |p| [p.display_name, p.name] }.sort_by { |p| p.first }
%p
%label{:for=>"page_status_id"}
Status
= f.select :status_id, Status.find_all.map { |s| [s.name, s.id] }, {}
- if @config['page.edit.published_date?']
%p#publication-date{:style => "display: none"}
%label{:for=>"page_published_at"}
Published At
= f.datetime_select :published_at, :disabled => true
= render_region :layout_row, :locals => {:f => f}
%span.clear &nbsp;
- parts_bottom.edit_timestamp do
= updated_stamp @page
- render_region :form_bottom do |form_bottom|
- form_bottom.edit_buttons do
- @buttons_partials.each do |partial|
= render :partial => partial, :locals => {:f => f}
%p.buttons
= save_model_button(@page)
= save_model_and_continue_editing_button(@page)
or
= link_to 'Cancel', admin_pages_url
- form_for([:admin, @page], :html => {:multipart => true}) do |f|
= f.hidden_field :lock_version
= f.hidden_field :parent_id
= render_region :form_top
.form-area
- render_region :form do |form|
- form.edit_title do
%p.title
%label{:for=>"page_title"}
Page Title
= f.text_field :title, :class => 'textbox', :maxlength => 255
- form.edit_extended_metadata do
#extended-metadata.row{meta_visible(:meta)}
%table.fieldset
= render :partial => "meta_row", :collection => @meta, :locals => {:f => f}
= render_region :extended_metadata, :locals => {:f => f}
%p.more-or-less
%small
%a#more-extended-metadata{meta_visible(:meta_more), :href => "#", :onclick=>toggle_javascript_for('extended-metadata')} More
%a#less-extended-metadata{meta_visible(:meta_less), :href => "#", :onclick=>toggle_javascript_for('extended-metadata')} Less
- form.edit_page_parts do
#tab-control
#tabs.tabs
#tab-toolbar
= link_to_function image('plus', :alt => 'plus'), 'toggle_add_part_popup()', :title => 'Add Tab'
= link_to_function image('minus', :alt => 'minus'), 'if(confirm(\'Delete the current tab?\')) { tabControl.removeTab(tabControl.selected) }', :title => 'Remove Tab'
#pages.pages
- @page.parts.each_with_index do |part, index|
= render :partial => 'admin/page_parts/page_part', :object => part, :locals => { :index => index }
- render_region :parts_bottom do |parts_bottom|
- parts_bottom.edit_layout_and_type do
.row
%p
%label{:for=>"page_layout_id"}
Layout
= f.select :layout_id, [['<inherit>', '']] + Layout.find(:all).map { |s| [s.name, s.id] }
%p
%label{:for=>"page_class_name"}
Page Type
= f.select :class_name, [['<normal>', 'Page']] + Page.descendants.map { |p| [p.display_name, p.name] }.sort_by { |p| p.first }
%p
%label{:for=>"page_status_id"}
Status
= f.select :status_id, Status.find_all.map { |s| [s.name, s.id] }, {}
- if @config['page.edit.published_date?']
%p#publication-date{:style => "display: none"}
%label{:for=>"page_published_at"}
Published At
= f.datetime_select :published_at, :disabled => true
= render_region :layout_row, :locals => {:f => f}
%span.clear &nbsp;
- parts_bottom.edit_timestamp do
= updated_stamp @page
- render_region :form_bottom do |form_bottom|
- form_bottom.edit_buttons do
- @buttons_partials.each do |partial|
= render :partial => partial, :locals => {:f => f}
%p.buttons
= save_model_button(@page)
= save_model_and_continue_editing_button(@page)
or
= link_to 'Cancel', admin_pages_url
4 changes: 2 additions & 2 deletions app/views/admin/pages/_node.html.haml
@@ -1,7 +1,7 @@
%tr.node{:id => "page-#{page.id}", :class =>"level-#{level}#{children_class}#{virtual_class}"}
- render_region :node, :locals => {:page => page, :level => level, :simple => simple} do |node|
- node.title_column do
%td.page{:style => "padding-left: #{padding_left}px"}
%td.page{:style => "padding-left: #{padding_left(level)}px"}
%span.w1
- if simple
= icon
Expand All @@ -15,7 +15,7 @@
%td.status{:class => "#{page.status.name.downcase}-status"}= page.status.name
- node.add_child_column do
- unless simple
%td.add-child= link_to image('add-child', :alt => 'add child'), new_admin_page_children_url(page)
%td.add-child= link_to image('add-child', :alt => 'add child'), new_admin_page_child_url(page)
- node.remove_column do
- unless simple
%td.remove= link_to image('remove', :alt => 'remove page'), remove_admin_page_url(page)
Expand Down
6 changes: 3 additions & 3 deletions app/views/admin/pages/_popups.html.haml
Expand Up @@ -2,10 +2,10 @@
#add-part-popup.popup{:style => "display: none"}
#busy.busy{:style => "display: none"}= image 'spinner.gif'
%h3 Add Part
- form_remote_tag(:url => page_add_part_url, :update => "pages", :position => :bottom, :loading => 'part_loading()', :complete => 'part_added()', :condition => 'valid_part_name()') do
- remote_form_for([:admin, PagePart.new], :update => "pages", :position => :bottom, :loading => 'part_loading()', :complete => 'part_added()', :condition => 'valid_part_name()') do |f|
%div
= hidden_field_tag 'index', @index, :id => 'part-index-field'
= text_field_tag "part[name]", "", :id => 'part-name-field', :maxlength => 100
= hidden_field_tag 'index', @page.parts.count + 1, :id => 'part-index-field'
= f.text_field :name, :id => 'part-name-field', :maxlength => 100
= submit_tag "Add Part", :id => 'add-part-button'
%p
= link_to_function 'Close', "$(this).up('.popup').hide()", :class => 'close-link'
Expand Down
5 changes: 0 additions & 5 deletions app/views/admin/pages/filter_reference.rjs

This file was deleted.

5 changes: 0 additions & 5 deletions app/views/admin/pages/tag_reference.rjs

This file was deleted.

5 changes: 5 additions & 0 deletions app/views/admin/references/filters.js.erb
@@ -0,0 +1,5 @@
$('filter-reference').update(<%= filter_reference.to_json %>);
$('filter-type').update(<%= @display_name.to_json %>);
center($('filter-reference-popup'));
window.last_filter = <%= @filter_name.to_json %>;
$('filter-reference-popup').show();
5 changes: 5 additions & 0 deletions app/views/admin/references/tags.js.erb
@@ -0,0 +1,5 @@
$('tag-reference').update(<%= tag_reference.to_json %>);
$('page-type').update(<%= @display_name.to_json %>);
center($('tag-reference-popup'));
window.last_type = <%= @class_name.to_json %>;
$('tag-reference-popup').show();
2 changes: 1 addition & 1 deletion app/views/layouts/application.html.haml
Expand Up @@ -48,7 +48,7 @@
%span.separator=" | "
= nav_link_to 'Log Out', logout_url
%span.separator=" | "
= link_to image('view-site.gif', :alt => "View Site", :title => ''), homepage_url
= link_to image('view-site.gif', :alt => "View Site", :title => ''), root_url
- if @content_for_popups
#popups
= yield :popups

0 comments on commit 1d88f05

Please sign in to comment.