mirror of
https://github.com/documize/community.git
synced 2025-07-23 15:19: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
|
@ -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>
|
Loading…
Add table
Add a link
Reference in a new issue