From 10134940644d59d50787ec5ccbedd8b05d102ff8 Mon Sep 17 00:00:00 2001 From: Eugen Ciur <eugen@papermerge.com> Date: Sat, 9 Oct 2021 06:32:14 +0200 Subject: [PATCH] add permissions --- app/components/button/submit.hbs | 6 +++--- app/components/permission.hbs | 8 ++++++++ app/components/permission.js | 17 +++++++++++++++++ app/components/permissions/index.hbs | 3 +++ app/components/permissions/index.js | 10 ++++++++++ app/components/role/add.hbs | 4 ++++ app/components/role/add.js | 20 +++++++++++++++----- app/components/tag/new.hbs | 18 +++++++++--------- 8 files changed, 69 insertions(+), 17 deletions(-) create mode 100644 app/components/permission.hbs create mode 100644 app/components/permission.js create mode 100644 app/components/permissions/index.hbs create mode 100644 app/components/permissions/index.js diff --git a/app/components/button/submit.hbs b/app/components/button/submit.hbs index b0a3088..8820442 100644 --- a/app/components/button/submit.hbs +++ b/app/components/button/submit.hbs @@ -7,20 +7,20 @@ </LinkTo> {{else}} {{! render <button> based component }} - {{#if @enabled}} + {{#if @disabled}} + {{! render a disabled button }} <button class="btn btn-primary mx-2" type="button" + disabled {{on "click" @onClick}}> <i class="bi bi-check-lg"></i> {{this.text}} </button> {{else}} - {{! render a disabled button }} <button class="btn btn-primary mx-2" type="button" - disabled {{on "click" @onClick}}> <i class="bi bi-check-lg"></i> {{this.text}} diff --git a/app/components/permission.hbs b/app/components/permission.hbs new file mode 100644 index 0000000..ed12f9c --- /dev/null +++ b/app/components/permission.hbs @@ -0,0 +1,8 @@ + <div> + <Input + @type="checkbox" + @checked="{{@permission.isChecked}}" + {{on "change" (fn this.onChange @permission)}} + /> + <span class="mx-1">{{@permission.name}}</span> + </div> \ No newline at end of file diff --git a/app/components/permission.js b/app/components/permission.js new file mode 100644 index 0000000..d4b86ce --- /dev/null +++ b/app/components/permission.js @@ -0,0 +1,17 @@ +import Component from '@glimmer/component'; +import { tracked } from '@glimmer/tracking'; +import { action } from '@ember/object'; +import { inject as service } from '@ember/service'; + + +class PermissionComponent extends Component { + @service store; + + @action + onChange(permission, event) { + let checked = event.target.checked; + this.args.onChange(permission, checked); + } +} + +export default PermissionComponent; diff --git a/app/components/permissions/index.hbs b/app/components/permissions/index.hbs new file mode 100644 index 0000000..01757cd --- /dev/null +++ b/app/components/permissions/index.hbs @@ -0,0 +1,3 @@ +{{#each @permissions as |perm|}} + <Permission @permission={{perm}} @onChange={{@onChange}} /> +{{/each}} diff --git a/app/components/permissions/index.js b/app/components/permissions/index.js new file mode 100644 index 0000000..01d07a8 --- /dev/null +++ b/app/components/permissions/index.js @@ -0,0 +1,10 @@ +import Component from '@glimmer/component'; +import { tracked } from '@glimmer/tracking'; +import { inject as service } from '@ember/service'; + + +class PermissionsComponent extends Component { + @service store; +} + +export default PermissionsComponent; diff --git a/app/components/role/add.hbs b/app/components/role/add.hbs index 1c6252f..da595df 100644 --- a/app/components/role/add.hbs +++ b/app/components/role/add.hbs @@ -6,6 +6,10 @@ placeholder="Role's name" /> </div> +<Permissions + @permissions={{this.permissions}} + @onChange={{this.onChange}} /> + <div class="mb-3"> <Button::Submit @onClick={{this.onSubmit}} /> <Button::Cancel @route="roles"/> diff --git a/app/components/role/add.js b/app/components/role/add.js index a133ebd..be1f197 100644 --- a/app/components/role/add.js +++ b/app/components/role/add.js @@ -1,6 +1,7 @@ import Component from '@glimmer/component'; import { action } from '@ember/object'; import { tracked } from '@glimmer/tracking'; +import { A } from '@ember/array'; import { inject as service } from '@ember/service'; @@ -8,14 +9,22 @@ class AddRoleComponent extends Component { @service store; @service router; - @tracked dst_folder; - @tracked name; - @tracked match; - @tracked is_case_sensitive = false; - @tracked matching_alg; + @tracked name = "default name"; + permissions = A([ + {name: 'one', isChecked: true}, + {name: 'two'} + ]); + + @action + onChange(permission, checked) { + permission.isChecked = checked; + } @action onSubmit() { + console.log(this.name); + console.log(this.permissions); + /* let role; role = { @@ -28,6 +37,7 @@ class AddRoleComponent extends Component { ).save(); this.router.transitionTo('roles'); + */ } } diff --git a/app/components/tag/new.hbs b/app/components/tag/new.hbs index c35bca1..076d187 100644 --- a/app/components/tag/new.hbs +++ b/app/components/tag/new.hbs @@ -2,15 +2,15 @@ {{#if this.form_visible}} - <form> - <div class="row my-2"> - <div class="col-md-2"> - <Tag::Item - @name={{default_string this.new_name "preview"}} - @fg_color={{this.new_fg_color}} - @bg_color={{this.new_bg_color}} /> - </div> - </div> + <form> + <div class="row my-2"> + <div class="col-md-2"> + <Tag::Item + @name={{default_string this.new_name "preview"}} + @fg_color={{this.new_fg_color}} + @bg_color={{this.new_bg_color}} /> + </div> + </div> <div class="row mb-2"> <div class="col-md-3"> -- GitLab