refinerycms 0.9.8 → 0.9.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. data/Gemfile +6 -6
  2. data/app/controllers/application_controller.rb +2 -1
  3. data/bin/refinerycms +36 -32
  4. data/changelog.md +471 -0
  5. data/config/environments/production.rb +1 -1
  6. data/db/migrate/20100606135207_change_thumbnail_sizes_for_dragonfly.rb +4 -4
  7. data/db/migrate/20100826232810_move_inquiry_settings_to_refinery_settings.rb +2 -2
  8. data/db/migrate/20100831122919_move_page_to_nested_set.rb +28 -0
  9. data/db/schema.rb +7 -1
  10. data/db/seeds/refinery_settings.rb +2 -4
  11. data/license.md +21 -0
  12. data/readme.md +97 -0
  13. data/todo.md +61 -0
  14. data/vendor/refinerycms/authentication/app/views/admin/users/index.html.erb +5 -13
  15. data/vendor/refinerycms/authentication/app/views/layouts/login.html.erb +1 -1
  16. data/vendor/refinerycms/authentication/config/locales/de.yml +53 -56
  17. data/vendor/refinerycms/authentication/config/locales/en.yml +1 -2
  18. data/vendor/refinerycms/authentication/config/locales/lv.yml +38 -38
  19. data/vendor/refinerycms/authentication/config/locales/pt-BR.yml +21 -48
  20. data/vendor/refinerycms/authentication/features/lost_password.feature +40 -0
  21. data/vendor/refinerycms/authentication/features/manage_users.feature +57 -0
  22. data/vendor/refinerycms/authentication/features/step_definitions/lost_password.rb +8 -0
  23. data/vendor/refinerycms/authentication/features/step_definitions/user_steps.rb +32 -0
  24. data/vendor/refinerycms/authentication/features/support/factories.rb +17 -0
  25. data/vendor/refinerycms/authentication/features/support/paths.rb +24 -0
  26. data/vendor/refinerycms/authentication/lib/authenticated_system.rb +1 -1
  27. data/vendor/refinerycms/authentication/lib/authentication.rb +1 -1
  28. data/vendor/refinerycms/core/app/views/admin/_head.html.erb +4 -4
  29. data/vendor/refinerycms/core/app/views/admin/_menu_tab.html.erb +2 -2
  30. data/vendor/refinerycms/core/app/views/layouts/admin.html.erb +1 -1
  31. data/vendor/refinerycms/core/app/views/layouts/admin_dialog.html.erb +1 -1
  32. data/vendor/refinerycms/core/app/views/shared/_footer.html.erb +1 -1
  33. data/vendor/refinerycms/core/app/views/shared/_google_analytics.html.erb +1 -1
  34. data/vendor/refinerycms/core/app/views/shared/_header.html.erb +1 -1
  35. data/vendor/refinerycms/core/app/views/shared/_menu.html.erb +5 -2
  36. data/vendor/refinerycms/core/app/views/shared/_menu_branch.html.erb +6 -3
  37. data/vendor/refinerycms/core/app/views/shared/_site_bar.html.erb +11 -15
  38. data/vendor/refinerycms/core/app/views/shared/admin/_form_actions.html.erb +1 -0
  39. data/vendor/refinerycms/core/app/views/shared/admin/_image_picker.html.erb +3 -3
  40. data/vendor/refinerycms/core/app/views/shared/admin/_make_sortable.html.erb +2 -1
  41. data/vendor/refinerycms/core/app/views/shared/admin/_resource_picker.html.erb +24 -17
  42. data/vendor/refinerycms/core/app/views/wymiframe.html.erb +1 -1
  43. data/vendor/refinerycms/core/config/locales/de.yml +50 -51
  44. data/vendor/refinerycms/core/config/locales/en.yml +5 -2
  45. data/vendor/refinerycms/core/config/locales/lv.yml +6 -3
  46. data/vendor/refinerycms/core/config/locales/pt-BR.yml +34 -38
  47. data/vendor/refinerycms/core/crud.md +12 -12
  48. data/vendor/refinerycms/core/features/engine_generator.feature +27 -0
  49. data/vendor/refinerycms/core/features/search.feature +56 -0
  50. data/vendor/refinerycms/core/features/site_bar.feature +24 -0
  51. data/vendor/refinerycms/core/features/step_definitions/core_steps.rb +61 -0
  52. data/vendor/refinerycms/core/features/step_definitions/engine_generator_steps.rb +19 -0
  53. data/vendor/refinerycms/core/features/step_definitions/generator_steps.rb +11 -0
  54. data/vendor/refinerycms/core/features/support/paths.rb +14 -0
  55. data/vendor/refinerycms/core/features/uploads/beach.jpeg +0 -0
  56. data/vendor/refinerycms/core/features/uploads/refinery_is_awesome.txt +1 -0
  57. data/vendor/refinerycms/core/lib/core.rb +52 -53
  58. data/vendor/refinerycms/core/lib/generators/refinery_engine/refinery_engine_generator.rb +14 -3
  59. data/vendor/refinerycms/core/lib/generators/refinery_engine/templates/app/controllers/admin/plural_name_controller.rb +3 -1
  60. data/vendor/refinerycms/core/lib/generators/refinery_engine/templates/app/models/singular_name.rb +4 -3
  61. data/vendor/refinerycms/core/lib/generators/refinery_engine/templates/app/views/admin/plural_name/_form.html.erb +2 -1
  62. data/vendor/refinerycms/core/lib/generators/refinery_engine/templates/app/views/admin/plural_name/_singular_name.html.erb +6 -2
  63. data/vendor/refinerycms/core/lib/generators/refinery_engine/templates/app/views/plural_name/index.html.erb +3 -1
  64. data/vendor/refinerycms/core/lib/generators/refinery_engine/templates/app/views/plural_name/show.html.erb +7 -3
  65. data/vendor/refinerycms/core/lib/refinery/application_controller.rb +85 -75
  66. data/vendor/refinerycms/core/lib/refinery/application_helper.rb +10 -190
  67. data/vendor/refinerycms/core/lib/refinery/crud.rb +283 -0
  68. data/vendor/refinerycms/core/lib/refinery/{form_helpers.rb → helpers/form_helper.rb} +0 -0
  69. data/vendor/refinerycms/core/lib/refinery/helpers/html_truncation_helper.rb +26 -0
  70. data/vendor/refinerycms/core/lib/refinery/helpers/image_helper.rb +37 -0
  71. data/vendor/refinerycms/core/lib/refinery/helpers/menu_helper.rb +38 -0
  72. data/vendor/refinerycms/core/lib/refinery/helpers/meta_helper.rb +67 -0
  73. data/vendor/refinerycms/core/lib/refinery/helpers/script_helper.rb +36 -0
  74. data/vendor/refinerycms/core/lib/refinery/helpers/site_bar_helper.rb +26 -0
  75. data/vendor/refinerycms/core/lib/refinery/helpers/tag_helper.rb +19 -0
  76. data/vendor/refinerycms/core/lib/refinery/helpers/translation_helper.rb +17 -0
  77. data/vendor/refinerycms/core/lib/refinery/plugin.rb +3 -3
  78. data/vendor/refinerycms/core/lib/tasks/refinery.rake +4 -3
  79. data/vendor/refinerycms/core/public/javascripts/refinery/admin.js +93 -101
  80. data/vendor/refinerycms/core/public/javascripts/refinery/core.js +3 -0
  81. data/vendor/refinerycms/core/public/javascripts/refinery/nestedsortables.js +164 -0
  82. data/vendor/refinerycms/core/public/javascripts/refinery/serializelist.js +66 -0
  83. data/vendor/refinerycms/core/public/stylesheets/refinery/refinery.css +11 -73
  84. data/vendor/refinerycms/dashboard/config/locales/de.yml +6 -6
  85. data/vendor/refinerycms/dashboard/config/locales/pt-BR.yml +3 -5
  86. data/vendor/refinerycms/dashboard/features/dashboard.feature +54 -0
  87. data/vendor/refinerycms/dashboard/features/support/paths.rb +14 -0
  88. data/vendor/refinerycms/images/app/controllers/admin/images_controller.rb +6 -6
  89. data/vendor/refinerycms/images/app/helpers/admin/images_helper.rb +1 -1
  90. data/vendor/refinerycms/images/app/views/admin/images/_existing_image.html.erb +15 -13
  91. data/vendor/refinerycms/images/app/views/admin/images/_grid_view.html.erb +1 -1
  92. data/vendor/refinerycms/images/app/views/admin/images/_list_view_image.html.erb +1 -1
  93. data/vendor/refinerycms/images/config/locales/de.yml +21 -25
  94. data/vendor/refinerycms/images/config/locales/pt-BR.yml +13 -23
  95. data/vendor/refinerycms/images/features/manage_images.feature +48 -0
  96. data/vendor/refinerycms/images/features/step_definitions/image_steps.rb +37 -0
  97. data/vendor/refinerycms/images/features/support/paths.rb +17 -0
  98. data/vendor/refinerycms/images/features/uploads/beach.jpeg +0 -0
  99. data/vendor/refinerycms/images/features/uploads/id-rather-be-here.jpg +0 -0
  100. data/vendor/refinerycms/images/features/uploads/refinery_is_awesome.txt +1 -0
  101. data/vendor/refinerycms/images/lib/images.rb +6 -0
  102. data/vendor/refinerycms/images/readme.md +12 -36
  103. data/vendor/refinerycms/pages/app/controllers/admin/pages_controller.rb +4 -42
  104. data/vendor/refinerycms/pages/app/controllers/pages_controller.rb +1 -1
  105. data/vendor/refinerycms/pages/app/models/page.rb +3 -4
  106. data/vendor/refinerycms/pages/app/sweepers/page_sweeper.rb +18 -0
  107. data/vendor/refinerycms/pages/app/views/admin/pages/_form_advanced_options.html.erb +1 -1
  108. data/vendor/refinerycms/pages/app/views/admin/pages/_page.html.erb +6 -5
  109. data/vendor/refinerycms/pages/config/locales/de.yml +66 -36
  110. data/vendor/refinerycms/pages/config/locales/pt-BR.yml +29 -57
  111. data/vendor/refinerycms/pages/features/manage_pages.feature +45 -0
  112. data/vendor/refinerycms/pages/features/step_definitions/page_steps.rb +29 -0
  113. data/vendor/refinerycms/pages/features/support/paths.rb +18 -0
  114. data/vendor/refinerycms/pages/lib/pages.rb +5 -0
  115. data/vendor/refinerycms/pages/spec/models/page_spec.rb +13 -0
  116. data/vendor/refinerycms/refinery.rb +1 -1
  117. data/vendor/refinerycms/resources/app/views/admin/resources/_existing_resource.html.erb +2 -2
  118. data/vendor/refinerycms/resources/config/locales/de.yml +16 -17
  119. data/vendor/refinerycms/resources/config/locales/pt-BR.yml +15 -17
  120. data/vendor/refinerycms/resources/features/manage_files.feature +39 -0
  121. data/vendor/refinerycms/resources/features/step_definitions/file_steps.rb +21 -0
  122. data/vendor/refinerycms/resources/features/support/paths.rb +17 -0
  123. data/vendor/refinerycms/resources/features/uploads/beach.jpeg +0 -0
  124. data/vendor/refinerycms/resources/features/uploads/refinery_is_awesome.txt +1 -0
  125. data/vendor/refinerycms/resources/lib/resources.rb +17 -1
  126. data/vendor/refinerycms/settings/app/models/refinery_setting.rb +82 -64
  127. data/vendor/refinerycms/settings/config/locales/de.yml +36 -16
  128. data/vendor/refinerycms/settings/config/locales/pt-BR.yml +32 -34
  129. data/vendor/refinerycms/settings/features/manage_refinery_settings.feature +5 -0
  130. data/vendor/refinerycms/settings/lib/settings.rb +1 -1
  131. metadata +86 -53
  132. data/vendor/refinerycms/core/lib/crud.rb +0 -265
  133. data/vendor/refinerycms/core/lib/refinery/html_truncation_helper.rb +0 -22
  134. data/vendor/refinerycms/core/public/javascripts/jquery/jquery.nestedsortables.js +0 -186
@@ -1,31 +1,14 @@
1
1
  pt-BR:
2
2
  plugins:
3
- pages:
4
- title: Páginas
5
- article: as
6
3
  refinery_pages:
7
4
  title: Páginas
8
- article: as
9
- activerecord:
10
- models:
11
- page: Página
12
- attributes:
13
- page:
14
- title: Título
15
- parent_id: Pai
16
- custom_title: Título personalizado
17
- skip_to_first_child: Pular para primeiro filho?
18
- link_url: URL Personalizada
19
- browser_title: Título do navegador
20
- meta_description_help: Meta palavras-chave
21
- meta_description_help: Meta descrição
22
- show_in_menu: Mostrar no menu
5
+ description: Gerenciar páginas
23
6
  admin:
24
7
  pages_dialogs:
25
- not_allowed: Você não ter permissão para acessar esta funcionalidade.
26
8
  page_link:
27
- link_to_this_page: Redirecionar para esta página
9
+ link_to_this_page: Link para esta página
28
10
  link_to:
11
+ insert: Inserir
29
12
  your_page:
30
13
  tab_name: Sua página
31
14
  web_address:
@@ -41,71 +24,60 @@ pt-BR:
41
24
  subject_line_optional: Título opcional
42
25
  body_optional: Corpo opcional
43
26
  not_sure: Não sabe ao certo o que colocar na caixa acima?
44
- step1: "Escreva ou copie e cole (ex. do seu catálogo de email) o endereço de email e coloque dentro do '<strong>Email address</strong>' na caixa acima."
45
- step2: "Use o '<strong>Subject Line</strong>' na caixa acima se você quer que a mensagem seja composta por <strong>pre-written subject line</strong>."
27
+ step1: "Escreva ou copie e cole (ex. do seu catálogo de email) o endereço de email e coloque dentro do <strong>Email address</strong> na caixa acima."
28
+ step2: "Use o <strong>Subject Line</strong> na caixa acima se você quer que a mensagem seja composta por <strong>pre-written subject line</strong>."
46
29
  step3: "Use o <strong>Email Body</strong> na caixa acima se você quer que a mensagem seja composta por <strong>pre-written message</strong>."
47
30
  your_resource:
48
31
  tab_name: Seu arquivo
49
32
  link_to_this_resource: Link para este arquivo
50
33
  pages:
34
+ delete: Remover esta página para sempre
35
+ edit: Editar esta página
51
36
  page:
52
37
  view_live: Vizualizar essa página agora <br/><em>(irá abrir uma nova janela)</em>
53
- edit_this_page: Editar essa página
54
- confirm_delete_page_title: Remover essa página
55
- confirm_delete_page_message: "Você tem certeza que quer deletar a página '%{title}'?"
56
- hidden: oculta
57
- draft: rascunho
38
+ hidden: escondida
39
+ draft: Rascunho
58
40
  form_new_page_parts:
59
41
  title: Título
42
+ form_page_parts:
43
+ create_content_section: Criar seção de conteúdo
44
+ delete_content_section: Apagar seção de conteúdo
60
45
  form_advanced_options:
61
46
  toggle_advanced_options: Clique aqui para acessar as configurações de meta tag e opções do menu
62
- create_content_section: Criar seção de conteúdo
63
- delete_content_section: Remover seção de conteúdo
64
- advanced_options: Opções Avançadas
65
- explain_page_different_title: Se você deseja que a página possua um título diferente do que o que aparece no menu e no título do navegador, então entre ele aqui.
66
- redirect_to_first_child: "Marque esta caixa se você quiser que o visitante seja redirecionado para o primeiro filho desta página se esta página for selecionada."
67
- title_type: "Tipo:"
47
+ page_options: Opções de página
48
+ parent_page: Página pai
49
+ advanced_options: Opções avançadas
50
+ custom_title: Título opcional
68
51
  title_types:
69
52
  none: Nenhum
70
53
  text: Texto
71
- image: Imagem
72
- custom_url: URL personalizada
73
- custom_url_explanation: "Entre uma URL caso esta página se ligue a site externo ou a um recurso pré-existente, p.e. uma página de contato. <br/> Nota: Esta URL deve apontar para uma localização existente; uma nova não será criada."
74
- draft: Rascunho
75
- show_in_menu_description: Marque esta caixa se esta página deve aparecer no menu do site
76
- save_as_draft: Salvar como Rascunho
77
- save: Salvar
78
- cancel: Cancelar
79
54
  show_in_menu_title: Mostrar no menu
80
55
  show_in_menu_description: Mostra esta página no menu do site
81
56
  show_in_menu_help: "Desmarque está opção caso queira remover a página do menu do site. Pode ser útil caso queira linkar um outra página para esta, mas não quer que esta apareça no menu do site."
57
+ save_as_draft: Salvar como rascunho
82
58
  skip_to_first_child: Pular esta página
83
59
  skip_to_first_child_label: Redieciona os visitante para a primeira página a baixo desta no menu.
84
- skip_to_first_child_help: "Está opção faz com que o link desta página aponte para o primeiro link do menu a baixo dessa."
85
- link_url: "Redirecionar esta página para outro site ou página"
60
+ skip_to_first_child_help: "Está opção faz com que o link desta página aponte para o primeiro link do menu a baixo dessa. Usado quando você tem sub-páginas."
61
+ link_url: "Redirecionar esta página para outro site ou página."
86
62
  link_url_help: "Se você quer que esta página seja redicionada para outro site ou página quando você clicar nesta página no menu, digite a URL. ex. http://google.com ou deixe em branco."
87
- parent_page: Página pai
88
63
  parent_page_help: "Se você quer colocar está página a baixo de outra página no menu, selecione qual página aqui ou deixe em branco caso queria a página na raiz do menu."
89
- custom_title: Título opcional
90
64
  custom_title_help: "Se você quer que a página tenha um título diferente do que é mostrado no menu então selecione &apos;Texto&apos; e digite o novo título."
91
65
  form_advanced_options_seo:
92
66
  seo: Otimização de Motor de Busca
93
- seo_override_title: Se você quiser sobrescrever o título padrão do navegador, faça isso aqui.
94
- seo_override_title_help: Se você quiser substituir o título do navegador padrão, fazê-lo aqui.
95
- meta_keywords_title: Meta palavras-chave
96
- meta_keywords_help: Digite entre 5-10 palavras-chave que se relacionam a esta página. Separe as palavras-chave por vírgula.
67
+ seo_override_title: Título para a busca
68
+ seo_override_title_help: Digite de 5 a 10 palvras pequenas que resumem o conteúdo desta página.
69
+ meta_keywords_title: Palavras-chave
70
+ meta_keywords_help: Digite de 5 a 10 palavras-chave presentes nesta página. Separe elas com vírgula.
97
71
  meta_description_title: Meta descrição
98
72
  meta_description_help: Digite duas ou três sentenças concisas descrevendo sobre o que é essa página.
99
- js:
100
- content_section:
101
- create: Criar Seção de Conteúdo
102
- already_exists: Uma seção de conteúdo com esse título já existe. Por favor, escolha outro.
103
- title_empty: Você não escreveu um título para a seção de conteúdo. Por favor, escreva um.
104
- confirm_delete: Isso irá remover a seção de conteúdo %{section_name} quando esta página for salva e irá apagar todo o conteúdo que esteja nela. Você tem certeza?
105
73
  index:
106
74
  create_new_page: Criar uma nova página
107
75
  reorder_pages: Reordenar as Páginas
108
76
  reorder_pages_done: Terminei de reordenar as Páginas
109
- search_results: 'Resultados da busca por "%{what}"'
110
- sorry_no_results: Desculpe! Nenhum resultado encontrado.
111
77
  no_pages_yet: Ainda não existem páginas. Clique em "Criar Nova Página" para adicionar sua primeira página.
78
+ activerecord:
79
+ models:
80
+ page: Página
81
+ attributes:
82
+ page:
83
+ title: Título
@@ -0,0 +1,45 @@
1
+ @pages @pages-manage
2
+ Feature: Manage Pages
3
+ In order to control the content on my website
4
+ As an administrator
5
+ I want to create and manage pages
6
+
7
+ Background:
8
+ Given I am a logged in refinery user
9
+ And I have no pages
10
+
11
+ Scenario: Pages List
12
+ Given I have pages titled Home, About
13
+ When I go to the list of pages
14
+ Then I should see "Home"
15
+ And I should see "About"
16
+
17
+ Scenario: Create Valid Page
18
+ When I go to the list of pages
19
+ And I follow "Create New Page"
20
+ And I fill in "Title" with "Pickles are Cucumbers Soaked in Evil"
21
+ And I press "Save"
22
+ Then I should see "'Pickles are Cucumbers Soaked in Evil' was successfully created."
23
+ And I should have 1 page
24
+
25
+ Scenario: Create Invalid Page (without title)
26
+ When I go to the list of pages
27
+ And I follow "Create New Page"
28
+ And I press "Save"
29
+ Then I should see "Title can't be blank"
30
+ And I should have 0 pages
31
+
32
+ Scenario: Create Duplicate Page
33
+ Given I only have pages titled Home, About
34
+ When I go to the list of pages
35
+ And I follow "Create New Page"
36
+ And I fill in "Title" with "About"
37
+ And I press "Save"
38
+ Then I should have 3 pages
39
+ And I should have a page at /about--2
40
+
41
+ Scenario: Delete Page
42
+ Given I have a page titled "test"
43
+ When I go to the list of pages
44
+ And I follow "Remove this page forever"
45
+ Then I should see "'test' was successfully destroyed."
@@ -0,0 +1,29 @@
1
+ Given /^I (only )?have a page titled "([^"]*)" with a custom url "([^"]*)"?$/ do |only, title, link_url|
2
+ Page.delete_all if only
3
+
4
+ Page.create(:title => title,
5
+ :link_url => link_url)
6
+ end
7
+
8
+ Given /^I (only )?have pages titled "?([^"]*)"?$/ do |only, titles|
9
+ Page.delete_all if only
10
+ titles.split(', ').each do |title|
11
+ Page.create(:title => title)
12
+ end
13
+ end
14
+
15
+ Given /^I have no pages$/ do
16
+ Page.delete_all
17
+ end
18
+
19
+ Given /^I have a page titled "([^"]*)"$/ do |title|
20
+ Page.create(:title => title)
21
+ end
22
+
23
+ Then /^I should have ([0-9]+) pages?$/ do |count|
24
+ Page.count.should == count.to_i
25
+ end
26
+
27
+ Then /^I should have a page at \/(.+)$/ do |url|
28
+ Page.all.count{|page| page.url[:path].to_s.include?(url)}.should == 1
29
+ end
@@ -0,0 +1,18 @@
1
+ module NavigationHelpers
2
+ module Refinery
3
+ module Pages
4
+ def path_to(page_name)
5
+ case page_name
6
+ when /the home\s?page/
7
+ root_path
8
+ when /the list of pages/
9
+ admin_pages_path
10
+ when /the new page form/
11
+ new_admin_page_path
12
+ else
13
+ nil
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,9 +1,14 @@
1
1
  require 'refinery'
2
+ require 'awesome_nested_set'
2
3
 
3
4
  module Refinery
4
5
  module Pages
5
6
  class Engine < Rails::Engine
6
7
 
8
+ # Register cache sweeper, ensuring that we don't overwrite any other observers.
9
+ config.autoload_paths += %W(#{config.root}/app/sweepers)
10
+ (config.active_record.observers ||= []) << :page_sweeper
11
+
7
12
  config.after_initialize do
8
13
  Refinery::Plugin.register do |plugin|
9
14
  plugin.name = "refinery_pages"
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe Page do
4
+ before(:each) do
5
+ @valid_attributes = {
6
+ :title => "RSpec is great for testing too"
7
+ }
8
+ end
9
+
10
+ it "should create a new instance given valid attributes" do
11
+ Page.create!(@valid_attributes)
12
+ end
13
+ end
@@ -27,7 +27,7 @@ module Refinery
27
27
  @major = 0
28
28
  @minor = 9
29
29
  @tiny = 8
30
- @build = nil
30
+ @build = 1
31
31
 
32
32
  class << self
33
33
  attr_reader :major, :minor, :tiny, :build
@@ -6,7 +6,7 @@
6
6
  <% @resources.each do |resource| -%>
7
7
  <% resource_linked = (resource.url == params[:current_link]) if params[:current_link].present? %>
8
8
  <li<%= " class='linked'" if resource_linked %>>
9
- <%= link_to "#{resource.title} (#{resource.url})", resource.url,
9
+ <%= link_to "#{resource.title} (#{resource.file_name})", resource.url,
10
10
  :title => t('.link_to_file'),
11
11
  :rel => resource.title,
12
12
  :class => 'page_link',
@@ -26,7 +26,7 @@
26
26
  :hide_delete => true,
27
27
  :paginate => {
28
28
  :collection => @resources,
29
- :url => {:controller => "admin/resources", :action => "insert", :dialog => from_dialog? }
29
+ :url => {:controller => "/admin/resources", :action => "insert", :dialog => from_dialog? }
30
30
  }
31
31
  } if @app_dialog or @resources.any? %>
32
32
  </div>
@@ -2,31 +2,30 @@ de:
2
2
  plugins:
3
3
  refinery_files:
4
4
  title: Dateien
5
- must_choose_file: "Sie müssen eine Datei zum Hochladen auswählen"
6
- file_should_be_smaller_than_max_file_size: "Die Dateien sollten kleiner als %{max_file_size} werden"
5
+ description: Dateien hochladen und verlinken
6
+ file_specify_for_upload: Sie müssen eine Datei zum Hochladen angeben
7
+ file_should_be_smaller_than_max_file_size: Die Dateien sollten kleiner als %{max_file_size} sein
7
8
  admin:
8
9
  resources:
10
+ delete: Diese Datei für immer löschen
11
+ edit: Diese Datei bearbeiten
9
12
  form:
10
- file_to_upload: Datei zum Hochladen
11
13
  download_current: Download der aktuellen Datei
12
14
  or: oder
13
- replace: ", ersetzen Sie es mit diesem einen..."
15
+ replace: ", mit dieser ersetzen..."
14
16
  maximum_file_size: "Die maximale Dateigröße beträgt %{megabytes} Megabyte."
15
17
  resource:
16
- download: "Diese Datei herunterladen (%{size})"
17
- edit: Bearbeiten Sie diese Datei
18
- delete:
19
- message: "Sind Sie sicher, die Sie löschen möchten '%{title}'?"
20
- title: Löschen Sie diese Datei immer
18
+ download: Diese Datei herunterladen (%{size})
21
19
  index:
22
20
  upload_new: Neue Datei Hochladen
23
- no_files_yet: Es gibt keine Dateien. Klicken Sie auf "Neue Datei Hochladen" um Ihre erste Datei hinzufügen.
21
+ no_files_yet: Keine Dateien vorhanden. Klicken Sie auf "Neue Datei Hochladen" um Ihre erste Datei hinzuzufügen.
24
22
  insert:
25
- existing_file: Bestehende Datei
23
+ existing: Vorhandene Datei
26
24
  new: Neue Datei
27
- link_to_resource: 'Link zu dieser Datei'
28
- previous: Zurück
29
- next: Nächste
30
- submit_insert: Einfügen
31
- or: oder
32
- cancel: Abbrechen
25
+ no_files: Keine Dateien vorhanden.
26
+ existing_resource:
27
+ link_to_file: Link zu dieser Datei
28
+ button_text: Einfügen
29
+ activerecord:
30
+ models:
31
+ resource: Datei
@@ -1,33 +1,31 @@
1
1
  pt-BR:
2
2
  plugins:
3
3
  refinery_files:
4
- title: Recursos
5
- must_choose_file: Você deve escolher um arquivo para enviar
6
- file_should_be_smaller_than_max_file_size: "Arquivos devem ser menores de %{max_file_size} em tamanho"
4
+ title: Arquivos
5
+ description: Gerenciar arquivos
6
+ file_specify_for_upload: Você deve escolher um arquivo para enviar
7
+ file_should_be_smaller_than_max_file_size: "Arquivos devem ser menores que %{max_file_size} em tamanho"
7
8
  admin:
8
9
  resources:
10
+ delete: Remover este arquivo para sempre
11
+ edit: Editar este arquivo
9
12
  form:
10
- file_to_upload: Arquivo para enviar
11
13
  download_current: Baixar arquivo atual
12
- or: ou
13
- replace: ", substituir por este..."
14
+ or: or
15
+ replace: " substituir por este..."
14
16
  maximum_file_size: "O tamanho máximo permitido é de %{megabytes} megabytes."
15
17
  resource:
16
18
  download: Baixar este arquivo (%{size})
17
- edit: Editar este arquivo
18
- delete:
19
- message: Tem certeza que deseja remover '%{title}'?
20
- title: Remover este arquivo para sempre
21
19
  index:
22
20
  upload_new: Enviar Novo Arquivo
23
21
  no_files_yet: Ainda não existem arquivos. Clique em "Enviar Novo Arquivo" para adicionar seu primeiro arquivo.
24
22
  insert:
25
- existing: Arquivo Existente
23
+ existing: O Arquivo já existe.
26
24
  new: Novo Arquivo
27
- previous: Anterior
28
- next: Próximo
29
- or: ou
30
- cancel: Cancelar
25
+ no_files: TNão há arquivos.
31
26
  existing_resource:
32
- link_to_resource: Link para este Recurso
33
- submit_insert: Inserir
27
+ link_to_file: Link para este Arquivo
28
+ button_text: Inserir
29
+ activerecord:
30
+ models:
31
+ resource: Arquivo
@@ -0,0 +1,39 @@
1
+ @files @files-manage
2
+ Feature: Manage Files
3
+ In order to control the content on my website
4
+ As an administrator
5
+ I want to create and manage files
6
+
7
+ Background:
8
+ Given I am a logged in refinery user
9
+ And I have no files
10
+
11
+ Scenario: Create Valid File
12
+ When I go to the list of files
13
+ And I follow "Upload New File"
14
+ And I attach the file at "refinery_is_awesome.txt"
15
+ And I press "Save"
16
+ Then the file "refinery_is_awesome.txt" should have uploaded successfully
17
+ And I should have 1 file
18
+
19
+ Scenario: Edit Existing File
20
+ When I upload the file at "refinery_is_awesome.txt"
21
+ And I go to the list of files
22
+ And I follow "Edit this file"
23
+ And I attach the file at "beach.jpeg"
24
+ And I press "Save"
25
+ Then the file "beach.jpeg" should have uploaded successfully
26
+ And I should have 1 file
27
+
28
+ Scenario: Download Existing File
29
+ When I upload the file at "refinery_is_awesome.txt"
30
+ And I go to the list of files
31
+ And I follow "Download this file"
32
+ Then I should see "http://www.refineryhq.com/"
33
+
34
+ Scenario: Files Delete
35
+ When I upload the file at "refinery_is_awesome.txt"
36
+ And I go to the list of files
37
+ And I follow "Remove this file forever"
38
+ Then I should see "'Refinery Is Awesome' was successfully destroyed."
39
+ And I should have 0 files
@@ -0,0 +1,21 @@
1
+ Given /^I have no files$/ do
2
+ Resource.delete_all
3
+ end
4
+
5
+ When /^I attach the file at "([^"]*)"$/ do |file_path|
6
+ attach_file('resource[file]', File.join(File.expand_path('../../uploads/', __FILE__), file_path))
7
+ end
8
+
9
+ Then /^the file "([^"]*)" should have uploaded successfully$/ do |file_name|
10
+ Resource.find_by_file_name(file_name).nil?.should == false
11
+ end
12
+
13
+ And /^I should have ([0-9]+) files?$/ do |number|
14
+ Resource.count.should == number.to_i
15
+ end
16
+
17
+ When /^I upload the file at "([^"]*)"$/ do |file_path|
18
+ visit new_admin_resource_path
19
+ attach_file('resource[file]', File.join(File.expand_path('../../uploads/', __FILE__), file_path))
20
+ click_button 'Save'
21
+ end