ilog 0.4.2 → 0.4.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ilog.rb +10 -3
- data/lib/ilog/assets/javascripts/vue-index.js +228 -4
- data/lib/ilog/config/routes.rb +2 -1
- data/lib/ilog/controllers/asset/display.rb +21 -0
- data/lib/ilog/controllers/digital/show.rb +1 -1
- data/lib/ilog/controllers/helpers.rb +0 -3
- data/lib/ilog/controllers/index/digital.rb +6 -2
- data/lib/ilog/controllers/index/index.rb +10 -3
- data/lib/ilog/models/story.rb +7 -0
- data/lib/ilog/version.rb +1 -1
- data/src/vue/Ilog.vue +4 -1
- data/src/vue/components/PostBody.vue +2 -2
- data/src/vue/elements/stories.vue +70 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7d78a5e0f176279ebafe3ad97ea5e7d8f78f8eb46c05b7887732ca371f6d6b5
|
4
|
+
data.tar.gz: 7b6168bf959b47d229d0117aad0bc5671c38f42aa19177adaeb0d13029177023
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c119ed8005226be1b3522764ffe250cea6bf317321a074d0e7d5d7dd7a47dcd78f362005fe3dc94c9fe2eb01bd4848c32dc94df1e2f1dabd21a7f7f0622b95fd
|
7
|
+
data.tar.gz: 73593aab0de7ee92c571df5bc4b9c1f2fb3e1e652621413aa3d9f96060ba21cded3d868d07254e5a82a2eb1edcf437d915c032e214a8e7a84452e32d714c2709
|
data/lib/ilog.rb
CHANGED
@@ -6,13 +6,20 @@ require 'hanami/assets'
|
|
6
6
|
require 'ilog/configuration'
|
7
7
|
|
8
8
|
require 'ilog/models/item'
|
9
|
+
|
10
|
+
require 'ilog/models/post'
|
11
|
+
require 'ilog/models/story'
|
12
|
+
require 'ilog/models/stuff'
|
13
|
+
|
14
|
+
require 'ilog/controllers/helpers'
|
15
|
+
|
9
16
|
Gem.find_files('iatelier/models/*.rb').each {|file| require file }
|
10
17
|
Gem.find_files('iatelier/models/dimensions/*.rb').each {|file| require file }
|
11
18
|
|
12
19
|
module Ilog
|
13
20
|
# class Error < StandardError; end
|
14
21
|
# Your code goes here...
|
15
|
-
|
22
|
+
|
16
23
|
class << self
|
17
24
|
attr_accessor :configuration
|
18
25
|
end
|
@@ -21,7 +28,7 @@ module Ilog
|
|
21
28
|
self.configuration ||= Configuration.new
|
22
29
|
yield(configuration)
|
23
30
|
end
|
24
|
-
|
31
|
+
|
25
32
|
class Application < Hanami::Application
|
26
33
|
configure do
|
27
34
|
##
|
@@ -253,7 +260,7 @@ module Ilog
|
|
253
260
|
object-src 'none';
|
254
261
|
plugin-types application/pdf;
|
255
262
|
child-src 'self';
|
256
|
-
frame-src 'self'
|
263
|
+
frame-src 'self' *;
|
257
264
|
media-src 'self';
|
258
265
|
}
|
259
266
|
|
@@ -6554,6 +6554,7 @@ module.exports = function buildURL(url, params, paramsSerializer) {
|
|
6554
6554
|
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__elements_Profile__ = __webpack_require__(205);
|
6555
6555
|
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__elements_Tunekit__ = __webpack_require__(206);
|
6556
6556
|
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_Item__ = __webpack_require__(200);
|
6557
|
+
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__elements_stories__ = __webpack_require__(242);
|
6557
6558
|
var _name$components$data;
|
6558
6559
|
|
6559
6560
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
@@ -6617,6 +6618,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
6617
6618
|
//
|
6618
6619
|
//
|
6619
6620
|
//
|
6621
|
+
//
|
6622
|
+
|
6620
6623
|
|
6621
6624
|
|
6622
6625
|
|
@@ -6631,7 +6634,8 @@ var moment = __webpack_require__(0);
|
|
6631
6634
|
components: {
|
6632
6635
|
Profile: __WEBPACK_IMPORTED_MODULE_1__elements_Profile__["a" /* default */],
|
6633
6636
|
Tunekit: __WEBPACK_IMPORTED_MODULE_2__elements_Tunekit__["a" /* default */],
|
6634
|
-
Item: __WEBPACK_IMPORTED_MODULE_3__components_Item__["a" /* default */]
|
6637
|
+
Item: __WEBPACK_IMPORTED_MODULE_3__components_Item__["a" /* default */],
|
6638
|
+
Stories: __WEBPACK_IMPORTED_MODULE_4__elements_stories__["a" /* default */]
|
6635
6639
|
},
|
6636
6640
|
data: function data() {
|
6637
6641
|
return {
|
@@ -7080,7 +7084,7 @@ var moment = __webpack_require__(0);
|
|
7080
7084
|
},
|
7081
7085
|
thumbnail: function thumbnail() {
|
7082
7086
|
if (typeof this.content.thumbnail !== 'undefined') {
|
7083
|
-
return this.url() + this.content.thumbnail.
|
7087
|
+
return this.url() + this.content.thumbnail.name;
|
7084
7088
|
} else {
|
7085
7089
|
return 'undefined';
|
7086
7090
|
}
|
@@ -25015,7 +25019,7 @@ exports.push([module.i, "", ""]);
|
|
25015
25019
|
/***/ (function(module, exports, __webpack_require__) {
|
25016
25020
|
|
25017
25021
|
exports = module.exports = __webpack_require__(2)();
|
25018
|
-
exports.push([module.i, "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", ""]);
|
25022
|
+
exports.push([module.i, "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", ""]);
|
25019
25023
|
|
25020
25024
|
/***/ }),
|
25021
25025
|
/* 188 */
|
@@ -45368,7 +45372,7 @@ var render = function() {
|
|
45368
45372
|
),
|
45369
45373
|
_vm._v(" "),
|
45370
45374
|
_c("div", {
|
45371
|
-
staticClass: "text",
|
45375
|
+
staticClass: "text article",
|
45372
45376
|
domProps: { innerHTML: _vm._s(_vm.content.content) }
|
45373
45377
|
}),
|
45374
45378
|
_vm._v(" "),
|
@@ -60739,5 +60743,225 @@ __webpack_require__(161);
|
|
60739
60743
|
module.exports = __webpack_require__(162);
|
60740
60744
|
|
60741
60745
|
|
60746
|
+
/***/ }),
|
60747
|
+
/* 235 */,
|
60748
|
+
/* 236 */,
|
60749
|
+
/* 237 */,
|
60750
|
+
/* 238 */,
|
60751
|
+
/* 239 */,
|
60752
|
+
/* 240 */
|
60753
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
60754
|
+
|
60755
|
+
"use strict";
|
60756
|
+
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__configs_app__ = __webpack_require__(6);
|
60757
|
+
//
|
60758
|
+
//
|
60759
|
+
//
|
60760
|
+
//
|
60761
|
+
//
|
60762
|
+
//
|
60763
|
+
//
|
60764
|
+
//
|
60765
|
+
//
|
60766
|
+
//
|
60767
|
+
//
|
60768
|
+
//
|
60769
|
+
//
|
60770
|
+
//
|
60771
|
+
//
|
60772
|
+
//
|
60773
|
+
//
|
60774
|
+
//
|
60775
|
+
//
|
60776
|
+
//
|
60777
|
+
//
|
60778
|
+
//
|
60779
|
+
//
|
60780
|
+
//
|
60781
|
+
|
60782
|
+
|
60783
|
+
|
60784
|
+
|
60785
|
+
/* harmony default export */ __webpack_exports__["a"] = ({
|
60786
|
+
name: 'Stories',
|
60787
|
+
components: {},
|
60788
|
+
data: function data() {
|
60789
|
+
return {
|
60790
|
+
tag: {},
|
60791
|
+
tags: []
|
60792
|
+
};
|
60793
|
+
},
|
60794
|
+
|
60795
|
+
methods: {
|
60796
|
+
onSubmit: function onSubmit() {
|
60797
|
+
this.$router.push({ name: 'tag', params: { id: this.tag.id } });
|
60798
|
+
}
|
60799
|
+
},
|
60800
|
+
created: function created() {
|
60801
|
+
var self = this;
|
60802
|
+
this.$http.get(__WEBPACK_IMPORTED_MODULE_0__configs_app__["a" /* default */].host + '/modules/tags/').then(function (response) {
|
60803
|
+
self.tags = response.data;
|
60804
|
+
});
|
60805
|
+
this.dashboard_1 = Window.Config.dasbhoard_1;
|
60806
|
+
this.dashboard_2 = Window.Config.dasbhoard_2;
|
60807
|
+
},
|
60808
|
+
|
60809
|
+
filters: {
|
60810
|
+
capitalize: function capitalize(text) {
|
60811
|
+
return text[0].toUpperCase() + text.slice(1);
|
60812
|
+
},
|
60813
|
+
fromNow: function fromNow(date) {
|
60814
|
+
return moment(date).fromNow();
|
60815
|
+
}
|
60816
|
+
},
|
60817
|
+
watch: {}
|
60818
|
+
});
|
60819
|
+
|
60820
|
+
/***/ }),
|
60821
|
+
/* 241 */
|
60822
|
+
/***/ (function(module, exports, __webpack_require__) {
|
60823
|
+
|
60824
|
+
exports = module.exports = __webpack_require__(2)();
|
60825
|
+
exports.push([module.i, "\n.tag[data-v-9b994c06] {\n\tfloat: left;\n}\n", ""]);
|
60826
|
+
|
60827
|
+
/***/ }),
|
60828
|
+
/* 242 */
|
60829
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
60830
|
+
|
60831
|
+
"use strict";
|
60832
|
+
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_es2015_modules_false_node_modules_vue_loader_lib_selector_type_script_index_0_stories_vue__ = __webpack_require__(240);
|
60833
|
+
/* unused harmony namespace reexport */
|
60834
|
+
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9b994c06_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_stories_vue__ = __webpack_require__(243);
|
60835
|
+
var disposed = false
|
60836
|
+
function injectStyle (ssrContext) {
|
60837
|
+
if (disposed) return
|
60838
|
+
__webpack_require__(244)
|
60839
|
+
}
|
60840
|
+
var normalizeComponent = __webpack_require__(3)
|
60841
|
+
/* script */
|
60842
|
+
|
60843
|
+
|
60844
|
+
/* template */
|
60845
|
+
|
60846
|
+
/* template functional */
|
60847
|
+
var __vue_template_functional__ = false
|
60848
|
+
/* styles */
|
60849
|
+
var __vue_styles__ = injectStyle
|
60850
|
+
/* scopeId */
|
60851
|
+
var __vue_scopeId__ = "data-v-9b994c06"
|
60852
|
+
/* moduleIdentifier (server only) */
|
60853
|
+
var __vue_module_identifier__ = null
|
60854
|
+
var Component = normalizeComponent(
|
60855
|
+
__WEBPACK_IMPORTED_MODULE_0__babel_loader_cacheDirectory_true_presets_es2015_modules_false_node_modules_vue_loader_lib_selector_type_script_index_0_stories_vue__["a" /* default */],
|
60856
|
+
__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9b994c06_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_stories_vue__["a" /* default */],
|
60857
|
+
__vue_template_functional__,
|
60858
|
+
__vue_styles__,
|
60859
|
+
__vue_scopeId__,
|
60860
|
+
__vue_module_identifier__
|
60861
|
+
)
|
60862
|
+
Component.options.__file = "src/vue/elements/stories.vue"
|
60863
|
+
|
60864
|
+
/* hot reload */
|
60865
|
+
if (false) {(function () {
|
60866
|
+
var hotAPI = require("vue-hot-reload-api")
|
60867
|
+
hotAPI.install(require("vue"), false)
|
60868
|
+
if (!hotAPI.compatible) return
|
60869
|
+
module.hot.accept()
|
60870
|
+
if (!module.hot.data) {
|
60871
|
+
hotAPI.createRecord("data-v-9b994c06", Component.options)
|
60872
|
+
} else {
|
60873
|
+
hotAPI.reload("data-v-9b994c06", Component.options)
|
60874
|
+
}
|
60875
|
+
module.hot.dispose(function (data) {
|
60876
|
+
disposed = true
|
60877
|
+
})
|
60878
|
+
})()}
|
60879
|
+
|
60880
|
+
/* harmony default export */ __webpack_exports__["a"] = (Component.exports);
|
60881
|
+
|
60882
|
+
|
60883
|
+
/***/ }),
|
60884
|
+
/* 243 */
|
60885
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
60886
|
+
|
60887
|
+
"use strict";
|
60888
|
+
var render = function() {
|
60889
|
+
var _vm = this
|
60890
|
+
var _h = _vm.$createElement
|
60891
|
+
var _c = _vm._self._c || _h
|
60892
|
+
return _vm._m(0)
|
60893
|
+
}
|
60894
|
+
var staticRenderFns = [
|
60895
|
+
function() {
|
60896
|
+
var _vm = this
|
60897
|
+
var _h = _vm.$createElement
|
60898
|
+
var _c = _vm._self._c || _h
|
60899
|
+
return _c("div", { staticClass: "stories" }, [
|
60900
|
+
_c("div", { staticClass: "modal active", attrs: { id: "modal-id" } }, [
|
60901
|
+
_c("a", {
|
60902
|
+
staticClass: "modal-overlay",
|
60903
|
+
attrs: { href: "#close", "aria-label": "Close" }
|
60904
|
+
}),
|
60905
|
+
_vm._v(" "),
|
60906
|
+
_c("div", { staticClass: "modal-container" }, [
|
60907
|
+
_c("div", { staticClass: "modal-header" }, [
|
60908
|
+
_c("a", {
|
60909
|
+
staticClass: "btn btn-clear float-right",
|
60910
|
+
attrs: { href: "#close", "aria-label": "Close" }
|
60911
|
+
}),
|
60912
|
+
_vm._v(" "),
|
60913
|
+
_c("div", { staticClass: "modal-title h5" }, [
|
60914
|
+
_vm._v("Modal title")
|
60915
|
+
])
|
60916
|
+
]),
|
60917
|
+
_vm._v(" "),
|
60918
|
+
_c("div", { staticClass: "modal-body" }, [
|
60919
|
+
_c("div", { staticClass: "content" })
|
60920
|
+
]),
|
60921
|
+
_vm._v(" "),
|
60922
|
+
_c("div", { staticClass: "modal-footer" }, [
|
60923
|
+
_vm._v("\n\t ...\n\t ")
|
60924
|
+
])
|
60925
|
+
])
|
60926
|
+
])
|
60927
|
+
])
|
60928
|
+
}
|
60929
|
+
]
|
60930
|
+
render._withStripped = true
|
60931
|
+
var esExports = { render: render, staticRenderFns: staticRenderFns }
|
60932
|
+
/* harmony default export */ __webpack_exports__["a"] = (esExports);
|
60933
|
+
if (false) {
|
60934
|
+
module.hot.accept()
|
60935
|
+
if (module.hot.data) {
|
60936
|
+
require("vue-hot-reload-api") .rerender("data-v-9b994c06", esExports)
|
60937
|
+
}
|
60938
|
+
}
|
60939
|
+
|
60940
|
+
/***/ }),
|
60941
|
+
/* 244 */
|
60942
|
+
/***/ (function(module, exports, __webpack_require__) {
|
60943
|
+
|
60944
|
+
// style-loader: Adds some css to the DOM by adding a <style> tag
|
60945
|
+
|
60946
|
+
// load the styles
|
60947
|
+
var content = __webpack_require__(241);
|
60948
|
+
if(typeof content === 'string') content = [[module.i, content, '']];
|
60949
|
+
if(content.locals) module.exports = content.locals;
|
60950
|
+
// add the styles to the DOM
|
60951
|
+
var update = __webpack_require__(4)("8cb68ec0", content, false, {});
|
60952
|
+
// Hot Module Replacement
|
60953
|
+
if(false) {
|
60954
|
+
// When the styles change, update the <style> tags
|
60955
|
+
if(!content.locals) {
|
60956
|
+
module.hot.accept("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-9b994c06\",\"scoped\":true,\"hasInlineConfig\":true}!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./stories.vue", function() {
|
60957
|
+
var newContent = require("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-9b994c06\",\"scoped\":true,\"hasInlineConfig\":true}!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./stories.vue");
|
60958
|
+
if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
|
60959
|
+
update(newContent);
|
60960
|
+
});
|
60961
|
+
}
|
60962
|
+
// When the module is disposed, remove the <style> tags
|
60963
|
+
module.hot.dispose(function() { update(); });
|
60964
|
+
}
|
60965
|
+
|
60742
60966
|
/***/ })
|
60743
60967
|
/******/ ]);
|
data/lib/ilog/config/routes.rb
CHANGED
@@ -5,7 +5,8 @@
|
|
5
5
|
# get '/hello', to: ->(env) { [200, {}, ['Hello from Hanami!']] }
|
6
6
|
|
7
7
|
get '/:domain/index', to: 'index#index'
|
8
|
-
get '/:domain
|
8
|
+
get '/:domain/:id/find', to: 'index#index'
|
9
|
+
get '/:domain/:id/:asset', to: 'asset#display'
|
9
10
|
get '/:domain/(:id)', to: 'index#digital'
|
10
11
|
get '/:domain/post', to: 'post#show'
|
11
12
|
get '/:domain/index/vue', to: 'index#vue'
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'mime/types/full'
|
2
|
+
|
3
|
+
module Ilog
|
4
|
+
module Controllers
|
5
|
+
module Asset
|
6
|
+
class Display
|
7
|
+
include Ilog::Action
|
8
|
+
include Ilog::Controllers::Helpers
|
9
|
+
def call(params)
|
10
|
+
set_database params[:domain]
|
11
|
+
post = ::Post.find(params[:id])
|
12
|
+
post.namespace = get_database params[:domain]
|
13
|
+
file = post.get_asset(params)
|
14
|
+
puts file.to_s
|
15
|
+
self.headers.merge!({ 'Content-Type' => MIME::Types.type_for(file.path).first.content_type })
|
16
|
+
self.body = file
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -11,7 +11,7 @@ module Ilog
|
|
11
11
|
req = request.env['HTTP_ACCEPT']
|
12
12
|
if req.include? 'application/json'
|
13
13
|
post = ::Post.find(params[:id])
|
14
|
-
Post.namespace =
|
14
|
+
Post.namespace = set_database params[:domain]
|
15
15
|
self.format = :json
|
16
16
|
self.body = post.to_json(:include => ::Post::DIMENSIONS + ::Post::GROUPINGS, :methods => [:content])
|
17
17
|
else
|
@@ -2,14 +2,11 @@ module Ilog
|
|
2
2
|
module Controllers
|
3
3
|
module Helpers
|
4
4
|
def set_database path
|
5
|
-
puts 'sbs ' + path
|
6
5
|
tmp_config = ActiveRecord::Base.connection_config
|
7
6
|
tmp_config[:database] = get_database path
|
8
7
|
ActiveRecord::Base.establish_connection tmp_config
|
9
8
|
end
|
10
9
|
def get_database path
|
11
|
-
puts 'dbs ' + path
|
12
|
-
puts 'result is = ' + Ilog.configuration.namespaces[get_namespace path]
|
13
10
|
Ilog.configuration.namespaces[get_namespace path]
|
14
11
|
end
|
15
12
|
def get_namespace path
|
@@ -9,15 +9,19 @@ module Ilog
|
|
9
9
|
expose :namespace, :vue_config
|
10
10
|
def call(params)
|
11
11
|
set_database params[:domain]
|
12
|
+
|
13
|
+
# variable set for front-end vue
|
12
14
|
@vue_config = Ilog.configuration
|
15
|
+
|
16
|
+
# rest of action
|
13
17
|
@namespace = get_namespace params[:domain]
|
14
18
|
req = request.env['HTTP_ACCEPT']
|
15
19
|
|
16
20
|
if req.include? 'application/json'
|
17
21
|
post = ::Post.find(params[:id])
|
18
|
-
post.namespace =
|
22
|
+
post.namespace = get_database params[:domain]
|
19
23
|
self.format = :json
|
20
|
-
self.body = post.to_json(:include => ::Post::DIMENSIONS + ::Post::GROUPINGS, :methods => [:content])
|
24
|
+
self.body = post.to_json(:include => ::Post::DIMENSIONS.force_encoding(Encoding::UTF_8) + ::Post::GROUPINGS.force_encoding(Encoding::UTF_8), :methods => [:content].force_encoding(Encoding::UTF_8))
|
21
25
|
end
|
22
26
|
end
|
23
27
|
end
|
@@ -34,10 +34,10 @@ module Ilog
|
|
34
34
|
items_selected = timestamps.slice( GN * @page.to_i, GN )
|
35
35
|
items_selected.each_with_index do |item, index|
|
36
36
|
piece = Object.const_get(item.timestampable_type.capitalize).find(item.timestampable_id)
|
37
|
-
data[index] = JSON.parse(piece.to_json(:include => ['title', 'slug', 'timestamp', 'peoples', 'keywords'], :methods => [:kind, :uniq]))
|
37
|
+
data[index] = JSON.parse(piece.to_json(:include => ['title', 'slug', 'timestamp', 'peoples', 'keywords', 'thumbnail'], :methods => [:kind, :uniq]))
|
38
38
|
if (item.id == timestamp.id)
|
39
39
|
post = Object.const_get(timestamp.timestampable_type.capitalize).find(timestamp.timestampable_id)
|
40
|
-
post.namespace =
|
40
|
+
post.namespace = get_database params[:domain]
|
41
41
|
data[index][:content] = post.content
|
42
42
|
data[index][:view] = 'post_body'
|
43
43
|
end
|
@@ -47,8 +47,15 @@ module Ilog
|
|
47
47
|
'posts' => 0,
|
48
48
|
'stuffs' => 0
|
49
49
|
}
|
50
|
+
|
51
|
+
@stories = {}
|
52
|
+
stories_timestamps = ::Dimensions::Timestamp.where(timestampable_type: 'Story', publish: (Time.now - 24.hours)..Time.now)
|
53
|
+
stories_timestamps.each_with_index do |item, index|
|
54
|
+
@stories[index] = Object.const_get(item.timestampable_type.capitalize).find(item.timestampable_id)
|
55
|
+
end
|
56
|
+
|
50
57
|
self.format = :json
|
51
|
-
self.body = {:items => paginate(timestamps.count, params, data), :count => @count}.to_json
|
58
|
+
self.body = {:items => paginate(timestamps.count, params, data), :count => @count, :stories => @stories}.to_json
|
52
59
|
end
|
53
60
|
|
54
61
|
def initialize
|
data/lib/ilog/version.rb
CHANGED
data/src/vue/Ilog.vue
CHANGED
@@ -12,6 +12,7 @@
|
|
12
12
|
<header>
|
13
13
|
<profile class="lg-no"></profile>
|
14
14
|
<!-- <tunekit></tunekit> -->
|
15
|
+
<!-- <stories></stories> -->
|
15
16
|
<span v-if="title" v-html="title" class="title"></span>
|
16
17
|
<nav v-if="page.prev" class>
|
17
18
|
<span class="status" v-if="loading">{{ loading }}</span>
|
@@ -62,6 +63,7 @@ import app from './configs/app.js'
|
|
62
63
|
import Profile from './elements/Profile'
|
63
64
|
import Tunekit from './elements/Tunekit'
|
64
65
|
import Item from './components/Item'
|
66
|
+
import Stories from './elements/stories'
|
65
67
|
|
66
68
|
var _ = require('underscore')
|
67
69
|
var moment = require('moment')
|
@@ -71,7 +73,8 @@ export default {
|
|
71
73
|
components: {
|
72
74
|
Profile,
|
73
75
|
Tunekit,
|
74
|
-
Item
|
76
|
+
Item,
|
77
|
+
Stories,
|
75
78
|
},
|
76
79
|
data () {
|
77
80
|
return {
|
@@ -6,7 +6,7 @@
|
|
6
6
|
</template>
|
7
7
|
<h1 v-html="content.title.value" v-on:click="$emit('closePost')"></h1>
|
8
8
|
</header>
|
9
|
-
<div class="text" v-html="content.content">
|
9
|
+
<div class="text article" v-html="content.content">
|
10
10
|
</div>
|
11
11
|
<footer class="container">
|
12
12
|
<div class="columns col-gapless">
|
@@ -77,7 +77,7 @@ export default {
|
|
77
77
|
},
|
78
78
|
thumbnail() {
|
79
79
|
if (typeof this.content.thumbnail !== 'undefined') {
|
80
|
-
return this.url() + this.content.thumbnail.
|
80
|
+
return this.url() + this.content.thumbnail.name
|
81
81
|
} else {
|
82
82
|
return 'undefined'
|
83
83
|
}
|
@@ -0,0 +1,70 @@
|
|
1
|
+
<template>
|
2
|
+
|
3
|
+
<div class="stories">
|
4
|
+
<div class="modal active" id="modal-id">
|
5
|
+
<a href="#close" class="modal-overlay" aria-label="Close"></a>
|
6
|
+
<div class="modal-container">
|
7
|
+
<div class="modal-header">
|
8
|
+
<a href="#close" class="btn btn-clear float-right" aria-label="Close"></a>
|
9
|
+
<div class="modal-title h5">Modal title</div>
|
10
|
+
</div>
|
11
|
+
<div class="modal-body">
|
12
|
+
<div class="content">
|
13
|
+
<!-- content here -->
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
<div class="modal-footer">
|
17
|
+
...
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
|
23
|
+
</template>
|
24
|
+
|
25
|
+
<script>
|
26
|
+
|
27
|
+
import app from '../configs/app'
|
28
|
+
|
29
|
+
export default {
|
30
|
+
name: 'Stories',
|
31
|
+
components: {
|
32
|
+
},
|
33
|
+
data () {
|
34
|
+
return {
|
35
|
+
tag: {},
|
36
|
+
tags: [],
|
37
|
+
}
|
38
|
+
},
|
39
|
+
methods: {
|
40
|
+
onSubmit () {
|
41
|
+
this.$router.push({ name: 'tag', params: { id: this.tag.id } })
|
42
|
+
},
|
43
|
+
},
|
44
|
+
created() {
|
45
|
+
let self = this
|
46
|
+
this.$http.get(app.host + '/modules/tags/')
|
47
|
+
.then(function(response){
|
48
|
+
self.tags = response.data
|
49
|
+
});
|
50
|
+
this.dashboard_1 = Window.Config.dasbhoard_1
|
51
|
+
this.dashboard_2 = Window.Config.dasbhoard_2
|
52
|
+
},
|
53
|
+
filters: {
|
54
|
+
capitalize: function(text) {
|
55
|
+
return text[0].toUpperCase() + text.slice(1);
|
56
|
+
},
|
57
|
+
fromNow: function(date) {
|
58
|
+
return moment(date).fromNow();
|
59
|
+
}
|
60
|
+
},
|
61
|
+
watch: {
|
62
|
+
}
|
63
|
+
}
|
64
|
+
</script>
|
65
|
+
|
66
|
+
<style scoped>
|
67
|
+
.tag {
|
68
|
+
float: left;
|
69
|
+
}
|
70
|
+
</style>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ilog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- captainhusaynpinguin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-02-
|
11
|
+
date: 2020-02-26 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Providing a digital log implementation of traditional paper baed logs.
|
14
14
|
email:
|
@@ -35,6 +35,7 @@ files:
|
|
35
35
|
- lib/ilog/config/routes.rb
|
36
36
|
- lib/ilog/configuration.rb
|
37
37
|
- lib/ilog/controllers/.gitkeep
|
38
|
+
- lib/ilog/controllers/asset/display.rb
|
38
39
|
- lib/ilog/controllers/digital/show.rb
|
39
40
|
- lib/ilog/controllers/digital/tags.rb
|
40
41
|
- lib/ilog/controllers/helpers.rb
|
@@ -45,6 +46,7 @@ files:
|
|
45
46
|
- lib/ilog/controllers/post/post.rb
|
46
47
|
- lib/ilog/models/item.rb
|
47
48
|
- lib/ilog/models/post.rb
|
49
|
+
- lib/ilog/models/story.rb
|
48
50
|
- lib/ilog/models/stuff.rb
|
49
51
|
- lib/ilog/templates/application.html.erb
|
50
52
|
- lib/ilog/templates/digital/show.html.erb
|
@@ -99,6 +101,7 @@ files:
|
|
99
101
|
- src/vue/elements/People.vue
|
100
102
|
- src/vue/elements/Profile.vue
|
101
103
|
- src/vue/elements/Tunekit.vue
|
104
|
+
- src/vue/elements/stories.vue
|
102
105
|
- src/vue/index.js
|
103
106
|
- src/vue/router.js
|
104
107
|
- src/vue/views/.DS_Store
|