goldberg_generator 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/USAGE +34 -0
- data/goldberg_generator.rb +463 -0
- data/templates/README_GOLDBERG +22 -0
- data/templates/app/views/layouts/application.rhtml +80 -0
- data/templates/layouts/ewnf/README +8 -0
- data/templates/layouts/ewnf/app/views/layouts/application.rhtml +74 -0
- data/templates/layouts/ewnf/public/images/bg.gif +0 -0
- data/templates/layouts/ewnf/public/images/daddy_rightarrow.gif +0 -0
- data/templates/layouts/ewnf/public/images/sample.jpg +0 -0
- data/templates/layouts/ewnf/public/images/title_img.jpg +0 -0
- data/templates/layouts/ewnf/public/stylesheets/layout.css +223 -0
- data/templates/layouts/snooker/app/views/layouts/application.rhtml +74 -0
- data/templates/layouts/snooker/public/images/column_200.png +0 -0
- data/templates/layouts/snooker/public/images/daddy_rightarrow.gif +0 -0
- data/templates/layouts/snooker/public/images/footer_bg.png +0 -0
- data/templates/layouts/snooker/public/images/logo.jpg +0 -0
- data/templates/layouts/snooker/public/stylesheets/layout.css +183 -0
- data/templates/layouts/spoiled_brat/LICENSE.txt +211 -0
- data/templates/layouts/spoiled_brat/README +8 -0
- data/templates/layouts/spoiled_brat/app/views/layouts/application.rhtml +71 -0
- data/templates/layouts/spoiled_brat/public/images/blockquote-bg.gif +0 -0
- data/templates/layouts/spoiled_brat/public/images/body-bg.jpg +0 -0
- data/templates/layouts/spoiled_brat/public/images/centerColumn-bg.jpg +0 -0
- data/templates/layouts/spoiled_brat/public/images/daddy_leftarrow.gif +0 -0
- data/templates/layouts/spoiled_brat/public/images/h2-bg.gif +0 -0
- data/templates/layouts/spoiled_brat/public/images/h3-bg.gif +0 -0
- data/templates/layouts/spoiled_brat/public/images/header-bg.jpg +0 -0
- data/templates/layouts/spoiled_brat/public/images/hr-bg.jpg +0 -0
- data/templates/layouts/spoiled_brat/public/images/logo.jpg +0 -0
- data/templates/layouts/spoiled_brat/public/stylesheets/layout.css +379 -0
- data/templates/public/goldberg/images/action.png +0 -0
- data/templates/public/goldberg/images/add.png +0 -0
- data/templates/public/goldberg/images/bodybg.jpg +0 -0
- data/templates/public/goldberg/images/delete.png +0 -0
- data/templates/public/goldberg/images/down.png +0 -0
- data/templates/public/goldberg/images/footerbg.jpg +0 -0
- data/templates/public/goldberg/images/logo_right.jpg +0 -0
- data/templates/public/goldberg/images/menuhover.jpg +0 -0
- data/templates/public/goldberg/images/page.png +0 -0
- data/templates/public/goldberg/images/permission.png +0 -0
- data/templates/public/goldberg/images/role.png +0 -0
- data/templates/public/goldberg/images/up.png +0 -0
- data/templates/public/goldberg/javascripts/suckerfish.js +12 -0
- data/templates/public/goldberg/stylesheets/goldberg.css +142 -0
- data/templates/public/goldberg/stylesheets/layout.css +321 -0
- data/templates/public/goldberg/stylesheets/suckerfish.css +124 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/auth_controller.rb +104 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/content_pages_controller.rb +197 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/controller_actions_controller.rb +134 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/menu_items_controller.rb +184 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/permissions_controller.rb +60 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/roles_controller.rb +85 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/roles_permissions_controller.rb +65 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/site_controllers_controller.rb +157 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/system_settings_controller.rb +75 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/users_controller.rb +293 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/auth_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/content_pages_helper.rb +23 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/controller_actions_helper.rb +5 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/menu_items_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/permissions_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/roles_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/roles_permissions_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/site_controllers_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/system_settings_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/users_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/content_page.rb +134 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/controller_action.rb +86 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/credentials.rb +128 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/menu.rb +198 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/menu_item.rb +127 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/permission.rb +37 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/role.rb +68 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/roles_permission.rb +18 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/site_controller.rb +59 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/system_settings.rb +112 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/user.rb +69 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/user_mailer.rb +43 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/auth/_login.rhtml +15 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/auth/login.rhtml +22 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/auth/logout.rhtml +2 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/_fck_create_folder.rxml +6 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/_fck_files.rxml +19 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/_form.rhtml +32 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/edit.rhtml +10 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/fck_speller_pages.rhtml +58 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/list.rhtml +22 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/show.rhtml +57 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/view.rhtml +1 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/view_default.rhtml +1 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/controller_actions/_form.rhtml +53 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/controller_actions/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/controller_actions/list.rhtml +27 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/controller_actions/new.rhtml +10 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/controller_actions/show.rhtml +13 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/layouts/_tabpanel_js.rhtml +52 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/layouts/_tabpanel_list.rhtml +7 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_breadcrumbs.rhtml +5 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_form.rhtml +42 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_item_list.rhtml +52 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_item_parent_list.rhtml +15 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_menubar.rhtml +21 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_suckerfish.rhtml +14 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/edit.rhtml +10 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/list-original.rhtml +27 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/list.rhtml +16 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/new.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/show.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/permissions/_form.rhtml +7 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/permissions/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/permissions/list.rhtml +14 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/permissions/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/permissions/show.rhtml +38 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles/_form.rhtml +18 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles/list.rhtml +21 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles/show.rhtml +79 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/_form.rhtml +13 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/list.rhtml +24 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/new_permission_for_role.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/show.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/_form.rhtml +15 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/_list.rhtml +26 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/list.rhtml +107 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/show.rhtml +38 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/system_settings/_form.rhtml +71 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/system_settings/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/system_settings/list.rhtml +27 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/system_settings/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/system_settings/show.rhtml +189 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/user_mailer/confirmation_request.rhtml +19 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/user_mailer/reset_password.rhtml +17 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/user_mailer/reset_password_request.rhtml +23 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/_form.rhtml +53 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/confirm_registration.rhtml +26 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/confirm_registration_submit.rhtml +4 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/create.rhtml +19 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/edit.rhtml +11 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/forgot_password.rhtml +27 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/forgot_password_submit.rhtml +4 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/list.rhtml +18 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/new.rhtml +19 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/reset_password.rhtml +11 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/reset_password_submit.rhtml +3 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/show.rhtml +33 -0
- data/templates/vendor/plugins/goldberg/db/ContentPage.yml +466 -0
- data/templates/vendor/plugins/goldberg/db/ControllerAction.yml +162 -0
- data/templates/vendor/plugins/goldberg/db/MenuItem.yml +109 -0
- data/templates/vendor/plugins/goldberg/db/Permission.yml +21 -0
- data/templates/vendor/plugins/goldberg/db/Role.yml +493 -0
- data/templates/vendor/plugins/goldberg/db/RolesPermission.yml +26 -0
- data/templates/vendor/plugins/goldberg/db/SiteController.yml +61 -0
- data/templates/vendor/plugins/goldberg/db/SystemSettings.yml +21 -0
- data/templates/vendor/plugins/goldberg/db/User.yml +15 -0
- data/templates/vendor/plugins/goldberg/db/migrate/001_initial_setup.rb +128 -0
- data/templates/vendor/plugins/goldberg/db/migrate/002_menu_rest_items_users_cached_content_pages.rb +26 -0
- data/templates/vendor/plugins/goldberg/db/migrate/003_self_registration.rb +54 -0
- data/templates/vendor/plugins/goldberg/db/migrate/004_column_fixes.rb +119 -0
- data/templates/vendor/plugins/goldberg/init.rb +13 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg.rb +37 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/controller.rb +11 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/filters.rb +197 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/helper.rb +66 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/migration.rb +113 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/migrator.rb +128 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/model.rb +110 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/routes.rb +49 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/test_helper.rb +82 -0
- data/templates/vendor/plugins/goldberg/tasks/goldberg_tasks.rake +47 -0
- data/templates/vendor/plugins/goldberg/test/functional/content_pages_controller_test.rb +31 -0
- data/templates/vendor/plugins/goldberg/test/integration/security_test.rb +134 -0
- data/templates/vendor/plugins/goldberg/test/test_helper.rb +40 -0
- data/templates/vendor/plugins/goldberg/test/unit/content_page_test.rb +87 -0
- data/templates/vendor/plugins/goldberg/test/unit/controller_action_test.rb +85 -0
- data/templates/vendor/plugins/goldberg/test/unit/menu_item_test.rb +46 -0
- data/templates/vendor/plugins/goldberg/test/unit/permission_test.rb +35 -0
- data/templates/vendor/plugins/goldberg/test/unit/site_controller_test.rb +53 -0
- data/templates/vendor/plugins/goldberg/test/unit/system_settings_test.rb +71 -0
- data/templates/vendor/plugins/goldberg/test/unit/user_test.rb +104 -0
- metadata +310 -0
@@ -0,0 +1,197 @@
|
|
1
|
+
module Goldberg
|
2
|
+
class ContentPagesController < ApplicationController
|
3
|
+
include Goldberg::Controller
|
4
|
+
|
5
|
+
# GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
|
6
|
+
verify :method => :post, :only => [ :destroy, :create, :update ],
|
7
|
+
:redirect_to => { :action => :list }
|
8
|
+
|
9
|
+
def index
|
10
|
+
list
|
11
|
+
render :action => 'list'
|
12
|
+
end
|
13
|
+
|
14
|
+
def list
|
15
|
+
@content_pages = ContentPage.find(:all, :order => 'name')
|
16
|
+
end
|
17
|
+
|
18
|
+
def show
|
19
|
+
@content_page = ContentPage.find(params[:id])
|
20
|
+
foreign
|
21
|
+
end
|
22
|
+
|
23
|
+
def view
|
24
|
+
@content_page = ContentPage.find_by_name(params[:page_name].join('/'))
|
25
|
+
if not @content_page
|
26
|
+
if Goldberg.settings
|
27
|
+
@content_page = ContentPage.find(Goldberg.settings.not_found_page_id)
|
28
|
+
else
|
29
|
+
@content_page = ContentPage.new(:id => nil,
|
30
|
+
:content => '(no such page)')
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def view_default
|
36
|
+
if Goldberg.settings
|
37
|
+
@content_page = ContentPage.find(Goldberg.settings.site_default_page_id)
|
38
|
+
else
|
39
|
+
@content_page = ContentPage.new(:id => nil,
|
40
|
+
:content => '(Site not configured)')
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def new
|
45
|
+
@content_page = ContentPage.new
|
46
|
+
foreign
|
47
|
+
@content_page.markup_style = @markup_styles.first
|
48
|
+
end
|
49
|
+
|
50
|
+
def create
|
51
|
+
@content_page = ContentPage.new(params[:content_page])
|
52
|
+
if @content_page.save
|
53
|
+
flash[:notice] = 'ContentPage was successfully created.'
|
54
|
+
Role.rebuild_cache
|
55
|
+
redirect_to :action => 'list'
|
56
|
+
else
|
57
|
+
foreign
|
58
|
+
render :action => 'new'
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def edit
|
63
|
+
@content_page = ContentPage.find(params[:id])
|
64
|
+
foreign()
|
65
|
+
end
|
66
|
+
|
67
|
+
def update
|
68
|
+
@content_page = ContentPage.find(params[:id])
|
69
|
+
if @content_page.update_attributes(params[:content_page])
|
70
|
+
flash[:notice] = 'ContentPage was successfully updated.'
|
71
|
+
Role.rebuild_cache
|
72
|
+
redirect_to :action => 'show', :id => @content_page
|
73
|
+
else
|
74
|
+
foreign
|
75
|
+
render :action => 'edit'
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def destroy
|
80
|
+
@content_page = ContentPage.find(params[:id])
|
81
|
+
foreign
|
82
|
+
|
83
|
+
if @menu_items.length == 0 and not @system_pages
|
84
|
+
@content_page.destroy
|
85
|
+
Role.rebuild_cache
|
86
|
+
redirect_to :action => 'list'
|
87
|
+
else
|
88
|
+
flash.now[:error] = "Cannot delete this Content Page as it has dependants (see below)"
|
89
|
+
render :action => 'show'
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
# Entry point for any FCKeditor file operations.
|
94
|
+
def fck_filemanager
|
95
|
+
@command = params['Command']
|
96
|
+
@type = (params['Type'] == 'File' ? '' : params['Type'])
|
97
|
+
@subdir = params['CurrentFolder']
|
98
|
+
@path = File.join('/files', @type, @subdir)
|
99
|
+
@dir = File.join(RAILS_ROOT, 'public', @path)
|
100
|
+
|
101
|
+
@incl_files = false
|
102
|
+
|
103
|
+
case @command
|
104
|
+
when 'GetFolders'
|
105
|
+
fck_files
|
106
|
+
when 'GetFoldersAndFiles'
|
107
|
+
@incl_files = true
|
108
|
+
fck_files
|
109
|
+
when 'CreateFolder'
|
110
|
+
fck_create_folder
|
111
|
+
when 'FileUpload'
|
112
|
+
fck_file_upload
|
113
|
+
else # huh?
|
114
|
+
render :nothing => true, :status => 400
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
# Invoked by FCKeditor spell check. Returns a HTML document
|
119
|
+
# containing Javascript with spelling suggestions.
|
120
|
+
def fck_speller_pages
|
121
|
+
@textinputs = params['textinputs'][0]
|
122
|
+
@suggestions = ContentPage.speller_pages( CGI.unescape(@textinputs) )
|
123
|
+
render :action => 'fck_speller_pages', :layout => false
|
124
|
+
end
|
125
|
+
|
126
|
+
protected
|
127
|
+
|
128
|
+
def fck_files
|
129
|
+
@dirs = []
|
130
|
+
@files = {}
|
131
|
+
if File.directory? @dir
|
132
|
+
Dir.glob( File.join(@dir, '*') ) do |file|
|
133
|
+
if File.directory? file
|
134
|
+
@dirs << File.basename(file)
|
135
|
+
else
|
136
|
+
@files[File.basename(file)] = File.stat(file).size / 1024
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
render :partial => 'fck_files'
|
142
|
+
end
|
143
|
+
|
144
|
+
def fck_create_folder
|
145
|
+
@newdir = File.join(@dir, params['NewFolderName'])
|
146
|
+
@error = 0
|
147
|
+
if not ( File.directory?(@dir) and File.writable?(@dir) )
|
148
|
+
@error = 103 # "You have no permissions to create the folder."
|
149
|
+
elsif ( File.exists?(@newdir) )
|
150
|
+
@error = 101 # "Folder already exists."
|
151
|
+
elsif ( params['NewFolderName'].length == 0 or
|
152
|
+
params['NewFolderName'] =~ /[\/\\:\'\"]/ )
|
153
|
+
@error = 102 # "Invalid folder name."
|
154
|
+
else # New directory will *probably* be okay.
|
155
|
+
begin
|
156
|
+
Dir.mkdir @newdir
|
157
|
+
rescue
|
158
|
+
@error = 110 # "Unknown error creating folder."
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
render :partial => 'fck_create_folder'
|
163
|
+
end
|
164
|
+
|
165
|
+
# This method needs better handling: needs to be made more robust,
|
166
|
+
# and compliant with the spec at
|
167
|
+
# http://fckeditor.wikiwikiweb.de/Developer's_Guide/Participating/Server_Side_Integration#Upload
|
168
|
+
def fck_file_upload
|
169
|
+
@mime_file = params['NewFile']
|
170
|
+
@file_name = @mime_file.original_filename
|
171
|
+
@file_url = File.join(@path, @file_name)
|
172
|
+
@new_file = File.join(@dir, @file_name)
|
173
|
+
File.open(@new_file, 'wb') do |file|
|
174
|
+
FileUtils.copy_stream(@mime_file, file)
|
175
|
+
end
|
176
|
+
|
177
|
+
render :text => <<-END
|
178
|
+
<script type="text/javascript">
|
179
|
+
window.parent.frames['frmUpload'].OnUploadCompleted(0, '#{@file_url}', '#{@file_name}', '');
|
180
|
+
</script>
|
181
|
+
END
|
182
|
+
end
|
183
|
+
|
184
|
+
def foreign
|
185
|
+
@markup_styles = ContentPage.markup_styles
|
186
|
+
@permissions = Permission.find(:all, :order => 'name')
|
187
|
+
if @content_page.id
|
188
|
+
@menu_items = MenuItem.find(:all,
|
189
|
+
:order => 'label',
|
190
|
+
:conditions => ['content_page_id=?',
|
191
|
+
@content_page.id])
|
192
|
+
@system_pages = Goldberg.settings.system_pages @content_page.id
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
end
|
197
|
+
end
|
data/templates/vendor/plugins/goldberg/app/controllers/goldberg/controller_actions_controller.rb
ADDED
@@ -0,0 +1,134 @@
|
|
1
|
+
module Goldberg
|
2
|
+
class ControllerActionsController < ApplicationController
|
3
|
+
include Goldberg::Controller
|
4
|
+
|
5
|
+
# GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
|
6
|
+
verify :method => :post, :only => [ :destroy, :create, :update ],
|
7
|
+
:redirect_to => { :action => :list }
|
8
|
+
|
9
|
+
|
10
|
+
def index
|
11
|
+
list
|
12
|
+
render :action => 'list'
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
def list
|
17
|
+
@controller_actions = ControllerAction.find(:all, :order => 'name')
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
def show
|
22
|
+
@controller_action = ControllerAction.find(params[:id])
|
23
|
+
if @controller_action.permission_id
|
24
|
+
@permission = Permission.find(@controller_action.permission_id)
|
25
|
+
else
|
26
|
+
@permission = Permission.new(:id => nil, :name => '(default)')
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
def new
|
32
|
+
@controller_action = ControllerAction.new
|
33
|
+
foreign
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
def new_for
|
38
|
+
@controller_action = ControllerAction.new
|
39
|
+
@controller_action.site_controller_id = params[:id]
|
40
|
+
@site_controller = SiteController.find(params[:id])
|
41
|
+
if @site_controller
|
42
|
+
@actions = class_actions(@site_controller.name)
|
43
|
+
end
|
44
|
+
foreign
|
45
|
+
render :action => 'new'
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
def create
|
50
|
+
if params[:controller_action][:specific_name] and
|
51
|
+
params[:controller_action][:specific_name].length > 0
|
52
|
+
params[:controller_action][:name] =
|
53
|
+
params[:controller_action][:specific_name]
|
54
|
+
end
|
55
|
+
@controller_action = ControllerAction.new(params[:controller_action])
|
56
|
+
if @controller_action.save
|
57
|
+
flash[:notice] = 'ControllerAction was successfully created.'
|
58
|
+
Role.rebuild_cache
|
59
|
+
redirect_to :controller => 'site_controllers', :action => 'show',
|
60
|
+
:id => @controller_action.site_controller_id
|
61
|
+
else
|
62
|
+
foreign
|
63
|
+
render :action => 'new'
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
|
68
|
+
def edit
|
69
|
+
@controller_action = ControllerAction.find(params[:id])
|
70
|
+
foreign
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
def update
|
75
|
+
@controller_action = ControllerAction.find(params[:id])
|
76
|
+
if @controller_action.update_attributes(params[:controller_action])
|
77
|
+
flash[:notice] = 'ControllerAction was successfully updated.'
|
78
|
+
Role.rebuild_cache
|
79
|
+
redirect_to :controller => 'site_controllers', :action => 'show',
|
80
|
+
:id => @controller_action.site_controller_id
|
81
|
+
else
|
82
|
+
foreign
|
83
|
+
render :action => 'edit'
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
def destroy
|
89
|
+
@controller_action = ControllerAction.find(params[:id])
|
90
|
+
site_controller_id = @controller_action.site_controller_id
|
91
|
+
@controller_action.destroy
|
92
|
+
Role.rebuild_cache
|
93
|
+
redirect_to :controller => 'site_controllers', :action => 'show',
|
94
|
+
:id => @controller_action.site_controller_id
|
95
|
+
end
|
96
|
+
|
97
|
+
|
98
|
+
protected
|
99
|
+
|
100
|
+
|
101
|
+
def foreign
|
102
|
+
@controllers = SiteController.find(:all, :order => 'name')
|
103
|
+
|
104
|
+
@permissions = Permission.find(:all, :order => 'name')
|
105
|
+
@permissions.unshift Permission.new(:id => nil, :name => '(default)')
|
106
|
+
end
|
107
|
+
|
108
|
+
|
109
|
+
def class_actions(classname)
|
110
|
+
classes = SiteController.classes
|
111
|
+
actions = Hash.new()
|
112
|
+
|
113
|
+
if classes.has_key? classname
|
114
|
+
controller = classes[classname]
|
115
|
+
|
116
|
+
for method in controller.public_instance_methods do
|
117
|
+
actions[method] = true
|
118
|
+
end
|
119
|
+
|
120
|
+
for hidden in controller.hidden_actions do
|
121
|
+
actions.delete hidden
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
action_collection = Array.new
|
126
|
+
for action in actions.keys.sort do
|
127
|
+
action_collection << ControllerAction.new(:name => action)
|
128
|
+
end
|
129
|
+
|
130
|
+
return action_collection
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
134
|
+
end
|
@@ -0,0 +1,184 @@
|
|
1
|
+
module Goldberg
|
2
|
+
class MenuItemsController < ApplicationController
|
3
|
+
include Goldberg::Controller
|
4
|
+
|
5
|
+
# GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
|
6
|
+
verify :method => :post, :only => [ :destroy, :create, :update,
|
7
|
+
:move_up, :move_down ],
|
8
|
+
:redirect_to => { :action => :list }
|
9
|
+
|
10
|
+
def index
|
11
|
+
list
|
12
|
+
render :action => 'list'
|
13
|
+
end
|
14
|
+
|
15
|
+
def list
|
16
|
+
@menu = Menu.new
|
17
|
+
@items = @menu.get_menu(0)
|
18
|
+
end
|
19
|
+
|
20
|
+
def show
|
21
|
+
@menu_item = MenuItem.find(params[:id])
|
22
|
+
end
|
23
|
+
|
24
|
+
def new
|
25
|
+
@menu_item = MenuItem.new
|
26
|
+
@menu = Menu.new
|
27
|
+
@items = @menu.get_menu(0)
|
28
|
+
foreign
|
29
|
+
@can_change_parent = false
|
30
|
+
end
|
31
|
+
|
32
|
+
def new_for
|
33
|
+
@parent_item = MenuItem.find(params[:id])
|
34
|
+
@menu_item = MenuItem.new
|
35
|
+
@menu_item.parent_id = @parent_item.id
|
36
|
+
foreign
|
37
|
+
@can_change_parent = false
|
38
|
+
render :action => 'new'
|
39
|
+
end
|
40
|
+
|
41
|
+
def create
|
42
|
+
# Flash an error if neither an action nor a page has been selected
|
43
|
+
if (params[:menu_item][:controller_action_id] == nil or
|
44
|
+
params[:menu_item][:controller_action_id].length == 0 ) and
|
45
|
+
(params[:menu_item][:content_page_id] == nil or
|
46
|
+
params[:menu_item][:content_page_id].length == 0 )
|
47
|
+
flash[:error] = "You must specify either an Action or a Page!"
|
48
|
+
@menu_item = MenuItem.new(params[:menu_item])
|
49
|
+
@parent_item = MenuItem.find(params[:menu_item][:parent_id])
|
50
|
+
foreign
|
51
|
+
@can_change_parent = false
|
52
|
+
render :action => 'new', :id => params[:id]
|
53
|
+
return
|
54
|
+
end
|
55
|
+
|
56
|
+
@menu_item = MenuItem.new(params[:menu_item])
|
57
|
+
@menu_item.seq = MenuItem.next_seq(@menu_item.parent_id)
|
58
|
+
|
59
|
+
if @menu_item.save
|
60
|
+
flash[:notice] = 'MenuItem was successfully created.'
|
61
|
+
Role.rebuild_cache
|
62
|
+
redirect_to :action => 'list'
|
63
|
+
else
|
64
|
+
foreign
|
65
|
+
render :action => 'new'
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def edit
|
70
|
+
@menu_item = MenuItem.find(params[:id])
|
71
|
+
foreign
|
72
|
+
@menu = Menu.new
|
73
|
+
@items = @menu.get_menu(0)
|
74
|
+
@can_change_parent = true
|
75
|
+
end
|
76
|
+
|
77
|
+
def update
|
78
|
+
# Flash an error if neither an action nor a page has been selected
|
79
|
+
if (params[:menu_item][:controller_action_id] == nil or
|
80
|
+
params[:menu_item][:controller_action_id].length == 0 ) and
|
81
|
+
(params[:menu_item][:content_page_id] == nil or
|
82
|
+
params[:menu_item][:content_page_id].length == 0 )
|
83
|
+
flash[:error] = "You must specify either an Action or a Page!"
|
84
|
+
edit
|
85
|
+
render :action => 'edit'
|
86
|
+
return
|
87
|
+
end
|
88
|
+
|
89
|
+
@menu_item = MenuItem.find(params[:id])
|
90
|
+
# If this has been moved from another parent, need to repack
|
91
|
+
# that parent
|
92
|
+
if params[:parent_id] != @menu_item.parent_id
|
93
|
+
do_repack = true
|
94
|
+
repack_for = @menu_item.parent_id
|
95
|
+
# Put at the end of new parent's list
|
96
|
+
params[:menu_item][:seq] = MenuItem.next_seq(params[:menu_item][:parent_id])
|
97
|
+
else
|
98
|
+
do_repack = false
|
99
|
+
end
|
100
|
+
|
101
|
+
if @menu_item.update_attributes(params[:menu_item])
|
102
|
+
flash[:notice] = 'MenuItem was successfully updated.'
|
103
|
+
if do_repack
|
104
|
+
MenuItem.repack(repack_for)
|
105
|
+
end
|
106
|
+
Role.rebuild_cache
|
107
|
+
# redirect_to :action => 'show', :id => @menu_item
|
108
|
+
redirect_to :action => 'list'
|
109
|
+
else
|
110
|
+
foreign
|
111
|
+
render :action => 'edit'
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
def move_up
|
116
|
+
@menu_item = MenuItem.find(params[:id])
|
117
|
+
@above = @menu_item.above
|
118
|
+
|
119
|
+
if @above
|
120
|
+
@menu_item.update_attribute :seq, (@menu_item.seq - 1)
|
121
|
+
@above.update_attribute :seq, (@above.seq + 1)
|
122
|
+
Role.rebuild_cache
|
123
|
+
end
|
124
|
+
redirect_to :action => 'list'
|
125
|
+
end
|
126
|
+
|
127
|
+
def move_down
|
128
|
+
@menu_item = MenuItem.find(params[:id])
|
129
|
+
@below = @menu_item.below
|
130
|
+
|
131
|
+
if @below
|
132
|
+
@menu_item.update_attribute :seq, (@menu_item.seq + 1)
|
133
|
+
@below.update_attribute :seq, (@below.seq - 1)
|
134
|
+
Role.rebuild_cache
|
135
|
+
end
|
136
|
+
redirect_to :action => 'list'
|
137
|
+
end
|
138
|
+
|
139
|
+
def destroy
|
140
|
+
@menu_item = MenuItem.find(params[:id])
|
141
|
+
repack_for = @menu_item.parent_id
|
142
|
+
@menu_item.destroy
|
143
|
+
MenuItem.repack(repack_for)
|
144
|
+
Role.rebuild_cache
|
145
|
+
redirect_to :action => 'list'
|
146
|
+
end
|
147
|
+
|
148
|
+
def link
|
149
|
+
item_name = params[:name].join('/')
|
150
|
+
node = Goldberg.menu.select(item_name)
|
151
|
+
if node
|
152
|
+
session[:goldberg][:menu_item] = item_name
|
153
|
+
session[:goldberg][:menu_history] ||= Hash.new
|
154
|
+
session[:goldberg][:menu_history][node.url] = item_name
|
155
|
+
redirect_to node.url
|
156
|
+
else
|
157
|
+
logger.error "(error in menu)"
|
158
|
+
redirect_to "/"
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
|
163
|
+
protected
|
164
|
+
|
165
|
+
def foreign
|
166
|
+
if self.id
|
167
|
+
@parents = MenuItem.find(:all,
|
168
|
+
:conditions => ['id not in (?)', self.id],
|
169
|
+
:order => 'name')
|
170
|
+
else
|
171
|
+
@parents = MenuItem.find(:all,
|
172
|
+
:order => 'name')
|
173
|
+
end
|
174
|
+
@parents.unshift MenuItem.new(:id => nil, :name => '(root)')
|
175
|
+
@actions = ControllerAction.find(:all, :order => 'site_controller_id, name')
|
176
|
+
@actions.unshift ControllerAction.new(:id => nil,
|
177
|
+
:name => '(none)')
|
178
|
+
|
179
|
+
@pages = ContentPage.find(:all, :order => 'name')
|
180
|
+
@pages.unshift ContentPage.new(:id => nil, :name => '(none)')
|
181
|
+
end
|
182
|
+
|
183
|
+
end
|
184
|
+
end
|