lesli_babel 0.1.0 → 0.2.0
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.
- 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:
|