freshdesk-rails 0.1.1 → 0.2.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: 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