refinerycms-settings 0.9.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. data/app/controllers/admin/refinery_settings_controller.rb +77 -0
  2. data/app/helpers/refinery_settings_helper.rb +25 -0
  3. data/app/models/refinery_setting.rb +212 -0
  4. data/app/views/admin/refinery_settings/_form.html.erb +62 -0
  5. data/app/views/admin/refinery_settings/_refinery_setting.html.erb +23 -0
  6. data/app/views/admin/refinery_settings/_refinery_settings.html.erb +5 -0
  7. data/app/views/admin/refinery_settings/edit.html.erb +1 -0
  8. data/app/views/admin/refinery_settings/index.html.erb +49 -0
  9. data/app/views/admin/refinery_settings/new.html.erb +1 -0
  10. data/config/locales/cs.yml +45 -0
  11. data/config/locales/da.yml +46 -0
  12. data/config/locales/de.yml +46 -0
  13. data/config/locales/el.yml +46 -0
  14. data/config/locales/en.yml +46 -0
  15. data/config/locales/es.yml +43 -0
  16. data/config/locales/fr.yml +44 -0
  17. data/config/locales/it.yml +36 -0
  18. data/config/locales/lolcat.yml +43 -0
  19. data/config/locales/lt.yml +46 -0
  20. data/config/locales/lv.yml +46 -0
  21. data/config/locales/nb.yml +47 -0
  22. data/config/locales/nl.yml +46 -0
  23. data/config/locales/pl.yml +46 -0
  24. data/config/locales/pt-BR.yml +44 -0
  25. data/config/locales/rs.yml +46 -0
  26. data/config/locales/ru.yml +43 -0
  27. data/config/locales/sl.yml +25 -0
  28. data/config/locales/sv.yml +45 -0
  29. data/config/locales/vi.yml +47 -0
  30. data/config/locales/zh-CN.yml +46 -0
  31. data/config/locales/zh-TW.yml +46 -0
  32. data/config/routes.rb +8 -0
  33. data/db/migrate/20100913234710_create_refinerycms_settings_schema.rb +24 -0
  34. data/db/migrate/20100926142529_add_value_type_to_refinery_settings.rb +9 -0
  35. data/features/manage_refinery_settings.feature +5 -0
  36. data/features/step_definitions/setting_steps.rb +9 -0
  37. data/features/support/paths.rb +14 -0
  38. data/lib/gemspec.rb +33 -0
  39. data/lib/generators/refinerycms_settings_generator.rb +8 -0
  40. data/lib/refinerycms-settings.rb +26 -0
  41. data/license.md +21 -0
  42. data/readme.md +55 -0
  43. data/refinerycms-settings.gemspec +84 -0
  44. data/spec/models/refinery_setting_spec.rb +101 -0
  45. metadata +112 -0
@@ -0,0 +1,25 @@
1
+ sl:
2
+ activerecord:
3
+ models:
4
+ refinery_setting: Refinery nastavitve
5
+ attributes:
6
+ refinery_setting:
7
+ name: Ime
8
+ value: Vrednost
9
+ admin:
10
+ refinery_settings:
11
+ delete: Odstrani nastavitev
12
+ edit: Uredi nastavitev
13
+ index:
14
+ new: Dodaj novo nastavitev
15
+ empty_set: Tretnutno ni nobene nastavitve.
16
+ create_first: "Kliknite '%{link}' da boste dodali vašo prvo nastavitev."
17
+ form:
18
+ enabled: "Da, omogoči to nastavitev."
19
+ restart_may_be_in_order_html: "<strong>Prosimo upoštevajte</strong> da boste morali včasih ponovno zagnati spletno stran, da bo nastavitev stopila v veljavo."
20
+ yes_make_this_setting_restricted: Da, ta nastavitev naj bo omejena samo na super-uporabnike.
21
+ help:
22
+ restricted: To omogoča da nastavitev lahko vidijo in urejajo samo super-uporabniki (kot ste vi).
23
+ plugins:
24
+ refinery_settings:
25
+ title: Nastavitve
@@ -0,0 +1,45 @@
1
+ sv:
2
+ plugins:
3
+ refinery_settings:
4
+ title: Inställningar
5
+ description: Hantera inställningar i Refinery
6
+ admin:
7
+ refinery_settings:
8
+ delete: Ta bort den här inställningen för alltid
9
+ edit: Redigera den här inställningen
10
+ index:
11
+ new: Lägg till ny inställning
12
+ empty_set: Det finns inga inställningar ännu.
13
+ create_first: "Klicka '%{link}' för att lägga till din första inställning."
14
+ form:
15
+ enabled: "Ja, aktivera den här inställningen."
16
+ restart_may_be_in_order_html: <strong>Var god notera</strong> att du kan behöva starta om webbplatsen för att den här inställningen ska träda i kraft.
17
+ yes_make_this_setting_restricted: "Ja, gör så att enbart huvudanvändare kan komma åt den här inställningen."
18
+ help:
19
+ restricted: Det här gör inställnigen synlig och redigerbar av huvudanvändare (tex. du).
20
+ activity_show_limit: Det här begränsar antalet rader som kan visas i din Dashboard.
21
+ analytics_page_code: Den här koden aktiverar Google Analytics på din webbplats. Om den här inställningen lämnas tom eller är installd till UA-xxxxx-x så är den avstängd.
22
+ frontend_refinery_stylesheets_enabled: Som standard så inkluderar Refinery stilmallar för gränssnittet som ger ett enkelt utseende utan att komma ivägen för dina egna stilmallar. Detta aktiveras eller inaktiveras med denna inställning.
23
+ image_dialogue_sizes: Den här inställningen gäller dialogen för att "Ladda upp en bild". Du behöver implementera olika tumnagelstorlekar såväl som ändra den här.
24
+ image_thumbnails: Om du ändrar den här inställningen så måste du återskapa dina bilder genom att köra rake images:regenerate (eller rake images:update om du bara har lagt till nya tumnaglar). Annars kommer inställningen inte gälla bilder som fanns innan ändringen
25
+ menu_hide_children: Dölj alla undersidor från huvudmenyn även om de är tillgängliga.
26
+ new_page_parts: Tillåt att lägga till nya innehållssektioner i sidredigeraren.
27
+ page_title: Här kan du ställa in CSS eller html tag. Du kan även ställa in brödsmulor (s.k. breadcrumbs) för sidans ursprung
28
+ pages_advanced_options_include_seo: Den här styr om huruvida sökmotoroptimering visas i de avancerade alternativen för en sida
29
+ preferred_image_view: Den här styr vilken vy tillägsprogrammet för bilder väljer att visa bilder i. 'Grid View' för rutnät eller 'List View' för lista. Det finns en knapp för att automatisera denna process i tillägsprogrammet.
30
+ refinery_enable_backend_reordering: Du kan ta bort möjligheten att ändra ordningen på plugins med den här inställningen.
31
+ refinery_menu_cache_action_suffix: Den här inställningen kontrollerar nyckeln som används för att buffra sidans meny. Om du använder ett tema är det bättre att lämna den här som standard för temat kommer hantera det ändå.
32
+ show_contact_privacy_link: Du kan välja att visa eller dölja Registerbeskrivning (privacy policy) bredvid skicka knappen.
33
+ site_name: Det här är webbplatsens namn och den kommer visas i huvudrubryken, Refinery och i foten på hemsidan.
34
+ theme: Fyll i namnet på det tema du vill aktivera. Det här tar effekt direkt och måste hitta ett existerande tema för att fungera.
35
+ use_google_ajax_libraries: Om du vill använda Googles AJAX CDN så välj true
36
+ use_marketable_urls: Ändra URLer från /pages/about till /about och hantera automatiskt konflikter med andra plugin
37
+ use_resource_caching: Rekomenderat att aktivera den här inställningen i produktionsläget då den buffrar javascript, stilmallar m.m. till ett enskilt paket att skicka vilket minimerar antalet kopplingar till din webbplats och snabbar upp laddningstiden.
38
+ activerecord:
39
+ models:
40
+ refinery_setting: inställning
41
+ attributes:
42
+ refinery_setting:
43
+ name: Namn
44
+ value: Värde
45
+ restricted: Begränsad
@@ -0,0 +1,47 @@
1
+ vi:
2
+ plugins:
3
+ refinery_settings:
4
+ title: Settings
5
+ description: Quản lý các thiết lập của Refinery
6
+ admin:
7
+ refinery_settings:
8
+ delete: Xóa thiết lập này vĩnh viễn
9
+ edit: Chỉnh sửa thiết lập này
10
+ index:
11
+ new: Thêm thiết lập mới
12
+ empty_set: Chưa có thiết lập nào cả.
13
+ create_first: "Bấm vào đây '%{link}' để thêm thiết lập đầu tiên của bạn."
14
+ form:
15
+ enabled: "OK, kích hoạt cài đặt này."
16
+ restart_may_be_in_order_html: <strong>Chú ý:</strong> có thể bạn cần phải khởi động lại trang web để thiết lập này có hiệu lực.
17
+ yes_make_this_setting_restricted: "OK, thiết lập này bị giới hạn cho superusers."
18
+ help:
19
+ restricted: Điều này làm cho các thiết lập chỉ hiển thị và chỉnh sửa bởi superusers (những người như bạn).
20
+ activity_show_limit: Điều này hạn chế số lượng hàng có thể hiển thị trong danh sách Bảng điều khiển.
21
+ analytics_page_code: "Mã này kích hoạt Google Analytics theo dõi trong trang web của bạn. Nếu thiết lập được để trống, hoặc có dạng UA-xxxxxx-x có nghĩa là vô hiệu hoá và không có tương tác với Google Analytics được thực hiện."
22
+ frontend_refinery_stylesheets_enabled: "Theo mặc định, Refinery bao gồm các stylesheets cho frontend, mà sẽ không ảnh hưởng các stylesheets riêng của bạn, kích hoạt hay vô hiệu hóa bằng cách thiết lập này."
23
+ image_dialogue_sizes: Thiết lập này áp dụng cho các Insert Image box. Bạn phải làm các kích thước thumbnail khác nhau cũng như thay đổi thiết lập này.
24
+ image_thumbnails: "Nếu bạn thay đổi cài đặt này, bạn sẽ phải tạo lại hình ảnh của bạn bằng cách chạy rake images:regenerate (hoặc rake images:update nếu bạn chỉ thêm vào hình thu nhỏ khác) nếu không thiết lập sẽ không áp dụng cho hình ảnh hiện tại."
25
+ menu_hide_children: Ẩn bất kỳ trang con từ trình đơn ngay cả khi nó có mặt.
26
+ new_page_parts: Kích hoạt tính năng bổ sung thêm bộ phận mới của trang (các phần nội dung) trong các phần để chỉnh sửa trang.
27
+ page_title: Đây là các tùy chọn rất phức tạp để thiết lập tiêu đề trang. Tại đây bạn có thể tùy chỉnh CSS hoặc tag hoặc thay đổi cấu trúc breadcrumb.
28
+ pages_advanced_options_include_seo: Các tùy chọn SEO được hiển thị trong các tùy chọn nâng cao cho một trang.
29
+ preferred_image_view: Thiết lập này điều khiển các trang mà các plugin về hình ảnh có thể hiển thị hình ảnh hiện có - dạng lưới cho 'Grid View" và dạng danh sách cho "List View". Có một nút để tự động hóa quá trình này trên những hình ảnh plugin chính nó.
30
+ refinery_enable_backend_reordering: Bạn có thể loại bỏ khả năng sắp xếp lại thứ tự hiển thị của plugin này.
31
+ refinery_menu_cache_action_suffix: Thiết lập này điều khiển phím được sử dụng để cache menu của trang web. Nếu bạn đang sử dụng một theme thì tốt hơn là để như mặc định bởi vì theme sẽ xử lý nó.
32
+ show_contact_privacy_link: Bạn có thể ẩn hoặc hiển thị các liên kết đến trang privacy policy trên các form liên lạc bằng nút Submit.
33
+ site_name: "Đây là tên trang web của bạn và sẽ hiển thị trong phần đầu, trong trang admin của Refinery và trong phần bản quyền ở phần footer cho một số theme."
34
+ theme: Nhập tên của theme mà bạn muốn hiển thị. Điều này sẽ có hiệu lực ngay lập tức. Nhớ là bạn phải viết tên theme chính các thì tùy chỉnh này mới hoạt động.
35
+ use_google_ajax_libraries: Nếu bạn muốn sử dụng Google AJAX CDN thì đặt thiết lập này là true.
36
+ use_marketable_urls: Thay đổi url từ /pages/about thành /about và tự động quản lý xung đột với các plugin khác.
37
+ use_resource_caching: Khuyến nghị để cho phép điều này trong chế độ production vì nó đóng gói javascript và stylesheet thành một gói tập tin duy nhất để giảm bớt số lượng web requests và tăng tốc độ site của bạn lên.
38
+ approximate_ascii: "Thiết lập này cho đúng nếu bạn sử dụng ký tự Latin với dấu và bỏ dấu trong tiêu đề của trang. Nó sẽ chuyển đổi các ký tự như ā, č, ž into a, c, z và bằng cách này những ký tự sẽ không xuất hiện kỳ lạ trong thanh địa chỉ của một số trình duyệt web."
39
+
40
+ activerecord:
41
+ models:
42
+ refinery_setting: Thiết lập
43
+ attributes:
44
+ refinery_setting:
45
+ name: Tên
46
+ value: Giá trị
47
+ restricted: Giới hạn
@@ -0,0 +1,46 @@
1
+ zh-CN:
2
+ plugins:
3
+ refinery_settings:
4
+ title: 设置
5
+ description: Refinery 设置管理
6
+ admin:
7
+ refinery_settings:
8
+ delete: 永久删除此设置
9
+ edit: 编辑此设置
10
+ index:
11
+ new: 添加新设置
12
+ empty_set: 这里还没有任何设置.
13
+ create_first: "点击 '%{link}' 去添加您的第一个设置."
14
+ form:
15
+ enabled: "是的, 打开这个设置."
16
+ restart_may_be_in_order_html: <strong>请注意</strong> 您可能需要重启网站去使得此设置生效.
17
+ yes_make_this_setting_restricted: "是的, 使此设置限制为只能由超级用户修改."
18
+ help:
19
+ restricted: 这使得设置只能由超级用户(像您一样)可见和修改.
20
+ activity_show_limit: 这能限制控制面板列表项所显示的数量.
21
+ analytics_page_code: 这个代码可启动 Google Analytics 来跟踪您的网站. 如果这项设定留白或是设为 UA-xxxxxx-x 则表示为关闭这项功能并且不会有任何远程的 Google Analytics 呼叫发生.
22
+ frontend_refinery_stylesheets_enabled: "在默认的情况, Refinery 包含了不影响您个人样式表的默认 CSS 样式表给前台使用, 可借由这个设定来开启或是关闭这个选项."
23
+ image_dialogue_sizes: 这个设定可以生效插入图片的对话方框. 您必须完成不同大小的缩图并且改变它.
24
+ image_thumbnails: 如果您修改了这个选项, 您必须执行 rake images:regenerate (或是 rake image:update, 如果您只是增加了更多缩图), 否则这个设定将不会影响任何已存在网站上的图片.
25
+ menu_hide_children: 从选单中隐藏任何子页面, 即使它们是存在的.
26
+ new_page_parts: 开启在页面编辑器可新增新页面区块 (内容区) 的功能.
27
+ page_title: 提供非常复杂的选项让您设定页面标题. 在这里您可以设定自订的 CSS 类別或是不同的标签, 或是加上记录着页面层级关系的导览列.
28
+ pages_advanced_options_include_seo: 这可控制是否 SEO 选项会显示在页面上的高级选项中.
29
+ preferred_image_view: 这可控制图片插件如何呈现目前这些已存在网站上的图片 - grid 表示 '网格模式' 以及 list 表示 '列表模式'. 图片插件本身提供一个按钮可以自动切换这些模式.
30
+ refinery_enable_backend_reordering: 您可以移除可以重新排列插件显示顺序的功能.
31
+ refinery_menu_cache_action_suffix: 这可控制用来使用在快取网站选单的金钥. 如果您正在使用布景主题, 那最好不要改变默认值, 让布景主题来为您处里.
32
+ show_contact_privacy_link: 您可以隐藏或是显示在联络人表单确认按钮旁的隐私条款页面链接.
33
+ site_name: 这是您的网站名称, 它将会显示在网站标题, Refinery 的后台管理系统, 以及部份有页尾版权宣告的布景主题中.
34
+ theme: 输入您想要开启的布景主题名称. 它将会马上生效并且确认为是有效的名称.
35
+ use_google_ajax_libraries: 如果您想要使用 Google 的 AJAX CDN 请设定为 true.
36
+ use_marketable_urls: 将网址从 /pages/about 改变为 /about 并且自动处理与其他插件的冲突.
37
+ use_resource_caching: 建议在 production 模式中开启这个选项, 它会将 javascript assets 与样式表 assets 包裹成一个单一文件来减少您网站被请求的次数并且达到加速的效果.
38
+ approximate_ascii: 如果您使用带有口音或是变音符号的拉丁字母请设定为 true. 它会将像是 ā, č, ž 的字母转为 a, c, z , 在某些网页浏览器中, 这些字母就不会奇怪地出现在网址列上.
39
+ activerecord:
40
+ models:
41
+ refinery_setting: 设置
42
+ attributes:
43
+ refinery_setting:
44
+ name: 名称
45
+ value: 设置值
46
+ restricted: 限制
@@ -0,0 +1,46 @@
1
+ zh-TW:
2
+ plugins:
3
+ refinery_settings:
4
+ title: 設定
5
+ description: 管理 Refinery 設定值
6
+ admin:
7
+ refinery_settings:
8
+ delete: 永遠地移除這項設定值
9
+ edit: 編輯這項設定值
10
+ index:
11
+ new: 增加新設定值
12
+ empty_set: 目前沒有任何設定值.
13
+ create_first: "請按這兒 '%{link}' 加入您的第一個設定值."
14
+ form:
15
+ enabled: "是的, 啟動這項設定值."
16
+ restart_may_be_in_order_html: <strong>請注意</strong> 您必須重新啟動這個網站來讓設定值生效.
17
+ yes_make_this_setting_restricted: "是的, 讓這項設定只能被管理者修改."
18
+ help:
19
+ restricted: 這讓這項設定只能給有管理者權限的使用者 (像您一樣) 看見以及編輯.
20
+ activity_show_limit: 這可以限制在控制面板列出項目的數目.
21
+ analytics_page_code: 這個代碼可啟動 Google Analytics 來追蹤您的網站. 如果這項設定留白或是設為 UA-xxxxxx-x 表示為關閉這項功能並且不會有任何遠端的 Google Analytics 呼叫發生.
22
+ frontend_refinery_stylesheets_enabled: "在預設的情況, Refinery 包含了不影響您個人樣式表的預設 CSS 樣式表給前端使用, 可藉由這個設定來開啟或是關閉這個選項."
23
+ image_dialogue_sizes: 這個設定可以生效插入圖片的對話方框. 您必須完成不同大小的縮圖並且改變它.
24
+ image_thumbnails: 如果您修改了這個選項, 您必須執行 rake images:regenerate (或是 rake image:update, 如果您只是增加了更多縮圖), 否則這個設定將不會影響任何已存在網站上的圖片.
25
+ menu_hide_children: 從選單中隱藏任何次頁面, 即使它們是存在的.
26
+ new_page_parts: 開啟在頁面編輯器可新增新頁面區塊 (內容區) 的功能.
27
+ page_title: 提供非常複雜的選項讓您設定頁面標題. 在這裡你可以設定自訂的 CSS 類別或是不同的標籤, 或是加上紀錄著頁面層級關係的導覽列.
28
+ pages_advanced_options_include_seo: 這可控制是否 SEO 選項會顯示在頁面上的進階選項中.
29
+ preferred_image_view: 這可控制圖片插件如何呈現目前這些已存在網站上的圖片 - grid 表示 '格狀模式' 以及 list 表示 '列表模式'. 圖片插件本身提供一個按鈕可以自動切換這些模式.
30
+ refinery_enable_backend_reordering: 您可以移除可以重新排列插件顯示順序的功能.
31
+ refinery_menu_cache_action_suffix: 這可控制用來使用在快取網站選單的金鑰. 如果您正在使用佈景主題, 那最不要改變預設值, 讓佈景主題來為您處裡.
32
+ show_contact_privacy_link: 您可以隱藏或是顯示在聯絡人表單確認按鈕旁的隱私條款頁面連結.
33
+ site_name: 這是您的網站名稱, 它將會顯示在網站標題, Refinery 的後台管理系統, 以及部份有頁尾版權宣告的佈景主題中.
34
+ theme: 輸入您想要開啟的佈景主題名稱. 它將會馬上生效並且確認為是有效的名稱.
35
+ use_google_ajax_libraries: 如果您想要使用 Google 的 AJAX CDN 請設定為 true.
36
+ use_marketable_urls: 將網址從 /pages/about 改變為 /about 並且自動處理與其他插件的衝突.
37
+ use_resource_caching: 建議在 production 模式中開啟這個選項, 它會將 javascript assets 與樣式表 assets 包裹成一個單一檔案來減少您網站被請求的次數並且達到加速的效果.
38
+ approximate_ascii: 如果您使用帶有口音或是變音符號的拉丁字母請設定為 true. 它會將像是 ā, č, ž 的字母轉為 a, c, z , 在某些網頁瀏覽器中, 這些字母就不會奇怪地出現在網址列上.
39
+ activerecord:
40
+ models:
41
+ refinery_setting: 設定
42
+ attributes:
43
+ refinery_setting:
44
+ name: 名稱
45
+ value: 設定值
46
+ restricted: 限制
data/config/routes.rb ADDED
@@ -0,0 +1,8 @@
1
+ ::Refinery::Application.routes.draw do
2
+ scope(:path => 'refinery', :as => 'admin', :module => 'admin') do
3
+ resources :settings,
4
+ :except => :show,
5
+ :as => :refinery_settings,
6
+ :controller => :refinery_settings
7
+ end
8
+ end
@@ -0,0 +1,24 @@
1
+ class CreateRefinerycmsSettingsSchema < ActiveRecord::Migration
2
+ def self.up
3
+ create_table ::RefinerySetting.table_name, :force => true do |t|
4
+ t.string "name"
5
+ t.text "value"
6
+ t.boolean "destroyable", :default => true
7
+ t.datetime "created_at"
8
+ t.datetime "updated_at"
9
+ t.string "scoping"
10
+ t.boolean "restricted", :default => false
11
+ t.string "callback_proc_as_string"
12
+ end
13
+
14
+ add_index ::RefinerySetting.table_name, ["name"], :name => "index_#{::RefinerySetting.table_name}_on_name"
15
+ end
16
+
17
+ def self.down
18
+ [::RefinerySetting].reject{|m|
19
+ !(defined?(m) and m.respond_to?(:table_name))
20
+ }.each do |model|
21
+ drop_table model.table_name
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,9 @@
1
+ class AddValueTypeToRefinerySettings < ActiveRecord::Migration
2
+ def self.up
3
+ add_column ::RefinerySetting.table_name, :form_value_type, :string
4
+ end
5
+
6
+ def self.down
7
+ remove_column ::RefinerySetting.table_name, :form_value_type
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ @refinerycms @settings @settings-manage @refinery-settings
2
+ Feature: Manage Refinery Settings
3
+ In order to control the configuration of my website
4
+ As an administrator
5
+ I want to create and manage refinery settings
@@ -0,0 +1,9 @@
1
+ Given /^I have no (?:|refinery )settings$/ do
2
+ RefinerySetting.delete_all
3
+ end
4
+
5
+ Given /^I (only )?have a (?:|refinery )setting titled "([^\"]*)"$/ do |only, title|
6
+ RefinerySetting.delete_all if only
7
+
8
+ RefinerySetting.set(title.to_s.gsub(' ', '').underscore.to_sym, nil)
9
+ end
@@ -0,0 +1,14 @@
1
+ module NavigationHelpers
2
+ module Refinery
3
+ module Settings
4
+ def path_to(page_name)
5
+ case page_name
6
+ when /the list of (?:|refinery )settings/
7
+ admin_refinery_settings_path
8
+ else
9
+ nil
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
data/lib/gemspec.rb ADDED
@@ -0,0 +1,33 @@
1
+ require 'pathname'
2
+ gempath = Pathname.new(File.expand_path('../../', __FILE__))
3
+ require gempath.join('..', 'base', 'lib', 'base', 'refinery')
4
+
5
+ gemspec = <<EOF
6
+ # DO NOT EDIT THIS FILE DIRECTLY! Instead, use lib/gemspec.rb to generate it.
7
+
8
+ Gem::Specification.new do |s|
9
+ s.name = %q{#{gemname = 'refinerycms-settings'}}
10
+ s.version = %q{#{::Refinery.version}}
11
+ s.summary = %q{Settings engine for Refinery CMS}
12
+ s.description = %q{The default settings engine that is required by Refinery CMS core. Adds programmer creatable, user editable settings for each engine.}
13
+ s.date = %q{#{Time.now.strftime('%Y-%m-%d')}}
14
+ s.email = %q{info@refinerycms.com}
15
+ s.homepage = %q{http://refinerycms.com}
16
+ s.rubyforge_project = %q{refinerycms}
17
+ s.authors = ['Resolve Digital', 'Philip Arndt', 'David Jones', 'Steven Heidel']
18
+ s.license = %q{MIT}
19
+ s.require_paths = %w(lib)
20
+ s.executables = %w(#{Pathname.glob(gempath.join('bin/*')).map{|d| d.relative_path_from(gempath)}.sort.join(" ")})
21
+
22
+ s.files = [
23
+ '#{%w( **/{*,.rspec,.gitignore,.yardopts} ).map { |file| Pathname.glob(gempath.join(file)) }.flatten.reject{|f|
24
+ !f.exist? or f.to_s =~ /\.gem$/ or (f.directory? and f.children.empty?)
25
+ }.map{|d| d.relative_path_from(gempath)}.uniq.sort.join("',\n '")}'
26
+ ]
27
+
28
+ s.add_dependency 'refinerycms-base', '~> #{::Refinery::Version}'
29
+ end
30
+ EOF
31
+
32
+ (gemfile = gempath.join("#{gemname}.gemspec")).open('w') {|f| f.puts(gemspec)}
33
+ puts `cd #{gempath} && gem build #{gemfile}` if ARGV.any?{|a| a == "BUILD=true"}
@@ -0,0 +1,8 @@
1
+ require 'refinery/generators'
2
+
3
+ class RefinerycmsSettings < ::Refinery::Generators::EngineInstaller
4
+
5
+ source_root File.expand_path('../../../', __FILE__)
6
+ engine_name "settings"
7
+
8
+ end
@@ -0,0 +1,26 @@
1
+ require 'refinerycms-base'
2
+
3
+ module Refinery
4
+ module Settings
5
+
6
+ class << self
7
+ attr_accessor :root
8
+ def root
9
+ @root ||= Pathname.new(File.expand_path('../../', __FILE__))
10
+ end
11
+ end
12
+
13
+ class Engine < ::Rails::Engine
14
+ config.after_initialize do
15
+ ::Refinery::Plugin.register do |plugin|
16
+ plugin.name = "refinery_settings"
17
+ plugin.url = {:controller => "/admin/refinery_settings"}
18
+ plugin.version = %q{0.9.9}
19
+ plugin.menu_match = /(refinery|admin)\/(refinery_)?settings$/
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ ::Refinery.engines << 'settings'
data/license.md ADDED
@@ -0,0 +1,21 @@
1
+ # MIT License
2
+
3
+ Copyright (c) 2005-2010 [Resolve Digital](http://www.resolvedigital.com)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/readme.md ADDED
@@ -0,0 +1,55 @@
1
+ # Settings
2
+
3
+ ![Refinery Settings](http://refinerycms.com/system/images/0000/0666/settings.png)
4
+
5
+ ## About
6
+
7
+ Refinery comes out of the box with a full settings area that is populated with smart defaults to avoid configuration.
8
+
9
+ ## Settings of Interest
10
+
11
+ Here's an overview of what comes out of the box
12
+
13
+ ### Google Analytics
14
+
15
+ Just edit the setting called "Analytics Page Code" and enter just your account number. It will look something like this
16
+
17
+ UA-XXXXXX-X
18
+
19
+ Save this and Refinery will automatically note you have set the page code up and start rendering it on the front end so tracking can begin.
20
+
21
+ ### Firebug Lite Support
22
+
23
+ [Firebug lite](http://getfirebug.com/lite) is fantastic for debugging your site in Internet Explorer.
24
+
25
+ Set the 'Show Firebug Lite' setting to ``true`` and you'll be able to debug your views in Internet Explorer in no time.
26
+
27
+ _Note: you'll want to turn this off once your site is live_
28
+
29
+ ### Use Google Ajax Libraries
30
+
31
+ This setting will automatically change your AJAX libraries to use the ones delivered by Google's CDN (Content Delivery Network) which means your Javascript will be cached and delivery as quickly as possible.
32
+
33
+ ## How do I Make my Own Settings?
34
+
35
+ Settings can be really useful, especially when you have custom display logic or new plugins that need to behave in different ways.
36
+
37
+ To best explain how settings work let's use an example. Say you have a client who has a display in a local trade show every year and 2 months before the trade show they want to display a little banner in the header of all pages.
38
+
39
+ But once the trade show is finished, the client needs to be able to hide it again until next year. This is what my ``application.html.erb`` file might look like:
40
+
41
+ ...
42
+ <div id='header'>
43
+ <h1>My Company</h1>
44
+
45
+ <% if RefinerySetting.find_or_set(:show_trade_show_banner, false) %>
46
+ <%= image_tag ('trade-show-banner.jpg') %>
47
+ <% end %>
48
+ </div>
49
+ ...
50
+
51
+ The following will automatically create a new Refinery setting called "show_trade_show_banner" and default it to ``false``. If that setting already exists, it just reads in what the current value is.
52
+
53
+ So as you can see this is quite clever because you can quickly define new settings and their defaults right from the view as you need them.
54
+
55
+ This setting would then show up in the backend in the 'Settings' area where the client could change the value as their trade show approaches. Easy as pie!
@@ -0,0 +1,84 @@
1
+ # DO NOT EDIT THIS FILE DIRECTLY! Instead, use lib/gemspec.rb to generate it.
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{refinerycms-settings}
5
+ s.version = %q{0.9.9.1}
6
+ s.summary = %q{Settings engine for Refinery CMS}
7
+ s.description = %q{The default settings engine that is required by Refinery CMS core. Adds programmer creatable, user editable settings for each engine.}
8
+ s.date = %q{2011-02-15}
9
+ s.email = %q{info@refinerycms.com}
10
+ s.homepage = %q{http://refinerycms.com}
11
+ s.rubyforge_project = %q{refinerycms}
12
+ s.authors = ['Resolve Digital', 'Philip Arndt', 'David Jones', 'Steven Heidel']
13
+ s.license = %q{MIT}
14
+ s.require_paths = %w(lib)
15
+ s.executables = %w()
16
+
17
+ s.files = [
18
+ 'app',
19
+ 'app/controllers',
20
+ 'app/controllers/admin',
21
+ 'app/controllers/admin/refinery_settings_controller.rb',
22
+ 'app/helpers',
23
+ 'app/helpers/refinery_settings_helper.rb',
24
+ 'app/models',
25
+ 'app/models/refinery_setting.rb',
26
+ 'app/views',
27
+ 'app/views/admin',
28
+ 'app/views/admin/refinery_settings',
29
+ 'app/views/admin/refinery_settings/_form.html.erb',
30
+ 'app/views/admin/refinery_settings/_refinery_setting.html.erb',
31
+ 'app/views/admin/refinery_settings/_refinery_settings.html.erb',
32
+ 'app/views/admin/refinery_settings/edit.html.erb',
33
+ 'app/views/admin/refinery_settings/index.html.erb',
34
+ 'app/views/admin/refinery_settings/new.html.erb',
35
+ 'config',
36
+ 'config/locales',
37
+ 'config/locales/cs.yml',
38
+ 'config/locales/da.yml',
39
+ 'config/locales/de.yml',
40
+ 'config/locales/el.yml',
41
+ 'config/locales/en.yml',
42
+ 'config/locales/es.yml',
43
+ 'config/locales/fr.yml',
44
+ 'config/locales/it.yml',
45
+ 'config/locales/lolcat.yml',
46
+ 'config/locales/lt.yml',
47
+ 'config/locales/lv.yml',
48
+ 'config/locales/nb.yml',
49
+ 'config/locales/nl.yml',
50
+ 'config/locales/pl.yml',
51
+ 'config/locales/pt-BR.yml',
52
+ 'config/locales/rs.yml',
53
+ 'config/locales/ru.yml',
54
+ 'config/locales/sl.yml',
55
+ 'config/locales/sv.yml',
56
+ 'config/locales/vi.yml',
57
+ 'config/locales/zh-CN.yml',
58
+ 'config/locales/zh-TW.yml',
59
+ 'config/routes.rb',
60
+ 'db',
61
+ 'db/migrate',
62
+ 'db/migrate/20100913234710_create_refinerycms_settings_schema.rb',
63
+ 'db/migrate/20100926142529_add_value_type_to_refinery_settings.rb',
64
+ 'features',
65
+ 'features/manage_refinery_settings.feature',
66
+ 'features/step_definitions',
67
+ 'features/step_definitions/setting_steps.rb',
68
+ 'features/support',
69
+ 'features/support/paths.rb',
70
+ 'lib',
71
+ 'lib/gemspec.rb',
72
+ 'lib/generators',
73
+ 'lib/generators/refinerycms_settings_generator.rb',
74
+ 'lib/refinerycms-settings.rb',
75
+ 'license.md',
76
+ 'readme.md',
77
+ 'refinerycms-settings.gemspec',
78
+ 'spec',
79
+ 'spec/models',
80
+ 'spec/models/refinery_setting_spec.rb'
81
+ ]
82
+
83
+ s.add_dependency 'refinerycms-base', '~> 0.9.9.1'
84
+ end
@@ -0,0 +1,101 @@
1
+ require 'spec_helper'
2
+
3
+ describe RefinerySetting do
4
+
5
+ before(:each) do
6
+ RefinerySetting.set(:creating_from_scratch, nil)
7
+ RefinerySetting.set(:rspec_testing_creating_from_scratch, nil)
8
+ end
9
+
10
+ context "set" do
11
+ it "should create a setting that didn't exist" do
12
+ RefinerySetting.get(:creating_from_scratch, :scoping => 'rspec_testing').should == nil
13
+ RefinerySetting.set(:creating_from_scratch, {:value => "Look, a value", :scoping => 'rspec_testing'}).should == "Look, a value"
14
+ end
15
+
16
+ it "should override an existing setting" do
17
+ @set = RefinerySetting.set(:creating_from_scratch, {:value => "a value", :scoping => 'rspec_testing'})
18
+ @set.should == "a value"
19
+
20
+ @new_set = RefinerySetting.set(:creating_from_scratch, {:value => "newer replaced value", :scoping => 'rspec_testing'})
21
+ @new_set.should == "newer replaced value"
22
+ end
23
+
24
+ it "should default to form_value_type text_area" do
25
+ @set = RefinerySetting.set(:creating_from_scratch, {:value => "a value", :scoping => 'rspec_testing'})
26
+ RefinerySetting.find_by_name(:creating_from_scratch.to_s, :conditions => {:scoping => 'rspec_testing'}).form_value_type.should == "text_area"
27
+ end
28
+
29
+ it "should fix true as a value to 'true' (string)" do
30
+ @set = RefinerySetting.set(:creating_from_scratch, {:value => true, :scoping => 'rspec_testing'})
31
+ RefinerySetting.find_by_name(:creating_from_scratch.to_s, :conditions => {:scoping => 'rspec_testing'})[:value].should == 'true'
32
+ @set.should == true
33
+ end
34
+
35
+ it "should fix false as a value to 'false' (string)" do
36
+ @set = RefinerySetting.set(:creating_from_scratch, {:value => false, :scoping => 'rspec_testing'})
37
+ RefinerySetting.find_by_name(:creating_from_scratch.to_s, :conditions => {:scoping => 'rspec_testing'})[:value].should == 'false'
38
+ @set.should == false
39
+ end
40
+
41
+ it "should fix '1' as a value with a check_box form_value_type to true" do
42
+ @set = RefinerySetting.set(:creating_from_scratch, {:value => "1", :scoping => 'rspec_testing', :form_value_type => 'check_box'})
43
+ RefinerySetting.find_by_name(:creating_from_scratch.to_s, :conditions => {:scoping => 'rspec_testing'})[:value].should == 'true'
44
+ @set.should == true
45
+ end
46
+
47
+ it "should fix '0' as a value with a check_box form_value_type to false" do
48
+ @set = RefinerySetting.set(:creating_from_scratch, {:value => "0", :scoping => 'rspec_testing', :form_value_type => 'check_box'})
49
+ RefinerySetting.find_by_name(:creating_from_scratch.to_s, :conditions => {:scoping => 'rspec_testing'})[:value].should == 'false'
50
+ @set.should == false
51
+ end
52
+ end
53
+
54
+ context "get" do
55
+ it "should retrieve a seting that was created" do
56
+ @set = RefinerySetting.set(:creating_from_scratch, {:value => "some value", :scoping => 'rspec_testing'})
57
+ @set.should == 'some value'
58
+
59
+ @get = RefinerySetting.get(:creating_from_scratch, :scoping => 'rspec_testing')
60
+ @get.should == 'some value'
61
+ end
62
+
63
+ it "should also work with setting scoping using string and getting via symbol" do
64
+ @set = RefinerySetting.set(:creating_from_scratch, {:value => "some value", :scoping => 'rspec_testing'})
65
+ @set.should == 'some value'
66
+
67
+ @get = RefinerySetting.get(:creating_from_scratch, :scoping => :rspec_testing)
68
+ @get.should == 'some value'
69
+ end
70
+
71
+ it "should also work with setting scoping using symbol and getting via string" do
72
+ @set = RefinerySetting.set(:creating_from_scratch, {:value => "some value", :scoping => :rspec_testing})
73
+ @set.should == 'some value'
74
+
75
+ @get = RefinerySetting.get(:creating_from_scratch, :scoping => 'rspec_testing')
76
+ @get.should == 'some value'
77
+ end
78
+ end
79
+
80
+ context "find_or_set" do
81
+ it "should create a non existant setting" do
82
+ @created = RefinerySetting.find_or_set(:creating_from_scratch, 'I am a setting being created', :scoping => 'rspec_testing')
83
+
84
+ @created.should == "I am a setting being created"
85
+ end
86
+
87
+ it "should not override an existing setting" do
88
+ @created = RefinerySetting.set(:creating_from_scratch, {:value => 'I am a setting being created', :scoping => 'rspec_testing'})
89
+ @created.should == "I am a setting being created"
90
+
91
+ @find_or_set_created = RefinerySetting.find_or_set(:creating_from_scratch, 'Trying to change an existing value', :scoping => 'rspec_testing')
92
+
93
+ @created.should == "I am a setting being created"
94
+ end
95
+
96
+ it "should work without scoping" do
97
+ RefinerySetting.find_or_set(:rspec_testing_creating_from_scratch, 'Yes it worked').should == 'Yes it worked'
98
+ end
99
+ end
100
+
101
+ end