copy_tuner_client 0.3.0 → 0.3.1

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: 9bfc2b0438d95dfd78e642cbd01634341a49dda1
4
- data.tar.gz: 3404e74efd31b4fb22bfa9d7e2d07f40508fd170
3
+ metadata.gz: 15965d36a12789bda029ce93db59815b091aa1a6
4
+ data.tar.gz: 6468475b0087640533d917d0b9adc9b1ef58b2b7
5
5
  SHA512:
6
- metadata.gz: d1766da6789da799a6b657f711244009c702ac078421b3fe14e69c827bc33643a7a39017bda3f8264965f03ddc399ceb01c9a20234671e3409a965e315de539d
7
- data.tar.gz: 58c5aa8d6ab6c6af3b400f4171303e485a30acd2bc43c1f9779d1f3651435e5cbe960dbdede61135436c9924f87f33274cc4b13fbf7eda128505c3a764add976
6
+ metadata.gz: c0fe5ce9e0350fee38039f699433df6b2a3efcc21b38d8738656328d9b22aa3c22d50dba9876d462d7fae3c1a67335239aa9928ba191491f69a80afd9c22e24f
7
+ data.tar.gz: 78f7e7c05c685d7293ebf2524aab33197f24f642fb4eaed440774a3df93f10844baf37c090ccebcba9179db53b8f0bac287ca0ebc549c6cfcfa2b86f36c3459d
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.3.1
2
+ - Add search box to copyray bar.
3
+ - Add disable_copyray_comment_injection to configuration.
4
+
1
5
  ## 0.3.0
2
6
  - Use https as default.
3
7
  - Download blurbs from S3.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- copy_tuner_client (0.3.0)
4
+ copy_tuner_client (0.3.1)
5
5
  i18n (>= 0.5.0)
6
6
  json
7
7
 
@@ -221,25 +221,28 @@ util =
221
221
  Copyray.showBar = ->
222
222
  $('#copy-tuner-bar').show()
223
223
  $('.copyray-toggle-button').hide()
224
+ Copyray.focusSearchBox()
224
225
 
225
226
  Copyray.hideBar = ->
226
227
  $('#copy-tuner-bar').hide()
227
228
  $('.copyray-toggle-button').show()
228
- $('#copy-tuner-bar-log-menu').hide()
229
+ $('.js-copy-tuner-bar-log-menu').hide()
229
230
 
230
231
  Copyray.createLogMenu = ->
231
- $tbody = $('#copy-tuner-bar-log-menu__tbody.is-not-initialized')
232
+ $tbody = $('.js-copy-tuner-bar-log-menu__tbody.is-not-initialized')
232
233
  return if $tbody.length == 0
233
234
  $tbody.removeClass('is-not-initialized')
234
235
  baseUrl = $('[data-copy-tuner-url]').data('copy-tuner-url')
235
236
  log = $('[data-copy-tuner-translation-log').data('copy-tuner-translation-log')
236
- $.each log, (k, v) ->
237
+ keys = Object.keys(log).sort()
238
+ $.each keys, (_, k) ->
239
+ v = log[k]
237
240
  if v != ''
238
241
  url = "#{baseUrl}/blurbs/#{k}/edit"
239
242
  $a = $("<a href='#{url}' class='js-copy-tuner-blurb-link'>").text k
240
243
  $td1 = $('<td>').append $a
241
244
  $td2 = $('<td>').text v
242
- $tr = $("<tr class='js-copy-tuner-blurb-row'>")
245
+ $tr = $("<tr class='copy-tuner-bar-log-menu__row js-copy-tuner-blurb-row'>")
243
246
  $tr.append $td1, $td2
244
247
  $tbody.append $tr
245
248
  $tbody.on 'click', '.js-copy-tuner-blurb-link', (e) ->
@@ -247,7 +250,33 @@ Copyray.createLogMenu = ->
247
250
  $tbody.on 'click', '.js-copy-tuner-blurb-row', ->
248
251
  Copyray.open $(@).find('a').attr('href')
249
252
 
250
- $(document).on 'click', '.copy-tuner-bar-open-log', (e) ->
251
- e.preventDefault()
253
+ Copyray.focusSearchBox = ->
254
+ $('.js-copy-tuner-bar-search').focus()
255
+
256
+ Copyray.toggleLogMenu = ->
252
257
  Copyray.createLogMenu()
253
- $('#copy-tuner-bar-log-menu').toggle()
258
+ $('.js-copy-tuner-bar-log-menu').toggle()
259
+
260
+ $(document).on 'click', '.js-copy-tuner-bar-open-log', (e) ->
261
+ e.preventDefault()
262
+ Copyray.toggleLogMenu()
263
+
264
+ do ->
265
+ timer = null
266
+ lastKeyword = ''
267
+ $(document).on 'focus', '.js-copy-tuner-bar-search', ->
268
+ lastKeyword = $(@).val()
269
+ $(document).on 'keyup', '.js-copy-tuner-bar-search', ->
270
+ keyword = $.trim($(@).val())
271
+ if lastKeyword != keyword
272
+ Copyray.toggleLogMenu() if !$('.js-copy-tuner-bar-log-menu').is(':visible')
273
+ clearTimeout(timer)
274
+ timer = setTimeout ->
275
+ if keyword == ''
276
+ $('.js-copy-tuner-blurb-row').show()
277
+ else
278
+ $('.js-copy-tuner-blurb-row').hide()
279
+ $(".js-copy-tuner-blurb-row td:contains(#{keyword})").closest('.js-copy-tuner-blurb-row').show()
280
+ , 500
281
+ lastKeyword = keyword
282
+
@@ -130,12 +130,16 @@ a.copyray-toggle-button:hover {
130
130
  padding: 2px 8px;
131
131
  }
132
132
 
133
+ #copy-tuner-bar-log-menu__tbody tr {
134
+ cursor: pointer;
135
+ }
136
+
133
137
  #copy-tuner-bar-log-menu__tbody tr:hover {
134
- background: #444
138
+ background: #444;
135
139
  }
136
140
 
137
141
  #copy-tuner-bar-log-menu__tbody a {
138
- color: #fff
142
+ color: #fff;
139
143
  }
140
144
 
141
145
  #copy-tuner-bar-log-menu__tbody a:hover, #copy-tuner-bar-log-menu__tbody a:focus {
@@ -166,3 +170,16 @@ a.copyray-toggle-button:hover {
166
170
  text-decoration: none;
167
171
  background-color: #555;
168
172
  }
173
+
174
+ .copy-tuner-bar__search {
175
+ -webkit-appearance: none;
176
+ -moz-appearance: none;
177
+ appearance: none;
178
+ border: none;
179
+ border-radius: 2px;
180
+ background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0));
181
+ box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2), inset 0 0 2px rgba(0, 0, 0, 0.2);
182
+ padding: 2px 8px;
183
+ vertical-align: middle;
184
+ color: black;
185
+ }
@@ -1,11 +1,12 @@
1
1
  <div id="copy-tuner-bar" style="display:none">
2
2
  <%= link_to 'CopyTuner', CopyTunerClient.configuration.project_url, class: 'copy-tuner-bar-button', target: '_blank' %>
3
3
  <a href="/copytuner" target="_blank" class="copy-tuner-bar-button">Sync</a>
4
- <a href="javascript:void(0)" class="copy-tuner-bar-open-log copy-tuner-bar-button">Translations in this page</a>
4
+ <a href="javascript:void(0)" class="copy-tuner-bar-open-log copy-tuner-bar-button js-copy-tuner-bar-open-log">Translations in this page</a>
5
+ <input type="text" class="copy-tuner-bar__search js-copy-tuner-bar-search" placeholder="search">
5
6
  </div>
6
- <div id="copy-tuner-bar-log-menu" style="display:none">
7
+ <div id="copy-tuner-bar-log-menu" class="js-copy-tuner-bar-log-menu" style="display:none">
7
8
  <table>
8
- <tbody id="copy-tuner-bar-log-menu__tbody" class="is-not-initialized">
9
+ <tbody id="copy-tuner-bar-log-menu__tbody" class="js-copy-tuner-bar-log-menu__tbody is-not-initialized">
9
10
  </tbody>
10
11
  </table>
11
12
  </div>
@@ -119,6 +119,9 @@ module CopyTunerClient
119
119
  # @return [Regexp] Copyray js injection pattern for precompiled
120
120
  attr_accessor :copyray_js_injection_regexp_for_precompiled
121
121
 
122
+ # @return [Boolean] To disable Copyray comment injection, set true
123
+ attr_accessor :disable_copyray_comment_injection
124
+
122
125
  alias_method :secure?, :secure
123
126
 
124
127
  # Instantiated from {CopyTunerClient.configure}. Sets defaults.
@@ -137,6 +140,7 @@ module CopyTunerClient
137
140
  self.secure = true
138
141
  self.test_environments = %w(test cucumber)
139
142
  self.s3_host = 'copy-tuner-data-prod.s3.amazonaws.com'
143
+ self.disable_copyray_comment_injection = false
140
144
 
141
145
  # Matches:
142
146
  # <script src="/assets/jquery.js"></script>
@@ -35,9 +35,13 @@ module CopyTunerClient
35
35
  end
36
36
 
37
37
  def append_translation_logs(html)
38
- json = CopyTunerClient::TranslationLog.translations.to_json
39
- # Use block to avoid back reference \?
40
- html.sub('</body>') { "<div data-copy-tuner-translation-log='#{ERB::Util.html_escape json}' data-copy-tuner-url='#{CopyTunerClient.configuration.project_url}'></div></body>" }
38
+ if CopyTunerClient::TranslationLog.initialized?
39
+ json = CopyTunerClient::TranslationLog.translations.to_json
40
+ # Use block to avoid back reference \?
41
+ html.sub('</body>') { "<div data-copy-tuner-translation-log='#{ERB::Util.html_escape json}' data-copy-tuner-url='#{CopyTunerClient.configuration.project_url}'></div></body>" }
42
+ else
43
+ html
44
+ end
41
45
  end
42
46
 
43
47
  def inject_copy_tuner_bar(html)
@@ -11,7 +11,7 @@ module CopyTunerClient
11
11
  ActionView::Helpers::TranslationHelper.class_eval do
12
12
  def translate_with_copyray_comment(key, options = {})
13
13
  source = translate_without_copyray_comment(key, options)
14
- if options[:rescue_format] == :html or options[:rescue_format].nil?
14
+ if !CopyTunerClient.configuration.disable_copyray_comment_injection && (options[:rescue_format] == :html || options[:rescue_format].nil?)
15
15
  CopyTunerClient::Copyray.augment_template(source, scope_key_by_partial(key))
16
16
  else
17
17
  source
@@ -20,10 +20,13 @@ module CopyTunerClient
20
20
  if CopyTunerClient.configuration.enable_middleware?
21
21
  alias_method_chain :translate, :copyray_comment
22
22
  alias :t :translate
23
- CopyTunerClient::TranslationLog.install_hook
24
23
  end
25
24
  end
26
25
  end
26
+
27
+ if CopyTunerClient.configuration.enable_middleware?
28
+ CopyTunerClient::TranslationLog.install_hook
29
+ end
27
30
  end
28
31
 
29
32
  initializer "copy_tuner.assets.precompile", group: :all do |app|
@@ -11,7 +11,7 @@ if defined?(SimpleForm)
11
11
  def label_translation_with_copyray_comment
12
12
  source = label_translation_without_copyray_comment
13
13
 
14
- if object.class.respond_to?(:lookup_ancestors)
14
+ if !CopyTunerClient.configuration.disable_copyray_comment_injection && object.class.respond_to?(:lookup_ancestors)
15
15
  attributes_scope = "#{object.class.i18n_scope}.attributes"
16
16
  defaults = object.class.lookup_ancestors.map do |klass|
17
17
  "#{attributes_scope}.#{klass.model_name.i18n_key}.#{reflection_or_attribute_name}"
@@ -1,15 +1,19 @@
1
1
  module CopyTunerClient
2
2
  class TranslationLog
3
3
  def self.translations
4
- Thread.current[:translations] ||= {}
4
+ Thread.current[:translations]
5
5
  end
6
6
 
7
7
  def self.clear
8
8
  Thread.current[:translations] = {}
9
9
  end
10
10
 
11
+ def self.initialized?
12
+ !Thread.current[:translations].nil?
13
+ end
14
+
11
15
  def self.add(key, result)
12
- translations[key] = result unless translations.key? key
16
+ translations[key] = result if initialized? && !translations.key?(key)
13
17
  end
14
18
 
15
19
  def self.install_hook
@@ -1,6 +1,6 @@
1
1
  module CopyTunerClient
2
2
  # Client version
3
- VERSION = '0.3.0'.freeze
3
+ VERSION = '0.3.1'.freeze
4
4
 
5
5
  # API version being used to communicate with the server
6
6
  API_VERSION = '2.0'.freeze
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: copy_tuner_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - SonicGarden
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-02 00:00:00.000000000 Z
11
+ date: 2016-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n