refinerycms 0.9.8 → 0.9.8.1

Sign up to get free protection for your applications and to get access to all the features.
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