diff --git a/resources/assets/js/components/entity-permissions-editor.js b/resources/assets/js/components/entity-permissions-editor.js new file mode 100644 index 00000000000..a821792a0f5 --- /dev/null +++ b/resources/assets/js/components/entity-permissions-editor.js @@ -0,0 +1,20 @@ + +class EntityPermissionsEditor { + + constructor(elem) { + this.permissionsTable = elem.querySelector('[permissions-table]'); + + // Handle toggle all event + this.restrictedCheckbox = elem.querySelector('[name=restricted]'); + this.restrictedCheckbox.addEventListener('change', this.updateTableVisibility.bind(this)); + } + + updateTableVisibility() { + this.permissionsTable.style.display = + this.restrictedCheckbox.checked + ? null + : 'none'; + } +} + +export default EntityPermissionsEditor; \ No newline at end of file diff --git a/resources/assets/js/components/index.js b/resources/assets/js/components/index.js index c9fd630778a..1c2abd5202e 100644 --- a/resources/assets/js/components/index.js +++ b/resources/assets/js/components/index.js @@ -26,6 +26,7 @@ import permissionsTable from "./permissions-table"; import customCheckbox from "./custom-checkbox"; import bookSort from "./book-sort"; import settingAppColorPicker from "./setting-app-color-picker"; +import entityPermissionsEditor from "./entity-permissions-editor"; const componentMapping = { 'dropdown': dropdown, @@ -56,6 +57,7 @@ const componentMapping = { 'custom-checkbox': customCheckbox, 'book-sort': bookSort, 'setting-app-color-picker': settingAppColorPicker, + 'entity-permissions-editor': entityPermissionsEditor }; window.components = {}; diff --git a/resources/views/form/entity-permissions.blade.php b/resources/views/form/entity-permissions.blade.php index 6bb4b51ada6..b3e148e21c1 100644 --- a/resources/views/form/entity-permissions.blade.php +++ b/resources/views/form/entity-permissions.blade.php @@ -1,4 +1,4 @@ -
+ {!! csrf_field() !!} @@ -11,7 +11,7 @@ ]) - +
{{ trans('common.role') }} isA('page')) colspan="3" @else colspan="4" @endif>