refinerycms-pdf_newsletters 0.8

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.
@@ -0,0 +1,8 @@
1
+ module Admin
2
+ class NewslettersController < Admin::BaseController
3
+
4
+ crudify :newsletter,
5
+ :title_attribute => 'volume', :xhr_paging => true
6
+
7
+ end
8
+ end
@@ -0,0 +1,30 @@
1
+ class NewslettersController < ApplicationController
2
+
3
+ before_filter :find_all_newsletters
4
+ before_filter :find_page
5
+
6
+ def index
7
+ # you can use meta fields from your model instead (e.g. browser_title)
8
+ # by swapping @page for @newsletter in the line below:
9
+ present(@page)
10
+ end
11
+
12
+ def show
13
+ @newsletter = Newsletter.find(params[:id])
14
+
15
+ # you can use meta fields from your model instead (e.g. browser_title)
16
+ # by swapping @page for @newsletter in the line below:
17
+ present(@page)
18
+ end
19
+
20
+ protected
21
+
22
+ def find_all_newsletters
23
+ @newsletters = Newsletter.recent
24
+ end
25
+
26
+ def find_page
27
+ @page = Page.where(:link_url => "/newsletters").first
28
+ end
29
+
30
+ end
@@ -0,0 +1,27 @@
1
+ class Newsletter < ActiveRecord::Base
2
+
3
+ acts_as_indexed :fields => [:volume, :issue]
4
+
5
+ validates :volume, :presence => true
6
+ validates :issue, :presence => true
7
+ validates :pdf, :presence => true
8
+
9
+ belongs_to :pdf, :class_name => 'Resource'
10
+
11
+ def month
12
+ self.publish_on.strftime("%B")
13
+ end
14
+
15
+ def year
16
+ self.publish_on.year
17
+ end
18
+ scope :published, lambda {
19
+ where("newsletters.publish_on IS NOT NULL AND newsletters.publish_on <= ?", Time.zone.now)
20
+ }
21
+
22
+ scope :recent, published.order("newsletters.publish_on DESC")
23
+
24
+ def self.current
25
+ self.recent.first
26
+ end
27
+ end
@@ -0,0 +1,28 @@
1
+ <ul>
2
+ <% if Admin::NewslettersController.searchable? %>
3
+ <li>
4
+ <%= render :partial => "/shared/admin/search",
5
+ :locals => {
6
+ :url => admin_newsletters_path
7
+ } %>
8
+ </li>
9
+ <% end %>
10
+ <li>
11
+ <%= link_to t('.create_new'), new_admin_newsletter_path,
12
+ :class => "add_icon" %>
13
+ </li>
14
+ <% if !searching? and Admin::NewslettersController.sortable? and Newsletter.count > 1 %>
15
+ <li>
16
+ <%= link_to t('.reorder', :what => "Newsletters"),
17
+ admin_newsletters_path,
18
+ :id => "reorder_action",
19
+ :class => "reorder_icon" %>
20
+
21
+ <%= link_to t('.reorder_done', :what => "Newsletters"),
22
+ admin_newsletters_path,
23
+ :id => "reorder_action_done",
24
+ :style => "display: none;",
25
+ :class => "reorder_icon" %>
26
+ </li>
27
+ <% end %>
28
+ </ul>
@@ -0,0 +1,43 @@
1
+ <%= form_for [:admin, @newsletter] do |f| -%>
2
+ <%= render :partial => "/shared/admin/error_messages", :locals => {
3
+ :object => @newsletter,
4
+ :include_object_name => true
5
+ } %>
6
+
7
+ <div class='field'>
8
+ <%= f.label :publish_on -%>
9
+ <%= f.date_select :publish_on -%>
10
+ </div>
11
+
12
+ <div class='field'>
13
+ <%= f.label :pdf -%>
14
+ <%= render :partial => "/shared/admin/resource_picker", :locals => {
15
+ :f => f,
16
+ :field => :pdf_id,
17
+ :resource => @newsletter.pdf,
18
+ } %>
19
+ </div>
20
+
21
+ <div class='field'>
22
+ <%= f.label :volume -%>
23
+ <%= f.text_field :volume -%>
24
+ </div>
25
+
26
+ <div class='field'>
27
+ <%= f.label :issue -%>
28
+ <%= f.text_field :issue -%>
29
+ </div>
30
+
31
+ <div class='field'>
32
+ <%= f.label :editor -%>
33
+ <%= f.text_field :editor -%>
34
+ </div>
35
+
36
+ <%= render :partial => "/shared/admin/form_actions",
37
+ :locals => {
38
+ :f => f,
39
+ :continue_editing => false,
40
+ :delete_title => t('delete', :scope => 'admin.newsletters.newsletter'),
41
+ :delete_confirmation => t('message', :scope => 'shared.admin.delete', :title => @newsletter.volume)
42
+ } %>
43
+ <% end -%>
@@ -0,0 +1,18 @@
1
+ <li class='clearfix record <%= cycle("on", "on-hover") %>' id="<%= dom_id(newsletter) -%>">
2
+ <span class='title'>
3
+ <%= "Volume #{newsletter.volume}, Issue #{newsletter.issue} - #{newsletter.month} #{newsletter.year}" %>
4
+ <span class="preview">&nbsp;</span>
5
+ </span>
6
+ <span class='actions'>
7
+ <%= link_to refinery_icon_tag("application_go.png"), newsletter_path(newsletter),
8
+ :title => t('.view_live_html'),
9
+ :target => "_blank" %>
10
+ <%= link_to refinery_icon_tag("application_edit.png"), edit_admin_newsletter_path(newsletter),
11
+ :title => t('.edit') %>
12
+ <%= link_to refinery_icon_tag("delete.png"), admin_newsletter_path(newsletter),
13
+ :class => "cancel confirm-delete",
14
+ :title => t('.delete'),
15
+ :confirm => t('message', :scope => 'shared.admin.delete', :title => newsletter.volume),
16
+ :method => :delete %>
17
+ </span>
18
+ </li>
@@ -0,0 +1,2 @@
1
+ <%= will_paginate @newsletters %>
2
+ <%= render :partial => "sortable_list" %>
@@ -0,0 +1,18 @@
1
+ <% if searching? %>
2
+ <h2><%= t('results_for', :scope => 'shared.admin.search', :query => params[:search]) %></h2>
3
+ <% end %>
4
+ <% if @newsletters.any? %>
5
+ <div class='pagination_container'>
6
+ <%= render :partial => 'newsletters' %>
7
+ </div>
8
+ <% else %>
9
+ <p>
10
+ <% unless searching? %>
11
+ <strong>
12
+ <%= t('.no_items_yet') %>
13
+ </strong>
14
+ <% else %>
15
+ <%= t('no_results', :scope => 'shared.admin.search') %>
16
+ <% end %>
17
+ </p>
18
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <ul id='sortable_list'>
2
+ <%= render :partial => 'newsletter', :collection => @newsletters %>
3
+ </ul>
4
+ <%= render :partial => "/shared/admin/sortable_list",
5
+ :locals => {
6
+ :continue_reordering => (local_assigns.keys.include?(:continue_reordering)) ? continue_reordering : true
7
+ } %>
@@ -0,0 +1 @@
1
+ <%= render :partial => "form" %>
@@ -0,0 +1,10 @@
1
+ <section id='records'>
2
+ <%= render :partial => 'records' %>
3
+ </section>
4
+ <aside id='actions'>
5
+ <%= render :partial => 'actions' %>
6
+ </aside>
7
+ <%= render :partial => '/shared/admin/make_sortable',
8
+ :locals => {
9
+ :tree => false
10
+ } if !searching? and Admin::NewslettersController.sortable? and Newsletter.count > 1 %>
@@ -0,0 +1 @@
1
+ <%= render :partial => "form" %>
@@ -0,0 +1,17 @@
1
+ <% newsletters_list = newsletters%>
2
+ <% newsletter = newsletters_list.shift %>
3
+ <% while newsletter.present? %>
4
+ <h1 class="title"><%=newsletter.year-%></h1>
5
+ <% unless newsletter.editor.blank? %>
6
+ <p>(By Editor <%=newsletter.editor%>)</p>
7
+ <% end %>
8
+ <% @year = newsletter.year %>
9
+ <ul id="newsletters">
10
+ <%while newsletter && newsletter.year == @year%>
11
+ <li>
12
+ <%= render :partial => 'newsletter', :object => newsletter %>
13
+ </li>
14
+ <% newsletter = newsletters_list.shift %>
15
+ <% end %>
16
+ </ul>
17
+ <% end %>
@@ -0,0 +1,2 @@
1
+ <%= link_to "Volume #{newsletter.volume}, Issue #{newsletter.issue} - #{newsletter.month} #{newsletter.year}",
2
+ newsletter.pdf.url %>
@@ -0,0 +1,5 @@
1
+ <% content_for :body_content_left do %>
2
+ <%= render :partial => 'list_by_year', :locals => {:newsletters => @newsletters} %>
3
+ <% end %>
4
+
5
+ <%= render :partial => "/shared/content_page" %>
@@ -0,0 +1,25 @@
1
+ en:
2
+ shared:
3
+ admin:
4
+ image_picker:
5
+ image: image
6
+ plugins:
7
+ newsletters:
8
+ title: Newsletters
9
+ admin:
10
+ newsletters:
11
+ actions:
12
+ create_new: Add New Newsletter
13
+ reorder: Reorder Newsletters
14
+ reorder_done: Done Reordering Newsletters
15
+ records:
16
+ title: Newsletters
17
+ sorry_no_results: Sorry! There are no results found.
18
+ no_items_yet: There are no Newsletters yet. Click "Add New Newsletter" to add your first newsletter.
19
+ newsletter:
20
+ view_live_html: View this newsletter live <br/><em>(opens in a new window)</em>
21
+ edit: Edit this newsletter
22
+ delete: Remove this newsletter forever
23
+ newsletters:
24
+ show:
25
+ other: Other Newsletters
@@ -0,0 +1,25 @@
1
+ fr:
2
+ shared:
3
+ admin:
4
+ image_picker:
5
+ image: image
6
+ plugins:
7
+ newsletters:
8
+ title: Newsletters
9
+ admin:
10
+ newsletters:
11
+ actions:
12
+ create_new: Créer un(e) nouve(au/l/lle) Newsletter
13
+ reorder: Réordonner les Newsletters
14
+ reorder_done: Fin de réordonnancement des Newsletters
15
+ records:
16
+ title: Newsletters
17
+ sorry_no_results: "Désolé ! Aucun résultat."
18
+ no_items_yet: 'Il n''y a actuellement aucun(e) Newsletter. Cliquer sur "Créer un(e) nouve(au/l/lle) Newsletter" pour créer votre premi(er/ère) newsletter.'
19
+ newsletter:
20
+ view_live_html: Voir ce(t/tte) newsletter <br/><em>(Ouvre une nouvelle fenêtre)</em>
21
+ edit: Modifier ce(t/tte) newsletter
22
+ delete: Supprimer définitivement ce(t/tte) newsletter
23
+ newsletters:
24
+ show:
25
+ other: Autres Newsletters
@@ -0,0 +1,25 @@
1
+ lolcat:
2
+ shared:
3
+ admin:
4
+ image_picker:
5
+ image: IMAGE
6
+ plugins:
7
+ newsletters:
8
+ title: Newsletters
9
+ admin:
10
+ newsletters:
11
+ actions:
12
+ create_new: CREATE NEW Newsletter
13
+ reorder: REORDR Newsletters
14
+ reorder_done: DUN REORDERIN Newsletters
15
+ records:
16
+ title: Newsletters
17
+ sorry_no_results: SRY! THAR R NO RESULTS FINDZ.
18
+ no_items_yet: THAR R NO Newsletters YET. CLICK "CREATE NEW Newsletter" 2 ADD UR FURST newsletter.
19
+ newsletter:
20
+ view_live_html: VIEW DIS newsletter LIV <BR/><EM>(OPENS IN NEW WINDOW)</EM>
21
+ edit: EDIT DIS newsletter
22
+ delete: REMOOV DIS newsletter FOREVR
23
+ newsletters:
24
+ show:
25
+ other: OTHR Newsletters
@@ -0,0 +1,21 @@
1
+ nb:
2
+ plugins:
3
+ newsletters:
4
+ title: Newsletters
5
+ admin:
6
+ newsletters:
7
+ actions:
8
+ create_new: Lag en ny Newsletter
9
+ reorder: Endre rekkefølgen på Newsletters
10
+ reorder_done: Ferdig å endre rekkefølgen Newsletters
11
+ records:
12
+ title: Newsletters
13
+ sorry_no_results: Beklager! Vi fant ikke noen resultater.
14
+ no_items_yet: Det er ingen Newsletters enda. Klikk på "Lag en ny Newsletter" for å legge til din første newsletter.
15
+ newsletter:
16
+ view_live_html: Vis hvordan denne newsletter ser ut offentlig <br/><em>(åpner i et nytt vindu)</em>
17
+ edit: Rediger denne newsletter
18
+ delete: Fjern denne newsletter permanent
19
+ newsletters:
20
+ show:
21
+ other: Andre Newsletters
@@ -0,0 +1,21 @@
1
+ nl:
2
+ plugins:
3
+ newsletters:
4
+ title: Newsletters
5
+ admin:
6
+ newsletters:
7
+ actions:
8
+ create_new: Maak een nieuwe Newsletter
9
+ reorder: Wijzig de volgorde van de Newsletters
10
+ reorder_done: Klaar met het wijzingen van de volgorde van de Newsletters
11
+ records:
12
+ title: Newsletters
13
+ sorry_no_results: Helaas! Er zijn geen resultaten gevonden.
14
+ no_items_yet: Er zijn nog geen Newsletters. Druk op 'Maak een nieuwe Newsletter' om de eerste aan te maken.
15
+ newsletter:
16
+ view_live_html: Bekijk deze newsletter op de website <br/><em>(opent een nieuw venster)</em>
17
+ edit: Bewerk deze newsletter
18
+ delete: Verwijder deze newsletter voor eeuwig
19
+ newsletters:
20
+ show:
21
+ other: Andere Newsletters
data/config/routes.rb ADDED
@@ -0,0 +1,11 @@
1
+ ::Refinery::Application.routes.draw do
2
+ resources :newsletters, :only => [:index, :show]
3
+
4
+ scope(:path => 'refinery', :as => 'admin', :module => 'admin') do
5
+ resources :newsletters, :except => :show do
6
+ collection do
7
+ post :update_positions
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ class RefinerycmsPdfNewsletters < Refinery::Generators::EngineInstaller
2
+
3
+ source_root File.expand_path('../../../', __FILE__)
4
+ engine_name "pdf_newsletters"
5
+
6
+ end
@@ -0,0 +1,30 @@
1
+ require 'refinerycms-base'
2
+
3
+ module Refinery
4
+ module Newsletters
5
+
6
+ class << self
7
+ attr_accessor :root
8
+ def root
9
+ @root ||= Pathname.new(File.expand_path('../../', __FILE__))
10
+ end
11
+ end
12
+
13
+ class Engine < Rails::Engine
14
+ initializer "static assets" do |app|
15
+ app.middleware.insert_after ::ActionDispatch::Static, ::ActionDispatch::Static, "#{root}/public"
16
+ end
17
+
18
+ config.after_initialize do
19
+ Refinery::Plugin.register do |plugin|
20
+ plugin.name = "pdf_newsletters"
21
+ plugin.pathname = root
22
+ plugin.activity = {
23
+ :class => Newsletter,
24
+ :title => 'volume'
25
+ }
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,13 @@
1
+ namespace :refinery do
2
+
3
+ namespace :newsletters do
4
+
5
+ # call this task my running: rake refinery:newsletters: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,77 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: refinerycms-pdf_newsletters
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: "0.8"
6
+ platform: ruby
7
+ authors:
8
+ - Doug Bradbury <doug@8thlight.com>
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-08-16 00:00:00 Z
14
+ dependencies: []
15
+
16
+ description: Ruby on Rails Pdf Newsletters engine for Refinery CMS
17
+ email:
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - lib/generators/refinerycms_pdf_newsletters_generator.rb
26
+ - lib/refinerycms-pdf_newsletters.rb
27
+ - lib/tasks/pdf_newsletters.rake
28
+ - config/locales/en.yml
29
+ - config/locales/fr.yml
30
+ - config/locales/lolcat.yml
31
+ - config/locales/nb.yml
32
+ - config/locales/nl.yml
33
+ - config/routes.rb
34
+ - app/controllers/admin/newsletters_controller.rb
35
+ - app/controllers/newsletters_controller.rb
36
+ - app/models/newsletter.rb
37
+ - app/views/admin/newsletters/_actions.html.erb
38
+ - app/views/admin/newsletters/_form.html.erb
39
+ - app/views/admin/newsletters/_newsletter.html.erb
40
+ - app/views/admin/newsletters/_newsletters.html.erb
41
+ - app/views/admin/newsletters/_records.html.erb
42
+ - app/views/admin/newsletters/_sortable_list.html.erb
43
+ - app/views/admin/newsletters/edit.html.erb
44
+ - app/views/admin/newsletters/index.html.erb
45
+ - app/views/admin/newsletters/new.html.erb
46
+ - app/views/newsletters/_list_by_year.html.erb
47
+ - app/views/newsletters/_newsletter.html.erb
48
+ - app/views/newsletters/index.html.erb
49
+ homepage: https://github.com/dougbradbury/refinerycms-newsletters
50
+ licenses: []
51
+
52
+ post_install_message:
53
+ rdoc_options: []
54
+
55
+ require_paths:
56
+ - lib
57
+ required_ruby_version: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: "0"
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: "0"
69
+ requirements: []
70
+
71
+ rubyforge_project:
72
+ rubygems_version: 1.8.8
73
+ signing_key:
74
+ specification_version: 3
75
+ summary: Pdf Newsletters engine for Refinery CMS
76
+ test_files: []
77
+