freshdesk-rails 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e1b8c6eb91e619fa6370e5498c8b404d36127aa3
4
- data.tar.gz: 5d2724573f58ad51885e485fb9fba6fb3d0556d0
3
+ metadata.gz: 81b3ee6546c89295e5dd39976ed4522a622732a3
4
+ data.tar.gz: 67bd19b92de9998a4ac8ee90f81a0c66da57386b
5
5
  SHA512:
6
- metadata.gz: 14e8dc47fd1dc42da0572f4d2cdddaaed4c74e00d18ff9742274d0320ebbff8838f9612170d49129505da27f26de90255568eb1b6da36ca0886cbf683f5769ff
7
- data.tar.gz: ce50f81233b75115a50081e20d7581f35f9dc97f5dd2b839edaef6aa69eb421a902642e06f7d621675e60d0feb6057295190a9fc43f6e8e8cec385773390d281
6
+ metadata.gz: 19746eac8b5b2425541151ecbd929ab649431bd02e27d27a905a4fd395481a730ead74abaa56baca56ce67716d62fb917a22b6181a9d2635fd1aca08d399485b
7
+ data.tar.gz: 2792d98a3e1c2002388a36ec9450f97444eacb3c66ad3362ae0527dcdd4b73d3dc58e52c7d332f4324adfe5219782cc1392e77a4d3ba45f50decb6353e27497a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # v0.2.0 / 2015-11-22
2
+
3
+ Support turbolinks locale.
4
+
1
5
  # v0.1.1 / 2015-11-22
2
6
 
3
7
  Simplify options.
data/README.md CHANGED
@@ -37,9 +37,6 @@ FreshdeskRails.configure do |config|
37
37
  'ja-JP' => 'http://jp.example.freshdesk.com',
38
38
  'en' => 'http://example.freshdesk.com'
39
39
  }
40
-
41
- # set your name of locale in cookie, this is for turbolinks
42
- config.locale_cookie = :locale
43
40
  end
44
41
  ```
45
42
 
@@ -60,15 +57,10 @@ In view, you can use `include_popup_freshdesk` to include javascript plugin.
60
57
  # in <head/>
61
58
  include_popup_freshdesk {"utf8": "✓", "buttonType": "text", "buttonText": "Help", "buttonColor": "white", "buttonBg": "#09a8be", "alignment": "2", "offset": "350px", "submitThanks": "Thanks for your feedback", "formHeight": "500px", "formTitle": "Ask Something..." }
62
59
  ```
63
- If you use turbolinks without enabling locale_cookie, you can assaign locale manually.
60
+ If you use turbolinks, you can assaign locale.
64
61
  ```Ruby
65
62
  # in <body/>
66
- # using I18n.locale
67
- include_freshdesk_locale
68
- ```
69
- Or
70
- ```Ruby
71
- include_freshdesk_locale :en
63
+ = update_freshdesk_locale({"locale": "en", "submitThanks": "Thanks for your feedback", "formTitle": "Ask Something...", "buttonText": "Help"})
72
64
  ```
73
65
 
74
66
  ## License
@@ -1,5 +1,7 @@
1
1
  ;(function($, undefined) {
2
+ var LANGUAGES_KEYS = ['submitThanks', 'formTitle'];
2
3
  var FreshdeskRails = {}, widgets = $(), iframe, button, locale, orig_locale;
4
+ var uri = $('<a/>')
3
5
 
4
6
  window.FreshdeskRails = FreshdeskRails;
5
7
 
@@ -12,13 +14,39 @@
12
14
  if(locale == old_locale) {
13
15
  return;
14
16
  }
17
+ if(FreshdeskRails.languages && FreshdeskRails.languages.buttonText) {
18
+ button.text(FreshdeskRails.languages.buttonText);
19
+ }
15
20
  var url = FreshdeskRails.urls[locale];
16
21
  var old_url = FreshdeskRails.urls[old_locale];
17
22
  if(url == old_url) {
18
23
  return;
19
24
  }
20
25
  var iframe_url = iframe.attr('src');
26
+ if(iframe_url.indexOf('loading') != -1) {
27
+ return;
28
+ }
21
29
  iframe_url = iframe_url.replace(old_url, url);
30
+ if(FreshdeskRails.languages) {
31
+ uri.attr('href', iframe_url);
32
+ var parts = uri[0].search.split('&');
33
+ LANGUAGES_KEYS.forEach(function (key) {
34
+ var value = FreshdeskRails.languages[key];
35
+ if(value) {
36
+ for(var i = 0;i < parts.length;++i) {
37
+ if(parts[i].indexOf(key + '=') == 0) {
38
+ parts[i] = key + '=' + encodeURIComponent(value);
39
+ }
40
+ }
41
+ }
42
+ });
43
+ uri[0].search = parts.join('&');
44
+ iframe_url = uri.attr('href');
45
+ if(FreshdeskRails.languages.buttonText) {
46
+ console.log(FreshdeskRails.languages.buttonText);
47
+ button.text(FreshdeskRails.languages.buttonText);
48
+ }
49
+ }
22
50
  iframe.attr('src', iframe_url);
23
51
  }
24
52
 
@@ -42,13 +70,12 @@
42
70
  });
43
71
  }
44
72
  });
73
+
45
74
  $(document).on('page:load', function() {
46
75
  $('body').append(widgets);
47
76
  if(FreshdeskRails.locale) {
48
77
  updateLocale(FreshdeskRails.locale);
49
78
  delete FreshdeskRails.locale;
50
- } else if(FreshdeskRails.locale_cookie) {
51
- updateLocale(getCookie(FreshdeskRails.locale_cookie));
52
79
  }
53
80
  });
54
81
 
@@ -56,14 +83,6 @@
56
83
  if(FreshdeskRails.locale) {
57
84
  orig_locale = locale = FreshdeskRails.locale;
58
85
  delete FreshdeskRails.locale;
59
- } else if(FreshdeskRails.locale_cookie) {
60
- orig_locale = locale = getCookie(FreshdeskRails.locale_cookie);
61
86
  }
62
87
  });
63
-
64
- function getCookie(name) {
65
- var value = "; " + document.cookie;
66
- var parts = value.split("; " + name + "=");
67
- if (parts.length == 2) return parts.pop().split(";").shift();
68
- }
69
88
  })(jQuery);
@@ -1,6 +1,6 @@
1
1
  module FreshdeskRails
2
2
  class Configuration
3
- attr_accessor :urls, :default_locale, :locale_cookie
3
+ attr_accessor :urls, :default_locale
4
4
 
5
5
  def initialize(options = {})
6
6
  options.each { |key, value|
@@ -1,3 +1,3 @@
1
1
  module FreshdeskRails
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -12,9 +12,18 @@ module FreshdeskRails
12
12
  freshdesk_tag + freshdesk_script_tag(options)
13
13
  end
14
14
 
15
- def include_freshdesk_locale(locale = nil)
15
+ def update_freshdesk_locale(options = {})
16
+ locale = Helper.indifferent_access(options, :locale)
16
17
  locale = freshdesk_locale(locale)
17
- javascript_tag "window.FreshdeskRails.locale=#{locale.to_json};"
18
+
19
+ widget_options = {}
20
+ ["submitThanks", "formTitle", "buttonText"].each do |key|
21
+ value = Helper.indifferent_access(options, key)
22
+ widget_options[key] = value unless value.nil?
23
+ end
24
+ script = "window.FreshdeskRails.locale=#{locale.to_json};"
25
+ script += "window.FreshdeskRails.languages=#{widget_options.to_json};" unless widget_options.empty?
26
+ javascript_tag script
18
27
  end
19
28
 
20
29
  private
@@ -35,17 +44,13 @@ module FreshdeskRails
35
44
  params["submitThanks"] ||= widget_options["submitThanks"]
36
45
  params["widgetType"] = "popup"
37
46
  query_string = URI.encode_www_form(params)
38
- widget_options["queryString"] = "&#{query_string}" unless query_string.empty?
47
+ widget_options["queryString"] = "&#{query_string}" unless query_string.nil? || query_string.empty?
39
48
  widget_options[:url] = freshdesk_url(options)
40
49
  "FreshWidget.init('', #{widget_options.to_json});"
41
50
  end
42
51
 
43
52
  def freshdesk_urls_script
44
- script = "window.FreshdeskRails.urls=#{FreshdeskRails.configuration.urls.to_json};"
45
- if FreshdeskRails.configuration.locale_cookie
46
- script += "window.FreshdeskRails.locale_cookie=#{FreshdeskRails.configuration.locale_cookie.to_json};"
47
- end
48
- script
53
+ "window.FreshdeskRails.urls=#{FreshdeskRails.configuration.urls.to_json};"
49
54
  end
50
55
  end
51
56
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: freshdesk-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chen Yi-Cyuan