mirror of
https://github.com/documize/community.git
synced 2025-07-19 05:09:42 +02:00
Bring new UX to each admin view
This commit is contained in:
parent
ff1d737c68
commit
edb256e754
26 changed files with 357 additions and 324 deletions
|
@ -24,7 +24,7 @@ export default Component.extend(Notifier, {
|
|||
testSMTP: null,
|
||||
|
||||
actions: {
|
||||
saveSMTP(e) {
|
||||
saveSMTP() {
|
||||
if (this.get('SMTPHostEmptyError')) {
|
||||
$("#smtp-host").focus();
|
||||
return;
|
||||
|
|
|
@ -33,13 +33,11 @@ export default Component.extend(Notifier, Modals, {
|
|||
|
||||
init() {
|
||||
this._super(...arguments);
|
||||
|
||||
this.loadData();
|
||||
},
|
||||
|
||||
didReceiveAttrs() {
|
||||
this._super(...arguments);
|
||||
|
||||
this.deleteSpace = {
|
||||
id: '',
|
||||
name: ''
|
||||
|
@ -55,6 +53,7 @@ export default Component.extend(Notifier, Modals, {
|
|||
actions: {
|
||||
onShow(id) {
|
||||
this.set('deleteSpace.id', id);
|
||||
this.modalOpen("#space-delete-modal", {"show": true}, '#delete-space-name');
|
||||
},
|
||||
|
||||
onDelete() {
|
||||
|
@ -91,13 +90,13 @@ export default Component.extend(Notifier, Modals, {
|
|||
|
||||
this.get('documentSvc').export(spec).then((htmlExport) => {
|
||||
this.get('browserSvc').downloadFile(htmlExport, 'documize.html');
|
||||
this.notifySuccess('Exported');
|
||||
this.notifySuccess('Export completed');
|
||||
});
|
||||
},
|
||||
|
||||
onOwner(spaceId) {
|
||||
this.get('spaceSvc').grantOwnerPermission(spaceId).then(() => { /* jshint ignore:line */
|
||||
this.notifySuccess('Saved');
|
||||
this.notifySuccess('Added as owner');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -195,6 +195,7 @@ let constants = EmberObject.extend({
|
|||
},
|
||||
|
||||
Icon: { // eslint-disable-line ember/avoid-leaking-state-in-ember-objects
|
||||
AddUser: 'dicon-add-27',
|
||||
All: 'dicon-menu-8',
|
||||
Announce: 'dicon-notification',
|
||||
ArrowUp: 'dicon-arrow-up-2',
|
||||
|
@ -225,6 +226,7 @@ let constants = EmberObject.extend({
|
|||
Person: 'dicon-single-01',
|
||||
People: 'dicon-multiple-19',
|
||||
Remove: 'dicon-i-remove',
|
||||
RemoveUser: 'dicon-delete-28',
|
||||
Search: 'dicon-magnifier',
|
||||
Send: 'dicon-send',
|
||||
Settings: 'dicon-settings-gear',
|
||||
|
@ -248,7 +250,9 @@ let constants = EmberObject.extend({
|
|||
Delete: 'Delete',
|
||||
Export: 'Export',
|
||||
Insert: 'Insert',
|
||||
Join : 'Join',
|
||||
Next: 'Next',
|
||||
Remove: 'Remove',
|
||||
Reset: 'Reset',
|
||||
Restore: 'Restore',
|
||||
Save: 'Save',
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
//
|
||||
// https://documize.com
|
||||
|
||||
import $ from 'jquery';
|
||||
import { inject as service } from '@ember/service';
|
||||
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
|
||||
import Route from '@ember/routing/route';
|
||||
|
@ -37,10 +36,5 @@ export default Route.extend(AuthenticatedRouteMixin, {
|
|||
|
||||
activate() {
|
||||
this.get('browser').setTitle('Share Space');
|
||||
// $('body').addClass('background-color-gray-200');
|
||||
},
|
||||
|
||||
deactivate() {
|
||||
// $('body').removeClass('background-color-gray-200');
|
||||
}
|
||||
});
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{{layout/logo-heading
|
||||
title="Customize"
|
||||
title="General"
|
||||
desc="Options to help you customize Documize"
|
||||
icon=constants.Icon.Settings}}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{{layout/logo-heading
|
||||
title=(concat appMeta.edition " Edition " appMeta.version)
|
||||
desc="Enterprise Edition provides premium features and comprehensive product support"
|
||||
title="Documize Changelog"
|
||||
desc=(concat "You are running "appMeta.edition " Edition " appMeta.version)
|
||||
icon=constants.Icon.Announce}}
|
||||
|
||||
{{customize/change-log}}
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
{{/if}}
|
||||
{{#link-to "customize.product" activeClass="selected" class="item" tagName="div"}}
|
||||
<i class={{concat "dicon " constants.Icon.Announce}} />
|
||||
<div class="name">Changelog</div>
|
||||
<div class="name">Documize Changelog</div>
|
||||
{{/link-to}}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -414,3 +414,16 @@ icons
|
|||
.dicon-notification::before {
|
||||
content: "\ea4d";
|
||||
}
|
||||
|
||||
.dicon-handshake::before {
|
||||
content: "\ea4e";
|
||||
}
|
||||
|
||||
.dicon-add-27::before {
|
||||
content: "\ea4f";
|
||||
}
|
||||
|
||||
.dicon-delete-28::before {
|
||||
content: "\ea50";
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
@media (max-width: $display-break-1) {
|
||||
div[class^="spacer-"] {
|
||||
height: 1px;
|
||||
height: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,38 +4,39 @@
|
|||
> .update-status {
|
||||
padding: 25px;
|
||||
background-color: map-get($yellow-shades, 100);
|
||||
border: 1px solid map-get($yellow-shades, 200);
|
||||
@include shadow();
|
||||
border: 1px solid map-get($yellow-shades, 300);
|
||||
@include border-radius(3px);
|
||||
|
||||
> .title {
|
||||
font-weight: bold;
|
||||
font-size: 1.5rem;
|
||||
color: map-get($yellow-shades, 600);
|
||||
margin-bottom: 15px;
|
||||
color: map-get($yellow-shades, 800);
|
||||
margin-bottom: 5px;
|
||||
display:block;
|
||||
}
|
||||
|
||||
> .instructions {
|
||||
font-weight: 500;
|
||||
font-size: 1.3rem;
|
||||
font-size: 1.1rem;
|
||||
color: map-get($gray-shades, 800);
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
> .links {
|
||||
margin: 30px 0 0 0;
|
||||
margin: 10px 0 0 0;
|
||||
|
||||
> p {
|
||||
margin: 0.3rem 0;
|
||||
|
||||
> .edition-name {
|
||||
font-size: 1.3rem;
|
||||
font-size: 1.1rem;
|
||||
font-weight: 400;
|
||||
color: map-get($yellow-shades, 900);
|
||||
}
|
||||
|
||||
> .link {
|
||||
font-size: 1.3rem;
|
||||
color: map-get($yellow-shades, 800);
|
||||
font-size: 1.1rem;
|
||||
color: map-get($yellow-shades, 600);
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
@ -46,13 +47,12 @@
|
|||
padding: 25px;
|
||||
background-color: map-get($gray-shades, 100);
|
||||
border: 1px solid map-get($gray-shades, 200);
|
||||
@include shadow();
|
||||
@include border-radius(3px);
|
||||
|
||||
> .version {
|
||||
font-weight: 700;
|
||||
font-size: 1.2rem;
|
||||
color: map-get($yellow-shades, 700);
|
||||
color: map-get($gray-shades, 700);
|
||||
margin: 10px 0;
|
||||
display: block;
|
||||
}
|
||||
|
|
|
@ -53,14 +53,41 @@
|
|||
}
|
||||
|
||||
> .space-list {
|
||||
padding: 0;
|
||||
margin: 3rem 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
> .space {
|
||||
margin: 15px 0;
|
||||
padding: 15px 0;
|
||||
font-size: 1.2rem;
|
||||
color: $theme-500;
|
||||
@include card();
|
||||
list-style-type: none;
|
||||
margin: 0 0 2rem 0;
|
||||
padding: 15px 20px;
|
||||
width: 100%;
|
||||
|
||||
> .info {
|
||||
padding: 0;
|
||||
|
||||
> a {
|
||||
> .name {
|
||||
font-size: 1.3rem;
|
||||
font-weight: 700;
|
||||
color: map-get($gray-shades, 800);
|
||||
|
||||
> .dicon {
|
||||
color: map-get($gray-shades, 600);
|
||||
font-size: 20px;
|
||||
vertical-align: middle;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
> .desc {
|
||||
font-size: 1.1rem;
|
||||
font-weight: 400;
|
||||
margin-top: 0.4rem;
|
||||
color: $color-black-light-3;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -69,17 +96,23 @@
|
|||
margin: 0;
|
||||
|
||||
> .group {
|
||||
margin: 15px 0;
|
||||
@include card();
|
||||
list-style-type: none;
|
||||
margin: 0 0 2rem 0;
|
||||
padding: 15px 20px;
|
||||
width: 100%;
|
||||
|
||||
.name {
|
||||
color: $color-black-light-1;
|
||||
> .name {
|
||||
font-size: 1.3rem;
|
||||
font-weight: 600;
|
||||
font-weight: 700;
|
||||
color: map-get($gray-shades, 800);
|
||||
}
|
||||
|
||||
> .purpose {
|
||||
font-size: 1rem;
|
||||
color: map-get($gray-shades, 600);
|
||||
}
|
||||
> .desc {
|
||||
font-size: 1.1rem;
|
||||
font-weight: 400;
|
||||
margin-top: 0.4rem;
|
||||
color: $color-black-light-3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -87,11 +120,11 @@
|
|||
// used for group admin
|
||||
> .group-users-members {
|
||||
> .item {
|
||||
margin: 10px 0;
|
||||
margin: 5px 0;
|
||||
|
||||
> .fullname {
|
||||
color: $theme-500;
|
||||
font-size: 1.2rem;
|
||||
color: map-get($gray-shades, 800);
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -149,7 +182,7 @@
|
|||
border: 1px solid map-get($green-shades, 200);
|
||||
padding: 20px 20px;
|
||||
background-color: map-get($green-shades, 100);
|
||||
color: $color-black-light-1;
|
||||
color: map-get($green-shades, 700);
|
||||
|
||||
> .backup-fail {
|
||||
margin: 10px 0;
|
||||
|
@ -168,7 +201,7 @@
|
|||
margin: 50px 0;
|
||||
padding: 20px 20px;
|
||||
background-color: map-get($red-shades, 100);
|
||||
color: $color-black-light-1;
|
||||
color: map-get($red-shades, 700);
|
||||
|
||||
> .restore-fail {
|
||||
margin: 10px 0;
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
@include border-radius(3px);
|
||||
margin: 0 0 15px 0;
|
||||
padding: 10px 15px;
|
||||
color: map-get($gray-shades, 600);
|
||||
color: map-get($gray-shades, 700);
|
||||
background-color: map-get($gray-shades, 100);
|
||||
border: 1px solid map-get($gray-shades, 600);
|
||||
border: 1px solid map-get($gray-shades, 200);
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
list-style-type: none;
|
||||
|
@ -20,13 +20,12 @@
|
|||
|
||||
&:hover {
|
||||
> .text-header, > .text {
|
||||
color: $color-black-light-1;
|
||||
color: map-get($gray-shades, 800);
|
||||
}
|
||||
}
|
||||
|
||||
> .text-header {
|
||||
@include ease-in();
|
||||
color: map-get($gray-shades, 600);
|
||||
font-size: 1.3rem;
|
||||
font-weight: 600;
|
||||
margin-bottom: 5px;
|
||||
|
@ -38,9 +37,8 @@
|
|||
|
||||
> .text {
|
||||
@include ease-in();
|
||||
color: map-get($gray-shades, 600);
|
||||
font-size: 1rem;
|
||||
font-weight: 500;
|
||||
font-weight: 400;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
|
@ -51,7 +49,7 @@
|
|||
position: absolute;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
color: map-get($green-shades, 600);
|
||||
color: map-get($yellow-shades, 800);
|
||||
font-weight: 700;
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
@ -59,11 +57,11 @@
|
|||
|
||||
> .selected {
|
||||
> .text-header, > .text {
|
||||
color: $color-black-light-1;
|
||||
color: map-get($yellow-shades, 800) !important;
|
||||
}
|
||||
|
||||
background-color: map-get($yellow-shades, 700) !important;
|
||||
border: 1px solid map-get($yellow-shades, 700) !important;
|
||||
background-color: map-get($yellow-shades, 100) !important;
|
||||
border: 1px solid map-get($yellow-shades, 300) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -163,7 +163,7 @@
|
|||
{{ui/ui-button-gap}}
|
||||
{{/if}}
|
||||
|
||||
{{ui/ui-button color=constants.Color.Green light=true label=constants.Label.Activate onClick=(action "onSave")}}
|
||||
{{ui/ui-button color=constants.Color.Green light=true icon=constants.Icon.Locked label=constants.Label.Activate onClick=(action "onSave")}}
|
||||
</form>
|
||||
|
||||
{{#if (gt keycloakFailure.length 0)}}
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
{{#if backupRunning}}
|
||||
<h3 class="text-success">Backup running, please wait...</h3>
|
||||
{{else}}
|
||||
{{ui/ui-button color=constants.Color.Yellow light=true label=(concat "TENANT BACKUP (" appMeta.appHost ")") onClick=(action "onBackup")}}
|
||||
{{ui/ui-button color=constants.Color.Yellow light=true icon=constants.Icon.Database label=(concat "BACKUP TENANT (" appMeta.appHost ")") onClick=(action "onBackup")}}
|
||||
{{#if session.isGlobalAdmin}}
|
||||
{{ui/ui-button-gap}}
|
||||
{{ui/ui-button color=constants.Color.Green light=true label="SYSTEM BACKUP" onClick=(action "onSystemBackup")}}
|
||||
{{ui/ui-button color=constants.Color.Yellow light=true icon=constants.Icon.Database label="BACKUP SYSTEM" onClick=(action "onSystemBackup")}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{#if backupFailed}}
|
||||
|
@ -44,7 +44,7 @@
|
|||
<div class="backup-restore">
|
||||
<div class="restore-zone">
|
||||
{{#if session.isGlobalAdmin}}
|
||||
<p class="text-danger">Restore from a <b>system backup</b> should only be performed on an <b>empty Documize database.</b></p>
|
||||
<p>Restore from a <b>system backup</b> should only be performed on an <b>empty Documize database.</b></p>
|
||||
{{/if}}
|
||||
<p>Restore operation will <b>re-create</b> users, groups, permissions, spaces, categories and content.</p>
|
||||
<p>It can take <b>several minutes</b> to complete the restore process — please be patient while the restore operation is in progress.</p>
|
||||
|
@ -63,7 +63,7 @@
|
|||
<div class="restore-success">Restore completed — restart your browser and log in</div>
|
||||
{{else}}
|
||||
{{#if restoreUploadReady}}
|
||||
{{ui/ui-button color=constants.Color.Red light=false label=restoreButtonLabel onClick=(action "onShowRestoreModal")}}
|
||||
{{ui/ui-button color=constants.Color.Red light=false icon=constants.Icon.Database label=restoreButtonLabel onClick=(action "onShowRestoreModal")}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
|
|
|
@ -11,13 +11,13 @@
|
|||
<small class="form-text text-muted">Provide short message explaining this Documize instance</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Anonymous Access</label>
|
||||
<div class="form-check">
|
||||
<input type="checkbox" class="form-check-input" id="allowAnonymousAccess" checked={{model.general.allowAnonymousAccess}}>
|
||||
<label class="form-check-label" for="allowAnonymousAccess">
|
||||
Make content marked as "Everyone" available to anonymous users
|
||||
</label>
|
||||
</div>
|
||||
<label>Site Theme</label>
|
||||
{{ui/theme-picker onChange=(action "onThemeChange")}}
|
||||
<small class="form-text text-muted">Users can set their own theme under Profile</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Public Spaces Viewable By Anonymous Users</label>
|
||||
{{x-toggle value=model.general.allowAnonymousAccess size="medium" theme="light" onToggle=(action (mut model.general.allowAnonymousAccess))}}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="conversionEndpoint">Conversion Service URL</label>
|
||||
|
@ -41,12 +41,7 @@
|
|||
</select>
|
||||
<small class="form-text text-muted">How many tags can be assigned to a document (between 3 and 10 tags)</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Default Site Theme</label>
|
||||
{{ui/theme-picker onChange=(action "onThemeChange")}}
|
||||
<small class="form-text text-muted">Users can set their own theme under Profile</small>
|
||||
</div>
|
||||
|
||||
{{ui/ui-button color=constants.Color.Green light=true label=constants.Label.Save onClick=(action "save")}}
|
||||
{{ui/ui-button color=constants.Color.Green light=true icon=constants.Icon.Settings label=constants.Label.Save onClick=(action "save")}}
|
||||
</form>
|
||||
</div>
|
|
@ -28,6 +28,6 @@
|
|||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{ui/ui-button color=constants.Color.Green light=true label=constants.Label.Save onClick=(action "onSave")}}
|
||||
{{ui/ui-button color=constants.Color.Green light=true icon=constants.Icon.Integrations label=constants.Label.Save onClick=(action "onSave")}}
|
||||
</form>
|
||||
</div>
|
|
@ -2,7 +2,7 @@
|
|||
<form>
|
||||
<div class="form-group">
|
||||
<p>It can take up to 30 minutes to rebuild the search index.</p>
|
||||
{{ui/ui-button color=constants.Color.Yellow light=true label=buttonLabel onClick=(action "reindex")}}
|
||||
{{ui/ui-button color=constants.Color.Yellow light=true icon=constants.Icon.Search label=buttonLabel onClick=(action "reindex")}}
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -31,26 +31,17 @@
|
|||
<small class="form-text text-muted">e.g. Documize</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Anonymous</label>
|
||||
<div class="form-check">
|
||||
{{input id="smtp-anonymous" type="checkbox" checked=model.smtp.anonymous class="form-check-input"}}
|
||||
<label class="form-check-label" for="smtp-anonymous">Anonymous authentication, ignore Username and Password fields</label>
|
||||
</div>
|
||||
<label>Anonymous Authentication (Ignore Credentials)</label>
|
||||
{{x-toggle value=model.smtp.anonymous size="medium" theme="light" onToggle=(action (mut model.smtp.anonymous))}}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Base64</label>
|
||||
<div class="form-check">
|
||||
{{input id="smtp-base64creds" type="checkbox" checked=model.smtp.base64creds class="form-check-input"}}
|
||||
<label class="form-check-label" for="smtp-base64creds">Base64 encode Username and Password fields</label>
|
||||
</div>
|
||||
<label>Base64 Encode Credentials</label>
|
||||
{{x-toggle value=model.smtp.base64creds size="medium" theme="light" onToggle=(action (mut model.smtp.base64creds))}}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>SSL</label>
|
||||
<div class="form-check">
|
||||
{{input id="smtp-usessl" type="checkbox" checked=model.smtp.usessl class="form-check-input"}}
|
||||
<label class="form-check-label" for="smtp-usessl">Use SSL</label>
|
||||
</div>
|
||||
<label>Use SSL</label>
|
||||
{{x-toggle value=model.smtp.usessl size="medium" theme="light" onToggle=(action (mut model.smtp.usessl))}}
|
||||
</div>
|
||||
{{ui/ui-button color=constants.Color.Green light=true label=buttonText onClick=(action "saveSMTP")}}
|
||||
{{ui/ui-button color=constants.Color.Green light=true icon=constants.Icon.Send label=buttonText onClick=(action "saveSMTP")}}
|
||||
</form>
|
||||
</div>
|
|
@ -1,53 +1,68 @@
|
|||
<div class="view-customize">
|
||||
{{#if spaces}}
|
||||
{{ui/ui-button color=constants.Color.Yellow light=true icon=constants.Icon.Export label=constants.Label.Export onClick=(action "onExport")}}
|
||||
{{#if spaces}}
|
||||
{{ui/ui-button color=constants.Color.Yellow light=true icon=constants.Icon.Export label="Export All Content" onClick=(action "onExport")}}
|
||||
{{ui/ui-spacer size=300}}
|
||||
|
||||
<div class="space-list">
|
||||
<div class="view-customize">
|
||||
<ul class="space-list">
|
||||
{{#each spaces as |space|}}
|
||||
<div class="space row">
|
||||
<div class="col-12 col-sm-8">
|
||||
{{#link-to "folder" space.id space.slug class="alt"}}{{space.name}}{{/link-to}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-4 text-right">
|
||||
<div id="space-ownership-button-{{space.id}}" class="button-icon-gray align-middle" {{action "onOwner" space.id}}>
|
||||
<i class="material-icons" data-toggle="modal">person_add</i>
|
||||
{{#attach-tooltip showDelay=1000}}Add myself as space owner{{/attach-tooltip}}
|
||||
</div>
|
||||
<div class="button-icon-gap" />
|
||||
<div id="space-delete-button-{{space.id}}" class="button-icon-danger align-middle" {{action "onShow" space.id}}>
|
||||
<i class="material-icons" data-toggle="modal" data-target="#space-delete-modal" data-backdrop="static">delete</i>
|
||||
{{#attach-tooltip showDelay=1000}}Delete space and all content{{/attach-tooltip}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
<div id="space-delete-modal" class="modal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">Space Deletion</div>
|
||||
<div class="modal-body">
|
||||
<form onsubmit={{action "onDelete"}}>
|
||||
<p>Are you sure you want to delete this space and all documents?</p>
|
||||
<div class="form-group">
|
||||
<label for="delete-space-name">Please type space name to confirm</label>
|
||||
{{input type="text" id="delete-space-name" class="form-control mousetrap" placeholder="Space name" value=deleteSpace.name}}
|
||||
<small class="form-text text-muted">This will delete all documents and templates within this space!</small>
|
||||
<li class="space">
|
||||
<div class="info">
|
||||
{{#link-to "folder.index" space.id space.slug}}
|
||||
<div class="name">
|
||||
{{#if (eq space.spaceType constants.SpaceType.Public)}}
|
||||
<i class={{concat "dicon " constants.Icon.World}}>
|
||||
{{#attach-tooltip showDelay=1000}}Public space{{/attach-tooltip}}
|
||||
</i>
|
||||
{{/if}}
|
||||
{{#if (eq space.spaceType constants.SpaceType.Protected)}}
|
||||
<i class={{concat "dicon " constants.Icon.People}}>
|
||||
{{#attach-tooltip showDelay=1000}}Protected space{{/attach-tooltip}}
|
||||
</i>
|
||||
{{/if}}
|
||||
{{#if (eq space.spaceType constants.SpaceType.Private)}}
|
||||
<i class={{concat "dicon " constants.Icon.Person}}>
|
||||
{{#attach-tooltip showDelay=1000}}Personal space{{/attach-tooltip}}
|
||||
</i>
|
||||
{{/if}}
|
||||
{{space.name}}
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Cancel dismiss=true}}
|
||||
{{ui/ui-button-gap}}
|
||||
{{ui/ui-button color=constants.Color.Red light=true label=constants.Label.Delete onClick=(action "onDelete")}}
|
||||
<div class="desc">Some description that is to be wired up to the backend</div>
|
||||
{{/link-to}}
|
||||
{{ui/ui-spacer size=200}}
|
||||
{{#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="Add myself as owner" onClick=(action "onOwner" space.id)}}
|
||||
{{ui/ui-toolbar-icon icon=constants.Icon.Delete color=constants.Color.Red tooltip="Delete space" onClick=(action "onShow" space.id)}}
|
||||
{{/ui/ui-toolbar}}
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="space-delete-modal" class="modal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">Space Deletion</div>
|
||||
<div class="modal-body">
|
||||
<form onsubmit={{action "onDelete"}}>
|
||||
<p>Are you sure you want to delete this space and all documents?</p>
|
||||
<div class="form-group">
|
||||
<label for="delete-space-name">Please type space name to confirm</label>
|
||||
{{input type="text" id="delete-space-name" class="form-control mousetrap" placeholder="Space name" value=deleteSpace.name}}
|
||||
<small class="form-text text-muted">This will delete all documents and templates within this space!</small>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Cancel 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>
|
||||
{{else}}
|
||||
<p>There are no shared spaces to manage</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<p>There are no shared spaces to manage</p>
|
||||
{{/if}}
|
||||
|
||||
|
||||
|
|
|
@ -1,213 +1,196 @@
|
|||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="view-customize">
|
||||
{{ui/ui-button color=constants.Color.Green light=true icon=constants.Icon.People label=constants.Label.Add onClick=(action "onShowAddGroupModal")}}
|
||||
{{ui/ui-spacer size=300}}
|
||||
<div id="add-group-modal" class="modal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">Add Group</div>
|
||||
<div class="modal-body">
|
||||
<form onsubmit= {{action "onAddGroup"}}>
|
||||
<div class="form-group">
|
||||
<label for="new-group-name">Name</label>
|
||||
{{focus-input id="new-group-name" type="text" class="form-control mousetrap" placeholder="Enter group name" value=newGroup.name}}
|
||||
<small class="form-text text-muted">e.g. Managers, Developers, Acme Team</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="new-group-desc">Description (optional)</label>
|
||||
{{textarea id="new-group-desc" value=newGroup.purpose class="form-control" rows="3"}}
|
||||
</div>
|
||||
</form>
|
||||
<div class="view-customize">
|
||||
{{ui/ui-button color=constants.Color.Green light=true icon=constants.Icon.People label=constants.Label.Add onClick=(action "onShowAddGroupModal")}}
|
||||
<div id="add-group-modal" class="modal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">Add Group</div>
|
||||
<div class="modal-body">
|
||||
<form onsubmit= {{action "onAddGroup"}}>
|
||||
<div class="form-group">
|
||||
<label for="new-group-name">Name</label>
|
||||
{{focus-input id="new-group-name" type="text" class="form-control mousetrap" placeholder="Enter group name" value=newGroup.name}}
|
||||
<small class="form-text text-muted">e.g. Managers, Developers, Acme Team</small>
|
||||
</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.Add onClick=(action "onAddGroup")}}
|
||||
<div class="form-group">
|
||||
<label for="new-group-desc">Description (optional)</label>
|
||||
{{textarea id="new-group-desc" value=newGroup.purpose class="form-control" rows="3"}}
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</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.Add onClick=(action "onAddGroup")}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Put these as cards with nice action CTAs</p>
|
||||
<div class="groups-list">
|
||||
{{#each groups as |group|}}
|
||||
<div class="row group">
|
||||
<div class="col-8">
|
||||
<div class="name">
|
||||
{{group.name}} ({{group.members}})
|
||||
{{#if group.purpose}}
|
||||
<div class="purpose">{{group.purpose}}</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4 buttons text-right">
|
||||
<button class="btn btn-primary" {{action "onShowAddMemberModal" group.id}}>Add Member</button>
|
||||
{{#if (gt group.members 0)}}
|
||||
<div class="button-icon-gap" />
|
||||
<button class="btn btn-danger" {{action "onShowRemoveMemberModal" group.id}}>Remove Member</button>
|
||||
{{/if}}
|
||||
<div class="button-icon-gap" />
|
||||
<div class="button-icon-gray align-middle" {{action "onShowEditModal" group.id}}>
|
||||
<i class="material-icons">edit</i>
|
||||
{{#attach-tooltip showDelay=1000}}Edit group{{/attach-tooltip}}
|
||||
</div>
|
||||
<div class="button-icon-gap" />
|
||||
<div class="button-icon-danger align-middle" {{action "onShowDeleteModal" group.id}}>
|
||||
<i class="material-icons">delete</i>
|
||||
{{#attach-tooltip showDelay=1000}}Delete group{{/attach-tooltip}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="margin-top-30">
|
||||
<i>No groups</i>
|
||||
</div>
|
||||
{{/each}}
|
||||
{{ui/ui-spacer size=300}}
|
||||
|
||||
<div class="groups-list">
|
||||
{{#each groups as |group|}}
|
||||
<div class="group">
|
||||
<div class="name">
|
||||
{{group.name}} ({{group.members}})
|
||||
</div>
|
||||
<div class="desc">{{group.purpose}}</div>
|
||||
{{ui/ui-spacer size=200}}
|
||||
{{#ui/ui-toolbar dark=false light=true raised=true large=false bordered=true}}
|
||||
{{ui/ui-toolbar-icon icon=constants.Icon.AddUser color=constants.Color.Gray tooltip="Add members" onClick=(action "onShowAddMemberModal" group.id)}}
|
||||
{{#if (gt group.members 0)}}
|
||||
{{ui/ui-toolbar-icon icon=constants.Icon.RemoveUser color=constants.Color.Gray tooltip="Remove members" onClick=(action "onShowRemoveMemberModal" group.id)}}
|
||||
{{/if}}
|
||||
{{ui/ui-toolbar-icon icon=constants.Icon.Edit color=constants.Color.Gray tooltip="Edit group" onClick=(action "onShowEditModal" group.id)}}
|
||||
{{ui/ui-toolbar-icon icon=constants.Icon.Delete color=constants.Color.Red tooltip="Delete group" onClick=(action "onShowDeleteModal" group.id)}}
|
||||
{{/ui/ui-toolbar}}
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
<div id="delete-group-modal" class="modal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">Delete Group</div>
|
||||
<div class="modal-body">
|
||||
<form onsubmit= {{action "onDeleteGroup"}}>
|
||||
<p>Are you sure you want to delete this group?</p>
|
||||
<div class="form-group">
|
||||
<label for="delete-group-name">Please type group name to confirm</label>
|
||||
{{input id="delete-group-name" type="text" class="form-control mousetrap" placeholder="Group name" value=deleteGroup.name}}
|
||||
<small class="form-text text-muted">This will remove group membership information and associated permissions!</small>
|
||||
</div>
|
||||
</form>
|
||||
<div id="delete-group-modal" class="modal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">Delete Group</div>
|
||||
<div class="modal-body">
|
||||
<form onsubmit= {{action "onDeleteGroup"}}>
|
||||
<p>Are you sure you want to delete this group?</p>
|
||||
<div class="form-group">
|
||||
<label for="delete-group-name">Please type group name to confirm</label>
|
||||
{{input id="delete-group-name" type="text" class="form-control mousetrap" placeholder="Group name" value=deleteGroup.name}}
|
||||
<small class="form-text text-muted">This will remove group membership information and associated permissions!</small>
|
||||
</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 "onDeleteGroup")}}
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</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 "onDeleteGroup")}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="edit-group-modal" class="modal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">Edit Group</div>
|
||||
<div class="modal-body">
|
||||
<form onsubmit= {{action "onEditGroup"}}>
|
||||
<div class="form-group">
|
||||
<label for="edit-group-name">Name</label>
|
||||
{{input id="edit-group-name" type="text" class="form-control mousetrap" placeholder="Enter group name" value=editGroup.name}}
|
||||
<small class="form-text text-muted">e.g. Managers, Developers, Acme Team</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="edit-group-desc">Description (optional)</label>
|
||||
{{textarea id="edit-group-desc" value=editGroup.purpose class="form-control" rows="3"}}
|
||||
</div>
|
||||
</form>
|
||||
<div id="edit-group-modal" class="modal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">Edit Group</div>
|
||||
<div class="modal-body">
|
||||
<form onsubmit= {{action "onEditGroup"}}>
|
||||
<div class="form-group">
|
||||
<label for="edit-group-name">Name</label>
|
||||
{{input id="edit-group-name" type="text" class="form-control mousetrap" placeholder="Enter group name" value=editGroup.name}}
|
||||
<small class="form-text text-muted">e.g. Managers, Developers, Acme Team</small>
|
||||
</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 "onEditGroup")}}
|
||||
<div class="form-group">
|
||||
<label for="edit-group-desc">Description (optional)</label>
|
||||
{{textarea id="edit-group-desc" value=editGroup.purpose class="form-control" rows="3"}}
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</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 "onEditGroup")}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="group-remove-member-modal" class="modal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">Remove Member — {{membersGroup.name}} ({{members.length}})</div>
|
||||
<div class="modal-body">
|
||||
<div class="view-customize">
|
||||
<div class="group-users-members my-5">
|
||||
{{#each members as |member|}}
|
||||
<div class="row item">
|
||||
<div class="col-10 fullname">{{member.fullname}}</div>
|
||||
<div class="col-2 text-right">
|
||||
<button class="btn btn-danger" {{action "onLeaveGroup" member.userId}}>Remove</button>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Close dismiss=true}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="group-add-member-modal" class="modal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">Add Member — {{membersGroup.name}} ({{members.length}})</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-group">
|
||||
<label for="group-members-search">Search users to join this group</label>
|
||||
{{input id="group-members-search" type="text" class="form-control mousetrap" placeholder="Search members and users..." value=searchText key-up=(action "onSearch")}}
|
||||
<small class="form-text text-muted">search firstname, lastname, email</small>
|
||||
</div>
|
||||
<div class="view-customize">
|
||||
<div class="text-center">
|
||||
<div class="btn-group btn-group-toggle">
|
||||
{{#attach-tooltip showDelay=1000}}Number of users to display{{/attach-tooltip}}
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 1) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 1}}>1
|
||||
</label>
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 10) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 10}}>10
|
||||
</label>
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 25) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 25}}>25
|
||||
</label>
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 50) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 50}}>50
|
||||
</label>
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 100) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 100}}>100
|
||||
</label>
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 250) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 250}}>250
|
||||
</label>
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 500) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 500}}>500
|
||||
</label>
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 1000) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 1000}}>1,000
|
||||
</label>
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 99999) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 99999}}>all
|
||||
</label>
|
||||
<div id="group-remove-member-modal" class="modal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">Remove Member — {{membersGroup.name}} ({{members.length}})</div>
|
||||
<div class="modal-body">
|
||||
<div class="view-customize">
|
||||
<div class="group-users-members my-5">
|
||||
{{#each members as |member|}}
|
||||
<div class="row item">
|
||||
<div class="col-10 fullname">{{member.fullname}}</div>
|
||||
<div class="col-2 text-right">
|
||||
{{#ui/ui-toolbar dark=false light=true raised=true large=false bordered=true}}
|
||||
{{ui/ui-toolbar-icon icon=constants.Icon.RemoveUser color=constants.Color.Red tooltip="Remove member" onClick=(action "onLeaveGroup" member.userId)}}
|
||||
{{/ui/ui-toolbar}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix" />
|
||||
|
||||
<div class="group-users-members my-5">
|
||||
{{#each users as |user|}}
|
||||
<div class="row item">
|
||||
<div class="col-10 fullname">{{user.firstname}} {{user.lastname}}</div>
|
||||
<div class="col-2 text-right">
|
||||
{{#if user.isMember}}
|
||||
<button class="btn btn-danger" {{action "onLeaveGroup" user.id}}>Remove</button>
|
||||
{{else}}
|
||||
<button class="btn btn-success" {{action "onJoinGroup" user.id}}>Add</button>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Close dismiss=true}}
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Close dismiss=true}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="group-add-member-modal" class="modal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">Add Member — {{membersGroup.name}} ({{members.length}})</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-group">
|
||||
<label for="group-members-search">Search users to join this group</label>
|
||||
{{input id="group-members-search" type="text" class="form-control mousetrap" placeholder="Search members and users..." value=searchText key-up=(action "onSearch")}}
|
||||
<small class="form-text text-muted">search firstname, lastname, email</small>
|
||||
</div>
|
||||
<div class="view-customize">
|
||||
<div class="text-center">
|
||||
<div class="btn-group btn-group-toggle">
|
||||
{{#attach-tooltip showDelay=1000}}Number of users to display{{/attach-tooltip}}
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 1) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 1}}>1
|
||||
</label>
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 10) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 10}}>10
|
||||
</label>
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 25) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 25}}>25
|
||||
</label>
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 50) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 50}}>50
|
||||
</label>
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 100) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 100}}>100
|
||||
</label>
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 250) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 250}}>250
|
||||
</label>
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 500) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 500}}>500
|
||||
</label>
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 1000) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 1000}}>1,000
|
||||
</label>
|
||||
<label class="btn btn-outline-secondary {{if (eq userLimit 99999) "active"}}">
|
||||
<input type="radio" name="options" autocomplete="off" {{action "onLimit" 99999}}>all
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix" />
|
||||
|
||||
<div class="group-users-members my-5">
|
||||
{{#each users as |user|}}
|
||||
<div class="row item">
|
||||
<div class="col-10 fullname">{{user.firstname}} {{user.lastname}}</div>
|
||||
<div class="col-2 text-right">
|
||||
{{#ui/ui-toolbar dark=false light=true raised=true large=false bordered=true}}
|
||||
{{#if user.isMember}}
|
||||
{{ui/ui-toolbar-icon icon=constants.Icon.RemoveUser color=constants.Color.Red tooltip="Remove member" onClick=(action "onLeaveGroup" user.id)}}
|
||||
{{else}}
|
||||
{{ui/ui-toolbar-icon icon=constants.Icon.AddUser color=constants.Color.Green tooltip="Add member" onClick=(action "onJoinGroup" user.id)}}
|
||||
{{/if}}
|
||||
{{/ui/ui-toolbar}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Close dismiss=true}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -6,7 +6,6 @@
|
|||
{{yield}}
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
{{outlet "buttons"}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Binary file not shown.
|
@ -199,6 +199,15 @@
|
|||
<glyph glyph-name="notification"
|
||||
unicode=""
|
||||
horiz-adv-x="256" d="M111 226.646C62.875 210.535 21.7 196.412 19.5 195.261C12.071 191.376 5.312 182.832 2.081 173.241C-3.075 157.934 1.396 140.103 13.025 129.596C18.261 124.866 23.114 122.523 36.847 118.095L48.455 114.352L60.207 85.426C91.413 8.612 89.076 13.91 93.966 8.904C109.853 -7.36 136.832 -0.014 142.952 22.243C145.159 30.271 143.957 35.115 133.058 62.09C127.412 76.066 122.571 88.05 122.3 88.723C122.029 89.395 139.288 84.073 160.654 76.896C196.386 64.893 199.981 63.877 205.5 64.219C234.164 65.996 255.965 107.373 255.965 160C255.965 212.946 233.789 254.641 205.066 255.697C198.836 255.926 194.021 254.439 111 226.646M214.256 236.388C216.519 234.797 220.518 230.347 223.142 226.498C245.586 193.582 245.614 126.826 223.197 93.521C211.01 75.415 196.323 75.618 184.394 94.057C164.652 124.576 162.425 182.115 179.616 217.512C189.431 237.72 202.346 244.758 214.256 236.388M164.643 223.25C148.018 190.213 148.018 129.787 164.643 96.75C165.958 94.138 166.689 92 166.267 92C165.845 92 134.304 102.399 96.175 115.108C32.868 136.211 26.554 138.512 23.443 141.624C17.703 147.364 16.517 150.509 16.517 160C16.517 169.563 17.553 172.252 23.529 178.208C27.037 181.705 31.173 183.229 95.875 204.879C133.619 217.509 165.07 227.878 165.767 227.921C166.616 227.974 166.246 226.435 164.643 223.25M188.5 190.846C180.659 186.139 183.736 176.853 193.501 175.753C206.071 174.336 212.131 159.946 204.273 150.175C201.481 146.704 197.817 144.894 190.778 143.511C184.258 142.23 182.016 135.257 186.636 130.636C192.92 124.353 209.814 130.251 217.939 141.564C229.949 158.288 223.177 181.389 203.918 189.397C198.743 191.549 190.899 192.286 188.5 190.846M86.169 101.789L101.905 96.578L114.952 64.24C122.129 46.454 128 30.679 128 29.185C128 22.489 121.353 16 114.5 16.005C110.93 16.008 105.686 19 103.641 22.202C102.575 23.871 74.555 91.966 69.312 105.63C69.023 106.384 69.157 107 69.61 107C70.063 107 77.515 104.655 86.169 101.789" />
|
||||
<glyph glyph-name="handshake"
|
||||
unicode=""
|
||||
horiz-adv-x="256" d="M2.483 245.574L0 243.091L0 192.191L0 141.292L2.452 138.646C5.744 135.094 10.256 135.094 13.548 138.646L16 141.292L16 186.665L16 232.037L57.75 231.972L99.5 231.907L101.75 234.509C104.655 237.869 104.602 241.188 101.587 244.694L99.174 247.5L52.07 247.779L4.966 248.057L2.483 245.574M153 246.453C149.425 245.689 142.675 243.151 138 240.812C130.007 236.813 127.838 234.916 101.65 209.03C70.32 178.059 68.637 175.813 68.653 165C68.665 157.16 71.48 150.542 76.782 145.887C82.05 141.261 86.582 139.658 94.541 139.604C103.416 139.543 102.857 139.218 134.324 162.765L159.148 181.342L194.139 146.421C213.385 127.214 229.816 110.208 230.654 108.629C233.637 103.004 230.039 95.158 223.484 92.995C217.685 91.081 214.537 92.923 201.983 105.57C189.665 117.981 186.14 120.503 182.42 119.569C178.985 118.707 176 115.061 176 111.727C176 109.347 178.561 106.215 190.36 94.165C198.258 86.099 205.05 78.448 205.455 77.163C207.21 71.583 202.924 63.772 197.337 62.37C191.319 60.859 188.686 62.557 173.828 77.527C161.159 90.291 159.076 92 156.186 92C151.867 92 148 88.206 148 83.968C148 81.348 149.749 79.046 158.865 69.673C164.841 63.528 170.282 57.44 170.957 56.145C172.572 53.042 171.585 48.182 168.488 43.984C165.339 39.716 165.327 36.018 168.452 32.646C173.727 26.954 181.941 31.436 185.716 42.064L187.34 46.636L192.565 46.203C207.172 44.992 222 58.269 222 72.559C222 75.492 222.359 75.853 226.25 76.839C244.443 81.446 253.12 102.354 243.531 118.477C242.215 120.69 223.657 139.937 202.29 161.25C168.118 195.335 163.072 200 160.382 200C157.955 200 151.451 195.593 128.865 178.644C113.213 166.898 99.444 156.773 98.269 156.144C94.775 154.274 91.225 154.827 87.956 157.75C85.438 160.001 84.869 161.293 84.82 164.874L84.761 169.247L111.63 196.169C135.417 220.001 139.303 223.487 145.5 226.546C149.35 228.447 154.924 230.452 157.886 231.001C160.875 231.555 180.354 232 201.636 232L240 232L240 186.646L240 141.292L242.452 138.646C245.744 135.094 250.256 135.094 253.548 138.646L256 141.292L256 192.191L256 243.091L253.545 245.545L251.091 248L205.295 247.921C170.267 247.86 157.972 247.515 153 246.453M36.698 139.556C24.054 135.046 11.02 119.028 11.02 108C11.02 98.45 19.822 86.319 30.287 81.447C33.154 80.112 35.956 79.015 36.513 79.01C37.071 79.004 38.071 76.708 38.736 73.907C41.054 64.151 51.557 53.323 61.069 50.886C65.45 49.763 65.763 49.45 66.886 45.069C69.335 35.511 79.938 25.255 90.042 22.669C94.534 21.519 95.554 20.828 96.346 18.399C98.449 11.952 106.51 3.277 112.522 0.992C113.957 0.446 118.174 0 121.894 0C127.775 0 129.264 0.402 133.309 3.081C139.188 6.975 146.745 15.298 149.126 20.5C154.424 32.078 146.479 48.214 132.934 53.387C128.777 54.975 128.375 55.463 126.787 60.85C125.853 64.02 123.692 68.371 121.985 70.519C117.776 75.815 109.621 81.793 105.567 82.553C102.529 83.123 102.199 83.543 101.767 87.379C100.496 98.653 89.674 110.512 78.163 113.247C73.644 114.32 73.222 114.697 71.683 119.029C67.467 130.901 54.802 140.912 44 140.912C42.075 140.912 38.789 140.302 36.698 139.556M47.8 123.595C53.32 120.723 57.545 114.309 56.544 110.32C55.773 107.248 47.595 98.359 43.674 96.331C40.158 94.513 37.152 95.16 33.041 98.619C28.964 102.049 26.676 106.573 27.453 109.667C28.621 114.323 39.991 124.985 43.8 124.996C44.514 124.998 46.314 124.368 47.8 123.595M81.143 93.143C88.328 85.957 87.648 82.767 76.687 72.25C68.212 64.119 65.785 63.929 58.857 70.857C51.872 77.843 52.446 81.268 62.173 90.624C71.686 99.773 74.181 100.105 81.143 93.143M102.931 66.536C106.399 64.742 110.797 59.656 111.582 56.531C112.406 53.245 110.037 49.271 103.656 43.236C96.245 36.227 93.548 36.166 86.857 42.857C80.066 49.648 80.528 53.396 89.17 61.622C96.162 68.276 98.175 68.995 102.931 66.536M131.467 35.467C136.604 30.33 136.221 27.901 129.16 20.84C125.459 17.139 122.486 15 121.042 15C118.053 15 111 22.053 111 25.042C111 26.486 113.139 29.459 116.84 33.16C123.901 40.221 126.33 40.604 131.467 35.467" />
|
||||
<glyph glyph-name="add-27"
|
||||
unicode=""
|
||||
horiz-adv-x="256" d="M138.5 254.567C129.017 252.344 124.29 250.347 116.932 245.455C103.327 236.41 92.741 220.991 89.499 205.5C87.557 196.216 87.557 171.784 89.499 162.5C95.523 133.713 122.37 112.035 152 112.035C181.63 112.035 208.477 133.713 214.501 162.5C216.443 171.784 216.443 196.216 214.501 205.5C209.973 227.14 192.501 246.356 171.282 253.034C162.535 255.787 146.832 256.521 138.5 254.567M161.447 238.925C170.818 237.193 177.765 233.339 185.552 225.552C197.01 214.093 200 205.495 200 184C200 162.52 197.015 153.928 185.552 142.42C175.727 132.557 165.124 128 152 128C138.876 128 128.273 132.557 118.448 142.42C106.985 153.928 104 162.52 104 184C104 205.616 106.948 214.115 118.42 225.568C130.643 237.769 144.473 242.063 161.447 238.925M34.455 165.545C32.09 163.181 32 162.594 32 149.545L32 136L18.455 136C5.406 136 4.819 135.91 2.455 133.545C-0.734 130.357 -0.735 126.085 2.452 122.646C4.872 120.036 5.086 120 18.452 120L32 120L32 106.646C32 93.857 32.104 93.18 34.452 90.646C37.744 87.094 42.256 87.094 45.548 90.646C47.896 93.18 48 93.857 48 106.646L48 120L61.548 120C74.914 120 75.128 120.036 77.548 122.646C80.735 126.085 80.734 130.357 77.545 133.545C75.181 135.91 74.594 136 61.545 136L48 136L48 149.545C48 162.594 47.91 163.181 45.545 165.545C43.998 167.093 41.948 168 40 168C38.052 168 36.002 167.093 34.455 165.545M125.056 94.96C105.685 93.09 84.364 88.057 72.347 82.517C62.646 78.045 56.822 72.441 52.235 63.165L48.5 55.612L48.176 30.532L47.853 5.451L50.379 2.726L52.905 0L152 0L251.095 0L253.621 2.726L256.147 5.451L255.824 30.476L255.5 55.5L252.39 62C247.697 71.807 242.213 77.357 232.646 81.98C223.492 86.404 206.645 91.047 190.981 93.463C178.455 95.394 138.869 96.294 125.056 94.96M175.5 78.945C190.834 77.624 209.465 73.88 220.406 69.92C227.559 67.332 229.693 66.023 233.3 62.011C239.244 55.4 240 52.084 240 32.634L240 16L152 16L64 16L64 32.634C64 52.084 64.756 55.4 70.7 62.011C74.307 66.023 76.441 67.332 83.594 69.92C106.533 78.221 142.697 81.772 175.5 78.945" />
|
||||
<glyph glyph-name="delete-28"
|
||||
unicode=""
|
||||
horiz-adv-x="256" d="M138.5 254.567C129.017 252.344 124.29 250.347 116.932 245.455C103.327 236.41 92.741 220.991 89.499 205.5C87.557 196.216 87.557 171.784 89.499 162.5C95.523 133.713 122.37 112.035 152 112.035C181.63 112.035 208.477 133.713 214.501 162.5C216.443 171.784 216.443 196.216 214.501 205.5C209.973 227.14 192.501 246.356 171.282 253.034C162.535 255.787 146.832 256.521 138.5 254.567M161.447 238.925C170.818 237.193 177.765 233.339 185.552 225.552C197.01 214.093 200 205.495 200 184C200 162.52 197.015 153.928 185.552 142.42C175.727 132.557 165.124 128 152 128C138.876 128 128.273 132.557 118.448 142.42C106.985 153.928 104 162.52 104 184C104 205.616 106.948 214.115 118.42 225.568C130.643 237.769 144.473 242.063 161.447 238.925M2.455 133.545C-0.734 130.357 -0.735 126.085 2.452 122.646L4.905 120L40 120L75.095 120L77.548 122.646C80.735 126.085 80.734 130.357 77.545 133.545L75.091 136L40 136L4.909 136L2.455 133.545M125.056 94.96C105.685 93.09 84.364 88.057 72.347 82.517C62.646 78.045 56.822 72.441 52.235 63.165L48.5 55.612L48.176 30.532L47.853 5.451L50.379 2.726L52.905 0L152 0L251.095 0L253.621 2.726L256.147 5.451L255.824 30.476L255.5 55.5L252.39 62C247.697 71.807 242.213 77.357 232.646 81.98C223.492 86.404 206.645 91.047 190.981 93.463C178.455 95.394 138.869 96.294 125.056 94.96M175.5 78.945C190.834 77.624 209.465 73.88 220.406 69.92C227.559 67.332 229.693 66.023 233.3 62.011C239.244 55.4 240 52.084 240 32.634L240 16L152 16L64 16L64 32.634C64 52.084 64.756 55.4 70.7 62.011C74.307 66.023 76.441 67.332 83.594 69.92C106.533 78.221 142.697 81.772 175.5 78.945" />
|
||||
</font>
|
||||
</defs>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 82 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue