noodall-components-quicklinks 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/MIT-LICENSE +20 -0
- data/README.markdown +25 -0
- data/Rakefile +37 -0
- data/app/models/quick_links.rb +12 -0
- data/app/views/admin/components/_quick_link.html.erb +16 -0
- data/app/views/admin/components/_quick_links.html.erb +74 -0
- data/app/views/components/_quick_links.html.erb +8 -0
- data/config/routes.rb +2 -0
- data/lib/noodall-components-quicklinks.rb +4 -0
- data/lib/noodall-components-quicklinks/engine.rb +4 -0
- data/lib/noodall-components-quicklinks/version.rb +3 -0
- data/lib/tasks/cucumber.rake +65 -0
- data/lib/tasks/noodall-components-quicklinks_tasks.rake +4 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +9 -0
- data/test/dummy/app/assets/stylesheets/application.css +7 -0
- data/test/dummy/app/controllers/application_controller.rb +26 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/models/content_page.rb +7 -0
- data/test/dummy/app/models/user.rb +20 -0
- data/test/dummy/app/views/admin/nodes/_content_page.html.erb +45 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/app/views/nodes/content_page.html.erb +5 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +51 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +30 -0
- data/test/dummy/config/environments/production.rb +60 -0
- data/test/dummy/config/environments/test.rb +39 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +10 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/noodall.rb +1 -0
- data/test/dummy/config/initializers/noodall_dragonfly.rb +8 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +10 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/mongo.yml +6 -0
- data/test/dummy/config/routes.rb +3 -0
- data/test/dummy/config/sitemap.yml +4 -0
- data/test/dummy/log/development.log +36926 -0
- data/test/dummy/log/test.log +6843 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +26 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/tmp/cache/762/0A0/global_update_time +0 -0
- data/test/dummy/tmp/cache/assets/BDB/730/sprockets%2F42302c469e414f11d32831083050f625 +0 -0
- data/test/dummy/tmp/cache/assets/C0A/4E0/sprockets%2F0974de93386714398e24619189be4165 +0 -0
- data/test/dummy/tmp/cache/assets/C24/490/sprockets%2F31e47216e2978318596280d1735a71da +0 -0
- data/test/dummy/tmp/cache/assets/C47/2F0/sprockets%2F0aa3397009980a746c861fa09197a120 +0 -0
- data/test/dummy/tmp/cache/assets/C50/C00/sprockets%2Ff8180e771e03c0e7c8417019510e8158 +0 -0
- data/test/dummy/tmp/cache/assets/C58/3C0/sprockets%2F04526b4c79a137347df95907913352fc +0 -0
- data/test/dummy/tmp/cache/assets/C6D/FA0/sprockets%2Fc129e1c12a27955627516aa05ee24421 +0 -0
- data/test/dummy/tmp/cache/assets/C75/360/sprockets%2Fa4e865b0cd1f247417a474433128b642 +0 -0
- data/test/dummy/tmp/cache/assets/C93/9F0/sprockets%2F9972e15dd9b35575dea4822d94546137 +0 -0
- data/test/dummy/tmp/cache/assets/CA3/F00/sprockets%2F57e021729b54afb09843b2d510e161d6 +0 -0
- data/test/dummy/tmp/cache/assets/CA7/050/sprockets%2Fa17844d675b8bdf336d6340c70510e13 +0 -0
- data/test/dummy/tmp/cache/assets/CB2/9E0/sprockets%2F06f704be306a8138284844ffb4c484e2 +0 -0
- data/test/dummy/tmp/cache/assets/CBF/E40/sprockets%2F58b8c4f08bc1119d378e748a488084f1 +0 -0
- data/test/dummy/tmp/cache/assets/CD3/740/sprockets%2F44dd0778dd005d4032b00ffb27609f90 +0 -0
- data/test/dummy/tmp/cache/assets/CD5/3C0/sprockets%2Fc1c02a0c182a494b8d69a0832be87635 +0 -0
- data/test/dummy/tmp/cache/assets/CD7/CE0/sprockets%2F56287e2301a4078c627f1ffc1fca1435 +0 -0
- data/test/dummy/tmp/cache/assets/CDA/BB0/sprockets%2F364b0829b036d614e6b4d0f2af5e6617 +0 -0
- data/test/dummy/tmp/cache/assets/CE0/050/sprockets%2Ff0e450569b57c831b405b59d40d2e4f7 +0 -0
- data/test/dummy/tmp/cache/assets/CE1/1B0/sprockets%2Fc47f25a29c450663d2f875fa55192d1a +0 -0
- data/test/dummy/tmp/cache/assets/CE1/B10/sprockets%2Fd0deaabe93a9713078185919a14971c4 +0 -0
- data/test/dummy/tmp/cache/assets/CE3/0C0/sprockets%2F554e639e0b11692b3ac9f4d75ec45074 +0 -0
- data/test/dummy/tmp/cache/assets/CE3/140/sprockets%2Fb9f4df4bf0902126368c4db18572941e +0 -0
- data/test/dummy/tmp/cache/assets/CE3/F70/sprockets%2F723a8f3f14f56f484192f311ce41fb74 +0 -0
- data/test/dummy/tmp/cache/assets/CE4/350/sprockets%2Fdc838922e8a76cb616b64d1db1347095 +0 -0
- data/test/dummy/tmp/cache/assets/CE8/4F0/sprockets%2F1aa9cfd9a44921a35929d164698c81e1 +0 -0
- data/test/dummy/tmp/cache/assets/CE9/080/sprockets%2F8a4674dc6902ae531c9a893d86b528a3 +0 -0
- data/test/dummy/tmp/cache/assets/CEA/F50/sprockets%2F583e82343b4cb6bc8d2d8841065f577d +0 -0
- data/test/dummy/tmp/cache/assets/CEE/690/sprockets%2F4fc598c469c52aa615f424106c889ce6 +0 -0
- data/test/dummy/tmp/cache/assets/CEE/910/sprockets%2F69624fd362b563812683aff86e1b0f7f +0 -0
- data/test/dummy/tmp/cache/assets/CEF/F30/sprockets%2F2c594c8243e7d10ac1a77da57f885689 +0 -0
- data/test/dummy/tmp/cache/assets/CF3/170/sprockets%2F8a3168928e304cd8d17d64cee84872a9 +0 -0
- data/test/dummy/tmp/cache/assets/CF5/300/sprockets%2F518921a3f7f5ef7d3675f27e9b6804e2 +0 -0
- data/test/dummy/tmp/cache/assets/CF6/7D0/sprockets%2F869b876ec443bc8b7665e06075c15f6f +0 -0
- data/test/dummy/tmp/cache/assets/CFB/880/sprockets%2Fb5aed2587586d2838f33fa89e72354e9 +0 -0
- data/test/dummy/tmp/cache/assets/D01/6E0/sprockets%2Fb29a4d654f7333021fafc2f7c1602e43 +0 -0
- data/test/dummy/tmp/cache/assets/D06/6C0/sprockets%2F41975fc3c747efd27599b8528985bff3 +0 -0
- data/test/dummy/tmp/cache/assets/D06/E00/sprockets%2Faa090e5947d2832516a91fc0a260d7ee +0 -0
- data/test/dummy/tmp/cache/assets/D0B/5C0/sprockets%2Fef5056405e4a1b4c2a498ef46503d6d4 +0 -0
- data/test/dummy/tmp/cache/assets/D0E/6A0/sprockets%2F1a4c24e3ee67c9f7d0e4c409a9842132 +0 -0
- data/test/dummy/tmp/cache/assets/D0E/B40/sprockets%2F8ce130d13f8ffa2c87f9a37340367a32 +0 -0
- data/test/dummy/tmp/cache/assets/D14/E20/sprockets%2F4cc06e9ea8d942a3e6455c63b6529b60 +0 -0
- data/test/dummy/tmp/cache/assets/D19/180/sprockets%2F8368dd5d56a89e5c2ba6b149f47162d0 +0 -0
- data/test/dummy/tmp/cache/assets/D1B/5E0/sprockets%2F847975b829a3c57d49ac2af15630bc7f +0 -0
- data/test/dummy/tmp/cache/assets/D1D/190/sprockets%2Fcd7496d67519f66fc2110e0ff02ff576 +0 -0
- data/test/dummy/tmp/cache/assets/D1D/D50/sprockets%2F59a54acbd9b3698c4d8509267df235a5 +0 -0
- data/test/dummy/tmp/cache/assets/D1D/F20/sprockets%2Ff14865fb1844c51b2c5c694d8bf845a9 +0 -0
- data/test/dummy/tmp/cache/assets/D1E/4E0/sprockets%2Fe05ddba37c95c4193071ad99959c990c +0 -0
- data/test/dummy/tmp/cache/assets/D1F/ED0/sprockets%2F7bf5708c37337d8ed2e9f902b75d281c +0 -0
- data/test/dummy/tmp/cache/assets/D20/4F0/sprockets%2F4e3102eb4b209ab5e0a39a6b1ae70372 +0 -0
- data/test/dummy/tmp/cache/assets/D24/7E0/sprockets%2F29888ca6fd8523f952a91c53c25be4f8 +0 -0
- data/test/dummy/tmp/cache/assets/D25/0D0/sprockets%2F989190836cc83dc852239f5e4fb34ccf +0 -0
- data/test/dummy/tmp/cache/assets/D27/430/sprockets%2F097cdcc13d425c40c0304b354adcc764 +0 -0
- data/test/dummy/tmp/cache/assets/D27/D30/sprockets%2F797fd979a290d04424fc8797fe15b2ae +0 -0
- data/test/dummy/tmp/cache/assets/D2F/220/sprockets%2Fa88309b0e0a0efc17d52025d0783ad8c +0 -0
- data/test/dummy/tmp/cache/assets/D30/970/sprockets%2F6e1a31c6f891052aced9a031067d1dd6 +0 -0
- data/test/dummy/tmp/cache/assets/D30/C50/sprockets%2F028ce0a5e2752cfc5a05a528704d2f8a +0 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D34/590/sprockets%2Fd9c11126253c3463843ceda17bcd57eb +0 -0
- data/test/dummy/tmp/cache/assets/D38/4C0/sprockets%2Ff7d022d9a495cc0a6507e0cd423e25d9 +0 -0
- data/test/dummy/tmp/cache/assets/D39/C90/sprockets%2F5640df894de4a338540aeab08a546bc4 +0 -0
- data/test/dummy/tmp/cache/assets/D3A/3D0/sprockets%2Fc2d1026295148aede356b66ed4d822eb +0 -0
- data/test/dummy/tmp/cache/assets/D3A/A40/sprockets%2F56d6dab73b03ab9fe41f8c4795011b63 +0 -0
- data/test/dummy/tmp/cache/assets/D3B/CF0/sprockets%2F69c57749ad14994a13dfa4e32eb0a2a4 +0 -0
- data/test/dummy/tmp/cache/assets/D41/6B0/sprockets%2Ff192d18331c21752f5d7ec7d6f1ed4f2 +0 -0
- data/test/dummy/tmp/cache/assets/D42/D40/sprockets%2Fe82c3d72857f532f0f1fe2f9405ae21e +0 -0
- data/test/dummy/tmp/cache/assets/D43/510/sprockets%2F224ef2d9dd38f84752cd40158c425eea +0 -0
- data/test/dummy/tmp/cache/assets/D44/670/sprockets%2F159e8b94e042d99caa189be7a00e823d +0 -0
- data/test/dummy/tmp/cache/assets/D45/960/sprockets%2F2fc8d2f3455ad6be9e183c514db75248 +0 -0
- data/test/dummy/tmp/cache/assets/D45/B20/sprockets%2Ffffed5038e504d0a235794454985bdbb +0 -0
- data/test/dummy/tmp/cache/assets/D46/3F0/sprockets%2F4f6cd745894b311af7df0cf7b137507f +0 -0
- data/test/dummy/tmp/cache/assets/D4A/AE0/sprockets%2F4f4eec1913736bcea04e7976460cd8f5 +0 -0
- data/test/dummy/tmp/cache/assets/D4A/B60/sprockets%2F9602ae49e511a4f76b8d514aff0ce799 +0 -0
- data/test/dummy/tmp/cache/assets/D4F/AA0/sprockets%2Faddf6e927705144e5d56c306a8975fed +0 -0
- data/test/dummy/tmp/cache/assets/D54/7F0/sprockets%2Fc100e2dd0a4f78b607e4bb4a6a9a5211 +0 -0
- data/test/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +0 -0
- data/test/dummy/tmp/cache/assets/D57/A60/sprockets%2Fc60c16f7e2b1636c8f0b0c44053e0cca +0 -0
- data/test/dummy/tmp/cache/assets/D59/350/sprockets%2F678bcfb8da09c5687259dfd73618a65e +0 -0
- data/test/dummy/tmp/cache/assets/D5C/040/sprockets%2Ff99476dcb2dd7d817c481f089ca8e944 +0 -0
- data/test/dummy/tmp/cache/assets/D62/570/sprockets%2Fa4392fa6dc9c50d915aeb0d2520a7d46 +0 -0
- data/test/dummy/tmp/cache/assets/D62/B00/sprockets%2F84412aec9e1ae1700c9eb1250b663fef +0 -0
- data/test/dummy/tmp/cache/assets/D64/2E0/sprockets%2F44c30d0664445a2d4cb371dfbfe2e55f +0 -0
- data/test/dummy/tmp/cache/assets/D6C/450/sprockets%2F0b8a3bad1d7d8eff66262f42b0b41788 +0 -0
- data/test/dummy/tmp/cache/assets/D6C/8A0/sprockets%2F8f4a391ad4b29009ae98ef1c2d1dd066 +0 -0
- data/test/dummy/tmp/cache/assets/D6C/C70/sprockets%2F35a3850e7fa5f7c5983151bee11ada5f +0 -0
- data/test/dummy/tmp/cache/assets/D6D/F30/sprockets%2F56ddc047b73c4f7a296ac9a7624c33ca +0 -0
- data/test/dummy/tmp/cache/assets/D6E/640/sprockets%2F6419ed4feb2e1abcf662c5532575a3b9 +0 -0
- data/test/dummy/tmp/cache/assets/D70/BD0/sprockets%2Fc2c7ebd39442e69a10b7d5e56d006de9 +0 -0
- data/test/dummy/tmp/cache/assets/D76/850/sprockets%2Fb8ef470485e42c571f9d3f6da06eb8b0 +0 -0
- data/test/dummy/tmp/cache/assets/D7B/170/sprockets%2F212359e52f218c65e94ff7ea8b4db5df +0 -0
- data/test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +0 -0
- data/test/dummy/tmp/cache/assets/D85/760/sprockets%2Fb40725448cea669cac8f4be794d9f68b +0 -0
- data/test/dummy/tmp/cache/assets/D8C/A40/sprockets%2F1320b9d34ce07fbabb694c713d4af3c2 +0 -0
- data/test/dummy/tmp/cache/assets/D8F/5F0/sprockets%2F9caf12004cffdb8fc91b4445e10e62b1 +0 -0
- data/test/dummy/tmp/cache/assets/D92/7F0/sprockets%2F0a9afcd659b9bf138c436cca0825c0b0 +0 -0
- data/test/dummy/tmp/cache/assets/D98/910/sprockets%2F43147af97cd14e206cbe8cbd0637c3dd +0 -0
- data/test/dummy/tmp/cache/assets/D98/980/sprockets%2Fcf4b41e1a62c08be435fe2ad03f7965e +0 -0
- data/test/dummy/tmp/cache/assets/D9A/F50/sprockets%2F240075cd62f370e4edb5cfb75ceb7f06 +0 -0
- data/test/dummy/tmp/cache/assets/D9C/560/sprockets%2Ff0d8bf2c15c26e39930aca488bc7f70a +0 -0
- data/test/dummy/tmp/cache/assets/D9C/AD0/sprockets%2F7ba0b47bec95f35acc50653d8884c2ac +0 -0
- data/test/dummy/tmp/cache/assets/D9D/6B0/sprockets%2F7d3c79cbbf5ff127c15206ad35f48ea2 +0 -0
- data/test/dummy/tmp/cache/assets/DA0/790/sprockets%2F958a171c946ae1c2048ce9ece632ecbc +0 -0
- data/test/dummy/tmp/cache/assets/DA4/950/sprockets%2Fe6918db85a70bc72f3164e9bae4f56ba +0 -0
- data/test/dummy/tmp/cache/assets/DA7/C00/sprockets%2Ffa040932b9fbee7bed840a7348d77ea8 +0 -0
- data/test/dummy/tmp/cache/assets/DAD/B60/sprockets%2Fa26ef3d554dd9ac7f2d587e93b6a6f51 +0 -0
- data/test/dummy/tmp/cache/assets/DB0/F80/sprockets%2Ff377f5e031f2ba83f8df42fa6e5949bf +0 -0
- data/test/dummy/tmp/cache/assets/DB1/340/sprockets%2F93a9d2c48357f1c6cfa54f8099afac9d +0 -0
- data/test/dummy/tmp/cache/assets/DB1/7A0/sprockets%2Fc7d8a90653ba94f646edd8dfd90c1a79 +0 -0
- data/test/dummy/tmp/cache/assets/DB3/1E0/sprockets%2F70b380fd2fb93efee83faec8758f4941 +0 -0
- data/test/dummy/tmp/cache/assets/DB8/530/sprockets%2F8407624e6cfc859c3d4ed9c6deb9c8c5 +0 -0
- data/test/dummy/tmp/cache/assets/DC9/660/sprockets%2Fd16f44fdb415e241db68c1cfa3ca96d6 +0 -0
- data/test/dummy/tmp/cache/assets/DD3/980/sprockets%2Fa94478fdef1f2cdc5d17f68b6aa5b260 +0 -0
- data/test/dummy/tmp/cache/assets/DD6/6E0/sprockets%2Fc8e93955c707af50f068ebb71ec6bbbe +0 -0
- data/test/dummy/tmp/cache/assets/DD8/8C0/sprockets%2F762eb57e3d389f90de5aa52cbee1f35f +0 -0
- data/test/dummy/tmp/cache/assets/DDB/D10/sprockets%2F7c40f5dec8bb5d7e6c896190ca62d5df +0 -0
- data/test/dummy/tmp/cache/assets/DEE/6B0/sprockets%2F803f0c1bb9d86adcdc9a7eaa575a020c +0 -0
- data/test/dummy/tmp/cache/assets/E02/6A0/sprockets%2Fc23c07d9eb4d16989cb8bb64d8aacab8 +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/E04/EE0/sprockets%2Fece32bad4fcf44bd6e14f649dd85815b +0 -0
- data/test/dummy/tmp/cache/assets/E05/600/sprockets%2F2bc84f6c67af83db0ddc8e034fa79b5e +0 -0
- data/test/dummy/tmp/cache/assets/E08/810/sprockets%2F84fcfc8d4e8e7b38ad340f807cc6ecb1 +0 -0
- data/test/dummy/tmp/cache/assets/E0C/040/sprockets%2Fdf5abbd089f55f87b5831ee4971ecdca +0 -0
- data/test/dummy/tmp/cache/assets/E16/C70/sprockets%2Fe6d9d4dfc88496ff2492bfb2defcc903 +0 -0
- data/test/dummy/tmp/cache/assets/E1A/9D0/sprockets%2F0c2f7623a44b0efacbd1aa40f6c79bed +0 -0
- data/test/dummy/tmp/cache/assets/E32/280/sprockets%2F4d3839cfaaddddcb0fb994ecbb642359 +0 -0
- data/test/dummy/tmp/cache/assets/E55/640/sprockets%2F9c2104cddbbbbf6dd18dca04d947ec5e +0 -0
- metadata +410 -0
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2012 Steve England
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.markdown
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# Noodall Quicklinks Component
|
2
|
+
|
3
|
+
A simple list of links component for Noodall
|
4
|
+
|
5
|
+
## Install
|
6
|
+
|
7
|
+
Add to your `Gemfile`
|
8
|
+
|
9
|
+
gem 'noodall-components-quicklinks', :git => 'git@github.com:noodall/noodall-components-quicklinks.git'
|
10
|
+
|
11
|
+
Run `bundle install`
|
12
|
+
|
13
|
+
bundle install
|
14
|
+
|
15
|
+
## Configuration
|
16
|
+
|
17
|
+
Noodall Quicklinks adds a `QuickLinks` component. Add it to your slots.
|
18
|
+
|
19
|
+
In `config/initializers/noodall.rb`
|
20
|
+
|
21
|
+
Noodall::Node.slot :large, QuickLinks
|
22
|
+
Noodall::Node.slot :small, QuickLinks
|
23
|
+
|
24
|
+
You can now add `QuickLinks` components to your Nodes.
|
25
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
begin
|
3
|
+
require 'bundler/setup'
|
4
|
+
rescue LoadError
|
5
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
6
|
+
end
|
7
|
+
begin
|
8
|
+
require 'rdoc/task'
|
9
|
+
rescue LoadError
|
10
|
+
require 'rdoc/rdoc'
|
11
|
+
require 'rake/rdoctask'
|
12
|
+
RDoc::Task = Rake::RDocTask
|
13
|
+
end
|
14
|
+
|
15
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
16
|
+
rdoc.rdoc_dir = 'rdoc'
|
17
|
+
rdoc.title = 'NoodallComponentsQuicklinks'
|
18
|
+
rdoc.options << '--line-numbers'
|
19
|
+
rdoc.rdoc_files.include('README.rdoc')
|
20
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
Bundler::GemHelper.install_tasks
|
26
|
+
|
27
|
+
require 'rake/testtask'
|
28
|
+
|
29
|
+
Rake::TestTask.new(:test) do |t|
|
30
|
+
t.libs << 'lib'
|
31
|
+
t.libs << 'test'
|
32
|
+
t.pattern = 'test/**/*_test.rb'
|
33
|
+
t.verbose = false
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
task :default => :test
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<div class="quick-link" style="background: #eee; margin-bottom: 10px; padding: 10px;">
|
2
|
+
<p>
|
3
|
+
<%= label_tag("node[#{slot_name}][quick_links][#{index}][link_text]", "Link Text") %><br />
|
4
|
+
<span class="input-wrap"><%= text_field_tag "node[#{slot_name}][quick_links][#{index}][link_text]", text, :id => "node_#{slot_name}_quick_links_#{index}_link_text" %></span>
|
5
|
+
</p>
|
6
|
+
<p>
|
7
|
+
<%= label_tag("node[#{slot_name}][quick_links][#{index}][link]", "Link") %><br />
|
8
|
+
<span class="input-wrap">
|
9
|
+
<%= text_field_tag "node[#{slot_name}][quick_links][#{index}][link]", link, :id => "node_#{slot_name}_quick_links_#{index}_link" %><br/>
|
10
|
+
<span class="link-node">Content</span> |
|
11
|
+
<span class="link-asset">Asset</span>
|
12
|
+
</span>
|
13
|
+
</p>
|
14
|
+
<p><a class="remove-quicklink">Remove</a></p>
|
15
|
+
</div>
|
16
|
+
|
@@ -0,0 +1,74 @@
|
|
1
|
+
<%= fields_for :node do |f| %>
|
2
|
+
<%= f.fields_for slot_name, component do |f| %>
|
3
|
+
<%= f.hidden_field :_type %>
|
4
|
+
<%= error_messages_for :object => component %>
|
5
|
+
|
6
|
+
<script id="quicklink-template-<%= slot_name.parameterize %>" type="text/x-jquery-tmpl">
|
7
|
+
<%= render :partial => 'admin/components/quick_link',
|
8
|
+
:locals => {
|
9
|
+
:component => component,
|
10
|
+
:slot_name => slot_name,
|
11
|
+
:text => "",
|
12
|
+
:link => "",
|
13
|
+
:index => nil
|
14
|
+
}
|
15
|
+
%>
|
16
|
+
</script>
|
17
|
+
|
18
|
+
<p>
|
19
|
+
<%= label_tag "node_#{slot_name}_title", "Title" %><br />
|
20
|
+
<span class="input-wrap"><%= text_field_tag "node[#{slot_name}][title]", component.title, :id => "node_#{slot_name}_title" %></span>
|
21
|
+
</p>
|
22
|
+
|
23
|
+
<div id="quicklinks-<%= slot_name.parameterize %>">
|
24
|
+
|
25
|
+
<% component.quick_links.each_with_index do |quicklink, index| %>
|
26
|
+
<%= render :partial => 'admin/components/quick_link',
|
27
|
+
:locals => {
|
28
|
+
:component => component,
|
29
|
+
:slot_name => slot_name,
|
30
|
+
:text => quicklink.link_text,
|
31
|
+
:link => quicklink.link,
|
32
|
+
:index => nil
|
33
|
+
}
|
34
|
+
%>
|
35
|
+
<% end %>
|
36
|
+
|
37
|
+
<% if component.quick_links.empty? %>
|
38
|
+
<%= render :partial => 'admin/components/quick_link',
|
39
|
+
:locals => {
|
40
|
+
:component => component,
|
41
|
+
:slot_name => slot_name,
|
42
|
+
:text => "",
|
43
|
+
:link => "",
|
44
|
+
:index => nil
|
45
|
+
}
|
46
|
+
%>
|
47
|
+
<% end %>
|
48
|
+
</div>
|
49
|
+
|
50
|
+
<a class="add-quick-link-<%= slot_name.parameterize %>" href="#">Add a quick link</a>
|
51
|
+
|
52
|
+
<%
|
53
|
+
end
|
54
|
+
end
|
55
|
+
%>
|
56
|
+
|
57
|
+
<script>
|
58
|
+
$('.add-quick-link-<%= slot_name.parameterize %>').unbind('click').click(function() {
|
59
|
+
|
60
|
+
// Get the template HTML
|
61
|
+
var template = $('#quicklink-template-<%= slot_name.parameterize %>').html();
|
62
|
+
|
63
|
+
// Add it
|
64
|
+
var container = $('#quicklinks-<%= slot_name.parameterize %>');
|
65
|
+
container.append(template);
|
66
|
+
|
67
|
+
return false;
|
68
|
+
});
|
69
|
+
|
70
|
+
$('.remove-quicklink').unbind('click').live('click', function() {
|
71
|
+
$(this).parent().parent().remove();
|
72
|
+
return false;
|
73
|
+
});
|
74
|
+
</script>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<div id="<%= slot_code %>" class="component quicklinks <%= additional_classes %>">
|
2
|
+
<h3><%=h component.title %></h3>
|
3
|
+
<ul>
|
4
|
+
<% component.quick_links.each do |quicklink| %>
|
5
|
+
<li><%= link_to(quicklink.link_text, quicklink.link) %></li>
|
6
|
+
<% end %>
|
7
|
+
</ul>
|
8
|
+
</div>
|
data/config/routes.rb
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
|
2
|
+
# It is recommended to regenerate this file in the future when you upgrade to a
|
3
|
+
# newer version of cucumber-rails. Consider adding your own code to a new file
|
4
|
+
# instead of editing this one. Cucumber will automatically load all features/**/*.rb
|
5
|
+
# files.
|
6
|
+
|
7
|
+
|
8
|
+
unless ARGV.any? {|a| a =~ /^gems/} # Don't load anything when running the gems:* tasks
|
9
|
+
|
10
|
+
vendored_cucumber_bin = Dir["#{Rails.root}/vendor/{gems,plugins}/cucumber*/bin/cucumber"].first
|
11
|
+
$LOAD_PATH.unshift(File.dirname(vendored_cucumber_bin) + '/../lib') unless vendored_cucumber_bin.nil?
|
12
|
+
|
13
|
+
begin
|
14
|
+
require 'cucumber/rake/task'
|
15
|
+
|
16
|
+
namespace :cucumber do
|
17
|
+
Cucumber::Rake::Task.new({:ok => 'db:test:prepare'}, 'Run features that should pass') do |t|
|
18
|
+
t.binary = vendored_cucumber_bin # If nil, the gem's binary is used.
|
19
|
+
t.fork = true # You may get faster startup if you set this to false
|
20
|
+
t.profile = 'default'
|
21
|
+
end
|
22
|
+
|
23
|
+
Cucumber::Rake::Task.new({:wip => 'db:test:prepare'}, 'Run features that are being worked on') do |t|
|
24
|
+
t.binary = vendored_cucumber_bin
|
25
|
+
t.fork = true # You may get faster startup if you set this to false
|
26
|
+
t.profile = 'wip'
|
27
|
+
end
|
28
|
+
|
29
|
+
Cucumber::Rake::Task.new({:rerun => 'db:test:prepare'}, 'Record failing features and run only them if any exist') do |t|
|
30
|
+
t.binary = vendored_cucumber_bin
|
31
|
+
t.fork = true # You may get faster startup if you set this to false
|
32
|
+
t.profile = 'rerun'
|
33
|
+
end
|
34
|
+
|
35
|
+
desc 'Run all features'
|
36
|
+
task :all => [:ok, :wip]
|
37
|
+
|
38
|
+
task :statsetup do
|
39
|
+
require 'rails/code_statistics'
|
40
|
+
::STATS_DIRECTORIES << %w(Cucumber\ features features) if File.exist?('features')
|
41
|
+
::CodeStatistics::TEST_TYPES << "Cucumber features" if File.exist?('features')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
desc 'Alias for cucumber:ok'
|
45
|
+
task :cucumber => 'cucumber:ok'
|
46
|
+
|
47
|
+
task :default => :cucumber
|
48
|
+
|
49
|
+
task :features => :cucumber do
|
50
|
+
STDERR.puts "*** The 'features' task is deprecated. See rake -T cucumber ***"
|
51
|
+
end
|
52
|
+
|
53
|
+
# In case we don't have ActiveRecord, append a no-op task that we can depend upon.
|
54
|
+
task 'db:test:prepare' do
|
55
|
+
end
|
56
|
+
|
57
|
+
task :stats => 'cucumber:statsetup'
|
58
|
+
rescue LoadError
|
59
|
+
desc 'cucumber rake task not available (cucumber not installed)'
|
60
|
+
task :cucumber do
|
61
|
+
abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
data/test/dummy/Rakefile
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
3
|
+
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
4
|
+
|
5
|
+
require File.expand_path('../config/application', __FILE__)
|
6
|
+
|
7
|
+
Dummy::Application.load_tasks
|
@@ -0,0 +1,9 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into including all the files listed below.
|
2
|
+
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
|
3
|
+
// be included in the compiled file accessible from http://example.com/assets/application.js
|
4
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
5
|
+
// the compiled file.
|
6
|
+
//
|
7
|
+
//= require jquery
|
8
|
+
//= require jquery_ujs
|
9
|
+
//= require_tree .
|
@@ -0,0 +1,7 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll automatically include all the stylesheets available in this directory
|
3
|
+
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
|
4
|
+
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
5
|
+
*= require_self
|
6
|
+
*= require_tree .
|
7
|
+
*/
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class ApplicationController < ActionController::Base
|
2
|
+
@@current_user = User.find_or_create_by_full_name("Demo User")
|
3
|
+
|
4
|
+
def self.current_user=(user)
|
5
|
+
@@current_user = user
|
6
|
+
end
|
7
|
+
|
8
|
+
def current_user
|
9
|
+
@@current_user
|
10
|
+
end
|
11
|
+
helper_method :current_user
|
12
|
+
|
13
|
+
def destroy_user_session_path
|
14
|
+
''
|
15
|
+
end
|
16
|
+
helper_method :destroy_user_session_path
|
17
|
+
|
18
|
+
def authenticate_user!
|
19
|
+
true
|
20
|
+
end
|
21
|
+
|
22
|
+
def anybody_signed_in?
|
23
|
+
true
|
24
|
+
end
|
25
|
+
protect_from_forgery
|
26
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
class ContentPage < Noodall::Node
|
2
|
+
# Define which Node Templates can be used as children of Nodes using this template
|
3
|
+
sub_templates ContentPage
|
4
|
+
|
5
|
+
# Define the number of each slot type this Node Template allows. Slots are defined in 'config/initializers/noodall.rb'
|
6
|
+
small_slots 4
|
7
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class User
|
2
|
+
include MongoMapper::Document
|
3
|
+
include Canable::Cans
|
4
|
+
|
5
|
+
key :email, String
|
6
|
+
key :full_name, String
|
7
|
+
key :groups, Array
|
8
|
+
|
9
|
+
cattr_accessor :editor_groups
|
10
|
+
|
11
|
+
def admin?
|
12
|
+
groups.include?('website administrator')
|
13
|
+
end
|
14
|
+
|
15
|
+
def editor?
|
16
|
+
return true if self.class.editor_groups.blank?
|
17
|
+
admin? or (self.class.editor_groups & groups).size > 0
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
<%= render :partial => 'noodall/admin/nodes/body', :locals => { :f => f } %>
|
2
|
+
<% content_for :component_table do %>
|
3
|
+
<!--
|
4
|
+
modify this table to look like your template and link slots to correct anchors
|
5
|
+
<table class="component-table">
|
6
|
+
<tr>
|
7
|
+
<td rowspan="2" class="content"></td>
|
8
|
+
<td colspan="2" rowspan="4" class="content"></td>
|
9
|
+
<td><a href="#small_component_form_0" class="slot_link">4</a></td>
|
10
|
+
</tr>
|
11
|
+
<tr>
|
12
|
+
<td><a href="#small_component_form_1" class="slot_link">5</a></td>
|
13
|
+
</tr>
|
14
|
+
<tr>
|
15
|
+
<td></td>
|
16
|
+
<td><a href="#small_component_form_2" class="slot_link">6</a></td>
|
17
|
+
</tr>
|
18
|
+
<tr>
|
19
|
+
<td></td>
|
20
|
+
<td><a href="#small_component_form_3" class="slot_link">7</a></td>
|
21
|
+
</tr>
|
22
|
+
<tr>
|
23
|
+
<td></td>
|
24
|
+
<td colspan="2"><a href="#wide_component_form_0" class="slot_link">1</a></td>
|
25
|
+
<td></td>
|
26
|
+
</tr>
|
27
|
+
<tr>
|
28
|
+
<td></td>
|
29
|
+
<td colspan="2"><a href="#wide_component_form_1" class="slot_link">2</a></td>
|
30
|
+
<td></td>
|
31
|
+
</tr>
|
32
|
+
<tr>
|
33
|
+
<td></td>
|
34
|
+
<td colspan="2"><a href="#wide_component_form_2" class="slot_link">3</a></td>
|
35
|
+
<td></td>
|
36
|
+
</tr>
|
37
|
+
<tr>
|
38
|
+
<td></td>
|
39
|
+
<td></td>
|
40
|
+
<td></td>
|
41
|
+
<td></td>
|
42
|
+
</tr>
|
43
|
+
</table>
|
44
|
+
-->
|
45
|
+
<% end -%>
|