zendesk_apps_support 4.6.3 → 4.6.4

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: 8674f54cb17f6a9aca24d00045c70c817bd8f537
4
- data.tar.gz: 85aa66a5a02ac638ad804afb6d7c898080edc90d
3
+ metadata.gz: 513c653a0a44ec4201b3683bec006c88a34f2950
4
+ data.tar.gz: 7fc5b30973b7cb1b8c25d3a489b21d549785b516
5
5
  SHA512:
6
- metadata.gz: e07f95aec8b2625f35724031295897cd634dc5ccf2bd27268b984b864fff71d7103a349c228c876de9055b2f6a3ad883800359855436c8126677c28b2ed371f6
7
- data.tar.gz: 0e2d0bc964fd082db3f2b5a5fae29ff903c0e3dc3125d38aad535a2023f67c86b018388d72b5f329ddd3c61bf016929e6b0fab8ff577be56a579835f828aa0da
6
+ metadata.gz: b6eef964a47a771ed2247b0d4e8ab5dc5ab70ab4eb280c85618b2c272d2b534dd7db0c88d028ac8011c755cbbf4d527534448498f207f8689e01315ea4b7539b
7
+ data.tar.gz: c1262f2ea2c41ad5c1d96280197a86d08fc603fef97fb439756766b7457708b55ab46b3b248654ba45c6185bc84c477e04d16591f0d9e03e2319b9090926e494
@@ -126,3 +126,5 @@ en:
126
126
  is deployed.
127
127
  sanitised_svg: The markup in %{svg} has been edited for use in Zendesk
128
128
  and may not display as intended.
129
+ bitmap_in_svg: "%{svg} contains an embedded bitmap and cannot be used
130
+ as an app icon. It has been replaced with a default placeholder icon."
@@ -214,6 +214,10 @@ parts:
214
214
  key: "txt.apps.admin.warning.app_build.sanitised_svg"
215
215
  title: "App builder job: warning that contents of svg have been sanitised and overwritten"
216
216
  value: "The markup in %{svg} has been edited for use in Zendesk and may not display as intended."
217
+ - translation:
218
+ key: "txt.apps.admin.warning.app_build.bitmap_in_svg"
219
+ title: "App builder job: warning that svg contains an embedded bitmap image and cannot be used"
220
+ value: "%{svg} contains an embedded bitmap and cannot be used as an app icon. It has been replaced with a default placeholder icon."
217
221
  - translation:
218
222
  key: "txt.apps.admin.error.app_build.invalid_version"
219
223
  title: "App builder job: invalid framework version"
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
3
+ viewBox="0 0 18 18" style="enable-background:new 0 0 18 18;" xml:space="preserve">
4
+ <path id="Fill-3" d="M1.5,6.1C1.3,5.9,1,6,1,6.4l0,7c0,0.3,0.2,0.7,0.5,0.9l6,3.6C7.8,18.1,8,18,8,17.6l0-7.1c0-0.3-0.2-0.7-0.5-0.9
5
+ L1.5,6.1z"/>
6
+ <path id="Fill-5" d="M10.5,17.9c-0.3,0.2-0.5,0-0.5-0.3l0-7c0-0.3,0.2-0.7,0.5-0.9l6-3.6C16.8,5.9,17,6,17,6.4l0,7.1
7
+ c0,0.3-0.2,0.7-0.5,0.9L10.5,17.9z"/>
8
+ <path id="Fill-1" d="M2.2,3.7c-0.3,0.2-0.3,0.4,0,0.6l6.2,3.6C8.7,8,9.2,8,9.4,7.9l6.3-3.6c0.3-0.2,0.3-0.4,0-0.6L9.5,0.1
9
+ C9.2,0,8.8,0,8.5,0.1L2.2,3.7z"/>
10
+ </svg>
@@ -4,6 +4,8 @@ require 'loofah'
4
4
  module ZendeskAppsSupport
5
5
  module Validations
6
6
  module Svg
7
+ PLACEHOLDER_SVG_MARKUP = File.read(File.expand_path('../../assets/default_app_logo.svg', __FILE__))
8
+
7
9
  # whitelist elements and attributes used in Zendesk Garden assets
8
10
  Loofah::HTML5::WhiteList::ALLOWED_ELEMENTS_WITH_LIBXML2.add 'symbol'
9
11
  Loofah::HTML5::WhiteList::ACCEPTABLE_CSS_PROPERTIES.add 'position'
@@ -31,27 +33,43 @@ module ZendeskAppsSupport
31
33
  end
32
34
 
33
35
  class << self
36
+ def contains_embedded_bitmap?(markup)
37
+ Nokogiri::XML(markup).css('//image').any?
38
+ end
39
+
40
+ def rewrite_svg(svg, new_markup, package, errors)
41
+ warning_string = if contains_embedded_bitmap?(svg.read)
42
+ 'txt.apps.admin.warning.app_build.bitmap_in_svg'
43
+ else
44
+ 'txt.apps.admin.warning.app_build.sanitised_svg'
45
+ end
46
+
47
+ package.warnings << I18n.t(warning_string, svg: svg.relative_path)
48
+ compressed_new_markup = new_markup.tr("\n", '').squeeze(' ').gsub(/\>\s+\</, '><')
49
+ IO.write(svg.absolute_path, compressed_new_markup)
50
+ rescue
51
+ errors << ValidationError.new(:dirty_svg, svg: svg.relative_path)
52
+ end
53
+
34
54
  def call(package)
35
55
  errors = []
36
56
 
37
57
  package.svg_files.each do |svg|
38
- markup = Loofah.xml_fragment(svg.read)
39
- .scrub!(@strip_declaration)
40
- .scrub!(@strip_spaces_between_css_attrs)
41
- .to_xml.strip
42
-
43
- clean_markup = Loofah.xml_fragment(markup)
44
- .scrub!(:prune)
45
- .scrub!(@empty_malformed_markup)
46
- .to_xml
47
-
48
- next if clean_markup == markup
49
- begin
50
- compressed_clean_markup = clean_markup.tr("\n", '').squeeze(' ').gsub(/\>\s+\</, '><')
51
- IO.write(svg.absolute_path, compressed_clean_markup)
52
- package.warnings << I18n.t('txt.apps.admin.warning.app_build.sanitised_svg', svg: svg.relative_path)
53
- rescue
54
- errors << ValidationError.new(:dirty_svg, svg: svg.relative_path)
58
+ if contains_embedded_bitmap?(svg.read)
59
+ rewrite_svg(svg, PLACEHOLDER_SVG_MARKUP, package, errors)
60
+ else
61
+ markup = Loofah.xml_fragment(svg.read)
62
+ .scrub!(@strip_declaration)
63
+ .scrub!(@strip_spaces_between_css_attrs)
64
+ .to_xml.strip
65
+
66
+ clean_markup = Loofah.xml_fragment(markup)
67
+ .scrub!(:prune)
68
+ .scrub!(@empty_malformed_markup)
69
+ .to_xml
70
+
71
+ next if clean_markup == markup
72
+ rewrite_svg(svg, clean_markup, package, errors)
55
73
  end
56
74
  end
57
75
  errors
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk_apps_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.6.3
4
+ version: 4.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - James A. Rosen
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2017-11-05 00:00:00.000000000 Z
14
+ date: 2017-12-13 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: i18n
@@ -224,6 +224,7 @@ files:
224
224
  - lib/zendesk_apps_support/app_file.rb
225
225
  - lib/zendesk_apps_support/app_requirement.rb
226
226
  - lib/zendesk_apps_support/app_version.rb
227
+ - lib/zendesk_apps_support/assets/default_app_logo.svg
227
228
  - lib/zendesk_apps_support/assets/default_styles.scss
228
229
  - lib/zendesk_apps_support/assets/default_template.html.erb
229
230
  - lib/zendesk_apps_support/assets/installed.js.erb
@@ -273,7 +274,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
273
274
  version: 1.3.6
274
275
  requirements: []
275
276
  rubyforge_project:
276
- rubygems_version: 2.6.8
277
+ rubygems_version: 2.6.13
277
278
  signing_key:
278
279
  specification_version: 4
279
280
  summary: Support to help you develop Zendesk Apps.