pageflow-new-pages-box 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NGU1ZTkzMTdiNjIxZjZjNzRhNWEzMmQ2NmNhYmUxZTZmNWIyZDQwOQ==
5
+ data.tar.gz: !binary |-
6
+ ODAwZjkyZWE2YTkwYjI1OTc3ZDZmOTI2NDk4OTgyYWMwOWM5Njg4MQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZjI2NDI2YjViYmMwZGI0OThiODUxMzVlMDIyOTU2MjUxYjViZTlkM2NiZWE5
10
+ ZmQ0MWZiZDBkYmQ2NjQ3ZmIxZDBmOTE4Njg1ZWI1MmViZWU4NWQwNGQ4ZTBj
11
+ NDc5MzkwMzlmZmQ4YmE5MmZjMDEwYWVmMDIyZDBjZDI5MjYxMzg=
12
+ data.tar.gz: !binary |-
13
+ OTU4Zjc0YWJmODY5YzFmNzRlOThmNjc2NGEwYjZiNTJmM2Q0MjM3MDAyZjdi
14
+ NGNhMGRlMjU1YmY3ZGI2NDczYzY5MDYzMmFjNDdlM2I3Y2MzYzNiNjdhN2Nh
15
+ NDQwYTU3ZWY3ZmVmNTVlYzg1MmFjNWU3MzdjNzJhNzRjMDU3MGM=
data/.gitignore ADDED
@@ -0,0 +1,16 @@
1
+ *.gem
2
+ *.rbc
3
+ *.sqlite3
4
+ .bundle
5
+ .config
6
+ .yardoc
7
+ .idea
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ pkg
12
+ spec/reports
13
+ tmp
14
+ log
15
+ Gemfile.lock
16
+ .localeapp
data/.jshintrc ADDED
@@ -0,0 +1,13 @@
1
+ {
2
+ "browser": true,
3
+ "undef": true,
4
+ "immed": true,
5
+ "trailing": true,
6
+ "globals": {
7
+ "jQuery": true,
8
+ "$": true,
9
+ "_": true,
10
+ "I18n": true,
11
+ "pageflow": true
12
+ }
13
+ }
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in chart.gemspec
4
+ gemspec
5
+
6
+ # Rails 4 compat
7
+ gem 'activeadmin', git: 'https://github.com/codevise/active_admin.git', branch: 'rails4'
8
+ gem 'ransack'
9
+ gem 'inherited_resources', '1.4.1'
10
+ gem 'formtastic', '2.3.0.rc2'
data/README.md ADDED
@@ -0,0 +1,43 @@
1
+ # Pageflow New Pages Box
2
+
3
+ A small box listing the pages that were added since your last visit
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's `Gemfile`:
8
+
9
+ gem 'pageflow-new-pages-box'
10
+
11
+ Register the widget type inside the configure block in `config/initializers/pageflow.rb`
12
+
13
+ Pageflow.configure do |config|
14
+ config.widget_types.register(Pageflow::NewPagesBox.widget_type)
15
+ end
16
+
17
+ Include javascripts and stylesheets:
18
+
19
+ # app/assets/javascripts/pageflow/application.js
20
+ //= require pageflow/new_pages_box
21
+
22
+ # app/assets/stylesheets/pageflow/application.css.scss
23
+ @import "pageflow/new_pages_box";
24
+
25
+ # Adding basic style to your theme
26
+ # app/assets/stylesheets/pageflow/themes/default.css.scss
27
+ @import "pageflow/new_pages_box/themes/default";
28
+
29
+ Execute `bundle install` Restart the application server.
30
+
31
+ ## Troubleshooting
32
+
33
+ If you run into problems while installing the page type, please also refer to the
34
+ [Troubleshooting](https://github.com/codevise/pageflow/wiki/Troubleshooting) wiki
35
+ page in the [Pageflow repository](https://github.com/codevise/pageflow). If that
36
+ doesn't help, consider
37
+ [filing an issue](https://github.com/codevise/pageflow-new-pages-box/issues).
38
+
39
+ ## Contributing Locales
40
+
41
+ Edit the translations directly on the
42
+ [pageflow-new-pages-box](http://www.localeapp.com/projects/public?search=tf/pageflow-new-pages-box)
43
+ locale project.
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,8 @@
1
+ //= require_self
2
+ //= require ./new_pages_box/widget
3
+
4
+ pageflow.widgetTypes.register('new_pages_box', {
5
+ enhance: function(element) {
6
+ element.newPagesBox();
7
+ }
8
+ });
@@ -0,0 +1,33 @@
1
+ (function($) {
2
+ $.widget('pageflow.newPagesBox', {
3
+ _create: function() {
4
+ var wrapperElement = this.element.find('.new_pages_box_wrapper');
5
+
6
+ pageflow.ready.then(function() {
7
+ var unvisitedPages = pageflow.visited.getUnvisitedPages();
8
+
9
+ if (unvisitedPages.length > 0) {
10
+ _.chain(unvisitedPages).first(3).each(function(permaId) {
11
+ var link = wrapperElement.find('a[href="#'+ permaId + '"]');
12
+ link.parent().show();
13
+ });
14
+
15
+ if (unvisitedPages.length > 3) {
16
+ wrapperElement.find(".additional_pages_hint").show();
17
+ wrapperElement.find(".additional_pages_hint span").html(unvisitedPages.length - 3);
18
+ }
19
+
20
+ wrapperElement.delay(1000).fadeIn(1000);
21
+ }
22
+ });
23
+
24
+ wrapperElement.find('.close_hint').on('click', function() {
25
+ wrapperElement.fadeOut(500);
26
+ });
27
+
28
+ pageflow.slides.on('pageactivate', function(e) {
29
+ wrapperElement.fadeOut(1000);
30
+ });
31
+ }
32
+ });
33
+ }(jQuery));
@@ -0,0 +1,135 @@
1
+ .new_pages_box {
2
+ .new_pages_box_wrapper {
3
+ display: none;
4
+ position: absolute;
5
+ padding: 15px;
6
+ bottom: 1%;
7
+ right: 1%;
8
+ margin-right: 110px;
9
+ z-index: 1;
10
+ width: 300px;
11
+
12
+
13
+ &:before {
14
+ display: none;
15
+ }
16
+
17
+ > h3 {
18
+ margin: 0;
19
+ }
20
+
21
+ @include mobile {
22
+ right: initial;
23
+ bottom: initial;
24
+ left: 50%;
25
+ top: 50%;
26
+ @include transform(translate(-50%,-50%));
27
+ }
28
+
29
+ @include phone {
30
+ font-size: 0.8em;
31
+ width: 266px;
32
+
33
+ img {
34
+ width: 136px;
35
+ background-position: center;
36
+ background-size: cover;
37
+ }
38
+ }
39
+
40
+ .navigation_site_detail {
41
+ display: block;
42
+ padding: 6px 0 0 0;
43
+ position: relative;
44
+
45
+ &:before {
46
+ content: "";
47
+ position: absolute;
48
+ width: 100%;
49
+ padding: 0 5px;
50
+ left: -5px;
51
+ top: 0;
52
+ height: 100%;
53
+ z-index: -1;
54
+ visibility: hidden;
55
+ }
56
+
57
+ &:hover:before {
58
+ visibility: visible;
59
+ }
60
+ }
61
+
62
+ ul {
63
+ padding: 0;
64
+ list-style: none;
65
+
66
+ li {
67
+ display: none;
68
+
69
+ h2 {
70
+ margin: 0;
71
+ font-size: 0.8em;
72
+ line-height: 1.2em;
73
+
74
+ span {
75
+ display: block;
76
+
77
+ &.chapter_number {
78
+ font-weight: normal;
79
+ }
80
+ }
81
+ }
82
+
83
+ .title_area {
84
+ position: absolute;
85
+ right: 0;
86
+ width: 118px;
87
+ top: 50%;
88
+ max-height: 100%;
89
+ overflow: hidden;
90
+ @include transform(translate(0,-51%));
91
+ }
92
+ }
93
+ }
94
+
95
+ hr {
96
+ border: 0;
97
+ margin: 0;
98
+ }
99
+
100
+ a {
101
+ color: white;
102
+
103
+ &.close_hint {
104
+ position: relative;
105
+ margin-left: 15px;
106
+ float:right;
107
+
108
+ &:before {
109
+ left: -16px;
110
+ top: 4px;
111
+ position: absolute;
112
+ background-image: url(/assets/pageflow/anchor_white.png);
113
+ width: 10px;
114
+ height: 12px;
115
+ content: "";
116
+ display: inline-block;
117
+ background-repeat: no-repeat;
118
+ background-position: center;
119
+
120
+ @include phone {
121
+ top: 3px;
122
+ }
123
+ }
124
+ }
125
+ }
126
+
127
+ .additional_pages_hint {
128
+ display: none;
129
+
130
+ span {
131
+ font-weight: bold;
132
+ }
133
+ }
134
+ }
135
+ }
@@ -0,0 +1,17 @@
1
+ .new_pages_box {
2
+ $border-color: #9c9c9c;
3
+ $text-color: #fff;
4
+
5
+ .new_pages_box_wrapper {
6
+ background-color: $basic-background-color;
7
+ background-color: $basic-background-color-transparent;
8
+ border: 2px solid $border-color;
9
+ color: $text-color;
10
+ font-family: $standard-font;
11
+ }
12
+
13
+ .navigation_site_detail:before {
14
+ background-color: darken($basic-background-color, 5%);
15
+ background-color: darken($basic-background-color-transparent, 5%);
16
+ }
17
+ }
@@ -0,0 +1,20 @@
1
+ <%= content_tag(:li, class: page_navigation_css_class(page)) do %>
2
+ <%= link_to("##{page.perma_id}",
3
+ class: 'navigation_site_detail',
4
+ data: {link: page.id, chapter_id: page.chapter_id}) do %>
5
+
6
+ <div class="title_area">
7
+ <% if chapters_count > 1 %>
8
+ <h2>
9
+ <span class="chapter_title"><%= page.chapter.title %></span>
10
+ </h2>
11
+ <% end %>
12
+
13
+ <%= page.title %>
14
+ </div>
15
+
16
+ <%= image_tag("pageflow/#{page.template}_pictogram.png",
17
+ style: "background-image: url('#{asset_path(page.thumbnail_url(:navigation_thumbnail_large))}')") %>
18
+ <% end %>
19
+ <hr />
20
+ <% end %>
@@ -0,0 +1,19 @@
1
+ <div class="new_pages_box" data-widget="new_pages_box">
2
+ <% if entry.emphasize_new_pages %>
3
+ <div class="new_pages_box_wrapper">
4
+ <h3><%= t('.title') %></h3>
5
+ <p><%= t('.description') %></p>
6
+ <ul>
7
+ <%= render(partial: 'pageflow/new_pages_box/page',
8
+ collection: entry.pages.displayed_in_navigation,
9
+ locals: {chapters_count: entry.chapters.count}) %>
10
+ </ul>
11
+
12
+ <p class="additional_pages_hint">
13
+ <%= t('.additional_pages_html') %>
14
+ </p>
15
+
16
+ <a href="#" class="close_hint"><%= t('.close_hint') %></a>
17
+ </div>
18
+ <% end %>
19
+ </div>
@@ -0,0 +1,12 @@
1
+ de:
2
+ pageflow:
3
+ new_pages_box:
4
+ widget:
5
+ additional_pages_html: ! '...und <span></span> weitere'
6
+ close_hint: Hinweis schließen
7
+ description: ! 'Seit dem letzten Besuch wurden diesem Pageflow neue Seiten hinzugefügt:'
8
+ title: Neue Seiten
9
+ widget_type_name: Box mit Thumbnails
10
+ widgets:
11
+ roles:
12
+ new_pages_box: Neue Seiten Hinweis
@@ -0,0 +1,12 @@
1
+ en:
2
+ pageflow:
3
+ new_pages_box:
4
+ widget:
5
+ additional_pages_html: ! '...and <span></span> more'
6
+ close_hint: Close hint
7
+ description: ! 'Since your last visit, pages have been added to this pageflow:'
8
+ title: New Pages
9
+ widget_type_name: Box with thumbnails
10
+ widgets:
11
+ roles:
12
+ new_pages_box: New pages box
@@ -0,0 +1,9 @@
1
+ require 'pageflow/new_pages_box/engine'
2
+
3
+ module Pageflow
4
+ module NewPagesBox
5
+ def self.widget_type
6
+ NewPagesBox::WidgetType.new
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module Pageflow
2
+ module NewPagesBox
3
+ class Engine < Rails::Engine
4
+ isolate_namespace Pageflow::NewPagesBox
5
+
6
+ config.autoload_paths << File.join(config.root, 'lib')
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ module Pageflow
2
+ module NewPagesBox
3
+ class WidgetType < Pageflow::WidgetType
4
+ def name
5
+ 'new_pages_box'
6
+ end
7
+
8
+ def roles
9
+ ['new_pages_box']
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,21 @@
1
+ # coding: utf-8
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = 'pageflow-new-pages-box'
5
+ spec.version = '0.1.0'
6
+ spec.authors = ['Codevise Solutions Ltd.']
7
+ spec.email = ['info@codevise.de']
8
+ spec.summary = 'Pageflow new pages box widget.'
9
+ spec.homepage = ''
10
+ spec.license = 'MIT'
11
+
12
+ spec.files = `git ls-files`.split($/)
13
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
14
+ spec.test_files = spec.files.grep(%r{^spec/})
15
+ spec.require_paths = ['lib']
16
+
17
+ spec.add_runtime_dependency 'pageflow', '~> 0.7'
18
+
19
+ spec.add_development_dependency 'bundler'
20
+ spec.add_development_dependency 'rake'
21
+ end
metadata ADDED
@@ -0,0 +1,103 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pageflow-new-pages-box
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Codevise Solutions Ltd.
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-05-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: pageflow
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '0.7'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '0.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
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: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description:
56
+ email:
57
+ - info@codevise.de
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - .gitignore
63
+ - .jshintrc
64
+ - Gemfile
65
+ - README.md
66
+ - Rakefile
67
+ - app/assets/javascript/pageflow/new_pages_box.js
68
+ - app/assets/javascript/pageflow/new_pages_box/widget.js
69
+ - app/assets/stylesheets/pageflow/new_pages_box.scss
70
+ - app/assets/stylesheets/pageflow/new_pages_box/themes/default.css.scss
71
+ - app/views/pageflow/new_pages_box/_page.html.erb
72
+ - app/views/pageflow/new_pages_box/_widget.html.erb
73
+ - config/locales/de.yml
74
+ - config/locales/en.yml
75
+ - lib/pageflow-new-pages-box.rb
76
+ - lib/pageflow/new_pages_box/engine.rb
77
+ - lib/pageflow/new_pages_box/widget_type.rb
78
+ - pageflow-new-pages-box.gemspec
79
+ homepage: ''
80
+ licenses:
81
+ - MIT
82
+ metadata: {}
83
+ post_install_message:
84
+ rdoc_options: []
85
+ require_paths:
86
+ - lib
87
+ required_ruby_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ! '>='
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ required_rubygems_version: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ requirements: []
98
+ rubyforge_project:
99
+ rubygems_version: 2.4.2
100
+ signing_key:
101
+ specification_version: 4
102
+ summary: Pageflow new pages box widget.
103
+ test_files: []