spud_core 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. data/README.markdown +41 -0
  2. data/app/assets/images/back_disabled.jpg +0 -0
  3. data/app/assets/images/back_enabled.jpg +0 -0
  4. data/app/assets/images/favicon.ico +0 -0
  5. data/app/assets/images/forward_disabled.jpg +0 -0
  6. data/app/assets/images/forward_enabled.jpg +0 -0
  7. data/app/assets/images/sort_asc.png +0 -0
  8. data/app/assets/images/sort_asc_disabled.png +0 -0
  9. data/app/assets/images/sort_both.png +0 -0
  10. data/app/assets/images/sort_desc.png +0 -0
  11. data/app/assets/images/sort_desc_disabled.png +0 -0
  12. data/app/assets/images/spud/admin/flick/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  13. data/app/assets/images/spud/admin/flick/ui-bg_flat_0_eeeeee_40x100.png +0 -0
  14. data/app/assets/images/spud/admin/flick/ui-bg_flat_55_ffffff_40x100.png +0 -0
  15. data/app/assets/images/spud/admin/flick/ui-bg_flat_75_ffffff_40x100.png +0 -0
  16. data/app/assets/images/spud/admin/flick/ui-bg_glass_65_ffffff_1x400.png +0 -0
  17. data/app/assets/images/spud/admin/flick/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
  18. data/app/assets/images/spud/admin/flick/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
  19. data/app/assets/images/spud/admin/flick/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
  20. data/app/assets/images/spud/admin/flick/ui-icons_0073ea_256x240.png +0 -0
  21. data/app/assets/images/spud/admin/flick/ui-icons_454545_256x240.png +0 -0
  22. data/app/assets/images/spud/admin/flick/ui-icons_666666_256x240.png +0 -0
  23. data/app/assets/images/spud/admin/flick/ui-icons_ff0084_256x240.png +0 -0
  24. data/app/assets/images/spud/admin/flick/ui-icons_ffffff_256x240.png +0 -0
  25. data/app/assets/images/spud/admin/users_thumb.png +0 -0
  26. data/app/assets/javascripts/spud/admin/application.js +90 -0
  27. data/app/assets/javascripts/spud/admin/jquery.dataTables.min.js +151 -0
  28. data/app/assets/javascripts/spud/admin/settings.js +2 -0
  29. data/app/assets/javascripts/spud/admin/users.js +2 -0
  30. data/app/assets/javascripts/spud/setup.js +2 -0
  31. data/app/assets/javascripts/spud/sitemaps.js +2 -0
  32. data/app/assets/javascripts/spud/user_sessions.js +2 -0
  33. data/app/assets/javascripts/spud/users.js +2 -0
  34. data/app/assets/javascripts/wymeditor/iframe/default/lbl-article.png +0 -0
  35. data/app/assets/javascripts/wymeditor/iframe/default/lbl-aside.png +0 -0
  36. data/app/assets/javascripts/wymeditor/iframe/default/lbl-blockquote.png +0 -0
  37. data/app/assets/javascripts/wymeditor/iframe/default/lbl-command.png +0 -0
  38. data/app/assets/javascripts/wymeditor/iframe/default/lbl-details.png +0 -0
  39. data/app/assets/javascripts/wymeditor/iframe/default/lbl-figcaption.png +0 -0
  40. data/app/assets/javascripts/wymeditor/iframe/default/lbl-figure.png +0 -0
  41. data/app/assets/javascripts/wymeditor/iframe/default/lbl-footer.png +0 -0
  42. data/app/assets/javascripts/wymeditor/iframe/default/lbl-h1.png +0 -0
  43. data/app/assets/javascripts/wymeditor/iframe/default/lbl-h2.png +0 -0
  44. data/app/assets/javascripts/wymeditor/iframe/default/lbl-h3.png +0 -0
  45. data/app/assets/javascripts/wymeditor/iframe/default/lbl-h4.png +0 -0
  46. data/app/assets/javascripts/wymeditor/iframe/default/lbl-h5.png +0 -0
  47. data/app/assets/javascripts/wymeditor/iframe/default/lbl-h6.png +0 -0
  48. data/app/assets/javascripts/wymeditor/iframe/default/lbl-header.png +0 -0
  49. data/app/assets/javascripts/wymeditor/iframe/default/lbl-hgroup.png +0 -0
  50. data/app/assets/javascripts/wymeditor/iframe/default/lbl-mark.png +0 -0
  51. data/app/assets/javascripts/wymeditor/iframe/default/lbl-meter.png +0 -0
  52. data/app/assets/javascripts/wymeditor/iframe/default/lbl-nav.png +0 -0
  53. data/app/assets/javascripts/wymeditor/iframe/default/lbl-p.png +0 -0
  54. data/app/assets/javascripts/wymeditor/iframe/default/lbl-pre.png +0 -0
  55. data/app/assets/javascripts/wymeditor/iframe/default/lbl-progress.png +0 -0
  56. data/app/assets/javascripts/wymeditor/iframe/default/lbl-rp.png +0 -0
  57. data/app/assets/javascripts/wymeditor/iframe/default/lbl-rt.png +0 -0
  58. data/app/assets/javascripts/wymeditor/iframe/default/lbl-ruby.png +0 -0
  59. data/app/assets/javascripts/wymeditor/iframe/default/lbl-section.png +0 -0
  60. data/app/assets/javascripts/wymeditor/iframe/default/lbl-summary.png +0 -0
  61. data/app/assets/javascripts/wymeditor/iframe/default/lbl-time.png +0 -0
  62. data/app/assets/javascripts/wymeditor/iframe/default/readme.md +1 -0
  63. data/app/assets/javascripts/wymeditor/iframe/default/wymiframe.css +91 -0
  64. data/app/assets/javascripts/wymeditor/iframe/default/wymiframe.html +26 -0
  65. data/app/assets/javascripts/wymeditor/jquery.wymeditor.js +9983 -0
  66. data/app/assets/javascripts/wymeditor/jquery.wymeditor.min.js +34 -0
  67. data/app/assets/javascripts/wymeditor/lang/bg.js +45 -0
  68. data/app/assets/javascripts/wymeditor/lang/ca.js +45 -0
  69. data/app/assets/javascripts/wymeditor/lang/cs.js +45 -0
  70. data/app/assets/javascripts/wymeditor/lang/cy.js +45 -0
  71. data/app/assets/javascripts/wymeditor/lang/de.js +45 -0
  72. data/app/assets/javascripts/wymeditor/lang/en.js +45 -0
  73. data/app/assets/javascripts/wymeditor/lang/es.js +45 -0
  74. data/app/assets/javascripts/wymeditor/lang/fa.js +46 -0
  75. data/app/assets/javascripts/wymeditor/lang/fi.js +44 -0
  76. data/app/assets/javascripts/wymeditor/lang/fr.js +45 -0
  77. data/app/assets/javascripts/wymeditor/lang/gl.js +45 -0
  78. data/app/assets/javascripts/wymeditor/lang/he.js +45 -0
  79. data/app/assets/javascripts/wymeditor/lang/hr.js +45 -0
  80. data/app/assets/javascripts/wymeditor/lang/hu.js +45 -0
  81. data/app/assets/javascripts/wymeditor/lang/it.js +45 -0
  82. data/app/assets/javascripts/wymeditor/lang/ja.js +44 -0
  83. data/app/assets/javascripts/wymeditor/lang/lt.js +45 -0
  84. data/app/assets/javascripts/wymeditor/lang/nb.js +45 -0
  85. data/app/assets/javascripts/wymeditor/lang/nl.js +45 -0
  86. data/app/assets/javascripts/wymeditor/lang/nn.js +45 -0
  87. data/app/assets/javascripts/wymeditor/lang/pl.js +45 -0
  88. data/app/assets/javascripts/wymeditor/lang/pt-br.js +45 -0
  89. data/app/assets/javascripts/wymeditor/lang/pt.js +45 -0
  90. data/app/assets/javascripts/wymeditor/lang/ru.js +45 -0
  91. data/app/assets/javascripts/wymeditor/lang/sv.js +46 -0
  92. data/app/assets/javascripts/wymeditor/lang/tr.js +45 -0
  93. data/app/assets/javascripts/wymeditor/lang/zh_cn.js +47 -0
  94. data/app/assets/javascripts/wymeditor/plugins/embed/jquery.wymeditor.embed.js +82 -0
  95. data/app/assets/javascripts/wymeditor/plugins/fullscreen/icon_fullscreen.gif +0 -0
  96. data/app/assets/javascripts/wymeditor/plugins/fullscreen/jquery.wymeditor.fullscreen.js +124 -0
  97. data/app/assets/javascripts/wymeditor/plugins/hovertools/jquery.wymeditor.hovertools.js +49 -0
  98. data/app/assets/javascripts/wymeditor/plugins/list/jquery.wymeditor.list.js +60 -0
  99. data/app/assets/javascripts/wymeditor/plugins/rdfa/jquery.wymeditor.rdfa.js +186 -0
  100. data/app/assets/javascripts/wymeditor/plugins/resizable/jquery.wymeditor.resizable.js +77 -0
  101. data/app/assets/javascripts/wymeditor/plugins/resizable/readme.txt +124 -0
  102. data/app/assets/javascripts/wymeditor/plugins/table/jquery.wymeditor.table.js +721 -0
  103. data/app/assets/javascripts/wymeditor/plugins/table/table_delete_column.png +0 -0
  104. data/app/assets/javascripts/wymeditor/plugins/table/table_delete_row.png +0 -0
  105. data/app/assets/javascripts/wymeditor/plugins/table/table_insert_column.png +0 -0
  106. data/app/assets/javascripts/wymeditor/plugins/table/table_insert_row.png +0 -0
  107. data/app/assets/javascripts/wymeditor/plugins/table/table_join_row.png +0 -0
  108. data/app/assets/javascripts/wymeditor/plugins/tidy/README +19 -0
  109. data/app/assets/javascripts/wymeditor/plugins/tidy/jquery.wymeditor.tidy.js +78 -0
  110. data/app/assets/javascripts/wymeditor/plugins/tidy/tidy.php +58 -0
  111. data/app/assets/javascripts/wymeditor/plugins/tidy/wand.png +0 -0
  112. data/app/assets/javascripts/wymeditor/skins/compact/icons.png +0 -0
  113. data/app/assets/javascripts/wymeditor/skins/compact/skin.css +134 -0
  114. data/app/assets/javascripts/wymeditor/skins/compact/skin.js +37 -0
  115. data/app/assets/javascripts/wymeditor/skins/default/icons.png +0 -0
  116. data/app/assets/javascripts/wymeditor/skins/default/skin.css +133 -0
  117. data/app/assets/javascripts/wymeditor/skins/default/skin.js +40 -0
  118. data/app/assets/javascripts/wymeditor/skins/minimal/images/bg.header.gif +0 -0
  119. data/app/assets/javascripts/wymeditor/skins/minimal/images/bg.selector.silver.gif +0 -0
  120. data/app/assets/javascripts/wymeditor/skins/minimal/images/bg.wymeditor.png +0 -0
  121. data/app/assets/javascripts/wymeditor/skins/minimal/images/icons.silver.gif +0 -0
  122. data/app/assets/javascripts/wymeditor/skins/minimal/skin.css +131 -0
  123. data/app/assets/javascripts/wymeditor/skins/minimal/skin.js +30 -0
  124. data/app/assets/javascripts/wymeditor/skins/silver/COPYING +674 -0
  125. data/app/assets/javascripts/wymeditor/skins/silver/README +27 -0
  126. data/app/assets/javascripts/wymeditor/skins/silver/images/bg.header.gif +0 -0
  127. data/app/assets/javascripts/wymeditor/skins/silver/images/bg.selector.silver.gif +0 -0
  128. data/app/assets/javascripts/wymeditor/skins/silver/images/bg.wymeditor.png +0 -0
  129. data/app/assets/javascripts/wymeditor/skins/silver/images/icons.silver.gif +0 -0
  130. data/app/assets/javascripts/wymeditor/skins/silver/skin.css +297 -0
  131. data/app/assets/javascripts/wymeditor/skins/silver/skin.js +61 -0
  132. data/app/assets/javascripts/wymeditor/skins/twopanels/icons.png +0 -0
  133. data/app/assets/javascripts/wymeditor/skins/twopanels/skin.css +134 -0
  134. data/app/assets/javascripts/wymeditor/skins/twopanels/skin.js +39 -0
  135. data/app/assets/javascripts/wymeditor/skins/wymeditor_icon.png +0 -0
  136. data/app/assets/stylesheets/spud/admin/application.css +464 -0
  137. data/app/assets/stylesheets/spud/admin/jquery-ui.css +568 -0
  138. data/app/assets/stylesheets/spud/admin/settings.css +4 -0
  139. data/app/assets/stylesheets/spud/admin/users.css +4 -0
  140. data/app/assets/stylesheets/spud/forms.css +108 -0
  141. data/app/assets/stylesheets/spud/login/application.css +302 -0
  142. data/app/assets/stylesheets/spud/login.css +58 -0
  143. data/app/assets/stylesheets/spud/setup.css +4 -0
  144. data/app/assets/stylesheets/spud/sitemaps.css +4 -0
  145. data/app/assets/stylesheets/spud/user_sessions.css +4 -0
  146. data/app/assets/stylesheets/spud/users.css +4 -0
  147. data/app/controllers/spud/admin/application_controller.rb +19 -0
  148. data/app/controllers/spud/admin/dashboard_controller.rb +7 -0
  149. data/app/controllers/spud/admin/settings_controller.rb +15 -0
  150. data/app/controllers/spud/admin/users_controller.rb +111 -0
  151. data/app/controllers/spud/application_controller.rb +48 -0
  152. data/app/controllers/spud/setup_controller.rb +22 -0
  153. data/app/controllers/spud/sitemaps_controller.rb +6 -0
  154. data/app/controllers/spud/user_sessions_controller.rb +28 -0
  155. data/app/controllers/spud/users_controller.rb +21 -0
  156. data/app/helpers/spud/admin/application_helper.rb +17 -0
  157. data/app/helpers/spud/admin/settings_helper.rb +2 -0
  158. data/app/helpers/spud/admin/users_helper.rb +2 -0
  159. data/app/helpers/spud/setup_helper.rb +2 -0
  160. data/app/helpers/spud/sitemaps_helper.rb +2 -0
  161. data/app/helpers/spud/user_sessions_helper.rb +2 -0
  162. data/app/helpers/spud/users_helper.rb +2 -0
  163. data/app/models/spud_admin_permission.rb +2 -0
  164. data/app/models/spud_setting.rb +2 -0
  165. data/app/models/spud_user.rb +16 -0
  166. data/app/models/spud_user_session.rb +3 -0
  167. data/app/views/layouts/spud/admin/application.html.erb +44 -0
  168. data/app/views/layouts/spud/admin/detail.html.erb +31 -0
  169. data/app/views/layouts/spud/login/application.html.erb +17 -0
  170. data/app/views/layouts/spud/setup.html.erb +47 -0
  171. data/app/views/spud/admin/dashboard/index.html.erb +11 -0
  172. data/app/views/spud/admin/users/_edit.html.erb +14 -0
  173. data/app/views/spud/admin/users/_form.html.erb +51 -0
  174. data/app/views/spud/admin/users/_new.html.erb +14 -0
  175. data/app/views/spud/admin/users/index.html.erb +41 -0
  176. data/app/views/spud/admin/users/show.html.erb +17 -0
  177. data/app/views/spud/setup/index.html.erb +25 -0
  178. data/app/views/spud/sitemaps/show.xml.builder +12 -0
  179. data/app/views/spud/user_sessions/new.html.erb +22 -0
  180. data/app/views/spud/users/_form.html.erb +35 -0
  181. data/app/views/spud/users/settings.html.erb +14 -0
  182. data/config/application.rb +48 -0
  183. data/config/boot.rb +6 -0
  184. data/config/routes.rb +15 -0
  185. data/lib/spud_core/belongs_to_app.rb +54 -0
  186. data/lib/spud_core/configuration.rb +9 -0
  187. data/lib/spud_core/engine.rb +34 -0
  188. data/lib/spud_core/test_files.rb +25 -0
  189. data/lib/spud_core.rb +8 -0
  190. metadata +311 -0
@@ -0,0 +1,6 @@
1
+ class Spud::SitemapsController < Spud::ApplicationController
2
+ caches_page :show,:expires_in => 1.day
3
+ def show
4
+ @sitemap_urls = Spud::Core.sitemap_urls
5
+ end
6
+ end
@@ -0,0 +1,28 @@
1
+ class Spud::UserSessionsController < Spud::ApplicationController
2
+ before_filter :require_no_user, :only => [:new, :create]
3
+ before_filter :require_user, :only => :destroy
4
+ layout 'spud/login/application'
5
+ def new
6
+ if SpudUser.count == 0
7
+ redirect_to spud_setup_url() and return
8
+ end
9
+
10
+ @user_session = SpudUserSession.new
11
+ end
12
+
13
+ def create
14
+ @user_session = SpudUserSession.new(params[:spud_user_session])
15
+ if @user_session.save
16
+ flash[:notice] = "Login successful!"
17
+ redirect_back_or_default root_url
18
+ else
19
+ render :action => :new
20
+ end
21
+ end
22
+
23
+ def destroy
24
+ current_user_session.destroy
25
+ flash[:notice] = "Logout successful!"
26
+ redirect_back_or_default new_spud_user_session_url
27
+ end
28
+ end
@@ -0,0 +1,21 @@
1
+ class Spud::UsersController < Spud::ApplicationController
2
+ before_filter :require_user
3
+ layout 'spud/admin/detail'
4
+ add_breadcrumb "Settings", :spud_settings_path
5
+ def settings
6
+ @page_thumbnail = "spud/admin/users_thumb.png"
7
+ @page_name = "Settings"
8
+ end
9
+
10
+ def update
11
+ @page_thumbnail = "spud/admin/users_thumb.png"
12
+ @page_name = "Settings"
13
+ if @current_user.update_attributes(params[:spud_user])
14
+ flash[:notice] = "User settings saved successfully."
15
+ redirect_to spud_admin_root_url()
16
+ else
17
+ flash[:error] = "There was an error while saving the user."
18
+ render :action => "settings"
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,17 @@
1
+ module Spud::Admin::ApplicationHelper
2
+ def timestamp(timedate)
3
+ return "Never" if timedate.blank?
4
+ return Time.now() - timedate > 604800 ? timedate.strftime("%B %d") + ' at ' + timedate.strftime("%I:%M %p") : time_ago_in_words(timedate) + ' ago'
5
+ end
6
+ def link_to_remove_fields(name, f)
7
+ f.hidden_field(:_destroy) + link_to_function(name, "remove_fields(this)")
8
+ end
9
+
10
+ def link_to_add_fields(name, f, association)
11
+ new_object = f.object.class.reflect_on_association(association).klass.new
12
+ fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
13
+ render(association.to_s.singularize + "_fields", :f => builder)
14
+ end
15
+ link_to_function(name, "add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")")
16
+ end
17
+ end
@@ -0,0 +1,2 @@
1
+ module Spud::Admin::SettingsHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module Spud::Admin::UsersHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module Spud::SetupHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module Spud::SitemapsHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module Spud::UserSessionsHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module Spud::UsersHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ class SpudAdminPermission < ActiveRecord::Base
2
+ end
@@ -0,0 +1,2 @@
1
+ class SpudSetting < ActiveRecord::Base
2
+ end
@@ -0,0 +1,16 @@
1
+ class SpudUser < ActiveRecord::Base
2
+ has_many :spud_admin_permissions,:foreign_key => :user_id
3
+ accepts_nested_attributes_for :spud_admin_permissions, :allow_destroy => true
4
+ attr_protected :super_admin
5
+
6
+ acts_as_authentic do |c|
7
+ # c.my_config_option = my_value # for available options see documentation in: Authlogic::ActsAsAuthentic
8
+ end # block optional
9
+
10
+ def full_name
11
+ if first_name.blank? && last_name.blank?
12
+ return self.login
13
+ end
14
+ return "#{self.first_name} #{self.last_name}"
15
+ end
16
+ end
@@ -0,0 +1,3 @@
1
+ class SpudUserSession < Authlogic::Session::Base
2
+ # configuration here, see documentation for sub modules of Authlogic::Session
3
+ end
@@ -0,0 +1,44 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Spud Admin</title>
5
+ <%= stylesheet_link_tag "spud/admin/application" %>
6
+ <%= javascript_include_tag "spud/admin/application" %>
7
+ <%= csrf_meta_tags %>
8
+ <%=yield :head%>
9
+ </head>
10
+ <body>
11
+ <div id="header">
12
+ <h1>Spud Admin</h1>
13
+ <div id="user_meta">
14
+ <span class="greeting">Hello <%=@current_user.login%></span>&nbsp;|&nbsp;<%=link_to "Settings", spud_settings_path%>&nbsp;|&nbsp;<%=link_to "Logout",spud_user_session_url,:method => :delete%></a>
15
+ </div>
16
+ </div>
17
+ <div id="breadcrumbs">
18
+ <%= render_breadcrumbs :separator => ' / ' %>
19
+ </div>
20
+ <div id="content">
21
+ <% if flash[:notice] %>
22
+ <div class="flash notice"><%= flash[:notice] %></div>
23
+ <% end %>
24
+ <% if flash[:warning] %>
25
+ <div class="flash warning"><%= flash[:warning] %></div>
26
+ <% end %>
27
+ <% if flash[:error] || @error_object_name.nil? == false %>
28
+ <div class="flash error">
29
+ <%= flash[:error] %>
30
+ <%-unless @error_object_name.nil?%>
31
+ <%-if @error_object_name.is_a?(Array)%>
32
+ <%=error_messages_for @error_object_name[0], :header_message => @error_object_name[1], :message => @error_object_name[2]%>
33
+ <%-else%>
34
+ <%=error_messages_for @error_object_name%>
35
+ <%-end%>
36
+
37
+ <%-end%>
38
+ </div>
39
+ <%-end%>
40
+ <%= content_for?(:content) ? yield(:content) : yield %>
41
+ </div>
42
+
43
+ </body>
44
+ </html>
@@ -0,0 +1,31 @@
1
+ <%=content_for :content do %>
2
+ <div id="detail_wrapper">
3
+ <span class="data_controls">
4
+ <%=yield :data_controls%>
5
+ </span>
6
+ <h2>
7
+ <%if @page_thumbnail%>
8
+ <span class="thumb_wrapper"><%=image_tag(@page_thumbnail)%></span>
9
+ <%end%>
10
+ <%=@page_name%>
11
+ </h2>
12
+
13
+ <div id="details">
14
+ <%if content_for?(:detail_nav)%>
15
+ <div id="detail_nav_wrapper">
16
+ <div id="detail_nav">
17
+ <%= yield(:detail_nav)%>
18
+ </div>
19
+ </div>
20
+ <div id="detail_main_wrapper">
21
+ <div id="detail_main">
22
+ <%= content_for?(:detail) ? yield(:detail) : yield %></div>
23
+ </div>
24
+ <br style="clear:both;"/>
25
+ <%else%>
26
+ <%= content_for?(:detail) ? yield(:detail) : yield %>
27
+ <%end%>
28
+ </div>
29
+ </div>
30
+ <%end%>
31
+ <%= render :template => 'layouts/spud/admin/application' %>
@@ -0,0 +1,17 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Spud Admin</title>
5
+ <%= stylesheet_link_tag("spud/login/application") %>
6
+
7
+ <%= csrf_meta_tags %>
8
+ <%=content_for :head%>
9
+ </head>
10
+ <body>
11
+
12
+ <div id="content_wrapper">
13
+ <div id="content"><%=yield%></div>
14
+ </div>
15
+
16
+ </body>
17
+ </html>
@@ -0,0 +1,47 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Spud Admin</title>
5
+ <%= stylesheet_link_tag "spud/admin/application" %>
6
+ <%= javascript_include_tag "spud/admin/application" %>
7
+ <%= csrf_meta_tags %>
8
+ <%=content_for :head%>
9
+ </head>
10
+ <body>
11
+ <div id="header">
12
+ <h1>Spud First Time Setup</h1>
13
+
14
+ </div>
15
+ <div id="breadcrumbs">
16
+ <%= render_breadcrumbs :separator => ' / ' %>
17
+ </div>
18
+ <div id="content">
19
+ <div id="detail_wrapper">
20
+ <h2>
21
+ <%if @page_thumbnail%>
22
+ <span class="thumb_wrapper"><%=image_tag(@page_thumbnail)%></span>
23
+ <%end%>
24
+ <%=@page_name%>
25
+ </h2>
26
+
27
+ <div id="details">
28
+ <%if content_for?(:detail_nav)%>
29
+ <div id="detail_nav_wrapper">
30
+ <div id="detail_nav">
31
+ <%= yield(:detail_nav)%></div>
32
+
33
+ </div>
34
+ <div id="detail_main_wrapper">
35
+ <div id="detail_main">
36
+ <%= content_for?(:detail) ? yield(:detail) : yield %></div>
37
+ </div>
38
+ <br style="clear:both;"/>
39
+ <%else%>
40
+ <%= content_for?(:detail) ? yield(:detail) : yield %>
41
+ <%end%>
42
+ </div>
43
+ </div>
44
+ </div>
45
+
46
+ </body>
47
+ </html>
@@ -0,0 +1,11 @@
1
+
2
+
3
+ <%@admin_applications.sort_by{|obj| obj[:order]}.each do |admin_application|%>
4
+
5
+ <div class="admin_application"><a href="<%=admin_application[:url]%>">
6
+ <div class="image_wrapper"><%=image_tag(admin_application[:thumbnail])%></div>
7
+ <span class="application_name"><%=admin_application[:name]%></span>
8
+ </a>
9
+ </div>
10
+
11
+ <%end%>
@@ -0,0 +1,14 @@
1
+
2
+
3
+ <p> Fill in all information pertaining to the current user you wish to modify. Fields marked with * are required and must be filled out.</p>
4
+
5
+ <%=form_for @user,:url => spud_admin_user_path(:id => @user.id),:html=>{:class=>"right_aligned_form"} do |f|%>
6
+ <%=render :partial => "form",:locals => {:f => f}%>
7
+ <fieldset class="submit"><%=f.submit%> or <%=link_to "cancel","#",:class => "close_dialog"%></fieldset>
8
+ <%end%>
9
+
10
+ <script type="text/javascript">
11
+ $('input[type=submit],.close_dialog').button();
12
+
13
+ </script>
14
+
@@ -0,0 +1,51 @@
1
+ <fieldset>
2
+ <legend>User Details</legend>
3
+ <ol>
4
+ <li><%=f.label :login, :required=>true%>
5
+ <%=f.text_field :login,:title => "",:size=>25%>
6
+ <%=error_message_on "user","login"%>
7
+ </li>
8
+ <li><%=f.label :email%>
9
+ <%=f.text_field :email, :title => "",:size => 25%>
10
+ <%=error_message_on "user","email"%>
11
+ </li>
12
+ <li><%=f.label :first_name%>
13
+ <%=f.text_field :first_name, :title => "",:size => 25%>
14
+ <%=error_message_on "user","first_name"%>
15
+ </li>
16
+ <li><%=f.label :last_name%>
17
+ <%=f.text_field :last_name, :title => "",:size => 25%>
18
+ <%=error_message_on "user","last_name"%>
19
+ </li>
20
+
21
+ </ol>
22
+ </fieldset>
23
+ <fieldset>
24
+ <legend>Credentials</legend>
25
+ <ol>
26
+ <li><%=f.label :password%>
27
+ <%=f.password_field :password, :title => "",:size => 25%>
28
+ <%=error_message_on "user","password"%>
29
+ </li>
30
+ <li><%=f.label :password_confirmation,"Confirm"%>
31
+ <%=f.password_field :password_confirmation, :title => "",:size => 25%>
32
+ <%=error_message_on "user","password_confirmation"%>
33
+ </li>
34
+ <li><%=f.label :super_admin,"Super Admin"%>
35
+ <%=f.check_box :super_admin, :title => ""%>
36
+ </li>
37
+ </ol>
38
+ </fieldset>
39
+ <fieldset>
40
+ <legend>Permissions</legend>
41
+ <ol>
42
+ <%=f.fields_for :spud_admin_permissions do |builder|%>
43
+
44
+ <li>
45
+ <%=builder.hidden_field :name%>
46
+ <%=builder.label :access,builder.object.name%>
47
+ <%=builder.check_box :access%>
48
+ </li>
49
+ <%end%>
50
+ </ol>
51
+ </fieldset>
@@ -0,0 +1,14 @@
1
+
2
+
3
+ <p> Fill in all information pertaining to the new user you wish to create. Fields marked with * are required and must be filled out.</p>
4
+
5
+ <%=form_for @user,:url => spud_admin_users_path(),:html=>{:class=>"right_aligned_form"} do |f|%>
6
+ <%=render :partial => "form",:locals => {:f => f}%>
7
+ <fieldset class="submit"><%=f.submit%> or <%=link_to "cancel","#",:class => "close_dialog"%></fieldset>
8
+ <%end%>
9
+
10
+ <script type="text/javascript">
11
+ $('input[type=submit],.close_dialog').button();
12
+
13
+ </script>
14
+
@@ -0,0 +1,41 @@
1
+ <%=content_for :data_controls do%>
2
+ <%=link_to "New User",new_spud_admin_user_path(),:class => "ajax button",:title => "New User"%>
3
+ <%end%>
4
+ <%=content_for :detail do%>
5
+ <table class="admin-table data-table" id="usertable">
6
+ <thead>
7
+ <tr>
8
+
9
+ <th>Login</th>
10
+ <th>Email</th>
11
+ <th>Name</th>
12
+
13
+ <th>Last Login</th>
14
+ <th>Date Created</th>
15
+ <th></th>
16
+ </tr>
17
+ </thead>
18
+ <tbody>
19
+ <%@users.each do |user|%>
20
+ <tr id="row_user_<%=user.id%>">
21
+
22
+ <td><%=link_to user.login,spud_admin_user_path(:id => user.id)%></td>
23
+ <td><%=user.email%></td>
24
+ <td><%=user.first_name%>&nbsp;<%=user.last_name%></td>
25
+
26
+ <td><%=timestamp user.last_login_at%></td>
27
+ <td><%=timestamp user.created_at%></td>
28
+ <td align="right"><%=link_to "Edit",edit_spud_admin_user_path(:id => user.id),:class => "ajax", :title => "Edit User"%>&nbsp;|&nbsp;<%=link_to "Remove",spud_admin_user_path(:id => user.id),:method => :delete,:remote => true,:confirm => "Are you sure you want to remove this user?"%></td>
29
+ </tr>
30
+ <%end%>
31
+ </tbody>
32
+ <tfoot>
33
+ <tr>
34
+ <td colspan="6">
35
+ <%=will_paginate @users%>
36
+ </td>
37
+ </tr>
38
+ </tfoot>
39
+ </table>
40
+
41
+ <%end%>
@@ -0,0 +1,17 @@
1
+ <%=content_for :data_controls do%>
2
+ <%=link_to "Edit",edit_spud_admin_user_path(:id => @user.id),:class => "ajax",:title => "Edit User"%> | <%=link_to "Remove",spud_admin_user_path(:id => @user.id),:method => :delete,:title => "Remove User",:confirm => "Are you sure you wish to remove this user?"%>
3
+ <%end%>
4
+ <%=content_for :detail_nav do%>
5
+ <ul class="detail_nav">
6
+ <li><%=link_to "Permissions","#"%></li>
7
+ </ul>
8
+ <%end%>
9
+
10
+ <%=content_for :detail do%>
11
+ <div class="info_card">
12
+ <p><strong>Login:</strong> <%=@user.login%> <%="(Super Administrator)" if @user.super_admin%></p>
13
+ <p><strong>Email:</strong> <%=link_to @user.email, "mailto:#{@user.email}"%></p>
14
+ <p><strong>Last Login:</strong> <span title="IP: <%=@user.last_login_ip%>"><%=timestamp @user.last_login_at%></span></p>
15
+ <p><strong>Created:</strong> <%=timestamp @user.created_at%></p>
16
+ </div>
17
+ <%end%>
@@ -0,0 +1,25 @@
1
+ <%content_for :detail do%>
2
+ <%=form_tag "/spud/setup",:method => :post,:class=>"right_aligned_form" do %>
3
+ <fieldset>
4
+ <legend>New Admin Account</legend>
5
+ <ol>
6
+ <li><%=label_tag "Login"%>
7
+ <%=text_field_tag :login,nil,:title => "",:size=>25%>
8
+ </li>
9
+ <li><%=label_tag "Email"%>
10
+ <%=text_field_tag :email,nil,:title => "",:size=>25%>
11
+ </li>
12
+ <li><%=label_tag "Password"%>
13
+ <%=password_field_tag :password,nil,:title => "",:size=>25%>
14
+ </li>
15
+ <li><%=label_tag "Confirm"%>
16
+ <%=password_field_tag :password_confirmation,nil,:title => "",:size=>25%>
17
+ </li>
18
+
19
+
20
+ </ol>
21
+ </fieldset>
22
+ <fieldset class="submit"><%=submit_tag "Create Admin Account"%></fieldset>
23
+ <%end%>
24
+ <br/>
25
+ <%end%>
@@ -0,0 +1,12 @@
1
+
2
+ xml.instruct! :xml, :version => '1.0', :encoding => 'UTF-8'
3
+
4
+ # create the urlset
5
+ xml.sitemapindex :xmlns => 'http://www.sitemaps.org/schemas/sitemap/0.9' do
6
+ @sitemap_urls.each do |map|
7
+ xml.sitemap do
8
+ xml.loc eval(map.to_s + " :format => :xml")
9
+ xml.lastmod Time.now.utc
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,22 @@
1
+ <div class="login-form">
2
+ <h1>Spud CMS Admin</h1>
3
+ <%= form_for @user_session, url: spud_user_session_path do |f| %>
4
+ <div>
5
+ <%= f.error_messages %>
6
+ </div>
7
+ <div class="field-group">
8
+ <%= f.label :login %>
9
+ <%= f.text_field :login %>
10
+ </div>
11
+ <div class="field-group">
12
+ <%= f.label :password %>
13
+ <%= f.password_field :password %>
14
+ </div>
15
+ <div class="field-group">
16
+ <%= f.check_box :remember_me %> <%= f.label :remember_me, class: 'inline' %>
17
+ </div>
18
+ <div class="field-group">
19
+ <%= f.submit "Login" %>
20
+ </div>
21
+ <% end %>
22
+ </div>
@@ -0,0 +1,35 @@
1
+ <fieldset>
2
+ <legend>User Details</legend>
3
+ <ol>
4
+ <li><%=f.label :login, :required=>true%>
5
+ <%=f.text_field :login,:title => "",:size=>25%>
6
+ <%=error_message_on "user","login"%>
7
+ </li>
8
+ <li><%=f.label :email%>
9
+ <%=f.text_field :email, :title => "",:size => 25%>
10
+ <%=error_message_on "user","email"%>
11
+ </li>
12
+ <li><%=f.label :first_name%>
13
+ <%=f.text_field :first_name, :title => "",:size => 25%>
14
+ <%=error_message_on "user","first_name"%>
15
+ </li>
16
+ <li><%=f.label :last_name%>
17
+ <%=f.text_field :last_name, :title => "",:size => 25%>
18
+ <%=error_message_on "user","last_name"%>
19
+ </li>
20
+
21
+ </ol>
22
+ </fieldset>
23
+ <fieldset>
24
+ <legend>Credentials</legend>
25
+ <ol>
26
+ <li><%=f.label :password%>
27
+ <%=f.password_field :password, :title => "",:size => 25%>
28
+ <%=error_message_on "user","password"%>
29
+ </li>
30
+ <li><%=f.label :password_confirmation,"Confirm"%>
31
+ <%=f.password_field :password_confirmation, :title => "",:size => 25%>
32
+ <%=error_message_on "user","password_confirmation"%>
33
+ </li>
34
+ </ol>
35
+ </fieldset>
@@ -0,0 +1,14 @@
1
+
2
+
3
+ <p>Fields marked with * are required and must be filled out.</p>
4
+
5
+ <%=form_for @current_user,:url => spud_user_path(),:html=>{:class=>"right_aligned_form"} do |f|%>
6
+ <%=render :partial => "form",:locals => {:f => f}%>
7
+ <fieldset class="submit"><%=f.submit "Save Settings"%> or <%=link_to "cancel",request.referer,:class => "close_dialog"%></fieldset>
8
+ <%end%>
9
+
10
+ <script type="text/javascript">
11
+ $('input[type=submit],.close_dialog').button();
12
+
13
+ </script>
14
+
@@ -0,0 +1,48 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ require 'rails/all'
4
+
5
+ if defined?(Bundler)
6
+ # If you precompile assets before deploying to production, use this line
7
+ Bundler.require *Rails.groups(:assets => %w(development test))
8
+ # If you want your assets lazily compiled in production, use this line
9
+ # Bundler.require(:default, :assets, Rails.env)
10
+ end
11
+
12
+ module SpudTest
13
+ class Application < Rails::Application
14
+ # Settings in config/environments/* take precedence over those specified here.
15
+ # Application configuration should go into files in config/initializers
16
+ # -- all .rb files in that directory are automatically loaded.
17
+
18
+ # Custom directories with classes and modules you want to be autoloadable.
19
+ # config.autoload_paths += %W(#{config.root}/extras)
20
+
21
+ # Only load the plugins named here, in the order given (default is alphabetical).
22
+ # :all can be used as a placeholder for all plugins not explicitly named.
23
+ # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
24
+
25
+ # Activate observers that should always be running.
26
+ # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
27
+
28
+ # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
29
+ # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
30
+ # config.time_zone = 'Central Time (US & Canada)'
31
+
32
+ # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
33
+ # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
34
+ # config.i18n.default_locale = :de
35
+
36
+ # Configure the default encoding used in templates for Ruby 1.9.
37
+ config.encoding = "utf-8"
38
+
39
+ # Configure sensitive parameters which will be filtered from the log file.
40
+ config.filter_parameters += [:password]
41
+
42
+ # Enable the asset pipeline
43
+ config.assets.enabled = true
44
+
45
+ # Version of your assets, change this if you want to expire all your assets
46
+ config.assets.version = '1.0'
47
+ end
48
+ end
data/config/boot.rb ADDED
@@ -0,0 +1,6 @@
1
+ require 'rubygems'
2
+
3
+ # Set up gems listed in the Gemfile.
4
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
5
+
6
+ require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
data/config/routes.rb ADDED
@@ -0,0 +1,15 @@
1
+ Rails.application.routes.draw do
2
+ namespace :spud do
3
+ resource :user_session
4
+ resource :user
5
+ match 'settings' => "users#settings"
6
+ namespace :admin do
7
+ root :to => "dashboard#index"
8
+ resources :users
9
+ end
10
+ resource :sitemap,:only => [:show]
11
+ match 'setup' => 'setup#index'
12
+ end
13
+
14
+ end
15
+