refinerycms-redirects 0.1.1

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