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 +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +2 -10
- data/app/assets/javascripts/freshdesk.turbolinks.js +29 -10
- data/lib/freshdesk-rails/configuration.rb +1 -1
- data/lib/freshdesk-rails/version.rb +1 -1
- data/lib/freshdesk-rails/view_helper.rb +13 -8
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 81b3ee6546c89295e5dd39976ed4522a622732a3
|
4
|
+
data.tar.gz: 67bd19b92de9998a4ac8ee90f81a0c66da57386b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19746eac8b5b2425541151ecbd929ab649431bd02e27d27a905a4fd395481a730ead74abaa56baca56ce67716d62fb917a22b6181a9d2635fd1aca08d399485b
|
7
|
+
data.tar.gz: 2792d98a3e1c2002388a36ec9450f97444eacb3c66ad3362ae0527dcdd4b73d3dc58e52c7d332f4324adfe5219782cc1392e77a4d3ba45f50decb6353e27497a
|
data/CHANGELOG.md
CHANGED
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
|
60
|
+
If you use turbolinks, you can assaign locale.
|
64
61
|
```Ruby
|
65
62
|
# in <body/>
|
66
|
-
|
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);
|
@@ -12,9 +12,18 @@ module FreshdeskRails
|
|
12
12
|
freshdesk_tag + freshdesk_script_tag(options)
|
13
13
|
end
|
14
14
|
|
15
|
-
def
|
15
|
+
def update_freshdesk_locale(options = {})
|
16
|
+
locale = Helper.indifferent_access(options, :locale)
|
16
17
|
locale = freshdesk_locale(locale)
|
17
|
-
|
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
|
-
|
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
|