trusty-festivity-extension 2.5.3 → 2.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (162) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/app/assets/images/skins/crawl/crawl-after-dark-bg.png +0 -0
  4. data/app/assets/images/skins/crawl/crawl-instagram-bg.svg +1 -0
  5. data/app/assets/images/skins/crawl/crawl-intro-bg.png +0 -0
  6. data/app/assets/images/skins/crawl/crawl-map.png +0 -0
  7. data/app/assets/images/skins/crawl/crawl-twitter-bg.svg +1 -0
  8. data/app/assets/images/skins/crawl/crawl-up-next-bg.png +0 -0
  9. data/app/assets/images/skins/crawl/fn-instagram-bg.svg +1 -0
  10. data/app/assets/images/skins/crawl/fn-twitter-bg.svg +1 -0
  11. data/app/assets/images/{gallery-crawl-logo-sm.svg → skins/crawl/gallery-crawl-logo-sm.svg} +0 -0
  12. data/app/assets/images/{gallery-crawl-logo-v2.svg → skins/crawl/gallery-crawl-logo-v2.svg} +0 -0
  13. data/app/assets/images/{gallery-crawl-logo.svg → skins/crawl/gallery-crawl-logo.svg} +0 -0
  14. data/app/assets/images/{gc-header-bg.svg → skins/crawl/gc-header-bg.svg} +0 -0
  15. data/app/assets/images/{header-bg.svg → skins/crawl/header-bg.svg} +0 -0
  16. data/app/assets/images/{page-bg.svg → skins/crawl/page-bg.svg} +0 -0
  17. data/app/assets/images/{fn-button.svg → skins/first-night/fn-button.svg} +0 -0
  18. data/app/assets/images/{fn-enjoyevents.jpg → skins/first-night/fn-enjoyevents.jpg} +0 -0
  19. data/app/assets/images/{fn-enjoyevents.svg → skins/first-night/fn-enjoyevents.svg} +0 -0
  20. data/app/assets/images/{fn-featured-bg.svg → skins/first-night/fn-featured-bg.svg} +0 -0
  21. data/app/assets/images/{fn-friends.svg → skins/first-night/fn-friends.svg} +0 -0
  22. data/app/assets/images/{fn-header-background.jpg → skins/first-night/fn-header-background.jpg} +0 -0
  23. data/app/assets/images/{fn-homepage-feature.jpg → skins/first-night/fn-homepage-feature.jpg} +0 -0
  24. data/app/assets/images/{fn-homepage-howitworks-bg-sm.jpg → skins/first-night/fn-homepage-howitworks-bg-sm.jpg} +0 -0
  25. data/app/assets/images/{fn-homepage-howitworks-bg.jpg → skins/first-night/fn-homepage-howitworks-bg.jpg} +0 -0
  26. data/app/assets/images/{fn-homepage-howitworks-topbg.svg → skins/first-night/fn-homepage-howitworks-topbg.svg} +0 -0
  27. data/app/assets/images/{fn-insta-mockupimage1.jpg → skins/first-night/fn-insta-mockupimage1.jpg} +0 -0
  28. data/app/assets/images/{fn-insta-mockupimage2.jpg → skins/first-night/fn-insta-mockupimage2.jpg} +0 -0
  29. data/app/assets/images/{fn-insta-mockupimage3.jpg → skins/first-night/fn-insta-mockupimage3.jpg} +0 -0
  30. data/app/assets/images/{fn-insta-mockupimage4.jpg → skins/first-night/fn-insta-mockupimage4.jpg} +0 -0
  31. data/app/assets/images/{fn-instagram-bg.svg → skins/first-night/fn-instagram-bg.svg} +0 -0
  32. data/app/assets/images/{fn-logo-sm.svg → skins/first-night/fn-logo-sm.svg} +0 -0
  33. data/app/assets/images/{fn-logo.svg → skins/first-night/fn-logo.svg} +0 -0
  34. data/app/assets/images/{fn-planvisit.jpg → skins/first-night/fn-planvisit.jpg} +0 -0
  35. data/app/assets/images/{fn-planvisit.svg → skins/first-night/fn-planvisit.svg} +0 -0
  36. data/app/assets/images/{fn-twitter-bg.svg → skins/first-night/fn-twitter-bg.svg} +0 -0
  37. data/app/assets/images/{fn-watchballdrop.svg → skins/first-night/fn-watchballdrop.svg} +0 -0
  38. data/app/assets/images/{fn-watchballrise.jpg → skins/first-night/fn-watchballrise.jpg} +0 -0
  39. data/app/assets/images/{fn-watchballrise.svg → skins/first-night/fn-watchballrise.svg} +0 -0
  40. data/app/assets/images/skins/pghkids/footer.png +0 -0
  41. data/app/assets/images/skins/pghkids/footer_mobile.png +0 -0
  42. data/app/assets/images/skins/pghkids/frog.png +0 -0
  43. data/app/assets/images/skins/pghkids/frog_mobile.png +0 -0
  44. data/app/assets/images/skins/pghkids/seafoam.jpg +0 -0
  45. data/app/assets/images/skins/traf/traf-background.png +0 -0
  46. data/app/assets/images/skins/traf/traf-bottom-wave.png +0 -0
  47. data/app/assets/images/skins/traf/traf-bridge.png +0 -0
  48. data/app/assets/images/skins/traf/traf-bubbles.png +0 -0
  49. data/app/assets/images/skins/traf/traf-thin-wave.png +0 -0
  50. data/app/assets/javascripts/skins/crawl/AppMeasurement.js +63 -0
  51. data/app/assets/javascripts/skins/first-night/AppMeasurement.js +137 -0
  52. data/app/assets/javascripts/skins/pghkids/AppMeasurement.js +137 -0
  53. data/app/assets/javascripts/skins/traf/AppMeasurement.js +137 -0
  54. data/app/assets/stylesheets/contexts/_events-list.scss +1 -1
  55. data/app/assets/stylesheets/contexts/_site-header.scss +1 -2
  56. data/app/assets/stylesheets/contexts/_social-posts.scss +57 -0
  57. data/app/assets/stylesheets/crawl.scss +37 -0
  58. data/app/assets/stylesheets/{first-night.scss → firstnight.scss} +5 -4
  59. data/app/assets/stylesheets/globals/_general.scss +20 -0
  60. data/app/assets/stylesheets/modules/_event.scss +1 -1
  61. data/app/assets/stylesheets/skins/crawl/contexts/_crawl.scss +189 -0
  62. data/app/assets/stylesheets/skins/crawl/contexts/_site-header.scss +3 -0
  63. data/app/assets/stylesheets/skins/crawl/library/_general-mixins.scss +15 -0
  64. data/app/assets/stylesheets/skins/crawl/library/_typographic-mixins.scss +16 -0
  65. data/app/assets/stylesheets/skins/crawl/skin.scss +34 -0
  66. data/app/assets/stylesheets/{first-night-stylesheets → skins/first-night}/contexts/_first-night.scss +33 -75
  67. data/app/assets/stylesheets/{first-night-stylesheets → skins/first-night}/library/_general-mixins.scss +0 -0
  68. data/app/assets/stylesheets/{first-night-stylesheets → skins/first-night}/library/_icons.scss +0 -0
  69. data/app/assets/stylesheets/{first-night-stylesheets → skins/first-night}/library/_variables.scss +0 -0
  70. data/app/assets/stylesheets/skins/first-night/skin.scss +43 -0
  71. data/app/assets/stylesheets/skins/pghkids/contexts/_faq.scss +21 -8
  72. data/app/assets/stylesheets/skins/traf/contexts/_homepage.scss +21 -11
  73. data/app/assets/stylesheets/skins/traf/contexts/_social_feed.scss +30 -26
  74. data/app/assets/stylesheets/skins/traf/skin.scss +2 -1
  75. data/app/assets/stylesheets/traf.scss +1 -0
  76. data/app/controllers/errors_controller.rb +1 -1
  77. data/app/controllers/festivity_events_controller.rb +1 -1
  78. data/app/controllers/festivity_location_areas_controller.rb +1 -0
  79. data/app/controllers/festivity_locations_controller.rb +1 -0
  80. data/app/controllers/festivity_markets_controller.rb +1 -0
  81. data/app/controllers/search_controller.rb +1 -0
  82. data/app/helpers/festivity_events_helper.rb +1 -6
  83. data/app/models/festivity_event_list.rb +14 -0
  84. data/app/models/festivity_market_page.rb +4 -0
  85. data/app/models/festivity_performance.rb +10 -0
  86. data/app/views/admin/sites/_festivity_site_fields.html.haml +4 -0
  87. data/app/views/festivity_events/_hourly.html.haml +35 -0
  88. data/app/views/festivity_events/show.html.haml +22 -1
  89. data/app/views/festivity_markets/_market.html.haml +2 -0
  90. data/app/views/festivity_markets/show.html.haml +2 -0
  91. data/db/content/layouts/Crawl/base.html +221 -0
  92. data/db/content/layouts/Crawl/cms_home.html +67 -0
  93. data/db/content/layouts/Crawl/normal.html +5 -0
  94. data/db/content/layouts/FirstNighPGH/base.html +2 -2
  95. data/db/migrate/201604261638542263_add_social_media_tags_to_sites.rb +5 -0
  96. data/lib/festivity/engine.rb +3 -3
  97. data/lib/tags/filter_and_menu_tags.rb +4 -1
  98. data/lib/trusty-festivity-extension.rb +1 -1
  99. data/trusty-festivity-extension.gemspec +1 -1
  100. metadata +64 -101
  101. data/app/assets/images/9EBFA19B4026F15A.jpg +0 -0
  102. data/app/assets/images/9EBFA19B4026F15A.png +0 -0
  103. data/app/assets/images/9EBFA19B4026F15B.jpg +0 -0
  104. data/app/assets/images/9EBFA19B4026F15B.png +0 -0
  105. data/app/assets/images/9EBFA19B4026F15C.jpg +0 -0
  106. data/app/assets/images/9EBFA19B4026F15C.png +0 -0
  107. data/app/assets/images/9EBFA19B4026F15D.jpg +0 -0
  108. data/app/assets/images/9EBFA19B4026F15E.jpg +0 -0
  109. data/app/assets/images/9EBFA19B4026F15F.jpg +0 -0
  110. data/app/assets/images/9EBFA19B4026F164.jpg +0 -0
  111. data/app/assets/images/9EBFA19B4026F165.jpg +0 -0
  112. data/app/assets/images/9EBFA19B4026F166.jpg +0 -0
  113. data/app/assets/images/9EBFA19B4026F167.jpg +0 -0
  114. data/app/assets/images/9EBFA19B4026F168.jpg +0 -0
  115. data/app/assets/images/9EBFA19B4026F169.jpg +0 -0
  116. data/app/assets/images/9EBFA19B4026F16A.jpg +0 -0
  117. data/app/assets/images/9EBFA19B4026F16B.jpg +0 -0
  118. data/app/assets/images/9EBFA19B4026F16C.jpg +0 -0
  119. data/app/assets/images/9EBFA19B4026F16D.jpg +0 -0
  120. data/app/assets/images/9EBFA19B4026F16E.jpg +0 -0
  121. data/app/assets/images/9EBFA19B4026F16F.jpg +0 -0
  122. data/app/assets/images/9EBFA19B4026F173.jpg +0 -0
  123. data/app/assets/images/9EBFA19B4026F174.jpg +0 -0
  124. data/app/assets/images/9EBFA19B4026F175.jpg +0 -0
  125. data/app/assets/images/F1B25B7045A0E2AA.jpg +0 -0
  126. data/app/assets/images/F1B25B7045A0E2AB.jpg +0 -0
  127. data/app/assets/images/F1B25B7045A0E2AD.jpg +0 -0
  128. data/app/assets/images/image-lg.jpg +0 -0
  129. data/app/assets/images/image-sm.jpg +0 -0
  130. data/app/assets/images/image-sq.jpg +0 -0
  131. data/app/assets/images/image-vid.jpg +0 -0
  132. data/app/assets/images/jeff-tweedy.png +0 -0
  133. data/app/assets/images/no-limits.jpg +0 -0
  134. data/app/assets/images/pct-black.png +0 -0
  135. data/app/assets/images/pso.png +0 -0
  136. data/app/assets/images/sam-bush.png +0 -0
  137. data/app/assets/stylesheets/_bootstrap-compass.scss +0 -9
  138. data/app/assets/stylesheets/_bootstrap-mincer.scss +0 -19
  139. data/app/assets/stylesheets/_bootstrap-sprockets.scss +0 -9
  140. data/app/assets/stylesheets/_bootstrap.scss +0 -50
  141. data/app/assets/stylesheets/_defaults.scss +0 -6
  142. data/app/assets/stylesheets/_event_filter_bar.scss +0 -78
  143. data/app/assets/stylesheets/_faq.scss +0 -48
  144. data/app/assets/stylesheets/_filter-bar-mobile.scss +0 -32
  145. data/app/assets/stylesheets/_footer.scss +0 -18
  146. data/app/assets/stylesheets/_global.scss +0 -30
  147. data/app/assets/stylesheets/_header.scss +0 -95
  148. data/app/assets/stylesheets/_landing_page.scss +0 -62
  149. data/app/assets/stylesheets/_locations.scss +0 -17
  150. data/app/assets/stylesheets/_media-queries.scss +0 -9
  151. data/app/assets/stylesheets/_mixins.scss +0 -17
  152. data/app/assets/stylesheets/_nav.scss +0 -128
  153. data/app/assets/stylesheets/_normalize.scss +0 -375
  154. data/app/assets/stylesheets/_overrides.scss +0 -11
  155. data/app/assets/stylesheets/_page-template.scss +0 -124
  156. data/app/assets/stylesheets/_related_events.scss +0 -20
  157. data/app/assets/stylesheets/_search-results.scss +0 -20
  158. data/app/assets/stylesheets/_utils.scss +0 -8
  159. data/app/assets/stylesheets/festivity.scss +0 -35
  160. data/app/assets/stylesheets/vars/_vars_color.scss +0 -6
  161. data/app/assets/stylesheets/vars/_vars_media-queries.scss +0 -5
  162. data/app/assets/stylesheets/vars/_vars_type.scss +0 -1
@@ -50,36 +50,40 @@ h3.section-title {
50
50
  .grid-sizer {
51
51
  width: 3.25%;
52
52
  }
53
- .instagram-post {
54
- background: url('fn-instagram-bg.svg') no-repeat $text-color;
55
- background-position: 90% 93%;
56
- background-size: 35px auto;
57
- .post-text {
58
- color: #fff;
59
- .user-account, time {
60
- color: $background-color-alt;
53
+ .social-posts {
54
+ .instagram-post {
55
+ background: url('fn-instagram-bg.svg') no-repeat $text-color;
56
+ background-position: 90% 93%;
57
+ background-size: 35px auto;
58
+ .post-text {
59
+ color: #fff;
60
+ .user-account, time {
61
+ color: $background-color-alt;
62
+ }
63
+ }
64
+ }
65
+ .twitter-post {
66
+ background: url('fn-twitter-bg.svg') no-repeat $homepage-featured-background;
67
+ background-position: 90% 85%;
68
+ background-size: 38px 31px;
69
+ .post-text {
70
+ color: $text-color;
71
+ .user-account, time {
72
+ color: #fff;
73
+ }
61
74
  }
62
75
  }
63
- }
64
- .twitter-post {
65
- background: url('fn-twitter-bg.svg') no-repeat $background-color-alt;
66
- background-position: 90% 85%;
67
- background-size: 38px 31px;
68
76
  .post-text {
69
- color: $text-color;
77
+ overflow: hidden;
78
+ padding: 1.5em;
70
79
  .user-account, time {
71
- color: #fff;
80
+ max-width: 85%;
81
+ }
82
+ .user-account {
83
+ display:block;
72
84
  }
73
85
  }
74
86
  }
75
- .post-text {
76
- overflow: hidden;
77
- padding: 1.5em;
78
- .user-account, time {
79
- max-width: 85%;
80
- }
81
- .user-account {
82
- display:block;
83
- }
84
- }
85
- }
87
+
88
+ }
89
+
@@ -20,8 +20,9 @@ $border-color: #cbcdc6;
20
20
 
21
21
  $background-color: #fff;
22
22
  $background-color-subtle: #cbcbcb;
23
- $background-color-alt: #8AD4DF;
23
+ $background-color-alt: #92D3E1;
24
24
 
25
+ $homepage-featured-background: #92D6ED;
25
26
  $footer-color: $text-color;
26
27
  $social-footer-color: $footer-color;
27
28
 
@@ -25,6 +25,7 @@
25
25
  @import "contexts/subnav_one_column";
26
26
  @import "contexts/subnav_two_column";
27
27
  @import "contexts/subnav_three_column";
28
+ @import "contexts/social-posts";
28
29
 
29
30
  @import "modules/navigation";
30
31
  @import "modules/filters";
@@ -1,5 +1,5 @@
1
1
  class ErrorsController < ApplicationController
2
- trusty_layout 'base'
2
+ include Concerns::FestivityCustomPage
3
3
 
4
4
  def internal_server_error
5
5
  render(:status => 500)
@@ -1,9 +1,9 @@
1
1
  class FestivityEventsController < ApplicationController
2
2
  include Concerns::FestivityCustomPage
3
3
  include Concerns::FestivitySearchCaching
4
+ before_action { expires_in 1.hour, :public => true }
4
5
 
5
6
  def index
6
-
7
7
  order_by = params[:sort] ? params[:sort] : "start_date"
8
8
  @title = "#{current_site.festivity_festival_name}: Events"
9
9
  @filter_type = current_site.festivity_filter_type
@@ -1,5 +1,6 @@
1
1
  class FestivityLocationAreasController < ApplicationController
2
2
  include Concerns::FestivityCustomPage
3
+ before_action { expires_in 1.hour, :public => true }
3
4
 
4
5
  def show
5
6
  @area = FestivityLocationAreaPage.find_by_slug_for_site(params[:id]).first
@@ -1,5 +1,6 @@
1
1
  class FestivityLocationsController < ApplicationController
2
2
  include Concerns::FestivityCustomPage
3
+ before_action { expires_in 1.hour, :public => true }
3
4
 
4
5
  def show
5
6
  @location = FestivityLocationPage.find_by_slug_for_site(params[:id]).first
@@ -1,6 +1,7 @@
1
1
  class FestivityMarketsController < ApplicationController
2
2
  include Concerns::FestivityCustomPage
3
3
  include Concerns::FestivitySearchCaching
4
+ before_action { expires_in 1.hour, :public => true }
4
5
 
5
6
  def index
6
7
 
@@ -1,5 +1,6 @@
1
1
  class SearchController < ApplicationController
2
2
  include Concerns::FestivityCustomPage
3
+ before_action { expires_in 1.hour, :public => true }
3
4
 
4
5
  def show
5
6
  query = params[:q].to_s
@@ -26,12 +26,7 @@ module FestivityEventsHelper
26
26
  end
27
27
 
28
28
  def fest_hashtag
29
- if @event.site_id == 3
30
- "#TRAF"
31
- elsif @event.site_id == 2
32
- "#PGHkids"
33
- end
34
-
29
+ current_site.social_media_tag
35
30
  end
36
31
 
37
32
  end
@@ -29,6 +29,20 @@ class FestivityEventList
29
29
  )
30
30
  end
31
31
 
32
+ def self.hourly
33
+ current_site = Page.current_site
34
+ festival_date_times = FestivityEventList.collect_festival_dates(current_site)
35
+ festival_dates = festival_date_times.map! {|date| date.to_date}
36
+
37
+ if festival_dates.include?(DateTime.now.to_date)
38
+ FestivityPerformance.where(start_date: DateTime.now...DateTime.now + 1.day).includes(:festivity_event_page).where(pages: {status_id: 100, site_id: Page.current_site.id, layout_id: nil}).compact.sort_by{|e| e[:date]}.first(3)
39
+ elsif festival_dates.first > DateTime.now.to_date
40
+ FestivityPerformance.includes(:festivity_event_page).where(pages: {status_id: 100, site_id: current_site.id, layout_id: nil}).compact.sort_by{|e| e[:date]}.first(3)
41
+ else
42
+ FestivityPerformance.includes(:festivity_event_page).where(pages: {status_id: 100, site_id: current_site.id, layout_id: nil}).compact.sort_by{|e| e[:date]}.last(3)
43
+ end
44
+ end
45
+
32
46
  def self.find_by_location(location_id, site)
33
47
  begin
34
48
  where_clause = parse_criteria(dates: collect_festival_dates(site).join(","), filter_type: site.festivity_filter_type)
@@ -7,4 +7,8 @@ class FestivityMarketPage < FestivityBasePage
7
7
  FestivityLocationAreaPage.find(area_id)
8
8
  end
9
9
 
10
+ def self.booth_number(market_id)
11
+ self.find_by_id(market_id).booth_number
12
+ end
13
+
10
14
  end
@@ -18,6 +18,16 @@ class FestivityPerformance < ActiveRecord::Base
18
18
  super(FestivityLocationPage.find(location[:id])) unless location[:id].blank?
19
19
  end
20
20
 
21
+ def location
22
+ FestivityLocationPage.find_by_id(self.location_page_id).title
23
+ end
24
+
25
+ def area
26
+ location = FestivityLocationPage.find_by_id(self.location_page_id).parent_id
27
+ FestivityLocationAreaPage.find_by_id(location).title
28
+ end
29
+
30
+
21
31
  private
22
32
 
23
33
  def parse_date(date)
@@ -30,5 +30,9 @@
30
30
  %label{for: "site_festivity_google_api_key"}
31
31
  Google Search API Key
32
32
  = self.text_field(:site, :festivity_google_api_key, class: "textbox festivity-control")
33
+ %p.festivity-third
34
+ %label{for: "social_media_tag"}
35
+ "Share This" Social Media Tag
36
+ = self.text_field(:site, :social_media_tag, class: "textbox festivity-control")
33
37
 
34
38
  = render partial: 'admin/sites/partials/category_section'
@@ -0,0 +1,35 @@
1
+ - @hourly_events = FestivityEventList.hourly
2
+
3
+ %article.up-next-bg
4
+ .up-next-header
5
+ %h1
6
+ %span.light-text Coming up next:
7
+ - t = Time.now
8
+ - n = Time.now + 1.hour
9
+ = "#{t.strftime("%l")} - #{n.strftime("%l %P")}"
10
+ %article.next-events
11
+ - @hourly_events.each_with_index do |performance, i|
12
+ - if i === 0
13
+ .up-next-event
14
+ .up-next-image
15
+ = link_to event_path(performance.event_page_id) do
16
+ .lead-image
17
+ = image_tag(performance.festivity_event_page.image)
18
+ .up-next-info
19
+ .title
20
+ = performance.festivity_event_page.title
21
+ .time
22
+ = "#{performance.start_date.strftime("%l")} - #{performance.end_date.strftime("%l %P")}"
23
+ .locations
24
+ = "#{performance.location} @ #{performance.area}"
25
+ %h2 PLUS
26
+ - else
27
+ .up-next-events
28
+ .event
29
+ .title
30
+ = link_to performance.festivity_event_page.title, event_path(performance.event_page_id)
31
+ .time
32
+ = "#{performance.start_date.strftime("%l")} - #{performance.end_date.strftime("%l %P")}"
33
+ %a.button{href: 'events'} See All Events
34
+
35
+
@@ -61,7 +61,8 @@
61
61
  %h3.callout-title
62
62
  Dates/Times
63
63
  %ul
64
- - @event.performances.each do |perf|
64
+ - performances = @event.performances.take(4)
65
+ - performances.each do |perf|
65
66
  %li
66
67
  %span.day
67
68
  = perf.start_date.strftime("%A, %B %d")
@@ -69,11 +70,31 @@
69
70
  = perf.start_date.strftime("%I:%M%p").downcase
70
71
  = "-"
71
72
  = perf.end_date.strftime("%I:%M%p").downcase
73
+ - if @event.performances.count > 4
74
+ %span.toggler-root
75
+ %button.toggler-trigger{aria: {expanded: "false", controls: 'multiple-dates'}}
76
+ Show More
77
+ .toggler-content.multiple-dates{aria: {hidden: "true"}}
78
+ %ul
79
+ - @event.performances.drop(4).each do |perf|
80
+ %li
81
+ %span.day
82
+ = perf.start_date.strftime("%A, %B %d")
83
+ %span.time
84
+ = perf.start_date.strftime("%I:%M%p").downcase
85
+ = "-"
86
+ = perf.end_date.strftime("%I:%M%p").downcase
72
87
  - if @event.has_social?
73
88
  .callout.connect
74
89
  %h3.callout-title
75
90
  Connect with this artist
76
91
  %ul
92
+ - if @event.has_instagram?
93
+ %li
94
+ = link_to @event.artist_instagram, target: "_blank" do
95
+ %span.icon-instagram{:data => {'grunticon-embed' => true}}
96
+ %span.icon-text
97
+ Instagram
77
98
  - if @event.has_twitter?
78
99
  %li
79
100
  = link_to @event.artist_twitter, target: "_blank" do
@@ -19,6 +19,8 @@
19
19
  .event-location
20
20
  = link_to area_path(id: market.area_slug) do
21
21
  = market.area_title
22
+ .booth-number
23
+ = "Booth ##{FestivityMarketPage.booth_number(market.market_id)}"
22
24
 
23
25
  - if show_dates
24
26
  .event-date
@@ -25,6 +25,8 @@
25
25
  .location-links
26
26
  = link_to area_path(id: @market.area) do
27
27
  = @market.area.title
28
+ .booth-number
29
+ = "Booth ##{@market.booth_number}"
28
30
 
29
31
  .callout.dates
30
32
  %h3.callout-title
@@ -0,0 +1,221 @@
1
+ <!DOCTYPE html>
2
+ <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
3
+ <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
4
+ <!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
5
+ <!--[if gt IE 8]><!-->
6
+ <html class='no-js' lang='en'>
7
+ <!--<![endif]-->
8
+ <html>
9
+ <head>
10
+ <meta charset="utf-8"/>
11
+ <meta content="IE=edge" http-equiv="X-UA-Compatible"/>
12
+ <r:festivity_meta />
13
+ <meta content='width=device-width, initial-scale=1' name='viewport'>
14
+ <link rel="stylesheet" media="all" href="/assets/skins/crawl/skin.css">
15
+ <script src="/assets/festivity_app.js"></script>
16
+ <script>
17
+ (function(d) {
18
+ var config = {
19
+ kitId: 'uqf2ehu',
20
+ scriptTimeout: 3000,
21
+ async: true
22
+ },
23
+ h=d.documentElement,t=setTimeout(function(){h.className=h.className.replace(/\bwf-loading\b/g,"")+" wf-inactive";},config.scriptTimeout),tk=d.createElement("script"),f=false,s=d.getElementsByTagName("script")[0],a;h.className+=" wf-loading";tk.src='https://use.typekit.net/'+config.kitId+'.js';tk.async=true;tk.onload=tk.onreadystatechange=function(){a=this.readyState;if(f||a&&a!="complete"&&a!="loaded")return;f=true;clearTimeout(t);try{Typekit.load(config)}catch(e){}};s.parentNode.insertBefore(tk,s)
24
+ })(document);
25
+ </script>
26
+
27
+ <script>
28
+ /*! grunt-grunticon Stylesheet Loader - v2.1.6 | https://github.com/filamentgroup/grunticon | (c) 2015 Scott Jehl, Filament Group, Inc. | MIT license. */
29
+ !function(){function e(e,n,t){"use strict";var o=window.document.createElement("link"),r=n||window.document.getElementsByTagName("script")[0],a=window.document.styleSheets;return o.rel="stylesheet",o.href=e,o.media="only x",r.parentNode.insertBefore(o,r),o.onloadcssdefined=function(e){for(var n,t=0;t<a.length;t++)a[t].href&&a[t].href===o.href&&(n=!0);n?e():setTimeout(function(){o.onloadcssdefined(e)})},o.onloadcssdefined(function(){o.media=t||"all"}),o}function n(e,n){e.onload=function(){e.onload=null,n&&n.call(e)},"isApplicationInstalled"in navigator&&"onloadcssdefined"in e&&e.onloadcssdefined(n)}!function(t){var o=function(r,a){"use strict";if(r&&3===r.length){var i=t.navigator,c=t.document,s=t.Image,d=!(!c.createElementNS||!c.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect||!c.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1")||t.opera&&-1===i.userAgent.indexOf("Chrome")||-1!==i.userAgent.indexOf("Series40")),l=new s;l.onerror=function(){o.method="png",o.href=r[2],e(r[2])},l.onload=function(){var t=1===l.width&&1===l.height,i=r[t&&d?0:t?1:2];t&&d?o.method="svg":t?o.method="datapng":o.method="png",o.href=i,n(e(i),a)},l.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",c.documentElement.className+=" grunticon"}};o.loadCSS=e,o.onloadCSS=n,t.grunticon=o}(this),function(e,n){"use strict";var t=n.document,o="grunticon:",r=function(e){if(t.attachEvent?"complete"===t.readyState:"loading"!==t.readyState)e();else{var n=!1;t.addEventListener("readystatechange",function(){n||(n=!0,e())},!1)}},a=function(e){return n.document.querySelector('link[href$="'+e+'"]')},i=function(e){var n,t,r,a,i,c,s={};if(n=e.sheet,!n)return s;t=n.cssRules?n.cssRules:n.rules;for(var d=0;d<t.length;d++)r=t[d].cssText,a=o+t[d].selectorText,i=r.split(");")[0].match(/US\-ASCII\,([^"']+)/),i&&i[1]&&(c=decodeURIComponent(i[1]),s[a]=c);return s},c=function(e){var n,r,a,i;a="data-grunticon-embed";for(var c in e){i=c.slice(o.length);try{n=t.querySelectorAll(i)}catch(s){continue}r=[];for(var d=0;d<n.length;d++)null!==n[d].getAttribute(a)&&r.push(n[d]);if(r.length)for(d=0;d<r.length;d++)r[d].innerHTML=e[c],r[d].style.backgroundImage="none",r[d].removeAttribute(a)}return r},s=function(n){"svg"===e.method&&r(function(){c(i(a(e.href))),"function"==typeof n&&n()})};e.embedIcons=c,e.getCSS=a,e.getIcons=i,e.ready=r,e.svgLoadedCallback=s,e.embedSVG=s}(grunticon,this)}();
30
+ grunticon(["/production/assets/grunticon/production/icons.data.svg.css","/production/assets/grunticon/production/icons.data.png.css", "/production/assets/grunticon/production/icons.fallback.css"], grunticon.svgLoadedCallback);
31
+ </script>
32
+ <noscript>
33
+ <link href="/assets/grunticon/production/icons.fallback.css" rel="stylesheet"></link>
34
+ </noscript>
35
+ </head>
36
+ <body class="crawl <r:festivity_body_class />">
37
+ <div class="overflow-wrapper">
38
+ <div class="menu-content-wrapper">
39
+ <r:festivity_mobile_menus />
40
+ <header class="site-header">
41
+ <div class="container">
42
+ <section class="crawl-mark">
43
+ <a class="crawl-logo" href="/">
44
+ <h1 class="site-name visually-hidden">Three Rivers Arts Festival</h1>
45
+ <r:snippet name="crawl_logo" />
46
+ </a>
47
+ </section>
48
+ <div class="mobile-navigation">
49
+ <button class="menu-trigger">
50
+ <div class="iconmenu-button x">
51
+ <span class="iconmenu"></span>
52
+ </div>
53
+ <span class="trigger-text">Menu</span>
54
+ </div>
55
+ <div class="nav-wrapper">
56
+ <form action="/search" class="site-search">
57
+ <label for="site-search"><span class="visually-hidden">Search</span></label>
58
+ <input id="site-search" name="q" placeholder="Search..." type="text"></input>
59
+ <button class="search-submit" type="submit">
60
+ <span class="icon-search" data-grunticon-embed="true"></span>
61
+ <span class="visually-hidden">
62
+ Search
63
+ </span>
64
+ </button>
65
+ </form>
66
+ <nav class="utility-navigation" role="navigation">
67
+ <ul>
68
+ <li>
69
+ <a href="/crawl_home/about/faq">FAQ</a>
70
+ </li>
71
+ <li>
72
+ <a href="/crawl_home/visit/map">Map</a>
73
+ </li>
74
+ <li>
75
+ <a href="/crawl_home/contact">Contact Us</a>
76
+ </li>
77
+ <li>
78
+ <a href="/events">Schedule</a>
79
+ </li>
80
+ </ul>
81
+
82
+ </nav>
83
+
84
+ <nav class="primary-navigation" role="navigation">
85
+ <ul>
86
+ <li>
87
+ <a href="/events">Events</a>
88
+ </li>
89
+ <li>
90
+ <a href="/crawl_home/visit">Plan Your Visit</a>
91
+ </li>
92
+ <li>
93
+ <a href="/crawl_home/get-involved">Get Involved</a>
94
+ </li>
95
+
96
+ <li>
97
+ <a href="/crawl_home/about">About</a>
98
+ </li>
99
+ </ul>
100
+ </nav>
101
+
102
+ </div>
103
+ </div>
104
+ </header>
105
+
106
+ <main class="main-content" role="main">
107
+ <div class="container">
108
+ <r:content_for_layout/>
109
+ </div>
110
+ </main>
111
+ <footer class="social-footer">
112
+ <div class="container">
113
+ <h3 class="title">Connect with us:</h3>
114
+ <ul class="social-link-item-group">
115
+ <li class="social-link-item">
116
+ <a href="https://www.instagram.com/3RiversArtsFest/">
117
+ <span class="icon-instagram" data-grunticon-embed="true"></span>
118
+ <span class="visually-hidden">
119
+ Follow the Three Rivers Arts Festival on Instagram
120
+ </span>
121
+ </a>
122
+ </li>
123
+ <li class="social-link-item">
124
+ <a href="https://www.facebook.com/3RiversArtsFest/">
125
+ <span class="icon-facebook" data-grunticon-embed="true"></span>
126
+ <span class="visually-hidden">
127
+ Follow the Three Rivers Arts Festival on Facebook
128
+ </span>
129
+ </a>
130
+ </li>
131
+ <li class="social-link-item">
132
+ <a href="https://twitter.com/3RiversArtsFest">
133
+ <span class="icon-twitter" data-grunticon-embed="true"></span>
134
+ <span class="visually-hidden">
135
+ Follow the Three Rivers Arts Festival on Twitter
136
+ </span>
137
+ </a>
138
+ </li>
139
+ <li class="social-link-item">
140
+ <a href="http://clicks.skem1.com/signup/?c=vNHhx&lid=43">
141
+ <span class="icon-envelope" data-grunticon-embed="true"></span>
142
+ <span class="visually-hidden">
143
+ Sign up for the Three Rivers Arts Fesitval Email Newsletter
144
+ </span>
145
+ </a>
146
+ </li>
147
+ </ul>
148
+
149
+ </div>
150
+ </footer>
151
+ <footer class="site-footer">
152
+ <div class="container">
153
+ <nav class="footer-navigation" role="navigation">
154
+ <ul class="general">
155
+ <a class="cultural-trust-logo" href="http://www.trustarts.org">
156
+ <h4 class="visually-hidden">Pittsburgh Cultural Trust</h4>
157
+ <r:snippet name="crawl_footer_logo" />
158
+ </a>
159
+ <li>
160
+ <a href="http://www.trustarts.org/about">About the Trust</a>
161
+ </li>
162
+ <li>
163
+ <a href="http://pressroom.trustarts.org/">Press Room</a>
164
+ </li>
165
+ <li>
166
+ <a href="http://www.trustarts.org/about/privacy-policy">Privacy Policy</a>
167
+ </li>
168
+ <li>
169
+ <a href="http://www.trustarts.org/connect/contact_us/">Contact Us</a>
170
+ </li>
171
+
172
+ </ul>
173
+ <ul class="attending">
174
+ <h4>Attending</h4>
175
+ <li>
176
+ <a href="/crawl_home/visit/parking-transportation/">Parking and Transportation</a>
177
+ </li>
178
+ <li>
179
+ <a href="/crawl_home/visit/food-drinks/">Food</a>
180
+ </li>
181
+ <li>
182
+ <a href="/crawl_home/visit/accessibility/">Accessibility</a>
183
+ </li>
184
+ </ul>
185
+ <ul class="artists">
186
+ <h4>Get Involved </h4>
187
+ <li>
188
+ <a href="/crawl_home/get-involved/sing-off/">Sing Off</a>
189
+ </li>
190
+ <li>
191
+ <a href="/crawl_home/get-involved/parade-workshops/">Parade Workshops</a>
192
+ </li>
193
+ <li>
194
+ <a href="/crawl_home/get-involved/volunteer/">Volunteer</a>
195
+ </li>
196
+ <li>
197
+ <a href="/crawl_home/about/current-supporters">Current Supporters</a>
198
+ </li>
199
+
200
+ </ul>
201
+ <ul class="Blog">
202
+ <h4>Blog </h4>
203
+ <li>
204
+ <a href="/crawl_home/blog/new-facebook-twitter-and-instagram">NEW Facebook, Twitter and Instagram</a>
205
+ </li>
206
+ <li>
207
+ <a href="/crawl_home/blog/admission-buttons-now-on-sale">Admission buttons now on sale</a>
208
+ </li>
209
+ </ul>
210
+ </nav>
211
+ <p class="copyright">
212
+ Copyright &copy;2016 Pittsburgh Cultural Trust. All rights reserved.
213
+ </p>
214
+ </div>
215
+ </footer>
216
+ </div>
217
+ </div>
218
+ <script src="https://s3.amazonaws.com/festivity-prod/omniture/firstnight/AppMeasurement.js" type="text/javascript"></script>
219
+ <r:omniture_vars />
220
+ </body>
221
+ </html>