refinerycms 0.9.5.31 → 0.9.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. data/.gitignore +1 -0
  2. data/VERSION +1 -1
  3. data/bin/refinery +2 -1
  4. data/config/environment.rb +1 -1
  5. data/config/environments/development.rb +3 -0
  6. data/contributors.md +2 -0
  7. data/db/migrate/20100202034802_remove_custom_title_image_id_and_image_id_from_pages.rb +13 -0
  8. data/db/migrate/20100204011654_change_part_titles_to_titleized_version_for_new_format.rb +13 -0
  9. data/db/schema.rb +6 -10
  10. data/public/javascripts/admin.js +1 -1
  11. data/public/javascripts/jquery-ui-1.8rc1.min.js +375 -0
  12. data/public/javascripts/jquery.js +4231 -2529
  13. data/public/javascripts/refinery/admin.js +609 -38
  14. data/public/javascripts/refinery/boot_wym.js +3 -3
  15. data/public/javascripts/thickbox.js +116 -129
  16. data/public/javascripts/wymeditor/jquery.refinery.wymeditor.js +3674 -3732
  17. data/public/javascripts/wymeditor/skins/refinery/skin.js +8 -8
  18. data/public/stylesheets/refinery/refinery.css +142 -32
  19. data/public/stylesheets/wymeditor/skins/refinery/skin.css +8 -1
  20. data/readme.md +35 -21
  21. data/test/fixtures/page_parts.yml +9 -0
  22. data/test/fixtures/pages.yml +88 -0
  23. data/test/performance/browsing_test.rb +9 -0
  24. data/test/test_helper.rb +38 -0
  25. data/test/unit/image_test.rb +14 -0
  26. data/test/unit/page_part_test.rb +19 -0
  27. data/test/unit/page_test.rb +130 -0
  28. data/vendor/plugins/authentication/app/controllers/sessions_controller.rb +1 -1
  29. data/vendor/plugins/authentication/app/views/admin/users/index.html.erb +1 -2
  30. data/vendor/plugins/authentication/authentication.md +9 -1
  31. data/vendor/plugins/dashboard/dashboard.md +3 -3
  32. data/vendor/plugins/images/app/controllers/admin/images_controller.rb +17 -13
  33. data/vendor/plugins/images/app/helpers/admin/images_helper.rb +6 -0
  34. data/vendor/plugins/images/app/models/image.rb +24 -39
  35. data/vendor/plugins/images/app/views/admin/images/_form.html.erb +11 -4
  36. data/vendor/plugins/images/app/views/admin/images/_grid_view.html.erb +1 -2
  37. data/vendor/plugins/images/app/views/admin/images/_list_view_image.html.erb +1 -2
  38. data/vendor/plugins/images/app/views/admin/images/index.html.erb +1 -1
  39. data/vendor/plugins/images/app/views/admin/images/insert.html.erb +8 -71
  40. data/vendor/plugins/images/images.md +12 -7
  41. data/vendor/plugins/inquiries/app/views/admin/inquiries/_inquiry.html.erb +6 -13
  42. data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/index.html.erb +1 -2
  43. data/vendor/plugins/inquiries/inquiries.md +8 -8
  44. data/vendor/plugins/news/app/views/admin/news_items/_news_item.html.erb +1 -2
  45. data/vendor/plugins/news/news.md +4 -4
  46. data/vendor/plugins/pages/app/controllers/admin/page_dialogs_controller.rb +11 -10
  47. data/vendor/plugins/pages/app/controllers/admin/page_parts_controller.rb +5 -1
  48. data/vendor/plugins/pages/app/controllers/admin/pages_controller.rb +2 -2
  49. data/vendor/plugins/pages/app/models/page.rb +75 -29
  50. data/vendor/plugins/pages/app/models/page_part.rb +1 -1
  51. data/vendor/plugins/pages/app/views/admin/page_dialogs/_page_link.html.erb +2 -2
  52. data/vendor/plugins/pages/app/views/admin/page_dialogs/link_to.html.erb +8 -112
  53. data/vendor/plugins/pages/app/views/admin/pages/_form.html.erb +50 -154
  54. data/vendor/plugins/pages/app/views/admin/pages/_list.html.erb +10 -10
  55. data/vendor/plugins/pages/app/views/admin/pages/_page_part_field.html.erb +4 -4
  56. data/vendor/plugins/pages/app/views/admin/pages/_sortable_list.html.erb +1 -1
  57. data/vendor/plugins/pages/pages.md +30 -25
  58. data/vendor/plugins/refinery/app/views/admin/_head.html.erb +5 -14
  59. data/vendor/plugins/refinery/app/views/admin/_menu.html.erb +2 -64
  60. data/vendor/plugins/refinery/app/views/shared/_message.html.erb +0 -6
  61. data/vendor/plugins/refinery/app/views/shared/admin/_error_messages_for.html.erb +1 -6
  62. data/vendor/plugins/refinery/app/views/shared/admin/_form_actions.html.erb +8 -10
  63. data/vendor/plugins/refinery/app/views/shared/admin/_image_picker.html.erb +22 -38
  64. data/vendor/plugins/refinery/app/views/shared/admin/_make_sortable.html.erb +6 -65
  65. data/vendor/plugins/refinery/app/views/shared/admin/_resource_picker.html.erb +16 -16
  66. data/vendor/plugins/refinery/app/views/shared/admin/_sortable_list.html.erb +3 -4
  67. data/vendor/plugins/refinery/lib/crud.rb +1 -1
  68. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_singular_name.html.erb +1 -1
  69. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_sortable_list.html.erb +1 -1
  70. data/vendor/plugins/refinery/plugins.md +19 -12
  71. data/vendor/plugins/refinery_dialogs/app/controllers/admin/dialogs_controller.rb +6 -4
  72. data/vendor/plugins/refinery_dialogs/app/views/admin/dialogs/show.html.erb +3 -3
  73. data/vendor/plugins/refinery_dialogs/app/views/layouts/admin_dialog.html.erb +7 -14
  74. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_refinery_setting.html.erb +1 -1
  75. data/vendor/plugins/refinery_settings/settings.md +51 -1
  76. data/vendor/plugins/resources/app/controllers/admin/resources_controller.rb +16 -11
  77. data/vendor/plugins/resources/app/views/admin/resources/_form.html.erb +9 -2
  78. data/vendor/plugins/resources/app/views/admin/resources/_resource.html.erb +1 -3
  79. data/vendor/plugins/resources/app/views/admin/resources/index.html.erb +2 -2
  80. data/vendor/plugins/resources/app/views/admin/resources/insert.html.erb +14 -60
  81. data/vendor/plugins/resources/resources.md +1 -1
  82. data/vendor/plugins/themes/app/controllers/admin/themes_controller.rb +6 -6
  83. data/vendor/plugins/themes/app/models/theme.rb +3 -3
  84. data/vendor/plugins/themes/app/views/admin/themes/_theme.html.erb +14 -20
  85. data/vendor/plugins/themes/themes.md +21 -19
  86. metadata +18 -19
  87. data/public/javascripts/builder.js +0 -136
  88. data/public/javascripts/controls.js +0 -963
  89. data/public/javascripts/dragdrop.js +0 -973
  90. data/public/javascripts/effects.js +0 -1128
  91. data/public/javascripts/fastinit.js +0 -84
  92. data/public/javascripts/livepipe.js +0 -180
  93. data/public/javascripts/prototype.js +0 -4874
  94. data/public/javascripts/refinery/dialog.js +0 -52
  95. data/public/javascripts/refinery/parse_url.js +0 -38
  96. data/public/javascripts/refinery/prototype.enhancements.js +0 -24
  97. data/public/javascripts/refinery/tooltips.js +0 -173
  98. data/public/javascripts/scriptaculous.js +0 -47
  99. data/public/javascripts/slider.js +0 -275
  100. data/public/javascripts/tabs.js +0 -149
  101. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_make_sortable.html.erb +0 -7
@@ -3,38 +3,38 @@ WYMeditor.SKINS['refinery'] = {
3
3
  init: function(wym) {
4
4
 
5
5
  //render following sections as panels
6
- /* jQuery(wym._box).find(wym._options.classesSelector)
6
+ /* $(wym._box).find(wym._options.classesSelector)
7
7
  .addClass("wym_panel"); */
8
8
 
9
9
  //render following sections as buttons
10
- jQuery(wym._box).find(wym._options.toolsSelector)
10
+ $(wym._box).find(wym._options.toolsSelector)
11
11
  .addClass("wym_buttons");
12
12
 
13
13
  //render following sections as dropdown menus
14
- /* jQuery(wym._box).find(wym._options.classesSelector)
14
+ /* $(wym._box).find(wym._options.classesSelector)
15
15
  .addClass("wym_dropdown")
16
16
  .find(WYMeditor.H2)
17
17
  .append("<span>&nbsp;&gt;</span>");
18
18
  */
19
19
  // auto add some margin to the main area sides if left area
20
20
  // or right area are not empty (if they contain sections)
21
- jQuery(wym._box).find("div.wym_area_right ul")
21
+ $(wym._box).find("div.wym_area_right ul")
22
22
  .parents("div.wym_area_right").show()
23
23
  .parents(wym._options.boxSelector)
24
24
  .find("div.wym_area_main")
25
25
  .css({"margin-right": "155px"});
26
26
 
27
- jQuery(wym._box).find("div.wym_area_left ul")
27
+ $(wym._box).find("div.wym_area_left ul")
28
28
  .parents("div.wym_area_left").show()
29
29
  .parents(wym._options.boxSelector)
30
30
  .find("div.wym_area_main")
31
31
  .css({"margin-left": "155px"});
32
32
 
33
33
  //make hover work under IE < 7
34
- jQuery(wym._box).find(".wym_section").hover(function(){
35
- jQuery(this).addClass("hover");
34
+ $(wym._box).find(".wym_section").hover(function(){
35
+ $(this).addClass("hover");
36
36
  },function(){
37
- jQuery(this).removeClass("hover");
37
+ $(this).removeClass("hover");
38
38
  });
39
39
  }
40
40
  };
@@ -208,8 +208,12 @@ a:hover {
208
208
 
209
209
  #header ul#menu {
210
210
  display: block;
211
- margin: 0;
212
- padding: 32px 15px 0 0;
211
+ margin: 0px;
212
+ padding: 0px;
213
+ position: absolute;
214
+ bottom: 0px;
215
+ left: 15px;
216
+ right: 15px;
213
217
  }
214
218
 
215
219
  #header ul#menu li#logout {
@@ -265,10 +269,12 @@ pre {
265
269
  background: url('/images/refinery/header_background.png') #50504B repeat-x bottom;
266
270
  padding: 26px 15px 0 15px;
267
271
  position: relative;
272
+ height: 93px;
268
273
  }
269
274
 
270
275
  #page_container.login #header {
271
276
  padding: 42px 15px 42px 15px;
277
+ height: 35px;
272
278
  }
273
279
 
274
280
  #site_link {
@@ -425,38 +431,57 @@ pre {
425
431
  .tree li span.spacing {
426
432
  display: none;
427
433
  }
428
- .reordering .hover {
434
+ #content .ui-sortable li.hover {
429
435
  height: 300%;
430
436
  display: block;
431
437
  }
432
438
 
433
- .reordering {
439
+ #content .ui-sortable {
434
440
  margin: 0;
435
- padding: 0;
436
- }
437
-
438
- .reordering li ul{
439
- padding: 6px 10px 0px 40px !important;
441
+ padding: 12px 0px;
440
442
  }
441
443
 
442
- .reordering ul.empty {
443
- margin: 0;
444
- display: block !important;
444
+ #content .ui-sortable li ul{
445
+ padding: 6px 10px 12px 40px !important;
445
446
  }
446
447
 
447
- ul.reordering li {
448
+ #content ul.ui-sortable li {
448
449
  background: #E6E5DC !important;
449
450
  cursor: move;
450
451
  border: 1px solid #b7b7a8;
451
- line-height: 16px;
452
452
  margin-bottom: 2px !important;
453
453
  padding: 3px 0px 0px 3px !important;
454
454
  }
455
- .reordering .actions {
455
+ #content ul.ui-sortable li ul.empty {
456
+ display: block;
457
+ }
458
+ #content ul.ui-sortable li ul li.empty {
459
+ border: 0px none;
460
+ }
461
+ #content .ui-sortable .actions {
456
462
  display: none !important;
457
463
  }
458
- .reordering li span.spacing {
464
+ #content .ui-sortable ul.spacing li {
459
465
  display: block;
466
+ border: 0px none;
467
+ }
468
+ #content .ui-sortable ul {
469
+ min-height: 12px;
470
+ }
471
+ #content .ui-sortable li.placeholder {
472
+ opacity: 0.4;
473
+ border-width: 2px;
474
+ border-style: dashed;
475
+ height: 38px;
476
+ }
477
+ #content ul.ui-sortable li.ui-sortable-helper {
478
+ height: 38px !important;
479
+ }
480
+ #content ul.ui-sortable li.ui-sortable-helper ul {
481
+ display: none;
482
+ }
483
+ .ui-sortable-helper {
484
+ opacity: 0.7;
460
485
  }
461
486
 
462
487
  #content h2 {
@@ -716,7 +741,7 @@ body.dialog form {
716
741
 
717
742
  .dialog #dialog_main {
718
743
  float: left;
719
- min-height: 415px;
744
+ min-height: 405px;
720
745
  width: 756px;
721
746
  }
722
747
 
@@ -756,17 +781,18 @@ body.dialog form {
756
781
  }
757
782
  */
758
783
  #existing_image_area_content {
759
- height: 342px;
784
+ height: 365px;
760
785
  }
761
786
 
762
787
  #existing_image_area .pagination {
763
788
  background: #FFF;
764
- bottom: 0px;
765
- right: 0px;
789
+ /*bottom: 0px;*/
790
+ /*right: 0px;*/
766
791
  text-align: right;
767
- position: absolute;
792
+ float: right;
793
+ /*position: absolute;*/
768
794
  margin: 0px;
769
- width: 766px;
795
+ width: 763px;
770
796
  }
771
797
 
772
798
  #upload_image_area {
@@ -932,6 +958,16 @@ a img {
932
958
  background-image: url('/images/refinery/icons/application_go.png');
933
959
  }
934
960
 
961
+ .success_icon {
962
+ background-image: url('/images/refinery/icons/tick.png');
963
+ padding: 0px 8px;
964
+ }
965
+
966
+ .failure_icon {
967
+ background-image: url('/images/refinery/icons/cross.png');
968
+ padding: 0px 8px;
969
+ }
970
+
935
971
  /* page parts */
936
972
 
937
973
  ul#page_parts {
@@ -951,20 +987,12 @@ ul#page_parts li {
951
987
  }
952
988
 
953
989
  ul#page_parts li a {
954
- float: left;
955
- line-height: 27px;
956
- background: #c2c3b3;
990
+ display: block;
957
991
  padding: 0px 8px;
958
992
  border-bottom: none;
959
- margin-top: 6px;
960
993
  }
961
994
 
962
- ul#page_parts li.active a, ul#page_parts li a.active {
963
- background: #808080;
964
- line-height: 33px;
965
- color: white;
966
- margin-top: 0px;
967
- }
995
+ ul#page_parts li.active a, ul#page_parts li a.active {}
968
996
  ul#page_parts_controls {
969
997
  float: right;
970
998
  width: 5%;
@@ -1107,4 +1135,86 @@ ul#plugins li {
1107
1135
  }
1108
1136
  .label_inline_with_link a img {
1109
1137
  vertical-align: middle;
1138
+ }
1139
+
1140
+ #remove_picked_image {
1141
+ margin-top:8px;
1142
+ display:inline-block;
1143
+ width:auto;
1144
+ }
1145
+
1146
+ .ui-widget-overlay {
1147
+ position: absolute;
1148
+ top: 0px;
1149
+ left: 0px;
1150
+ right: 0px;
1151
+ bottom: 0px;
1152
+ width: auto !important;
1153
+ height: auto !important;
1154
+ opacity: .75;
1155
+ filter:Alpha(Opacity=75);
1156
+ background: #000;
1157
+ }
1158
+
1159
+ .ui-dialog {
1160
+ position: relative;
1161
+ background-color: #fff;
1162
+ color: #000;
1163
+ border: 4px solid #525252;
1164
+ width: auto;
1165
+ }
1166
+ .ui-dialog .ui-dialog-titlebar {
1167
+ float: left;
1168
+ position: relative;
1169
+ width: 100%;
1170
+ background-color: #e8e8e8;
1171
+ }
1172
+ .ui-dialog .ui-dialog-title {
1173
+ float: left;
1174
+ height: 33px;
1175
+ line-height: 33px;
1176
+ font-size: 16px;
1177
+ padding-left: 10px;
1178
+ }
1179
+ .ui-dialog .ui-dialog-titlebar-close {
1180
+ position: absolute;
1181
+ right: 10px;
1182
+ top: 5px;
1183
+ width: 19px;
1184
+ border: none;
1185
+ }
1186
+ .ui-dialog .ui-dialog-titlebar-close span {
1187
+ display: block;
1188
+ margin: 1px;
1189
+ background: transparent url('/images/thickbox/cross.png') top left no-repeat;
1190
+ text-indent:-10000px;
1191
+ }
1192
+ .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus {
1193
+ padding: 0;
1194
+ }
1195
+ #new_page_part_dialog .field {
1196
+ padding: 30px 10px;
1197
+ }
1198
+
1199
+ .ui-tabs-hide {
1200
+ display:none;
1201
+ }
1202
+ .ui-tabs .ui-state-default, .ui-tabs .ui-state-default a {
1203
+ background-color: #c2c3b3;
1204
+ line-height: 27px;
1205
+ margin-top: 3px;
1206
+ }
1207
+ .ui-tabs .ui-state-active, .ui-tabs .ui-state-active a {
1208
+ background-color: #808080;
1209
+ color: #fff;
1210
+ line-height: 33px;
1211
+ margin-top: 0px;
1212
+ }
1213
+ .ui-dialog iframe {
1214
+ clear:both;
1215
+ border:none;
1216
+ margin-bottom:-1px;
1217
+ margin-top:1px;
1218
+ _margin-bottom:1px;
1219
+ width: 100% !important;
1110
1220
  }
@@ -204,8 +204,15 @@
204
204
 
205
205
  }
206
206
  .wym_skin_refinery .wym_tools_class .wym_classes .wym_tools_class_multiple_rules ul li a {
207
- width: 186px;
207
+ width: 167px;
208
208
  padding-left: 12px;
209
+ padding-right: 21px;
209
210
  height: 16px;
210
211
  line-height: 18px;
212
+ }
213
+
214
+ .wym_skin_refinery .wym_tools_class .wym_classes li.enabled a {
215
+ background-image: url('/images/refinery/icons/star.png');
216
+ background-repeat: no-repeat;
217
+ background-position: 181px 2px;
211
218
  }
data/readme.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Refinery CMS
2
2
 
3
- An open source Ruby on Rails content management system for small business.
3
+ __An open source Ruby on Rails content management system for small business.__
4
+
5
+ ## Demo Site
4
6
 
5
7
  * [Front end live demo ](http://demo.refinerycms.com)
6
8
  * [Back end live demo ](http://demo.refinerycms.com/admin)
@@ -17,12 +19,11 @@ Unlike other content managers, Refinery is truly aimed at the end user making it
17
19
 
18
20
  ### For developers
19
21
 
20
- Refinery makes it easy to:
21
-
22
- * Get a small business site up and running __ridiculously quickly__
23
- * __Theme and customise__ the look to suit the business
24
- * __Extend with custom plugins__ to do anything Refinery doesn't do out of the box
25
- * Tries to stick to __"the Rails way"__ as much as possible
22
+ * Allows you to get a small business site completed __ridiculously quickly__
23
+ * Easily __[Theme and customise](http://github.com/resolve/refinerycms/blob/master/vendor/plugins/themes/themes.md)__ the look to suit the business
24
+ * __[Extend with custom plugins](http://github.com/resolve/refinerycms/blob/master/vendor/plugins/refinery/plugins.md)__ to do anything Refinery doesn't do out of the box
25
+ * Sticks to __"the Rails way"__ as much as possible. We don't force you to learn new templating languages.
26
+ * Uses [jQuery](http://jquery.com/) for fast and concise JavaScript
26
27
 
27
28
  ## Requirements
28
29
 
@@ -34,13 +35,13 @@ Refinery runs using a number of gems which (as of Refinery version 0.9.5.29) are
34
35
  * [rails >= 2.3.5](http://gemcutter.org/gems/rails)
35
36
  * [aasm >= 2.1.3](http://gemcutter.org/gems/aasm)
36
37
  * [unicode >= 0.1](http://gemcutter.org/gems/unicode)
37
- * [slim_scrooge >= 1.0.3](http://gemcutter.org/gems/slim_scrooge)
38
38
  * [hpricot >= 0.8.1](http://gemcutter.org/gems/hpricot)
39
+ * [slim_scrooge >= 1.0.3](http://gemcutter.org/gems/slim_scrooge) (_Windows & JRuby users can ignore this one_)
39
40
 
40
41
  ### Other dependancies
41
42
 
42
43
  * [RMagick](http://github.com/rmagick/rmagick) - [Install docs](http://rmagick.rubyforge.org/install-faq.html) or for
43
- Mac OS users [this install script](http://github.com/maddox/magick-installer) will be easier.
44
+ Mac OS users [shell install script](http://github.com/maddox/magick-installer) will be easier.
44
45
 
45
46
  ## Installing and Setting Up Refinery
46
47
 
@@ -49,9 +50,9 @@ Mac OS users [this install script](http://github.com/maddox/magick-installer) wi
49
50
  #### Install the Gem
50
51
 
51
52
  gem install refinerycms --source http://gemcutter.org
52
- refinery /path/to/project
53
+ refinery path/to/project
53
54
 
54
- #### Or, clone Refinery's Git repository
55
+ #### Or, clone Refinery's GIT repository
55
56
 
56
57
  git clone git://github.com/resolve/refinerycms.git mynewsite.com
57
58
  cd ./mynewsite.com
@@ -75,7 +76,7 @@ After your database exists, you'll need to install the gems that Refinery depend
75
76
 
76
77
  ruby script/server
77
78
 
78
- Now visit [http://localhost:3000](http://localhost:3000) and your site should be running.
79
+ Now visit [http://localhost:3000](http://localhost:3000) and your Refinery site should be running.
79
80
 
80
81
  You will be prompted to setup your first user.
81
82
 
@@ -86,13 +87,13 @@ You will be prompted to setup your first user.
86
87
  * [Developer video - 26 mins](http://refinerycms.com/pages/for-developers)
87
88
  * [IRC Channel](irc://irc.freenode.net/refinerycms)
88
89
 
89
- ## Setting Up on Heroku
90
+ ## Setting Up on Heroku or Using S3 for Storage
90
91
 
91
92
  If you're using [Heroku](http://heroku.com/) you will want to put
92
93
 
93
94
  USE_S3_BACKEND = true
94
95
 
95
- in your ``config/production.rb`` file.
96
+ in your ``config/production.rb`` file to make Refinery store files uploaded on Amazon S3.
96
97
 
97
98
  ## Updating to the latest Refinery
98
99
 
@@ -100,11 +101,11 @@ in your ``config/production.rb`` file.
100
101
 
101
102
  Simply run the command:
102
103
 
103
- refinery-update-core /path/to/project/root/
104
+ refinery-update-core path/to/project/root/
104
105
 
105
106
  and the up-to-date core files will be copied from the latest gem into your project.
106
107
 
107
- ### When using Git
108
+ ### When using GIT
108
109
 
109
110
  You can update by running these commands:
110
111
 
@@ -123,7 +124,8 @@ This will pull in all of the updated files in the project and may result in some
123
124
  ### [Images](http://github.com/resolve/refinerycms/blob/master/vendor/plugins/images/images.md) & [Resources](http://github.com/resolve/refinerycms/blob/master/vendor/plugins/resources/resources.md)
124
125
 
125
126
  * Easily upload and insert images
126
- * Upload and link to resources like PDF documents
127
+ * Upload and link to resources such as PDF documents
128
+ * Uses the popular [attachment_fu](http://github.com/technoweenie/attachment_fu) Rails plugin
127
129
 
128
130
  ### [Inquiries](http://github.com/resolve/refinerycms/blob/master/vendor/plugins/inquiries/inquiries.md)
129
131
 
@@ -137,18 +139,30 @@ This will pull in all of the updated files in the project and may result in some
137
139
  ### [Settings](http://github.com/resolve/refinerycms/blob/master/vendor/plugins/refinery_settings/settings.md)
138
140
 
139
141
  * Manage the behaviour of Refinery
142
+ * Easily integrate with [Google Analytics](https://www.google.com/analytics/)
140
143
 
141
144
  ### [Dashboard](http://github.com/resolve/refinerycms/blob/master/vendor/plugins/dashboard/dashboard.md)
142
145
 
143
146
  * Get an overview of what has been updated recently
144
-
145
- ### ...Want more?
147
+
148
+ ### [Authentication & Users](http://github.com/resolve/refinerycms/blob/master/vendor/plugins/authentication/authentication.md)
149
+
150
+ * Manage who can access Refinery
151
+ * Control which plugins each user has access to
152
+ * Uses the popular [RESTful authentication](http://github.com/technoweenie/restful-authentication) Rails plugin
153
+
154
+ ### [Themes](http://github.com/resolve/refinerycms/blob/master/vendor/plugins/themes/themes.md)
155
+
156
+ * Customise Refinery to look exactly how you want
157
+ * The Rails Way: use regular Rails erb views, no templating languages here!
158
+
159
+ ### ...Want more? [Extend with Plugins](http://github.com/resolve/refinerycms/blob/master/vendor/plugins/refinery/plugins.md)
146
160
 
147
161
  Extend Refinery easily by running the Refinery generator
148
162
 
149
163
  ruby script/generate refinery
150
164
 
151
- to get help on how to use that.
165
+ to get help on how to use that. Or read the full documentation on [writing plugins for Refinery](http://github.com/resolve/refinerycms/blob/master/vendor/plugins/refinery/plugins.md)
152
166
 
153
167
  ### What about a portfolio?
154
168
 
@@ -158,4 +172,4 @@ Check out the [portfolio plugin gem](http://github.com/resolve/portfolio)
158
172
 
159
173
  Refinery is released under the MIT license and is copyright (c) 2005-2009 [Resolve Digital Ltd.](http://www.resolvedigital.co.nz)
160
174
 
161
- A copy of the MIT license can be found in the license.md file.
175
+ [Read the license](http://github.com/resolve/refinerycms/blob/master/license.md)