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 +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
|