spud_core 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +41 -0
- data/app/assets/images/back_disabled.jpg +0 -0
- data/app/assets/images/back_enabled.jpg +0 -0
- data/app/assets/images/favicon.ico +0 -0
- data/app/assets/images/forward_disabled.jpg +0 -0
- data/app/assets/images/forward_enabled.jpg +0 -0
- data/app/assets/images/sort_asc.png +0 -0
- data/app/assets/images/sort_asc_disabled.png +0 -0
- data/app/assets/images/sort_both.png +0 -0
- data/app/assets/images/sort_desc.png +0 -0
- data/app/assets/images/sort_desc_disabled.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-bg_flat_0_eeeeee_40x100.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-bg_flat_55_ffffff_40x100.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-icons_0073ea_256x240.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-icons_454545_256x240.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-icons_666666_256x240.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-icons_ff0084_256x240.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-icons_ffffff_256x240.png +0 -0
- data/app/assets/images/spud/admin/users_thumb.png +0 -0
- data/app/assets/javascripts/spud/admin/application.js +90 -0
- data/app/assets/javascripts/spud/admin/jquery.dataTables.min.js +151 -0
- data/app/assets/javascripts/spud/admin/settings.js +2 -0
- data/app/assets/javascripts/spud/admin/users.js +2 -0
- data/app/assets/javascripts/spud/setup.js +2 -0
- data/app/assets/javascripts/spud/sitemaps.js +2 -0
- data/app/assets/javascripts/spud/user_sessions.js +2 -0
- data/app/assets/javascripts/spud/users.js +2 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-article.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-aside.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-blockquote.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-command.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-details.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-figcaption.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-figure.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-footer.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-h1.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-h2.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-h3.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-h4.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-h5.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-h6.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-header.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-hgroup.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-mark.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-meter.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-nav.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-p.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-pre.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-progress.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-rp.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-rt.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-ruby.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-section.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-summary.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/lbl-time.png +0 -0
- data/app/assets/javascripts/wymeditor/iframe/default/readme.md +1 -0
- data/app/assets/javascripts/wymeditor/iframe/default/wymiframe.css +91 -0
- data/app/assets/javascripts/wymeditor/iframe/default/wymiframe.html +26 -0
- data/app/assets/javascripts/wymeditor/jquery.wymeditor.js +9983 -0
- data/app/assets/javascripts/wymeditor/jquery.wymeditor.min.js +34 -0
- data/app/assets/javascripts/wymeditor/lang/bg.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/ca.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/cs.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/cy.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/de.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/en.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/es.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/fa.js +46 -0
- data/app/assets/javascripts/wymeditor/lang/fi.js +44 -0
- data/app/assets/javascripts/wymeditor/lang/fr.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/gl.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/he.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/hr.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/hu.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/it.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/ja.js +44 -0
- data/app/assets/javascripts/wymeditor/lang/lt.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/nb.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/nl.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/nn.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/pl.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/pt-br.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/pt.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/ru.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/sv.js +46 -0
- data/app/assets/javascripts/wymeditor/lang/tr.js +45 -0
- data/app/assets/javascripts/wymeditor/lang/zh_cn.js +47 -0
- data/app/assets/javascripts/wymeditor/plugins/embed/jquery.wymeditor.embed.js +82 -0
- data/app/assets/javascripts/wymeditor/plugins/fullscreen/icon_fullscreen.gif +0 -0
- data/app/assets/javascripts/wymeditor/plugins/fullscreen/jquery.wymeditor.fullscreen.js +124 -0
- data/app/assets/javascripts/wymeditor/plugins/hovertools/jquery.wymeditor.hovertools.js +49 -0
- data/app/assets/javascripts/wymeditor/plugins/list/jquery.wymeditor.list.js +60 -0
- data/app/assets/javascripts/wymeditor/plugins/rdfa/jquery.wymeditor.rdfa.js +186 -0
- data/app/assets/javascripts/wymeditor/plugins/resizable/jquery.wymeditor.resizable.js +77 -0
- data/app/assets/javascripts/wymeditor/plugins/resizable/readme.txt +124 -0
- data/app/assets/javascripts/wymeditor/plugins/table/jquery.wymeditor.table.js +721 -0
- data/app/assets/javascripts/wymeditor/plugins/table/table_delete_column.png +0 -0
- data/app/assets/javascripts/wymeditor/plugins/table/table_delete_row.png +0 -0
- data/app/assets/javascripts/wymeditor/plugins/table/table_insert_column.png +0 -0
- data/app/assets/javascripts/wymeditor/plugins/table/table_insert_row.png +0 -0
- data/app/assets/javascripts/wymeditor/plugins/table/table_join_row.png +0 -0
- data/app/assets/javascripts/wymeditor/plugins/tidy/README +19 -0
- data/app/assets/javascripts/wymeditor/plugins/tidy/jquery.wymeditor.tidy.js +78 -0
- data/app/assets/javascripts/wymeditor/plugins/tidy/tidy.php +58 -0
- data/app/assets/javascripts/wymeditor/plugins/tidy/wand.png +0 -0
- data/app/assets/javascripts/wymeditor/skins/compact/icons.png +0 -0
- data/app/assets/javascripts/wymeditor/skins/compact/skin.css +134 -0
- data/app/assets/javascripts/wymeditor/skins/compact/skin.js +37 -0
- data/app/assets/javascripts/wymeditor/skins/default/icons.png +0 -0
- data/app/assets/javascripts/wymeditor/skins/default/skin.css +133 -0
- data/app/assets/javascripts/wymeditor/skins/default/skin.js +40 -0
- data/app/assets/javascripts/wymeditor/skins/minimal/images/bg.header.gif +0 -0
- data/app/assets/javascripts/wymeditor/skins/minimal/images/bg.selector.silver.gif +0 -0
- data/app/assets/javascripts/wymeditor/skins/minimal/images/bg.wymeditor.png +0 -0
- data/app/assets/javascripts/wymeditor/skins/minimal/images/icons.silver.gif +0 -0
- data/app/assets/javascripts/wymeditor/skins/minimal/skin.css +131 -0
- data/app/assets/javascripts/wymeditor/skins/minimal/skin.js +30 -0
- data/app/assets/javascripts/wymeditor/skins/silver/COPYING +674 -0
- data/app/assets/javascripts/wymeditor/skins/silver/README +27 -0
- data/app/assets/javascripts/wymeditor/skins/silver/images/bg.header.gif +0 -0
- data/app/assets/javascripts/wymeditor/skins/silver/images/bg.selector.silver.gif +0 -0
- data/app/assets/javascripts/wymeditor/skins/silver/images/bg.wymeditor.png +0 -0
- data/app/assets/javascripts/wymeditor/skins/silver/images/icons.silver.gif +0 -0
- data/app/assets/javascripts/wymeditor/skins/silver/skin.css +297 -0
- data/app/assets/javascripts/wymeditor/skins/silver/skin.js +61 -0
- data/app/assets/javascripts/wymeditor/skins/twopanels/icons.png +0 -0
- data/app/assets/javascripts/wymeditor/skins/twopanels/skin.css +134 -0
- data/app/assets/javascripts/wymeditor/skins/twopanels/skin.js +39 -0
- data/app/assets/javascripts/wymeditor/skins/wymeditor_icon.png +0 -0
- data/app/assets/stylesheets/spud/admin/application.css +464 -0
- data/app/assets/stylesheets/spud/admin/jquery-ui.css +568 -0
- data/app/assets/stylesheets/spud/admin/settings.css +4 -0
- data/app/assets/stylesheets/spud/admin/users.css +4 -0
- data/app/assets/stylesheets/spud/forms.css +108 -0
- data/app/assets/stylesheets/spud/login/application.css +302 -0
- data/app/assets/stylesheets/spud/login.css +58 -0
- data/app/assets/stylesheets/spud/setup.css +4 -0
- data/app/assets/stylesheets/spud/sitemaps.css +4 -0
- data/app/assets/stylesheets/spud/user_sessions.css +4 -0
- data/app/assets/stylesheets/spud/users.css +4 -0
- data/app/controllers/spud/admin/application_controller.rb +19 -0
- data/app/controllers/spud/admin/dashboard_controller.rb +7 -0
- data/app/controllers/spud/admin/settings_controller.rb +15 -0
- data/app/controllers/spud/admin/users_controller.rb +111 -0
- data/app/controllers/spud/application_controller.rb +48 -0
- data/app/controllers/spud/setup_controller.rb +22 -0
- data/app/controllers/spud/sitemaps_controller.rb +6 -0
- data/app/controllers/spud/user_sessions_controller.rb +28 -0
- data/app/controllers/spud/users_controller.rb +21 -0
- data/app/helpers/spud/admin/application_helper.rb +17 -0
- data/app/helpers/spud/admin/settings_helper.rb +2 -0
- data/app/helpers/spud/admin/users_helper.rb +2 -0
- data/app/helpers/spud/setup_helper.rb +2 -0
- data/app/helpers/spud/sitemaps_helper.rb +2 -0
- data/app/helpers/spud/user_sessions_helper.rb +2 -0
- data/app/helpers/spud/users_helper.rb +2 -0
- data/app/models/spud_admin_permission.rb +2 -0
- data/app/models/spud_setting.rb +2 -0
- data/app/models/spud_user.rb +16 -0
- data/app/models/spud_user_session.rb +3 -0
- data/app/views/layouts/spud/admin/application.html.erb +44 -0
- data/app/views/layouts/spud/admin/detail.html.erb +31 -0
- data/app/views/layouts/spud/login/application.html.erb +17 -0
- data/app/views/layouts/spud/setup.html.erb +47 -0
- data/app/views/spud/admin/dashboard/index.html.erb +11 -0
- data/app/views/spud/admin/users/_edit.html.erb +14 -0
- data/app/views/spud/admin/users/_form.html.erb +51 -0
- data/app/views/spud/admin/users/_new.html.erb +14 -0
- data/app/views/spud/admin/users/index.html.erb +41 -0
- data/app/views/spud/admin/users/show.html.erb +17 -0
- data/app/views/spud/setup/index.html.erb +25 -0
- data/app/views/spud/sitemaps/show.xml.builder +12 -0
- data/app/views/spud/user_sessions/new.html.erb +22 -0
- data/app/views/spud/users/_form.html.erb +35 -0
- data/app/views/spud/users/settings.html.erb +14 -0
- data/config/application.rb +48 -0
- data/config/boot.rb +6 -0
- data/config/routes.rb +15 -0
- data/lib/spud_core/belongs_to_app.rb +54 -0
- data/lib/spud_core/configuration.rb +9 -0
- data/lib/spud_core/engine.rb +34 -0
- data/lib/spud_core/test_files.rb +25 -0
- data/lib/spud_core.rb +8 -0
- metadata +311 -0
@@ -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,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,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> | <%=link_to "Settings", spud_settings_path%> | <%=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%> <%=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"%> | <%=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
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
|
+
|