refinerycms-redirects 0.1.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 (28) hide show
  1. data/app/controllers/refinery/redirects/admin/redirects_controller.rb +11 -0
  2. data/app/controllers/refinery/redirects/redirects_controller.rb +34 -0
  3. data/app/models/refinery/redirects/redirect.rb +13 -0
  4. data/app/views/refinery/redirects/admin/redirects/_actions.html.erb +25 -0
  5. data/app/views/refinery/redirects/admin/redirects/_form.html.erb +29 -0
  6. data/app/views/refinery/redirects/admin/redirects/_records.html.erb +18 -0
  7. data/app/views/refinery/redirects/admin/redirects/_redirect.html.erb +22 -0
  8. data/app/views/refinery/redirects/admin/redirects/_redirects.html.erb +2 -0
  9. data/app/views/refinery/redirects/admin/redirects/_sortable_list.html.erb +5 -0
  10. data/app/views/refinery/redirects/admin/redirects/edit.html.erb +1 -0
  11. data/app/views/refinery/redirects/admin/redirects/index.html.erb +7 -0
  12. data/app/views/refinery/redirects/admin/redirects/new.html.erb +1 -0
  13. data/app/views/refinery/redirects/redirects/index.html.erb +11 -0
  14. data/app/views/refinery/redirects/redirects/show.html.erb +39 -0
  15. data/config/locales/en.yml +29 -0
  16. data/config/locales/es.yml +30 -0
  17. data/config/locales/fr.yml +29 -0
  18. data/config/locales/nb.yml +29 -0
  19. data/config/locales/nl.yml +29 -0
  20. data/config/routes.rb +18 -0
  21. data/db/migrate/1_create_redirects_redirects.rb +28 -0
  22. data/db/seeds.rb +13 -0
  23. data/lib/generators/refinery/redirects_generator.rb +19 -0
  24. data/lib/refinery/redirects.rb +21 -0
  25. data/lib/refinery/redirects/engine.rb +26 -0
  26. data/lib/refinerycms-redirects.rb +1 -0
  27. data/lib/tasks/refinery/redirects.rake +13 -0
  28. metadata +88 -0
@@ -0,0 +1,11 @@
1
+ module Refinery
2
+ module Redirects
3
+ module Admin
4
+ class RedirectsController < ::Refinery::AdminController
5
+
6
+ crudify :'refinery/redirects/redirect', :xhr_paging => true
7
+
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,34 @@
1
+ module Refinery
2
+ module Redirects
3
+ class RedirectsController < ::ApplicationController
4
+
5
+ before_filter :find_all_redirects
6
+ before_filter :find_page
7
+
8
+ def index
9
+ # you can use meta fields from your model instead (e.g. browser_title)
10
+ # by swapping @page for @redirect in the line below:
11
+ present(@page)
12
+ end
13
+
14
+ def show
15
+ @redirect = Redirect.find(params[:id])
16
+
17
+ # you can use meta fields from your model instead (e.g. browser_title)
18
+ # by swapping @page for @redirect in the line below:
19
+ present(@page)
20
+ end
21
+
22
+ protected
23
+
24
+ def find_all_redirects
25
+ @redirects = Redirect.order('position ASC')
26
+ end
27
+
28
+ def find_page
29
+ @page = ::Refinery::Page.where(:link_url => "/redirects").first
30
+ end
31
+
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,13 @@
1
+ module Refinery
2
+ module Redirects
3
+ class Redirect < Refinery::Core::BaseModel
4
+ self.table_name = 'refinery_redirects'
5
+
6
+ attr_accessible :title, :slug, :url, :position
7
+
8
+ acts_as_indexed :fields => [:title, :slug, :url]
9
+
10
+ validates :title, :presence => true, :uniqueness => true
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,25 @@
1
+ <ul>
2
+ <% if ::Refinery::Redirects::Admin::RedirectsController.searchable? %>
3
+ <li>
4
+ <%= render '/refinery/admin/search', :url => refinery.redirects_admin_redirects_path %>
5
+ </li>
6
+ <% end %>
7
+ <li>
8
+ <%= link_to t('.create_new'), refinery.new_redirects_admin_redirect_path,
9
+ :class => "add_icon" %>
10
+ </li>
11
+ <% if !searching? && ::Refinery::Redirects::Admin::RedirectsController.sortable? && ::Refinery::Redirects::Redirect.any? %>
12
+ <li>
13
+ <%= link_to t('.reorder', :what => "Redirects"),
14
+ refinery.redirects_admin_redirects_path,
15
+ :id => "reorder_action",
16
+ :class => "reorder_icon" %>
17
+
18
+ <%= link_to t('.reorder_done', :what => "Redirects"),
19
+ refinery.redirects_admin_redirects_path,
20
+ :id => "reorder_action_done",
21
+ :style => "display: none;",
22
+ :class => "reorder_icon" %>
23
+ </li>
24
+ <% end %>
25
+ </ul>
@@ -0,0 +1,29 @@
1
+ <%= form_for [refinery, :redirects_admin, @redirect] do |f| -%>
2
+ <%= render '/refinery/admin/error_messages',
3
+ :object => @redirect,
4
+ :include_object_name => true %>
5
+
6
+
7
+ <div class='field'>
8
+ <%= f.label :title -%>
9
+ <%= f.text_field :title, :class => 'larger widest' -%>
10
+
11
+ </div>
12
+
13
+ <div class='field'>
14
+ <%= f.label :slug -%>
15
+ <%= f.text_field :slug -%>
16
+
17
+ </div>
18
+
19
+ <div class='field'>
20
+ <%= f.label :url -%>
21
+ <%= f.text_field :url, :class => 'widest' -%>
22
+
23
+ </div>
24
+
25
+ <%= render '/refinery/admin/form_actions', :f => f,
26
+ :continue_editing => false,
27
+ :delete_title => t('delete', :scope => 'refinery.redirects.admin.redirects.redirect'),
28
+ :delete_confirmation => t('message', :scope => 'refinery.admin.delete', :title => @redirect.title) %>
29
+ <% end -%>
@@ -0,0 +1,18 @@
1
+ <% if searching? %>
2
+ <h2><%= t('results_for', :scope => 'refinery.admin.search', :query => params[:search]) %></h2>
3
+ <% end %>
4
+ <div class='pagination_container'>
5
+ <% if @redirects.any? %>
6
+ <%= render 'redirects' %>
7
+ <% else %>
8
+ <p>
9
+ <% unless searching? %>
10
+ <strong>
11
+ <%= t('.no_items_yet') %>
12
+ </strong>
13
+ <% else %>
14
+ <%= t('no_results', :scope => 'refinery.admin.search') %>
15
+ <% end %>
16
+ </p>
17
+ <% end %>
18
+ </div>
@@ -0,0 +1,22 @@
1
+ <li class='clearfix record <%= cycle("on", "on-hover") %>' id="<%= dom_id(redirect) -%>">
2
+ <span class='slug'>
3
+ /<%= redirect.slug %>
4
+ </span>
5
+ <span class='title'>
6
+ <%= redirect.title %>
7
+ </span>
8
+ <span class='actions'>
9
+
10
+ <%= link_to refinery_icon_tag("application_go.png"), refinery.redirects_redirect_path(redirect),
11
+ :title => t('.view_live_html'),
12
+ :target => "_blank" %>
13
+
14
+ <%= link_to refinery_icon_tag("application_edit.png"), refinery.edit_redirects_admin_redirect_path(redirect),
15
+ :title => t('.edit') %>
16
+ <%= link_to refinery_icon_tag("delete.png"), refinery.redirects_admin_redirect_path(redirect),
17
+ :class => "cancel confirm-delete",
18
+ :title => t('.delete'),
19
+ :confirm => t('message', :scope => 'refinery.admin.delete', :title => redirect.title),
20
+ :method => :delete %>
21
+ </span>
22
+ </li>
@@ -0,0 +1,2 @@
1
+ <%= will_paginate @redirects if Refinery::Redirects::Admin::RedirectsController.pageable? %>
2
+ <%= render 'sortable_list' %>
@@ -0,0 +1,5 @@
1
+ <ul id='sortable_list'>
2
+ <%= render :partial => 'redirect', :collection => @redirects %>
3
+ </ul>
4
+ <%= render '/refinery/admin/sortable_list',
5
+ :continue_reordering => (local_assigns.keys.include?(:continue_reordering)) ? continue_reordering : true %>
@@ -0,0 +1 @@
1
+ <%= render 'form' %>
@@ -0,0 +1,7 @@
1
+ <section id='records'>
2
+ <%= render 'records' %>
3
+ </section>
4
+ <aside id='actions'>
5
+ <%= render 'actions' %>
6
+ </aside>
7
+ <%= render '/refinery/admin/make_sortable', :tree => false if !searching? and ::Refinery::Redirects::Admin::RedirectsController.sortable? and ::Refinery::Redirects::Redirect.count > 1 %>
@@ -0,0 +1 @@
1
+ <%= render 'form' %>
@@ -0,0 +1,11 @@
1
+ <% content_for :body do %>
2
+ <ul id="redirects">
3
+ <% @redirects.each do |redirect| %>
4
+ <li>
5
+ <%= link_to redirect.title, refinery.redirects_redirect_path(redirect) %>
6
+ </li>
7
+ <% end %>
8
+ </ul>
9
+ <% end %>
10
+
11
+ <%= render '/refinery/content_page' %>
@@ -0,0 +1,39 @@
1
+ <% content_for :body_content_title do %>
2
+ <%= @redirect.title %>
3
+ <% end %>
4
+
5
+ <% content_for :body do %>
6
+ <section>
7
+ <h1>Title</h1>
8
+ <p>
9
+ <%=raw @redirect.title %>
10
+ </p>
11
+ </section>
12
+ <section>
13
+ <h1>Slug</h1>
14
+ <p>
15
+ <%=raw @redirect.slug %>
16
+ </p>
17
+ </section>
18
+ <section>
19
+ <h1>Url</h1>
20
+ <p>
21
+ <%=raw @redirect.url %>
22
+ </p>
23
+ </section>
24
+ <% end %>
25
+
26
+ <% content_for :side_body do %>
27
+ <aside>
28
+ <h2><%= t('.other') %></h2>
29
+ <ul id="redirects">
30
+ <% @redirects.each do |redirect| %>
31
+ <li>
32
+ <%= link_to redirect.title, refinery.redirects_redirect_path(redirect) %>
33
+ </li>
34
+ <% end %>
35
+ </ul>
36
+ </aside>
37
+ <% end %>
38
+
39
+ <%= render '/refinery/content_page' %>
@@ -0,0 +1,29 @@
1
+ en:
2
+ refinery:
3
+ plugins:
4
+ redirects:
5
+ title: Redirects
6
+ redirects:
7
+ admin:
8
+ redirects:
9
+ actions:
10
+ create_new: Add New Redirect
11
+ reorder: Reorder Redirects
12
+ reorder_done: Done Reordering Redirects
13
+ records:
14
+ title: Redirects
15
+ sorry_no_results: Sorry! There are no results found.
16
+ no_items_yet: There are no Redirects yet. Click "Add New Redirect" to add your first redirect.
17
+ redirect:
18
+ view_live_html: View this redirect live <br/><em>(opens in a new window)</em>
19
+ edit: Edit this redirect
20
+ delete: Remove this redirect forever
21
+ redirects:
22
+ show:
23
+ other: Other Redirects
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/redirects/redirect':
27
+ title: Title
28
+ slug: Slug
29
+ url: Url
@@ -0,0 +1,30 @@
1
+ es:
2
+ refinery:
3
+ plugins:
4
+ redirects:
5
+ title: Redirects
6
+ # article: masculino/femenino
7
+ redirects:
8
+ admin:
9
+ redirects:
10
+ actions:
11
+ create_new: Crear nuevo redirect
12
+ reorder: Reordenar redirects
13
+ reorder_done: Reordenación de redirects completada
14
+ records:
15
+ title: Redirects
16
+ sorry_no_results: Lo siento, no hay resultados
17
+ no_items_yet: No hay redirects todavía. Pulsa en "Crear nuevo Redirect" para crear tu primer redirect.
18
+ redirect:
19
+ view_live_html: Ver este redirect como abierto al público <br/><em>(abre en ventana nueva)</em>
20
+ edit: Editar este redirect
21
+ delete: Borrar este redirect para siempre
22
+ redirects:
23
+ show:
24
+ other: Otros redirects
25
+ activerecord:
26
+ attributes:
27
+ 'refinery/redirects/redirect':
28
+ title: Title
29
+ slug: Slug
30
+ url: Url
@@ -0,0 +1,29 @@
1
+ fr:
2
+ refinery:
3
+ plugins:
4
+ redirects:
5
+ title: Redirects
6
+ redirects:
7
+ admin:
8
+ redirects:
9
+ actions:
10
+ create_new: Créer un(e) nouve(au/l/lle) Redirect
11
+ reorder: Réordonner les Redirects
12
+ reorder_done: Fin de réordonnancement des Redirects
13
+ records:
14
+ title: Redirects
15
+ sorry_no_results: "Désolé ! Aucun résultat."
16
+ no_items_yet: 'Il n''y a actuellement aucun(e) Redirect. Cliquer sur "Créer un(e) nouve(au/l/lle) Redirect" pour créer votre premi(er/ère) redirect.'
17
+ redirect:
18
+ view_live_html: Voir ce(t/tte) redirect <br/><em>(Ouvre une nouvelle fenêtre)</em>
19
+ edit: Modifier ce(t/tte) redirect
20
+ delete: Supprimer définitivement ce(t/tte) redirect
21
+ redirects:
22
+ show:
23
+ other: Autres Redirects
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/redirects/redirect':
27
+ title: Title
28
+ slug: Slug
29
+ url: Url
@@ -0,0 +1,29 @@
1
+ nb:
2
+ refinery:
3
+ plugins:
4
+ redirects:
5
+ title: Redirects
6
+ redirects:
7
+ admin:
8
+ redirects:
9
+ actions:
10
+ create_new: Lag en ny Redirect
11
+ reorder: Endre rekkefølgen på Redirects
12
+ reorder_done: Ferdig å endre rekkefølgen Redirects
13
+ records:
14
+ title: Redirects
15
+ sorry_no_results: Beklager! Vi fant ikke noen resultater.
16
+ no_items_yet: Det er ingen Redirects enda. Klikk på "Lag en ny Redirect" for å legge til din første redirect.
17
+ redirect:
18
+ view_live_html: Vis hvordan denne redirect ser ut offentlig <br/><em>(åpner i et nytt vindu)</em>
19
+ edit: Rediger denne redirect
20
+ delete: Fjern denne redirect permanent
21
+ redirects:
22
+ show:
23
+ other: Andre Redirects
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/redirects/redirect':
27
+ title: Title
28
+ slug: Slug
29
+ url: Url
@@ -0,0 +1,29 @@
1
+ nl:
2
+ refinery:
3
+ plugins:
4
+ redirects:
5
+ title: Redirects
6
+ redirects:
7
+ admin:
8
+ redirects:
9
+ actions:
10
+ create_new: Maak een nieuwe Redirect
11
+ reorder: Wijzig de volgorde van de Redirects
12
+ reorder_done: Klaar met het wijzingen van de volgorde van de Redirects
13
+ records:
14
+ title: Redirects
15
+ sorry_no_results: Helaas! Er zijn geen resultaten gevonden.
16
+ no_items_yet: Er zijn nog geen Redirects. Druk op 'Maak een nieuwe Redirect' om de eerste aan te maken.
17
+ redirect:
18
+ view_live_html: Bekijk deze redirect op de website <br/><em>(opent een nieuw venster)</em>
19
+ edit: Bewerk deze redirect
20
+ delete: Verwijder deze redirect voor eeuwig
21
+ redirects:
22
+ show:
23
+ other: Andere Redirects
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/redirects/redirect':
27
+ title: Title
28
+ slug: Slug
29
+ url: Url
data/config/routes.rb ADDED
@@ -0,0 +1,18 @@
1
+ Refinery::Core::Engine.routes.append do
2
+
3
+ Refinery::Redirects::Redirect.all.each do |r|
4
+ match r.slug => redirect(r.url)
5
+ end
6
+
7
+ # Admin routes
8
+ namespace :redirects, :path => '' do
9
+ namespace :admin, :path => 'refinery' do
10
+ resources :redirects, :except => :show do
11
+ collection do
12
+ post :update_positions
13
+ end
14
+ end
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,28 @@
1
+ class CreateRedirectsRedirects < ActiveRecord::Migration
2
+
3
+ def up
4
+ create_table :refinery_redirects do |t|
5
+ t.string :title
6
+ t.string :slug
7
+ t.string :url
8
+ t.integer :position
9
+
10
+ t.timestamps
11
+ end
12
+
13
+ end
14
+
15
+ def down
16
+ if defined?(::Refinery::UserPlugin)
17
+ ::Refinery::UserPlugin.destroy_all({:name => "refinerycms-redirects"})
18
+ end
19
+
20
+ if defined?(::Refinery::Page)
21
+ ::Refinery::Page.delete_all({:link_url => "/redirects/redirects"})
22
+ end
23
+
24
+ drop_table :refinery_redirects
25
+
26
+ end
27
+
28
+ end
data/db/seeds.rb ADDED
@@ -0,0 +1,13 @@
1
+ (Refinery.i18n_enabled? ? Refinery::I18n.frontend_locales : [:en]).each do |lang|
2
+ I18n.locale = lang
3
+
4
+ if defined?(Refinery::User)
5
+ Refinery::User.all.each do |user|
6
+ if user.plugins.where(:name => 'refinerycms-redirects').blank?
7
+ user.plugins.create(:name => 'refinerycms-redirects',
8
+ :position => (user.plugins.maximum(:position) || -1) +1)
9
+ end
10
+ end
11
+ end
12
+
13
+ end
@@ -0,0 +1,19 @@
1
+ module Refinery
2
+ class RedirectsGenerator < Rails::Generators::Base
3
+
4
+ def rake_db
5
+ rake("refinery_redirects:install:migrations")
6
+ end
7
+
8
+ def append_load_seed_data
9
+ create_file 'db/seeds.rb' unless File.exists?(File.join(destination_root, 'db', 'seeds.rb'))
10
+ append_file 'db/seeds.rb', :verbose => true do
11
+ <<-EOH
12
+
13
+ # Added by Refinery CMS Redirects extension
14
+ Refinery::Redirects::Engine.load_seed
15
+ EOH
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,21 @@
1
+ require 'refinerycms-core'
2
+
3
+ module Refinery
4
+ autoload :RedirectsGenerator, 'generators/refinery/redirects_generator'
5
+
6
+ module Redirects
7
+ require 'refinery/redirects/engine'
8
+
9
+ class << self
10
+ attr_writer :root
11
+
12
+ def root
13
+ @root ||= Pathname.new(File.expand_path('../../../', __FILE__))
14
+ end
15
+
16
+ def factory_paths
17
+ @factory_paths ||= [ root.join('spec', 'factories').to_s ]
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,26 @@
1
+ module Refinery
2
+ module Redirects
3
+ class Engine < Rails::Engine
4
+ include Refinery::Engine
5
+ isolate_namespace Refinery::Redirects
6
+
7
+ engine_name :refinery_redirects
8
+
9
+ initializer "register refinerycms_redirects plugin" do
10
+ Refinery::Plugin.register do |plugin|
11
+ plugin.name = "redirects"
12
+ plugin.url = proc { Refinery::Core::Engine.routes.url_helpers.redirects_admin_redirects_path }
13
+ plugin.pathname = root
14
+ plugin.activity = {
15
+ :class_name => :'refinery/redirects/redirect'
16
+ }
17
+
18
+ end
19
+ end
20
+
21
+ config.after_initialize do
22
+ Refinery.register_extension(Refinery::Redirects)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1 @@
1
+ require 'refinery/redirects'
@@ -0,0 +1,13 @@
1
+ namespace :refinery do
2
+
3
+ namespace :redirects do
4
+
5
+ # call this task by running: rake refinery:redirects:my_task
6
+ # desc "Description of my task below"
7
+ # task :my_task => :environment do
8
+ # # add your logic here
9
+ # end
10
+
11
+ end
12
+
13
+ end
metadata ADDED
@@ -0,0 +1,88 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: refinerycms-redirects
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - John Agan
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-07-14 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: refinerycms-core
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 2.0.5
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 2.0.5
30
+ description: Enables management of multiple redirects
31
+ email: johnagan@gmail.com
32
+ executables: []
33
+ extensions: []
34
+ extra_rdoc_files: []
35
+ files:
36
+ - app/controllers/refinery/redirects/admin/redirects_controller.rb
37
+ - app/controllers/refinery/redirects/redirects_controller.rb
38
+ - app/models/refinery/redirects/redirect.rb
39
+ - app/views/refinery/redirects/admin/redirects/_actions.html.erb
40
+ - app/views/refinery/redirects/admin/redirects/_form.html.erb
41
+ - app/views/refinery/redirects/admin/redirects/_records.html.erb
42
+ - app/views/refinery/redirects/admin/redirects/_redirect.html.erb
43
+ - app/views/refinery/redirects/admin/redirects/_redirects.html.erb
44
+ - app/views/refinery/redirects/admin/redirects/_sortable_list.html.erb
45
+ - app/views/refinery/redirects/admin/redirects/edit.html.erb
46
+ - app/views/refinery/redirects/admin/redirects/index.html.erb
47
+ - app/views/refinery/redirects/admin/redirects/new.html.erb
48
+ - app/views/refinery/redirects/redirects/index.html.erb
49
+ - app/views/refinery/redirects/redirects/show.html.erb
50
+ - config/locales/en.yml
51
+ - config/locales/es.yml
52
+ - config/locales/fr.yml
53
+ - config/locales/nb.yml
54
+ - config/locales/nl.yml
55
+ - config/routes.rb
56
+ - db/migrate/1_create_redirects_redirects.rb
57
+ - db/seeds.rb
58
+ - lib/generators/refinery/redirects_generator.rb
59
+ - lib/refinery/redirects/engine.rb
60
+ - lib/refinery/redirects.rb
61
+ - lib/refinerycms-redirects.rb
62
+ - lib/tasks/refinery/redirects.rake
63
+ homepage: http://www.johnagan.com
64
+ licenses:
65
+ - MIT
66
+ post_install_message:
67
+ rdoc_options: []
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ none: false
78
+ requirements:
79
+ - - ! '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ requirements: []
83
+ rubyforge_project: refinerycms-redirects
84
+ rubygems_version: 1.8.24
85
+ signing_key:
86
+ specification_version: 3
87
+ summary: Redirects for Refinery
88
+ test_files: []