flms 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/MIT-LICENSE +20 -0
- data/README.md +3 -0
- data/Rakefile +33 -0
- data/app/assets/images/img/glyphicons-halflings-white.png +0 -0
- data/app/assets/images/img/glyphicons-halflings.png +0 -0
- data/app/assets/javascripts/flms/blocks/index.coffee +6 -0
- data/app/assets/javascripts/flms/bootstrap.js +6 -0
- data/app/assets/javascripts/flms/flms.js +17 -0
- data/app/assets/javascripts/flms/layout.coffee +8 -0
- data/app/assets/stylesheets/flms/blocks/index.sass +28 -0
- data/app/assets/stylesheets/flms/bootstrap.css +6159 -0
- data/app/assets/stylesheets/flms/flms.css +7 -0
- data/app/assets/stylesheets/flms/home.sass +30 -0
- data/app/assets/stylesheets/flms/layout.sass +19 -0
- data/app/assets/stylesheets/flms/login.sass +32 -0
- data/app/controllers/flms/admin_controller.rb +11 -0
- data/app/controllers/flms/application_controller.rb +4 -0
- data/app/controllers/flms/blocks_controller.rb +55 -0
- data/app/controllers/flms/dashboard_controller.rb +13 -0
- data/app/controllers/flms/pages_controller.rb +47 -0
- data/app/controllers/flms/sessions_controller.rb +16 -0
- data/app/controllers/flms/users_controller.rb +31 -0
- data/app/helpers/flms/application_helper.rb +4 -0
- data/app/models/flms/block.rb +10 -0
- data/app/models/flms/blocks_page.rb +8 -0
- data/app/models/flms/page.rb +14 -0
- data/app/models/flms/user.rb +10 -0
- data/app/views/flms/blocks/_form.html.haml +25 -0
- data/app/views/flms/blocks/edit.html.haml +3 -0
- data/app/views/flms/blocks/index.html.haml +41 -0
- data/app/views/flms/blocks/new.html.haml +2 -0
- data/app/views/flms/blocks/show.html.haml +1 -0
- data/app/views/flms/dashboard/index.html.haml +5 -0
- data/app/views/flms/pages/_form.html.haml +30 -0
- data/app/views/flms/pages/edit.html.haml +3 -0
- data/app/views/flms/pages/index.html.haml +21 -0
- data/app/views/flms/pages/new.html.haml +2 -0
- data/app/views/flms/pages/show.html.haml +8 -0
- data/app/views/flms/sessions/new.html.haml +21 -0
- data/app/views/flms/users/_form.html.haml +28 -0
- data/app/views/flms/users/index.html.haml +22 -0
- data/app/views/flms/users/new.html.haml +3 -0
- data/app/views/layouts/flms/admin.html.haml +40 -0
- data/app/views/layouts/flms/admin_login.html.haml +18 -0
- data/app/views/layouts/flms/application.html.erb +14 -0
- data/config/initializers/devise.rb +243 -0
- data/config/locales/devise.en.yml +59 -0
- data/config/routes.rb +23 -0
- data/db/migrate/20130208224914_flms_devise_create_users.rb +47 -0
- data/db/migrate/20130216032241_flms_create_pages.rb +12 -0
- data/db/migrate/20130302011705_create_flms_blocks.rb +10 -0
- data/db/migrate/20130302015459_create_flms_blocks_pages.rb +12 -0
- data/lib/flms.rb +7 -0
- data/lib/flms/engine.rb +5 -0
- data/lib/flms/version.rb +3 -0
- data/lib/tasks/flms_tasks.rake +26 -0
- data/spec/controllers/blocks_controller_spec.rb +61 -0
- data/spec/controllers/dashboard_controller_spec.rb +12 -0
- data/spec/controllers/pages_controller_spec.rb +60 -0
- data/spec/controllers/users_controller_spec.rb +37 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/controllers/application_controller.rb +12 -0
- data/spec/dummy/app/controllers/home_controller.rb +4 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/user.rb +8 -0
- data/spec/dummy/app/views/home/index.html.haml +10 -0
- data/spec/dummy/app/views/layouts/application.html.haml +10 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +69 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/database.yml +52 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +37 -0
- data/spec/dummy/config/environments/production.rb +67 -0
- data/spec/dummy/config/environments/test.rb +37 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/devise.rb +244 -0
- data/spec/dummy/config/initializers/flms.rb +1 -0
- data/spec/dummy/config/initializers/inflections.rb +15 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +4 -0
- data/spec/dummy/db/schema.rb +60 -0
- data/spec/dummy/log/development.log +39893 -0
- data/spec/dummy/log/test.log +42855 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/tmp/cache/assets/C9D/180/sprockets%2Fad74b633d2447502477133032afac84b +0 -0
- data/spec/dummy/tmp/cache/assets/CAB/C80/sprockets%2Fc4e739111d82c7189113aeb228816ba8 +0 -0
- data/spec/dummy/tmp/cache/assets/CB9/E30/sprockets%2F588cf5763c29e490d026f24e8aa90343 +0 -0
- data/spec/dummy/tmp/cache/assets/CCF/210/sprockets%2F43b5c2ffc8a62726b4ed6234001571a4 +0 -0
- data/spec/dummy/tmp/cache/assets/CDB/510/sprockets%2Fd61745a24c4636f8813fa14038bac69a +0 -0
- data/spec/dummy/tmp/cache/assets/CDE/D90/sprockets%2Fcc733e310d9646637216c4ffe109ea35 +0 -0
- data/spec/dummy/tmp/cache/assets/CE4/6B0/sprockets%2F6e38aec803936176be248f507eb3432d +0 -0
- data/spec/dummy/tmp/cache/assets/CED/6A0/sprockets%2Fcc221f5201d658cf456836f8b5547f9d +0 -0
- data/spec/dummy/tmp/cache/assets/CF6/740/sprockets%2F0cb88349ae46593e396c4bd68854ed08 +0 -0
- data/spec/dummy/tmp/cache/assets/D01/E80/sprockets%2Fc1a3694915166d6a041afa4bb062fd84 +0 -0
- data/spec/dummy/tmp/cache/assets/D06/AF0/sprockets%2F02a9a4f214368781ba86ed42d5bef203 +0 -0
- data/spec/dummy/tmp/cache/assets/D07/250/sprockets%2Fa8bf27de087b582dc454910a060e0b84 +0 -0
- data/spec/dummy/tmp/cache/assets/D09/5C0/sprockets%2F7cd3521c63623eb6f02dbb514991a6f6 +0 -0
- data/spec/dummy/tmp/cache/assets/D0C/570/sprockets%2F7e3d63e1412ae56b44b23d95547f0cc7 +0 -0
- data/spec/dummy/tmp/cache/assets/D0D/510/sprockets%2Fa189f1a8718ff11152feb3c43c75b841 +0 -0
- data/spec/dummy/tmp/cache/assets/D1A/3F0/sprockets%2F84181c4b293f3a1c4efe9226652f9e6e +0 -0
- data/spec/dummy/tmp/cache/assets/D1E/1D0/sprockets%2Ffeec495723d877b92c74db2055516bc9 +0 -0
- data/spec/dummy/tmp/cache/assets/D2E/F10/sprockets%2F156bfd6b405a129f5f003243cf60aea9 +0 -0
- data/spec/dummy/tmp/cache/assets/D35/470/sprockets%2F2c0a647ea89470a8285b9acb2006dbd5 +0 -0
- data/spec/dummy/tmp/cache/assets/D3B/440/sprockets%2Fabe31f236167ba051f6ff849d0a7282f +0 -0
- data/spec/dummy/tmp/cache/assets/D3B/550/sprockets%2Fb61caf9834ac8c31691851ac024f26ef +0 -0
- data/spec/dummy/tmp/cache/assets/D44/A50/sprockets%2F7602cd388554ba54eb914c1b2d7ff68c +0 -0
- data/spec/dummy/tmp/cache/assets/D46/210/sprockets%2F45a8d49c8edbaf91f38ab1495430384c +0 -0
- data/spec/dummy/tmp/cache/assets/D4A/B40/sprockets%2F509d2dc1350975d781c50dffc58ef53f +0 -0
- data/spec/dummy/tmp/cache/assets/D54/DE0/sprockets%2F77af3e306bb966f71f83e90e2a8868db +0 -0
- data/spec/dummy/tmp/cache/assets/D5B/1F0/sprockets%2F4d98e747aa4bb9fc8859f49a45159e1c +0 -0
- data/spec/dummy/tmp/cache/assets/D65/690/sprockets%2F511f71e32f87da06df67250bb39abdc2 +0 -0
- data/spec/dummy/tmp/cache/assets/D6E/870/sprockets%2F3f77e0b5396013fd145a6fdd21bc9b7f +0 -0
- data/spec/dummy/tmp/cache/assets/D74/EA0/sprockets%2Fccfc557971c4d47336cab75db207b89a +0 -0
- data/spec/dummy/tmp/cache/assets/D77/D80/sprockets%2F7ad794c63274a9812dfbabc1dae69692 +0 -0
- data/spec/dummy/tmp/cache/assets/D79/DE0/sprockets%2F9e7131d002f39be972e9918bdfbbcc66 +0 -0
- data/spec/dummy/tmp/cache/assets/D7C/3A0/sprockets%2Fec63717067efd6b2daf3423edf70f689 +0 -0
- data/spec/dummy/tmp/cache/assets/D81/300/sprockets%2F9543b0420abb11b0a126a8384edddafe +0 -0
- data/spec/dummy/tmp/cache/assets/D81/400/sprockets%2F566656e2cc9e698b1dbbd56d6e2e6b36 +0 -0
- data/spec/dummy/tmp/cache/assets/D93/0C0/sprockets%2Fab900c084c9c51c312ee3457cee8cdc2 +0 -0
- data/spec/dummy/tmp/cache/assets/D98/FD0/sprockets%2F6f253bd2bf824ac38c69bfe1418a04be +0 -0
- data/spec/dummy/tmp/cache/assets/D9E/220/sprockets%2Fd129fcf804e89814c2f4abbe0336cba9 +0 -0
- data/spec/dummy/tmp/cache/assets/DA0/9F0/sprockets%2Fd7c0d94bf0df6b0e03f83dcaf8873631 +0 -0
- data/spec/dummy/tmp/cache/assets/DA3/920/sprockets%2F6c45b9f8e0152c78b3c9be1c2e8be53c +0 -0
- data/spec/dummy/tmp/cache/assets/DA5/BC0/sprockets%2F5b86068a872e5bd841750d6cbd2dfdbf +0 -0
- data/spec/dummy/tmp/cache/assets/DA8/4A0/sprockets%2Ff8ba39d58ace11df624bf7e24c7b5882 +0 -0
- data/spec/dummy/tmp/cache/assets/DA8/C30/sprockets%2Fb7d14d588a70a56d7ddac542eef557d6 +0 -0
- data/spec/dummy/tmp/cache/assets/DA9/370/sprockets%2Fdf257d496b11ea9c1bb7ee139d68c83e +0 -0
- data/spec/dummy/tmp/cache/assets/DAC/D80/sprockets%2Fb8ca14c15e0301b935aaaef327bdc40a +0 -0
- data/spec/dummy/tmp/cache/assets/DAE/F10/sprockets%2F46950fdbeed95ba83ca8e7215194ddf8 +0 -0
- data/spec/dummy/tmp/cache/assets/DB2/1F0/sprockets%2F9fe57997f92efbee3b03df4510a2df57 +0 -0
- data/spec/dummy/tmp/cache/assets/DB8/C30/sprockets%2Fca860af2d10e0c745b6e38b12dabe05f +0 -0
- data/spec/dummy/tmp/cache/assets/DC1/530/sprockets%2F4db0b289eee7dad03453a5924c20dcfa +0 -0
- data/spec/dummy/tmp/cache/assets/DC6/7D0/sprockets%2Ff7689ac5fafbf683c537892e6ff7f8c3 +0 -0
- data/spec/dummy/tmp/cache/assets/DCC/B80/sprockets%2Fb7ae6e7bfa8984c54a4dfaf0011617cd +0 -0
- data/spec/dummy/tmp/cache/assets/DCE/790/sprockets%2Fff77d67febbb3af024f721c0bb4c4749 +0 -0
- data/spec/dummy/tmp/cache/assets/DCF/0B0/sprockets%2F23db7ab96a5549546bbdd0bc2e6ea86f +0 -0
- data/spec/dummy/tmp/cache/assets/DD5/440/sprockets%2F9b3488ba6d62c3dcc809f8cd3dc2d1f5 +0 -0
- data/spec/dummy/tmp/cache/assets/DE6/B10/sprockets%2Fa0adf3fb2b0054d04dd44c08aff1d6c8 +0 -0
- data/spec/dummy/tmp/cache/assets/DF1/A10/sprockets%2Fa925a815ca0bff4d6f42fbdf0d323a4f +0 -0
- data/spec/dummy/tmp/cache/assets/DFA/FF0/sprockets%2F75699fed9ddaecd89464492eeeef90d8 +0 -0
- data/spec/dummy/tmp/cache/assets/DFD/540/sprockets%2F181ef7a7c275dd2872aa1ed1fcfab75f +0 -0
- data/spec/dummy/tmp/cache/assets/E0E/B50/sprockets%2Fe78fa5fc4cfb0979876d23ae1b1f3ffd +0 -0
- data/spec/dummy/tmp/cache/assets/E3A/110/sprockets%2Fb6d5158ff7ac6d2ca99bfe56a7ddd2e3 +0 -0
- data/spec/dummy/tmp/cache/assets/E6D/8B0/sprockets%2F9edfdf7e85cdd1a69b0eb14c6ce8ed19 +0 -0
- data/spec/factories/blocks.rb +6 -0
- data/spec/factories/pages.rb +6 -0
- data/spec/factories/users.rb +7 -0
- data/spec/features/blocks/create_spec.rb +19 -0
- data/spec/features/blocks/delete_spec.rb +17 -0
- data/spec/features/blocks/edit_spec.rb +20 -0
- data/spec/features/blocks/show_spec.rb +14 -0
- data/spec/features/dashboard_spec.rb +11 -0
- data/spec/features/login_spec.rb +50 -0
- data/spec/features/pages/create_spec.rb +18 -0
- data/spec/features/pages/delete_spec.rb +14 -0
- data/spec/features/pages/index_spec.rb +14 -0
- data/spec/features/pages/update_spec.rb +17 -0
- data/spec/features/users/create_spec.rb +20 -0
- data/spec/features/users/delete_spec.rb +13 -0
- data/spec/features/users/index_spec.rb +16 -0
- data/spec/flms_spec.rb +7 -0
- data/spec/models/block_spec.rb +14 -0
- data/spec/models/page_spec.rb +15 -0
- data/spec/models/user_spec.rb +5 -0
- data/spec/spec_helper.rb +53 -0
- data/spec/support/access_control.rb +87 -0
- data/spec/support/capybara_helpers.rb +7 -0
- data/spec/support/lets.rb +8 -0
- data/vendor/assets/javascripts/bootstrapSwitch.js +238 -0
- data/vendor/assets/javascripts/jquery-ui.js +2221 -0
- data/vendor/assets/stylesheets/bootstrapSwitch.css +210 -0
- data/vendor/assets/stylesheets/jquery-ui.css +88 -0
- metadata +607 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
body
|
2
|
+
padding-top: 20px
|
3
|
+
padding-bottom: 40px
|
4
|
+
|
5
|
+
.container-narrow
|
6
|
+
margin: 0 auto
|
7
|
+
max-width: 700px
|
8
|
+
|
9
|
+
.container-narrow > hr
|
10
|
+
margin: 30px 0
|
11
|
+
|
12
|
+
/* Supporting marketing content */
|
13
|
+
.marketing
|
14
|
+
margin: 60px 0
|
15
|
+
|
16
|
+
.marketing p + h4
|
17
|
+
margin-top: 28px
|
18
|
+
|
19
|
+
h4
|
20
|
+
display: block
|
21
|
+
width: 100%
|
22
|
+
padding-top: 40px 0 0
|
23
|
+
margin-bottom: 20px
|
24
|
+
font-size: 21px
|
25
|
+
font-weight: normal
|
26
|
+
line-height: 40px
|
27
|
+
color: #333333
|
28
|
+
border: 0
|
29
|
+
border-bottom: 1px solid #e5e5e5
|
30
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/* CSS for the layouts. */
|
2
|
+
.flash
|
3
|
+
position: absolute
|
4
|
+
top: 0
|
5
|
+
right: 0
|
6
|
+
width: 100%
|
7
|
+
height: 45px
|
8
|
+
color: white
|
9
|
+
font-size: 3em
|
10
|
+
text-align: center
|
11
|
+
padding-top: 20px
|
12
|
+
font-size: 2em
|
13
|
+
|
14
|
+
&.notice
|
15
|
+
background-color: rgb(0,150,0)
|
16
|
+
|
17
|
+
&.alert
|
18
|
+
background-color: rgb(150,0,0)
|
19
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
body.user_sessions.new,
|
2
|
+
body.user_passwords.new
|
3
|
+
background-color: #f5f5f5
|
4
|
+
|
5
|
+
.login
|
6
|
+
|
7
|
+
padding-top: 40px
|
8
|
+
|
9
|
+
.form-signin
|
10
|
+
max-width: 300px
|
11
|
+
padding: 19px 29px 29px
|
12
|
+
margin: 0 auto 20px
|
13
|
+
background-color: #fff
|
14
|
+
border: 1px solid #e5e5e5
|
15
|
+
-webkit-border-radius: 5px
|
16
|
+
-moz-border-radius: 5px
|
17
|
+
border-radius: 5px
|
18
|
+
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05)
|
19
|
+
-moz-box-shadow: 0 1px 2px rgba(0,0,0,.05)
|
20
|
+
box-shadow: 0 1px 2px rgba(0,0,0,.05)
|
21
|
+
|
22
|
+
.form-signin-heading, .checkbox
|
23
|
+
margin-bottom: 10px
|
24
|
+
|
25
|
+
input[type="text"],
|
26
|
+
input[type="password"],
|
27
|
+
input[type="email"]
|
28
|
+
font-size: 16px
|
29
|
+
height: auto
|
30
|
+
margin-bottom: 15px
|
31
|
+
padding: 7px 9px
|
32
|
+
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require_dependency "flms/application_controller"
|
2
|
+
|
3
|
+
module Flms
|
4
|
+
class BlocksController < ApplicationController
|
5
|
+
before_filter :authenticate_user!
|
6
|
+
layout 'flms/admin'
|
7
|
+
|
8
|
+
def index
|
9
|
+
@page = Flms::Page.find_by_url params[:page_id]
|
10
|
+
@blocks = @page.blocks
|
11
|
+
end
|
12
|
+
|
13
|
+
def show
|
14
|
+
@block = Block.find(params[:id])
|
15
|
+
end
|
16
|
+
|
17
|
+
def new
|
18
|
+
@page = Page.find_by_url params[:page_id]
|
19
|
+
@block = Block.new
|
20
|
+
end
|
21
|
+
|
22
|
+
def edit
|
23
|
+
@page = Page.find_by_url params[:page_id]
|
24
|
+
@block = Block.find(params[:id])
|
25
|
+
end
|
26
|
+
|
27
|
+
def create
|
28
|
+
@page = Page.find_by_url params[:page_id]
|
29
|
+
@block = Block.new(params[:block])
|
30
|
+
if @block.save
|
31
|
+
@block.pages << @page
|
32
|
+
redirect_to page_blocks_path(@page), notice: 'Block created.'
|
33
|
+
else
|
34
|
+
render action: "new"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def update
|
39
|
+
@page = Page.find_by_url params[:page_id]
|
40
|
+
@block = Block.find(params[:id])
|
41
|
+
if @block.update_attributes(params[:block])
|
42
|
+
redirect_to [@page, :blocks], notice: 'Block was successfully updated.'
|
43
|
+
else
|
44
|
+
render action: "edit"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def destroy
|
49
|
+
@page = Page.find_by_url params[:page_id]
|
50
|
+
@block = Block.find params[:id]
|
51
|
+
@block.destroy
|
52
|
+
redirect_to page_blocks_path(@page), notice: 'Block deleted'
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require_dependency "flms/application_controller"
|
2
|
+
|
3
|
+
module Flms
|
4
|
+
class PagesController < ApplicationController
|
5
|
+
before_filter :authenticate_user!
|
6
|
+
layout 'flms/admin'
|
7
|
+
|
8
|
+
def index
|
9
|
+
@pages = Page.all
|
10
|
+
end
|
11
|
+
|
12
|
+
def show
|
13
|
+
end
|
14
|
+
|
15
|
+
def new
|
16
|
+
@page = Page.new
|
17
|
+
end
|
18
|
+
|
19
|
+
def edit
|
20
|
+
@page = Page.find_by_url params[:id]
|
21
|
+
end
|
22
|
+
|
23
|
+
def create
|
24
|
+
@page = Page.new params[:page]
|
25
|
+
if @page.save
|
26
|
+
redirect_to pages_path, notice: 'Page was successfully created.'
|
27
|
+
else
|
28
|
+
render action: "new"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def update
|
33
|
+
@page = Page.find_by_url params[:id]
|
34
|
+
if @page.update_attributes params[:page]
|
35
|
+
redirect_to pages_path, notice: 'Page was successfully updated.'
|
36
|
+
else
|
37
|
+
render action: "edit"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def destroy
|
42
|
+
@page = Page.find_by_url params[:id]
|
43
|
+
@page.destroy
|
44
|
+
redirect_to pages_url
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Flms
|
2
|
+
class SessionsController < Devise::SessionsController
|
3
|
+
layout 'flms/admin_login'
|
4
|
+
|
5
|
+
def new
|
6
|
+
|
7
|
+
# Fast-track to login for faster integration tests.
|
8
|
+
if Rails.env == 'test' && email = params.delete(:email)
|
9
|
+
return sign_in_and_redirect :user, User.where(email: email).first
|
10
|
+
end
|
11
|
+
|
12
|
+
render 'new'
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_dependency "flms/application_controller"
|
2
|
+
|
3
|
+
module Flms
|
4
|
+
class UsersController < ApplicationController
|
5
|
+
before_filter :authenticate_user!
|
6
|
+
layout 'flms/admin'
|
7
|
+
|
8
|
+
def index
|
9
|
+
@users = Flms::User.all
|
10
|
+
end
|
11
|
+
|
12
|
+
def new
|
13
|
+
@user = Flms::User.new
|
14
|
+
end
|
15
|
+
|
16
|
+
def create
|
17
|
+
@user = Flms::User.new params[:user]
|
18
|
+
if @user.save
|
19
|
+
redirect_to users_path, notice: 'User created.'
|
20
|
+
else
|
21
|
+
render action: "new"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def destroy
|
26
|
+
@user = Flms::User.find params[:id]
|
27
|
+
@user.destroy
|
28
|
+
redirect_to users_path
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module Flms
|
2
|
+
class User < ActiveRecord::Base
|
3
|
+
# Include default devise modules. Others available are:
|
4
|
+
# :token_authenticatable, :confirmable, :lockable, :timeoutable and :omniauthable
|
5
|
+
devise :database_authenticatable, :registerable,
|
6
|
+
:recoverable, :rememberable, :trackable, :validatable
|
7
|
+
|
8
|
+
attr_accessible :email, :password, :password_confirmation, :remember_me
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
= form_for [@page, @block], html: {class: 'form-horizontal'} do |f|
|
2
|
+
%fieldset
|
3
|
+
%legend= caption
|
4
|
+
|
5
|
+
- if @block.errors.any?
|
6
|
+
#error_explanation
|
7
|
+
%h2= "#{pluralize(@block.errors.count, "error")} prohibited this block from being saved:"
|
8
|
+
%ul
|
9
|
+
- @block.errors.full_messages.each do |msg|
|
10
|
+
%li= msg
|
11
|
+
|
12
|
+
.control-group
|
13
|
+
= f.label :name, class: 'control-label'
|
14
|
+
.controls
|
15
|
+
= f.text_field :name, autofocus: true
|
16
|
+
%span.help-inline The internal name of this block.
|
17
|
+
|
18
|
+
.control-group
|
19
|
+
.controls
|
20
|
+
.actions
|
21
|
+
= f.submit class: 'btn btn-primary'
|
22
|
+
|
23
|
+
= link_to 'Back', pages_path
|
24
|
+
|
25
|
+
|
@@ -0,0 +1,41 @@
|
|
1
|
+
- content_for :js do
|
2
|
+
:javascript
|
3
|
+
$(function() {
|
4
|
+
new BlocksIndexPage();
|
5
|
+
});
|
6
|
+
|
7
|
+
%br
|
8
|
+
%h4 Blocks on page '#{@page.url}'
|
9
|
+
|
10
|
+
%table.table.table-striped.table-hover
|
11
|
+
%thead
|
12
|
+
%tr
|
13
|
+
%th Name
|
14
|
+
%th
|
15
|
+
|
16
|
+
%tbody.blocks
|
17
|
+
- @blocks.each do |block|
|
18
|
+
%tr.ui-state-default
|
19
|
+
|
20
|
+
%td.action
|
21
|
+
.switch.switch-mini
|
22
|
+
%input{type: 'checkbox'}
|
23
|
+
|
24
|
+
%td.name
|
25
|
+
= link_to block.name, page_block_path(@page, block)
|
26
|
+
|
27
|
+
%td.action
|
28
|
+
= link_to edit_page_block_path(@page, block), class: 'btn', title: 'edit' do
|
29
|
+
%i.icon-pencil
|
30
|
+
|
31
|
+
%td.action
|
32
|
+
= link_to page_block_path(@page, block), method: :delete, data: { confirm: 'Are you sure?' }, class: 'btn', title: 'delete' do
|
33
|
+
%i.icon-trash
|
34
|
+
|
35
|
+
%br
|
36
|
+
|
37
|
+
= link_to new_page_block_path(@page), class: 'btn btn-success' do
|
38
|
+
%i.icon-plus.icon-white
|
39
|
+
New Block
|
40
|
+
|
41
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
Block
|
@@ -0,0 +1,30 @@
|
|
1
|
+
= form_for @page, html: {class: 'form-horizontal'} do |f|
|
2
|
+
%fieldset
|
3
|
+
%legend= caption
|
4
|
+
|
5
|
+
- if @page.errors.any?
|
6
|
+
#error_explanation
|
7
|
+
%h2= "#{pluralize(@page.errors.count, "error")} prohibited this page from being saved:"
|
8
|
+
%ul
|
9
|
+
- @page.errors.full_messages.each do |msg|
|
10
|
+
%li= msg
|
11
|
+
|
12
|
+
.control-group
|
13
|
+
= f.label :title, class: 'control-label'
|
14
|
+
.controls
|
15
|
+
= f.text_field :title, autofocus: true
|
16
|
+
%span.help-inline The internal title of this page.
|
17
|
+
|
18
|
+
.control-group
|
19
|
+
= f.label :url, class: 'control-label'
|
20
|
+
.controls
|
21
|
+
= f.text_field :url
|
22
|
+
%span.help-inline The URL under which this page should be accessible on the web.
|
23
|
+
|
24
|
+
.control-group
|
25
|
+
.controls
|
26
|
+
.actions
|
27
|
+
= f.submit class: 'btn btn-primary'
|
28
|
+
|
29
|
+
= link_to 'Back', pages_path
|
30
|
+
|