fluentd-ui 0.3.8 → 0.3.9

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.

Potentially problematic release.


This version of fluentd-ui might be problematic. Click here for more details.

Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +9 -0
  3. data/Gemfile +1 -0
  4. data/Gemfile.lock +4 -1
  5. data/app/assets/javascripts/vue/fluent_log.js +4 -4
  6. data/app/assets/javascripts/vue/in_tail_format.js +43 -49
  7. data/app/assets/javascripts/{alert.js → vue/notification.js} +21 -7
  8. data/app/assets/javascripts/vue/settings.js +121 -0
  9. data/app/assets/javascripts/vue/treeview.js +3 -3
  10. data/app/assets/stylesheets/common.css.scss +7 -1
  11. data/app/controllers/api/settings_controller.rb +55 -0
  12. data/app/controllers/api_controller.rb +6 -2
  13. data/app/controllers/concerns/setting_concern.rb +2 -2
  14. data/app/controllers/fluentd/settings_controller.rb +17 -2
  15. data/app/models/fluentd/setting/config.rb +39 -0
  16. data/app/views/api/settings/_element.json.jbuilder +6 -0
  17. data/app/views/api/settings/index.json.jbuilder +3 -0
  18. data/app/views/api/settings/show.json.jbuilder +1 -0
  19. data/app/views/fluentd/settings/edit.html.haml +3 -0
  20. data/app/views/fluentd/settings/source_and_output.html.haml +19 -2
  21. data/app/views/layouts/application.html.erb +1 -30
  22. data/app/views/shared/vue/_in_tail_format.html.erb +11 -36
  23. data/app/views/shared/vue/_notification.html.erb +31 -0
  24. data/app/views/shared/vue/_setting.html.erb +23 -0
  25. data/app/views/shared/vue/_treeview.html.erb +2 -2
  26. data/bower.json +1 -1
  27. data/config/application.rb +1 -0
  28. data/config/locales/translation_en.yml +11 -7
  29. data/config/locales/translation_ja.yml +4 -0
  30. data/config/routes.rb +2 -0
  31. data/lib/fluentd-ui/version.rb +1 -1
  32. data/spec/features/fluentd/setting/source_and_output_spec.rb +157 -0
  33. data/spec/spec_helper.rb +1 -0
  34. data/spec/support/javascript_macro.rb +21 -0
  35. data/vendor/assets/javascripts/bower/vue/.bower.json +7 -7
  36. data/vendor/assets/javascripts/bower/vue/LICENSE +1 -1
  37. data/vendor/assets/javascripts/bower/vue/dist/vue.js +7822 -4768
  38. data/vendor/assets/javascripts/bower/vue/dist/vue.min.js +7 -7
  39. data/vendor/assets/javascripts/bower/vue/src/api/child.js +53 -0
  40. data/vendor/assets/javascripts/bower/vue/src/api/data.js +161 -0
  41. data/vendor/assets/javascripts/bower/vue/src/api/dom.js +211 -0
  42. data/vendor/assets/javascripts/bower/vue/src/api/events.js +176 -0
  43. data/vendor/assets/javascripts/bower/vue/src/api/global.js +146 -0
  44. data/vendor/assets/javascripts/bower/vue/src/api/lifecycle.js +144 -0
  45. data/vendor/assets/javascripts/bower/vue/src/batcher.js +52 -32
  46. data/vendor/assets/javascripts/bower/vue/src/cache.js +112 -0
  47. data/vendor/assets/javascripts/bower/vue/src/compiler/compile.js +549 -0
  48. data/vendor/assets/javascripts/bower/vue/src/compiler/transclude.js +163 -0
  49. data/vendor/assets/javascripts/bower/vue/src/config.js +74 -14
  50. data/vendor/assets/javascripts/bower/vue/src/directive.js +179 -219
  51. data/vendor/assets/javascripts/bower/vue/src/directives/attr.js +32 -0
  52. data/vendor/assets/javascripts/bower/vue/src/directives/class.js +18 -0
  53. data/vendor/assets/javascripts/bower/vue/src/directives/cloak.js +12 -0
  54. data/vendor/assets/javascripts/bower/vue/src/directives/component.js +214 -0
  55. data/vendor/assets/javascripts/bower/vue/src/directives/el.js +13 -0
  56. data/vendor/assets/javascripts/bower/vue/src/directives/html.js +30 -34
  57. data/vendor/assets/javascripts/bower/vue/src/directives/if.js +77 -46
  58. data/vendor/assets/javascripts/bower/vue/src/directives/index.js +22 -129
  59. data/vendor/assets/javascripts/bower/vue/src/directives/model/checkbox.js +25 -0
  60. data/vendor/assets/javascripts/bower/vue/src/directives/model/default.js +123 -0
  61. data/vendor/assets/javascripts/bower/vue/src/directives/model/index.js +56 -0
  62. data/vendor/assets/javascripts/bower/vue/src/directives/model/radio.js +26 -0
  63. data/vendor/assets/javascripts/bower/vue/src/directives/model/select.js +166 -0
  64. data/vendor/assets/javascripts/bower/vue/src/directives/on.js +51 -50
  65. data/vendor/assets/javascripts/bower/vue/src/directives/partial.js +36 -42
  66. data/vendor/assets/javascripts/bower/vue/src/directives/ref.js +24 -0
  67. data/vendor/assets/javascripts/bower/vue/src/directives/repeat.js +477 -226
  68. data/vendor/assets/javascripts/bower/vue/src/directives/show.js +8 -0
  69. data/vendor/assets/javascripts/bower/vue/src/directives/style.js +49 -37
  70. data/vendor/assets/javascripts/bower/vue/src/directives/text.js +15 -0
  71. data/vendor/assets/javascripts/bower/vue/src/directives/transition.js +12 -0
  72. data/vendor/assets/javascripts/bower/vue/src/directives/with.js +38 -41
  73. data/vendor/assets/javascripts/bower/vue/src/filters/array-filters.js +87 -0
  74. data/vendor/assets/javascripts/bower/vue/src/filters/index.js +135 -0
  75. data/vendor/assets/javascripts/bower/vue/src/instance/compile.js +71 -0
  76. data/vendor/assets/javascripts/bower/vue/src/instance/events.js +122 -0
  77. data/vendor/assets/javascripts/bower/vue/src/instance/init.js +76 -0
  78. data/vendor/assets/javascripts/bower/vue/src/instance/scope.js +217 -0
  79. data/vendor/assets/javascripts/bower/vue/src/observer/array.js +90 -0
  80. data/vendor/assets/javascripts/bower/vue/src/observer/dep.js +50 -0
  81. data/vendor/assets/javascripts/bower/vue/src/observer/index.js +235 -0
  82. data/vendor/assets/javascripts/bower/vue/src/observer/object.js +75 -0
  83. data/vendor/assets/javascripts/bower/vue/src/parsers/directive.js +159 -0
  84. data/vendor/assets/javascripts/bower/vue/src/parsers/expression.js +226 -0
  85. data/vendor/assets/javascripts/bower/vue/src/parsers/path.js +300 -0
  86. data/vendor/assets/javascripts/bower/vue/src/parsers/template.js +246 -0
  87. data/vendor/assets/javascripts/bower/vue/src/parsers/text.js +178 -0
  88. data/vendor/assets/javascripts/bower/vue/src/transition/css.js +189 -0
  89. data/vendor/assets/javascripts/bower/vue/src/transition/index.js +151 -0
  90. data/vendor/assets/javascripts/bower/vue/src/transition/js.js +43 -0
  91. data/vendor/assets/javascripts/bower/vue/src/util/debug.js +50 -0
  92. data/vendor/assets/javascripts/bower/vue/src/util/dom.js +176 -0
  93. data/vendor/assets/javascripts/bower/vue/src/util/env.js +74 -0
  94. data/vendor/assets/javascripts/bower/vue/src/util/filter.js +72 -0
  95. data/vendor/assets/javascripts/bower/vue/src/util/index.js +8 -0
  96. data/vendor/assets/javascripts/bower/vue/src/util/lang.js +175 -0
  97. data/vendor/assets/javascripts/bower/vue/src/util/merge-option.js +258 -0
  98. data/vendor/assets/javascripts/bower/vue/src/vue.js +84 -0
  99. data/vendor/assets/javascripts/bower/vue/src/watcher.js +240 -0
  100. metadata +65 -20
  101. data/app/assets/javascripts/setting_format.js +0 -15
  102. data/vendor/assets/javascripts/bower/vue/src/binding.js +0 -103
  103. data/vendor/assets/javascripts/bower/vue/src/compiler.js +0 -1037
  104. data/vendor/assets/javascripts/bower/vue/src/deps-parser.js +0 -65
  105. data/vendor/assets/javascripts/bower/vue/src/directives/model.js +0 -174
  106. data/vendor/assets/javascripts/bower/vue/src/directives/view.js +0 -56
  107. data/vendor/assets/javascripts/bower/vue/src/emitter.js +0 -97
  108. data/vendor/assets/javascripts/bower/vue/src/exp-parser.js +0 -190
  109. data/vendor/assets/javascripts/bower/vue/src/filters.js +0 -191
  110. data/vendor/assets/javascripts/bower/vue/src/fragment.js +0 -67
  111. data/vendor/assets/javascripts/bower/vue/src/main.js +0 -188
  112. data/vendor/assets/javascripts/bower/vue/src/observer.js +0 -446
  113. data/vendor/assets/javascripts/bower/vue/src/template-parser.js +0 -46
  114. data/vendor/assets/javascripts/bower/vue/src/text-parser.js +0 -96
  115. data/vendor/assets/javascripts/bower/vue/src/transition.js +0 -228
  116. data/vendor/assets/javascripts/bower/vue/src/utils.js +0 -326
  117. data/vendor/assets/javascripts/bower/vue/src/viewmodel.js +0 -190
@@ -0,0 +1,8 @@
1
+ var transition = require('../transition')
2
+
3
+ module.exports = function (value) {
4
+ var el = this.el
5
+ transition.apply(el, value ? 1 : -1, function () {
6
+ el.style.display = value ? '' : 'none'
7
+ }, this.vm)
8
+ }
@@ -1,46 +1,58 @@
1
1
  var prefixes = ['-webkit-', '-moz-', '-ms-']
2
+ var importantRE = /!important;?$/
2
3
 
3
- /**
4
- * Binding for CSS styles
5
- */
6
4
  module.exports = {
7
5
 
8
- bind: function () {
9
- var prop = this.arg
10
- if (!prop) return
11
- if (prop.charAt(0) === '$') {
12
- // properties that start with $ will be auto-prefixed
13
- prop = prop.slice(1)
14
- this.prefixed = true
15
- }
16
- this.prop = prop
17
- },
6
+ deep: true,
7
+
8
+ bind: function () {
9
+ var prop = this.arg
10
+ if (!prop) return
11
+ this.prop = prop
12
+ },
18
13
 
19
- update: function (value) {
20
- var prop = this.prop,
21
- isImportant
22
- /* jshint eqeqeq: true */
23
- // cast possible numbers/booleans into strings
24
- if (value != null) value += ''
25
- if (prop) {
26
- if (value) {
27
- isImportant = value.slice(-10) === '!important'
28
- ? 'important'
29
- : ''
30
- if (isImportant) {
31
- value = value.slice(0, -10).trim()
32
- }
33
- }
34
- this.el.style.setProperty(prop, value, isImportant)
35
- if (this.prefixed) {
36
- var i = prefixes.length
37
- while (i--) {
38
- this.el.style.setProperty(prefixes[i] + prop, value, isImportant)
39
- }
40
- }
41
- } else {
42
- this.el.style.cssText = value
14
+ update: function (value) {
15
+ if (this.prop) {
16
+ this.setCssProperty(this.prop, value)
17
+ } else {
18
+ if (typeof value === 'object') {
19
+ for (var prop in value) {
20
+ this.setCssProperty(prop, value[prop])
43
21
  }
22
+ } else {
23
+ this.el.style.cssText = value
24
+ }
25
+ }
26
+ },
27
+
28
+ setCssProperty: function (prop, value) {
29
+ var prefixed = false
30
+ if (prop.charAt(0) === '$') {
31
+ // properties that start with $ will be auto-prefixed
32
+ prop = prop.slice(1)
33
+ prefixed = true
34
+ }
35
+ // cast possible numbers/booleans into strings
36
+ if (value != null) {
37
+ value += ''
38
+ }
39
+ var isImportant = importantRE.test(value)
40
+ ? 'important'
41
+ : ''
42
+ if (isImportant) {
43
+ value = value.replace(importantRE, '').trim()
44
+ }
45
+ this.el.style.setProperty(prop, value, isImportant)
46
+ if (prefixed) {
47
+ var i = prefixes.length
48
+ while (i--) {
49
+ this.el.style.setProperty(
50
+ prefixes[i] + prop,
51
+ value,
52
+ isImportant
53
+ )
54
+ }
44
55
  }
56
+ }
45
57
 
46
58
  }
@@ -0,0 +1,15 @@
1
+ var _ = require('../util')
2
+
3
+ module.exports = {
4
+
5
+ bind: function () {
6
+ this.attr = this.el.nodeType === 3
7
+ ? 'nodeValue'
8
+ : 'textContent'
9
+ },
10
+
11
+ update: function (value) {
12
+ this.el[this.attr] = _.toString(value)
13
+ }
14
+
15
+ }
@@ -0,0 +1,12 @@
1
+ module.exports = {
2
+
3
+ priority: 1000,
4
+ isLiteral: true,
5
+
6
+ bind: function () {
7
+ this.el.__v_trans = {
8
+ id: this.expression
9
+ }
10
+ }
11
+
12
+ }
@@ -1,50 +1,47 @@
1
- var utils = require('../utils')
1
+ var _ = require('../util')
2
+ var Watcher = require('../watcher')
2
3
 
3
- /**
4
- * Binding for inheriting data from parent VMs.
5
- */
6
4
  module.exports = {
7
5
 
8
- bind: function () {
6
+ priority: 900,
9
7
 
10
- var self = this,
11
- childKey = self.arg,
12
- parentKey = self.key,
13
- compiler = self.compiler,
14
- owner = self.binding.compiler
15
-
16
- if (compiler === owner) {
17
- this.alone = true
18
- return
19
- }
20
-
21
- if (childKey) {
22
- if (!compiler.bindings[childKey]) {
23
- compiler.createBinding(childKey)
8
+ bind: function () {
9
+ var vm = this.vm
10
+ if (this.el !== vm.$el) {
11
+ _.warn(
12
+ 'v-with can only be used on instance root elements.'
13
+ )
14
+ } else if (!vm.$parent) {
15
+ _.warn(
16
+ 'v-with must be used on an instance with a parent.'
17
+ )
18
+ } else {
19
+ var key = this.arg
20
+ this.watcher = new Watcher(
21
+ vm.$parent,
22
+ this.expression,
23
+ key
24
+ ? function (val) {
25
+ vm.$set(key, val)
24
26
  }
25
- // sync changes on child back to parent
26
- compiler.observer.on('change:' + childKey, function (val) {
27
- if (compiler.init) return
28
- if (!self.lock) {
29
- self.lock = true
30
- utils.nextTick(function () {
31
- self.lock = false
32
- })
33
- }
34
- owner.vm.$set(parentKey, val)
35
- })
36
- }
37
- },
38
-
39
- update: function (value) {
40
- // sync from parent
41
- if (!this.alone && !this.lock) {
42
- if (this.arg) {
43
- this.vm.$set(this.arg, value)
44
- } else if (this.vm.$data !== value) {
45
- this.vm.$data = value
27
+ : function (val) {
28
+ vm.$data = val
46
29
  }
47
- }
30
+ )
31
+ // initial set
32
+ var initialVal = this.watcher.value
33
+ if (key) {
34
+ vm.$set(key, initialVal)
35
+ } else {
36
+ vm.$data = initialVal
37
+ }
38
+ }
39
+ },
40
+
41
+ unbind: function () {
42
+ if (this.watcher) {
43
+ this.watcher.teardown()
48
44
  }
45
+ }
49
46
 
50
47
  }
@@ -0,0 +1,87 @@
1
+ var _ = require('../util')
2
+ var Path = require('../parsers/path')
3
+
4
+ /**
5
+ * Filter filter for v-repeat
6
+ *
7
+ * @param {String} searchKey
8
+ * @param {String} [delimiter]
9
+ * @param {String} dataKey
10
+ */
11
+
12
+ exports.filterBy = function (arr, searchKey, delimiter, dataKey) {
13
+ // allow optional `in` delimiter
14
+ // because why not
15
+ if (delimiter && delimiter !== 'in') {
16
+ dataKey = delimiter
17
+ }
18
+ // get the search string
19
+ var search =
20
+ _.stripQuotes(searchKey) ||
21
+ this.$get(searchKey)
22
+ if (!search) {
23
+ return arr
24
+ }
25
+ search = ('' + search).toLowerCase()
26
+ // get the optional dataKey
27
+ dataKey =
28
+ dataKey &&
29
+ (_.stripQuotes(dataKey) || this.$get(dataKey))
30
+ return arr.filter(function (item) {
31
+ return dataKey
32
+ ? contains(Path.get(item, dataKey), search)
33
+ : contains(item, search)
34
+ })
35
+ }
36
+
37
+ /**
38
+ * Filter filter for v-repeat
39
+ *
40
+ * @param {String} sortKey
41
+ * @param {String} reverseKey
42
+ */
43
+
44
+ exports.orderBy = function (arr, sortKey, reverseKey) {
45
+ var key =
46
+ _.stripQuotes(sortKey) ||
47
+ this.$get(sortKey)
48
+ if (!key) {
49
+ return arr
50
+ }
51
+ var order = 1
52
+ if (reverseKey) {
53
+ if (reverseKey === '-1') {
54
+ order = -1
55
+ } else if (reverseKey.charCodeAt(0) === 0x21) { // !
56
+ reverseKey = reverseKey.slice(1)
57
+ order = this.$get(reverseKey) ? 1 : -1
58
+ } else {
59
+ order = this.$get(reverseKey) ? -1 : 1
60
+ }
61
+ }
62
+ // sort on a copy to avoid mutating original array
63
+ return arr.slice().sort(function (a, b) {
64
+ a = Path.get(a, key)
65
+ b = Path.get(b, key)
66
+ return a === b ? 0 : a > b ? order : -order
67
+ })
68
+ }
69
+
70
+ /**
71
+ * String contain helper
72
+ *
73
+ * @param {*} val
74
+ * @param {String} search
75
+ */
76
+
77
+ function contains (val, search) {
78
+ if (_.isObject(val)) {
79
+ for (var key in val) {
80
+ if (contains(val[key], search)) {
81
+ return true
82
+ }
83
+ }
84
+ } else if (val != null) {
85
+ return val.toString().toLowerCase().indexOf(search) > -1
86
+ }
87
+ }
@@ -0,0 +1,135 @@
1
+ var _ = require('../util')
2
+
3
+ /**
4
+ * Stringify value.
5
+ *
6
+ * @param {Number} indent
7
+ */
8
+
9
+ exports.json = {
10
+ read: function (value, indent) {
11
+ return typeof value === 'string'
12
+ ? value
13
+ : JSON.stringify(value, null, Number(indent) || 2)
14
+ },
15
+ write: function (value) {
16
+ try {
17
+ return JSON.parse(value)
18
+ } catch (e) {
19
+ return value
20
+ }
21
+ }
22
+ }
23
+
24
+ /**
25
+ * 'abc' => 'Abc'
26
+ */
27
+
28
+ exports.capitalize = function (value) {
29
+ if (!value && value !== 0) return ''
30
+ value = value.toString()
31
+ return value.charAt(0).toUpperCase() + value.slice(1)
32
+ }
33
+
34
+ /**
35
+ * 'abc' => 'ABC'
36
+ */
37
+
38
+ exports.uppercase = function (value) {
39
+ return (value || value === 0)
40
+ ? value.toString().toUpperCase()
41
+ : ''
42
+ }
43
+
44
+ /**
45
+ * 'AbC' => 'abc'
46
+ */
47
+
48
+ exports.lowercase = function (value) {
49
+ return (value || value === 0)
50
+ ? value.toString().toLowerCase()
51
+ : ''
52
+ }
53
+
54
+ /**
55
+ * 12345 => $12,345.00
56
+ *
57
+ * @param {String} sign
58
+ */
59
+
60
+ var digitsRE = /(\d{3})(?=\d)/g
61
+
62
+ exports.currency = function (value, sign) {
63
+ value = parseFloat(value)
64
+ if (!value && value !== 0) return ''
65
+ sign = sign || '$'
66
+ var s = Math.floor(Math.abs(value)).toString(),
67
+ i = s.length % 3,
68
+ h = i > 0
69
+ ? (s.slice(0, i) + (s.length > 3 ? ',' : ''))
70
+ : '',
71
+ f = '.' + value.toFixed(2).slice(-2)
72
+ return (value < 0 ? '-' : '') +
73
+ sign + h + s.slice(i).replace(digitsRE, '$1,') + f
74
+ }
75
+
76
+ /**
77
+ * 'item' => 'items'
78
+ *
79
+ * @params
80
+ * an array of strings corresponding to
81
+ * the single, double, triple ... forms of the word to
82
+ * be pluralized. When the number to be pluralized
83
+ * exceeds the length of the args, it will use the last
84
+ * entry in the array.
85
+ *
86
+ * e.g. ['single', 'double', 'triple', 'multiple']
87
+ */
88
+
89
+ exports.pluralize = function (value) {
90
+ var args = _.toArray(arguments, 1)
91
+ return args.length > 1
92
+ ? (args[value % 10 - 1] || args[args.length - 1])
93
+ : (args[0] + (value === 1 ? '' : 's'))
94
+ }
95
+
96
+ /**
97
+ * A special filter that takes a handler function,
98
+ * wraps it so it only gets triggered on specific
99
+ * keypresses. v-on only.
100
+ *
101
+ * @param {String} key
102
+ */
103
+
104
+ var keyCodes = {
105
+ enter : 13,
106
+ tab : 9,
107
+ 'delete' : 46,
108
+ up : 38,
109
+ left : 37,
110
+ right : 39,
111
+ down : 40,
112
+ esc : 27
113
+ }
114
+
115
+ exports.key = function (handler, key) {
116
+ if (!handler) return
117
+ var code = keyCodes[key]
118
+ if (!code) {
119
+ code = parseInt(key, 10)
120
+ }
121
+ return function (e) {
122
+ if (e.keyCode === code) {
123
+ return handler.call(this, e)
124
+ }
125
+ }
126
+ }
127
+
128
+ // expose keycode hash
129
+ exports.key.keyCodes = keyCodes
130
+
131
+ /**
132
+ * Install special array filters
133
+ */
134
+
135
+ _.extend(exports, require('./array-filters'))