Compare commits

...

2 Commits

Author SHA1 Message Date
HerrHase 2ab1397f8e adding
2 years ago
HerrHase efd3572fa4 adding
2 years ago

5
.gitignore vendored

@ -119,4 +119,7 @@ dist
.pnp.* .pnp.*
# #
node_modules node_modules
storage/database/*
storage/database/.gitkeep

@ -1,6 +1,6 @@
{ {
"/public/js/spritemap.js": "/public/js/spritemap.js?id=2dda73ecee3bb668b395026efda6524c", "/public/js/spritemap.js": "/public/js/spritemap.js?id=2dda73ecee3bb668b395026efda6524c",
"/public/js/app.js": "/public/js/app.js?id=42bfe8fc554ce4641883c055b1d30a2c", "/public/js/app.js": "/public/js/app.js?id=3af721e60a47e6147d71c98308c2b6e1",
"/public/css/styles.css": "/public/css/styles.css?id=d8096bd2ff84ae29cb0ecf810064b218", "/public/css/styles.css": "/public/css/styles.css?id=d8096bd2ff84ae29cb0ecf810064b218",
"/public/css/demo.html": "/public/css/demo.html?id=a54a5d205e3152fb64b33dda63ffa555", "/public/css/demo.html": "/public/css/demo.html?id=a54a5d205e3152fb64b33dda63ffa555",
"/public/css/IBMPlexMono-Bold.eot": "/public/css/IBMPlexMono-Bold.eot?id=ef1fadf711db80a00542b202ab14f7ee", "/public/css/IBMPlexMono-Bold.eot": "/public/css/IBMPlexMono-Bold.eot?id=ef1fadf711db80a00542b202ab14f7ee",

@ -1,19 +1,19 @@
require('./bootstrap.js') import * as riot from 'riot'
import AppSidebar from './components/sidebar.riot' import AppSidebar from './components/sidebar.riot'
import AppTasks from './components/tasks.riot' import AppTasks from './components/tasks.riot'
import AppTaskNew from './components/task-new.riot' import AppTaskButton from './components/task-new.riot'
import AppTaskForm from './components/task-form.riot' import AppTaskForm from './components/task-form.riot'
// register components // register components
riot.register('app-sidebar', AppSidebar) riot.register('app-sidebar', AppSidebar)
riot.register('app-tasks', AppTasks) riot.register('app-tasks', AppTasks)
riot.register('app-task-new', AppTaskNew) riot.register('app-task-button', AppTaskButton)
riot.register('app-task-form', AppTaskForm) riot.register('app-task-form', AppTaskForm)
// mount components // mount components
riot.mount('app-sidebar') riot.mount('app-sidebar')
riot.mount('app-tasks') riot.mount('app-tasks')
riot.mount('app-task-new') riot.mount('app-task-button')
riot.mount('app-task-form') riot.mount('app-task-form')

@ -1 +1 @@
window.riot = require('riot') riot = require('riot')

@ -1,18 +0,0 @@
<app-login>
<div class="app-login">
</div>
<script>
/**
*
*
*/
export default {
}
</script>
</app-login>

@ -1,5 +1,5 @@
<app-sidebar> <app-sidebar>
<div class={ getClasses() }> <div class={ getCssClasses() }>
<div class="sidebar__inner"> <div class="sidebar__inner">
<!-- header --> <!-- header -->
@ -18,18 +18,18 @@
<!-- body --> <!-- body -->
<div class="sidebar__body"> <div class="sidebar__body">
<slot name="form" data={ state.data } /> <slot name="form" />
</div> </div>
<!-- footer --> <!-- footer -->
<div class="sidebar__footer"> <div class="sidebar__footer">
<button class="button m-bottom-0" type="submit" form="app-users-form"> <button class="button m-bottom-0" type="submit" form="{ props.formId }">
Save Save
<svg class="icon fill-success p-left-3" aria-hidden="true"> <svg class="icon fill-success p-left-3" aria-hidden="true">
<use xlink:href="/symbol-defs.svg#icon-check"></use> <use xlink:href="/symbol-defs.svg#icon-check"></use>
</svg> </svg>
</button> </button>
<button class="button m-bottom-0" type="submit" form="app-users-form" close> <button class="button m-bottom-0" type="submit" form="{ props.formId }" close>
Save and Close Save and Close
<svg class="icon fill-success p-left-3" aria-hidden="true"> <svg class="icon fill-success p-left-3" aria-hidden="true">
<use xlink:href="/symbol-defs.svg#icon-arrow-right"></use> <use xlink:href="/symbol-defs.svg#icon-arrow-right"></use>
@ -42,8 +42,6 @@
<script> <script>
import observable from '@riotjs/observable'
/** /**
* *
* *
@ -52,31 +50,26 @@
export default { export default {
state: { /**
isOpen: false *
}, *
*/
onMounted() handleClose()
{ {
observable(this.root) this.props.close()
this.root.on('open', () => {
this.state.isOpen = true
this.update()
})
}, },
/** /**
* *
* *
*/ */
getClasses() getCssClasses()
{ {
let classes = [ const classes = [
'sidebar' 'sidebar'
] ]
if (this.state.isOpen === true) { if (this.props.open === true) {
classes.push('sidebar--open') classes.push('sidebar--open')
} }

@ -1,7 +1,8 @@
<app-task-form> <app-task-form>
<app-sidebar> <app-sidebar form-id="app-task-form" open={ state.isOpen } close={ () => { handleClose() } }>
<!-- slot:title -->
<span slot="title"> <span slot="title">
<virtual if={ state.current.name }> <virtual if={ state.current.name }>
Edit Task { state.current.name } Edit Task { state.current.name }
@ -11,7 +12,8 @@
</virtual> </virtual>
</span> </span>
<form class="form" slot="form" onsubmit={ (event) => { state.validator.submit(event) } }> <!-- slot:header -->
<form id="app-task-form" class="form" slot="form" onsubmit={ (event) => { state.validator.submit(event) } }>
<div class="field-group"> <div class="field-group">
<label class="field-label"> <label class="field-label">
name name
@ -29,11 +31,21 @@
<div class="field-group"> <div class="field-group">
<label class="field-label"> <label class="field-label">
requestHandler requestHandler
<select class="field-choice" name="requesthandler"> <select class="field-choice" name="requestHandler">
<option></option> <option></option>
<option each={ handler in state.requestHandlers }></option> <option each={ handler in state.requestHandlers }></option>
</select> </select>
<field-error name="requesthandler"></field-error> <field-error name="requestHandler"></field-error>
</label>
</div>
<div class="field-group">
<label class="field-label">
action
<select class="field-choice" name="action">
<option></option>
<option each={ handler in state.actions }></option>
</select>
<field-error name="action"></field-error>
</label> </label>
</div> </div>
</form> </form>
@ -42,79 +54,74 @@
<script> <script>
import * as riot from 'riot'
import FormValidator from '@tiny-components/validator/src/formValidator.js' import FormValidator from '@tiny-components/validator/src/formValidator.js'
import FieldError from '@tiny-components/validator/src/fieldError.riot'
import taskFormStore from './../stores/taskForm.js' import taskFormStore from './../stores/taskForm.js'
import sidebar from './../mixins/sidebar.js'
import * as riot from 'riot' import FieldError from '@tiny-components/validator/src/fieldError.riot'
riot.register('field-error', FieldError) riot.register('field-error', FieldError)
riot.mount('field-error')
/** /**
* *
* *
*/ */
export default { export default () => {
return {
state: {
requestHandlers: [], ...sidebar,
validator: undefined,
current: { state: {
requestHandlers: [],
}, validator: undefined,
isOpen: false current: {
},
}
/** },
*
* /**
*/ *
onMounted() *
{ */
// creating formValidator onMounted()
this.state.validator = new FormValidator(this.$('.form'), { {
'name': { // creating formValidator
'presence': true this.state.validator = new FormValidator(this.$('.form'), {
}, 'name': {
'url': { 'presence': true
'presence': true },
}, 'url': {
'requestHandler': { 'presence': true
'presence': true },
} 'requestHandler': {
}) 'presence': true
}
// adding on success })
this.state.validator.onSuccess((event, data) => {
this.handleSuccess(event, data) // adding on success
}) this.state.validator.onSuccess((event, data) => {
this.handleSuccess(event, data)
taskFormStore.on('toggle-form', () => { })
if (this.state.isOpen) {
this.state.isOpen = false taskFormStore.on('open', (data) => {
} else { this.state.isOpen = true
this.state.isOpen = true this.update()
} })
},
this.update()
}) /**
*
this.update() *
}, *
*/
/** handleSuccess(event, data)
* {
* @param {object} event
* }
*/ }
handleSubmit(event)
{
}
} }
</script> </script>

@ -1,9 +1,9 @@
<app-action-new> <app-task-button>
<button class="button m-bottom-0 m-top-5" onclick={ (event) => { handleNew(event) } }> <button class="button m-bottom-0 m-top-5" onclick={ (event) => { handleOpen(event) } }>
<svg class="icon fill-text-contrast" aria-hidden="true"> <svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="/symbol-defs.svg#icon-close"></use> <use xlink:href="/symbol-defs.svg#icon-close"></use>
</svg> </svg>
New { state.text }
</button> </button>
<script> <script>
@ -19,12 +19,19 @@
export default { export default {
state: { state: {
form: undefined text: 'new'
}, },
/**
*
*
*/
onMounted() onMounted()
{ {
this.state.form = document.querySelector('#task-form').firstChild // if props for text is set
if (this.props.text) {
this.state.text = this.props.text
}
}, },
/** /**
@ -32,12 +39,12 @@
* @param {[type]} event * @param {[type]} event
* @return {[type]} * @return {[type]}
*/ */
handleNew(event) handleOpen(event, data = undefined)
{ {
document.querySelector('#task-form').firstChild.trigger('open') taskFormStore.open(data)
} }
} }
</script> </script>
</app-action-new> </app-task-button>

@ -0,0 +1,22 @@
/**
*
*
*
*/
export default {
state: {
isOpen: false
},
/**
*
*
*/
handleClose()
{
this.state.isOpen = false
this.update()
}
}

@ -0,0 +1,21 @@
import observable from '@riotjs/observable'
/**
*
*
*
*/
const sidebarDispatcher = {
/**
*
*
*/
onAfterSuccess(data)
{
this.trigger('sidebar-success', data)
}
}
export default observable(sidebarDispatcher)

@ -16,19 +16,8 @@
* @param {object} data * @param {object} data
* *
*/ */
toggle(data) open(data)
{ {
this.trigger('toggle-form') this.trigger('open', data)
},
/**
*
* @param {object} data
*
*/
edit(data)
{
this.trigger('edit-form', data)
} }
}) })

@ -4,7 +4,7 @@
<div class="container-full"> <div class="container-full">
<div class="grid"> <div class="grid">
<div class="col-12"> <div class="col-12">
<app-task-new></app-task-new> <app-task-button></app-task-button>
</div> </div>
</div> </div>
<div class="grid"> <div class="grid">
@ -13,7 +13,7 @@
</div> </div>
</div> </div>
<app-task-form id="task-form"></app-task-form> <app-task-form></app-task-form>
</div> </div>
{% endblock %} {% endblock %}

@ -1942,16 +1942,16 @@ __webpack_require__.r(__webpack_exports__);
bindingTypes, bindingTypes,
getComponent getComponent
) => template( ) => template(
'<div expr24="expr24" class="field-error"></div>', '<div expr28="expr28" class="field-error"></div>',
[ [
{ {
type: bindingTypes.IF, type: bindingTypes.IF,
evaluate: _scope => _scope.state.errors.length > 0, evaluate: _scope => _scope.state.errors.length > 0,
redundantAttribute: 'expr24', redundantAttribute: 'expr28',
selector: '[expr24]', selector: '[expr28]',
template: template( template: template(
'<ul><li expr25="expr25"></li></ul>', '<ul><li expr29="expr29"></li></ul>',
[ [
{ {
type: bindingTypes.EACH, type: bindingTypes.EACH,
@ -1978,8 +1978,8 @@ __webpack_require__.r(__webpack_exports__);
] ]
), ),
redundantAttribute: 'expr25', redundantAttribute: 'expr29',
selector: '[expr25]', selector: '[expr29]',
itemName: 'error', itemName: 'error',
indexName: null, indexName: null,
evaluate: _scope => _scope.state.errors evaluate: _scope => _scope.state.errors
@ -2006,39 +2006,30 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ }); /* harmony export */ });
/* harmony import */ var _riotjs_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @riotjs/observable */ "../../node_modules/@riotjs/observable/dist/observable.js");
/* harmony import */ var _riotjs_observable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_riotjs_observable__WEBPACK_IMPORTED_MODULE_0__);
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
css: null, css: null,
exports: { exports: {
state: { /**
isOpen: false *
}, *
*/
onMounted() handleClose()
{ {
_riotjs_observable__WEBPACK_IMPORTED_MODULE_0___default()(this.root) this.props.close()
this.root.on('open', () => {
this.state.isOpen = true
this.update()
})
}, },
/** /**
* *
* *
*/ */
getClasses() getCssClasses()
{ {
let classes = [ const classes = [
'sidebar' 'sidebar'
] ]
if (this.state.isOpen === true) { if (this.props.open === true) {
classes.push('sidebar--open') classes.push('sidebar--open')
} }
@ -2052,7 +2043,7 @@ __webpack_require__.r(__webpack_exports__);
bindingTypes, bindingTypes,
getComponent getComponent
) => template( ) => template(
'<div expr0="expr0"><div class="sidebar__inner"><div class="bar"><div class="bar__main"><slot expr1="expr1" name="title"></slot></div><div class="bar__end"><button expr2="expr2" class="button button--transparent" type="button"><svg class="icon fill-text-contrast" aria-hidden="true"><use xlink:href="/symbol-defs.svg#icon-close"/></svg></button></div></div><div class="sidebar__body"><slot expr3="expr3" name="form"></slot></div><div class="sidebar__footer"><button class="button m-bottom-0" type="submit" form="app-users-form">\n Save\n <svg class="icon fill-success p-left-3" aria-hidden="true"><use xlink:href="/symbol-defs.svg#icon-check"/></svg></button><button class="button m-bottom-0" type="submit" form="app-users-form" close>\n Save and Close\n <svg class="icon fill-success p-left-3" aria-hidden="true"><use xlink:href="/symbol-defs.svg#icon-arrow-right"/></svg></button></div></div></div>', '<div expr0="expr0"><div class="sidebar__inner"><div class="bar"><div class="bar__main"><slot expr1="expr1" name="title"></slot></div><div class="bar__end"><button expr2="expr2" class="button button--transparent" type="button"><svg class="icon fill-text-contrast" aria-hidden="true"><use xlink:href="/symbol-defs.svg#icon-close"/></svg></button></div></div><div class="sidebar__body"><slot expr3="expr3" name="form"></slot></div><div class="sidebar__footer"><button expr4="expr4" class="button m-bottom-0" type="submit">\n Save\n <svg class="icon fill-success p-left-3" aria-hidden="true"><use xlink:href="/symbol-defs.svg#icon-check"/></svg></button><button expr5="expr5" class="button m-bottom-0" type="submit" close>\n Save and Close\n <svg class="icon fill-success p-left-3" aria-hidden="true"><use xlink:href="/symbol-defs.svg#icon-arrow-right"/></svg></button></div></div></div>',
[ [
{ {
redundantAttribute: 'expr0', redundantAttribute: 'expr0',
@ -2062,7 +2053,7 @@ __webpack_require__.r(__webpack_exports__);
{ {
type: expressionTypes.ATTRIBUTE, type: expressionTypes.ATTRIBUTE,
name: 'class', name: 'class',
evaluate: _scope => _scope.getClasses() evaluate: _scope => _scope.getCssClasses()
} }
] ]
}, },
@ -2087,18 +2078,34 @@ __webpack_require__.r(__webpack_exports__);
}, },
{ {
type: bindingTypes.SLOT, type: bindingTypes.SLOT,
attributes: [],
name: 'form',
redundantAttribute: 'expr3',
selector: '[expr3]'
},
{
redundantAttribute: 'expr4',
selector: '[expr4]',
attributes: [ expressions: [
{ {
type: expressionTypes.ATTRIBUTE, type: expressionTypes.ATTRIBUTE,
name: 'data', name: 'form',
evaluate: _scope => _scope.state.data evaluate: _scope => _scope.props.formId
} }
], ]
},
{
redundantAttribute: 'expr5',
selector: '[expr5]',
name: 'form', expressions: [
redundantAttribute: 'expr3', {
selector: '[expr3]' type: expressionTypes.ATTRIBUTE,
name: 'form',
evaluate: _scope => _scope.props.formId
}
]
} }
] ]
), ),
@ -2119,10 +2126,12 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ }); /* harmony export */ });
/* harmony import */ var riot__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! riot */ "./node_modules/riot/riot.esm.js");
/* harmony import */ var _tiny_components_validator_src_formValidator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tiny-components/validator/src/formValidator.js */ "../../node_modules/@tiny-components/validator/src/formValidator.js"); /* harmony import */ var _tiny_components_validator_src_formValidator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tiny-components/validator/src/formValidator.js */ "../../node_modules/@tiny-components/validator/src/formValidator.js");
/* harmony import */ var _tiny_components_validator_src_fieldError_riot__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tiny-components/validator/src/fieldError.riot */ "../../node_modules/@tiny-components/validator/src/fieldError.riot"); /* harmony import */ var _stores_taskForm_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../stores/taskForm.js */ "./js/stores/taskForm.js");
/* harmony import */ var _stores_taskForm_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../stores/taskForm.js */ "./js/stores/taskForm.js"); /* harmony import */ var _mixins_sidebar_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../mixins/sidebar.js */ "./js/mixins/sidebar.js");
/* harmony import */ var riot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! riot */ "./node_modules/riot/riot.esm.js"); /* harmony import */ var _tiny_components_validator_src_fieldError_riot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @tiny-components/validator/src/fieldError.riot */ "../../node_modules/@tiny-components/validator/src/fieldError.riot");
@ -2130,69 +2139,65 @@ __webpack_require__.r(__webpack_exports__);
riot__WEBPACK_IMPORTED_MODULE_3__.register('field-error', _tiny_components_validator_src_fieldError_riot__WEBPACK_IMPORTED_MODULE_1__["default"]) riot__WEBPACK_IMPORTED_MODULE_4__.register('field-error', _tiny_components_validator_src_fieldError_riot__WEBPACK_IMPORTED_MODULE_3__["default"])
riot__WEBPACK_IMPORTED_MODULE_3__.mount('field-error')
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
css: null, css: null,
exports: { exports: () => {
state: { return {
requestHandlers: [],
validator: undefined,
current: {
}, ..._mixins_sidebar_js__WEBPACK_IMPORTED_MODULE_2__["default"],
isOpen: false
},
/** state: {
* requestHandlers: [],
* validator: undefined,
*/ current: {
onMounted()
{
// creating formValidator
this.state.validator = new _tiny_components_validator_src_formValidator_js__WEBPACK_IMPORTED_MODULE_0__["default"](this.$('.form'), {
'name': {
'presence': true
},
'url': {
'presence': true
},
'requestHandler': {
'presence': true
}
})
// adding on success }
this.state.validator.onSuccess((event, data) => { },
this.handleSuccess(event, data)
})
_stores_taskForm_js__WEBPACK_IMPORTED_MODULE_2__["default"].on('toggle-form', () => { /**
if (this.state.isOpen) { *
this.state.isOpen = false *
} else { */
this.state.isOpen = true onMounted()
} {
// creating formValidator
this.state.validator = new _tiny_components_validator_src_formValidator_js__WEBPACK_IMPORTED_MODULE_0__["default"](this.$('.form'), {
'name': {
'presence': true
},
'url': {
'presence': true
},
'requestHandler': {
'presence': true
}
})
this.update() // adding on success
}) this.state.validator.onSuccess((event, data) => {
this.handleSuccess(event, data)
})
this.update() _stores_taskForm_js__WEBPACK_IMPORTED_MODULE_1__["default"].on('open', (data) => {
}, this.state.isOpen = true
this.update()
})
},
/** /**
* *
* @param {object} event *
* *
*/ */
handleSubmit(event) handleSuccess(event, data)
{ {
} }
}, }
},
template: ( template: (
template, template,
@ -2200,7 +2205,7 @@ riot__WEBPACK_IMPORTED_MODULE_3__.mount('field-error')
bindingTypes, bindingTypes,
getComponent getComponent
) => template( ) => template(
'<app-sidebar expr15="expr15"></app-sidebar>', '<app-sidebar expr18="expr18" form-id="app-task-form"></app-sidebar>',
[ [
{ {
type: bindingTypes.TAG, type: bindingTypes.TAG,
@ -2210,14 +2215,14 @@ riot__WEBPACK_IMPORTED_MODULE_3__.mount('field-error')
slots: [ slots: [
{ {
id: 'title', id: 'title',
html: '<span slot="title"><virtual expr16="expr16"></virtual><virtual expr17="expr17"></virtual></span>', html: '<span slot="title"><virtual expr19="expr19"></virtual><virtual expr20="expr20"></virtual></span>',
bindings: [ bindings: [
{ {
type: bindingTypes.IF, type: bindingTypes.IF,
evaluate: _scope => _scope.state.current.name, evaluate: _scope => _scope.state.current.name,
redundantAttribute: 'expr16', redundantAttribute: 'expr19',
selector: '[expr16]', selector: '[expr19]',
template: template( template: template(
null, null,
@ -2260,8 +2265,8 @@ riot__WEBPACK_IMPORTED_MODULE_3__.mount('field-error')
{ {
type: bindingTypes.IF, type: bindingTypes.IF,
evaluate: _scope => !_scope.state.current.name, evaluate: _scope => !_scope.state.current.name,
redundantAttribute: 'expr17', redundantAttribute: 'expr20',
selector: '[expr17]', selector: '[expr20]',
template: template( template: template(
null, null,
@ -2288,12 +2293,12 @@ riot__WEBPACK_IMPORTED_MODULE_3__.mount('field-error')
}, },
{ {
id: 'form', id: 'form',
html: '<form expr18="expr18" class="form" slot="form"><div class="field-group"><label class="field-label">\n name\n <input class="field-text" name="name" type="text"/><field-error expr19="expr19" name="name"></field-error></label></div><div class="field-group"><label class="field-label">\n url\n <input class="field-text" name="url" type="text"/><field-error expr20="expr20" name="url"></field-error></label></div><div class="field-group"><label class="field-label">\n requestHandler\n <select class="field-choice" name="requesthandler"><option></option><option expr21="expr21"></option></select><field-error expr22="expr22" name="requesthandler"></field-error></label></div></form>', html: '<form expr21="expr21" id="app-task-form" class="form" slot="form"><div class="field-group"><label class="field-label">\n name\n <input class="field-text" name="name" type="text"/><field-error expr22="expr22" name="name"></field-error></label></div><div class="field-group"><label class="field-label">\n url\n <input class="field-text" name="url" type="text"/><field-error expr23="expr23" name="url"></field-error></label></div><div class="field-group"><label class="field-label">\n requestHandler\n <select class="field-choice" name="requestHandler"><option></option><option expr24="expr24"></option></select><field-error expr25="expr25" name="requestHandler"></field-error></label></div><div class="field-group"><label class="field-label">\n action\n <select class="field-choice" name="action"><option></option><option expr26="expr26"></option></select><field-error expr27="expr27" name="action"></field-error></label></div></form>',
bindings: [ bindings: [
{ {
redundantAttribute: 'expr18', redundantAttribute: 'expr21',
selector: '[expr18]', selector: '[expr21]',
expressions: [ expressions: [
{ {
@ -2309,8 +2314,8 @@ riot__WEBPACK_IMPORTED_MODULE_3__.mount('field-error')
evaluate: _scope => 'field-error', evaluate: _scope => 'field-error',
slots: [], slots: [],
attributes: [], attributes: [],
redundantAttribute: 'expr19', redundantAttribute: 'expr22',
selector: '[expr19]' selector: '[expr22]'
}, },
{ {
type: bindingTypes.TAG, type: bindingTypes.TAG,
@ -2318,8 +2323,8 @@ riot__WEBPACK_IMPORTED_MODULE_3__.mount('field-error')
evaluate: _scope => 'field-error', evaluate: _scope => 'field-error',
slots: [], slots: [],
attributes: [], attributes: [],
redundantAttribute: 'expr20', redundantAttribute: 'expr23',
selector: '[expr20]' selector: '[expr23]'
}, },
{ {
type: bindingTypes.EACH, type: bindingTypes.EACH,
@ -2331,8 +2336,8 @@ riot__WEBPACK_IMPORTED_MODULE_3__.mount('field-error')
[] []
), ),
redundantAttribute: 'expr21', redundantAttribute: 'expr24',
selector: '[expr21]', selector: '[expr24]',
itemName: 'handler', itemName: 'handler',
indexName: null, indexName: null,
evaluate: _scope => _scope.state.requestHandlers evaluate: _scope => _scope.state.requestHandlers
@ -2343,16 +2348,53 @@ riot__WEBPACK_IMPORTED_MODULE_3__.mount('field-error')
evaluate: _scope => 'field-error', evaluate: _scope => 'field-error',
slots: [], slots: [],
attributes: [], attributes: [],
redundantAttribute: 'expr22', redundantAttribute: 'expr25',
selector: '[expr22]' selector: '[expr25]'
},
{
type: bindingTypes.EACH,
getKey: null,
condition: null,
template: template(
null,
[]
),
redundantAttribute: 'expr26',
selector: '[expr26]',
itemName: 'handler',
indexName: null,
evaluate: _scope => _scope.state.actions
},
{
type: bindingTypes.TAG,
getComponent: getComponent,
evaluate: _scope => 'field-error',
slots: [],
attributes: [],
redundantAttribute: 'expr27',
selector: '[expr27]'
} }
] ]
} }
], ],
attributes: [], attributes: [
redundantAttribute: 'expr15', {
selector: '[expr15]' type: expressionTypes.ATTRIBUTE,
name: 'open',
evaluate: _scope => _scope.state.isOpen
},
{
type: expressionTypes.ATTRIBUTE,
name: 'close',
evaluate: _scope => () => { _scope.handleClose() }
}
],
redundantAttribute: 'expr18',
selector: '[expr18]'
} }
] ]
), ),
@ -2381,12 +2423,19 @@ __webpack_require__.r(__webpack_exports__);
exports: { exports: {
state: { state: {
form: undefined text: 'new'
}, },
/**
*
*
*/
onMounted() onMounted()
{ {
this.state.form = document.querySelector('#task-form').firstChild // if props for text is set
if (this.props.text) {
this.state.text = this.props.text
}
}, },
/** /**
@ -2394,9 +2443,9 @@ __webpack_require__.r(__webpack_exports__);
* @param {[type]} event * @param {[type]} event
* @return {[type]} * @return {[type]}
*/ */
handleNew(event) handleOpen(event, data = undefined)
{ {
document.querySelector('#task-form').firstChild.trigger('open') _stores_taskForm_js__WEBPACK_IMPORTED_MODULE_0__["default"].open(data)
} }
}, },
@ -2406,24 +2455,34 @@ __webpack_require__.r(__webpack_exports__);
bindingTypes, bindingTypes,
getComponent getComponent
) => template( ) => template(
'<button expr23="expr23" class="button m-bottom-0 m-top-5"><svg class="icon fill-text-contrast" aria-hidden="true"><use xlink:href="/symbol-defs.svg#icon-close"/></svg>\n New\n </button>', '<button expr6="expr6" class="button m-bottom-0 m-top-5"><svg class="icon fill-text-contrast" aria-hidden="true"><use xlink:href="/symbol-defs.svg#icon-close"/></svg> </button>',
[ [
{ {
redundantAttribute: 'expr23', redundantAttribute: 'expr6',
selector: '[expr23]', selector: '[expr6]',
expressions: [ expressions: [
{
type: expressionTypes.TEXT,
childNodeIndex: 1,
evaluate: _scope => [
_scope.state.text
].join(
''
)
},
{ {
type: expressionTypes.EVENT, type: expressionTypes.EVENT,
name: 'onclick', name: 'onclick',
evaluate: _scope => (event) => { _scope.handleNew(event) } evaluate: _scope => (event) => { _scope.handleOpen(event) }
} }
] ]
} }
] ]
), ),
name: 'app-action-new' name: 'app-task-button'
}); });
/***/ }), /***/ }),
@ -2492,7 +2551,7 @@ __webpack_require__.r(__webpack_exports__);
bindingTypes, bindingTypes,
getComponent getComponent
) => template( ) => template(
'<div class="tasks"><table class="table table--stripped"><thead><tr><th class="table__th">\n name\n </th><th class="table__th">\n url\n </th><th class="table__th">\n requestHandler\n </th><th class="table__th">\n actions\n </th><th class="table__th">\n cron\n </th><th class="table__th"></th><tr></tr><tbody><tr expr4="expr4"></tr><tr expr14="expr14"></tr></tbody></tr></thead></table></div>', '<div class="tasks"><table class="table table--stripped"><thead><tr><th class="table__th">\n name\n </th><th class="table__th">\n url\n </th><th class="table__th">\n requestHandler\n </th><th class="table__th">\n actions\n </th><th class="table__th">\n cron\n </th><th class="table__th"></th><tr></tr><tbody><tr expr7="expr7"></tr><tr expr17="expr17"></tr></tbody></tr></thead></table></div>',
[ [
{ {
type: bindingTypes.EACH, type: bindingTypes.EACH,
@ -2500,11 +2559,11 @@ __webpack_require__.r(__webpack_exports__);
condition: _scope => _scope.state.tasks.length > 0, condition: _scope => _scope.state.tasks.length > 0,
template: template( template: template(
'<td expr5="expr5" class="table__td"> </td><td expr6="expr6" class="table__td"> </td><td expr7="expr7" class="table__td"> </td><td class="table__td"><virtual expr8="expr8"></virtual></td><td expr11="expr11" class="table__td"> </td><td class="table__td"><button expr12="expr12" class="button">\n Edit\n </button><button expr13="expr13" class="button">\n Delete\n </button></td>', '<td expr8="expr8" class="table__td"> </td><td expr9="expr9" class="table__td"> </td><td expr10="expr10" class="table__td"> </td><td class="table__td"><virtual expr11="expr11"></virtual></td><td expr14="expr14" class="table__td"> </td><td class="table__td"><button expr15="expr15" class="button">\n Edit\n </button><button expr16="expr16" class="button">\n Delete\n </button></td>',
[ [
{ {
redundantAttribute: 'expr5', redundantAttribute: 'expr8',
selector: '[expr5]', selector: '[expr8]',
expressions: [ expressions: [
{ {
@ -2520,8 +2579,8 @@ __webpack_require__.r(__webpack_exports__);
] ]
}, },
{ {
redundantAttribute: 'expr6', redundantAttribute: 'expr9',
selector: '[expr6]', selector: '[expr9]',
expressions: [ expressions: [
{ {
@ -2537,8 +2596,8 @@ __webpack_require__.r(__webpack_exports__);
] ]
}, },
{ {
redundantAttribute: 'expr7', redundantAttribute: 'expr10',
selector: '[expr7]', selector: '[expr10]',
expressions: [ expressions: [
{ {
@ -2569,12 +2628,12 @@ __webpack_require__.r(__webpack_exports__);
slots: [ slots: [
{ {
id: 'default', id: 'default',
html: '<span expr9="expr9"> </span><span expr10="expr10"></span>', html: '<span expr12="expr12"> </span><span expr13="expr13"></span>',
bindings: [ bindings: [
{ {
redundantAttribute: 'expr9', redundantAttribute: 'expr12',
selector: '[expr9]', selector: '[expr12]',
expressions: [ expressions: [
{ {
@ -2592,8 +2651,8 @@ __webpack_require__.r(__webpack_exports__);
{ {
type: bindingTypes.IF, type: bindingTypes.IF,
evaluate: _scope => _scope.actions.options, evaluate: _scope => _scope.actions.options,
redundantAttribute: 'expr10', redundantAttribute: 'expr13',
selector: '[expr10]', selector: '[expr13]',
template: template( template: template(
' ', ' ',
@ -2624,15 +2683,15 @@ __webpack_require__.r(__webpack_exports__);
] ]
), ),
redundantAttribute: 'expr8', redundantAttribute: 'expr11',
selector: '[expr8]', selector: '[expr11]',
itemName: 'action', itemName: 'action',
indexName: null, indexName: null,
evaluate: _scope => _scope.task.actions evaluate: _scope => _scope.task.actions
}, },
{ {
redundantAttribute: 'expr11', redundantAttribute: 'expr14',
selector: '[expr11]', selector: '[expr14]',
expressions: [ expressions: [
{ {
@ -2648,8 +2707,8 @@ __webpack_require__.r(__webpack_exports__);
] ]
}, },
{ {
redundantAttribute: 'expr12', redundantAttribute: 'expr15',
selector: '[expr12]', selector: '[expr15]',
expressions: [ expressions: [
{ {
@ -2660,8 +2719,8 @@ __webpack_require__.r(__webpack_exports__);
] ]
}, },
{ {
redundantAttribute: 'expr13', redundantAttribute: 'expr16',
selector: '[expr13]', selector: '[expr16]',
expressions: [ expressions: [
{ {
@ -2674,8 +2733,8 @@ __webpack_require__.r(__webpack_exports__);
] ]
), ),
redundantAttribute: 'expr4', redundantAttribute: 'expr7',
selector: '[expr4]', selector: '[expr7]',
itemName: 'task', itemName: 'task',
indexName: null, indexName: null,
evaluate: _scope => _scope.state.tasks evaluate: _scope => _scope.state.tasks
@ -2683,8 +2742,8 @@ __webpack_require__.r(__webpack_exports__);
{ {
type: bindingTypes.IF, type: bindingTypes.IF,
evaluate: _scope => _scope.state.tasks.length === 0, evaluate: _scope => _scope.state.tasks.length === 0,
redundantAttribute: 'expr14', redundantAttribute: 'expr17',
selector: '[expr14]', selector: '[expr17]',
template: template( template: template(
'<td class="table__td center" colspan="6">\n Nothing found\n </td>', '<td class="table__td center" colspan="6">\n Nothing found\n </td>',
@ -2707,36 +2766,59 @@ __webpack_require__.r(__webpack_exports__);
"use strict"; "use strict";
__webpack_require__.r(__webpack_exports__); __webpack_require__.r(__webpack_exports__);
/* harmony import */ var riot__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! riot */ "./node_modules/riot/riot.esm.js");
/* harmony import */ var _components_sidebar_riot__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/sidebar.riot */ "./js/components/sidebar.riot"); /* harmony import */ var _components_sidebar_riot__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/sidebar.riot */ "./js/components/sidebar.riot");
/* harmony import */ var _components_tasks_riot__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/tasks.riot */ "./js/components/tasks.riot"); /* harmony import */ var _components_tasks_riot__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/tasks.riot */ "./js/components/tasks.riot");
/* harmony import */ var _components_task_new_riot__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/task-new.riot */ "./js/components/task-new.riot"); /* harmony import */ var _components_task_new_riot__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/task-new.riot */ "./js/components/task-new.riot");
/* harmony import */ var _components_task_form_riot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/task-form.riot */ "./js/components/task-form.riot"); /* harmony import */ var _components_task_form_riot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/task-form.riot */ "./js/components/task-form.riot");
__webpack_require__(/*! ./bootstrap.js */ "./js/bootstrap.js");
// register components // register components
riot.register('app-sidebar', _components_sidebar_riot__WEBPACK_IMPORTED_MODULE_0__["default"]); riot__WEBPACK_IMPORTED_MODULE_4__.register('app-sidebar', _components_sidebar_riot__WEBPACK_IMPORTED_MODULE_0__["default"]);
riot.register('app-tasks', _components_tasks_riot__WEBPACK_IMPORTED_MODULE_1__["default"]); riot__WEBPACK_IMPORTED_MODULE_4__.register('app-tasks', _components_tasks_riot__WEBPACK_IMPORTED_MODULE_1__["default"]);
riot.register('app-task-new', _components_task_new_riot__WEBPACK_IMPORTED_MODULE_2__["default"]); riot__WEBPACK_IMPORTED_MODULE_4__.register('app-task-button', _components_task_new_riot__WEBPACK_IMPORTED_MODULE_2__["default"]);
riot.register('app-task-form', _components_task_form_riot__WEBPACK_IMPORTED_MODULE_3__["default"]); // mount components riot__WEBPACK_IMPORTED_MODULE_4__.register('app-task-form', _components_task_form_riot__WEBPACK_IMPORTED_MODULE_3__["default"]); // mount components
riot.mount('app-sidebar'); riot__WEBPACK_IMPORTED_MODULE_4__.mount('app-sidebar');
riot.mount('app-tasks'); riot__WEBPACK_IMPORTED_MODULE_4__.mount('app-tasks');
riot.mount('app-task-new'); riot__WEBPACK_IMPORTED_MODULE_4__.mount('app-task-button');
riot.mount('app-task-form'); riot__WEBPACK_IMPORTED_MODULE_4__.mount('app-task-form');
/***/ }), /***/ }),
/***/ "./js/bootstrap.js": /***/ "./js/mixins/sidebar.js":
/*!*************************!*\ /*!******************************!*\
!*** ./js/bootstrap.js ***! !*** ./js/mixins/sidebar.js ***!
\*************************/ \******************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
window.riot = __webpack_require__(/*! riot */ "./node_modules/riot/riot.esm.js"); "use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/**
*
*
*
*/
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
state: {
isOpen: false
},
/**
*
*
*/
handleClose: function handleClose() {
this.state.isOpen = false;
this.update();
}
});
/***/ }), /***/ }),
@ -2768,17 +2850,8 @@ __webpack_require__.r(__webpack_exports__);
* @param {object} data * @param {object} data
* *
*/ */
toggle: function toggle(data) { open: function open(data) {
this.trigger('toggle-form'); this.trigger('open', data);
},
/**
*
* @param {object} data
*
*/
edit: function edit(data) {
this.trigger('edit-form', data);
} }
})); }));

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -1 +0,0 @@
MANIFEST-000033

@ -1,5 +0,0 @@
2022/03/31-00:53:26.133389 7f0745274700 Recovering log #32
2022/03/31-00:53:26.133482 7f0745274700 Level-0 table #34: started
2022/03/31-00:53:26.141397 7f0745274700 Level-0 table #34: 237 bytes OK
2022/03/31-00:53:26.161662 7f0745274700 Delete type=0 #32
2022/03/31-00:53:26.161696 7f0745274700 Delete type=3 #30

@ -1,5 +0,0 @@
2022/03/29-22:43:15.594165 7f0939d36700 Recovering log #28
2022/03/29-22:43:15.594268 7f0939d36700 Level-0 table #31: started
2022/03/29-22:43:15.602015 7f0939d36700 Level-0 table #31: 237 bytes OK
2022/03/29-22:43:15.622567 7f0939d36700 Delete type=0 #28
2022/03/29-22:43:15.622595 7f0939d36700 Delete type=3 #26

Binary file not shown.
Loading…
Cancel
Save