trusty-festivity-extension 2.3.30 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 098a49fc04df7bc38d1e93865e35fc9f9d1e4896
4
- data.tar.gz: 63bfdc0d8430928df930a025e94e423daad93a86
3
+ metadata.gz: 25cbd6ac174c98114c89ec39479ea0faa321ec3c
4
+ data.tar.gz: 46ffd1cb6a41bdbb55ce9479ab0b9984518f262f
5
5
  SHA512:
6
- metadata.gz: 303c499f84765eeeb971adb2e8e697792d7e4c87b26dbbd0b382cf0db72d6d88a1034eb166ac9229d3e85d2899b839f0c5b46ee6a105c76af230bc9dbd5cc5ac
7
- data.tar.gz: b88c4cb1c98489122c6f30ee82748c235b0f6a138bcc2a68cd48b15c3d1fbf9abd04d0db3f73591f7ffc59ccb6fdeb5ca931bae44dd9fc66c65779471ac9a0c8
6
+ metadata.gz: e18db3d404a06616b162a59ede39e2a1a042528d885735734f7fbdf1bf753025146b3be381ddaed90a2ac2c889b1dcb64763e151aed087336f203cee9496f65c
7
+ data.tar.gz: 25e9fd0d52df46944ff5f50b33a2228640f661773e607687cd1afdf96de2ec482983b5f6045aa6c0d4d6e992dea550138497dd198bbff8d697c01c233abf3564
@@ -29,6 +29,7 @@
29
29
  .button {
30
30
  @include button-subtle-list;
31
31
  background-color: white;
32
+ margin-bottom: 1em;
32
33
  }
33
34
 
34
35
  }
@@ -0,0 +1,53 @@
1
+ .subnav {
2
+ @include divider-top;
3
+ @include pie-clearfix;
4
+ clear: both;
5
+
6
+ @include breakpoint($breakpoint-l) {
7
+ margin-top: 4em;
8
+ border-bottom: 0 none;
9
+ padding-bottom: 0;
10
+ }
11
+
12
+ .subnav-item {
13
+ @include divider-bottom;
14
+ }
15
+
16
+ .subnav-item-media {
17
+ margin-bottom: 1.5em;
18
+ }
19
+
20
+ .subnav-item-title {
21
+ @include heading-2;
22
+ margin-bottom:0.15em;
23
+ }
24
+
25
+ .subnav-item-tags {
26
+ list-style: none;
27
+ margin: 0;
28
+
29
+ li {
30
+ margin-bottom: 0.5em;
31
+ @include breakpoint($breakpoint-xxs) {
32
+ display: inline-block;
33
+ margin-right: 0.5em;
34
+ margin-bottom:0;
35
+ }
36
+
37
+ @include breakpoint($breakpoint-l) {
38
+ display: block;
39
+ margin-right: 0;
40
+ }
41
+
42
+ @include breakpoint($breakpoint-xl) {
43
+ display: inline-block;
44
+ margin-right: 1em;
45
+ }
46
+ }
47
+
48
+ a {
49
+ @include button-subtle-list;
50
+ }
51
+ }
52
+
53
+ }
@@ -0,0 +1,31 @@
1
+ .subnav-one-column {
2
+
3
+ .subnav-item {
4
+
5
+ @include breakpoint($breakpoint-l) {
6
+ @include column(12);
7
+ }
8
+
9
+ .subnav-item-media {
10
+ @include breakpoint($breakpoint-l) {
11
+ @include column(3);
12
+ border-bottom: 0 none;
13
+ padding-bottom: 0;
14
+ }
15
+ }
16
+
17
+ .subnav-item-title {
18
+ padding-bottom: 1em;
19
+ }
20
+
21
+ .subnav-item-body {
22
+ @include breakpoint($breakpoint-l) {
23
+ @include column(8);
24
+ border-bottom: 0 none;
25
+ padding-bottom: 0;
26
+ }
27
+ margin-bottom: 1.5em;
28
+ }
29
+
30
+ }
31
+ }
@@ -1,51 +1,10 @@
1
1
  .subnav-three-column {
2
- @include divider-top;
3
- @include pie-clearfix;
4
- clear: both;
5
-
6
- @include breakpoint($breakpoint-l) {
7
- margin-top: 4em;
8
- }
9
2
 
10
3
  .subnav-item {
11
- @include divider-bottom;
12
4
 
13
5
  @include breakpoint($breakpoint-l) {
14
6
  @include column(4);
15
7
  @include last-col3;
16
- border-bottom: 0 none;
17
- padding-bottom: 0;
18
- }
19
- .subnav-item-media {
20
- margin-bottom: 1.5em;
21
- }
22
-
23
- .subnav-item-tags {
24
- list-style: none;
25
- margin: 0;
26
-
27
- li {
28
- margin-bottom: 0.5em;
29
- @include breakpoint($breakpoint-xxs) {
30
- display: inline-block;
31
- margin-right: 0.5em;
32
- margin-bottom:0;
33
- }
34
-
35
- @include breakpoint($breakpoint-l) {
36
- display: block;
37
- margin-right: 0;
38
- }
39
-
40
- @include breakpoint($breakpoint-xl) {
41
- display: inline-block;
42
- margin-right: 1em;
43
- }
44
- }
45
-
46
- a {
47
- @include button-subtle-list;
48
- }
49
8
  }
50
9
 
51
10
  }
@@ -0,0 +1,11 @@
1
+ .subnav-two-column {
2
+
3
+ .subnav-item {
4
+
5
+ @include breakpoint($breakpoint-l) {
6
+ @include column(6);
7
+ @include last-col2;
8
+ }
9
+
10
+ }
11
+ }
@@ -22,6 +22,9 @@
22
22
  @import "contexts/location";
23
23
  @import "contexts/related-events";
24
24
  @import "contexts/callouts";
25
+ @import "contexts/subnav";
26
+ @import "contexts/subnav_one_column";
27
+ @import "contexts/subnav_two_column";
25
28
  @import "contexts/subnav_three_column";
26
29
 
27
30
  @import "modules/navigation";
@@ -20,6 +20,9 @@
20
20
  @import "contexts/location";
21
21
  @import "contexts/related-events";
22
22
  @import "contexts/callouts";
23
+ @import "contexts/subnav";
24
+ @import "contexts/subnav_one_column";
25
+ @import "contexts/subnav_two_column";
23
26
  @import "contexts/subnav_three_column";
24
27
 
25
28
  @import "modules/navigation";
@@ -50,22 +50,27 @@
50
50
  }
51
51
  .event-tags {
52
52
  li {
53
- margin-bottom: 0.5em;
54
- @include breakpoint($breakpoint-xxs) {
55
- display: inline-block;
56
- margin-right: 0.5em;
57
- margin-bottom:0;
58
- }
53
+ margin-bottom: 0.5em;
54
+ @include breakpoint($breakpoint-xxs) {
55
+ display: inline-block;
56
+ margin-right: 0.5em;
57
+ margin-bottom:0;
58
+ }
59
59
 
60
- @include breakpoint($breakpoint-l) {
61
- display: block;
62
- margin-right: 0;
63
- }
60
+ @include breakpoint($breakpoint-m) {
61
+ margin-top: 1em;
62
+ }
64
63
 
65
- @include breakpoint($breakpoint-xl) {
66
- display: inline-block;
67
- margin-right: 1em;
68
- }
64
+ @include breakpoint($breakpoint-l) {
65
+ display: block;
66
+ margin-right: 0;
67
+ }
68
+
69
+ @include breakpoint($breakpoint-xl) {
70
+ display: inline-block;
71
+ margin-right: 1em;
72
+ margin-top: 0;
73
+ }
69
74
  }
70
75
 
71
76
  a {
@@ -0,0 +1,28 @@
1
+ class VanityUrlPage < Page
2
+
3
+ def clean_target_url
4
+ (self.target_url.match('http://') || self.target_url.match('https://')) ? self.target_url : VanityUrlPage.clean_path(self.target_url)
5
+ end
6
+
7
+ class << self
8
+
9
+ def find_vanity_url_by_path(path, live = true)
10
+ vanity_url_page = Page.current_site.homepage.children.find_by_slug('vanity-urls')
11
+ vanity_pages = vanity_url_page.children.where("vanity_url like '%#{path}%'")
12
+ vanity_pages.each do |vanity_page|
13
+ return vanity_page if clean_comparison_path(path).downcase == clean_comparison_path(vanity_page.vanity_url).downcase
14
+ end
15
+ nil
16
+ end
17
+
18
+ def clean_comparison_path(path)
19
+ "#{clean_path(path)}/"
20
+ end
21
+
22
+ def clean_path(path)
23
+ "/#{path.to_s.strip}".gsub(%r{//+}, '/')
24
+ end
25
+
26
+ end
27
+
28
+ end
@@ -0,0 +1,23 @@
1
+ - unless @page.is_a?(VanityUrlPage)
2
+ .fieldset#content
3
+ %label Page Redirect
4
+ %br
5
+ %em
6
+ If this page has expired and you would like all traffic redirected to a new page, please enter the new url below:
7
+ %br
8
+ = label :page, :redirect_url, "Redirect URL"
9
+ = text_field :page, :redirect_url, :size => 100
10
+ %br
11
+
12
+ - if @page.is_a?(VanityUrlPage)
13
+ %br
14
+ %hr
15
+ .vanity_url
16
+ = label :page, :vanity_url, "Vanity URL"
17
+ = text_field :page, :vanity_url, :size => 100
18
+ %br
19
+ .target_url
20
+ = label :page, :target_url, "Target URL"
21
+ = text_field :page, :target_url, :size => 100
22
+ %br
23
+ %br
@@ -0,0 +1,3 @@
1
+ %section{class: "subnav #{subnav_class}"}
2
+ - current_page.children.each_with_index do |page, index|
3
+ = render partial: 'navigation/subnav_item', locals: {page: page}
@@ -5,7 +5,7 @@
5
5
  = image_tag page.image, alt: page.title
6
6
 
7
7
  .subnav-item-body
8
- %h3.event-title
8
+ %h3.subnav-item-title
9
9
  = link_to page.path do
10
10
  = page.title
11
11
 
@@ -0,0 +1,11 @@
1
+ class CreateVanityUrlPages < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :pages, :vanity_url, :string
4
+ add_column :pages, :target_url, :string
5
+ end
6
+
7
+ def self.down
8
+ remove_column :pages, :vanity_url
9
+ remove_column :pages, :target_url
10
+ end
11
+ end
@@ -14,10 +14,11 @@ class FestivityExtension < TrustyCms::Extension
14
14
  admin.page.edit.add(:form, "festivity_base_fields", :after => 'edit_page_parts')
15
15
  admin.page.edit.add(:form, "festivity_location_fields", :after => 'edit_page_parts')
16
16
  admin.site.edit.add(:form, "festivity_site_fields", :after => 'edit_homepage')
17
+ admin.page.edit.add(:form, "festivity_vanity_url_fields", :before => 'form_bottom')
17
18
 
18
19
  Admin::AssetsController.send :include, Festivity::Extensions::PaperclippedExtensions
19
20
  Site.send :include, Festivity::Extensions::SiteExtensions
20
- Page.send :include, Festivity::Extensions::PageExtensions
21
+ #Page.send :include, Festivity::Extensions::PageExtensions
21
22
  Admin::PagesHelper.send :include, Festivity::Extensions::PagesHelperExtensions
22
23
  SitesHelper.send :include, Festivity::Extensions::PagesHelperExtensions
23
24
  Page.send :include, Tags::NavigationTags
@@ -15,6 +15,8 @@ module Festivity
15
15
  include ActsAsTree::InstanceMethods
16
16
  include Festivity::Extensions::PageExtensions::PageMethods
17
17
  include Festivity::Admin::AssetsHelper
18
+
19
+ alias_method_chain :find_by_path, :vanity_urls
18
20
  }
19
21
 
20
22
  end
@@ -47,6 +49,15 @@ module Festivity
47
49
  page_organization
48
50
  end
49
51
 
52
+ def find_by_path_with_vanity_urls(path, live = true, clean = true)
53
+ raise MissingRootPageError unless root
54
+ page = self.find_by_path_without_vanity_urls(path, live, clean)
55
+ if page.is_a?(FileNotFoundPage)
56
+ vanity_url = VanityUrlPage.find_vanity_url_by_path(path, live)
57
+ end
58
+ vanity_url ? vanity_url : page
59
+ end
60
+
50
61
  private
51
62
 
52
63
  def festivity_base_page?
@@ -0,0 +1,27 @@
1
+ module Festivity
2
+ module Extensions
3
+ module SiteControllerExtensions
4
+
5
+ def self.included(base)
6
+ base.class_eval do
7
+ alias_method_chain :process_page, :redirection
8
+ end
9
+ end
10
+
11
+
12
+ def process_page_with_redirection(page)
13
+ if page.is_a?(VanityUrlPage)
14
+ false if redirect_to page.clean_target_url
15
+
16
+ elsif !page.redirect_url.nil? && !page.redirect_url.empty?
17
+ false if redirect_to page.redirect_url
18
+ else
19
+ process_page_without_redirection(page)
20
+ end
21
+ end
22
+
23
+
24
+ end
25
+ end
26
+ end
27
+
@@ -8,9 +8,11 @@ module Tags::NavigationTags
8
8
  <pre><r:subnav_one_column /></pre>
9
9
  }
10
10
  tag "subnav_one_column" do |tag|
11
- request.env["action_controller.instance"].render_to_string :partial => "navigation/subnav_one_column",
12
- :locals => {:current_page => tag.locals.page,
13
- :top_level_page => top_level_page(tag.locals.page)}
11
+ request.env["action_controller.instance"].render_to_string :partial => "navigation/subnav",
12
+ :locals => {
13
+ :subnav_class => 'subnav-one-column',
14
+ :current_page => tag.locals.page,
15
+ :top_level_page => top_level_page(tag.locals.page)}
14
16
  end
15
17
 
16
18
  desc %{Two Column Subnavigation Tag
@@ -19,9 +21,11 @@ module Tags::NavigationTags
19
21
  <pre><r:subnav_two_column /></pre>
20
22
  }
21
23
  tag "subnav_two_column" do |tag|
22
- request.env["action_controller.instance"].render_to_string :partial => "navigation/subnav_two_column",
23
- :locals => {:current_page => tag.locals.page,
24
- :top_level_page => top_level_page(tag.locals.page)}
24
+ request.env["action_controller.instance"].render_to_string :partial => "navigation/subnav",
25
+ :locals => {
26
+ :subnav_class => 'subnav-two-column',
27
+ :current_page => tag.locals.page,
28
+ :top_level_page => top_level_page(tag.locals.page)}
25
29
  end
26
30
 
27
31
  desc %{Three Column Subnavigation Tag
@@ -32,9 +36,11 @@ module Tags::NavigationTags
32
36
  }
33
37
  tag "subnav_three_column" do |tag|
34
38
 
35
- request.env["action_controller.instance"].render_to_string :partial => "navigation/subnav_three_column",
36
- :locals => {:current_page => tag.locals.page,
37
- :top_level_page => top_level_page(tag.locals.page)}
39
+ request.env["action_controller.instance"].render_to_string :partial => "navigation/subnav",
40
+ :locals => {
41
+ :subnav_class => 'subnav-three-column',
42
+ :current_page => tag.locals.page,
43
+ :top_level_page => top_level_page(tag.locals.page)}
38
44
  end
39
45
 
40
46
 
@@ -1,5 +1,5 @@
1
1
  module TrustyFestivityExtension
2
- VERSION = "2.3.30"
2
+ VERSION = "2.4.0"
3
3
  SUMMARY = "Festival microsite engine for Trusty CMS"
4
4
  DESCRIPTION = "Event management for arts festivals."
5
5
  URL = "http://github.com/pgharts/trusty-festivity-extension"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trusty-festivity-extension
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.30
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Sipple
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-28 00:00:00.000000000 Z
11
+ date: 2016-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: trusty-cms
@@ -477,7 +477,10 @@ files:
477
477
  - app/assets/stylesheets/contexts/_related-events.scss
478
478
  - app/assets/stylesheets/contexts/_site-footer.scss
479
479
  - app/assets/stylesheets/contexts/_site-header.scss
480
+ - app/assets/stylesheets/contexts/_subnav.scss
481
+ - app/assets/stylesheets/contexts/_subnav_one_column.scss
480
482
  - app/assets/stylesheets/contexts/_subnav_three_column.scss
483
+ - app/assets/stylesheets/contexts/_subnav_two_column.scss
481
484
  - app/assets/stylesheets/events/_event-list-item.scss
482
485
  - app/assets/stylesheets/events/_event_template.scss
483
486
  - app/assets/stylesheets/events/_filter-bar.scss
@@ -586,6 +589,7 @@ files:
586
589
  - app/models/festivity_market_page.rb
587
590
  - app/models/festivity_page_category.rb
588
591
  - app/models/festivity_performance.rb
592
+ - app/models/vanity_url_page.rb
589
593
  - app/presenters/festivity_date_presenter.rb
590
594
  - app/presenters/festivity_datetime_filter_presenter.rb
591
595
  - app/presenters/festivity_datetime_presenter.rb
@@ -598,6 +602,7 @@ files:
598
602
  - app/views/admin/pages/_festivity_featured_image_fields.html.haml
599
603
  - app/views/admin/pages/_festivity_includes.html.haml
600
604
  - app/views/admin/pages/_festivity_location_fields.html.haml
605
+ - app/views/admin/pages/_festivity_vanity_url_fields.html.haml
601
606
  - app/views/admin/pages/partials/_categories.html.haml
602
607
  - app/views/admin/pages/partials/_category.html.haml
603
608
  - app/views/admin/pages/partials/_featured_image.html.haml
@@ -623,10 +628,8 @@ files:
623
628
  - app/views/festivity_location_areas/show.html.haml
624
629
  - app/views/festivity_locations/show.html.haml
625
630
  - app/views/header/_meta_tags.html.haml
626
- - app/views/navigation/_mobile_menus.html.haml
627
- - app/views/navigation/_subnav_one_column.html.haml
628
- - app/views/navigation/_subnav_three_column.html.haml
629
- - app/views/navigation/_three_column_item.html.haml
631
+ - app/views/navigation/_subnav.html.haml
632
+ - app/views/navigation/_subnav_item.html.haml
630
633
  - app/views/search/_page.html.haml
631
634
  - app/views/search/_pagination_links.html.haml
632
635
  - app/views/search/_result_item.html.haml
@@ -658,12 +661,14 @@ files:
658
661
  - db/migrate/20150324135487799_add_indexes.rb
659
662
  - db/migrate/20151018190155_update_site_for_hourly_filters.rb
660
663
  - db/migrate/20151105155407_add_buy_ticket_text_to_site.rb
664
+ - db/migrate/201601231255101234_create_vanity_url_pages.rb
661
665
  - festivity_extension.rb
662
666
  - lib/festivity/admin/assets_helper.rb
663
667
  - lib/festivity/engine.rb
664
668
  - lib/festivity/extensions/page_extensions.rb
665
669
  - lib/festivity/extensions/pages_helper_extensions.rb
666
670
  - lib/festivity/extensions/paperclipped_extensions.rb
671
+ - lib/festivity/extensions/site_controller_extensions.rb
667
672
  - lib/festivity/extensions/site_extensions.rb
668
673
  - lib/festivity/mixins/not_found.rb
669
674
  - lib/tags/filter_and_menu_tags.rb
File without changes
@@ -1,15 +0,0 @@
1
- .page-template
2
- - current_page.children.each do |page|
3
- .row.media-item
4
- .col-xs-12.col-md-4
5
- .map-thumb
6
- %a{href: page.path}
7
- %img{src: page.image, alt: page.title}
8
- %h3.strong
9
- .col-xs-12.col-md-8
10
- %h3.strong
11
- = page.title
12
- %p
13
- = page.short_description
14
- %a.btn.btn-default{href: page.path}
15
- Learn More
@@ -1,3 +0,0 @@
1
- %section.subnav-three-column
2
- - current_page.children.each_with_index do |page, index|
3
- = render partial: 'navigation/three_column_item', locals: {page: page}