pageflow-chart 2.3.0 → 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
  SHA256:
3
- metadata.gz: cf67574bc3fc0e11ee66f37634eeab5b73ff6105ef6c281b022b24fad99fd854
4
- data.tar.gz: 21cad9381bcc4c3cc312726b8b4b3b2e8c8a3f4b4f8ef54255848d348ed31a90
3
+ metadata.gz: 5eaf6b87c76738d2e7efa81a3732a96ef09820bc1b2ca74e9a6e79c71532862c
4
+ data.tar.gz: 8ad985582dbd2205427546becca4aaa6033394f6c5b6b91e6be69f248bf7f9e4
5
5
  SHA512:
6
- metadata.gz: 0f778a73ae92747c4a43e80e8443edd74dc0ecd5056278195b623182108c905b3abef2f48833fb64e7b49d58b9f64fffffe7eaf854c9fb61a896bf57c37c4205
7
- data.tar.gz: 15ec876b421dc8ba87d71ec9dc88d007cff39ec3658ce44e8c2bf702d75be6f1130506b8daec5d4ed0ebad453bf3726088d7b7aa2b8ea9ce645f6dc809206dc8
6
+ metadata.gz: f95634d293e9fe2c59600172e89e07ca177166ae1da0224bdbb96c8331a4406e68d7650fcc89c360f8ddbdeca5f81deaa66fe030a97470d7dd5f4c49f5baacb6
7
+ data.tar.gz: 5127f6494bd7819de6f6203b96f4cf5a6074db0953ee5d06fff2c5b0337f699bd5794fc0070267a9cfbb8c86c314e94707a235f81fc8e6fd9c199b6a2100f032
data/CHANGELOG.md CHANGED
@@ -1,14 +1,20 @@
1
1
  # CHANGELOG
2
2
 
3
- ### Version 2.3.0
3
+ ### Version 2.4.0
4
4
 
5
- 2020-05-11
5
+ 2022-07-18
6
6
 
7
- [Compare changes](https://github.com/codevise/pageflow-chart/compare/2-2-stable...v2.3.0)
7
+ [Compare changes](https://github.com/codevise/pageflow-chart/compare/2-3-stable...v2.4.0)
8
8
 
9
- - Support Datawrapper charts with script tags in body
10
- ([#56](https://github.com/codevise/pageflow-chart/pull/56))
9
+ - Use rebrushed button style in editor
10
+ ([#61](https://github.com/codevise/pageflow-chart/pull/61))
11
+ - Make chart urls protocol relative
12
+ ([#60](https://github.com/codevise/pageflow-chart/pull/60))
13
+ - Display original chart instead of scraped site
14
+ ([#59](https://github.com/codevise/pageflow-chart/pull/59))
15
+ - Embed opt-in
16
+ ([#58](https://github.com/codevise/pageflow-chart/pull/58))
11
17
 
12
18
  See
13
- [2-2-stable branch](https://github.com/codevise/pageflow-chart/blob/2-2-stable/CHANGELOG.md)
19
+ [2-3-stable branch](https://github.com/codevise/pageflow-chart/blob/2-3-stable/CHANGELOG.md)
14
20
  for previous changes.
data/README.md CHANGED
@@ -17,10 +17,10 @@ Mount the engine:
17
17
  # config/routes.rb
18
18
  mount Pageflow::Chart::Engine, at: '/chart'
19
19
 
20
- Register the page type:
20
+ Register the plugin:
21
21
 
22
22
  # config/initializers/pageflow.rb
23
- config.page_types.register(Pageflow::Chart.page_type)
23
+ config.plugin(Pageflow::Chart.plugin)
24
24
 
25
25
  Include javascript/stylesheets:
26
26
 
@@ -0,0 +1,16 @@
1
+ pageflow.chart.consent = {
2
+ ensureVendorRegistered: function(options) {
3
+ if (this.registered) {
4
+ return;
5
+ }
6
+
7
+ this.registered = true;
8
+ options = options || {}
9
+
10
+ pageflow.consent.registerVendor('datawrapper', {
11
+ paradigm: options.skip ? 'skip' : 'lazy opt-in',
12
+ displayName: I18n.t('pageflow.public.chart.consent_vendor_name'),
13
+ description: I18n.t('pageflow.public.chart.consent_vendor_description')
14
+ });
15
+ }
16
+ };
@@ -7,14 +7,13 @@ pageflow.ConfigurationEditorView.register('chart', {
7
7
  });
8
8
 
9
9
  this.tab('files', function() {
10
- this.input('scraped_site_id', pageflow.chart.ScrapedUrlInputView, {
11
- supportedHosts: supportedHosts,
10
+ this.input('chart_url', pageflow.UrlInputView, {
12
11
  displayPropertyName: 'display_scraped_site_url',
13
- required: true
14
- });
15
- this.input('scraped_site_id', pageflow.FileProcessingStateDisplayView, {
16
- collection: 'pageflow_chart_scraped_sites'
12
+ supportedHosts: supportedHosts,
13
+ required: true,
14
+ permitHttps: true
17
15
  });
16
+
18
17
  this.view(pageflow.chart.DatawrapperAdView);
19
18
  this.input('full_width', pageflow.CheckBoxInputView);
20
19
  this.group('background');
@@ -4,22 +4,43 @@ pageflow.chart.IframeEmbeddedView = Backbone.Marionette.View.extend({
4
4
  },
5
5
 
6
6
  render: function() {
7
- this.updateScrapedSite();
7
+ if (this.model.has('chart_url')) {
8
+ this.updateChartUrl();
9
+ }
10
+ else if (this.model.has('scraped_site_id')) {
11
+ this.updateScrapedSite();
12
+ }
13
+
8
14
  return this;
9
15
  },
10
16
 
11
17
  update: function() {
12
- if (this.model.hasChanged(this.options.propertyName)) {
18
+ if (this.model.hasChanged('chart_url')) {
19
+ this.updateChartUrl();
20
+ }
21
+ else if (this.model.hasChanged('scraped_site_id')) {
13
22
  this.updateScrapedSite();
14
23
  }
15
24
  },
16
25
 
26
+ updateChartUrl: function() {
27
+ var url = this.model.get('chart_url');
28
+
29
+ if (url) {
30
+ url = url.replace(/^https?:/, '');
31
+ }
32
+
33
+ this.$el.attr('src', url);
34
+ this.$el.removeAttr('data-use-custom-theme');
35
+ this.$el.removeAttr('data-customize-layout');
36
+ },
37
+
17
38
  updateScrapedSite: function() {
18
39
  if (this.scrapedSite) {
19
40
  this.stopListening(this.scrapedSite);
20
41
  }
21
42
 
22
- this.scrapedSite = this.model.getReference(this.options.propertyName,
43
+ this.scrapedSite = this.model.getReference('scraped_site_id',
23
44
  'pageflow_chart_scraped_sites');
24
45
  this.updateAttributes();
25
46
 
@@ -33,6 +54,7 @@ pageflow.chart.IframeEmbeddedView = Backbone.Marionette.View.extend({
33
54
 
34
55
  if (scrapedSite && scrapedSite.isReady()) {
35
56
  this.$el.attr('src', scrapedSite.get('html_file_url'));
57
+ this.$el.attr('data-customize-layout', 'true');
36
58
 
37
59
  if (scrapedSite.get('use_custom_theme')) {
38
60
  this.$el.attr('data-use-custom-theme', 'true');
@@ -1,8 +1,19 @@
1
- pageflow.react.registerPageTypeWithDefaultBackground('chart', _.extend({
1
+ pageflow.pageType.registerInitializer('chart', function() {
2
+ pageflow.chart.consent.ensureVendorRegistered({
3
+ skip: !pageflow.features.isEnabled('chart_embed_opt_in')
4
+ });
5
+ });
2
6
 
7
+ pageflow.react.registerPageTypeWithDefaultBackground('chart', _.extend({
3
8
  prepareNextPageTimeout: 0,
4
9
 
5
10
  enhance: function(pageElement, configuration) {
11
+ pageElement.thirdPartyEmbedConsent();
12
+
13
+ if (!pageflow.features.isEnabled('chart_embed_opt_in')) {
14
+ pageElement.find('.opt_out_wrapper').hide();
15
+ }
16
+
6
17
  var scroller = pageElement.find('.scroller');
7
18
 
8
19
  pageElement.find('.bigscreen_toggler').on('click', function() {
@@ -41,9 +52,11 @@ pageflow.react.registerPageTypeWithDefaultBackground('chart', _.extend({
41
52
  var that = this;
42
53
  var iframe = pageElement.find('iframe');
43
54
  var scroller = pageElement.find('.scroller');
44
- var iframeOverlay = pageElement.find('.iframe_overlay');
45
55
 
46
- if(!this.layoutCustomized) {
56
+ if (!iframe.data('customizeLayout')) {
57
+ pageElement.find('.iframeWrapper').addClass('active');
58
+ }
59
+ else if(!this.layoutCustomized) {
47
60
  iframe.load(function() {
48
61
  $(this).contents().find('.fs-btn').css('display','none');
49
62
  $(this).contents().find('body').addClass($("[data-theme]").attr('data-theme'));
@@ -80,63 +93,21 @@ pageflow.react.registerPageTypeWithDefaultBackground('chart', _.extend({
80
93
  head.append('<link rel="stylesheet" type="text/css" href="' + path + '">');
81
94
  },
82
95
 
83
- _initEventSimulation: function(element, iframe, wrapper) {
84
- element.on('click', function(event) {
85
- var contentElement = iframe.contents()[0];
86
-
87
- element.css('display', 'none');
88
-
89
- if (contentElement && event) {
90
- var offset = iframe.offset();
91
- var options = $.extend({}, event, {
92
- screenX: event.screenX - offset.left,
93
- screenY: event.screenY - offset.top,
94
- clientX: event.clientX - offset.left,
95
- clientY: event.clientY - offset.top,
96
- });
97
-
98
- var lastElement = $(contentElement.elementFromPoint(event.pageX - offset.left,
99
- event.pageY - offset.top));
100
-
101
- lastElement.simulate('mousedown', options);
102
- lastElement.simulate('mousemove', options);
103
- lastElement.simulate('click', options);
104
- lastElement.simulate('mouseup', options);
105
-
106
- element.css('cursor', lastElement.css('cursor'));
107
- }
108
-
109
- element.css('display', 'block');
110
-
111
- event.preventDefault();
112
- event.stopPropagation();
113
- });
114
-
115
- iframe.load(function() {
116
- iframe.contents().find('*').on('mousemove', function() {
117
- wrapper.addClass('hovering');
118
- });
119
-
120
- iframe.contents().on('mouseout', function() {
121
- wrapper.removeClass('hovering');
122
- });
123
- });
124
- },
125
-
126
96
  prepare: function(pageElement, configuration) {
127
97
  this._loadIframe(pageElement);
128
98
  },
129
99
 
130
100
  activating: function(pageElement, configuration) {
101
+ this._listenToHeightMessage(pageElement);
131
102
  this._loadIframe(pageElement);
132
103
  this.resize(pageElement, configuration);
133
104
  this.customizeLayout(pageElement, configuration);
134
- this._initEventSimulation(pageElement.find('.iframe_overlay'), pageElement.find('iframe'), pageElement.find('.iframeWrapper'));
135
105
  },
136
106
 
137
107
  activated: function(pageElement, configuration) {},
138
108
 
139
109
  deactivating: function(pageElement, configuration) {
110
+ this._stopListeningToHeightMessages();
140
111
  $('body').removeClass('bigScreen');
141
112
  },
142
113
 
@@ -159,19 +130,56 @@ pageflow.react.registerPageTypeWithDefaultBackground('chart', _.extend({
159
130
  embeddedEditorViews: function() {
160
131
  return {
161
132
  'iframe': {
162
- view: pageflow.chart.IframeEmbeddedView,
163
- options: {propertyName: 'scraped_site_id'}
133
+ view: pageflow.chart.IframeEmbeddedView
164
134
  }
165
135
  };
166
136
  },
167
137
 
168
138
  _loadIframe: function(pageElement) {
169
- pageElement.find('iframe[data-src]').each(function() {
170
- var iframe = $(this);
139
+ if (this.loadIframeCalled) {
140
+ return;
141
+ }
142
+
143
+ this.loadIframeCalled = true;
171
144
 
172
- if (!iframe.attr('src')) {
173
- iframe.attr('src', iframe.data('src'));
145
+ pageflow.consent.requireAccepted('datawrapper').then(function(result) {
146
+ if (result === 'fulfilled') {
147
+ pageElement.find('iframe[data-src]').each(function() {
148
+ var iframe = $(this);
149
+
150
+ if (!iframe.attr('src')) {
151
+ iframe.attr('src', iframe.data('src'));
152
+ }
153
+ });
174
154
  }
175
155
  });
156
+ },
157
+
158
+ _listenToHeightMessage: function(pageElement) {
159
+ this._messageListener = this._messageListener || function(event) {
160
+ if (typeof event.data['datawrapper-height'] !== 'undefined') {
161
+ var iframe = pageElement.find('iframe')
162
+
163
+ for (var chartId in event.data['datawrapper-height']) {
164
+ if (iframe.attr('src').indexOf(chartId) > -1) {
165
+ var iframeWrapper = pageElement.find('.iframeWrapper')
166
+ var height = event.data['datawrapper-height'][chartId] + 'px';
167
+
168
+ if (iframeWrapper.css('height') !== height) {
169
+ var scroller = pageElement.find('.scroller');
170
+
171
+ iframeWrapper.css('height', height);
172
+ scroller.scroller('refresh');
173
+ }
174
+ }
175
+ }
176
+ }
177
+ }
178
+
179
+ window.addEventListener('message', this._messageListener);
180
+ },
181
+
182
+ _stopListeningToHeightMessages: function() {
183
+ window.removeEventListener('message', this._messageListener);
176
184
  }
177
185
  }, pageflow.defaultPageContent));
@@ -1,7 +1,6 @@
1
- //= require jquery.simulate-events
2
-
3
1
  //= require_self
4
2
  //= require ./chart/asset_urls
3
+ //= require ./chart/consent
5
4
  //= require ./chart/page_type
6
5
 
7
- pageflow.chart = pageflow.chart || {};
6
+ pageflow.chart = pageflow.chart || {};
@@ -6,8 +6,6 @@
6
6
  @include clearfix;
7
7
 
8
8
  input {
9
- @include button('simple', #6AACF7);
10
- padding: 3px 10px;
11
- width: auto;
9
+ @include simple-button("primary");
12
10
  }
13
11
  }
@@ -62,18 +62,6 @@
62
62
  }
63
63
  }
64
64
 
65
- .iframe_overlay {
66
- .has_mobile_platform & {
67
- position: absolute;
68
- top: 0;
69
- left: 0;
70
- width: 100%;
71
- height: 100%;
72
- pointer-events: all;
73
- background-color: transparent;
74
- }
75
- }
76
-
77
65
  .text_position_right &.widescreened {
78
66
  @include position-end(auto);
79
67
  @include position-start(8%);
@@ -102,19 +90,18 @@
102
90
  }
103
91
  }
104
92
 
105
- &:hover .bigscreen_toggler, &.hovering .bigscreen_toggler {
93
+ &:hover .bigscreen_toggler {
106
94
  opacity: 1;
107
95
  }
108
96
 
109
97
  .bigScreen & {
110
98
  position: absolute;
111
99
  width: 86% !important;
112
- height: 87%;
113
100
  top: 10%;
114
101
  left: 5% !important;
115
102
  z-index: 201;
116
103
  margin-top: 0 !important;
117
- max-height: none !important;
104
+ max-height: 84% !important;
118
105
 
119
106
  .bigscreen_toggler {
120
107
  background-position: -25px 0;
@@ -131,4 +118,11 @@
131
118
  }
132
119
  }
133
120
  }
121
+
122
+ .opt_out_wrapper {
123
+ position: absolute;
124
+ top: 100%;
125
+ right: 0;
126
+ left: 0;
127
+ }
134
128
  }
@@ -1,6 +1,8 @@
1
1
  module Pageflow
2
2
  module Chart
3
3
  module ScrapedSitesHelper
4
+ include RevisionFileHelper
5
+
4
6
  IFRAME_ATTRIBUTES = {
5
7
  style: 'width: 100%; height: 100%',
6
8
  scrolling: 'auto',
@@ -11,22 +13,29 @@ module Pageflow
11
13
  webkitallowfullscreen: 'true'
12
14
  }
13
15
 
14
- def scraped_site_iframe(scraped_site_id)
15
- scraped_site = find_file_in_entry(ScrapedSite, scraped_site_id)
16
+ def scraped_site_iframe(configuration)
16
17
  data_attributes = {}
17
18
 
18
- if scraped_site
19
+ if configuration['chart_url']
19
20
  data_attributes = {
20
- src: scraped_site.html_file_url
21
+ src: configuration['chart_url'].gsub(/^https?:/, '')
22
+ }
23
+ elsif (scraped_site = find_scraped_site(configuration))
24
+ data_attributes = {
25
+ src: scraped_site.html_file_url,
26
+ customize_layout: true,
27
+ use_custom_theme: scraped_site.use_custom_theme ? true : nil
21
28
  }
22
-
23
- if scraped_site.use_custom_theme
24
- data_attributes[:use_custom_theme] = true
25
- end
26
29
  end
27
30
 
28
31
  content_tag(:iframe, '', IFRAME_ATTRIBUTES.merge(data: data_attributes))
29
32
  end
33
+
34
+ private
35
+
36
+ def find_scraped_site(configuration)
37
+ find_file_in_entry(ScrapedSite, configuration['scraped_site_id'])
38
+ end
30
39
  end
31
40
  end
32
41
  end
@@ -7,9 +7,16 @@
7
7
 
8
8
  <div class="content">
9
9
  <div class="iframeWrapper">
10
- <%= scraped_site_iframe(configuration['scraped_site_id']) %>
11
- <div class="iframe_overlay"></div>
10
+ <%= scraped_site_iframe(configuration) %>
11
+ <%= third_party_embed_opt_in(
12
+ entry: entry,
13
+ vendor_name: 'datawrapper',
14
+ message: t('pageflow.public.chart.opt_in_prompt')
15
+ ) %>
12
16
  <div class="bigscreen_toggler" tabindex="4" title="<%= t('pageflow.public.chart.toggle') %>"><%= t('pageflow.public.chart.toggle') %></div>
17
+ <div class="opt_out_wrapper">
18
+ <%= third_party_embed_opt_out_info(entry) %>
19
+ </div>
13
20
  </div>
14
21
  <div class="scroller">
15
22
  <div>
data/chart.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
 
19
19
  spec.required_ruby_version = '~> 2.1'
20
20
 
21
- spec.add_runtime_dependency 'pageflow', '~> 15.x'
21
+ spec.add_runtime_dependency 'pageflow', '~> 15.7.x'
22
22
  spec.add_runtime_dependency 'nokogiri', '~> 1.0'
23
23
  spec.add_runtime_dependency 'pageflow-public-i18n', '~> 1.0'
24
24
 
@@ -31,6 +31,8 @@ de:
31
31
 
32
32
  Typische Anwendungsbeispiele: Statistiken, Diagramme, Zahlen&Fakten
33
33
  page_attributes:
34
+ chart_url:
35
+ label: Diagramm URL
34
36
  full_width:
35
37
  inline_help: Verbreitert das Diagramm, so dass es die maximal verfügbare Breite nutzt.
36
38
  label: Gesamte Breite nutzen
@@ -39,3 +41,5 @@ de:
39
41
  page_type_category_name: Daten und Diagramme
40
42
  page_type_description: Einbindung von Diagrammen, die mit Datawrapper erstellt wurden
41
43
  page_type_name: Diagramm
44
+ chart_embed_opt_in:
45
+ feature_name: Opt-In für Datawrapper Embeds
@@ -17,6 +17,8 @@ en:
17
17
  menu_item: Chart
18
18
  text: "# Chart\n\nIntegration of a Datawrapper-Diagram\n\nHere you can add animated infographics to your Pageflow. The diagram is embedded into a background-picture/video and text. To enlarge the graphic you simply have to click on it. \n\nBut first of all you have to create your graphic externally and generate a link. You can find examples and requirements for this under www.datawrapper.de.\n\nNote that Datawrapper offers a special layout option for charts that shall be embedded into a Pageflow: In the \"Visualize\" step of the chart creation wizard, click the \"Design\" tab and select the \"Pageflow\" layout. That way a color scheme is used which complements Pageflow's look.\n\nExamples of application: statistics, diagrams, numbers & facts"
19
19
  page_attributes:
20
+ chart_url:
21
+ label: Chart URL
20
22
  full_width:
21
23
  inline_help: Extends the chart to use the maximum width available.
22
24
  label: Use full width
@@ -25,3 +27,5 @@ en:
25
27
  page_type_category_name: Data and Charts
26
28
  page_type_description: Embedded Datawrapper chart
27
29
  page_type_name: Chart
30
+ chart_embed_opt_in:
31
+ feature_name: Opt-in for Datawrapper embeds
@@ -64,9 +64,10 @@ module Pageflow
64
64
  @paperclip_base_path = ':pageflow_s3_root'
65
65
  @scraped_sites_root_url = nil
66
66
  @supported_hosts = [
67
- 'http://cf.datawrapper.de',
68
- 'http://datawrapper.dwcdn.de',
69
- 'http://datawrapper.dwcdn.net'
67
+ 'cf.datawrapper.de',
68
+ 'charts.datawrapper.de',
69
+ 'datawrapper.dwcdn.de',
70
+ 'datawrapper.dwcdn.net'
70
71
  ]
71
72
  @use_custom_theme = false
72
73
  @datawrapper_themes_with_transparent_background_support = ['pageflow']
@@ -0,0 +1,10 @@
1
+ module Pageflow
2
+ module Chart
3
+ class Plugin < Pageflow::Plugin
4
+ def configure(config)
5
+ config.page_types.register(Chart.page_type)
6
+ config.features.register('chart_embed_opt_in')
7
+ end
8
+ end
9
+ end
10
+ end
@@ -1,5 +1,5 @@
1
1
  module Pageflow
2
2
  module Chart
3
- VERSION = '2.3.0'.freeze
3
+ VERSION = '2.4.0'.freeze
4
4
  end
5
5
  end
@@ -10,6 +10,10 @@ module Pageflow
10
10
  block.call(config)
11
11
  end
12
12
 
13
+ def self.plugin
14
+ Chart::Plugin.new
15
+ end
16
+
13
17
  def self.page_type
14
18
  Chart::PageType.new
15
19
  end
@@ -0,0 +1,59 @@
1
+ require 'spec_helper'
2
+
3
+ require 'pageflow/used_file_test_helper'
4
+
5
+ module Pageflow
6
+ module Chart
7
+ describe ScrapedSitesHelper do
8
+ include UsedFileTestHelper
9
+
10
+ before { Pageflow::Chart.config.use_custom_theme = false }
11
+
12
+ it 'renders iframe with data-src attribute for scraped site' do
13
+ scraped_site = create_used_file(:scraped_site, :processed)
14
+
15
+ html = scraped_site_iframe('scraped_site_id' => scraped_site.perma_id)
16
+
17
+ iframe = Capybara.string(html).find('iframe')
18
+ expect(iframe['data-src']).to match(%r{original/index\.html})
19
+ end
20
+
21
+ it 'renders no data-custom-theme attribute by default' do
22
+ scraped_site = create_used_file(:scraped_site, :processed)
23
+
24
+ html = scraped_site_iframe('scraped_site_id' => scraped_site.perma_id)
25
+
26
+ iframe = Capybara.string(html).find('iframe')
27
+ expect(iframe['data-use-custom-theme']).to be_blank
28
+ expect(iframe['data-customize-layout']).to eq('true')
29
+ end
30
+
31
+ it 'renders data-custom-theme if site has custom theme' do
32
+ Pageflow::Chart.config.use_custom_theme = true
33
+ scraped_site = create_used_file(:scraped_site, :processed)
34
+
35
+ html = scraped_site_iframe('scraped_site_id' => scraped_site.perma_id)
36
+
37
+ iframe = Capybara.string(html).find('iframe')
38
+ expect(iframe['data-use-custom-theme']).to eq('true')
39
+ expect(iframe['data-customize-layout']).to eq('true')
40
+ end
41
+
42
+ it 'renders iframe with data-src attribute for chart_url' do
43
+ html = scraped_site_iframe('chart_url' => 'https://example.com/chart')
44
+
45
+ iframe = Capybara.string(html).find('iframe')
46
+ expect(iframe['data-src']).to eq('//example.com/chart')
47
+ end
48
+
49
+ it 'renders no data-custom-theme attribute for chart_url' do
50
+ html = scraped_site_iframe('chart_url' => 'https://example.com/chart')
51
+
52
+ iframe = Capybara.string(html).find('iframe')
53
+
54
+ expect(iframe['data-customize-layout']).to be_blank
55
+ expect(iframe['data-use-custom-theme']).to be_blank
56
+ end
57
+ end
58
+ end
59
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pageflow-chart
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Codevise Solutions Ltd
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-11 00:00:00.000000000 Z
11
+ date: 2022-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pageflow
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 15.x
19
+ version: 15.7.x
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 15.x
26
+ version: 15.7.x
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -179,6 +179,7 @@ files:
179
179
  - app/assets/images/pageflow/ov-chart.png
180
180
  - app/assets/javascripts/pageflow/chart.js
181
181
  - app/assets/javascripts/pageflow/chart/asset_urls.js.erb
182
+ - app/assets/javascripts/pageflow/chart/consent.js
182
183
  - app/assets/javascripts/pageflow/chart/editor.js
183
184
  - app/assets/javascripts/pageflow/chart/editor/config.js
184
185
  - app/assets/javascripts/pageflow/chart/editor/models/scraped_site.js
@@ -216,6 +217,7 @@ files:
216
217
  - lib/pageflow/chart/downloader.rb
217
218
  - lib/pageflow/chart/engine.rb
218
219
  - lib/pageflow/chart/page_type.rb
220
+ - lib/pageflow/chart/plugin.rb
219
221
  - lib/pageflow/chart/refresh_tag_following_downloader.rb
220
222
  - lib/pageflow/chart/scraper.rb
221
223
  - lib/pageflow/chart/version.rb
@@ -226,6 +228,7 @@ files:
226
228
  - spec/fixtures/data.csv
227
229
  - spec/fixtures/datawrapper.html
228
230
  - spec/fixtures/index.html
231
+ - spec/helpers/pageflow/chart/scraped_sites_helper_spec.rb
229
232
  - spec/integration/file_type_spec.rb
230
233
  - spec/integration/page_type_spec.rb
231
234
  - spec/jobs/pageflow/chart/scrape_site_job_spec.rb
@@ -259,8 +262,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
259
262
  - !ruby/object:Gem::Version
260
263
  version: '0'
261
264
  requirements: []
262
- rubyforge_project:
263
- rubygems_version: 2.7.5
265
+ rubygems_version: 3.0.8
264
266
  signing_key:
265
267
  specification_version: 4
266
268
  summary: Pagetype for Embedded Datawrapper Charts
@@ -272,6 +274,7 @@ test_files:
272
274
  - spec/fixtures/data.csv
273
275
  - spec/fixtures/datawrapper.html
274
276
  - spec/fixtures/index.html
277
+ - spec/helpers/pageflow/chart/scraped_sites_helper_spec.rb
275
278
  - spec/integration/file_type_spec.rb
276
279
  - spec/integration/page_type_spec.rb
277
280
  - spec/jobs/pageflow/chart/scrape_site_job_spec.rb