lesli_babel 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/lesli_babel/application.js +5 -5
- data/app/assets/stylesheets/lesli_babel/application.scss +2 -1
- data/app/assets/stylesheets/lesli_babel/dashboards.scss +1 -1
- data/app/controllers/lesli_babel/buckets_controller.rb +1 -7
- data/app/controllers/lesli_babel/modules_controller.rb +23 -17
- data/app/controllers/lesli_babel/strings_controller.rb +10 -10
- data/app/models/lesli_babel/string.rb +24 -6
- data/app/services/lesli_babel/string_service.rb +4 -1
- data/app/views/lesli_babel/partials/_engine-sidebar.html.erb +9 -11
- data/config/routes.rb +15 -14
- data/lib/lesli_babel/version.rb +2 -1
- data/lib/vue/apps/modules/show.vue +2 -7
- data/lib/vue/components/form-string-new.vue +50 -62
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '08d41672e5e0b5ebae2de590929c6a005471b0d4568e64f8f8c9230ed36c5cab'
|
4
|
+
data.tar.gz: 607a0d689d3439bfc6ed270ef3b9cc3894c03fab9906ce9f32e3527a8c0d565b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c618e42944895bddf42a43b4fe3868ef65fe045d47b9b0f1413ee036ecfd53f54e4bcf994ba2d2558aa7bb45fe3fcdda4872e16b31f1e5713261182ab77e65d4
|
7
|
+
data.tar.gz: b09ca4c9fa95fcb08957039021f3ee883e23cdd4efe7acb2d838cbe4c4a28eb19dd72fc7f97c11375871a0c0accfb98360c84a1c86367d16baa604a6d0c2a180
|
@@ -291,7 +291,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
291
291
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
292
292
|
|
293
293
|
"use strict";
|
294
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n/* harmony import */ var LesliBabel_stores_strings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! LesliBabel/stores/strings */ \"../LesliBabel/lib/vue/stores/strings.js\");\n/* harmony import */ var LesliBabel_stores_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! LesliBabel/stores/module */ \"../LesliBabel/lib/vue/stores/module.js\");\n\n\n// · \n\n\n\n// · implement stores\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __name: 'form-string-new',\n props: {\n moduleId: {\n type: Number,\n require: true\n }\n },\n setup(__props, _ref) {\n let {\n expose: __expose\n } = _ref;\n __expose();\n const props = __props;\n\n /*\n Copyright (c)
|
294
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n/* harmony import */ var LesliBabel_stores_strings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! LesliBabel/stores/strings */ \"../LesliBabel/lib/vue/stores/strings.js\");\n/* harmony import */ var LesliBabel_stores_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! LesliBabel/stores/module */ \"../LesliBabel/lib/vue/stores/module.js\");\n\n\n// · \n\n\n\n// · implement stores\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __name: 'form-string-new',\n props: {\n moduleId: {\n type: Number,\n require: true\n }\n },\n setup(__props, _ref) {\n let {\n expose: __expose\n } = _ref;\n __expose();\n const props = __props;\n\n /*\n \n Lesli\n \n Copyright (c) 2023, Lesli Technologies, S. A.\n \n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n \n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n \n You should have received a copy of the GNU General Public License\n along with this program. If not, see http://www.gnu.org/licenses/.\n \n Lesli · Ruby on Rails SaaS Development Framework.\n \n Made with ♥ by https://www.lesli.tech\n Building a better future, one line of code at a time.\n \n @contact hello@lesli.tech\n @website https://www.lesli.tech\n @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n \n // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n // · \n */\n\n // · import vue tools\n const storeModule = (0,LesliBabel_stores_module__WEBPACK_IMPORTED_MODULE_2__.useModule)();\n const storeString = (0,LesliBabel_stores_strings__WEBPACK_IMPORTED_MODULE_1__.useStrings)();\n\n // · \n\n // · \n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(() => {});\n\n // · \n const bucket = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)('');\n const prefix = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)('');\n const string = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)('');\n\n // · \n const prefixes = [{\n label: \"column\",\n value: \"column\"\n }, {\n label: \"message\",\n value: \"message\"\n }, {\n label: \"navigation\",\n value: \"navigation\"\n }, {\n label: \"error\",\n value: \"error\"\n }, {\n label: \"button\",\n value: \"button\"\n }, {\n label: \"chart\",\n value: \"chart\"\n }, {\n label: \"tab_title\",\n value: \"tab_title\"\n }, {\n label: \"table_action\",\n value: \"table_action\"\n }, {\n label: \"table_header\",\n value: \"table_header\"\n }, {\n label: \"title\",\n value: \"title\"\n }, {\n label: \"toolbar\",\n value: \"toolbar\"\n }, {\n label: \"view\",\n value: \"view\"\n }, {\n label: \"view_text\",\n value: \"view_text\"\n }, {\n label: \"view_placeholder\",\n value: \"view_placeholder\"\n }];\n function postString() {\n storeString.post({\n bucket_id: bucket.value,\n context: '',\n label: prefix.value + \"_\" + string.value\n });\n string.value = '';\n }\n const __returned__ = {\n storeModule,\n storeString,\n props,\n bucket,\n prefix,\n string,\n prefixes,\n postString,\n ref: vue__WEBPACK_IMPORTED_MODULE_0__.ref,\n reactive: vue__WEBPACK_IMPORTED_MODULE_0__.reactive,\n onMounted: vue__WEBPACK_IMPORTED_MODULE_0__.onMounted,\n watch: vue__WEBPACK_IMPORTED_MODULE_0__.watch,\n computed: vue__WEBPACK_IMPORTED_MODULE_0__.computed,\n onUnmounted: vue__WEBPACK_IMPORTED_MODULE_0__.onUnmounted,\n get useStrings() {\n return LesliBabel_stores_strings__WEBPACK_IMPORTED_MODULE_1__.useStrings;\n },\n get useModule() {\n return LesliBabel_stores_module__WEBPACK_IMPORTED_MODULE_2__.useModule;\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://lesli/../LesliBabel/lib/vue/components/form-string-new.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-11.use!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
|
295
295
|
|
296
296
|
/***/ }),
|
297
297
|
|
@@ -643,7 +643,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
643
643
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
644
644
|
|
645
645
|
"use strict";
|
646
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"engines\"\n};\nconst _hoisted_2 = {\n class: \"
|
646
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"engines-container\"\n};\nconst _hoisted_2 = {\n class: \"engines\"\n};\nconst _hoisted_3 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"button is-hidden-tablet\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"icon\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", {\n class: \"ri-close-line\"\n})]), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", null, \"close\")], -1 /* HOISTED */);\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Transition, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [$setup.storeLayout.showEngines ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"section\", {\n key: 0,\n class: \"lesli-application-engines\",\n onClick: _cache[0] || (_cache[0] = $event => $setup.storeLayout.toggleEngines())\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\")]), _hoisted_3])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]),\n _: 3 /* FORWARDED */\n });\n}\n\n//# sourceURL=webpack://lesli/./lib/vue/layouts/application-engines.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-11.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
|
647
647
|
|
648
648
|
/***/ }),
|
649
649
|
|
@@ -676,7 +676,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
676
676
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
677
677
|
|
678
678
|
"use strict";
|
679
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\
|
679
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_lesli_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-button\");\n const _component_lesli_header = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-header\");\n const _component_lesli_toolbar = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-toolbar\");\n const _component_lesli_panel = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-panel\");\n const _component_lesli_application_container = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-application-container\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_lesli_application_container, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_lesli_header, {\n title: $setup.storeModule.name\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"componentActions\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_lesli_button, {\n solid: \"\",\n icon: \"add\",\n onClick: _cache[0] || (_cache[0] = $event => $setup.storeStrings.showPanel = true)\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" add new string \")]),\n _: 1 /* STABLE */\n })]),\n\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"title\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_lesli_toolbar, {\n onSearch: $setup.search\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"formLabelEditor\"], {\n module: $setup.getModule()\n }, null, 8 /* PROPS */, [\"module\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_lesli_panel, {\n open: $setup.storeStrings.showPanel,\n \"onUpdate:open\": _cache[1] || (_cache[1] = $event => $setup.storeStrings.showPanel = $event)\n }, {\n header: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Add new string to translate \")]),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [$setup.storeModule.id ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup[\"formStringNew\"], {\n key: 0,\n \"module-id\": $setup.storeModule.id\n }, null, 8 /* PROPS */, [\"module-id\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"open\"])]),\n _: 1 /* STABLE */\n });\n}\n\n//# sourceURL=webpack://lesli/../LesliBabel/lib/vue/apps/modules/show.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-11.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
|
680
680
|
|
681
681
|
/***/ }),
|
682
682
|
|
@@ -731,7 +731,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
731
731
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
732
732
|
|
733
733
|
"use strict";
|
734
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _hoisted_1 =
|
734
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"card-content\"\n};\nconst _hoisted_2 = {\n class: \"field\"\n};\nconst _hoisted_3 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n class: \"label\"\n}, \"Bucket\", -1 /* HOISTED */);\nconst _hoisted_4 = {\n class: \"control\"\n};\nconst _hoisted_5 = {\n class: \"field\"\n};\nconst _hoisted_6 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n class: \"label\"\n}, \"Prefix\", -1 /* HOISTED */);\nconst _hoisted_7 = {\n class: \"control\"\n};\nconst _hoisted_8 = {\n class: \"field\"\n};\nconst _hoisted_9 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n class: \"label\"\n}, \"Label\", -1 /* HOISTED */);\nconst _hoisted_10 = {\n class: \"control\"\n};\nconst _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: \"control\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n class: \"button is-primary\",\n type: \"submit\",\n value: \"Save\"\n})], -1 /* HOISTED */);\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_lesli_select = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-select\");\n const _component_lesli_form = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-form\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_lesli_form, {\n onSubmit: $setup.postString\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [_hoisted_3, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_lesli_select, {\n modelValue: $setup.bucket,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.bucket = $event),\n options: $setup.storeModule.buckets.map(b => {\n return {\n value: b.id,\n label: b.name\n };\n })\n }, null, 8 /* PROPS */, [\"modelValue\", \"options\"])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_5, [_hoisted_6, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_lesli_select, {\n modelValue: $setup.prefix,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.prefix = $event),\n options: $setup.prefixes\n }, null, 8 /* PROPS */, [\"modelValue\"])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_8, [_hoisted_9, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_10, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n required: \"\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.string = $event),\n class: \"input\",\n type: \"text\",\n placeholder: \"Add label to translation workflow\"\n }, null, 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.string]])])]), _hoisted_11])]),\n _: 1 /* STABLE */\n });\n}\n\n//# sourceURL=webpack://lesli/../LesliBabel/lib/vue/components/form-string-new.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-11.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
|
735
735
|
|
736
736
|
/***/ }),
|
737
737
|
|
@@ -764,7 +764,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
764
764
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
765
765
|
|
766
766
|
"use strict";
|
767
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"material-icons\"\n};\nconst _hoisted_2 = {\n key: 1\n};\nconst _hoisted_3 = {\n class: \"material-icons\"\n};\nconst _hoisted_4 = {\n key: 1\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_router_link = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"router-link\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [$setup.props.to ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_router_link, {\n key: 0,\n to: $props.to.toString(),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['button', 'is-link', 'is-light', $setup.buttonColor, {\n 'is-outlined': !$props.solid\n }, {\n 'is-loading': $props.loading\n }, {\n 'is-small': $props.small\n }])\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [$props.icon ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", {\n key: 0,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['icon', {\n 'is-small': $props.small\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_1, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.icon), 1 /* TEXT */)], 2 /* CLASS */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), !$props.iconOnly ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\")])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]),\n _: 3 /* FORWARDED */\n }, 8 /* PROPS */, [\"to\", \"class\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), !$setup.props.to ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"button\", {\n key: 1,\n onClick: _cache[0] || (_cache[0] = $event => $setup.emit('click')),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['button', 'is-link', 'is-light'
|
767
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"material-icons\"\n};\nconst _hoisted_2 = {\n key: 1\n};\nconst _hoisted_3 = {\n class: \"material-icons\"\n};\nconst _hoisted_4 = {\n key: 1\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_router_link = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"router-link\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [$setup.props.to ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_router_link, {\n key: 0,\n to: $props.to.toString(),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['button', 'is-link', 'is-light', $setup.buttonColor, {\n 'is-outlined': !$props.solid\n }, {\n 'is-loading': $props.loading\n }, {\n 'is-small': $props.small\n }])\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [$props.icon ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", {\n key: 0,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['icon', {\n 'is-small': $props.small\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_1, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.icon), 1 /* TEXT */)], 2 /* CLASS */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), !$props.iconOnly ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\")])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]),\n _: 3 /* FORWARDED */\n }, 8 /* PROPS */, [\"to\", \"class\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), !$setup.props.to ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"button\", {\n key: 1,\n onClick: _cache[0] || (_cache[0] = $event => $setup.emit('click')),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['button', 'is-link', $setup.buttonColor, {\n 'is-light': !$props.solid\n }, {\n 'is-outlined': !$props.solid\n }, {\n 'is-loading': $props.loading\n }, {\n 'is-small': $props.small\n }])\n }, [$props.icon ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", {\n key: 0,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['icon', {\n 'is-small': $props.small\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_3, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.icon), 1 /* TEXT */)], 2 /* CLASS */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), !$props.iconOnly ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\")])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)], 2 /* CLASS */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)], 64 /* STABLE_FRAGMENT */);\n}\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-vue/source/elements/button/Button.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-11.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
|
768
768
|
|
769
769
|
/***/ }),
|
770
770
|
|
@@ -1,15 +1,9 @@
|
|
1
|
-
|
1
|
+
|
2
2
|
|
3
3
|
module LesliBabel
|
4
4
|
class BucketsController < ApplicationController
|
5
5
|
before_action :set_bucket, only: [:show, :edit, :update, :destroy]
|
6
6
|
|
7
|
-
def privileges
|
8
|
-
{
|
9
|
-
index: []
|
10
|
-
}
|
11
|
-
end
|
12
|
-
|
13
7
|
# GET /buckets
|
14
8
|
def index
|
15
9
|
respond_to do |format|
|
@@ -1,33 +1,39 @@
|
|
1
1
|
=begin
|
2
2
|
|
3
|
-
|
3
|
+
Lesli
|
4
4
|
|
5
|
-
|
6
|
-
industrial property, intellectual property, copyright and relative international laws.
|
7
|
-
All intellectual or industrial property rights of the code, texts, trade mark, design,
|
8
|
-
pictures and any other information belongs to the owner of this platform.
|
5
|
+
Copyright (c) 2023, Lesli Technologies, S. A.
|
9
6
|
|
10
|
-
|
11
|
-
|
7
|
+
This program is free software: you can redistribute it and/or modify
|
8
|
+
it under the terms of the GNU General Public License as published by
|
9
|
+
the Free Software Foundation, either version 3 of the License, or
|
10
|
+
(at your option) any later version.
|
12
11
|
|
13
|
-
|
12
|
+
This program is distributed in the hope that it will be useful,
|
13
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
GNU General Public License for more details.
|
14
16
|
|
15
|
-
|
17
|
+
You should have received a copy of the GNU General Public License
|
18
|
+
along with this program. If not, see http://www.gnu.org/licenses/.
|
19
|
+
|
20
|
+
Lesli · Ruby on Rails SaaS Development Framework.
|
21
|
+
|
22
|
+
Made with ♥ by https://www.lesli.tech
|
23
|
+
Building a better future, one line of code at a time.
|
24
|
+
|
25
|
+
@contact hello@lesli.tech
|
26
|
+
@website https://www.lesli.tech
|
27
|
+
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
28
|
+
|
29
|
+
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
16
30
|
// ·
|
17
31
|
=end
|
18
32
|
|
19
|
-
require_dependency "cloud_babel/application_controller"
|
20
|
-
|
21
33
|
module LesliBabel
|
22
34
|
class ModulesController < ApplicationController
|
23
35
|
before_action :set_module, only: [:show, :edit, :update, :destroy]
|
24
36
|
|
25
|
-
def privileges
|
26
|
-
{
|
27
|
-
show: ['CloudBabel::StringsController#index']
|
28
|
-
}
|
29
|
-
end
|
30
|
-
|
31
37
|
# GET /modules
|
32
38
|
def index
|
33
39
|
respond_to do |format|
|
@@ -29,13 +29,16 @@ module LesliBabel
|
|
29
29
|
# POST /strings
|
30
30
|
def create
|
31
31
|
|
32
|
-
if String.find_by(
|
32
|
+
if String.find_by(
|
33
|
+
label: string_params[:label],
|
34
|
+
bucket_id: string_params[:cloud_babel_buckets_id]
|
35
|
+
)
|
33
36
|
return respond_with_error("Duplicated string")
|
34
37
|
end
|
35
|
-
|
38
|
+
|
36
39
|
string = String.new(string_params)
|
37
40
|
if string.save
|
38
|
-
String.log_activity_create(current_user, string)
|
41
|
+
#String.log_activity_create(current_user, string)
|
39
42
|
respond_with_successful(string)
|
40
43
|
else
|
41
44
|
respond_with_error("Error on create translation string", string.errors)
|
@@ -65,7 +68,7 @@ module LesliBabel
|
|
65
68
|
|
66
69
|
end
|
67
70
|
|
68
|
-
|
71
|
+
Lesli.config.locales.keys.each do |locale|
|
69
72
|
|
70
73
|
# if translation changed
|
71
74
|
if @string[locale] != string_params[locale]
|
@@ -81,7 +84,7 @@ module LesliBabel
|
|
81
84
|
|
82
85
|
# We store the new attributes and compare the activities
|
83
86
|
new_attributes = @string.attributes
|
84
|
-
String.log_activity_update(current_user, @string, old_attributes, new_attributes)
|
87
|
+
#String.log_activity_update(current_user, @string, old_attributes, new_attributes)
|
85
88
|
|
86
89
|
respond_with_successful(@string)
|
87
90
|
else
|
@@ -130,11 +133,8 @@ module LesliBabel
|
|
130
133
|
:label,
|
131
134
|
:status,
|
132
135
|
:context,
|
133
|
-
:
|
134
|
-
|
135
|
-
:need_translation,
|
136
|
-
:cloud_babel_buckets_id,
|
137
|
-
Rails.application.config.lesli_settings["configuration"]["locales"]
|
136
|
+
:bucket_id,
|
137
|
+
Lesli.config.locales.keys
|
138
138
|
)
|
139
139
|
end
|
140
140
|
|
@@ -1,9 +1,31 @@
|
|
1
1
|
module LesliBabel
|
2
2
|
class String < ApplicationRecord
|
3
|
-
belongs_to :user
|
4
3
|
belongs_to :bucket
|
5
4
|
|
6
5
|
before_create :clean_label_string
|
6
|
+
=begin
|
7
|
+
enum prefix: {
|
8
|
+
# database
|
9
|
+
# controllers
|
10
|
+
# models
|
11
|
+
# views
|
12
|
+
# components
|
13
|
+
# elements
|
14
|
+
|
15
|
+
column
|
16
|
+
enum
|
17
|
+
|
18
|
+
message
|
19
|
+
|
20
|
+
navigation
|
21
|
+
toolbar
|
22
|
+
|
23
|
+
button
|
24
|
+
chart
|
25
|
+
title
|
26
|
+
form
|
27
|
+
}
|
28
|
+
=end
|
7
29
|
|
8
30
|
def self.index(current_user, query, params)
|
9
31
|
|
@@ -215,11 +237,7 @@ module LesliBabel
|
|
215
237
|
.gsub(/\s+/, '_') # replace spaces or spaces with single dash
|
216
238
|
|
217
239
|
self.status = "normal" if self.status.blank?
|
218
|
-
self.
|
219
|
-
|
220
|
-
self.reference_module_bucket = "#{self.bucket.reference_module}-#{self.bucket.name}"
|
221
|
-
|
240
|
+
self.reference_bucket = "#{self.bucket.reference_module}-#{self.bucket.name}"
|
222
241
|
end
|
223
|
-
|
224
242
|
end
|
225
243
|
end
|
@@ -23,7 +23,8 @@ module LesliBabel
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def index params
|
26
|
-
|
26
|
+
|
27
|
+
strings = self.list(params[:module]).select(
|
27
28
|
:id,
|
28
29
|
:label,
|
29
30
|
:status,
|
@@ -37,6 +38,8 @@ module LesliBabel
|
|
37
38
|
"'' as path"
|
38
39
|
)
|
39
40
|
|
41
|
+
#strings = strings.where()
|
42
|
+
|
40
43
|
strings = strings
|
41
44
|
.page(query[:pagination][:page])
|
42
45
|
.per(query[:pagination][:perPage])
|
@@ -32,14 +32,12 @@ Building a better future, one line of code at a time.
|
|
32
32
|
=end
|
33
33
|
%>
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
<%= navigation_item(
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
<%= navigation_item(lesli_babel.dashboard_path, "Team", "ri-folder-settings-line"); %>
|
45
|
-
<%= navigation_item(lesli_babel.dashboard_path, "Notes", "ri-folder-settings-line"); %>
|
35
|
+
|
36
|
+
<p class="menu-label">Modules</p>
|
37
|
+
<% LesliBabel::Module.all.order(:platform, :name).each do |engine| %>
|
38
|
+
<%= navigation_item(
|
39
|
+
lesli_babel.modules_path + "/" + engine.id.to_s,
|
40
|
+
engine.name.titleize,
|
41
|
+
"ri-folder-settings-line"
|
42
|
+
); %>
|
43
|
+
<% end %>
|
data/config/routes.rb
CHANGED
@@ -35,16 +35,10 @@ LesliBabel::Engine.routes.draw do
|
|
35
35
|
root to: "dashboards#show"
|
36
36
|
resource :dashboard
|
37
37
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
collection do
|
43
|
-
get :stats
|
44
|
-
get :locales
|
45
|
-
get :relevant
|
46
|
-
end
|
47
|
-
end
|
38
|
+
# working with modules
|
39
|
+
resources :modules, only: [:index, :show, :new, :create, :edit] do
|
40
|
+
resources :buckets, only: [:index]
|
41
|
+
end
|
48
42
|
|
49
43
|
# working with translations
|
50
44
|
resources :translations, only: [:index] do
|
@@ -56,8 +50,15 @@ LesliBabel::Engine.routes.draw do
|
|
56
50
|
end
|
57
51
|
end
|
58
52
|
|
59
|
-
#
|
60
|
-
resources :
|
61
|
-
|
62
|
-
|
53
|
+
# relevant strings
|
54
|
+
resources :relevants, only: [:index]
|
55
|
+
|
56
|
+
# working with strings
|
57
|
+
resources :strings, only: [:index, :create, :update] do
|
58
|
+
collection do
|
59
|
+
get :stats
|
60
|
+
get :locales
|
61
|
+
get :relevant
|
62
|
+
end
|
63
|
+
end
|
63
64
|
end
|
data/lib/lesli_babel/version.rb
CHANGED
@@ -65,7 +65,7 @@ watch(() => route.params.id, () => {
|
|
65
65
|
|
66
66
|
</script>
|
67
67
|
<template>
|
68
|
-
<
|
68
|
+
<lesli-application-container>
|
69
69
|
<lesli-header :title="storeModule.name">
|
70
70
|
<component-actions></component-actions>
|
71
71
|
<lesli-button solid icon="add" @click="storeStrings.showPanel = true">
|
@@ -81,11 +81,6 @@ watch(() => route.params.id, () => {
|
|
81
81
|
|
82
82
|
<lesli-panel v-model:open="storeStrings.showPanel">
|
83
83
|
<template #header>
|
84
|
-
<span class="icon">
|
85
|
-
<span class="material-icons">
|
86
|
-
translate
|
87
|
-
</span>
|
88
|
-
</span>
|
89
84
|
Add new string to translate
|
90
85
|
</template>
|
91
86
|
<template #default>
|
@@ -93,5 +88,5 @@ watch(() => route.params.id, () => {
|
|
93
88
|
</formStringNew>
|
94
89
|
</template>
|
95
90
|
</lesli-panel>
|
96
|
-
</
|
91
|
+
</lesli-application-container>
|
97
92
|
</template>
|
@@ -1,18 +1,33 @@
|
|
1
1
|
<script setup>
|
2
2
|
/*
|
3
|
-
Copyright (c) 2022, all rights reserved.
|
4
3
|
|
5
|
-
|
6
|
-
industrial property, intellectual property, copyright and relative international laws.
|
7
|
-
All intellectual or industrial property rights of the code, texts, trade mark, design,
|
8
|
-
pictures and any other information belongs to the owner of this platform.
|
4
|
+
Lesli
|
9
5
|
|
10
|
-
|
11
|
-
transmission, publication is strictly forbidden.
|
6
|
+
Copyright (c) 2023, Lesli Technologies, S. A.
|
12
7
|
|
13
|
-
|
8
|
+
This program is free software: you can redistribute it and/or modify
|
9
|
+
it under the terms of the GNU General Public License as published by
|
10
|
+
the Free Software Foundation, either version 3 of the License, or
|
11
|
+
(at your option) any later version.
|
14
12
|
|
15
|
-
|
13
|
+
This program is distributed in the hope that it will be useful,
|
14
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
GNU General Public License for more details.
|
17
|
+
|
18
|
+
You should have received a copy of the GNU General Public License
|
19
|
+
along with this program. If not, see http://www.gnu.org/licenses/.
|
20
|
+
|
21
|
+
Lesli · Ruby on Rails SaaS Development Framework.
|
22
|
+
|
23
|
+
Made with ♥ by https://www.lesli.tech
|
24
|
+
Building a better future, one line of code at a time.
|
25
|
+
|
26
|
+
@contact hello@lesli.tech
|
27
|
+
@website https://www.lesli.tech
|
28
|
+
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
29
|
+
|
30
|
+
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
16
31
|
// ·
|
17
32
|
*/
|
18
33
|
|
@@ -54,80 +69,53 @@ const string = ref('')
|
|
54
69
|
|
55
70
|
// ·
|
56
71
|
const prefixes = [{
|
57
|
-
label: 'account_init',
|
58
|
-
value: 'account_init'
|
59
|
-
}, {
|
60
|
-
label: 'activity_description',
|
61
|
-
value: 'activity_description'
|
62
|
-
}, {
|
63
72
|
label: "column",
|
64
73
|
value: "column"
|
65
74
|
}, {
|
66
|
-
label: "
|
67
|
-
value: "
|
68
|
-
}, {
|
69
|
-
label: "mailer",
|
70
|
-
value: "mailer"
|
71
|
-
}, {
|
72
|
-
label: "messages_success",
|
73
|
-
value: "messages_success"
|
74
|
-
}, {
|
75
|
-
label: "messages_info",
|
76
|
-
value: "messages_info"
|
77
|
-
}, {
|
78
|
-
label: "messages_warning",
|
79
|
-
value: "messages_warning"
|
80
|
-
}, {
|
81
|
-
label: "messages_danger",
|
82
|
-
value: "messages_danger"
|
75
|
+
label: "message",
|
76
|
+
value: "message"
|
83
77
|
}, {
|
84
|
-
label: "
|
85
|
-
value: "
|
78
|
+
label: "navigation",
|
79
|
+
value: "navigation"
|
86
80
|
}, {
|
87
81
|
label: "error",
|
88
82
|
value: "error"
|
89
83
|
}, {
|
90
|
-
label: "
|
91
|
-
value: "
|
84
|
+
label: "button",
|
85
|
+
value: "button"
|
92
86
|
}, {
|
93
|
-
label: "
|
94
|
-
value: "
|
87
|
+
label: "chart",
|
88
|
+
value: "chart"
|
95
89
|
}, {
|
96
|
-
label: "
|
97
|
-
value: "
|
90
|
+
label: "tab_title",
|
91
|
+
value: "tab_title"
|
98
92
|
}, {
|
99
|
-
label: "
|
100
|
-
value: "
|
93
|
+
label: "table_action",
|
94
|
+
value: "table_action"
|
95
|
+
}, {
|
96
|
+
label: "table_header",
|
97
|
+
value: "table_header"
|
101
98
|
}, {
|
102
|
-
label: "
|
103
|
-
value: "
|
99
|
+
label: "title",
|
100
|
+
value: "title"
|
104
101
|
}, {
|
105
|
-
label: "
|
106
|
-
value: "
|
102
|
+
label: "toolbar",
|
103
|
+
value: "toolbar"
|
107
104
|
}, {
|
108
|
-
label: "
|
109
|
-
value: "
|
105
|
+
label: "view",
|
106
|
+
value: "view"
|
110
107
|
}, {
|
111
108
|
label: "view_text",
|
112
109
|
value: "view_text"
|
113
110
|
}, {
|
114
|
-
label: "
|
115
|
-
value: "
|
116
|
-
}, {
|
117
|
-
label: "view_toolbar_filter",
|
118
|
-
value: "view_toolbar_filter"
|
119
|
-
}, {
|
120
|
-
label: "view_toolbar_filter_placeholder",
|
121
|
-
value: "view_toolbar_filter_placeholder"
|
122
|
-
}, {
|
123
|
-
label: "view_toolbar_search_by_placeholder",
|
124
|
-
value: "view_toolbar_search_by_placeholder"
|
111
|
+
label: "view_placeholder",
|
112
|
+
value: "view_placeholder"
|
125
113
|
}]
|
126
114
|
|
127
115
|
|
128
116
|
function postString() {
|
129
117
|
storeString.post({
|
130
|
-
|
118
|
+
bucket_id: bucket.value,
|
131
119
|
context: '',
|
132
120
|
label: prefix.value + "_" + string.value
|
133
121
|
})
|
@@ -137,7 +125,7 @@ function postString() {
|
|
137
125
|
|
138
126
|
</script>
|
139
127
|
<template>
|
140
|
-
<form
|
128
|
+
<lesli-form @submit="postString">
|
141
129
|
<div class="card-content">
|
142
130
|
<div class="field">
|
143
131
|
<label class="label">Bucket</label>
|
@@ -167,5 +155,5 @@ function postString() {
|
|
167
155
|
<input class="button is-primary" type="submit" value="Save" />
|
168
156
|
</div>
|
169
157
|
</div>
|
170
|
-
</form>
|
158
|
+
</lesli-form>
|
171
159
|
</template>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lesli_babel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Lesli Development Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-10-
|
11
|
+
date: 2023-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Translation management system for the Lesli Framework
|
14
14
|
email:
|