noodall-ui 0.4.1 → 0.4.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +0 -1
- data/.rvmrc +31 -0
- data/.travis.yml +2 -0
- data/Gemfile +3 -6
- data/app/controllers/noodall/nodes_controller.rb +1 -1
- data/config/application.rb +3 -3
- data/features/manage_content_tree.feature +13 -13
- data/features/step_definitions/cms_node_steps.rb +7 -7
- data/features/step_definitions/pubish_content_steps.rb +1 -1
- data/features/support/mm_factory_steps.rb +11 -9
- data/features/support/suppress.rb +5 -0
- data/lib/noodall/ui/version.rb +1 -1
- data/noodall-ui.gemspec +2 -2
- data/public/404.html +69 -19
- data/public/422.html +76 -0
- data/public/500.html +77 -0
- data/public/images/404-search.png +0 -0
- data/public/images/admin/edit.png +0 -0
- data/public/javascripts/admin/tiny_mce_config.js +2 -2
- data/public/stylesheets/admin/skin.css +1 -1
- metadata +64 -101
data/.gitignore
CHANGED
data/.rvmrc
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
ruby_string="ruby-1.9.2"
|
4
|
+
gemset_name="noodall-ui"
|
5
|
+
|
6
|
+
if rvm list strings | grep -q "${ruby_string}" ; then
|
7
|
+
|
8
|
+
# Load or create the specified environment
|
9
|
+
if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
|
10
|
+
&& -s "${rvm_path:-$HOME/.rvm}/environments/${ruby_string}@${gemset_name}" ]] ; then
|
11
|
+
\. "${rvm_path:-$HOME/.rvm}/environments/${ruby_string}@${gemset_name}"
|
12
|
+
else
|
13
|
+
rvm --create "${ruby_string}@${gemset_name}"
|
14
|
+
fi
|
15
|
+
|
16
|
+
(
|
17
|
+
# Ensure that Bundler is installed, install it if it is not.
|
18
|
+
if ! command -v bundle ; then
|
19
|
+
gem install bundler
|
20
|
+
fi
|
21
|
+
|
22
|
+
# Bundle while redcing excess noise.
|
23
|
+
bundle | grep -v 'Using' | grep -v 'complete' | sed '/^$/d'
|
24
|
+
)&
|
25
|
+
|
26
|
+
else
|
27
|
+
|
28
|
+
# Notify the user to install the desired interpreter before proceeding.
|
29
|
+
echo "${ruby_string} was not found, please run 'rvm install ${ruby_string}' and then cd back into the project directory."
|
30
|
+
|
31
|
+
fi
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
@@ -3,9 +3,6 @@ source 'http://gems.github.com'
|
|
3
3
|
|
4
4
|
gemspec
|
5
5
|
|
6
|
-
#temp
|
7
|
-
gem 'noodall-core', '~> 0.7.3'
|
8
|
-
|
9
6
|
# Required for running as demo rails app
|
10
7
|
gem 'rails', '~> 3.0.1'
|
11
8
|
gem 'rmagick', :require => 'RMagick'
|
@@ -25,7 +22,7 @@ group :development, :test do
|
|
25
22
|
gem 'jeweler', '~> 1.4.0'
|
26
23
|
gem 'factory_girl_rails'
|
27
24
|
gem "faker", "~> 0.3.1"
|
28
|
-
gem "
|
29
|
-
gem "
|
30
|
-
gem "
|
25
|
+
gem "bson_ext"
|
26
|
+
gem "ruby-debug19"
|
27
|
+
#gem "SystemTimer", ">= 1.2.0" # Ruby-1.8.7 only
|
31
28
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Noodall
|
2
2
|
class NodesController < ApplicationController
|
3
3
|
include Canable::Enforcers
|
4
|
-
rescue_from MongoMapper::DocumentNotFound, ActionView::MissingTemplate, :with => :render_404
|
4
|
+
rescue_from MongoMapper::DocumentNotFound, ActionView::MissingTemplate, BSON::InvalidStringEncoding, :with => :render_404
|
5
5
|
rescue_from Canable::Transgression, :with => :permission_denied
|
6
6
|
|
7
7
|
def show
|
data/config/application.rb
CHANGED
@@ -11,9 +11,9 @@ require "active_resource/railtie"
|
|
11
11
|
Bundler.require(:default, Rails.env) if defined?(Bundler)
|
12
12
|
|
13
13
|
require 'noodall-core'
|
14
|
-
require '
|
15
|
-
require '
|
16
|
-
require '
|
14
|
+
require 'noodall/permalinks'
|
15
|
+
require 'noodall/ui'
|
16
|
+
require 'noodall/canable'
|
17
17
|
|
18
18
|
module Noodall
|
19
19
|
class Application < Rails::Application
|
@@ -1,42 +1,42 @@
|
|
1
1
|
Feature: Manage Content Tree
|
2
2
|
In order to provide up to date information in a structured manner on the website a website editor will be able to manage the content in a tree structure
|
3
|
-
|
3
|
+
|
4
4
|
Background:
|
5
5
|
Given the website has been populated with content based on the site map
|
6
|
-
|
6
|
+
|
7
7
|
Scenario: Browse Content Tree
|
8
8
|
Given I am on the content admin page
|
9
9
|
Then I should see a list of the roots
|
10
10
|
When I click on a root
|
11
|
-
Then I should see a list the of the root
|
11
|
+
Then I should see a list the of the root's children
|
12
12
|
When I click on a child
|
13
|
-
Then I should see a list of the child
|
14
|
-
|
13
|
+
Then I should see a list of the child's children
|
14
|
+
|
15
15
|
Scenario: Create Root Content
|
16
16
|
Given I am on the content admin page
|
17
17
|
Then I should be able to create a new root
|
18
18
|
And I should see the root listed within the roots
|
19
|
-
|
19
|
+
|
20
20
|
Scenario: Create Sub Content
|
21
21
|
Given I am on the content admin page
|
22
22
|
When I click on a root
|
23
23
|
Then I should be able to create a new child
|
24
|
-
And I should see the child listed within the root
|
25
|
-
|
24
|
+
And I should see the child listed within the root's children
|
25
|
+
|
26
26
|
Scenario: Delete Content
|
27
27
|
Given I am on the content admin page
|
28
28
|
Then I should be able to delete content
|
29
|
-
And the content and all of it
|
30
|
-
|
29
|
+
And the content and all of it's sub content will be removed from the website
|
30
|
+
|
31
31
|
Scenario: Reorder Children
|
32
32
|
Given I am on the content admin page
|
33
33
|
When I click on a root
|
34
|
-
Then I should be able change the order of the root
|
34
|
+
Then I should be able change the order of the root's children
|
35
35
|
|
36
36
|
@javascript
|
37
37
|
Scenario: Move Child to another Parent
|
38
38
|
Given I am on the content admin page
|
39
39
|
When I click on a root
|
40
40
|
Then I should be able to move a child content to another parent
|
41
|
-
And I should see the child listed within the other parent
|
42
|
-
|
41
|
+
And I should see the child listed within the other parent's children
|
42
|
+
|
@@ -8,7 +8,7 @@ When /^I click on a root$/ do
|
|
8
8
|
within("tbody tr:last") { click_link "Children" }
|
9
9
|
end
|
10
10
|
|
11
|
-
Then /^I should see a list the of the root
|
11
|
+
Then /^I should see a list the of the root's children$/ do
|
12
12
|
@_page.children.each do |child|
|
13
13
|
page.should have_content(child.title)
|
14
14
|
end
|
@@ -19,7 +19,7 @@ When /^I click on a child$/ do
|
|
19
19
|
within(:css, "tbody tr:first") { click_link "Children" }
|
20
20
|
end
|
21
21
|
|
22
|
-
Then /^I should see a list of the child
|
22
|
+
Then /^I should see a list of the child's children$/ do
|
23
23
|
@_child.children.each do |gchild|
|
24
24
|
page.should have_content(gchild.title)
|
25
25
|
end
|
@@ -50,7 +50,7 @@ Then /^I should be able to create a new child$/ do
|
|
50
50
|
page.should have_content(' was successfully created.')
|
51
51
|
end
|
52
52
|
|
53
|
-
Then /^I should see the child listed within the root
|
53
|
+
Then /^I should see the child listed within the root's children$/ do
|
54
54
|
visit noodall_admin_node_nodes_path(@_page)
|
55
55
|
page.should have_content('New Child')
|
56
56
|
end
|
@@ -63,10 +63,10 @@ Then /^I should be able to delete content$/ do
|
|
63
63
|
page.should have_content("deleted")
|
64
64
|
end
|
65
65
|
|
66
|
-
Then /^the content and all of it
|
66
|
+
Then /^the content and all of it's sub content will be removed from the website$/ do
|
67
67
|
|
68
68
|
visit node_path(@_deleted_node)
|
69
|
-
page.should have_content("The page you were looking for doesn't exist
|
69
|
+
page.should have_content("The page you were looking for doesn't exist")
|
70
70
|
|
71
71
|
@_deleted_node_children.each do |child|
|
72
72
|
lambda { visit node_path(child) }.should raise_error(MongoMapper::DocumentNotFound)
|
@@ -84,14 +84,14 @@ Then /^I should be able to move a child content to another parent$/ do
|
|
84
84
|
click_button 'Publish'
|
85
85
|
end
|
86
86
|
|
87
|
-
Then /^I should see the child listed within the other parent
|
87
|
+
Then /^I should see the child listed within the other parent's children$/ do
|
88
88
|
visit noodall_admin_node_nodes_path(@_new_parent)
|
89
89
|
within('tbody') do
|
90
90
|
page.should have_content(@_child.title)
|
91
91
|
end
|
92
92
|
end
|
93
93
|
|
94
|
-
Then /^I should be able change the order of the root
|
94
|
+
Then /^I should be able change the order of the root's children$/ do
|
95
95
|
table = table(tableish("table tr", 'td, th'))
|
96
96
|
title = table.hashes[2]['Title'] # 2 as zero index
|
97
97
|
within(:css, 'table tbody tr:nth(3)') { click_link "up" }
|
@@ -18,7 +18,7 @@ Then /^the content should (not |)be visible on the website$/ do |is_not|
|
|
18
18
|
page.should within('#content h1') { have_content(@_content.title) }
|
19
19
|
else
|
20
20
|
visit node_path(@_content)
|
21
|
-
page.should have_content("The page you were looking for doesn't exist
|
21
|
+
page.should have_content("The page you were looking for doesn't exist")
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
@@ -1,13 +1,15 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
factory.build_class.keys
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
FactoryGirl.factories.each do |factory|
|
2
|
+
factory.human_names.each do |human_name|
|
3
|
+
if factory.build_class.respond_to?(:keys)
|
4
|
+
factory.build_class.keys.each_key do |key|
|
5
|
+
human_column_name = key.downcase.gsub('_', ' ')
|
6
|
+
Given /^an? #{human_name} exists with an? #{human_column_name} of "([^"]*)"$/i do |value|
|
7
|
+
Factory(factory.name, key => value)
|
8
|
+
end
|
8
9
|
|
9
|
-
|
10
|
-
|
10
|
+
Given /^(\d+) #{human_name.pluralize} exist with an? #{human_column_name} of "([^"]*)"$/i do |count, value|
|
11
|
+
count.to_i.times { Factory(factory.name, key => value) }
|
12
|
+
end
|
11
13
|
end
|
12
14
|
end
|
13
15
|
end
|
@@ -0,0 +1,5 @@
|
|
1
|
+
# Stop endless errors like
|
2
|
+
# http://stackoverflow.com/questions/3622394/ruby-1-9-2-strange-warning-when-running-cucumber-specs/3692773#3692773
|
3
|
+
# ~/.rvm/gems/ruby-1.9.2-p0@global/gems/rack-1.2.1/lib/rack/utils.rb:16:
|
4
|
+
# warning: regexp match /.../n against to UTF-8 string
|
5
|
+
$VERBOSE = nil
|
data/lib/noodall/ui/version.rb
CHANGED
data/noodall-ui.gemspec
CHANGED
@@ -15,8 +15,8 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.required_rubygems_version = ">= 1.3.6"
|
16
16
|
|
17
17
|
s.add_dependency 'noodall-core', ">= 0.7.2"
|
18
|
-
s.add_dependency 'thoughtbot-sortable_table', "
|
19
|
-
s.add_dependency 'will_paginate', "~> 3.0
|
18
|
+
s.add_dependency 'thoughtbot-sortable_table', ">= 0.0.6"
|
19
|
+
s.add_dependency 'will_paginate', "~> 3.0"
|
20
20
|
s.add_dependency 'dynamic_form', ">= 0"
|
21
21
|
|
22
22
|
s.add_development_dependency "bundler", ">= 1.0.0"
|
data/public/404.html
CHANGED
@@ -1,27 +1,77 @@
|
|
1
|
-
<!
|
1
|
+
<!doctype html>
|
2
2
|
<html>
|
3
3
|
<head>
|
4
|
+
<meta charset="utf-8">
|
4
5
|
<title>The page you were looking for doesn't exist (404)</title>
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
6
|
+
<style>
|
7
|
+
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video,applet,a,acronym,big,font,strike,tt{border:0;outline:0;font-weight:inherit;font-style:inherit;vertical-align:baseline;font-family:Arial, "Helvetica Neue", Helvetica, sans-serif;font-size:12px;margin:0;padding:0}
|
8
|
+
|
9
|
+
/*STYLE*/
|
10
|
+
article{width:940px;position:relative;margin:0 auto}
|
11
|
+
p.logo{position:absolute;top:34px;left:0;font-size:48px}
|
12
|
+
#main-content{border-bottom:solid 1px;margin:0 0 20px;padding:298px 0 20px 104px}
|
13
|
+
h1{display:block;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;width:93px;height:45px;font-size:32px;text-align:center;float:left;border:solid 1px;margin:0 20px 0 0;padding:8px 0 0}
|
14
|
+
p.heading{font-size:32px;line-height:1;margin-bottom:9px}
|
15
|
+
p.desc{font-size:12px}
|
16
|
+
p.email-msg{margin-left:115px;margin-top:5px}
|
17
|
+
#supporting-content{padding:0 219px}
|
18
|
+
#supporting-content p,form{float:left;margin-right:20px}
|
19
|
+
#supporting-content p a{display:inline-block;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;line-height:1;text-decoration:none;margin:0 16px 0 0;padding:8px 13px}
|
20
|
+
form{display:inline-block;position:relative}
|
21
|
+
form input[type=text]{display:inline-block;height:28px;vertical-align:center;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;border:solid 1px;width:200px;padding:0 10px}
|
22
|
+
form input[type=submit]{border:0 none;display:block;font-size:0;height:26px;position:absolute;right:10px;top:2px;width:14px;background-image:url(/images/404-search.png);cursor:pointer;color:#fff!important}
|
23
|
+
|
24
|
+
/*LOGO*/
|
25
|
+
p.logo{
|
26
|
+
overflow: hidden;
|
27
|
+
text-align: left;
|
28
|
+
display: block;
|
29
|
+
line-height:0;
|
30
|
+
text-indent: -1000em;
|
31
|
+
height: 116px;
|
32
|
+
width: 260px;
|
33
|
+
background: url(/images/logo.gif) no-repeat 0 0;
|
14
34
|
}
|
15
|
-
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
16
|
-
</style>
|
17
|
-
</head>
|
18
35
|
|
36
|
+
/*COLOUR*/
|
37
|
+
|
38
|
+
/*Background*/
|
39
|
+
body{background: #ffffff}
|
40
|
+
|
41
|
+
/*Body*/
|
42
|
+
body, #main-content a:hover {color: #686869;}
|
43
|
+
form input[type='submit']:hover{background-color: #686869;}
|
44
|
+
|
45
|
+
/*Main*/
|
46
|
+
#main-content a{color: #00457C}
|
47
|
+
#supporting-content a{background-color: #00457C; color: #fff}
|
48
|
+
form input[type='submit']{background-color: #00457C;color: #fff;}
|
49
|
+
|
50
|
+
/*Secondary*/
|
51
|
+
form input[type='text'],#main-content,h1{border-color: #63CEEA;}
|
52
|
+
h1, #supporting-content a:hover{color:#63CEEA;}
|
53
|
+
form input[type='submit']:hover{background-color:#63CEEA;}
|
54
|
+
|
55
|
+
</style>
|
56
|
+
</head>
|
19
57
|
<body>
|
20
|
-
|
21
|
-
|
22
|
-
<
|
23
|
-
|
24
|
-
|
58
|
+
<article>
|
59
|
+
<p class="logo">SITE TITLE</p>
|
60
|
+
<div id="main-content">
|
61
|
+
<h1>404</h1>
|
62
|
+
<p class="heading">The page you were looking for doesn’t exist</p>
|
63
|
+
<p class="desc">You may have mistyped the address or the page may have moved.</p>
|
64
|
+
</div>
|
65
|
+
<div id="supporting-content">
|
66
|
+
<p>
|
67
|
+
<a href="/" title="Return to the home page">Return to the home page</a>
|
68
|
+
or
|
69
|
+
</p>
|
70
|
+
<form class="search" method="get" action="/search" accept-charset="UTF-8">
|
71
|
+
<input id="q" class="search" type="text" placeholder="Search Site" title="Search" name="q">
|
72
|
+
<input type="submit" value="Search" name="commit">
|
73
|
+
</form>
|
74
|
+
</div>
|
75
|
+
</article>
|
25
76
|
</body>
|
26
77
|
</html>
|
27
|
-
|
data/public/422.html
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title>The change you wanted was rejected (422)</title>
|
6
|
+
<style> html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video,applet,a,acronym,big,font,strike,tt{border:0;outline:0;font-weight:inherit;font-style:inherit;vertical-align:baseline;font-family:Arial, "Helvetica Neue", Helvetica, sans-serif;font-size:12px;margin:0;padding:0}
|
7
|
+
|
8
|
+
/*STYLE*/
|
9
|
+
article{width:940px;position:relative;margin:0 auto}
|
10
|
+
p.logo{position:absolute;top:34px;left:0;font-size:48px}
|
11
|
+
#main-content{border-bottom:solid 1px;margin:0 0 20px;padding:298px 0 20px 104px}
|
12
|
+
h1{display:block;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;width:93px;height:45px;font-size:32px;text-align:center;float:left;border:solid 1px;margin:0 20px 0 0;padding:8px 0 0}
|
13
|
+
p.heading{font-size:32px;line-height:1;margin-bottom:9px}
|
14
|
+
p.desc{font-size:12px}
|
15
|
+
p.email-msg{margin-left:115px;margin-top:5px}
|
16
|
+
#supporting-content{padding:0 219px}
|
17
|
+
#supporting-content p,form{float:left;margin-right:20px}
|
18
|
+
#supporting-content p a{display:inline-block;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;line-height:1;text-decoration:none;margin:0 16px 0 0;padding:8px 13px}
|
19
|
+
form{display:inline-block;position:relative}
|
20
|
+
form input[type=text]{display:inline-block;height:28px;vertical-align:center;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;border:solid 1px;width:200px;padding:0 10px}
|
21
|
+
form input[type=submit]{border:0 none;display:block;font-size:0;height:26px;position:absolute;right:10px;top:2px;width:14px;background-image:url(images/404-search.png);cursor:pointer;color:#fff!important}
|
22
|
+
|
23
|
+
/*LOGO*/
|
24
|
+
p.logo{
|
25
|
+
overflow: hidden;
|
26
|
+
text-align: left;
|
27
|
+
display: block;
|
28
|
+
line-height:0;
|
29
|
+
text-indent: -1000em;
|
30
|
+
height: 116px;
|
31
|
+
width: 260px;
|
32
|
+
background: url(/images/logo.gif) no-repeat 0 0;
|
33
|
+
}
|
34
|
+
|
35
|
+
/*COLOUR*/
|
36
|
+
|
37
|
+
/*Background*/
|
38
|
+
body{background: #ffffff}
|
39
|
+
|
40
|
+
/*Body*/
|
41
|
+
body, #main-content a:hover {color: #686869;}
|
42
|
+
form input[type='submit']:hover{background-color: #686869;}
|
43
|
+
|
44
|
+
/*Main*/
|
45
|
+
#main-content a{color: #00457C}
|
46
|
+
#supporting-content a{background-color: #00457C; color: #fff}
|
47
|
+
form input[type='submit']{background-color: #00457C;color: #fff;}
|
48
|
+
|
49
|
+
/*Secondary*/
|
50
|
+
form input[type='text'],#main-content,h1{border-color: #63CEEA;}
|
51
|
+
h1, #supporting-content a:hover{color:#63CEEA;}
|
52
|
+
form input[type='submit']:hover{background-color:#63CEEA;}
|
53
|
+
|
54
|
+
</style>
|
55
|
+
</head>
|
56
|
+
<body>
|
57
|
+
<article>
|
58
|
+
<p class="logo">SITE TITLE</p>
|
59
|
+
<div id="main-content">
|
60
|
+
<h1>422</h1>
|
61
|
+
<p class="heading">The change you wanted was rejected.</p>
|
62
|
+
<p class="desc">Maybe you tried to change something you didn't have access to.</p>
|
63
|
+
</div>
|
64
|
+
<div id="supporting-content">
|
65
|
+
<p>
|
66
|
+
<a href="/" title="Return to the home page">Return to the home page</a>
|
67
|
+
or
|
68
|
+
</p>
|
69
|
+
<form class="search" method="get" action="/search" accept-charset="UTF-8">
|
70
|
+
<input id="q" class="search" type="text" placeholder="Search Site" title="Search" name="q">
|
71
|
+
<input type="submit" value="Search" name="commit">
|
72
|
+
</form>
|
73
|
+
</div>
|
74
|
+
</article>
|
75
|
+
</body>
|
76
|
+
</html>
|
data/public/500.html
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title>We're sorry, but something went wrong (500)</title>
|
6
|
+
<style>
|
7
|
+
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video,applet,a,acronym,big,font,strike,tt{border:0;outline:0;font-weight:inherit;font-style:inherit;vertical-align:baseline;font-family:Arial, "Helvetica Neue", Helvetica, sans-serif;font-size:12px;margin:0;padding:0}
|
8
|
+
|
9
|
+
/*STYLE*/
|
10
|
+
article{width:940px;position:relative;margin:0 auto}
|
11
|
+
p.logo{position:absolute;top:34px;left:0;font-size:48px}
|
12
|
+
#main-content{border-bottom:solid 1px;margin:0 0 20px;padding:298px 0 20px 104px}
|
13
|
+
h1{display:block;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;width:93px;height:45px;font-size:32px;text-align:center;float:left;border:solid 1px;margin:0 20px 0 0;padding:8px 0 0}
|
14
|
+
p.heading{font-size:32px;line-height:1;margin-bottom:9px}
|
15
|
+
p.desc{font-size:12px}
|
16
|
+
p.email-msg{margin-left:115px;margin-top:5px}
|
17
|
+
#supporting-content{padding:0 219px}
|
18
|
+
#supporting-content p,form{float:left;margin-right:20px}
|
19
|
+
#supporting-content p a{display:inline-block;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;line-height:1;text-decoration:none;margin:0 16px 0 0;padding:8px 13px}
|
20
|
+
form{display:inline-block;position:relative}
|
21
|
+
form input[type=text]{display:inline-block;height:28px;vertical-align:center;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;border:solid 1px;width:200px;padding:0 10px}
|
22
|
+
form input[type=submit]{border:0 none;display:block;font-size:0;height:26px;position:absolute;right:10px;top:2px;width:14px;background-image:url(images/404-search.png);cursor:pointer;color:#fff!important}
|
23
|
+
|
24
|
+
/*LOGO*/
|
25
|
+
/* p.logo{
|
26
|
+
overflow: hidden;
|
27
|
+
text-align: left;
|
28
|
+
display: block;
|
29
|
+
line-height:0;
|
30
|
+
text-indent: -1000em;
|
31
|
+
height: 116px;
|
32
|
+
width: 260px;
|
33
|
+
background: url(/images/logo.gif) no-repeat 0 0;
|
34
|
+
}*/
|
35
|
+
|
36
|
+
/*COLOUR*/
|
37
|
+
|
38
|
+
/*Background*/
|
39
|
+
body{background: #ffffff}
|
40
|
+
|
41
|
+
/*Body*/
|
42
|
+
body, #main-content a:hover {color: #505050;}
|
43
|
+
form input[type='submit']:hover{background-color: #505050;}
|
44
|
+
|
45
|
+
/*Main*/
|
46
|
+
#main-content a{color: #FB9F00}
|
47
|
+
#supporting-content a{background-color: #FB9F00; color: #fff}
|
48
|
+
form input[type='submit']{background-color: #FB9F00;color: #fff;}
|
49
|
+
|
50
|
+
/*Secondary*/
|
51
|
+
form input[type='text'],#main-content,h1{border-color: #4F4F4F;}
|
52
|
+
h1, #supporting-content a:hover{color:#4F4F4F;}
|
53
|
+
form input[type='submit']:hover{background-color:#4F4F4F;}
|
54
|
+
|
55
|
+
</style>
|
56
|
+
</head>
|
57
|
+
<body>
|
58
|
+
<article>
|
59
|
+
<p class="logo">SITE TITLE</p>
|
60
|
+
<div id="main-content">
|
61
|
+
<h1>500</h1>
|
62
|
+
<p class="heading">We're sorry, but something went wrong.</p>
|
63
|
+
<p class="desc">We've been notified about this issue and we'll take a look at it shortly</p>
|
64
|
+
</div>
|
65
|
+
<div id="supporting-content">
|
66
|
+
<p>
|
67
|
+
<a href="/" title="Return to the home page">Return to the home page</a>
|
68
|
+
or
|
69
|
+
</p>
|
70
|
+
<form class="search" method="get" action="/search" accept-charset="UTF-8">
|
71
|
+
<input id="q" class="search" type="text" placeholder="Search Site" title="Search" name="q">
|
72
|
+
<input type="submit" value="Search" name="commit">
|
73
|
+
</form>
|
74
|
+
</div>
|
75
|
+
</article>
|
76
|
+
</body>
|
77
|
+
</html>
|
Binary file
|
Binary file
|
@@ -25,9 +25,9 @@ lite_tiny_mce_config = {
|
|
25
25
|
|
26
26
|
paste_auto_cleanup_on_paste : true,
|
27
27
|
paste_strip_class_attributes : "all",
|
28
|
-
|
28
|
+
extended_valid_elements : "iframe[src|width|height|name|align]",
|
29
|
+
paste_remove_spans : true,
|
29
30
|
paste_remove_styles : true
|
30
|
-
|
31
31
|
};
|
32
32
|
|
33
33
|
tiny_mce_config = {};
|
metadata
CHANGED
@@ -1,113 +1,82 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: noodall-ui
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 4
|
9
|
-
- 1
|
10
|
-
version: 0.4.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.4
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Steve England
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
12
|
+
date: 2011-09-05 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: noodall-core
|
16
|
+
requirement: &10157760 !ruby/object:Gem::Requirement
|
23
17
|
none: false
|
24
|
-
requirements:
|
25
|
-
- -
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
hash: 7
|
28
|
-
segments:
|
29
|
-
- 0
|
30
|
-
- 7
|
31
|
-
- 2
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
32
21
|
version: 0.7.2
|
33
22
|
type: :runtime
|
34
|
-
name: noodall-core
|
35
23
|
prerelease: false
|
36
|
-
version_requirements: *
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
|
24
|
+
version_requirements: *10157760
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: thoughtbot-sortable_table
|
27
|
+
requirement: &10150740 !ruby/object:Gem::Requirement
|
39
28
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
hash: 19
|
44
|
-
segments:
|
45
|
-
- 0
|
46
|
-
- 0
|
47
|
-
- 6
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
48
32
|
version: 0.0.6
|
49
33
|
type: :runtime
|
50
|
-
name: thoughtbot-sortable_table
|
51
34
|
prerelease: false
|
52
|
-
version_requirements: *
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
|
35
|
+
version_requirements: *10150740
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: will_paginate
|
38
|
+
requirement: &10149800 !ruby/object:Gem::Requirement
|
55
39
|
none: false
|
56
|
-
requirements:
|
40
|
+
requirements:
|
57
41
|
- - ~>
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
|
60
|
-
segments:
|
61
|
-
- 3
|
62
|
-
- 0
|
63
|
-
- pre2
|
64
|
-
version: 3.0.pre2
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '3.0'
|
65
44
|
type: :runtime
|
66
|
-
name: will_paginate
|
67
45
|
prerelease: false
|
68
|
-
version_requirements: *
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
|
46
|
+
version_requirements: *10149800
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: dynamic_form
|
49
|
+
requirement: &10148960 !ruby/object:Gem::Requirement
|
71
50
|
none: false
|
72
|
-
requirements:
|
73
|
-
- -
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
|
76
|
-
segments:
|
77
|
-
- 0
|
78
|
-
version: "0"
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
79
55
|
type: :runtime
|
80
|
-
name: dynamic_form
|
81
56
|
prerelease: false
|
82
|
-
version_requirements: *
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
|
57
|
+
version_requirements: *10148960
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: bundler
|
60
|
+
requirement: &10147600 !ruby/object:Gem::Requirement
|
85
61
|
none: false
|
86
|
-
requirements:
|
87
|
-
- -
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
hash: 23
|
90
|
-
segments:
|
91
|
-
- 1
|
92
|
-
- 0
|
93
|
-
- 0
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
94
65
|
version: 1.0.0
|
95
66
|
type: :development
|
96
|
-
name: bundler
|
97
67
|
prerelease: false
|
98
|
-
version_requirements: *
|
68
|
+
version_requirements: *10147600
|
99
69
|
description: Noodall Rails User Interface Engine. Requires Noodall Core
|
100
|
-
email:
|
70
|
+
email:
|
101
71
|
- steve@wearebeef.co.uk
|
102
72
|
executables: []
|
103
|
-
|
104
73
|
extensions: []
|
105
|
-
|
106
74
|
extra_rdoc_files: []
|
107
|
-
|
108
|
-
files:
|
75
|
+
files:
|
109
76
|
- .document
|
110
77
|
- .gitignore
|
78
|
+
- .rvmrc
|
79
|
+
- .travis.yml
|
111
80
|
- Gemfile
|
112
81
|
- LICENSE
|
113
82
|
- README.rdoc
|
@@ -233,6 +202,7 @@ files:
|
|
233
202
|
- features/support/mm_factory_steps.rb
|
234
203
|
- features/support/paths.rb
|
235
204
|
- features/support/sevenfeatures.rb
|
205
|
+
- features/support/suppress.rb
|
236
206
|
- features/support/user_reset.rb
|
237
207
|
- lib/generators/noodall/component/USAGE
|
238
208
|
- lib/generators/noodall/component/component_generator.rb
|
@@ -258,8 +228,11 @@ files:
|
|
258
228
|
- log/.gitignore
|
259
229
|
- noodall-ui.gemspec
|
260
230
|
- public/404.html
|
231
|
+
- public/422.html
|
232
|
+
- public/500.html
|
261
233
|
- public/favicon.ico
|
262
234
|
- public/features.html
|
235
|
+
- public/images/404-search.png
|
263
236
|
- public/images/admin/add-small.png
|
264
237
|
- public/images/admin/add.png
|
265
238
|
- public/images/admin/add_file.gif
|
@@ -670,41 +643,31 @@ files:
|
|
670
643
|
- spec/files/get_video.flv
|
671
644
|
- spec/files/test.pdf
|
672
645
|
- tmp/.gitignore
|
673
|
-
has_rdoc: true
|
674
646
|
homepage: http://github.com/beef/noodall-ui
|
675
647
|
licenses: []
|
676
|
-
|
677
648
|
post_install_message:
|
678
649
|
rdoc_options: []
|
679
|
-
|
680
|
-
require_paths:
|
650
|
+
require_paths:
|
681
651
|
- lib
|
682
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
652
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
683
653
|
none: false
|
684
|
-
requirements:
|
685
|
-
- -
|
686
|
-
- !ruby/object:Gem::Version
|
687
|
-
|
688
|
-
segments:
|
654
|
+
requirements:
|
655
|
+
- - ! '>='
|
656
|
+
- !ruby/object:Gem::Version
|
657
|
+
version: '0'
|
658
|
+
segments:
|
689
659
|
- 0
|
690
|
-
|
691
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
660
|
+
hash: -366944267144973308
|
661
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
692
662
|
none: false
|
693
|
-
requirements:
|
694
|
-
- -
|
695
|
-
- !ruby/object:Gem::Version
|
696
|
-
hash: 23
|
697
|
-
segments:
|
698
|
-
- 1
|
699
|
-
- 3
|
700
|
-
- 6
|
663
|
+
requirements:
|
664
|
+
- - ! '>='
|
665
|
+
- !ruby/object:Gem::Version
|
701
666
|
version: 1.3.6
|
702
667
|
requirements: []
|
703
|
-
|
704
668
|
rubyforge_project:
|
705
|
-
rubygems_version: 1.
|
669
|
+
rubygems_version: 1.8.6
|
706
670
|
signing_key:
|
707
671
|
specification_version: 3
|
708
672
|
summary: Noodall Rails User Interface
|
709
673
|
test_files: []
|
710
|
-
|