1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-19 21:29:42 +02:00

Complete the UI migration for all space setting views

Permissions and Categories admin views have been migrated to the new UI layout system.
This commit is contained in:
Harvey Kandola 2018-12-18 11:12:11 +00:00
parent 60e92b63a9
commit b4b3dbcb4c
7 changed files with 179 additions and 142 deletions

View file

@ -22,6 +22,8 @@ export default Component.extend(ModalMixin, Notifer, {
categorySvc: service('category'), categorySvc: service('category'),
appMeta: service(), appMeta: service(),
store: service(), store: service(),
editId: '',
editName: '',
deleteId: '', deleteId: '',
newCategory: '', newCategory: '',
@ -122,6 +124,14 @@ export default Component.extend(ModalMixin, Notifer, {
}); });
}, },
onShowEdit(id) {
let cat = this.get('category').findBy('id', id);
this.set('editId', cat.get('id'));
this.set('editName', cat.get('category'));
this.modalOpen('#category-edit-modal', {show: true}, "#edit-category-id");
},
onShowDelete(id) { onShowDelete(id) {
let cat = this.get('category').findBy('id', id); let cat = this.get('category').findBy('id', id);
this.set('deleteId', cat.get('id')); this.set('deleteId', cat.get('id'));
@ -137,24 +147,18 @@ export default Component.extend(ModalMixin, Notifer, {
}); });
}, },
onEdit(id) { onSave() {
this.setEdit(id, true); let name = this.get('editName');
}, if (name === '') {
$('#edit-category-name').addClass('is-invalid').focus();
onEditCancel(id) {
this.setEdit(id, false);
this.load();
},
onSave(id) {
let cat = this.setEdit(id, true);
if (cat.get('category') === '') {
$('#edit-category-' + cat.get('id')).addClass('is-invalid').focus();
return false; return false;
} }
cat = this.setEdit(id, false); let cat = this.get('category').findBy('id', this.get('editId'));
$('#edit-category-' + cat.get('id')).removeClass('is-invalid'); cat.set('category', name);
this.modalClose('#category-edit-modal');
$('#edit-category-name').removeClass('is-invalid');
this.get('categorySvc').save(cat).then(() => { this.get('categorySvc').save(cat).then(() => {
this.load(); this.load();

View file

@ -195,37 +195,48 @@
} }
} }
.add-users {
text-align: center;
> .item {
margin: 7px;
display: inline-block;
}
}
> .categories { > .categories {
padding: 0; padding: 0;
margin: 0; margin: 0;
> .item { > .category {
margin: 15px 0;
padding: 15px;
@include card(); @include card();
@include ease-in(); list-style-type: none;
margin: 0 0 2rem 0;
padding: 15px 20px;
width: 100%;
position: relative;
> .category { > .info {
display: inline-block; padding: 0;
align-self: self-start;
justify-self: self-start;
> .name { > .name {
font-size: 1.2rem; font-size: 1.3rem;
color: $theme-500; font-weight: 700;
color: map-get($gray-shades, 800);
} }
> .info { > .desc {
font-size: 0.9rem; font-size: 1.1rem;
margin-top: 8px; font-weight: 400;
color: map-get($gray-shades, 600); margin-top: 0.4rem;
color: $color-black-light-3;
} }
} }
> .buttons { > .actions {
margin-top: 5px; margin-top: 20px;
}
> .action {
display: inline-block;
} }
} }
} }

View file

@ -8,9 +8,9 @@
{{/link-to}} {{/link-to}}
<div class="meta"> <div class="meta">
<div class="lifecycle"> <div class="lifecycle">
<div class="{{if (eq document.lifecycle constants.Lifecycle.Draft) 'draft'}} <div class="{{if (eq document.lifecycle constants.Lifecycle.Draft) "draft"}}
{{if (eq document.lifecycle constants.Lifecycle.Live) 'live'}} {{if (eq document.lifecycle constants.Lifecycle.Live) "live"}}
{{if (eq document.lifecycle constants.Lifecycle.Archived) 'archived'}}"> {{if (eq document.lifecycle constants.Lifecycle.Archived) "archived"}}">
{{document.lifecycleLabel}} {{document.lifecycleLabel}}
</div> </div>
</div> </div>

View file

@ -1,108 +1,118 @@
<div class="content-zone"> {{layout/logo-heading
title="Categories"
desc="Assign categories to documents and decide who can view them"
icon=constants.Icon.Category}}
<div class="explainer-header explainer-gap">Categories</div> <div class="space-admin">
<form class="form-inline" onsubmit={{action "onAdd"}}> <div class="categories">
<div class="form-group mr-3"> <form class="form" onsubmit={{action "onAdd"}}>
{{focus-input id="new-category-name" type="text" class="form-control mousetrap" placeholder="Category name" value=newCategory}} <div class="form-group">
</div> {{focus-input id="new-category-name" type="text" class="form-control mousetrap" placeholder="Category name" value=newCategory}}
<button type="button" class="btn btn-success bold-700" onclick={{action "onAdd"}}>Add</button> </div>
</form> {{ui/ui-button color=constants.Color.Green light=true
label=constants.Label.Add icon=constants.Icon.Category
<div class="space-admin"> onClick=(action "onAdd")}}
<div class="categories"> </form>
{{#each category as |cat|}}
<div class="item row">
{{#if cat.editMode}}
<form onsubmit={{action "onSave" cat.id bubbles=false}} class="col-8">
{{focus-input id=(concat "edit-category-" cat.id) type="text" value=cat.category class="form-control"}}
</form>
{{else}}
<div class="category col-8">
<div class="name">{{cat.category}}</div>
<div class="info">
{{cat.documents}} {{if (eq cat.documents 1) "document" "documents" }} &middot; {{cat.users}} users/groups
{{#unless cat.access}}<span class="text-danger">(you have no view permission)</span>{{/unless}}
</div>
</div>
{{/if}}
<div class="col-4 buttons text-right">
{{#if cat.editMode}}
<button type="button" class="btn btn-outline-secondary" {{action "onEditCancel" cat.id}}>Cancel</button>
<button type="button" class="btn btn-success" {{action "onSave" cat.id}}>Save</button>
{{else}}
<div id="category-access-button-{{cat.id}}" class="button-icon-gray align-middle" {{action "onShowAccessPicker" cat.id}}>
{{#attach-tooltip showDelay=1000}}Category view permission{{/attach-tooltip}}
<i class="material-icons">security</i>
</div>
<div class="button-icon-gap" />
<div class="button-icon-gray align-middle" {{action "onEdit" cat.id}} >
{{#attach-tooltip showDelay=1000}}Rename{{/attach-tooltip}}
<i class="material-icons">edit</i>
</div>
<div class="button-icon-gap" />
<div id={{concat "delete-category-" cat.id}} class="button-icon-danger align-middle" {{action "onShowDelete" cat.id}}>
{{#attach-tooltip showDelay=1000}}Delete{{/attach-tooltip}}
<i class="material-icons">delete</i>
</div>
{{/if}}
</div>
</div>
{{else}}
<div class="margin-top-30"><i>No categories</i></div>
{{/each}}
</div>
</div> </div>
</div>
<div id="category-delete-modal" class="modal" tabindex="-1" role="dialog"> {{ui/ui-spacer size=400}}
<div class="modal-dialog" role="document">
<div class="modal-content"> <div class="space-admin">
<div class="modal-header">Category Deletion</div> <div class="categories">
<div class="modal-body"> {{#each category as |cat|}}
<p>Are you sure you want to delete this category?</p> <div class="category">
<div class="info">
<div class="name">{{cat.category}}</div>
<div class="desc">
Assigned to {{cat.documents}} {{if (eq cat.documents 1) "document" "documents" }}
and viewable by {{cat.users}} users/groups
</div>
{{#unless cat.access}}
<p class="color-red-600 bold-500">You have no view permission for this category</p>
{{/unless}}
</div> </div>
<div class="modal-footer"> <div class="actions">
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal">Cancel</button> {{#ui/ui-toolbar dark=false light=true raised=true large=false bordered=true}}
<button type="button" class="btn btn-danger" onclick={{action "onDelete"}}>Delete</button> {{ui/ui-toolbar-icon icon=constants.Icon.Locked color=constants.Color.Gray
tooltip="Set view permissions" onClick=(action "onShowAccessPicker" cat.id)}}
{{ui/ui-toolbar-icon icon=constants.Icon.Edit color=constants.Color.Gray
tooltip="Edit category" onClick=(action "onShowEdit" cat.id)}}
{{ui/ui-toolbar-icon icon=constants.Icon.Delete color=constants.Color.Red
tooltip="Delete category" onClick=(action "onShowDelete" cat.id)}}
{{/ui/ui-toolbar}}
</div> </div>
</div> </div>
{{/each}}
</div>
</div>
<div id="category-edit-modal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">Edit Category</div>
<div class="modal-body">
<div class="form-group">
{{focus-input id="edit-category-name" type="text" class="form-control mousetrap" placeholder="Category name" value=editName}}
</div>
</div>
<div class="modal-footer">
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Close dismiss=true}}
{{ui/ui-button-gap}}
{{ui/ui-button color=constants.Color.Green light=true label=constants.Label.Save onClick=(action "onSave")}}
</div>
</div> </div>
</div> </div>
</div>
{{#ui/ui-dialog title="Set Category Access" confirmCaption="Save" buttonColor=constants.Color.Green show=showCategoryAccess onAction=(action "onGrantAccess")}} <div id="category-delete-modal" class="modal" tabindex="-1" role="dialog">
<p>Select who can view documents within category</p> <div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">Delete Category</div>
<div class="modal-body">
<p>Are you sure you want to delete this category?</p>
</div>
<div class="modal-footer">
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Close dismiss=true}}
{{ui/ui-button-gap}}
{{ui/ui-button color=constants.Color.Red light=true label=constants.Label.Delete onClick=(action "onDelete")}}
</div>
</div>
</div>
</div>
<div class="widget-list-picker"> {{#ui/ui-dialog title="Set Category Access" confirmCaption="Save" buttonColor=constants.Color.Green show=showCategoryAccess onAction=(action "onGrantAccess")}}
<ul class="options"> <p>Select who can view documents within category</p>
{{#each categoryPermissions as |permission|}} <div class="widget-list-picker">
<li class="option {{if permission.selected "selected"}}" {{action "onToggle" permission}}> <ul class="options">
<div class="text text-truncate"> {{#each categoryPermissions as |permission|}}
{{#if (eq permission.who "role")}} <li class="option {{if permission.selected "selected"}}" {{action "onToggle" permission}}>
<div class="text text-truncate">
{{#if (eq permission.who "role")}}
<span class="button-icon-gray button-icon-small align-middle">
<i class="material-icons">people</i>
</span>
{{else}}
{{#if (eq permission.whoId constants.EveryoneUserId)}}
<span class="button-icon-gray button-icon-small align-middle"> <span class="button-icon-gray button-icon-small align-middle">
<i class="material-icons">people</i> <i class="material-icons">language</i>
</span> </span>
{{else}} {{else}}
{{#if (eq permission.whoId constants.EveryoneUserId)}} <span class="button-icon-gray button-icon-small align-middle">
<span class="button-icon-gray button-icon-small align-middle"> <i class="material-icons">person</i>
<i class="material-icons">language</i> </span>
</span>
{{else}}
<span class="button-icon-gray button-icon-small align-middle">
<i class="material-icons">person</i>
</span>
{{/if}}
{{/if}} {{/if}}
&nbsp;{{permission.name}}
{{#if (eq permission.whoId session.user.id)}}
<small class="form-text text-muted d-inline-block">(you)</small>
{{/if}}
</div>
{{#if permission.selected}}
<i class="material-icons">check</i>
{{/if}} {{/if}}
</li> &nbsp;{{permission.name}}
{{/each}} {{#if (eq permission.whoId session.user.id)}}
</ul> <small class="form-text text-muted d-inline-block">(you)</small>
</div> {{/if}}
{{/ui/ui-dialog}} </div>
{{#if permission.selected}}
</div> <i class="material-icons">check</i>
{{/if}}
</li>
{{/each}}
</ul>
</div>
{{/ui/ui-dialog}}

View file

@ -16,4 +16,4 @@
icon=constants.Icon.Delete icon=constants.Icon.Delete
label=constants.Label.Delete label=constants.Label.Delete
light=true light=true
onClick=(action 'onDelete')}} onClick=(action "onDelete")}}

View file

@ -33,4 +33,4 @@
icon=constants.Icon.Settings icon=constants.Icon.Settings
label=constants.Label.Save label=constants.Label.Save
light=true light=true
onClick=(action 'onSave')}} onClick=(action "onSave")}}

View file

@ -151,19 +151,31 @@
label=constants.Label.Save onClick=(action "onSave")}} label=constants.Label.Save onClick=(action "onSave")}}
<div id="space-add-user-modal" class="modal" tabindex="-1" role="dialog"> <div id="space-add-user-modal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document"> <div class="modal-dialog modal-lg" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header">Add User To Space</div> <div class="modal-header">Add users to this space</div>
<div class="modal-body"> <div class="modal-body">
{{input id="user-search" type="text" class="form-control mousetrap" placeholder="Search for users by firstname, lastname, email" value=searchText key-up=(action "onSearch")}} {{input id="user-search" type="text" class="form-control mousetrap" placeholder="Search for users by firstname, lastname, email" value=searchText key-up=(action "onSearch")}}
{{#each filteredUsers as |user|}} {{ui/ui-spacer size=200}}
<div class="row my-3"> <div class="space-admin">
<div class="col-10">{{user.fullname}}</div> <div class="add-users">
<div class="col-2 text-right"> {{#each filteredUsers as |user|}}
<button class="btn btn-success" {{action "onAdd" user}}>Add</button> <div class="item">
</div> {{#ui/ui-toolbar dark=false light=true raised=true large=false bordered=true}}
{{ui/ui-toolbar-icon
icon=constants.Icon.AddUser
color=constants.Color.Green
tooltip="Remove member"
onClick=(action "onAdd" user)}}
{{ui/ui-toolbar-label
color=constants.Color.Gray
label=user.fullname
onClick=(action "onAdd" user)}}
{{/ui/ui-toolbar}}
</div>
{{/each}}
</div> </div>
{{/each}} </div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Close dismiss=true}} {{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Close dismiss=true}}
@ -173,9 +185,9 @@
</div> </div>
<div id="space-invite-user-modal" class="modal" tabindex="-1" role="dialog"> <div id="space-invite-user-modal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document"> <div class="modal-dialog modal-lg" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header">Invite Users to Space</div> <div class="modal-header">Invite users to this space</div>
<div class="modal-body"> <div class="modal-body">
<p>Email invite leads to a smooth onboarding process</p> <p>Email invite leads to a smooth onboarding process</p>
<form onsubmit={{action "onSpaceInvite"}}> <form onsubmit={{action "onSpaceInvite"}}>