weeler 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/.DS_Store +0 -0
  3. data/CHANGELOG.md +68 -0
  4. data/README.md +1 -0
  5. data/app/.DS_Store +0 -0
  6. data/app/assets/.DS_Store +0 -0
  7. data/app/assets/javascripts/.DS_Store +0 -0
  8. data/app/assets/javascripts/weeler/.DS_Store +0 -0
  9. data/app/assets/javascripts/weeler/app/index.js +0 -0
  10. data/app/assets/javascripts/weeler/init.js.coffee +8 -0
  11. data/app/assets/javascripts/weeler/vendor/.DS_Store +0 -0
  12. data/app/assets/javascripts/weeler/vendor/bootstrap.file-input.js +122 -0
  13. data/app/assets/javascripts/weeler/{bootstrap.js → vendor/bootstrap.js} +0 -0
  14. data/app/assets/javascripts/weeler/{bootstrap.rowlink.js → vendor/bootstrap.rowlink.js} +0 -0
  15. data/app/assets/javascripts/weeler/{bootstrap.switch.js → vendor/bootstrap.switch.js} +0 -0
  16. data/app/assets/javascripts/weeler/{jquery.pnotify.js → vendor/jquery.pnotify.js} +0 -0
  17. data/app/assets/stylesheets/.DS_Store +0 -0
  18. data/app/assets/stylesheets/weeler/.DS_Store +0 -0
  19. data/app/assets/stylesheets/weeler/app/index.css +0 -0
  20. data/app/assets/stylesheets/weeler/init.css.erb +5 -0
  21. data/app/assets/stylesheets/weeler/{style.css.scss.erb → style.css.scss} +11 -0
  22. data/app/assets/stylesheets/weeler/{bootstrap.css → vendor/bootstrap.css} +0 -0
  23. data/app/assets/stylesheets/weeler/{bootstrap.min.css → vendor/bootstrap.min.css} +0 -0
  24. data/app/assets/stylesheets/weeler/{bootstrap.rowlink.css → vendor/bootstrap.rowlink.css} +0 -0
  25. data/app/assets/stylesheets/weeler/{bootstrap.spinner.css → vendor/bootstrap.spinner.css} +0 -0
  26. data/app/assets/stylesheets/weeler/{bootstrap.switch.css → vendor/bootstrap.switch.css} +0 -0
  27. data/app/assets/stylesheets/weeler/{jquery.pnotify.css → vendor/jquery.pnotify.css} +0 -0
  28. data/app/controllers/weeler/translations_controller.rb +5 -78
  29. data/app/views/layouts/weeler/base.html.erb +27 -73
  30. data/app/views/weeler/shared/_flash.html.erb +17 -0
  31. data/app/views/weeler/shared/_footer.html.erb +3 -0
  32. data/app/views/weeler/shared/_header_navbar.html.erb +18 -0
  33. data/app/views/weeler/shared/_side_navbar.html.erb +14 -0
  34. data/app/views/weeler/translations/index.html.erb +2 -5
  35. data/lib/.DS_Store +0 -0
  36. data/lib/generators/weeler/install_generator.rb +15 -6
  37. data/lib/generators/weeler/templates/controllers/weeler/example_controller.rb.example +7 -0
  38. data/lib/generators/weeler/templates/views/weeler/example/index.html.erb +0 -0
  39. data/lib/i18n/backend/weeler/exporter/active_record.rb +37 -0
  40. data/lib/i18n/backend/weeler/exporter/active_record_relation.rb +38 -0
  41. data/lib/i18n/backend/weeler/exporter.rb +18 -0
  42. data/lib/i18n/backend/weeler/importer.rb +85 -0
  43. data/lib/i18n/backend/weeler.rb +4 -0
  44. data/lib/weeler/.DS_Store +0 -0
  45. data/lib/weeler/route_mapper.rb +1 -1
  46. data/lib/weeler/version.rb +1 -1
  47. data/rspec.html +176 -98
  48. data/spec/.DS_Store +0 -0
  49. data/spec/controllers/translations_controller_spec.rb +8 -3
  50. data/spec/dummy/db/test.sqlite3 +0 -0
  51. data/spec/dummy/log/test.log +49556 -0
  52. data/spec/fixtures/.DS_Store +0 -0
  53. data/spec/fixtures/test.xlsx +0 -0
  54. data/spec/spec_helper.rb +0 -1
  55. data/spec/weeler/.DS_Store +0 -0
  56. data/spec/weeler/i18n/.DS_Store +0 -0
  57. data/spec/weeler/i18n/backend/.DS_Store +0 -0
  58. data/spec/weeler/i18n/backend/weeler/exporter_spec.rb +72 -0
  59. data/spec/weeler/i18n/backend/weeler/importer_spec.rb +47 -0
  60. data/spec/weeler/{i18n_backend_weeler_spec.rb → i18n/backend/weeler_spec.rb} +9 -9
  61. data/spec/weeler/{i18n_humanize_missing_translations_spec.rb → i18n/humanize_missing_translations_spec.rb} +0 -0
  62. metadata +46 -21
  63. data/app/assets/javascripts/weeler/bootstrap-fileupload.js +0 -169
  64. data/app/assets/javascripts/weeler.js.coffee +0 -8
  65. data/app/assets/stylesheets/weeler/bootstrap-fileupload.css +0 -132
  66. data/app/assets/stylesheets/weeler.css +0 -9
Binary file
Binary file
data/spec/spec_helper.rb CHANGED
@@ -14,7 +14,6 @@ require 'shoulda-matchers'
14
14
  # require 'support/helpers'
15
15
  # require 'timecop'
16
16
 
17
-
18
17
  Rails.backtrace_cleaner.remove_silencers!
19
18
  # Load support files
20
19
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
Binary file
Binary file
Binary file
@@ -0,0 +1,72 @@
1
+ require "spec_helper"
2
+
3
+ describe I18n::Backend::Weeler::Exporter do
4
+
5
+ describe :as_xlsx_package do
6
+
7
+ context "all translations" do
8
+ before(:all) do
9
+ I18n::Backend::Weeler::Translation.delete_all
10
+ I18n.backend.store_translations(:en, foo: {one: 'test'})
11
+ I18n.backend.store_translations(:en, foo: {two: nil })
12
+ I18n.backend.store_translations(:lv, foo: {two: "some"})
13
+
14
+ @rows = I18n::Backend::Weeler::Translation.all.as_xlsx_package.workbook.worksheets[0].rows
15
+ end
16
+
17
+ it "should have 3 rows" do
18
+ expect(@rows.size).to be(3)
19
+ end
20
+
21
+ it "first row should be title" do
22
+ expect(@rows.first.cells[0].value).to eq("Key")
23
+ expect(@rows.first.cells[1].value).to eq("En")
24
+ expect(@rows.first.cells[2].value).to eq("Lv")
25
+ end
26
+
27
+ it "other row with one translation" do
28
+ expect(@rows[1].cells[0].value).to eq("foo.one")
29
+ expect(@rows[1].cells[1].value).to eq("test")
30
+ expect(@rows[1].cells[2].value).to eq("")
31
+ end
32
+
33
+ it "other row with two translation" do
34
+ expect(@rows[2].cells[0].value).to eq("foo.two")
35
+ expect(@rows[2].cells[1].value).to eq(nil)
36
+ expect(@rows[2].cells[2].value).to eq("some")
37
+ end
38
+ end
39
+
40
+ context "selected translations" do
41
+ before(:all) do
42
+ I18n::Backend::Weeler::Translation.delete_all
43
+ I18n.backend.store_translations(:en, foo: {one: 'test'})
44
+ I18n.backend.store_translations(:en, foo: {two: nil })
45
+ I18n.backend.store_translations(:lv, foo: {two: "some"})
46
+
47
+ translations = I18n::Backend::Weeler::Translation.where(key: "foo.one").load
48
+ translations.size
49
+ @other_rows = translations.as_xlsx_package.workbook.worksheets[0].rows
50
+
51
+ end
52
+
53
+ it "should have 2 rows" do
54
+ expect(@other_rows.size).to be(2)
55
+ end
56
+
57
+ it "first row should be title" do
58
+ expect(@other_rows.first.cells[0].value).to eq("Key")
59
+ expect(@other_rows.first.cells[1].value).to eq("En")
60
+ expect(@other_rows.first.cells[2].value).to eq("Lv")
61
+ end
62
+
63
+ it "other row with one translation" do
64
+ expect(@other_rows[1].cells[0].value).to eq("foo.one")
65
+ expect(@other_rows[1].cells[1].value).to eq("test")
66
+ expect(@other_rows[1].cells[2].value).to eq("")
67
+ end
68
+ end
69
+
70
+ end
71
+
72
+ end
@@ -0,0 +1,47 @@
1
+ require "spec_helper"
2
+
3
+ describe I18n::Backend::Weeler::Importer do
4
+
5
+ # This is file with 10 translations and 3 locales.
6
+ let(:file_path) {File.dirname(__FILE__) + '/../../../../fixtures/test.xlsx'}
7
+
8
+ describe :import do
9
+
10
+ context "empty db" do
11
+ before(:each) do
12
+ I18n::Backend::Weeler::Translation.delete_all
13
+ I18n::Backend::Weeler::Translation.import file_path
14
+ end
15
+
16
+ it "translation stores all translation in each locale" do
17
+ expect(I18n::Backend::Weeler::Translation.count).to eq(30)
18
+ end
19
+
20
+ it "returns value if value is in file" do
21
+ expect(I18n.t(:"welcome.title", :locale => :lv)).to eq("SveikI!")
22
+ end
23
+
24
+ it "returns nil if value is not file" do
25
+ expect(I18n.t(:"product.list.open", :locale => :en)).to eq("")
26
+ end
27
+
28
+ end
29
+
30
+
31
+ context "full db" do
32
+ before(:each) do
33
+ I18n::Backend::Weeler::Translation.delete_all
34
+ I18n.backend.store_translations(:en, welcome: {title: 'fooo'})
35
+ end
36
+
37
+ it "file import overrides value" do
38
+ expect(I18n.t(:"welcome.title", :locale => :en)).to eq("fooo")
39
+ I18n::Backend::Weeler::Translation.import file_path
40
+ expect(I18n.t(:"welcome.title", :locale => :en)).to eq("EN welcome")
41
+ end
42
+
43
+ end
44
+
45
+ end
46
+
47
+ end
@@ -36,21 +36,21 @@ describe I18n::Backend::Weeler do
36
36
 
37
37
  expect(true_t.value).to be(true)
38
38
  expect(false_t.value).to be(false)
39
-
40
39
  end
41
40
 
42
- #it "runs kernel if translation is_proc" do
43
- # proc = I18n::Backend::Weeler::Translation.create(:key => 'valid', :value => "p 'This ir proc!'", :locale => :en, :is_proc => true)
44
-
45
- # expect(proc.value).to receive(:warn).with /Message/
46
- #end
41
+ it "runs kernel if translation is_proc" do
42
+ proc = I18n::Backend::Weeler::Translation.create(:key => 'valid', :value => "p 'This ir proc!'", :locale => :en, :is_proc => true)
43
+ Kernel.should_receive(:p).with("This ir proc!")
44
+ proc.value
45
+ end
47
46
 
48
47
  end
49
48
 
50
49
  describe "#lookup" do
51
- #it "show warning" do
52
- # expect(I18n::Backend::Weeler::Translation.lookup("foo", "|")).to receive(:warn).with /Message/
53
- #end
50
+ it "show warning" do
51
+ I18n::Backend::Weeler::Translation.should_receive(:warn).with("[DEPRECATION] Giving a separator to Translation.lookup is deprecated. You can change the internal separator by overwriting FLATTEN_SEPARATOR.")
52
+ I18n::Backend::Weeler::Translation.lookup("foo", "|")
53
+ end
54
54
  end
55
55
 
56
56
  describe "groups" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weeler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artūrs Braučs
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-23 00:00:00.000000000 Z
12
+ date: 2013-10-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -274,6 +274,7 @@ files:
274
274
  - .gitignore
275
275
  - .rspec
276
276
  - .travis.yml
277
+ - CHANGELOG.md
277
278
  - Gemfile
278
279
  - LICENSE.txt
279
280
  - README.md
@@ -281,24 +282,26 @@ files:
281
282
  - app/.DS_Store
282
283
  - app/assets/.DS_Store
283
284
  - app/assets/javascripts/.DS_Store
284
- - app/assets/javascripts/weeler.js.coffee
285
285
  - app/assets/javascripts/weeler/.DS_Store
286
- - app/assets/javascripts/weeler/bootstrap-fileupload.js
287
- - app/assets/javascripts/weeler/bootstrap.js
288
- - app/assets/javascripts/weeler/bootstrap.rowlink.js
289
- - app/assets/javascripts/weeler/bootstrap.switch.js
290
- - app/assets/javascripts/weeler/jquery.pnotify.js
286
+ - app/assets/javascripts/weeler/app/index.js
287
+ - app/assets/javascripts/weeler/init.js.coffee
288
+ - app/assets/javascripts/weeler/vendor/.DS_Store
289
+ - app/assets/javascripts/weeler/vendor/bootstrap.file-input.js
290
+ - app/assets/javascripts/weeler/vendor/bootstrap.js
291
+ - app/assets/javascripts/weeler/vendor/bootstrap.rowlink.js
292
+ - app/assets/javascripts/weeler/vendor/bootstrap.switch.js
293
+ - app/assets/javascripts/weeler/vendor/jquery.pnotify.js
291
294
  - app/assets/stylesheets/.DS_Store
292
- - app/assets/stylesheets/weeler.css
293
295
  - app/assets/stylesheets/weeler/.DS_Store
294
- - app/assets/stylesheets/weeler/bootstrap-fileupload.css
295
- - app/assets/stylesheets/weeler/bootstrap.css
296
- - app/assets/stylesheets/weeler/bootstrap.min.css
297
- - app/assets/stylesheets/weeler/bootstrap.rowlink.css
298
- - app/assets/stylesheets/weeler/bootstrap.spinner.css
299
- - app/assets/stylesheets/weeler/bootstrap.switch.css
300
- - app/assets/stylesheets/weeler/jquery.pnotify.css
301
- - app/assets/stylesheets/weeler/style.css.scss.erb
296
+ - app/assets/stylesheets/weeler/app/index.css
297
+ - app/assets/stylesheets/weeler/init.css.erb
298
+ - app/assets/stylesheets/weeler/style.css.scss
299
+ - app/assets/stylesheets/weeler/vendor/bootstrap.css
300
+ - app/assets/stylesheets/weeler/vendor/bootstrap.min.css
301
+ - app/assets/stylesheets/weeler/vendor/bootstrap.rowlink.css
302
+ - app/assets/stylesheets/weeler/vendor/bootstrap.spinner.css
303
+ - app/assets/stylesheets/weeler/vendor/bootstrap.switch.css
304
+ - app/assets/stylesheets/weeler/vendor/jquery.pnotify.css
302
305
  - app/controllers/weeler/base_controller.rb
303
306
  - app/controllers/weeler/home_controller.rb
304
307
  - app/controllers/weeler/translations_controller.rb
@@ -312,6 +315,10 @@ files:
312
315
  - app/views/layouts/weeler/base.html.erb
313
316
  - app/views/weeler/home/about.html.erb
314
317
  - app/views/weeler/home/index.html.erb
318
+ - app/views/weeler/shared/_flash.html.erb
319
+ - app/views/weeler/shared/_footer.html.erb
320
+ - app/views/weeler/shared/_header_navbar.html.erb
321
+ - app/views/weeler/shared/_side_navbar.html.erb
315
322
  - app/views/weeler/translations/_form.html.erb
316
323
  - app/views/weeler/translations/_translation.html.erb
317
324
  - app/views/weeler/translations/edit.html.erb
@@ -321,11 +328,17 @@ files:
321
328
  - lib/.DS_Store
322
329
  - lib/generators/weeler/.DS_Store
323
330
  - lib/generators/weeler/install_generator.rb
331
+ - lib/generators/weeler/templates/controllers/weeler/example_controller.rb.example
324
332
  - lib/generators/weeler/templates/initializers/weeler.rb
325
333
  - lib/generators/weeler/templates/migrations/create_weeler_translations.rb
334
+ - lib/generators/weeler/templates/views/weeler/example/index.html.erb
326
335
  - lib/i18n/.DS_Store
327
336
  - lib/i18n/backend/.DS_Store
328
337
  - lib/i18n/backend/weeler.rb
338
+ - lib/i18n/backend/weeler/exporter.rb
339
+ - lib/i18n/backend/weeler/exporter/active_record.rb
340
+ - lib/i18n/backend/weeler/exporter/active_record_relation.rb
341
+ - lib/i18n/backend/weeler/importer.rb
329
342
  - lib/i18n/backend/weeler/store_procs.rb
330
343
  - lib/i18n/backend/weeler/translation.rb
331
344
  - lib/i18n/humanize_missing_translations.rb
@@ -387,11 +400,17 @@ files:
387
400
  - spec/dummy/public/500.html
388
401
  - spec/dummy/public/favicon.ico
389
402
  - spec/factories/translations.rb
403
+ - spec/fixtures/.DS_Store
404
+ - spec/fixtures/test.xlsx
390
405
  - spec/routing/routes_spec.rb
391
406
  - spec/spec_helper.rb
392
407
  - spec/weeler/.DS_Store
393
- - spec/weeler/i18n_backend_weeler_spec.rb
394
- - spec/weeler/i18n_humanize_missing_translations_spec.rb
408
+ - spec/weeler/i18n/.DS_Store
409
+ - spec/weeler/i18n/backend/.DS_Store
410
+ - spec/weeler/i18n/backend/weeler/exporter_spec.rb
411
+ - spec/weeler/i18n/backend/weeler/importer_spec.rb
412
+ - spec/weeler/i18n/backend/weeler_spec.rb
413
+ - spec/weeler/i18n/humanize_missing_translations_spec.rb
395
414
  - weeler.gemspec
396
415
  homepage: ''
397
416
  licenses:
@@ -469,8 +488,14 @@ test_files:
469
488
  - spec/dummy/public/500.html
470
489
  - spec/dummy/public/favicon.ico
471
490
  - spec/factories/translations.rb
491
+ - spec/fixtures/.DS_Store
492
+ - spec/fixtures/test.xlsx
472
493
  - spec/routing/routes_spec.rb
473
494
  - spec/spec_helper.rb
474
495
  - spec/weeler/.DS_Store
475
- - spec/weeler/i18n_backend_weeler_spec.rb
476
- - spec/weeler/i18n_humanize_missing_translations_spec.rb
496
+ - spec/weeler/i18n/.DS_Store
497
+ - spec/weeler/i18n/backend/.DS_Store
498
+ - spec/weeler/i18n/backend/weeler/exporter_spec.rb
499
+ - spec/weeler/i18n/backend/weeler/importer_spec.rb
500
+ - spec/weeler/i18n/backend/weeler_spec.rb
501
+ - spec/weeler/i18n/humanize_missing_translations_spec.rb
@@ -1,169 +0,0 @@
1
- /* ===========================================================
2
- * bootstrap-fileupload.js j2
3
- * http://jasny.github.com/bootstrap/javascript.html#fileupload
4
- * ===========================================================
5
- * Copyright 2012 Jasny BV, Netherlands.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License")
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- * ========================================================== */
19
-
20
- !function ($) {
21
-
22
- "use strict"; // jshint ;_
23
-
24
- /* FILEUPLOAD PUBLIC CLASS DEFINITION
25
- * ================================= */
26
-
27
- var Fileupload = function (element, options) {
28
- this.$element = $(element)
29
- this.type = this.$element.data('uploadtype') || (this.$element.find('.thumbnail').length > 0 ? "image" : "file")
30
-
31
- this.$input = this.$element.find(':file')
32
- if (this.$input.length === 0) return
33
-
34
- this.name = this.$input.attr('name') || options.name
35
-
36
- this.$hidden = this.$element.find('input[type=hidden][name="'+this.name+'"]')
37
- if (this.$hidden.length === 0) {
38
- this.$hidden = $('<input type="hidden" />')
39
- this.$element.prepend(this.$hidden)
40
- }
41
-
42
- this.$preview = this.$element.find('.fileupload-preview')
43
- var height = this.$preview.css('height')
44
- if (this.$preview.css('display') != 'inline' && height != '0px' && height != 'none') this.$preview.css('line-height', height)
45
-
46
- this.original = {
47
- 'exists': this.$element.hasClass('fileupload-exists'),
48
- 'preview': this.$preview.html(),
49
- 'hiddenVal': this.$hidden.val()
50
- }
51
-
52
- this.$remove = this.$element.find('[data-dismiss="fileupload"]')
53
-
54
- this.$element.find('[data-trigger="fileupload"]').on('click.fileupload', $.proxy(this.trigger, this))
55
-
56
- this.listen()
57
- }
58
-
59
- Fileupload.prototype = {
60
-
61
- listen: function() {
62
- this.$input.on('change.fileupload', $.proxy(this.change, this))
63
- $(this.$input[0].form).on('reset.fileupload', $.proxy(this.reset, this))
64
- if (this.$remove) this.$remove.on('click.fileupload', $.proxy(this.clear, this))
65
- },
66
-
67
- change: function(e, invoked) {
68
- if (invoked === 'clear') return
69
-
70
- var file = e.target.files !== undefined ? e.target.files[0] : (e.target.value ? { name: e.target.value.replace(/^.+\\/, '') } : null)
71
-
72
- if (!file) {
73
- this.clear()
74
- return
75
- }
76
-
77
- this.$hidden.val('')
78
- this.$hidden.attr('name', '')
79
- this.$input.attr('name', this.name)
80
-
81
- if (this.type === "image" && this.$preview.length > 0 && (typeof file.type !== "undefined" ? file.type.match('image.*') : file.name.match(/\.(gif|png|jpe?g)$/i)) && typeof FileReader !== "undefined") {
82
- var reader = new FileReader()
83
- var preview = this.$preview
84
- var element = this.$element
85
-
86
- reader.onload = function(e) {
87
- preview.html('<img src="' + e.target.result + '" ' + (preview.css('max-height') != 'none' ? 'style="max-height: ' + preview.css('max-height') + ';"' : '') + ' />')
88
- element.addClass('fileupload-exists').removeClass('fileupload-new')
89
- }
90
-
91
- reader.readAsDataURL(file)
92
- } else {
93
- this.$preview.text(file.name)
94
- this.$element.addClass('fileupload-exists').removeClass('fileupload-new')
95
- }
96
- },
97
-
98
- clear: function(e) {
99
- this.$hidden.val('')
100
- this.$hidden.attr('name', this.name)
101
- this.$input.attr('name', '')
102
-
103
- //ie8+ doesn't support changing the value of input with type=file so clone instead
104
- if (navigator.userAgent.match(/msie/i)){
105
- var inputClone = this.$input.clone(true);
106
- this.$input.after(inputClone);
107
- this.$input.remove();
108
- this.$input = inputClone;
109
- }else{
110
- this.$input.val('')
111
- }
112
-
113
- this.$preview.html('')
114
- this.$element.addClass('fileupload-new').removeClass('fileupload-exists')
115
-
116
- if (e) {
117
- this.$input.trigger('change', [ 'clear' ])
118
- e.preventDefault()
119
- }
120
- },
121
-
122
- reset: function(e) {
123
- this.clear()
124
-
125
- this.$hidden.val(this.original.hiddenVal)
126
- this.$preview.html(this.original.preview)
127
-
128
- if (this.original.exists) this.$element.addClass('fileupload-exists').removeClass('fileupload-new')
129
- else this.$element.addClass('fileupload-new').removeClass('fileupload-exists')
130
- },
131
-
132
- trigger: function(e) {
133
- this.$input.trigger('click')
134
- e.preventDefault()
135
- }
136
- }
137
-
138
-
139
- /* FILEUPLOAD PLUGIN DEFINITION
140
- * =========================== */
141
-
142
- $.fn.fileupload = function (options) {
143
- return this.each(function () {
144
- var $this = $(this)
145
- , data = $this.data('fileupload')
146
- if (!data) $this.data('fileupload', (data = new Fileupload(this, options)))
147
- if (typeof options == 'string') data[options]()
148
- })
149
- }
150
-
151
- $.fn.fileupload.Constructor = Fileupload
152
-
153
-
154
- /* FILEUPLOAD DATA-API
155
- * ================== */
156
-
157
- $(document).on('click.fileupload.data-api', '[data-provides="fileupload"]', function (e) {
158
- var $this = $(this)
159
- if ($this.data('fileupload')) return
160
- $this.fileupload($this.data())
161
-
162
- var $target = $(e.target).closest('[data-dismiss="fileupload"],[data-trigger="fileupload"]');
163
- if ($target.length > 0) {
164
- $target.trigger('click.fileupload')
165
- e.preventDefault()
166
- }
167
- })
168
-
169
- }(window.jQuery);
@@ -1,8 +0,0 @@
1
- #= require jquery
2
- #= require jquery_ujs
3
- #= require weeler/jquery.pnotify
4
- #= require weeler/bootstrap
5
- #= require weeler/bootstrap.rowlink
6
- #= require weeler/bootstrap.switch
7
- #= require weeler/bootstrap-fileupload
8
- #= require_self
@@ -1,132 +0,0 @@
1
- /*!
2
- * Bootstrap v2.3.1-j6
3
- *
4
- * Copyright 2012 Twitter, Inc
5
- * Licensed under the Apache License v2.0
6
- * http://www.apache.org/licenses/LICENSE-2.0
7
- *
8
- * Designed and built with all the love in the world by @mdo and @fat, extended by @ArnoldDaniels.
9
- */
10
- .clearfix {
11
- *zoom: 1;
12
- }
13
- .clearfix:before,
14
- .clearfix:after {
15
- display: table;
16
- content: "";
17
- line-height: 0;
18
- }
19
- .clearfix:after {
20
- clear: both;
21
- }
22
- .hide-text {
23
- font: 0/0 a;
24
- color: transparent;
25
- text-shadow: none;
26
- background-color: transparent;
27
- border: 0;
28
- }
29
- .input-block-level {
30
- display: block;
31
- width: 100%;
32
- min-height: 30px;
33
- -webkit-box-sizing: border-box;
34
- -moz-box-sizing: border-box;
35
- box-sizing: border-box;
36
- }
37
- .btn-file {
38
- overflow: hidden;
39
- position: relative;
40
- vertical-align: middle;
41
- }
42
- .btn-file > input {
43
- position: absolute;
44
- top: 0;
45
- right: 0;
46
- margin: 0;
47
- opacity: 0;
48
- filter: alpha(opacity=0);
49
- transform: translate(-300px, 0) scale(4);
50
- font-size: 23px;
51
- direction: ltr;
52
- cursor: pointer;
53
- }
54
- .fileupload {
55
- margin-bottom: 9px;
56
- }
57
- .fileupload .uneditable-input {
58
- display: inline-block;
59
- margin-bottom: 0px;
60
- vertical-align: middle;
61
- cursor: text;
62
- }
63
- .fileupload .thumbnail {
64
- overflow: hidden;
65
- display: inline-block;
66
- margin-bottom: 5px;
67
- vertical-align: middle;
68
- text-align: center;
69
- }
70
- .fileupload .thumbnail > img {
71
- display: inline-block;
72
- vertical-align: middle;
73
- max-height: 100%;
74
- }
75
- .fileupload .btn {
76
- vertical-align: middle;
77
- }
78
- .fileupload-exists .fileupload-new,
79
- .fileupload-new .fileupload-exists {
80
- display: none;
81
- }
82
- .fileupload-inline .fileupload-controls {
83
- display: inline;
84
- }
85
- .fileupload-new .input-append .btn-file {
86
- -webkit-border-radius: 0 3px 3px 0;
87
- -moz-border-radius: 0 3px 3px 0;
88
- border-radius: 0 3px 3px 0;
89
- }
90
- .thumbnail-borderless .thumbnail {
91
- border: none;
92
- padding: 0;
93
- -webkit-border-radius: 0;
94
- -moz-border-radius: 0;
95
- border-radius: 0;
96
- -webkit-box-shadow: none;
97
- -moz-box-shadow: none;
98
- box-shadow: none;
99
- }
100
- .fileupload-new.thumbnail-borderless .thumbnail {
101
- border: 1px solid #ddd;
102
- }
103
- .control-group.warning .fileupload .uneditable-input {
104
- color: #a47e3c;
105
- border-color: #a47e3c;
106
- }
107
- .control-group.warning .fileupload .fileupload-preview {
108
- color: #a47e3c;
109
- }
110
- .control-group.warning .fileupload .thumbnail {
111
- border-color: #a47e3c;
112
- }
113
- .control-group.error .fileupload .uneditable-input {
114
- color: #b94a48;
115
- border-color: #b94a48;
116
- }
117
- .control-group.error .fileupload .fileupload-preview {
118
- color: #b94a48;
119
- }
120
- .control-group.error .fileupload .thumbnail {
121
- border-color: #b94a48;
122
- }
123
- .control-group.success .fileupload .uneditable-input {
124
- color: #468847;
125
- border-color: #468847;
126
- }
127
- .control-group.success .fileupload .fileupload-preview {
128
- color: #468847;
129
- }
130
- .control-group.success .fileupload .thumbnail {
131
- border-color: #468847;
132
- }
@@ -1,9 +0,0 @@
1
- /*
2
- *= require weeler/jquery.pnotify
3
- *= require weeler/bootstrap
4
- *= require weeler/bootstrap.rowlink
5
- *= require weeler/bootstrap.switch
6
- *= require weeler/bootstrap.spinner
7
- *= require weeler/bootstrap-fileupload
8
- *= require weeler/style
9
- */