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,71 @@
1
+ var _ = require('../util')
2
+ var Directive = require('../directive')
3
+ var compile = require('../compiler/compile')
4
+ var transclude = require('../compiler/transclude')
5
+
6
+ /**
7
+ * Transclude, compile and link element.
8
+ *
9
+ * If a pre-compiled linker is available, that means the
10
+ * passed in element will be pre-transcluded and compiled
11
+ * as well - all we need to do is to call the linker.
12
+ *
13
+ * Otherwise we need to call transclude/compile/link here.
14
+ *
15
+ * @param {Element} el
16
+ * @return {Element}
17
+ */
18
+
19
+ exports._compile = function (el) {
20
+ var options = this.$options
21
+ if (options._linker) {
22
+ this._initElement(el)
23
+ options._linker(this, el)
24
+ } else {
25
+ var raw = el
26
+ el = transclude(el, options)
27
+ this._initElement(el)
28
+ var linker = compile(el, options)
29
+ linker(this, el)
30
+ if (options.replace) {
31
+ _.replace(raw, el)
32
+ }
33
+ }
34
+ return el
35
+ }
36
+
37
+ /**
38
+ * Initialize instance element. Called in the public
39
+ * $mount() method.
40
+ *
41
+ * @param {Element} el
42
+ */
43
+
44
+ exports._initElement = function (el) {
45
+ if (el instanceof DocumentFragment) {
46
+ this._isBlock = true
47
+ this.$el = this._blockStart = el.firstChild
48
+ this._blockEnd = el.lastChild
49
+ this._blockFragment = el
50
+ } else {
51
+ this.$el = el
52
+ }
53
+ this.$el.__vue__ = this
54
+ this._callHook('beforeCompile')
55
+ }
56
+
57
+ /**
58
+ * Create and bind a directive to an element.
59
+ *
60
+ * @param {String} name - directive name
61
+ * @param {Node} node - target node
62
+ * @param {Object} desc - parsed directive descriptor
63
+ * @param {Object} def - directive definition object
64
+ * @param {Function} [linker] - pre-compiled linker fn
65
+ */
66
+
67
+ exports._bindDir = function (name, node, desc, def, linker) {
68
+ this._directives.push(
69
+ new Directive(name, node, this, desc, def, linker)
70
+ )
71
+ }
@@ -0,0 +1,122 @@
1
+ var _ = require('../util')
2
+ var inDoc = _.inDoc
3
+
4
+ /**
5
+ * Setup the instance's option events & watchers.
6
+ * If the value is a string, we pull it from the
7
+ * instance's methods by name.
8
+ */
9
+
10
+ exports._initEvents = function () {
11
+ var options = this.$options
12
+ registerCallbacks(this, '$on', options.events)
13
+ registerCallbacks(this, '$watch', options.watch)
14
+ }
15
+
16
+ /**
17
+ * Register callbacks for option events and watchers.
18
+ *
19
+ * @param {Vue} vm
20
+ * @param {String} action
21
+ * @param {Object} hash
22
+ */
23
+
24
+ function registerCallbacks (vm, action, hash) {
25
+ if (!hash) return
26
+ var handlers, key, i, j
27
+ for (key in hash) {
28
+ handlers = hash[key]
29
+ if (_.isArray(handlers)) {
30
+ for (i = 0, j = handlers.length; i < j; i++) {
31
+ register(vm, action, key, handlers[i])
32
+ }
33
+ } else {
34
+ register(vm, action, key, handlers)
35
+ }
36
+ }
37
+ }
38
+
39
+ /**
40
+ * Helper to register an event/watch callback.
41
+ *
42
+ * @param {Vue} vm
43
+ * @param {String} action
44
+ * @param {String} key
45
+ * @param {*} handler
46
+ */
47
+
48
+ function register (vm, action, key, handler) {
49
+ var type = typeof handler
50
+ if (type === 'function') {
51
+ vm[action](key, handler)
52
+ } else if (type === 'string') {
53
+ var methods = vm.$options.methods
54
+ var method = methods && methods[handler]
55
+ if (method) {
56
+ vm[action](key, method)
57
+ } else {
58
+ _.warn(
59
+ 'Unknown method: "' + handler + '" when ' +
60
+ 'registering callback for ' + action +
61
+ ': "' + key + '".'
62
+ )
63
+ }
64
+ }
65
+ }
66
+
67
+ /**
68
+ * Setup recursive attached/detached calls
69
+ */
70
+
71
+ exports._initDOMHooks = function () {
72
+ this.$on('hook:attached', onAttached)
73
+ this.$on('hook:detached', onDetached)
74
+ }
75
+
76
+ /**
77
+ * Callback to recursively call attached hook on children
78
+ */
79
+
80
+ function onAttached () {
81
+ this._isAttached = true
82
+ var children = this._children
83
+ if (!children) return
84
+ for (var i = 0, l = children.length; i < l; i++) {
85
+ var child = children[i]
86
+ if (!child._isAttached && inDoc(child.$el)) {
87
+ child._callHook('attached')
88
+ }
89
+ }
90
+ }
91
+
92
+ /**
93
+ * Callback to recursively call detached hook on children
94
+ */
95
+
96
+ function onDetached () {
97
+ this._isAttached = false
98
+ var children = this._children
99
+ if (!children) return
100
+ for (var i = 0, l = children.length; i < l; i++) {
101
+ var child = children[i]
102
+ if (child._isAttached && !inDoc(child.$el)) {
103
+ child._callHook('detached')
104
+ }
105
+ }
106
+ }
107
+
108
+ /**
109
+ * Trigger all handlers for a hook
110
+ *
111
+ * @param {String} hook
112
+ */
113
+
114
+ exports._callHook = function (hook) {
115
+ var handlers = this.$options[hook]
116
+ if (handlers) {
117
+ for (var i = 0, j = handlers.length; i < j; i++) {
118
+ handlers[i].call(this)
119
+ }
120
+ }
121
+ this.$emit('hook:' + hook)
122
+ }
@@ -0,0 +1,76 @@
1
+ var mergeOptions = require('../util/merge-option')
2
+
3
+ /**
4
+ * The main init sequence. This is called for every
5
+ * instance, including ones that are created from extended
6
+ * constructors.
7
+ *
8
+ * @param {Object} options - this options object should be
9
+ * the result of merging class
10
+ * options and the options passed
11
+ * in to the constructor.
12
+ */
13
+
14
+ exports._init = function (options) {
15
+
16
+ options = options || {}
17
+
18
+ this.$el = null
19
+ this.$parent = options._parent
20
+ this.$root = options._root || this
21
+ this.$ = {} // child vm references
22
+ this.$$ = {} // element references
23
+ this._watcherList = [] // all watchers as an array
24
+ this._watchers = {} // internal watchers as a hash
25
+ this._userWatchers = {} // user watchers as a hash
26
+ this._directives = [] // all directives
27
+
28
+ // a flag to avoid this being observed
29
+ this._isVue = true
30
+
31
+ // events bookkeeping
32
+ this._events = {} // registered callbacks
33
+ this._eventsCount = {} // for $broadcast optimization
34
+ this._eventCancelled = false // for event cancellation
35
+
36
+ // block instance properties
37
+ this._isBlock = false
38
+ this._blockStart = // @type {CommentNode}
39
+ this._blockEnd = null // @type {CommentNode}
40
+
41
+ // lifecycle state
42
+ this._isCompiled =
43
+ this._isDestroyed =
44
+ this._isReady =
45
+ this._isAttached =
46
+ this._isBeingDestroyed = false
47
+
48
+ // children
49
+ this._children = // @type {Array}
50
+ this._childCtors = null // @type {Object} - hash to cache
51
+ // child constructors
52
+
53
+ // merge options.
54
+ options = this.$options = mergeOptions(
55
+ this.constructor.options,
56
+ options,
57
+ this
58
+ )
59
+
60
+ // set data after merge.
61
+ this._data = options.data || {}
62
+
63
+ // initialize data observation and scope inheritance.
64
+ this._initScope()
65
+
66
+ // setup event system and option events.
67
+ this._initEvents()
68
+
69
+ // call created hook
70
+ this._callHook('created')
71
+
72
+ // if `el` option is passed, start compilation.
73
+ if (options.el) {
74
+ this.$mount(options.el)
75
+ }
76
+ }
@@ -0,0 +1,217 @@
1
+ var _ = require('../util')
2
+ var Observer = require('../observer')
3
+ var Dep = require('../observer/dep')
4
+
5
+ /**
6
+ * Setup the scope of an instance, which contains:
7
+ * - observed data
8
+ * - computed properties
9
+ * - user methods
10
+ * - meta properties
11
+ */
12
+
13
+ exports._initScope = function () {
14
+ this._initData()
15
+ this._initComputed()
16
+ this._initMethods()
17
+ this._initMeta()
18
+ }
19
+
20
+ /**
21
+ * Initialize the data.
22
+ */
23
+
24
+ exports._initData = function () {
25
+ // proxy data on instance
26
+ var data = this._data
27
+ var keys = Object.keys(data)
28
+ var i = keys.length
29
+ var key
30
+ while (i--) {
31
+ key = keys[i]
32
+ if (!_.isReserved(key)) {
33
+ this._proxy(key)
34
+ }
35
+ }
36
+ // observe data
37
+ Observer.create(data).addVm(this)
38
+ }
39
+
40
+ /**
41
+ * Swap the isntance's $data. Called in $data's setter.
42
+ *
43
+ * @param {Object} newData
44
+ */
45
+
46
+ exports._setData = function (newData) {
47
+ newData = newData || {}
48
+ var oldData = this._data
49
+ this._data = newData
50
+ var keys, key, i
51
+ // unproxy keys not present in new data
52
+ keys = Object.keys(oldData)
53
+ i = keys.length
54
+ while (i--) {
55
+ key = keys[i]
56
+ if (!_.isReserved(key) && !(key in newData)) {
57
+ this._unproxy(key)
58
+ }
59
+ }
60
+ // proxy keys not already proxied,
61
+ // and trigger change for changed values
62
+ keys = Object.keys(newData)
63
+ i = keys.length
64
+ while (i--) {
65
+ key = keys[i]
66
+ if (!this.hasOwnProperty(key) && !_.isReserved(key)) {
67
+ // new property
68
+ this._proxy(key)
69
+ }
70
+ }
71
+ oldData.__ob__.removeVm(this)
72
+ Observer.create(newData).addVm(this)
73
+ this._digest()
74
+ }
75
+
76
+ /**
77
+ * Proxy a property, so that
78
+ * vm.prop === vm._data.prop
79
+ *
80
+ * @param {String} key
81
+ */
82
+
83
+ exports._proxy = function (key) {
84
+ // need to store ref to self here
85
+ // because these getter/setters might
86
+ // be called by child instances!
87
+ var self = this
88
+ Object.defineProperty(self, key, {
89
+ configurable: true,
90
+ enumerable: true,
91
+ get: function proxyGetter () {
92
+ return self._data[key]
93
+ },
94
+ set: function proxySetter (val) {
95
+ self._data[key] = val
96
+ }
97
+ })
98
+ }
99
+
100
+ /**
101
+ * Unproxy a property.
102
+ *
103
+ * @param {String} key
104
+ */
105
+
106
+ exports._unproxy = function (key) {
107
+ delete this[key]
108
+ }
109
+
110
+ /**
111
+ * Force update on every watcher in scope.
112
+ */
113
+
114
+ exports._digest = function () {
115
+ var i = this._watcherList.length
116
+ while (i--) {
117
+ this._watcherList[i].update()
118
+ }
119
+ var children = this._children
120
+ var child
121
+ if (children) {
122
+ i = children.length
123
+ while (i--) {
124
+ child = children[i]
125
+ if (child.$options.inherit) {
126
+ child._digest()
127
+ }
128
+ }
129
+ }
130
+ }
131
+
132
+ /**
133
+ * Setup computed properties. They are essentially
134
+ * special getter/setters
135
+ */
136
+
137
+ function noop () {}
138
+ exports._initComputed = function () {
139
+ var computed = this.$options.computed
140
+ if (computed) {
141
+ for (var key in computed) {
142
+ var userDef = computed[key]
143
+ var def = {
144
+ enumerable: true,
145
+ configurable: true
146
+ }
147
+ if (typeof userDef === 'function') {
148
+ def.get = _.bind(userDef, this)
149
+ def.set = noop
150
+ } else {
151
+ def.get = userDef.get
152
+ ? _.bind(userDef.get, this)
153
+ : noop
154
+ def.set = userDef.set
155
+ ? _.bind(userDef.set, this)
156
+ : noop
157
+ }
158
+ Object.defineProperty(this, key, def)
159
+ }
160
+ }
161
+ }
162
+
163
+ /**
164
+ * Setup instance methods. Methods must be bound to the
165
+ * instance since they might be called by children
166
+ * inheriting them.
167
+ */
168
+
169
+ exports._initMethods = function () {
170
+ var methods = this.$options.methods
171
+ if (methods) {
172
+ for (var key in methods) {
173
+ this[key] = _.bind(methods[key], this)
174
+ }
175
+ }
176
+ }
177
+
178
+ /**
179
+ * Initialize meta information like $index, $key & $value.
180
+ */
181
+
182
+ exports._initMeta = function () {
183
+ var metas = this.$options._meta
184
+ if (metas) {
185
+ for (var key in metas) {
186
+ this._defineMeta(key, metas[key])
187
+ }
188
+ }
189
+ }
190
+
191
+ /**
192
+ * Define a meta property, e.g $index, $key, $value
193
+ * which only exists on the vm instance but not in $data.
194
+ *
195
+ * @param {String} key
196
+ * @param {*} value
197
+ */
198
+
199
+ exports._defineMeta = function (key, value) {
200
+ var dep = new Dep()
201
+ Object.defineProperty(this, key, {
202
+ enumerable: true,
203
+ configurable: true,
204
+ get: function metaGetter () {
205
+ if (Observer.target) {
206
+ Observer.target.addDep(dep)
207
+ }
208
+ return value
209
+ },
210
+ set: function metaSetter (val) {
211
+ if (val !== value) {
212
+ value = val
213
+ dep.notify()
214
+ }
215
+ }
216
+ })
217
+ }