Initial commit
This commit is contained in:
53
client/res/templates/record/bottom.tpl
Normal file
53
client/res/templates/record/bottom.tpl
Normal file
@@ -0,0 +1,53 @@
|
||||
{{#each panelList}}
|
||||
{{#if isRightAfterDelimiter}}
|
||||
<div class="panels-show-more-delimiter">
|
||||
<a role="button" tabindex="0" data-action="showMorePanels" title="{{translate 'Show more'}}">
|
||||
<span class="fas fa-ellipsis-h fa-lg"></span>
|
||||
</a>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if isTabsBeginning}}
|
||||
<div class="tabs btn-group">
|
||||
{{#each ../tabDataList}}
|
||||
<button
|
||||
class="btn btn-text btn-wide{{#if isActive}} active{{/if}}{{#if hidden}} hidden{{/if}}"
|
||||
data-tab="{{@key}}"
|
||||
>{{label}}</button>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<div
|
||||
class="panel panel-{{#if style}}{{style}}{{else}}default{{/if}} panel-{{name}} headered{{#if hidden}} hidden{{/if}}{{#if sticked}} sticked{{/if}}{{#if tabHidden}} tab-hidden{{/if}}"
|
||||
data-name="{{name}}"
|
||||
data-style="{{#if style}}{{style}}{{/if}}"
|
||||
data-tab="{{tabNumber}}"
|
||||
>
|
||||
<div class="panel-heading">
|
||||
<div class="pull-right btn-group panel-actions-container">{{{var actionsViewKey ../this}}}</div>
|
||||
|
||||
<h4 class="panel-title">
|
||||
{{#unless notRefreshable}}
|
||||
<span
|
||||
style="cursor: pointer; user-select: none;"
|
||||
class="action"
|
||||
title="{{translate 'clickToRefresh' category='messages'}}"
|
||||
data-action="refresh"
|
||||
data-panel="{{name}}"
|
||||
>
|
||||
{{/unless}}
|
||||
{{#if titleHtml}}
|
||||
{{{titleHtml}}}
|
||||
{{else}}
|
||||
{{title}}
|
||||
{{/if}}
|
||||
{{#unless notRefreshable}}
|
||||
</span>
|
||||
{{/unless}}
|
||||
</h4>
|
||||
</div>
|
||||
|
||||
<div class="panel-body{{#if isForm}} panel-body-form{{/if}}" data-name="{{name}}">
|
||||
{{{var name ../this}}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
153
client/res/templates/record/detail.tpl
Normal file
153
client/res/templates/record/detail.tpl
Normal file
@@ -0,0 +1,153 @@
|
||||
<div class="detail" id="{{id}}" data-scope="{{scope}}" tabindex="-1">
|
||||
{{#unless buttonsDisabled}}
|
||||
<div class="detail-button-container button-container record-buttons">
|
||||
<div class="sub-container clearfix">
|
||||
<div class="btn-group actions-btn-group" role="group">
|
||||
{{#each buttonList}}
|
||||
{{button name
|
||||
scope=../entityType
|
||||
label=label
|
||||
labelTranslation=labelTranslation
|
||||
style=style
|
||||
hidden=hidden
|
||||
html=html
|
||||
title=title
|
||||
text=text
|
||||
className='btn-xs-wide detail-action-item'
|
||||
disabled=disabled
|
||||
}}
|
||||
{{/each}}
|
||||
{{#if dropdownItemList}}
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-default dropdown-toggle dropdown-item-list-button{{#if dropdownItemListEmpty}} hidden{{/if}}"
|
||||
data-toggle="dropdown"
|
||||
><span class="fas fa-ellipsis-h"></span></button>
|
||||
<ul class="dropdown-menu pull-left">
|
||||
{{#each dropdownItemList}}
|
||||
{{#if this}}
|
||||
{{dropdownItem
|
||||
name
|
||||
scope=../entityType
|
||||
label=label
|
||||
labelTranslation=labelTranslation
|
||||
html=html
|
||||
title=title
|
||||
text=text
|
||||
hidden=hidden
|
||||
disabled=disabled
|
||||
data=data
|
||||
className='detail-action-item'
|
||||
}}
|
||||
{{else}}
|
||||
{{#unless @first}}
|
||||
{{#unless @last}}
|
||||
<li class="divider"></li>
|
||||
{{/unless}}
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if navigateButtonsEnabled}}
|
||||
<div class="pull-right">
|
||||
<div class="btn-group" role="group">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-text btn-icon action {{#unless previousButtonEnabled}} disabled{{/unless}}"
|
||||
data-action="previous"
|
||||
title="{{translate 'Previous Entry'}}"
|
||||
{{#unless previousButtonEnabled}}disabled="disabled"{{/unless}}
|
||||
>
|
||||
<span class="fas fa-chevron-left"></span>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-text btn-icon action {{#unless nextButtonEnabled}} disabled{{/unless}}"
|
||||
data-action="next"
|
||||
title="{{translate 'Next Entry'}}"
|
||||
{{#unless nextButtonEnabled}}disabled="disabled"{{/unless}}
|
||||
>
|
||||
<span class="fas fa-chevron-right"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="detail-button-container button-container edit-buttons hidden">
|
||||
<div class="sub-container clearfix">
|
||||
<div class="btn-group actions-btn-group" role="group">
|
||||
{{#each buttonEditList}}
|
||||
{{button name
|
||||
scope=../entityType
|
||||
label=label
|
||||
labelTranslation=labelTranslation
|
||||
style=style
|
||||
hidden=hidden
|
||||
html=html
|
||||
title=title
|
||||
text=text
|
||||
className='btn-xs-wide edit-action-item'
|
||||
disabled=disabled
|
||||
}}
|
||||
{{/each}}
|
||||
{{#if dropdownEditItemList}}
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-default dropdown-toggle dropdown-edit-item-list-button{{#if dropdownEditItemListEmpty}} hidden{{/if}}"
|
||||
data-toggle="dropdown"
|
||||
><span class="fas fa-ellipsis-h"></span></button>
|
||||
<ul class="dropdown-menu pull-left">
|
||||
{{#each dropdownEditItemList}}
|
||||
{{#if this}}
|
||||
{{dropdownItem
|
||||
name
|
||||
scope=../entityType
|
||||
label=label
|
||||
labelTranslation=labelTranslation
|
||||
html=html
|
||||
title=title
|
||||
text=text
|
||||
hidden=hidden
|
||||
disabled=disabled
|
||||
data=data
|
||||
className='edit-action-item'
|
||||
}}
|
||||
{{else}}
|
||||
{{#unless @first}}
|
||||
{{#unless @last}}
|
||||
<li class="divider"></li>
|
||||
{{/unless}}
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/unless}}
|
||||
|
||||
<div class="record-grid{{#if isWide}} record-grid-wide{{/if}}{{#if isSmall}} record-grid-small{{/if}}">
|
||||
<div class="left">
|
||||
{{#if hasMiddleTabs}}
|
||||
<div class="tabs middle-tabs btn-group">
|
||||
{{#each middleTabDataList}}
|
||||
<button
|
||||
class="btn btn-text btn-wide{{#if isActive}} active{{/if}}{{#if hidden}} hidden{{/if}}"
|
||||
data-tab="{{@key}}"
|
||||
>{{label}}</button>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="middle">{{{middle}}}</div>
|
||||
<div class="extra">{{{extra}}}</div>
|
||||
<div class="bottom">{{{bottom}}}</div>
|
||||
</div>
|
||||
<div class="side{{#if hasMiddleTabs}} tabs-margin{{/if}}">
|
||||
{{{side}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
79
client/res/templates/record/edit.tpl
Normal file
79
client/res/templates/record/edit.tpl
Normal file
@@ -0,0 +1,79 @@
|
||||
<div class="edit" id="{{id}}" data-scope="{{scope}}" tabindex="-1">
|
||||
{{#unless buttonsDisabled}}
|
||||
<div class="detail-button-container button-container record-buttons">
|
||||
<div class="sub-container clearfix">
|
||||
<div class="btn-group actions-btn-group" role="group">
|
||||
{{#each buttonList}}
|
||||
{{button
|
||||
name
|
||||
scope=../entityType
|
||||
label=label
|
||||
labelTranslation=labelTranslation
|
||||
style=style
|
||||
html=html
|
||||
hidden=hidden
|
||||
title=title
|
||||
text=text
|
||||
className='btn-xs-wide detail-action-item'
|
||||
disabled=disabled
|
||||
}}
|
||||
{{/each}}
|
||||
{{#if dropdownItemList}}
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-default dropdown-toggle{{#if dropdownItemListEmpty}} hidden{{/if}}"
|
||||
data-toggle="dropdown"
|
||||
><span class="fas fa-ellipsis-h"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu pull-left">
|
||||
{{#each dropdownItemList}}
|
||||
{{#if this}}
|
||||
{{dropdownItem
|
||||
name
|
||||
scope=../entityType
|
||||
label=label
|
||||
labelTranslation=labelTranslation
|
||||
html=html
|
||||
title=title
|
||||
text=text
|
||||
hidden=hidden
|
||||
disabled=disabled
|
||||
data=data
|
||||
className='detail-action-item'
|
||||
}}
|
||||
{{else}}
|
||||
{{#unless @first}}
|
||||
{{#unless @last}}
|
||||
<li class="divider"></li>
|
||||
{{/unless}}
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/unless}}
|
||||
|
||||
<div class="record-grid{{#if isWide}} record-grid-wide{{/if}}{{#if isSmall}} record-grid-small{{/if}}">
|
||||
<div class="left">
|
||||
{{#if hasMiddleTabs}}
|
||||
<div class="tabs middle-tabs btn-group">
|
||||
{{#each middleTabDataList}}
|
||||
<button
|
||||
class="btn btn-text btn-wide{{#if isActive}} active{{/if}}{{#if hidden}} hidden{{/if}}"
|
||||
data-tab="{{@key}}"
|
||||
>{{label}}</button>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="middle">{{{middle}}}</div>
|
||||
<div class="extra">{{{extra}}}</div>
|
||||
<div class="bottom">{{{bottom}}}</div>
|
||||
</div>
|
||||
<div class="side{{#if hasMiddleTabs}} tabs-margin{{/if}}">
|
||||
{{{side}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
19
client/res/templates/record/kanban-item.tpl
Normal file
19
client/res/templates/record/kanban-item.tpl
Normal file
@@ -0,0 +1,19 @@
|
||||
<div class="panel panel-default {{#if isStarred}} starred {{~/if}} ">
|
||||
<div class="panel-body">
|
||||
{{#each layoutDataList}}
|
||||
<div>
|
||||
{{#if isFirst}}
|
||||
{{#unless rowActionsDisabled}}
|
||||
<div class="pull-right item-menu-container fix-position">{{{../itemMenu}}}</div>
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
<div class="form-group">
|
||||
<div
|
||||
class="field{{#if isAlignRight}} field-right-align{{/if}}{{#if isLarge}} field-large{{/if}}{{#if isMuted}} text-muted{{/if}}"
|
||||
data-name="{{name}}"
|
||||
>{{{var key ../this}}}</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
91
client/res/templates/record/kanban.tpl
Normal file
91
client/res/templates/record/kanban.tpl
Normal file
@@ -0,0 +1,91 @@
|
||||
|
||||
{{#if topBar}}
|
||||
<div class="list-buttons-container clearfix">
|
||||
{{#if displayTotalCount}}
|
||||
<div class="text-muted total-count">
|
||||
<span
|
||||
title="{{translate 'Total'}}"
|
||||
class="total-count-span"
|
||||
>{{totalCountFormatted}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if settings}}
|
||||
<div class="settings-container pull-right">{{{settings}}}</div>
|
||||
{{/if}}
|
||||
|
||||
{{#each buttonList}}
|
||||
{{button
|
||||
name
|
||||
scope=../scope
|
||||
label=label
|
||||
style=style
|
||||
class='list-action-item'
|
||||
}}
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="list-kanban-container">
|
||||
<div class="list-kanban" data-scope="{{scope}}" style="min-width: {{minTableWidthPx}}px">
|
||||
<div class="kanban-head-container">
|
||||
<table class="kanban-head">
|
||||
<thead>
|
||||
<tr class="kanban-row">
|
||||
{{#each groupDataList}}
|
||||
<th
|
||||
data-name="{{name}}"
|
||||
class="group-header{{#if style}} group-header-{{style}}{{/if}}"
|
||||
>
|
||||
<div>
|
||||
<span class="kanban-group-label">{{label}}</span>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
title="{{translate 'Create'}}"
|
||||
class="create-button hidden"
|
||||
data-action="createInGroup"
|
||||
data-group="{{name}}"
|
||||
>
|
||||
<span class="fas fa-plus fa-sm"></span>
|
||||
</a>
|
||||
</div>
|
||||
</th>
|
||||
{{/each}}
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
<div class="kanban-columns-container">
|
||||
<table class="kanban-columns">
|
||||
{{#unless isEmptyList}}
|
||||
<tbody>
|
||||
<tr class="kanban-row">
|
||||
{{#each groupDataList}}
|
||||
<td class="group-column" data-name="{{name}}">
|
||||
<div>
|
||||
<div class="group-column-list" data-name="{{name}}">
|
||||
{{#each dataList}}
|
||||
<div class="item" data-id="{{id}}">{{{var key ../../this}}}</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="show-more">
|
||||
<a data-action="groupShowMore" data-name="{{name}}" title="{{translate 'Show more'}}" class="{{#unless hasShowMore}}hidden {{/unless}}btn btn-link btn-sm"><span class="fas fa-ellipsis-h fa-sm"></span></a>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
{{/each}}
|
||||
</tr>
|
||||
</tbody>
|
||||
{{/unless}}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{{#if isEmptyList}}{{#unless noDataDisabled}}
|
||||
<div class="margin-top no-data">
|
||||
{{translate 'No Data'}}
|
||||
</div>
|
||||
{{/unless}}{{/if}}
|
||||
5
client/res/templates/record/list-checkbox.tpl
Normal file
5
client/res/templates/record/list-checkbox.tpl
Normal file
@@ -0,0 +1,5 @@
|
||||
<span class="record-checkbox-container"><input
|
||||
type="checkbox"
|
||||
class="record-checkbox form-checkbox form-checkbox-small"
|
||||
data-id="{{model.id}}"
|
||||
></span>
|
||||
86
client/res/templates/record/list-expanded.tpl
Normal file
86
client/res/templates/record/list-expanded.tpl
Normal file
@@ -0,0 +1,86 @@
|
||||
{{#if collection.models.length}}
|
||||
{{#if hasStickyBar}}
|
||||
<div class="list-sticky-bar sticked-bar hidden">
|
||||
{{#if hasPagination}}
|
||||
{{{paginationSticky}}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if topBar}}
|
||||
<div class="list-buttons-container clearfix">
|
||||
{{#if checkboxes}}{{#if massActionDataList}}
|
||||
<div class="btn-group actions">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-default dropdown-toggle actions-button"
|
||||
data-toggle="dropdown"
|
||||
disabled
|
||||
>{{translate 'Actions'}} <span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
{{#each massActionDataList}}
|
||||
<li {{#if hidden}}class="hidden"{{/if}}>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="{{name}}"
|
||||
class="mass-action"
|
||||
>{{translate name category="massActions" scope=../scope}}</a>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
{{/if}}{{/if}}
|
||||
|
||||
{{#each buttonList}}
|
||||
{{button
|
||||
name
|
||||
scope=../scope
|
||||
label=label
|
||||
style=style
|
||||
class='list-action-item'
|
||||
}}
|
||||
{{/each}}
|
||||
|
||||
{{#if hasPagination}}
|
||||
{{{pagination}}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="list list-expanded">
|
||||
<ul class="list-group">
|
||||
{{#each rowDataList}}
|
||||
<li
|
||||
data-id="{{id}}"
|
||||
class="list-group-item list-row {{#if isStarred}} starred {{~/if}}"
|
||||
>{{{var id ../this}}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
||||
{{#if showMoreEnabled}}
|
||||
{{#if showMoreActive}}
|
||||
<div class="show-more{{#unless showMoreActive}} hidden{{/unless}}">
|
||||
<a
|
||||
type="button"
|
||||
role="button"
|
||||
tabindex="0"
|
||||
class="btn btn-default btn-block"
|
||||
data-action="showMore"
|
||||
{{#if showCount}}title="{{translate 'Total'}}: {{totalCountFormatted}}"{{/if}}
|
||||
>
|
||||
{{#if showCount}}
|
||||
<div class="pull-right text-muted more-count">{{moreCountFormatted}}</div>
|
||||
{{/if}}
|
||||
<span>{{translate 'Show more'}}</span>
|
||||
</a>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{else}}
|
||||
{{#unless noDataDisabled}}
|
||||
<div class="no-data">{{translate 'No Data'}}</div>
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
126
client/res/templates/record/list-nested-categories.tpl
Normal file
126
client/res/templates/record/list-nested-categories.tpl
Normal file
@@ -0,0 +1,126 @@
|
||||
{{#unless isLoading}}
|
||||
<div class="list-nested-categories">
|
||||
<div class="clearfix">
|
||||
<div class="btn-group pull-right">
|
||||
<a role="button" tabindex="0" class="dropdown-toggle btn btn-text" data-toggle="dropdown">
|
||||
<span class="fas fa-ellipsis-h"></span>
|
||||
</a>
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-with-icons">
|
||||
{{#if showCreate}}
|
||||
<li>
|
||||
<a
|
||||
href="{{createLink}}"
|
||||
class="action"
|
||||
data-action="createCategory"
|
||||
>
|
||||
<span class="fas fa-folder-plus fa-sm"></span><span class="item-text">{{createCategoryLabel}}</span>
|
||||
</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if showEditLink}}
|
||||
<li>
|
||||
<a
|
||||
href="#{{scope}}"
|
||||
class="action manage-categories-link"
|
||||
data-action="manageCategories"
|
||||
>
|
||||
<span class="fas fa-folder-tree fa-sm"></span><span class="item-text">{{translate 'Manage Categories' scope=scope}}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
{{/if}}
|
||||
|
||||
{{#if hasExpandedToggler}}
|
||||
{{#if isExpanded}}
|
||||
<li>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
class="category-expanded-toggle-link action"
|
||||
data-action="collapse"
|
||||
><span class="fas fa-level-up-alt fa-sm fa-flip-horizontal"></span><span class="item-text">{{translate 'Collapse'}}</span></a>
|
||||
</li>
|
||||
{{else}}
|
||||
<li>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
class="category-expanded-toggle-link action"
|
||||
data-action="expand"
|
||||
><span class="fas fa-level-down-alt fa-sm"></span><span class="item-text">{{translate 'Expand'}}</span></a>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{#unless isExpanded}}
|
||||
<li>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
class="navigation-toggle-link action"
|
||||
data-action="toggleNavigationPanel"
|
||||
>
|
||||
<span class="fas fa-check check-icon pull-right {{#unless hasNavigationPanel}} hidden {{/unless}}"></span>
|
||||
<div>
|
||||
<span class="fas"></span><span class="item-text">{{translate 'Navigation Panel'}}</span>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
{{/unless}}
|
||||
</ul>
|
||||
</div>
|
||||
{{#if isExpandedResult}}
|
||||
<div class="input-text-block pull-right" style="user-select: none;">
|
||||
<span class="label label-default">{{translate 'Expanded'}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if currentId}}
|
||||
<div class="category-item category-item-move-up">
|
||||
<a
|
||||
href="{{upperLink}}"
|
||||
class="action folder-icon btn-text"
|
||||
data-action="openCategory"
|
||||
data-id="{{categoryData.upperId}}"
|
||||
title="{{translate 'Up'}}"
|
||||
><span class="fas fa-arrow-up text-soft transform-flip-x"></span></a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
{{#if showFolders}}
|
||||
<div class="grid-auto-fill-xs">
|
||||
{{#each list}}
|
||||
<div class="category-cell">
|
||||
<div class="category-item" data-id="{{id}}">
|
||||
<a
|
||||
href="{{link}}"
|
||||
class="action link-gray"
|
||||
data-action="openCategory"
|
||||
data-id="{{id}}"
|
||||
data-name="{{name}}"
|
||||
title="{{name}}"
|
||||
><span class="folder-icon far fa-folder text-soft"></span> <span class="category-item-name">{{name}}</span></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
|
||||
{{#if showMoreIsActive}}
|
||||
<div class="category-cell">
|
||||
<div class="category-item show-more">
|
||||
<span class="category-item-name">
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
class="action"
|
||||
data-action="showMore"
|
||||
title="{{translate 'Show more'}}"
|
||||
>...</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
{{/unless}}
|
||||
58
client/res/templates/record/list-pagination.tpl
Normal file
58
client/res/templates/record/list-pagination.tpl
Normal file
@@ -0,0 +1,58 @@
|
||||
<div class="btn-group pagination clearfix">
|
||||
<div class="btn-group">
|
||||
<a
|
||||
class="pagination-btn-middle btn btn-text dropdown-toggle"
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-toggle="dropdown"
|
||||
{{#unless noTotal}}title="{{translate 'Total'}}: {{total}}"{{/unless}}
|
||||
>{{#unless noData}}{{from}}–{{/unless}}{{to}}{{#unless noTotal}} / {{total}}{{/unless}}</a>
|
||||
<ul class="dropdown-menu pull-right">
|
||||
<li>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-page="first"
|
||||
class="{{#unless previous}}disabled{{/unless}}"
|
||||
>{{translate 'First Page'}}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-page="last"
|
||||
class="{{#unless last}}disabled{{/unless}}"
|
||||
>{{translate 'Last Page'}}{{#if hasLastPageNumber}} · {{lastPageNumber}}{{/if}}</a>
|
||||
</li>
|
||||
{{#if hasGoToPage}}
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<div class="input-group page-input-group">
|
||||
<span class="input-group-addon">{{translate 'Page'}}</span>
|
||||
<input
|
||||
class="form-control page-input"
|
||||
type="text"
|
||||
inputmode="numeric"
|
||||
pattern="[0-9]*"
|
||||
value="{{currentPageNumber}}"
|
||||
>
|
||||
</div>
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
<a
|
||||
class="pagination-btn btn btn-text btn-icon{{#unless previous}} disabled{{/unless}}"
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-page="previous"
|
||||
title="{{translate 'Previous Page'}}"
|
||||
><span class="fas fa-chevron-left"></span></a>
|
||||
<a
|
||||
class="pagination-btn btn btn-text btn-icon{{#unless next}} disabled{{/unless}}"
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-page="next"
|
||||
title="{{translate 'Next Page'}}"
|
||||
><span class="fas fa-chevron-right"></span></a>
|
||||
</div>
|
||||
53
client/res/templates/record/list-tree-item.tpl
Normal file
53
client/res/templates/record/list-tree-item.tpl
Normal file
@@ -0,0 +1,53 @@
|
||||
<div class="cell">
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
class="action{{#unless showFold}} hidden{{/unless}} small"
|
||||
data-action="fold"
|
||||
data-id="{{model.id}}"><span class="fas fa-chevron-down"></span></a>
|
||||
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
class="action{{#unless showUnfold}} hidden{{/unless}} small"
|
||||
data-action="unfold"
|
||||
data-id="{{model.id}}"><span class="fas fa-chevron-right"></span></a>
|
||||
|
||||
<span
|
||||
data-name="white-space"
|
||||
data-id="{{model.id}}"
|
||||
class="empty-icon{{#unless isEnd}} hidden{{/unless}}"
|
||||
> </span>
|
||||
|
||||
{{#if isMovable}}
|
||||
<a
|
||||
role="button"
|
||||
class=""
|
||||
data-id="{{model.id}}"
|
||||
data-role="moveHandle"
|
||||
data-title="{{name}}"
|
||||
><span class="fas fa-grip fa-sm"></span></a>
|
||||
{{/if}}
|
||||
|
||||
<a
|
||||
href="#{{model.entityType}}/view/{{model.id}}"
|
||||
class="link{{#if isSelected}} text-bold{{/if}}"
|
||||
data-id="{{model.id}}"
|
||||
title="{{name}}"
|
||||
{{#unless readOnly}} draggable="false" {{/unless}}
|
||||
>{{name}}</a>
|
||||
|
||||
{{#unless readOnly}}
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
class="action small remove-link hidden"
|
||||
data-action="remove"
|
||||
data-id="{{model.id}}"
|
||||
title="{{translate 'Remove'}}"
|
||||
>
|
||||
<span class="fas fa-times"></span>
|
||||
</a>
|
||||
{{/unless}}
|
||||
</div>
|
||||
<div class="children{{#unless isUnfolded}} hidden{{/unless}}">{{{children}}}</div>
|
||||
63
client/res/templates/record/list-tree.tpl
Normal file
63
client/res/templates/record/list-tree.tpl
Normal file
@@ -0,0 +1,63 @@
|
||||
|
||||
{{#if topBar}}
|
||||
<div class="list-buttons-container clearfix">
|
||||
{{#each buttonList}}
|
||||
{{button name scope=../scope label=label style=style}}
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if noData}}
|
||||
<div class="no-data">{{translate 'No Data'}}</div>
|
||||
{{/if}}
|
||||
|
||||
<div
|
||||
class="list list-expanded list-tree {{#if noData}} hidden {{/if}}"
|
||||
{{#if isEditable}} data-editable="true" {{/if}}
|
||||
>
|
||||
{{#if showRoot}}
|
||||
<div class="root-item">
|
||||
<a
|
||||
href="#{{scope}}"
|
||||
class="action link{{#if rootIsSelected}} text-bold{{/if}}"
|
||||
data-action="selectRoot"
|
||||
>{{rootName}}</a>
|
||||
{{#if hasExpandToggle}}
|
||||
<a
|
||||
role="button"
|
||||
data-role="expandButtonContainer"
|
||||
title="{{#if isExpanded}}{{translate 'Expanded'}}{{else}}{{translate 'Collapsed'}}{{/if}}"
|
||||
data-action="toggleExpandedFromNavigation"
|
||||
class="{{#if expandToggleInactive}} disabled {{/if}}"
|
||||
>
|
||||
{{#if isExpanded}}
|
||||
<span class="fas fa-level-down-alt fa-sm text-soft"></span>
|
||||
{{else}}
|
||||
<span class="fas fa-level-down-alt fa-rotate-270 fa-sm text-soft"></span>
|
||||
{{/if}}
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<ul class="list-group list-group-tree list-group-no-border">
|
||||
{{#each rowList}}
|
||||
<li data-id="{{./this}}" class="list-group-item">
|
||||
{{{var this ../this}}}
|
||||
</li>
|
||||
{{/each}}
|
||||
{{#unless createDisabled}}
|
||||
<li class="list-group-item">
|
||||
<div>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="create"
|
||||
class="action small"
|
||||
title="{{translate 'Add'}}"
|
||||
><span class="fas fa-plus"></span></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/unless}}
|
||||
</ul>
|
||||
</div>
|
||||
252
client/res/templates/record/list.tpl
Normal file
252
client/res/templates/record/list.tpl
Normal file
@@ -0,0 +1,252 @@
|
||||
{{#if hasStickyBar}}
|
||||
<div class="sticked-bar list-sticky-bar hidden">
|
||||
{{#if displayActionsButtonGroup}}
|
||||
<div class="btn-group">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-default btn-xs-wide dropdown-toggle actions-button hidden"
|
||||
data-toggle="dropdown"
|
||||
>{{translate 'Actions'}} <span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu actions-menu">
|
||||
{{#each massActionDataList}}
|
||||
{{#if this}}
|
||||
<li {{#if hidden}}class="hidden"{{/if}}>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="{{name}}"
|
||||
class="mass-action"
|
||||
>{{translate name category="massActions" scope=../scope}}</a>
|
||||
</li>
|
||||
{{else}}
|
||||
{{#unless @first}}
|
||||
{{#unless @last}}
|
||||
<li class="divider"></li>
|
||||
{{/unless}}
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if hasPagination}}
|
||||
{{{paginationSticky}}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if topBar}}
|
||||
<div class="list-buttons-container clearfix">
|
||||
{{#if displayActionsButtonGroup}}
|
||||
<div class="btn-group actions">
|
||||
{{#if massActionDataList}}
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-default btn-xs-wide dropdown-toggle actions-button hidden"
|
||||
data-toggle="dropdown"
|
||||
>{{translate 'Actions'}} <span class="caret"></span></button>
|
||||
{{/if}}
|
||||
{{#if buttonList.length}}
|
||||
{{#each buttonList}}
|
||||
{{button
|
||||
name
|
||||
scope=../scope
|
||||
label=label
|
||||
style=style
|
||||
hidden=hidden
|
||||
class='list-action-item'
|
||||
}}
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
|
||||
<div class="btn-group">
|
||||
{{#if dropdownItemList.length}}
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-text dropdown-toggle dropdown-item-list-button"
|
||||
data-toggle="dropdown"
|
||||
><span class="fas fa-ellipsis-h"></span></button>
|
||||
<ul class="dropdown-menu pull-left">
|
||||
{{#each dropdownItemList}}
|
||||
{{#if this}}
|
||||
<li class="{{#if hidden}}hidden{{/if}}">
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
class="action list-action-item"
|
||||
data-action="{{name}}"
|
||||
data-name="{{name}}"
|
||||
>{{#if html}}{{{html}}}{{else}}{{translate label scope=../entityType}}{{/if}}</a></li>
|
||||
{{else}}
|
||||
{{#unless @first}}
|
||||
{{#unless @last}}
|
||||
<li class="divider"></li>
|
||||
{{/unless}}
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
{{#if massActionDataList}}
|
||||
<ul class="dropdown-menu actions-menu">
|
||||
{{#each massActionDataList}}
|
||||
{{#if this}}
|
||||
<li {{#if hidden}}class="hidden"{{/if}}>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="{{name}}"
|
||||
class="mass-action"
|
||||
>{{translate name category="massActions" scope=../scope}}</a></li>
|
||||
{{else}}
|
||||
{{#unless @first}}
|
||||
{{#unless @last}}
|
||||
<li class="divider"></li>
|
||||
{{/unless}}
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if hasPagination}}
|
||||
{{{pagination}}}
|
||||
{{/if}}
|
||||
|
||||
{{#if settings}}
|
||||
<div class="settings-container pull-right">{{{settings}}}</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if displayTotalCount}}
|
||||
<div class="text-muted total-count">
|
||||
<span
|
||||
title="{{translate 'Total'}}"
|
||||
class="total-count-span"
|
||||
>{{totalCountFormatted}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
|
||||
|
||||
{{#if collectionLength}}
|
||||
<div
|
||||
class="list {{#if showMoreActive}} has-show-more {{/if}}"
|
||||
data-scope="{{scope}}"
|
||||
tabindex="-1"
|
||||
>
|
||||
<table
|
||||
class="table {{#if hasColumnResize~}} column-resizable {{~/if}}"
|
||||
>
|
||||
{{#if header}}
|
||||
<thead>
|
||||
<tr>
|
||||
{{#if checkboxes}}
|
||||
<th
|
||||
style="width: {{checkboxColumnWidth}}"
|
||||
data-name="r-checkbox"
|
||||
class="checkbox-cell"
|
||||
>
|
||||
<span
|
||||
class="select-all-container"
|
||||
><input type="checkbox" class="select-all form-checkbox form-checkbox-small"></span>
|
||||
{{#unless checkAllResultDisabled}}
|
||||
<div class="btn-group checkbox-dropdown">
|
||||
<a
|
||||
class="btn btn-link btn-sm dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
tabindex="0"
|
||||
role="button"
|
||||
>
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="selectAllResult"
|
||||
>{{translate 'Select All Results'}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{{/unless}}
|
||||
</th>
|
||||
{{/if}}
|
||||
{{#each headerDefs}}
|
||||
<th
|
||||
style="{{#if width}}width: {{width}};{{/if}}{{#if align}} text-align: {{align}};{{/if}}"
|
||||
class="{{#if className~}} {{className}} {{~/if}} field-header-cell"
|
||||
{{#if name}}data-name="{{name}}"{{/if}}
|
||||
>
|
||||
{{#if this.isSortable}}
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
class="sort"
|
||||
data-name="{{this.name}}"
|
||||
title="{{translate 'Sort'}}"
|
||||
>{{label}}</a>
|
||||
{{#if this.isSorted}}
|
||||
{{#unless this.isDesc}}
|
||||
<span class="fas fa-chevron-down fa-sm"></span>
|
||||
{{else}}
|
||||
<span class="fas fa-chevron-up fa-sm"></span>
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{#if html}}
|
||||
{{{html}}}
|
||||
{{else}}
|
||||
{{label}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{#if resizable}}
|
||||
<div class="column-resizer {{#if resizeOnRight}} column-resizer-right {{/if}}"></div>
|
||||
{{/if}}
|
||||
</th>
|
||||
{{/each}}
|
||||
</tr>
|
||||
</thead>
|
||||
{{/if}}
|
||||
<tbody>
|
||||
{{#each rowDataList}}
|
||||
<tr
|
||||
data-id="{{id}}"
|
||||
class="list-row {{#if isStarred}} starred {{~/if}}"
|
||||
>{{{var id ../this}}}</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{{#if showMoreEnabled}}
|
||||
<div class="show-more{{#unless showMoreActive}} hidden{{/unless}}">
|
||||
<a
|
||||
type="button"
|
||||
role="button"
|
||||
tabindex="0"
|
||||
class="btn btn-default btn-block"
|
||||
data-action="showMore"
|
||||
{{#if showCount}}title="{{translate 'Total'}}: {{totalCountFormatted}}"{{/if}}
|
||||
>
|
||||
{{#if showCount}}
|
||||
<div class="pull-right text-muted more-count">{{moreCountFormatted}}</div>
|
||||
{{/if}}
|
||||
<span>{{translate 'Show more'}}</span>
|
||||
</a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{else}}
|
||||
{{#unless noDataDisabled}}
|
||||
<div class="no-data">{{translate 'No Data'}}</div>
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
72
client/res/templates/record/merge.tpl
Normal file
72
client/res/templates/record/merge.tpl
Normal file
@@ -0,0 +1,72 @@
|
||||
|
||||
<div class="merge">
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 20%"></th>
|
||||
{{#each dataList}}
|
||||
<th style="vertical-align: middle; width: 5%">
|
||||
<input
|
||||
type="radio"
|
||||
name="check-all"
|
||||
value="{{id}}"
|
||||
data-id="{{id}}"
|
||||
class="pull-right form-radio"
|
||||
>
|
||||
</th>
|
||||
<th style="width: {{../width}}%">
|
||||
<a href="#{{../scope}}/view/{{id}}" target="_BLANK" class="text-large">{{name}}</a>
|
||||
</th>
|
||||
{{/each}}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#if hasCreatedAt}}
|
||||
<tr>
|
||||
<td style="text-align: right">
|
||||
{{translate 'createdAt' scope=scope category='fields'}}
|
||||
</td>
|
||||
{{#each dataList}}
|
||||
<td></td>
|
||||
<td data-id="{{id}}">
|
||||
<div class="field" data-name="createdAt">
|
||||
{{{var createdAtViewName ../this}}}
|
||||
</div>
|
||||
</td>
|
||||
{{/each}}
|
||||
</tr>
|
||||
{{/if}}
|
||||
{{#each rows}}
|
||||
<tr>
|
||||
<td style="text-align: right">
|
||||
{{translate name scope=../scope category='fields'}}
|
||||
</td>
|
||||
{{#each columns}}
|
||||
<td>
|
||||
{{#unless isReadOnly}}
|
||||
<input
|
||||
type="radio"
|
||||
name="{{../name}}"
|
||||
value="{{id}}"
|
||||
data-id="{{id}}"
|
||||
class="pull-right field-radio form-radio"
|
||||
>
|
||||
{{/unless}}
|
||||
</td>
|
||||
<td data-id="{{id}}">
|
||||
<div class="field" data-name="{{../name}}">
|
||||
{{{var fieldVariable ../../this}}}
|
||||
</div>
|
||||
</td>
|
||||
{{/each}}
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="button-container">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-danger btn-xs-wide" data-action="merge">{{translate 'Merge'}}</button>
|
||||
<button class="btn btn-default btn-xs-wide" data-action="cancel">{{translate 'Cancel'}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
44
client/res/templates/record/panel-actions.tpl
Normal file
44
client/res/templates/record/panel-actions.tpl
Normal file
@@ -0,0 +1,44 @@
|
||||
{{#each buttonList}}
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-{{#if ../defs.style}}{{../defs.style}}{{else}}default{{/if}} btn-sm panel-action action{{#if hidden}} hidden{{/if}}"
|
||||
{{#if action}}data-action="{{action}}"{{/if}}
|
||||
{{#if name}}data-name="{{name}}"{{/if}}
|
||||
data-panel="{{../defs.name}}" {{#each data}} data-{{hyphen @key}}="{{./this}}"{{/each}}
|
||||
title="{{#if title}}{{translate title scope=../scope}}{{/if}}"
|
||||
>{{#if html}}{{{html}}}{{else}}{{#if text}}{{text}}{{else}}{{translate label scope=../scope}}{{/if}}{{/if}}</button>
|
||||
{{/each}}
|
||||
|
||||
{{#if actionList}}
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-{{#if defs.style}}{{defs.style}}{{else}}default{{/if}} btn-sm dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
><span class="fas fa-ellipsis-h"></span></button>
|
||||
<ul class="dropdown-menu">
|
||||
{{#each actionList}}
|
||||
{{#if this}}
|
||||
{{dropdownItem
|
||||
action
|
||||
scope=../scope
|
||||
label=label
|
||||
labelTranslation=labelTranslation
|
||||
html=html
|
||||
title=title
|
||||
text=text
|
||||
hidden=hidden
|
||||
disabled=disabled
|
||||
data=data
|
||||
link=link
|
||||
className='panel-action'
|
||||
}}
|
||||
{{else}}
|
||||
{{#unless @first}}
|
||||
{{#unless @last}}
|
||||
<li class="divider"></li>
|
||||
{{/unless}}
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{/if}}
|
||||
1
client/res/templates/record/panels/relationship.tpl
Normal file
1
client/res/templates/record/panels/relationship.tpl
Normal file
@@ -0,0 +1 @@
|
||||
<div class="list-container">{{{list}}}</div>
|
||||
21
client/res/templates/record/panels/side.tpl
Normal file
21
client/res/templates/record/panels/side.tpl
Normal file
@@ -0,0 +1,21 @@
|
||||
{{#if fieldList.length}}
|
||||
<div class="row">
|
||||
{{#each fieldList}}
|
||||
<div class="cell form-group col-sm-6 col-md-12{{#if hidden}} hidden-cell{{/if}}" data-name="{{name}}">
|
||||
{{#unless noLabel}}
|
||||
<label
|
||||
class="control-label{{#if hidden}} hidden{{/if}}"
|
||||
data-name="{{name}}"
|
||||
>
|
||||
<span
|
||||
class="label-text"
|
||||
>{{#if labelText}}{{labelText}}{{else}}{{translate label scope=../model.entityType category='fields'}}{{/if}}</span>
|
||||
</label>
|
||||
{{/unless}}
|
||||
<div class="field{{#if hidden}} hidden{{/if}}" data-name="{{name}}">
|
||||
{{{var viewKey ../this}}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
39
client/res/templates/record/row-actions/default.tpl
Normal file
39
client/res/templates/record/row-actions/default.tpl
Normal file
@@ -0,0 +1,39 @@
|
||||
{{#if actionList.length}}
|
||||
<div class="list-row-buttons btn-group pull-right">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-link btn-sm dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
><span class="caret"></span></button>
|
||||
<ul class="dropdown-menu pull-right list-row-dropdown-menu" data-id="{{model.id}}">
|
||||
{{#each actionList}}
|
||||
{{#if this}}
|
||||
<li
|
||||
{{#if viewKey}} data-view-key="{{viewKey}}" {{/if}}
|
||||
>
|
||||
{{#if viewKey}}
|
||||
{{{lookup ../this viewKey}}}
|
||||
{{else}}
|
||||
<a
|
||||
{{#if link}} href="{{link}}" {{else}} role="button" {{/if}}
|
||||
tabindex="0"
|
||||
class="action"
|
||||
{{#if action}}data-action="{{action}}"{{/if}}
|
||||
{{#each data}}
|
||||
data-{{hyphen @key}}="{{./this}}"
|
||||
{{/each}}
|
||||
>{{#if html}}{{{html}}}{{else}}{{#if text}}{{text}}{{else}}{{translate label scope=../scope}}{{/if}}{{/if}}
|
||||
</a>
|
||||
{{/if}}
|
||||
</li>
|
||||
{{else}}
|
||||
{{#unless @first}}
|
||||
{{#unless @last}}
|
||||
<li class="divider"></li>
|
||||
{{/unless}}
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
{{/if}}
|
||||
165
client/res/templates/record/search.tpl
Normal file
165
client/res/templates/record/search.tpl
Normal file
@@ -0,0 +1,165 @@
|
||||
|
||||
<div class="row search-row">
|
||||
<div class="form-group{{#if isWide}} col-lg-7{{/if}} col-md-8 col-sm-9">
|
||||
<div class="input-group">
|
||||
<div class="input-group-btn left-dropdown{{#unless leftDropdown}} hidden{{/unless}}">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-default dropdown-toggle filters-button"
|
||||
title="{{translate 'Filter'}}"
|
||||
data-toggle="dropdown"
|
||||
tabindex="0"
|
||||
>
|
||||
<span class="filters-label"></span>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu pull-left filter-menu">
|
||||
{{#unless primaryFiltersDisabled}}
|
||||
<li>
|
||||
<a
|
||||
class="preset"
|
||||
tabindex="0"
|
||||
role="button"
|
||||
data-name=""
|
||||
data-action="selectPreset"
|
||||
><div>{{translate 'all' category='presetFilters' scope=entityType}}</div></a>
|
||||
</li>
|
||||
{{#each presetFilterList}}
|
||||
<li>
|
||||
<a
|
||||
class="preset"
|
||||
tabindex="0"
|
||||
role="button"
|
||||
data-name="{{name}}"
|
||||
data-action="selectPreset"
|
||||
>
|
||||
<div class="{{#if style}}text-{{style}}{{/if}}">
|
||||
{{~#if label}}{{label}}{{else}}{{translate name category='presetFilters' scope=../entityType}}{{/if~}}
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
{{/each}}
|
||||
<li class="divider preset-control hidden"></li>
|
||||
|
||||
<li class="preset-control remove-preset hidden">
|
||||
<a tabindex="0" role="button" data-action="removePreset">{{translate 'Remove Filter'}}</a>
|
||||
</li>
|
||||
<li class="preset-control save-preset hidden">
|
||||
<a tabindex="0" role="button" data-action="savePreset">{{translate 'Save Filter'}}</a>
|
||||
</li>
|
||||
|
||||
{{#if boolFilterList.length}}
|
||||
<li class="divider"></li>
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
|
||||
{{#each boolFilterList}}
|
||||
<li class="checkbox">
|
||||
<label>
|
||||
<input
|
||||
type="checkbox"
|
||||
data-role="boolFilterCheckbox"
|
||||
data-name="{{./this}}"
|
||||
class="form-checkbox form-checkbox-small"
|
||||
{{#ifPropEquals ../bool this true}}checked{{/ifPropEquals}}
|
||||
> {{translate this scope=../entityType category='boolFilters'}}
|
||||
</label></li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<input
|
||||
type="search"
|
||||
class="form-control text-filter"
|
||||
data-name="textFilter"
|
||||
value="{{textFilter}}"
|
||||
tabindex="0"
|
||||
autocomplete="espo-text-search"
|
||||
spellcheck="false"
|
||||
{{#if textFilterDisabled}}disabled="disabled"{{/if}}
|
||||
>
|
||||
<div class="input-group-btn">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-default search btn-icon btn-icon-x-wide"
|
||||
data-action="search"
|
||||
tabindex="0"
|
||||
title="{{translate 'Search'}}"
|
||||
>
|
||||
<span class="fas fa-search"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="input-group-btn">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-text btn-icon btn-icon-wide dropdown-toggle add-filter-button"
|
||||
data-toggle="dropdown"
|
||||
tabindex="0"
|
||||
>
|
||||
<span class="fas fa-ellipsis-v"></span>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-text btn-icon btn-icon-wide"
|
||||
data-action="reset"
|
||||
title="{{translate 'Reset'}}"
|
||||
tabindex="0"
|
||||
style="visibility: hidden;"
|
||||
>
|
||||
<span class="fas fa-times"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu pull-right filter-list">
|
||||
<li class="dropdown-header">{{translate 'Add Field'}}</li>
|
||||
{{#if hasFieldQuickSearch}}
|
||||
<li class="quick-search-list-item">
|
||||
<input class="form-control field-filter-quick-search-input">
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#each filterFieldDataList}}
|
||||
<li
|
||||
data-name="{{name}}"
|
||||
class="filter-item {{#if checked}} hidden{{/if}}"
|
||||
><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
class="add-filter"
|
||||
data-action="addFilter"
|
||||
data-name="{{name}}"
|
||||
>{{label}}</a></li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group{{#if isWide}} col-lg-5{{/if}} col-md-4 col-sm-3">
|
||||
{{#if hasViewModeSwitcher}}
|
||||
<div class="btn-group view-mode-switcher-buttons-group">
|
||||
{{#each viewModeDataList}}
|
||||
<button
|
||||
type="button"
|
||||
data-name="{{name}}"
|
||||
data-action="switchViewMode"
|
||||
class="btn btn-icon btn-text{{#ifEqual name ../viewMode}} active{{/ifEqual}}"
|
||||
tabindex="0"
|
||||
title="{{title}}"
|
||||
><span class="{{iconClass}}"></span></button>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="advanced-filters hidden grid-auto-fill-sm">
|
||||
{{#each filterDataList}}
|
||||
<div class="filter filter-{{name}}" data-name="{{name}}">
|
||||
{{{var key ../this}}}
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
<div class="advanced-filters-apply-container{{#unless toShowApplyFiltersButton}} hidden{{/unless}}">
|
||||
<a role="button" tabindex="0" class="btn btn-default btn-sm" data-action="applyFilters">
|
||||
<span class="fas fa-search fa-sm"></span>
|
||||
<span class="text-apply{{#if toShowResetFiltersText}} hidden{{/if}}">{{translate 'Apply'}}</span>
|
||||
<span class="text-reset{{#unless toShowResetFiltersText}} hidden{{/unless}}">{{translate 'Reset'}}</span>
|
||||
</a>
|
||||
</div>
|
||||
49
client/res/templates/record/side.tpl
Normal file
49
client/res/templates/record/side.tpl
Normal file
@@ -0,0 +1,49 @@
|
||||
{{#each panelList}}
|
||||
{{#if isRightAfterDelimiter}}
|
||||
<div class="panels-show-more-delimiter">
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="showMorePanels"
|
||||
title="{{translate 'Show more'}}"
|
||||
>
|
||||
<span class="fas fa-ellipsis-h fa-lg"></span>
|
||||
</a>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div
|
||||
class="panel panel-{{#if style}}{{style}}{{else}}default{{/if}} panel-{{name}}{{#if label}} headered{{/if}}{{#if hidden}} hidden{{/if}}{{#if sticked}} sticked{{/if}}"
|
||||
data-name="{{name}}"
|
||||
data-style="{{#if style}}{{style}}{{/if}}"
|
||||
data-tab="{{tabNumber}}"
|
||||
>
|
||||
{{#if label}}
|
||||
<div class="panel-heading">
|
||||
<div class="pull-right btn-group panel-actions-container">{{{var actionsViewKey ../this}}}</div>
|
||||
|
||||
<h4 class="panel-title">
|
||||
{{#unless notRefreshable}}
|
||||
<span
|
||||
style="cursor: pointer; user-select: none;"
|
||||
class="action"
|
||||
title="{{translate 'clickToRefresh' category='messages'}}"
|
||||
data-action="refresh" data-panel="{{name}}"
|
||||
>
|
||||
{{/unless}}
|
||||
{{#if titleHtml}}
|
||||
{{{titleHtml}}}
|
||||
{{else}}
|
||||
{{title}}
|
||||
{{/if}}
|
||||
{{#unless notRefreshable}}
|
||||
</span>
|
||||
{{/unless}}
|
||||
</h4>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="panel-body{{#if isForm}} panel-body-form{{/if}}" data-name="{{name}}">
|
||||
{{{var name ../this}}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
Reference in New Issue
Block a user