scrivito_pdf_widget 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,11 @@
1
+ (function($) {
2
+ 'use strict';
3
+
4
+ $(function() {
5
+ $('.inline-pdf').pdfViewer({
6
+ workerSrc: "<%= asset_url('pdf_widget/pdf.worker.js') %>",
7
+ lacy: false
8
+ });
9
+ });
10
+
11
+ })(jQuery);
@@ -0,0 +1,4 @@
1
+ /*
2
+ *= require font-awesome
3
+ *= require pdf_widget/widget
4
+ */
@@ -0,0 +1,39 @@
1
+ .inline-pdf canvas {
2
+ width: 100%;
3
+ }
4
+
5
+ .inline-pdf .pdf-bar {
6
+ overflow: hidden;
7
+ }
8
+
9
+ .inline-pdf .button {
10
+ cursor: pointer;
11
+ float: left;
12
+ font-weight: bold;
13
+ padding: 0px 5px;
14
+ font-size: 20px;
15
+ line-height: 20px;
16
+ }
17
+
18
+ .inline-pdf .pdf-first {}
19
+ .inline-pdf .pdf-prev {
20
+ margin-right: 10px;
21
+ }
22
+ .inline-pdf .pdf-next {}
23
+ .inline-pdf .pdf-last {}
24
+ .inline-pdf .pdf-bar {}
25
+ .inline-pdf .page-num {margin: 0 0 0 5px;}
26
+ .inline-pdf .page-num:after {content: '/';}
27
+ .inline-pdf .page-count {}
28
+ .inline-pdf .pdf-fullscreen {
29
+ float: right;
30
+ font-size: 15px;
31
+ }
32
+ .inline-pdf .pdf-download {
33
+ float: right;
34
+ font-size: 15px;
35
+ }
36
+ .pdf-page-numbers {
37
+ padding: 2px 0;
38
+ text-align: center;
39
+ }
data/app/models/pdf.rb ADDED
@@ -0,0 +1,26 @@
1
+ class Pdf < Obj
2
+ def self.create(attributes)
3
+ attributes = attributes.with_indifferent_access
4
+
5
+ unless attributes.has_key?(:_obj_class)
6
+ attributes[:_obj_class] = 'Pdf'
7
+ end
8
+
9
+ if attributes.has_key?(:blob) && !attributes.has_key?(:_path)
10
+ filename = Pathname.new(attributes[:blob].path).basename
11
+ path = "_resources/#{SecureRandom.hex(8)}/#{filename}"
12
+
13
+ attributes[:_path] = path
14
+ end
15
+
16
+ super(attributes)
17
+ end
18
+
19
+ def url_to_pdf
20
+ self.try(:binary_url) || ''
21
+ end
22
+
23
+ def show_in_navigation?
24
+ false
25
+ end
26
+ end
@@ -0,0 +1,3 @@
1
+ class PdfWidget < Widget
2
+
3
+ end
@@ -0,0 +1,24 @@
1
+ <div class="inline-pdf" data-url="<%= pdf.url_to_pdf %>">
2
+ <canvas></canvas>
3
+ <div class="pdf-bar">
4
+ <div class="button pdf-first">
5
+ <%= fa_icon 'angle-double-left', title: 'first Page' %>
6
+ </div>
7
+ <div class="button pdf-prev">
8
+ <%= fa_icon 'angle-left', title: 'prev Page' %>
9
+ </div>
10
+ <div class="button pdf-next">
11
+ <%= fa_icon 'angle-right', title: 'next Page' %>
12
+ </div>
13
+ <div class="button pdf-last">
14
+ <%= fa_icon 'angle-double-right', title: 'last Page' %>
15
+ </div>
16
+ <div class="button pdf-download">
17
+ <a class="link" href="<%= pdf.url_to_pdf %>" title="Download Pdf">
18
+ download
19
+ </a>
20
+ </div>
21
+ <div class="pdf-page-numbers">
22
+ </div>
23
+ </div>
24
+ </div>
@@ -0,0 +1,2 @@
1
+ <h4>Select PDF</h4>
2
+ <%= scrivito_tag(:div, widget, :pdf, data: {filter: 'pdfs'}) %>
@@ -0,0 +1,9 @@
1
+ <% if widget.pdf.blank? %>
2
+ <div class="alert alert-info">
3
+ please select a presentation
4
+ </div>
5
+ <% else %>
6
+ <div class="scrivito-pdf">
7
+ <%= render "pdf_widget/inline_pdf", pdf: widget.pdf %>
8
+ </div>
9
+ <% end %>
@@ -0,0 +1,13 @@
1
+ <div class="editing-dialog-thumbnail">
2
+ <div class="visualization">
3
+ <span class="icon editing-icon-pdf"></span>
4
+ </div>
5
+
6
+ <div class="title">
7
+ PDF
8
+ </div>
9
+
10
+ <div class="description">
11
+ Display a PDF on your page.
12
+ </div>
13
+ </div>
@@ -0,0 +1,5 @@
1
+ module ScrivitoPdfWidget
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace ScrivitoPdfWidget
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ module ScrivitoPdfWidget
2
+ VERSION = "1.0.1"
3
+ end
@@ -0,0 +1,4 @@
1
+ require "scrivito_pdf_widget/engine"
2
+
3
+ module ScrivitoPdfWidget
4
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :scrivito_pdf_widget do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,24 @@
1
+ class CreatePdfWidget < ::Scrivito::Migration
2
+ def up
3
+ Scrivito::ObjClass.create(
4
+ name: 'Pdf',
5
+ type: 'generic',
6
+ is_binary: true,
7
+ title: 'Pdf',
8
+ attributes: [
9
+ {:name=>"headline", :type=>"string"},
10
+ {:name=>"description", :type=>"html"}
11
+ ]
12
+ )
13
+
14
+ Scrivito::ObjClass.create(
15
+ name: 'PdfWidget',
16
+ type: 'publication',
17
+ is_binary: false,
18
+ title: 'Pdf Widget',
19
+ attributes: [
20
+ {:name=>"pdf", :type=>"reference"}
21
+ ]
22
+ )
23
+ end
24
+ end
metadata ADDED
@@ -0,0 +1,121 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: scrivito_pdf_widget
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Scrivito
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-11-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: scrivito_sdk
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: font-awesome-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 4.1.4
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 4.1.4
69
+ description: Displays a PDF using PDF js to show it on your page.
70
+ email:
71
+ - support@scrivito.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - LICENSE
77
+ - Rakefile
78
+ - app/assets/javascripts/pdf_widget/application.js
79
+ - app/assets/javascripts/pdf_widget/editing.js
80
+ - app/assets/javascripts/pdf_widget/jquery.viewer.js
81
+ - app/assets/javascripts/pdf_widget/pdf.js
82
+ - app/assets/javascripts/pdf_widget/pdf.worker.js
83
+ - app/assets/javascripts/pdf_widget/widget.js.erb
84
+ - app/assets/stylesheets/pdf_widget/application.css
85
+ - app/assets/stylesheets/pdf_widget/widget.css
86
+ - app/models/pdf.rb
87
+ - app/models/pdf_widget.rb
88
+ - app/views/pdf_widget/_inline_pdf.html.erb
89
+ - app/views/pdf_widget/details.html.erb
90
+ - app/views/pdf_widget/show.html.erb
91
+ - app/views/pdf_widget/thumbnail.html.erb
92
+ - lib/scrivito_pdf_widget.rb
93
+ - lib/scrivito_pdf_widget/engine.rb
94
+ - lib/scrivito_pdf_widget/version.rb
95
+ - lib/tasks/scrivito_pdf_widget_tasks.rake
96
+ - scrivito/migrate/0_create_pdf_widget.rb
97
+ homepage: https://www.scrivito.com
98
+ licenses:
99
+ - LGPL-3
100
+ metadata: {}
101
+ post_install_message:
102
+ rdoc_options: []
103
+ require_paths:
104
+ - lib
105
+ required_ruby_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ requirements: []
116
+ rubyforge_project:
117
+ rubygems_version: 2.3.0
118
+ signing_key:
119
+ specification_version: 4
120
+ summary: Display a PDF on your Page.
121
+ test_files: []