1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-08-05 05:25:27 +02:00

category permission admin, re-vamped view layout

This commit is contained in:
Harvey Kandola 2017-09-21 15:48:00 +01:00
parent 0c152c219f
commit 3f31d6d15e
48 changed files with 753 additions and 373 deletions

View file

@ -0,0 +1,41 @@
<div class="document-attachments">
{{#if hasAttachments}}
<ul class="list">
{{#each files key="id" as |a index|}}
<li class="item">
<img class="icon" src="/assets/img/attachments/{{document/file-icon a.extension}}" />
<a href="{{ appMeta.endpoint }}/public/attachments/{{ appMeta.orgId }}/{{ a.id }}">
<span class="file">{{ a.filename }}</span>
</a>
{{#if permissions.documentEdit}}
<div class="action round-button-mono">
<i class="material-icons color-gray delete-attachment-{{a.id}}" title="Delete" {{action 'onConfirmDelete' a.id a.filename}}>delete</i>
</div>
{{/if}}
</li>
{{/each}}
</ul>
{{/if}}
{{#if permissions.documentEdit}}
<div class="upload-document-files">
<div class="chip chip-action">
<span id="upload-document-files" class="chip-text">+ attachment</span>
</div>
</div>
{{/if}}
</div>
<div class="dropdown-dialog delete-attachment-dialog">
<div class="content">
<p>Are you sure you want to delete <span class="bold">{{deleteAttachment.name}}?</span></p>
</div>
<div class="actions">
<div class="flat-button" {{action 'onCancel'}}>
cancel
</div>
<div class="flat-button flat-red" {{action 'onDelete'}}>
delete
</div>
</div>
<div class="clearfix"></div>
</div>

View file

@ -0,0 +1,35 @@
<div class="sidebar-wrapper">
<div class="sidebar-panel">
<div class="document-sidebar-view-index">
<div class="structure">
{{#if session.authenticated}}
{{#unless emptyState}}
<div id="tocToolbar" class="hidden-xs hidden-sm toc-controls {{if state.actionablePage 'current-page' ''}}">
<div id="toc-up-button" class="round-button-mono {{if state.upDisabled 'disabled'}}" data-tooltip="Move up" data-tooltip-position="top center" {{action 'pageUp'}}>
<i class="material-icons">arrow_upward</i>
</div>
<div class="button-gap" />
<div id="toc-down-button" class="round-button-mono {{if state.downDisabled 'disabled'}}" data-tooltip="Move down" data-tooltip-position="top center" {{action 'pageDown'}}>
<i class="material-icons">arrow_downward</i>
</div>
<div class="button-gap" />
<div id="toc-outdent-button" class="round-button-mono {{if state.outdentDisabled 'disabled'}}" data-tooltip="Outdent" data-tooltip-position="top center" {{action 'pageOutdent'}}>
<i class="material-icons">format_indent_decrease</i>
</div>
<div class="button-gap" />
<div id="toc-indent-button" class="round-button-mono {{if state.indentDisabled 'disabled'}}" data-tooltip="Indent" data-tooltip-position="top center" {{action 'pageIndent'}}>
<i class="material-icons">format_indent_increase</i>
</div>
</div>
{{/unless}}
{{/if}}
<ul class="index-list">
{{#each pages key="id" as |p index|}}
{{document/index-entry page=p index=index onClick=(action 'onEntryClick')}}
{{/each}}
</ul>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,80 @@
{{#if (is-equal tab 'activitysdsd')}}
{{document/sidebar-view-activity document=document pages=pages permissions=permissions}}
{{/if}}
<div class="document-toolbar">
<div class="round-button-mono" id="document-more-button">
<i class="material-icons">more_vert</i>
</div>
</div>
{{#dropdown-menu target="document-more-button" position="bottom right" open="click" onOpenCallback=(action 'onMenuOpen') onCloseCallback=(action 'onMenuOpen')}}
<ul class="menu">
{{#if session.authenticated}}
{{#if (is-equal document.layout 'section')}}
<li class="item" {{action 'onLayoutChange' 'doc'}}>Flat view</li>
{{else}}
<li class="item" {{action 'onLayoutChange' 'section'}}>Section view</li>
{{/if}}
{{#if pinState.isPinned}}
<li class="item" {{action 'onUnpin'}}>Unfavorite</li>
{{else}}
<li class="item" id="pin-document-button">Favorite</li>
{{/if}}
{{#if permissions.documentEdit}}
<li class="item">{{#link-to 'document.history'}}History{{/link-to}}</li>
{{/if}}
{{/if}}
{{#if permissions.documentTemplate}}
<li class="item" id="save-template-button">Template</li>
{{/if}}
<li class="divider"/>
<li class="item" id="print-document-button" {{action 'onPrintDocument'}}>Print</li>
{{#if permissions.documentDelete}}
<li class="item danger" id="delete-document-button">Delete</li>
{{/if}}
</ul>
{{/dropdown-menu}}
{{#if session.authenticated}}
{{#if menuOpen}}
{{#unless pinState.isPinned}}
{{#dropdown-dialog target="pin-document-button" position="bottom right" button="Pin" color="flat-green" onAction=(action 'onPin') focusOn="pin-document-name" }}
<div class="input-control">
<label>Favorite Document</label>
<div class="tip">Provide short name</div>
{{input type='text' id="pin-document-name" value=pinState.newName}}
</div>
{{/dropdown-dialog}}
{{/unless}}
{{/if}}
{{#if permissions.documentDelete}}
{{#if menuOpen}}
{{#dropdown-dialog target="delete-document-button" position="bottom right" button="Delete" color="flat-red" onAction=(action 'onDeleteDocument')}}
<p>Are you sure you want to delete this document?</p>
<p>There is no undo, so be careful.</p>
{{/dropdown-dialog}}
{{/if}}
{{/if}}
{{#if permissions.documentTemplate}}
{{#if menuOpen}}
{{#dropdown-dialog target="save-template-button" position="bottom right" button="Save as Template" color="flat-green" onAction=(action 'onSaveTemplate') focusOn="new-template-name" }}
<div class="input-control">
<label>Name</label>
<div class="tip">Short name for this type of document</div>
{{input type='text' id="new-template-name" value=saveTemplate.name}}
</div>
<div class="input-control">
<label>Excerpt</label>
<div class="tip">Explain use case for this template</div>
{{textarea value=saveTemplate.description rows="3" id="new-template-desc"}}
</div>
{{/dropdown-dialog}}
{{/if}}
{{/if}}
{{/if}}

View file

@ -1,3 +1,5 @@
{{document/document-attachments document=document permissions=permissions}}
<div class="document-view {{if (is-equal document.layout 'doc') 'document-view-unified'}}">
{{#if hasPages}}

View file

@ -1,47 +0,0 @@
<div class="sidebar-panel">
<div class="title">Attachments</div>
<div class="document-sidebar-view-attachments">
{{#if permissions.documentEdit}}
<div id="upload-document-files" class="upload-document-files">
Drag-drop files or click to select files
</div>
{{/if}}
<ul class="list">
{{#each files key="id" as |a index|}}
<li class="item">
<img class="icon" src="/assets/img/attachments/{{document/file-icon a.extension}}" />
<a href="{{ appMeta.endpoint }}/public/attachments/{{ appMeta.orgId }}/{{ a.id }}">
<span class="file">{{ a.filename }}</span>
</a>
{{#if permissions.documentEdit}}
<div class="action round-button-mono">
<i class="material-icons color-gray delete-attachment-{{a.id}}" title="Delete" {{action 'onConfirmDelete' a.id a.filename}}>delete</i>
</div>
{{/if}}
</li>
{{/each}}
</ul>
{{#if emptyState}}
<div class="explainer">
<div class="empty-state">
There are no attachments
</div>
</div>
{{/if}}
</div>
<div class="dropdown-dialog delete-attachment-dialog">
<div class="content">
<p>Are you sure you want to delete <span class="bold">{{deleteAttachment.name}}?</span></p>
</div>
<div class="actions">
<div class="flat-button" {{action 'onCancel'}}>
cancel
</div>
<div class="flat-button flat-red" {{action 'onDelete'}}>
delete
</div>
</div>
<div class="clearfix"></div>
</div>
</div>

View file

@ -1,34 +0,0 @@
<div class="sidebar-panel">
<div class="title">Index</div>
<div class="document-sidebar-view-index">
<div class="structure">
{{#if this.session.authenticated}}
{{#unless emptyState}}
<div id="tocToolbar" class="hidden-xs hidden-sm toc-controls {{if state.actionablePage 'current-page' ''}}">
<div id="toc-up-button" class="round-button-mono {{if state.upDisabled 'disabled'}}" data-tooltip="Move up" data-tooltip-position="top center" {{action 'pageUp'}}>
<i class="material-icons">arrow_upward</i>
</div>
<div class="button-gap" />
<div id="toc-down-button" class="round-button-mono {{if state.downDisabled 'disabled'}}" data-tooltip="Move down" data-tooltip-position="top center" {{action 'pageDown'}}>
<i class="material-icons">arrow_downward</i>
</div>
<div class="button-gap" />
<div id="toc-outdent-button" class="round-button-mono {{if state.outdentDisabled 'disabled'}}" data-tooltip="Outdent" data-tooltip-position="top center" {{action 'pageOutdent'}}>
<i class="material-icons">format_indent_decrease</i>
</div>
<div class="button-gap" />
<div id="toc-indent-button" class="round-button-mono {{if state.indentDisabled 'disabled'}}" data-tooltip="Indent" data-tooltip-position="top center" {{action 'pageIndent'}}>
<i class="material-icons">format_indent_increase</i>
</div>
</div>
{{/unless}}
{{/if}}
<ul class="index-list">
{{#each pages key="id" as |p index|}}
{{document/sidebar-view-index-entry page=p index=index onClick=(action 'onEntryClick')}}
{{/each}}
</ul>
</div>
</div>
</div>

View file

@ -1,118 +0,0 @@
<div class="sidebar-toolbar">
<div class="round-button-mono" id="sidebar-zone-more-button">
<i class="material-icons">more_horiz</i>
</div>
<div class="margin-top-20"></div>
<div class="round-button-mono {{if (is-equal tab 'index') 'selected'}}" {{action 'onChangeTab' 'index'}}>
<i class="material-icons">view_headline</i>
</div>
<div class="margin-top-20"></div>
<div class="round-button-mono {{if (is-equal tab 'attachments') 'selected'}}" {{action 'onChangeTab' 'attachments'}}>
<i class="material-icons">attach_file</i>
</div>
{{#if permissions.documentEdit}}
<div class="margin-top-20"></div>
<div class="round-button-mono {{if (is-equal tab 'activity') 'selected'}}" {{action 'onChangeTab' 'activity'}}>
<i class="material-icons">timeline</i>
</div>
{{/if}}
</div>
<div class="sidebar-common">
{{#if document.template}}
<div class="template-header">Template</div>
{{/if}}
{{document/tag-editor documentTags=document.tags permissions=permissions onChange=(action 'onTagChange')}}
</div>
<div class="sidebar-wrapper">
{{#if (is-equal tab 'index')}}
{{document/sidebar-view-index document=document folder=folder pages=pages page=page permissions=permissions
onPageSequenceChange=(action 'onPageSequenceChange') onPageLevelChange=(action 'onPageLevelChange') onGotoPage=(action 'onGotoPage')}}
{{/if}}
{{#if (is-equal tab 'attachments')}}
{{document/sidebar-view-attachments document=document permissions=permissions}}
{{/if}}
{{#if (is-equal tab 'activity')}}
{{document/sidebar-view-activity document=document pages=pages permissions=permissions}}
{{/if}}
</div>
{{#dropdown-menu target="sidebar-zone-more-button" position="bottom left" open="click" onOpenCallback=(action 'onMenuOpen') onCloseCallback=(action 'onMenuOpen')}}
<ul class="menu">
{{#if session.authenticated}}
{{#if (is-equal document.layout 'section')}}
<li class="item" {{action 'onLayoutChange' 'doc'}}>Flat view</li>
<li class="divider"></li>
{{else}}
<li class="item" {{action 'onLayoutChange' 'section'}}>Section view</li>
<li class="divider"></li>
{{/if}}
{{#if pinState.isPinned}}
<li class="item" {{action 'onUnpin'}}>Unpin</li>
{{else}}
<li class="item" id="pin-document-button">Pin</li>
{{/if}}
{{#if permissions.documentEdit}}
<li class="item">
{{#link-to 'document.history'}}History{{/link-to}}
</li>
<li class="divider"></li>
{{/if}}
{{/if}}
{{#if permissions.documentTemplate}}
<li class="item" id="save-template-button">Template</li>
<li class="divider"></li>
{{/if}}
<li class="item" id="print-document-button" {{action 'onPrintDocument'}}>Print</li>
{{#if permissions.documentDelete}}
<li class="divider"></li>
<li class="item danger" id="delete-document-button">Delete</li>
{{/if}}
</ul>
{{/dropdown-menu}}
{{#if session.authenticated}}
{{#if menuOpen}}
{{#unless pinState.isPinned}}
{{#dropdown-dialog target="pin-document-button" position="bottom left" button="Pin" color="flat-green" onAction=(action 'onPin') focusOn="pin-document-name" }}
<div class="input-control">
<label>Pin Document</label>
<div class="tip">A 3 or 4 character name</div>
{{input type='text' id="pin-document-name" value=pinState.newName}}
</div>
{{/dropdown-dialog}}
{{/unless}}
{{/if}}
{{#if permissions.documentDelete}}
{{#if menuOpen}}
{{#dropdown-dialog target="delete-document-button" position="bottom left" button="Delete" color="flat-red" onAction=(action 'onDeleteDocument')}}
<p>Are you sure you want to delete this document?</p>
<p>There is no undo, so be careful.</p>
{{/dropdown-dialog}}
{{/if}}
{{/if}}
{{#if permissions.documentTemplate}}
{{#if menuOpen}}
{{#dropdown-dialog target="save-template-button" position="bottom left" button="Save as Template" color="flat-green" onAction=(action 'onSaveTemplate') focusOn="new-template-name" }}
<div class="input-control">
<label>Name</label>
<div class="tip">Short name for this type of document</div>
{{input type='text' id="new-template-name" value=saveTemplate.name}}
</div>
<div class="input-control">
<label>Excerpt</label>
<div class="tip">Explain use case for this template</div>
{{textarea value=saveTemplate.description rows="3" id="new-template-desc"}}
</div>
{{/dropdown-dialog}}
{{/if}}
{{/if}}
{{/if}}

View file

@ -0,0 +1,14 @@
<div class="back-to-space">
{{#link-to 'folder' folder.id folder.slug}}
<div class="regular-button button-gray">
<i class="material-icons">arrow_back</i>
<div class="name">{{folder.name}}</div>
</div>
{{/link-to}}
</div>
<div class="document-category hide">
<div class="chip chip-action">
<span id="upload-document-files" class="chip-text">+ category</span>
</div>
</div>

View file

@ -9,7 +9,7 @@
{{/each}}
{{#if canAdd}}
<div class="chip-action">
<span id="add-tag-button" class="chip-text">add tag</span>
<span id="add-tag-button" class="chip-text">+ tag</span>
</div>
{{#dropdown-dialog target="add-tag-button" position="bottom left" button="Add" color="flat-green" onAction=(action 'addTag') focusOn="add-tag-field" onOpenCallback=(action 'onTagEditor') targetOffset="20px 0"}}
<div class="input-control">

View file

@ -2,7 +2,7 @@
<div class="panel">
<div class="form-header">
<div class="title">Categories</div>
<div class="tip">Organize and secure document access with optional categories</div>
<div class="tip">Sub-divide spaces and secure document access with categories</div>
</div>
<form id="category-form" {{action 'onAdd' on='submit'}}>
<div class="input-control">
@ -14,26 +14,34 @@
{{focus-input id=(concat 'edit-category-' cat.id) type="text" value=cat.category class="input-inline"}}
</div>
{{else}}
<div class="category">{{cat.category}}</div>
<div class="category">
<div class="name">{{cat.category}}</div>
<div class="info">7 documents, 14 people</div>
</div>
{{/if}}
<div class="pull-right">
<div class="pull-right buttons">
{{#if cat.editMode}}
<button type="submit" class="round-button-mono" {{action 'onSave' cat.id}}>
<i class="material-icons color-green">check</i>
</button>
<div class="round-button-mono" {{action 'onCancel' cat.id}}>
<div class="round-button-mono" {{action 'onEditCancel' cat.id}}>
<i class="material-icons color-gray">close</i>
</div>
{{else}}
<div {{action 'onEdit' cat.id}} class="action round-button-mono button-white">
<i class="material-icons">edit</i>
<div class="">
<div id="category-access-button-{{cat.id}}" data-tooltip="Set user access" data-tooltip-position="top center" class="action round-button-mono button-white" {{action 'onShowAccessPicker' cat.id}}>
<i class="material-icons">person</i>
</div>
<div {{action 'onEdit' cat.id}} class="action round-button-mono button-white">
<i class="material-icons">edit</i>
</div>
<div id="{{concat 'delete-category-' cat.id}}" class="action round-button-mono button-white">
<i class="material-icons">delete</i>
</div>
{{#dropdown-dialog target=(concat 'delete-category-' cat.id) position="bottom right" button="Delete" color="flat-red" onAction=(action 'onDelete' cat.id)}}
<p>Are you sure you want to delete category <b>{{cat.category}}?</b></p>
{{/dropdown-dialog}}
</div>
<div id="{{concat 'delete-category-' cat.id}}" class="action round-button-mono button-white">
<i class="material-icons">delete</i>
</div>
{{#dropdown-dialog target=(concat 'delete-category-' cat.id) position="bottom right" button="Delete" color="flat-red" onAction=(action 'onDelete' cat.id)}}
<p>Are you sure you want to delete category <b>{{cat.category}}?</b></p>
{{/dropdown-dialog}}
{{/if}}
</div>
</div>
@ -51,3 +59,18 @@
</form>
</div>
</div>
<div class="dropdown-dialog category-access-dialog">
<div class="content">
{{ui/ui-list-picker items=categoryUsers nameField='fullname'}}
</div>
<div class="actions">
<div class="flat-button" {{action 'onGrantCancel'}}>
cancel
</div>
<div class="flat-button flat-blue" {{action 'onGrantAccess'}}>
grant access
</div>
</div>
<div class="clearfix"></div>
</div>

View file

@ -54,7 +54,7 @@
{{#if permissions.spaceManage}}
<div class="button-gap"></div>
{{#link-to 'folder.settings' folder.id folder.slug}}{{model.document.name}}
<div class="round-button button-blue" id="space-settings-button" data-tooltip="Manage permissions" data-tooltip-position="top center">
<div class="round-button button-gray" id="space-settings-button" data-tooltip="Manage permissions" data-tooltip-position="top center">
<i class="material-icons">settings</i>
</div>
{{/link-to}}

View file

@ -0,0 +1,12 @@
<div class="widget-list-picker">
<ul class="options">
{{#each items as |item|}}
<li class="option {{if item.selected 'selected'}}" {{action 'onToggle' item}}>
<div class="text">{{get item nameField}}</div>
{{#if item.selected}}
<i class="material-icons">check</i>
{{/if}}
</li>
{{/each}}
</ul>
</div>