Initial commit
This commit is contained in:
21
client/res/layout-types/columns-2.tpl
Normal file
21
client/res/layout-types/columns-2.tpl
Normal file
@@ -0,0 +1,21 @@
|
||||
<% _.each(layout, function (row, rowNumber) { %>
|
||||
<div class="col-sm-6">
|
||||
<% _.each(row, function (defs, key) { %>
|
||||
<%
|
||||
var tag = 'tag' in defs ? defs.tag : 'div';
|
||||
print( '<' + tag);
|
||||
if ('id' in defs) {
|
||||
print(' id="'+defs.id+'"');
|
||||
}
|
||||
print(' class="');
|
||||
if ('class' in defs) {
|
||||
print(defs.class);
|
||||
};
|
||||
print('"');
|
||||
print('>');
|
||||
%>
|
||||
{{{this.<%= defs.name %>}}}
|
||||
<%= '</' + tag + '>' %>
|
||||
<% }); %>
|
||||
</div>
|
||||
<% }); %>
|
||||
14
client/res/layout-types/default.tpl
Normal file
14
client/res/layout-types/default.tpl
Normal file
@@ -0,0 +1,14 @@
|
||||
<% _.each(layout, function (defs, key) {
|
||||
var tag = 'tag' in defs ? defs.tag : 'div';
|
||||
print( '<' + tag);
|
||||
if ('id' in defs) {
|
||||
print(' id="'+defs.id+'"');
|
||||
}
|
||||
if ('class' in defs) {
|
||||
print(' class="'+defs.class+'"');
|
||||
}
|
||||
print('>');
|
||||
%>
|
||||
{{{this.<%= defs.name %>}}}
|
||||
<%= '</' + tag + '>' %>
|
||||
<% }); %>
|
||||
23
client/res/layout-types/list-row-expanded.tpl
Normal file
23
client/res/layout-types/list-row-expanded.tpl
Normal file
@@ -0,0 +1,23 @@
|
||||
<% if (layout.right) { %>
|
||||
<div class="pull-right right cell" data-name="buttons">
|
||||
{{{<%= layout.right.name %>}}}
|
||||
</div>
|
||||
<% } %>
|
||||
<% _.each(layout.rows, function (row, key) { %><div class="expanded-row"><% _.each(row, function (defs, key) { %><span class="cell<%= defs.align ? ' pull-right' : '' %><%= defs.small ? ' small' : '' %><%= defs.soft ? ' text-soft' : '' %>" data-name="<%= defs.field %>"><%
|
||||
var tag = 'tag' in defs ? defs.tag : false;
|
||||
if (tag) {
|
||||
print( '<' + tag);
|
||||
if ('id' in defs) {
|
||||
print(' id="'+defs.id+'"');
|
||||
}
|
||||
if ('class' in defs) {
|
||||
print(' class="'+defs.class+'"');
|
||||
};
|
||||
print('>');
|
||||
}
|
||||
%>{{{this.<%= defs.name %>}}}<%
|
||||
if (tag) {
|
||||
print( '</' + tag + '>');
|
||||
}
|
||||
%></span><% }); %></div>
|
||||
<% }); %>
|
||||
44
client/res/layout-types/list-row.tpl
Normal file
44
client/res/layout-types/list-row.tpl
Normal file
@@ -0,0 +1,44 @@
|
||||
<% _.each(layout, function (defs, key) { %>
|
||||
<%
|
||||
let width = null;
|
||||
|
||||
if (defs.options && defs.options.defs && defs.options.defs.width !== undefined) {
|
||||
width = (defs.options.defs.width + '%') || null;
|
||||
}
|
||||
|
||||
if (defs.options && defs.options.defs && defs.options.defs.widthPx !== undefined) {
|
||||
width = defs.options.defs.widthPx || null;
|
||||
}
|
||||
|
||||
let align = false;
|
||||
|
||||
if (defs.options && defs.options.defs) {
|
||||
align = defs.options.defs.align || false;
|
||||
}
|
||||
%>
|
||||
<td
|
||||
class="cell"
|
||||
data-name="<%= defs.columnName %>"
|
||||
<% if (width || align) { %>
|
||||
style="<% if (width) print('width: ' + width); %>;<% if (align) print(' text-align: ' + align);%>"
|
||||
<% } %>
|
||||
>
|
||||
<%
|
||||
var tag = 'tag' in defs ? defs.tag : false;
|
||||
if (tag) {
|
||||
print( '<' + tag);
|
||||
if ('id' in defs) {
|
||||
print(' id="'+defs.id+'"');
|
||||
}
|
||||
if ('class' in defs) {
|
||||
print(' class="'+defs.class+'"');
|
||||
};
|
||||
print('>');
|
||||
}
|
||||
%>{{{this.<%= defs.name %>}}}<%
|
||||
if (tag) {
|
||||
print( '</' + tag + '>');
|
||||
}
|
||||
%>
|
||||
</td>
|
||||
<% }); %>
|
||||
188
client/res/layout-types/record.tpl
Normal file
188
client/res/layout-types/record.tpl
Normal file
@@ -0,0 +1,188 @@
|
||||
<% var hasHiddenPanel = false; %>
|
||||
|
||||
<% _.each(layout, function (panel, columnNumber) { %>
|
||||
<% hasHiddenPanel = panel.hidden || hasHiddenPanel; %>
|
||||
<div
|
||||
class="panel panel-<%= panel.style %><%= panel.label ? ' headered' : '' %><%= panel.tabNumber ? ' tab-hidden' : '' %><% if (panel.name) { %>{{#if hiddenPanels.<%= panel.name %>}} hidden{{/if}}<% } %>"
|
||||
<% if (panel.name) print('data-name="'+panel.name+'"') %>
|
||||
<% if (panel.style) print('data-style="'+panel.style+'"') %>
|
||||
data-tab="<%= panel.tabNumber %>"
|
||||
>
|
||||
<% if (panel.label) { %>
|
||||
<div class="panel-heading"><h4 class="panel-title"><%= panel.label %></h4></div>
|
||||
<% } %>
|
||||
<div class="panel-body panel-body-form">
|
||||
|
||||
<% if (panel.noteText) { %>
|
||||
<div class="alert alert-<%= panel.noteStyle %>"><%= panel.noteText %></div>
|
||||
<% } %>
|
||||
|
||||
<% var rows = panel.rows || [] %>
|
||||
<% var columns = panel.columns || [] %>
|
||||
|
||||
<% _.each(rows, function (row, rowNumber) { %>
|
||||
<div class="row">
|
||||
<% var columnCount = row.length; %>
|
||||
<% _.each(row, function (cell, cellNumber) { %>
|
||||
|
||||
<%
|
||||
var spanClassBase;
|
||||
if (columnCount === 1) {
|
||||
spanClassBase = 'col-sm-12';
|
||||
} else if (columnCount === 2) {
|
||||
spanClassBase = 'col-sm-6';
|
||||
} else if (columnCount === 3) {
|
||||
spanClassBase = 'col-sm-4';
|
||||
} else if (columnCount === 4) {
|
||||
spanClassBase = 'col-md-3 col-sm-6';
|
||||
} else {
|
||||
spanClass = 'col-sm-12';
|
||||
}
|
||||
%>
|
||||
<% if (cell != false) { %>
|
||||
<%
|
||||
var spanClass;
|
||||
if (columnCount === 1 || cell.fullWidth) {
|
||||
spanClass = 'col-sm-12';
|
||||
} else if (columnCount === 2) {
|
||||
if (cell.span === 2) {
|
||||
spanClass = 'col-sm-12';
|
||||
} else {
|
||||
spanClass = 'col-sm-6';
|
||||
}
|
||||
} else if (columnCount === 3) {
|
||||
if (cell.span === 2) {
|
||||
spanClass = 'col-sm-8';
|
||||
} else if (cell.span === 3) {
|
||||
spanClass = 'col-sm-12';
|
||||
} else {
|
||||
spanClass = 'col-sm-4';
|
||||
}
|
||||
} else if (columnCount === 4) {
|
||||
if (cell.span === 2) {
|
||||
spanClass = 'col-sm-6';
|
||||
} else if (cell.span === 3) {
|
||||
spanClass = 'col-sm-9';
|
||||
} else if (cell.span === 4) {
|
||||
spanClass = 'col-sm-12';
|
||||
} else {
|
||||
spanClass = 'col-md-3 col-sm-6';
|
||||
}
|
||||
} else {
|
||||
spanClass = 'col-sm-12';
|
||||
}
|
||||
%>
|
||||
<div
|
||||
class="cell <%= spanClass %> form-group<% if (cell.field) { %>{{#if hiddenFields.<%= cell.field %>}} hidden-cell{{/if}}<% } %>"
|
||||
data-name="<%= cell.field %>"
|
||||
tabindex="-1"
|
||||
>
|
||||
<% if (!cell.noLabel) { %><label class="control-label<% if (cell.field) { %>{{#if hiddenFields.<%= cell.field %>}} hidden{{/if}}<% } %>" data-name="<%= cell.field %>"><span class="label-text"><%
|
||||
if ('customLabel' in cell) {
|
||||
print (cell.customLabel);
|
||||
} else {
|
||||
var label = cell.label || cell.field;
|
||||
print ("{{translate \""+label+"\" scope=\""+model.name+"\" category='fields'}}");
|
||||
}
|
||||
%></span></label><% } %>
|
||||
<div class="field<% if (cell.field) { %>{{#if hiddenFields.<%= cell.field %>}} hidden{{/if}}<% } %>" data-name="<%= cell.field %>"><%
|
||||
if ('customCode' in cell) {
|
||||
print (cell.customCode);
|
||||
} else {
|
||||
print ("{{{this."+cell.name+"}}}");
|
||||
}
|
||||
%></div>
|
||||
</div>
|
||||
<% } else { %>
|
||||
<div class="<%= spanClassBase %>"></div>
|
||||
<% } %>
|
||||
<% }); %>
|
||||
</div>
|
||||
<% }); %>
|
||||
|
||||
<%
|
||||
var columnCount = columns.length;
|
||||
if (columnCount) {
|
||||
%>
|
||||
<div class="row">
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<% _.each(columns, function (column, columnNumber) { %>
|
||||
<%
|
||||
var spanClass;
|
||||
if (!columnCount) return;
|
||||
|
||||
if (columnCount === 1 || column.fullWidth) {
|
||||
spanClass = 'col-sm-12';
|
||||
} else if (columnCount === 2) {
|
||||
if (column.span === 2) {
|
||||
spanClass = 'col-sm-12';
|
||||
} else {
|
||||
spanClass = 'col-sm-6';
|
||||
}
|
||||
} else if (columnCount === 3) {
|
||||
if (column.span === 2) {
|
||||
spanClass = 'col-sm-8';
|
||||
} else if (column.span === 3) {
|
||||
spanClass = 'col-sm-12';
|
||||
} else {
|
||||
spanClass = 'col-sm-4';
|
||||
}
|
||||
} else if (columnCount === 4) {
|
||||
if (column.span === 2) {
|
||||
spanClass = 'col-sm-6';
|
||||
} else if (column.span === 3) {
|
||||
spanClass = 'col-sm-9';
|
||||
} else if (column.span === 4) {
|
||||
spanClass = 'col-sm-12';
|
||||
} else {
|
||||
spanClass = 'col-md-3 col-sm-6';
|
||||
}
|
||||
} else {
|
||||
spanClass = 'col-sm-12';
|
||||
}
|
||||
%>
|
||||
<div class="column <%= spanClass %>">
|
||||
<% _.each(column, function (cell, cellNumber) { %>
|
||||
<div class="cell form-group<% if (cell.field) { %>{{#if hiddenFields.<%= cell.field %>}} hidden-cell{{/if}}<% } %>" data-name="<%= cell.field %>">
|
||||
<% if (!cell.noLabel) { %><label class="control-label<% if (cell.field) { %>{{#if hiddenFields.<%= cell.field %>}} hidden{{/if}}<% } %>" data-name="<%= cell.field %>"><span class="label-text"><%
|
||||
if ('customLabel' in cell) {
|
||||
print (cell.customLabel);
|
||||
} else {
|
||||
print ("{{translate \""+cell.field+"\" scope=\""+model.name+"\" category='fields'}}");
|
||||
}
|
||||
%></span></label><% } %>
|
||||
<div class="field<% if (cell.field) { %>{{#if hiddenFields.<%= cell.field %>}} hidden{{/if}}<% } %>" data-name="<%= cell.field %>"><%
|
||||
if ('customCode' in cell) {
|
||||
print (cell.customCode);
|
||||
} else {
|
||||
print ("{{{this."+cell.name+"}}}");
|
||||
}
|
||||
%></div>
|
||||
</div>
|
||||
<% }); %>
|
||||
</div>
|
||||
<% }); %>
|
||||
<%
|
||||
if (columnCount) {
|
||||
%>
|
||||
</div>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
</div>
|
||||
</div>
|
||||
<% }); %>
|
||||
|
||||
<%
|
||||
if (hasHiddenPanel) {
|
||||
%>
|
||||
<div class="panel panel-default panels-show-more-delimiter" data-name="showMoreDelimiter" data-tab="0">
|
||||
<a role="button" tabindex="0" data-action="showMoreDetailPanels" title="{{translate 'Show more'}}">
|
||||
<span class="fas fa-ellipsis-h fa-lg"></span>
|
||||
</a>
|
||||
</div>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
24
client/res/templates/about.tpl
Normal file
24
client/res/templates/about.tpl
Normal file
@@ -0,0 +1,24 @@
|
||||
<div class="page-header">
|
||||
<h3>{{translate 'About'}}</h3>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<span class="text-bold text-soft">Version {{version}}</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="complex-text">
|
||||
{{text}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
{{#if isEmpty}}
|
||||
{{translate 'None'}}
|
||||
{{else}}
|
||||
<div>(
|
||||
{{#each viewDataList}}
|
||||
<div data-view-key="{{key}}" style="margin-left: 15px;">{{{var key ../this}}}</div>
|
||||
{{#unless isEnd}}
|
||||
<div style="margin-left: 15px;">
|
||||
{{translate ../operator category='logicalOperators' scope='Admin'}}
|
||||
</div>
|
||||
{{/unless}}
|
||||
{{/each}}
|
||||
)</div>
|
||||
{{/if}}
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
<div>{{translate 'not' category='logicalOperators' scope='Admin'}} (
|
||||
<div data-view-key="{{viewKey}}" style="margin-left: 15px;">{{{var viewKey this}}}</div>
|
||||
)</div>
|
||||
@@ -0,0 +1 @@
|
||||
{{leftString}} {{{operatorString}}} <span data-name="{{valueViewKey}}">{{{value}}}</span>
|
||||
@@ -0,0 +1,2 @@
|
||||
{{translate field category='fields' scope=scope}} {{{operatorString}}}
|
||||
({{#each valueViewDataList}}<span data-name="{{key}}">{{{var key ../this}}}</span>{{#unless isEnd}}, {{/unless}}{{/each}})
|
||||
@@ -0,0 +1 @@
|
||||
{{translate field category='fields' scope=scope}} {{{operatorString}}}
|
||||
@@ -0,0 +1 @@
|
||||
{{translate field category='fields' scope=scope}} {{{operatorString}}} {{translateOption dateValue field='dateSearchRanges'}}
|
||||
@@ -0,0 +1,11 @@
|
||||
<div class="row dynamic-logic-edit-item-row">
|
||||
<div class="col-sm-2">{{leftString}}</div>
|
||||
<div class="col-sm-3">
|
||||
<select data-name="type" class="form-control">{{{options typeList type scope='DynamicLogic' field='operators'}}}</select>
|
||||
</div>
|
||||
<div class="col-sm-4 value-container">{{{value}}}</div>
|
||||
<div class="col-sm-3">
|
||||
<a class="pull-right" role="button" tabindex="0" data-action="remove"><span class="fas fa-times"></span></a>
|
||||
<span>{{translate operator category='logicalOperators' scope='Admin'}}</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,67 @@
|
||||
|
||||
<div class="group-head" data-level="{{level}}">
|
||||
{{#ifNotEqual level 0}}
|
||||
<a class="pull-right" role="button" tabindex="0" data-action="remove"><span class="fas fa-times"></span></a>
|
||||
{{/ifNotEqual}}
|
||||
{{#ifNotEqual level 0}}
|
||||
<div>(</div>
|
||||
{{else}}
|
||||
|
||||
{{/ifNotEqual}}
|
||||
</div>
|
||||
|
||||
<div class="item-list" data-level="{{level}}">
|
||||
{{#each viewDataList}}
|
||||
<div data-view-key="{{key}}">{{{var key ../this}}}</div>
|
||||
<div class="group-operator" data-view-ref-key="{{key}}">{{translate ../groupOperator category='logicalOperators' scope='Admin'}}</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
<div class="group-bottom" data-level="{{level}}">
|
||||
<div class="btn-group">
|
||||
<a
|
||||
class="dropdown-toggle small"
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-toggle="dropdown"
|
||||
>{{translate groupOperator category='logicalOperators' scope='Admin'}} <span class="fas fa-plus"></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="addField"
|
||||
>{{translate 'Field' scope='DynamicLogic'}}</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="addAnd"
|
||||
>(... {{translate 'and' category='logicalOperators' scope='Admin'}} ...)</a></li>
|
||||
<li><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="addOr"
|
||||
>(... {{translate 'or' category='logicalOperators' scope='Admin'}} ...)</a></li>
|
||||
<li><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="addNot"
|
||||
>{{translate 'not' category='logicalOperators' scope='Admin'}} (...)</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="addCurrentUser"
|
||||
>${{translate 'User' scope='scopeNames'}}</a></li>
|
||||
<li><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="addCurrentUserTeams"
|
||||
>${{translate 'User' scope='scopeNames'}}.{{translate 'teams' category='fields' scope='User'}}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{#ifNotEqual level 0}}
|
||||
<div>)</div>
|
||||
{{/ifNotEqual}}
|
||||
51
client/res/templates/admin/dynamic-logic/conditions/not.tpl
Normal file
51
client/res/templates/admin/dynamic-logic/conditions/not.tpl
Normal file
@@ -0,0 +1,51 @@
|
||||
|
||||
<div class="group-head" data-level="{{level}}">
|
||||
<a class="pull-right" role="button" data-action="remove"><span class="fas fa-times"></span></a>
|
||||
<div><span class="not-operator">{{translate 'not' category='logicalOperators' scope='Admin'}}</span> (</div>
|
||||
</div>
|
||||
|
||||
<div class="item-list" data-level="{{level}}">
|
||||
<div data-view-key="{{viewKey}}">{{#if hasItem}}{{{var viewKey this}}}{{/if}}</div>
|
||||
</div>
|
||||
|
||||
<div class="group-bottom" data-level="{{level}}">
|
||||
<div class="btn-group">
|
||||
<a class="dropdown-toggle small" role="button" data-toggle="dropdown"><span class="fas fa-plus"></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="addField"
|
||||
>{{translate 'Field' scope='DynamicLogic'}}</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="addAnd"
|
||||
>(... {{translate 'and' category='logicalOperators' scope='Admin'}} ...)</a></li>
|
||||
<li><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="addOr"
|
||||
>(... {{translate 'or' category='logicalOperators' scope='Admin'}} ...)</a></li>
|
||||
<li><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="addNot"
|
||||
>{{translate 'not' category='logicalOperators' scope='Admin'}} (...)</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="addCurrentUser"
|
||||
>${{translate 'User' scope='scopeNames'}}</a></li>
|
||||
<li><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="addCurrentUserTeams"
|
||||
>${{translate 'User' scope='scopeNames'}}.{{translate 'teams' category='fields' scope='User'}}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>)</div>
|
||||
5
client/res/templates/admin/dynamic-logic/modals/edit.tpl
Normal file
5
client/res/templates/admin/dynamic-logic/modals/edit.tpl
Normal file
@@ -0,0 +1,5 @@
|
||||
<div class="panel panel-default no-side-margin"><div class="panel-body">
|
||||
|
||||
<div class="top-group-container dynamic-logic-expression-container">{{{conditionGroup}}}</div>
|
||||
|
||||
</div></div>
|
||||
16
client/res/templates/admin/entity-manager/edit.tpl
Normal file
16
client/res/templates/admin/entity-manager/edit.tpl
Normal file
@@ -0,0 +1,16 @@
|
||||
<div class="page-header">
|
||||
<h3><a href="#Admin">{{translate 'Administration'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
<a href="#Admin/entityManager">{{translate 'Entity Manager' scope='Admin'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
{{#unless isNew}}
|
||||
<a href="#Admin/entityManager/scope={{scope}}">{{translate scope category='scopeNames'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
{{translate 'Edit'}}
|
||||
{{else}}
|
||||
{{translate 'Create Entity' scope='Admin'}}
|
||||
{{/unless}}
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<div class="record">{{{record}}}</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
<div>
|
||||
<button
|
||||
class="btn btn-default pull-right btn-icon"
|
||||
data-action="selectIcon"
|
||||
title="{{translate 'Select'}}"
|
||||
><span class="fas fa-angle-up"></span></button>
|
||||
<span style="vertical-align: middle;">
|
||||
{{#if value}}
|
||||
<span class="{{value}}"></span>
|
||||
{{else}}
|
||||
{{translate 'None'}}
|
||||
{{/if}}
|
||||
</span>
|
||||
</div>
|
||||
37
client/res/templates/admin/entity-manager/formula.tpl
Normal file
37
client/res/templates/admin/entity-manager/formula.tpl
Normal file
@@ -0,0 +1,37 @@
|
||||
<div class="page-header">
|
||||
<h3>
|
||||
<a href="#Admin">{{translate 'Administration'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
<a href="#Admin/entityManager">{{translate 'Entity Manager' scope='Admin'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
<a href="#Admin/entityManager/scope={{scope}}">{{translate scope category='scopeNames'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
{{translate 'Formula' scope='EntityManager'}}
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<div class="button-container">
|
||||
<div class="btn-group actions-btn-group" role="group">
|
||||
<button class="btn btn-danger btn-xs-wide action" data-action="save">
|
||||
{{translate 'Save'}}
|
||||
</button>
|
||||
<button class="btn btn-default btn-xs-wide action" data-action="close">
|
||||
{{translate 'Close'}}
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-default dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
><span class="fas fa-ellipsis-h"></span></button>
|
||||
<ul class="dropdown-menu pull-right">
|
||||
<li>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="resetToDefault"
|
||||
>{{translate 'Reset to Default' scope='Admin'}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="record">{{{record}}}</div>
|
||||
77
client/res/templates/admin/entity-manager/index.tpl
Normal file
77
client/res/templates/admin/entity-manager/index.tpl
Normal file
@@ -0,0 +1,77 @@
|
||||
<div class="page-header"><h3><a href="#Admin">{{translate 'Administration'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
{{translate 'Entity Manager' scope='Admin'}}</h3></div>
|
||||
|
||||
<div class="button-container">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-default" data-action="createEntity">
|
||||
<span class="fas fa-plus fa-sm"></span><span>{{translate 'Create Entity' scope='Admin'}}</span>
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-default dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
><span class="fas fa-ellipsis-h"></span></button>
|
||||
<ul class="dropdown-menu pull-right">
|
||||
<li>
|
||||
<a
|
||||
role="button"
|
||||
data-action="export"
|
||||
tabindex="0"
|
||||
>{{translate 'Export'}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-11">
|
||||
|
||||
<div class="margin-bottom-2x margin-top">
|
||||
<input
|
||||
type="text"
|
||||
maxlength="64"
|
||||
placeholder="{{translate 'Search'}}"
|
||||
data-name="quick-search"
|
||||
class="form-control"
|
||||
spellcheck="false"
|
||||
>
|
||||
</div>
|
||||
<table class="table table-hover table-panel scopes-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{translate 'label' scope='EntityManager' category='fields'}}</th>
|
||||
<th style="width: 27%">{{translate 'name' scope='EntityManager' category='fields'}}</th>
|
||||
<th style="width: 19%">{{translate 'type' scope='EntityManager' category='fields'}}</th>
|
||||
<th style="width: 19%">{{translate 'module' scope='EntityManager' category='fields'}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each scopeDataList}}
|
||||
<tr data-scope="{{name}}" class="scope-row">
|
||||
<td>
|
||||
{{#if hasView}}
|
||||
<a href="#Admin/entityManager/scope={{name}}">{{label}}</a>
|
||||
{{else}}
|
||||
{{label}}
|
||||
{{/if}}
|
||||
</td>
|
||||
<td>
|
||||
{{name}}
|
||||
</td>
|
||||
<td>
|
||||
{{#if type}}
|
||||
{{translateOption type field='type' scope='EntityManager'}}
|
||||
{{/if}}
|
||||
</td>
|
||||
<td>
|
||||
{{#if module}}
|
||||
{{translateOption module field='module' scope='EntityManager'}}
|
||||
{{/if}}
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="no-data hidden">{{translate 'No Data'}}</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
<div class="margin-top margin-bottom-2x">
|
||||
<a role="button" tabindex="0" data-action="select" class="action btn btn-default" data-value="" style="cursor: pointer;">
|
||||
{{translate 'None'}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="margin-top margin-bottom-2x">
|
||||
<input class="form-control" type="input" data-name="quick-search" placeholder="{{translate 'Search'}}">
|
||||
</div>
|
||||
|
||||
<div class="row icons">
|
||||
{{#each iconDataList}}
|
||||
{{#each this}}
|
||||
<div
|
||||
class="col-md-2 col-sm-2 icon-container"
|
||||
style="height: 6em; text-align: center; overflow: hidden;"
|
||||
data-name="{{./this}}"
|
||||
>
|
||||
<span data-action="select" class="action" data-value="{{./this}}" style="cursor: pointer;">
|
||||
<div style="text-align: center; height: 1.5em;">
|
||||
<span class="{{./this}}"></span>
|
||||
</div>
|
||||
<div style="text-align: center;">
|
||||
<span>{{./this}}</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
{{/each}}
|
||||
{{/each}}
|
||||
</div>
|
||||
@@ -0,0 +1,10 @@
|
||||
<div class="row">
|
||||
<div data-name="{{field}}" class="cell col-sm-12">
|
||||
<label class="control-label" data-name="{{field}}">
|
||||
{{translate field category='fields' scope='EntityManager'}}
|
||||
</label>
|
||||
<div class="field" data-name="{{field}}">
|
||||
{{{var fieldKey this}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
93
client/res/templates/admin/entity-manager/scope.tpl
Normal file
93
client/res/templates/admin/entity-manager/scope.tpl
Normal file
@@ -0,0 +1,93 @@
|
||||
<div class="page-header">
|
||||
<h3><a href="#Admin">{{translate 'Administration'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
<a href="#Admin/entityManager">{{translate 'Entity Manager' scope='Admin'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
{{translate scope category='scopeNames'}}
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<div class="button-container">
|
||||
<div class="btn-group actions-btn-group" role="group">
|
||||
{{#if isEditable}}
|
||||
<button class="btn btn-default action btn-lg action btn-wide" data-action="editEntity">
|
||||
<span class="icon fas fa-cog"></span>
|
||||
{{translate 'Edit'}}
|
||||
</button>
|
||||
{{/if}}
|
||||
{{#if isRemovable}}
|
||||
<button class="btn btn-default btn-lg dropdown-toggle item-dropdown-button" data-toggle="dropdown">
|
||||
<span class="fas fa-ellipsis-h"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu pull-left">
|
||||
<li><a role="button" tabindex="0" data-action="removeEntity">{{translate 'Remove'}}</a></li>
|
||||
</ul>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="record record-container">{{{record}}}</div>
|
||||
<div class="record">
|
||||
<div class="record-grid">
|
||||
<div class="left">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body panel-body-form">
|
||||
<div class="row">
|
||||
<div class="cell col-sm-6 form-group">
|
||||
{{#if hasFields}}
|
||||
<div>
|
||||
<a
|
||||
class="btn btn-default btn-lg action btn-full-wide"
|
||||
href="#Admin/fieldManager/scope={{scope}}"
|
||||
>
|
||||
<span class="fas fa-asterisk"></span>
|
||||
{{translate 'Fields' scope='EntityManager'}}
|
||||
</a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="cell col-sm-6 form-group">
|
||||
{{#if hasRelationships}}
|
||||
<div>
|
||||
<a
|
||||
class="btn btn-default btn-lg action btn-full-wide"
|
||||
href="#Admin/linkManager/scope={{scope}}"
|
||||
>
|
||||
<span class="fas fa-link"></span>
|
||||
{{translate 'Relationships' scope='EntityManager'}}
|
||||
</a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="cell col-sm-6 form-group">
|
||||
{{#if hasLayouts}}
|
||||
<div>
|
||||
<a
|
||||
class="btn btn-default btn-lg action btn-full-wide"
|
||||
href="#Admin/layouts/scope={{scope}}&em=true"
|
||||
>
|
||||
<span class="fas fa-table"></span>
|
||||
{{translate 'Layouts' scope='EntityManager'}}
|
||||
</a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="cell col-sm-6 form-group">
|
||||
{{#if hasFormula}}
|
||||
<div>
|
||||
<a
|
||||
class="btn btn-default btn-lg action btn-full-wide"
|
||||
data-action="editFormula"
|
||||
>
|
||||
<span class="fas fa-code"></span>
|
||||
{{translate 'Formula' scope='EntityManager'}}
|
||||
</a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
5
client/res/templates/admin/extensions/done.tpl
Normal file
5
client/res/templates/admin/extensions/done.tpl
Normal file
@@ -0,0 +1,5 @@
|
||||
|
||||
<p class="text-success">
|
||||
{{{text}}}
|
||||
</p>
|
||||
|
||||
27
client/res/templates/admin/extensions/index.tpl
Normal file
27
client/res/templates/admin/extensions/index.tpl
Normal file
@@ -0,0 +1,27 @@
|
||||
<div class="page-header"><h3><a href="#Admin">{{translate 'Administration'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
{{translate 'Extensions' scope='Admin'}}</h3></div>
|
||||
|
||||
<div class="panel panel-default upload">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">{{translate 'selectExtensionPackage' category='messages' scope='Admin'}}</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div>
|
||||
<input type="file" name="package" accept="application/zip">
|
||||
</div>
|
||||
<div class="message-container text-danger" style="height: 20px; margin-bottom: 10px; margin-top: 10px;"></div>
|
||||
<div class="buttons-container">
|
||||
<button
|
||||
class="btn btn-primary disabled"
|
||||
data-action="upload"
|
||||
disabled="disabled"
|
||||
>{{translate 'Upload' scope='Admin'}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="text-danger notify-text hidden"></p>
|
||||
|
||||
<div class="list-container">{{{list}}}</div>
|
||||
|
||||
5
client/res/templates/admin/extensions/ready.tpl
Normal file
5
client/res/templates/admin/extensions/ready.tpl
Normal file
@@ -0,0 +1,5 @@
|
||||
|
||||
<p class="text-danger">
|
||||
{{{text}}}
|
||||
</p>
|
||||
|
||||
85
client/res/templates/admin/field-manager/edit.tpl
Normal file
85
client/res/templates/admin/field-manager/edit.tpl
Normal file
@@ -0,0 +1,85 @@
|
||||
<div class="button-container">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-primary btn-xs-wide" data-action="save">{{translate 'Save'}}</button>
|
||||
<button class="btn btn-default btn-xs-wide" data-action="close">{{translate 'Close'}}</button>
|
||||
{{#if hasResetToDefault}}
|
||||
<button
|
||||
class="btn btn-default"
|
||||
data-action="resetToDefault"
|
||||
>{{translate 'Reset to Default' scope='Admin'}}</button>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row middle">
|
||||
<div class="col-sm-6">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body panel-body-form">
|
||||
<div class="cell form-group" data-name="type">
|
||||
<label class="control-label" data-name="type">{{translate 'type' scope='Admin' category='fields'}}</label>
|
||||
<div class="field" data-name="type">{{translate type scope='Admin' category='fieldTypes'}}</div>
|
||||
</div>
|
||||
<div class="cell form-group" data-name="name">
|
||||
<label class="control-label" data-name="name">{{translate 'name' scope='Admin' category='fields'}}</label>
|
||||
<div class="field" data-name="name">{{{name}}}</div>
|
||||
</div>
|
||||
<div class="cell form-group" data-name="label">
|
||||
<label class="control-label" data-name="label">{{translate 'label' scope='Admin' category='fields'}}</label>
|
||||
<div class="field" data-name="label">{{{label}}}</div>
|
||||
</div>
|
||||
{{#each paramDataList}}
|
||||
{{#unless hidden}}
|
||||
<div class="cell form-group" data-name="{{name}}">
|
||||
<label class="control-label" data-name="{{name}}">{{label}}</label>
|
||||
<div class="field" data-name="{{name}}">{{{var name ../this}}}</div>
|
||||
</div>
|
||||
{{/unless}}
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{#if hasDynamicLogicPanel}}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading"><h4 class="panel-title">{{translate 'Dynamic Logic' scope='FieldManager'}}</h4></div>
|
||||
<div class="panel-body panel-body-form">
|
||||
{{#if dynamicLogicVisible}}
|
||||
<div class="cell form-group" data-name="dynamicLogicVisible">
|
||||
<label class="control-label" data-name="dynamicLogicVisible">{{translate 'dynamicLogicVisible' scope='Admin' category='fields'}}</label>
|
||||
<div class="field" data-name="dynamicLogicVisible">{{{dynamicLogicVisible}}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if dynamicLogicRequired}}
|
||||
<div class="cell form-group" data-name="dynamicLogicRequired">
|
||||
<label class="control-label" data-name="dynamicLogicRequired">{{translate 'dynamicLogicRequired' scope='Admin' category='fields'}}</label>
|
||||
<div class="field" data-name="dynamicLogicRequired">{{{dynamicLogicRequired}}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if dynamicLogicReadOnly}}
|
||||
<div class="cell form-group" data-name="dynamicLogicReadOnly">
|
||||
<label class="control-label" data-name="dynamicLogicReadOnly">{{translate 'dynamicLogicReadOnly' scope='Admin' category='fields'}}</label>
|
||||
<div class="field" data-name="dynamicLogicReadOnly">{{{dynamicLogicReadOnly}}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if dynamicLogicOptions}}
|
||||
<div class="cell form-group" data-name="dynamicLogicOptions">
|
||||
<label class="control-label" data-name="dynamicLogicOptions">{{translate 'dynamicLogicOptions' scope='Admin' category='fields'}}</label>
|
||||
<div class="field" data-name="dynamicLogicOptions">{{{dynamicLogicOptions}}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if dynamicLogicInvalid}}
|
||||
<div class="cell form-group" data-name="dynamicLogicInvalid">
|
||||
<label class="control-label" data-name="dynamicLogicInvalid">{{translate 'dynamicLogicInvalid' scope='Admin' category='fields'}}</label>
|
||||
<div class="field" data-name="dynamicLogicInvalid">{{{dynamicLogicInvalid}}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if dynamicLogicReadOnlySaved}}
|
||||
<div class="cell form-group" data-name="dynamicLogicReadOnlySaved">
|
||||
<label class="control-label" data-name="dynamicLogicReadOnlySaved">{{translate 'dynamicLogicReadOnlySaved' scope='Admin' category='fields'}}</label>
|
||||
<div class="field" data-name="dynamicLogicReadOnlySaved">{{{dynamicLogicReadOnlySaved}}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
@@ -0,0 +1,13 @@
|
||||
{{#if isNotEmpty}}
|
||||
<div>
|
||||
<div class="top-group-string-container">
|
||||
{{{conditionGroup}}}
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
{{#if isSet}}
|
||||
<span class="none-value">{{translate 'None'}}</span>
|
||||
{{else}}
|
||||
<span class="loading-value"></span>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
@@ -0,0 +1,8 @@
|
||||
<div>
|
||||
<div class="pull-right">
|
||||
<a role="button" tabindex="0" data-action="editConditions">{{translate 'Edit'}}</a>
|
||||
</div>
|
||||
<div class="top-group-string-container">
|
||||
{{{conditionGroup}}}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,50 @@
|
||||
|
||||
<div class="dynamic-logic-options">
|
||||
<div class="dynamic-logic-options-list-container list-group">
|
||||
{{#each itemDataList}}
|
||||
<div class="list-group-item">
|
||||
<div class="clearfix option-list-item-header">
|
||||
<div class="pull-right">
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="removeOptionList"
|
||||
data-index="{{index}}"
|
||||
class="remove-option-list"
|
||||
title="{{translate 'Remove'}}"
|
||||
>
|
||||
<span class="fas fa-minus fa-sm"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="options-container" data-key="{{optionsViewKey}}">
|
||||
{{{var optionsViewKey ../this}}}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="pull-right">
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="editConditions"
|
||||
data-index="{{index}}"
|
||||
>{{translate 'Edit'}}</a>
|
||||
</div>
|
||||
<div class="string-container" data-key="{{conditionGroupViewKey}}">
|
||||
{{{var conditionGroupViewKey ../this}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="addOptionList"
|
||||
title="{{translate 'Add'}}"
|
||||
class="add-option-list"
|
||||
><span class="fas fa-plus fa-sm"></span></a>
|
||||
</div>
|
||||
</div>
|
||||
17
client/res/templates/admin/field-manager/header.tpl
Normal file
17
client/res/templates/admin/field-manager/header.tpl
Normal file
@@ -0,0 +1,17 @@
|
||||
<h3>
|
||||
<a href="#Admin">{{translate 'Administration'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
<a href="#Admin/entityManager">{{translate 'Entity Manager' scope='Admin'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
<a href="#Admin/entityManager/scope={{scope}}">{{translate scope category='scopeNames'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
{{#if field}}
|
||||
<a href="#Admin/fieldManager/scope={{scope}}">{{translate 'Fields' scope='EntityManager'}}</a>
|
||||
{{else}}
|
||||
{{translate 'Fields' scope='EntityManager'}}
|
||||
{{/if}}
|
||||
{{#if field}}
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
{{translate field category='fields' scope=scope}}
|
||||
{{/if}}
|
||||
</h3>
|
||||
11
client/res/templates/admin/field-manager/index.tpl
Normal file
11
client/res/templates/admin/field-manager/index.tpl
Normal file
@@ -0,0 +1,11 @@
|
||||
<div class="page-header">
|
||||
{{{header}}}
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div id="fields-panel" class="col-sm-9">
|
||||
<div id="fields-content">
|
||||
{{{content}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
85
client/res/templates/admin/field-manager/list.tpl
Normal file
85
client/res/templates/admin/field-manager/list.tpl
Normal file
@@ -0,0 +1,85 @@
|
||||
<div class="button-container">
|
||||
<div class="btn-group">
|
||||
{{#if hasAddField}}
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-default btn-wide"
|
||||
data-action="addField"
|
||||
><span class="fas fa-plus fa-sm"></span><span>{{translate 'Add Field' scope='Admin'}}</span></button>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="margin-bottom-2x margin-top">
|
||||
<input
|
||||
type="text"
|
||||
maxlength="64"
|
||||
placeholder="{{translate 'Search'}}"
|
||||
data-name="quick-search"
|
||||
class="form-control"
|
||||
spellcheck="false"
|
||||
>
|
||||
</div>
|
||||
|
||||
<table class="table fields-table table-panel table-hover">
|
||||
<thead>
|
||||
<th style="width: 35%">{{translate 'Label' scope='FieldManager'}}</th>
|
||||
<th style="width: 35%">{{translate 'Name' scope='FieldManager'}}</th>
|
||||
<th style="width: 20%">{{translate 'Type' scope='FieldManager'}}</th>
|
||||
<th style="width: 8%; text-align: right;"></th>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each fieldDefsArray}}
|
||||
<tr data-name="{{name}}" class="field-row">
|
||||
<td>
|
||||
{{#if isEditable}}
|
||||
<a
|
||||
href="#Admin/fieldManager/scope={{../scope}}&field={{name}}"
|
||||
class="field-link"
|
||||
data-scope="{{../scope}}"
|
||||
data-field="{{name}}"
|
||||
>{{translate name scope=../scope category='fields'}}</a>
|
||||
{{else}}
|
||||
{{translate name scope=../scope category='fields'}}
|
||||
{{/if}}
|
||||
</td>
|
||||
<td>
|
||||
<span class="{{#if isCustom}} text-info {{/if}}">{{name}}</span>
|
||||
|
||||
</td>
|
||||
<td>{{translate type category='fieldTypes' scope='Admin'}}</td>
|
||||
<td style="text-align: right">
|
||||
<div class="btn-group row-dropdown-group">
|
||||
<button
|
||||
class="btn btn-link btn-sm dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
><span class="caret"></span></button>
|
||||
<ul class="dropdown-menu pull-right">
|
||||
<li>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="viewDetails"
|
||||
data-name="{{name}}"
|
||||
>{{translate 'View Details' scope='FieldManager'}}</a>
|
||||
</li>
|
||||
{{#if isCustom}}
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="removeField"
|
||||
data-name="{{name}}"
|
||||
>{{translate 'Remove'}}</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="no-data hidden">{{translate 'No Data'}}</div>
|
||||
@@ -0,0 +1,25 @@
|
||||
<div class="margin-bottom-2x margin-top">
|
||||
<input
|
||||
type="text"
|
||||
maxlength="64"
|
||||
placeholder="{{translate 'Search'}}"
|
||||
data-name="quick-search"
|
||||
class="form-control"
|
||||
spellcheck="false"
|
||||
>
|
||||
</div>
|
||||
|
||||
<ul class="list-group no-side-margin">
|
||||
{{#each typeList}}
|
||||
<li class="list-group-item" data-name="{{./this}}">
|
||||
<a role="button" tabindex="0" data-action="addField" data-type="{{./this}}" class="text-bold">
|
||||
{{translate this category='fieldTypes' scope='Admin'}}
|
||||
</a>
|
||||
<a role="button" tabindex="0" class="text-muted pull-right info" data-name="{{./this}}">
|
||||
<span class="fas fa-info-circle"></span>
|
||||
</a>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
||||
<div class="no-data hidden">{{translate 'No Data'}}</div>
|
||||
6
client/res/templates/admin/formula-sandbox/index.tpl
Normal file
6
client/res/templates/admin/formula-sandbox/index.tpl
Normal file
@@ -0,0 +1,6 @@
|
||||
<div class="page-header"><h3><a href="#Admin">{{translate 'Administration'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
{{translate 'Formula Sandbox' scope='Admin'}}</h3></div>
|
||||
|
||||
|
||||
<div class="record">{{{record}}}</div>
|
||||
12
client/res/templates/admin/formula/modals/add-function.tpl
Normal file
12
client/res/templates/admin/formula/modals/add-function.tpl
Normal file
@@ -0,0 +1,12 @@
|
||||
<div class="complex-text margin-bottom-2x">{{{text}}}</div>
|
||||
|
||||
<ul class="list-group no-side-margin array-add-list-group">
|
||||
{{#each functionDataList}}
|
||||
<li class="list-group-item clearfix">
|
||||
<button class="btn btn-default pull-right btn-sm btn-icon" data-action="add" data-value="{{insertText}}">
|
||||
<span class="fas fa-plus"></span>
|
||||
</button>
|
||||
{{insertText}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
57
client/res/templates/admin/index.tpl
Normal file
57
client/res/templates/admin/index.tpl
Normal file
@@ -0,0 +1,57 @@
|
||||
<div class="page-header"><h3>{{translate 'Administration' scope='Admin'}}</h3></div>
|
||||
|
||||
<div class="admin-content">
|
||||
<div class="row">
|
||||
<div class="col-md-7">
|
||||
<div class="admin-search-container">
|
||||
<input
|
||||
type="text"
|
||||
maxlength="64"
|
||||
placeholder="{{translate 'Search'}}"
|
||||
data-name="quick-search"
|
||||
class="form-control"
|
||||
spellcheck="false"
|
||||
>
|
||||
</div>
|
||||
<div class="admin-tables-container">
|
||||
{{#each panelDataList}}
|
||||
<div class="admin-content-section" data-index="{{@index}}">
|
||||
<h4>{{label}}</h4>
|
||||
<table class="table table-admin-panel" data-name="{{name}}">
|
||||
{{#each itemList}}
|
||||
<tr class="admin-content-row" data-index="{{@index}}">
|
||||
<td>
|
||||
<div>
|
||||
{{#if iconClass}}
|
||||
<span class="icon {{iconClass}}"></span>
|
||||
{{/if}}
|
||||
<a
|
||||
{{#if url}}href="{{url}}"{{else}}role="button"{{/if}}
|
||||
tabindex="0"
|
||||
{{#if action}} data-action="{{action}}"{{/if}}
|
||||
>{{label}}</a>
|
||||
</div>
|
||||
</td>
|
||||
<td>{{translate description scope='Admin' category='descriptions'}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
{{/each}}
|
||||
<div class="no-data hidden">{{translate 'No Data'}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-5 admin-right-column">
|
||||
<div class="notifications-panel-container">{{{notificationsPanel}}}</div>
|
||||
|
||||
{{#unless iframeDisabled}}
|
||||
<iframe
|
||||
src="{{iframeUrl}}"
|
||||
style="width: 100%; height: {{iframeHeight}}px"
|
||||
frameborder="0"
|
||||
webkitallowfullscreen mozallowfullscreen allowfullscreen
|
||||
></iframe>
|
||||
{{/unless}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
44
client/res/templates/admin/integrations/edit.tpl
Normal file
44
client/res/templates/admin/integrations/edit.tpl
Normal file
@@ -0,0 +1,44 @@
|
||||
<div class="button-container">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-primary btn-xs-wide" data-action="save">{{translate 'Save'}}</button>
|
||||
<button class="btn btn-default btn-xs-wide" data-action="cancel">{{translate 'Cancel'}}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body panel-body-form">
|
||||
<div class="cell form-group" data-name="enabled">
|
||||
<label
|
||||
class="control-label"
|
||||
data-name="enabled"
|
||||
>{{translate 'enabled' scope='Integration' category='fields'}}</label>
|
||||
<div class="field" data-name="enabled">{{{enabled}}}</div>
|
||||
</div>
|
||||
{{#each fieldDataList}}
|
||||
<div
|
||||
class="cell form-group"
|
||||
data-name="{{name}}"
|
||||
>
|
||||
<label
|
||||
class="control-label"
|
||||
data-name="{{name}}"
|
||||
>{{label}}</label>
|
||||
<div
|
||||
class="field"
|
||||
data-name="{{name}}"
|
||||
>{{{var name ../this}}}</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
{{#if helpText}}
|
||||
<div class="well">
|
||||
{{complexText helpText}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
30
client/res/templates/admin/integrations/index.tpl
Normal file
30
client/res/templates/admin/integrations/index.tpl
Normal file
@@ -0,0 +1,30 @@
|
||||
<div class="page-header">
|
||||
<h3>
|
||||
<a href="#Admin">{{translate 'Administration'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
{{translate 'Integrations' scope='Admin'}}
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div id="integrations-menu" class="col-sm-3">
|
||||
<ul class="list-group list-group-panel">
|
||||
{{#each integrationDataList}}
|
||||
<li
|
||||
class="list-group-item"
|
||||
><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
class="integration-link {{#if active}} disabled text-muted {{/if}}"
|
||||
data-name="{{name}}"
|
||||
>{{{translate name scope='Integration' category='titles'}}}</a></li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div id="integration-panel" class="col-sm-9">
|
||||
<h4 id="integration-header" style="margin-top: 0px;"></h4>
|
||||
<div id="integration-content">
|
||||
{{{content}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
47
client/res/templates/admin/integrations/oauth2.tpl
Normal file
47
client/res/templates/admin/integrations/oauth2.tpl
Normal file
@@ -0,0 +1,47 @@
|
||||
<div class="button-container">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-primary btn-xs-wide" data-action="save">{{translate 'Save'}}</button>
|
||||
<button class="btn btn-default btn-xs-wide" data-action="cancel">{{translate 'Cancel'}}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body panel-body-form">
|
||||
<div class="cell form-group" data-name="enabled">
|
||||
<label
|
||||
class="control-label"
|
||||
data-name="enabled"
|
||||
>{{translate 'enabled' scope='Integration' category='fields'}}</label>
|
||||
<div class="field" data-name="enabled">{{{enabled}}}</div>
|
||||
</div>
|
||||
{{#each dataFieldList}}
|
||||
<div class="cell form-group" data-name="{{./this}}">
|
||||
<label
|
||||
class="control-label"
|
||||
data-name="{{./this}}"
|
||||
>{{translate this scope='Integration' category='fields'}}</label>
|
||||
<div class="field" data-name="{{./this}}">{{{var this ../this}}}</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
<div class="cell form-group" data-name="redirectUri">
|
||||
<label
|
||||
class="control-label"
|
||||
data-name="redirectUri"
|
||||
>{{translate 'redirectUri' scope='Integration' category='fields'}}</label>
|
||||
<div class="field" data-name="redirectUri">
|
||||
<input type="text" class="form-control" readonly value="{{redirectUri}}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
{{#if helpText}}
|
||||
<div class="well">
|
||||
{{{helpText}}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
12
client/res/templates/admin/label-manager/category.tpl
Normal file
12
client/res/templates/admin/label-manager/category.tpl
Normal file
@@ -0,0 +1,12 @@
|
||||
{{#each categoryDataList}}
|
||||
<div class="row" data-name="{{name}}">
|
||||
<div class="cell col-md-5 form-group">
|
||||
<div class="field detail-field-container">{{label}}</div>
|
||||
</div>
|
||||
<div class="cell col-md-7 form-group" data-name="{{name}}">
|
||||
<div class="field">
|
||||
<input type="input" class="form-control label-value" value="{{value}}" data-name="{{name}}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
61
client/res/templates/admin/label-manager/edit.tpl
Normal file
61
client/res/templates/admin/label-manager/edit.tpl
Normal file
@@ -0,0 +1,61 @@
|
||||
<div class="page-header">
|
||||
<h4>{{translate scope category='scopeNames'}}</h4>
|
||||
</div>
|
||||
|
||||
{{#unless categoryList.length}}
|
||||
{{translate 'No Data'}}
|
||||
{{else}}
|
||||
<div class="button-container">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-primary btn-xs-wide" data-action="save">{{translate 'Save'}}</button>
|
||||
<button class="btn btn-default btn-xs-wide" data-action="cancel">{{translate 'Cancel'}}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="button-container negate-no-side-margin">
|
||||
<input
|
||||
type="text"
|
||||
maxlength="64"
|
||||
placeholder="{{translate 'Search'}}"
|
||||
data-name="quick-search"
|
||||
class="form-control"
|
||||
spellcheck="false"
|
||||
>
|
||||
</div>
|
||||
{{/unless}}
|
||||
|
||||
{{#each categoryList}}
|
||||
<div class="panel panel-default category-panel" data-name="{{./this}}" style="overflow: hidden;">
|
||||
<div class="panel-heading clearfix">
|
||||
<div
|
||||
class="pull-left"
|
||||
style="
|
||||
margin-right: 10px;
|
||||
padding-top: calc((var(--panel-heading-height) - var(--panel-heading-font-size)) / 2 - 1px);
|
||||
"
|
||||
>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="showCategory"
|
||||
data-name="{{./this}}"
|
||||
class="action"
|
||||
><span class="fas fa-chevron-down"></span></a>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="hideCategory"
|
||||
data-name="{{./this}}"
|
||||
class="hidden action"
|
||||
><span class="fas fa-chevron-up"></span></a>
|
||||
</div>
|
||||
<h4 class="panel-title">
|
||||
<span class="action" style="cursor: pointer;" data-action="toggleCategory" data-name="{{./this}}">
|
||||
{{translate this}}
|
||||
</span>
|
||||
</h4>
|
||||
</div>
|
||||
<div class="panel-body hidden" data-name="{{./this}}">{{{var this ../this}}}</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
<div class="no-data hidden">{{translate 'No Data'}}</div>
|
||||
45
client/res/templates/admin/label-manager/index.tpl
Normal file
45
client/res/templates/admin/label-manager/index.tpl
Normal file
@@ -0,0 +1,45 @@
|
||||
<div class="page-header"><h3><a href="#Admin">{{translate 'Administration'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
{{translate 'Label Manager' scope='Admin'}}</h3></div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="cell">
|
||||
<div class="field">
|
||||
<select data-name="language" class="form-control">
|
||||
{{#each languageList}}
|
||||
<option
|
||||
value="{{this}}"
|
||||
{{#ifEqual this ../language}} selected{{/ifEqual}}
|
||||
>{{translateOption this field='language'}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<ul class="list-unstyled" style="overflow-x: hidden;">
|
||||
{{#each scopeList}}
|
||||
<li>
|
||||
<button
|
||||
class="btn btn-link"
|
||||
data-name="{{./this}}"
|
||||
data-action="selectScope"
|
||||
>{{translate this category='scopeNames'}}</button>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-9">
|
||||
<div class="language-record">
|
||||
{{{record}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
84
client/res/templates/admin/layouts/grid-panel.tpl
Normal file
84
client/res/templates/admin/layouts/grid-panel.tpl
Normal file
@@ -0,0 +1,84 @@
|
||||
<header data-name="{{name}}">
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="edit-panel-label"
|
||||
class="edit-panel-label"
|
||||
><i class="fas fa-pencil-alt fa-sm"></i></a>
|
||||
<label
|
||||
data-is-custom="{{#if isCustomLabel}}true{{/if}}"
|
||||
data-label="{{label}}"
|
||||
class="panel-label"
|
||||
>{{labelTranslated}}</label>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
style="float: right;"
|
||||
data-action="removePanel"
|
||||
class="remove-panel"
|
||||
data-number="{{number}}"
|
||||
><i class="fas fa-times"></i></a>
|
||||
</header>
|
||||
<ul class="rows">
|
||||
{{#each rows}}
|
||||
<li data-cell-count="{{./this.length}}">
|
||||
<div class="row-actions clear-fix">
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="removeRow"
|
||||
class="remove-row"
|
||||
><i class="fas fa-times"></i></a>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="plusCell"
|
||||
class="add-cell"
|
||||
><i class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
<ul class="cells" data-cell-count="{{./this.length}}">
|
||||
{{#each this}}
|
||||
{{#if this}}
|
||||
<li
|
||||
class="cell"
|
||||
data-name="{{name}}"
|
||||
{{#if hasCustomLabel}}
|
||||
data-custom-label="{{customLabel}}"
|
||||
{{/if}}
|
||||
data-no-label="{{noLabel}}"
|
||||
title="{{label}}"
|
||||
>
|
||||
<div class="left" style="width: calc(100% - 14px);">{{label}}</div>
|
||||
<div class="right" style="width: 14px;">
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="removeField"
|
||||
class="remove-field"
|
||||
><i class="fas fa-times"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{else}}
|
||||
<li class="empty cell">
|
||||
<div class="right" style="width: 14px;">
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="minusCell"
|
||||
class="remove-field"
|
||||
><i class="fas fa-minus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
<div>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="addRow"
|
||||
><i class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
82
client/res/templates/admin/layouts/grid.tpl
Normal file
82
client/res/templates/admin/layouts/grid.tpl
Normal file
@@ -0,0 +1,82 @@
|
||||
<div class="button-container">
|
||||
<div class="btn-group">
|
||||
{{#each buttonList}}
|
||||
{{button name label=label scope='Admin' style=style className='btn-xs-wide'}}
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="layout" class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="well enabled-well" tabindex="-1">
|
||||
<header>{{translate 'Layout' scope='LayoutManager'}}</header>
|
||||
<ul class="panels">
|
||||
{{#each panelDataList}}
|
||||
<li data-number="{{number}}" class="panel-layout" data-tab-break="{{tabBreak}}">
|
||||
{{{var viewKey ../this}}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
||||
<div><a role="button" tabindex="0" data-action="addPanel">{{translate 'Add Panel' scope='Admin'}}</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="well">
|
||||
<header>{{translate 'Available Fields' scope='Admin'}}</header>
|
||||
<ul class="disabled cells clearfix">
|
||||
{{#each disabledFields}}
|
||||
<li class="cell" data-name="{{./this}}" title="{{translate this scope=../scope category='fields'}}">
|
||||
<div class="left" style="width: calc(100% - 14px);">
|
||||
{{translate this scope=../scope category='fields'}}
|
||||
</div>
|
||||
<div class="right" style="width: 14px;">
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="removeField"
|
||||
class="remove-field"
|
||||
><i class="fas fa-times"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="layout-row-tpl" style="display: none;">
|
||||
<li data-cell-count="{{columnCount}}">
|
||||
<div class="row-actions clear-fix">
|
||||
<a role="button" tabindex="0" data-action="removeRow" class="remove-row"><i class="fas fa-times"></i></a>
|
||||
<a role="button" tabindex="0" data-action="plusCell" class="add-cell"><i class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
<ul class="cells" data-cell-count="{{columnCount}}">
|
||||
<% for (var i = 0; i < {{columnCount}}; i++) { %>
|
||||
<li class="empty cell">
|
||||
<div class="right" style="width: 14px;">
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="minusCell"
|
||||
class="remove-field"
|
||||
><i class="fas fa-minus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
</li>
|
||||
</div>
|
||||
|
||||
<div id="empty-cell-tpl" style="display: none;">
|
||||
<li class="empty cell disabled">
|
||||
<div class="right" style="width: 14px;">
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="minusCell"
|
||||
class="remove-field"
|
||||
><i class="fas fa-minus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
</div>
|
||||
41
client/res/templates/admin/layouts/index.tpl
Normal file
41
client/res/templates/admin/layouts/index.tpl
Normal file
@@ -0,0 +1,41 @@
|
||||
<div class="page-header"><h3>{{{headerHtml}}}</h3></div>
|
||||
|
||||
<div class="row">
|
||||
<div id="layouts-menu" class="col-sm-3">
|
||||
<div class="panel-group panel-group-accordion" id="layout-accordion">
|
||||
{{#each layoutScopeDataList}}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<a
|
||||
class="accordion-toggle{{#if ../em}} btn btn-link{{/if}}"
|
||||
data-scope="{{scope}}" href="{{url}}"
|
||||
>{{translate scope category='scopeNamesPlural'}}</a>
|
||||
</div>
|
||||
<div class="panel-collapse collapse{{#ifEqual scope ../scope}} in{{/ifEqual}}" data-scope="{{scope}}">
|
||||
<div class="panel-body">
|
||||
<ul class="list-unstyled" style="overflow-x: hidden;">
|
||||
{{#each typeDataList}}
|
||||
<li>
|
||||
<a
|
||||
class="layout-link btn btn-link"
|
||||
data-type="{{type}}"
|
||||
data-scope="{{../scope}}"
|
||||
href="{{url}}"
|
||||
>{{label}}</a>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="layouts-panel" class="col-sm-9">
|
||||
<h4 id="layout-header" style="margin-top: 0px;"></h4>
|
||||
<div id="layout-content" class="">
|
||||
{{{content}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,17 @@
|
||||
{{#each attributeDataList}}
|
||||
<div class="row">
|
||||
<div
|
||||
class="cell form-group {{#if isWide}}col-md-12{{else}}col-md-6{{/if}}"
|
||||
data-name="{{name}}"
|
||||
>
|
||||
<label
|
||||
class="control-label"
|
||||
data-name="{{name}}"
|
||||
>{{label}}</label>
|
||||
<div
|
||||
class="field"
|
||||
data-name="{{name}}"
|
||||
>{{{var viewKey ../this}}}</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
83
client/res/templates/admin/layouts/rows.tpl
Normal file
83
client/res/templates/admin/layouts/rows.tpl
Normal file
@@ -0,0 +1,83 @@
|
||||
<div class="button-container">
|
||||
<div class="btn-group">
|
||||
{{#each buttonList}}
|
||||
{{button name label=label scope='Admin' style=style className='btn-xs-wide'}}
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
ul.enabled {
|
||||
li {
|
||||
&[data-hidden="true"] {
|
||||
.left {
|
||||
color: var(--text-muted-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
|
||||
<div id="layout" class="row">
|
||||
<div class="col-sm-5">
|
||||
<div class="well enabled-well" tabindex="-1">
|
||||
<header>{{translate 'Enabled' scope='Admin'}}</header>
|
||||
<ul class="enabled connected">
|
||||
{{#each layout}}
|
||||
<li
|
||||
class="cell"
|
||||
draggable="true"
|
||||
{{#each ../dataAttributeList}}data-{{toDom this}}="{{prop ../this this}}" {{/each}}
|
||||
title="{{labelText}}"
|
||||
>
|
||||
<div class="left" style="width: calc(100% - var(--17px));">
|
||||
<span>{{labelText}}</span>
|
||||
</div>
|
||||
{{#if ../editable}}
|
||||
{{#unless notEditable}}
|
||||
<div class="right" style="width: 17px;"><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="editItem"
|
||||
class="edit-field"
|
||||
><i class="fas fa-pencil-alt fa-sm"></i></a></div>
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-5">
|
||||
<div class="well">
|
||||
<header>{{translate 'Disabled' scope='Admin'}}</header>
|
||||
<ul class="disabled connected">
|
||||
{{#each disabledFields}}
|
||||
<li
|
||||
class="cell"
|
||||
draggable="true"
|
||||
{{#each ../dataAttributeList}}data-{{toDom this}}="{{prop ../this this}}" {{/each}}
|
||||
title="{{labelText}}"
|
||||
>
|
||||
<div class="left" style="width: calc(100% - var(--17px));">
|
||||
<span>{{labelText}}</span>
|
||||
</div>
|
||||
{{#if ../editable}}
|
||||
{{#unless notEditable}}
|
||||
<div class="right" style="width: 17px;"><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="editItem"
|
||||
class="edit-field"
|
||||
><i class="fas fa-pencil-alt fa-sm"></i></a></div>
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
124
client/res/templates/admin/link-manager/index.tpl
Normal file
124
client/res/templates/admin/link-manager/index.tpl
Normal file
@@ -0,0 +1,124 @@
|
||||
<div class="page-header">
|
||||
<h3>
|
||||
<a href="#Admin">{{translate 'Administration'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
<a href="#Admin/entityManager">{{translate 'Entity Manager' scope='Admin'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
<a href="#Admin/entityManager/scope={{scope}}">{{translate scope category='scopeNames'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
{{translate 'Relationships' scope='EntityManager'}}
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<div class="button-container">
|
||||
{{#if isCreatable}}
|
||||
<button class="btn btn-default btn-wide" data-action="createLink">
|
||||
<span class="fas fa-plus fa-sm"></span><span>{{translate 'Create Link' scope='Admin'}}</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
{{#if linkDataList.length}}
|
||||
<div class="margin-bottom-2x margin-top">
|
||||
<input
|
||||
type="text"
|
||||
maxlength="64"
|
||||
placeholder="{{translate 'Search'}}"
|
||||
data-name="quick-search"
|
||||
class="form-control"
|
||||
spellcheck="false"
|
||||
>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<table class="table table-panel table-hover">
|
||||
{{#unless linkDataList.length}}
|
||||
<tr>
|
||||
<td>
|
||||
{{translate 'No Data'}}
|
||||
</td>
|
||||
</tr>
|
||||
{{else}}
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 20%;">{{translate 'linkForeign' category='fields' scope='EntityManager'}}</th>
|
||||
<th style="width: 20%;">
|
||||
{{translate 'linkType' category='fields' scope='EntityManager'}}
|
||||
</th>
|
||||
<th style="width: 20%;">
|
||||
{{translate 'link' category='fields' scope='EntityManager'}}
|
||||
</th>
|
||||
<th style="width: 20%;">
|
||||
{{translate 'entityForeign' category='fields' scope='EntityManager'}}
|
||||
</th>
|
||||
<th style="width: 10%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
{{/unless}}
|
||||
{{#each linkDataList}}
|
||||
<tr data-link="{{link}}" class="link-row">
|
||||
<td style="">
|
||||
<span title="{{translate linkForeign category='links' scope=entityForeign}}">
|
||||
{{linkForeign}}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span style="color: var(--gray-soft); font-weight: 600;">
|
||||
{{translateOption type field='linkType' scope='EntityManager'}}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span title="{{translate link category='links' scope=entity}}">
|
||||
{{link}}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
{{translate entityForeign category='scopeNames'}}
|
||||
</td>
|
||||
<td style="text-align: right">
|
||||
{{#if hasDropdown}}
|
||||
<div class="btn-group row-dropdown-group">
|
||||
<button
|
||||
class="btn btn-link btn-sm dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
><span class="caret"></span></button>
|
||||
<ul class="dropdown-menu pull-right">
|
||||
{{#if isEditable}}
|
||||
<li>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="editLink"
|
||||
data-link="{{link}}"
|
||||
>{{translate 'Edit'}}</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if hasEditParams}}
|
||||
<li>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="editParams"
|
||||
data-link="{{link}}"
|
||||
>{{translate 'Parameters' scope='EntityManager'}}</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if isRemovable}}
|
||||
<li>
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="removeLink"
|
||||
data-link="{{link}}"
|
||||
>{{translate 'Remove'}}</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
{{/if}}
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</table>
|
||||
|
||||
<div class="no-data hidden">{{translate 'No Data'}}</div>
|
||||
147
client/res/templates/admin/link-manager/modals/edit.tpl
Normal file
147
client/res/templates/admin/link-manager/modals/edit.tpl
Normal file
@@ -0,0 +1,147 @@
|
||||
<div class="panel panel-default no-side-margin">
|
||||
<div class="panel-body">
|
||||
|
||||
<div class="row">
|
||||
<div class="cell form-group col-md-4" data-name="entity">
|
||||
<label class="control-label" data-name="entity">{{translate 'entity' category='fields' scope='EntityManager'}}</label>
|
||||
<div class="field" data-name="entity">
|
||||
{{{entity}}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell form-group col-md-4" data-name="linkType">
|
||||
<label class="control-label" data-name="linkType">{{translate 'linkType' category='fields' scope='EntityManager'}}</label>
|
||||
<div class="field" data-name="linkType">
|
||||
{{{linkType}}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell form-group col-md-4" data-name="entityForeign">
|
||||
<label class="control-label" data-name="entityForeign">{{translate 'entityForeign' category='fields' scope='EntityManager'}}</label>
|
||||
<div class="field" data-name="entityForeign">
|
||||
{{{entityForeign}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="cell form-group col-md-4" data-name="linkForeign">
|
||||
<label class="control-label" data-name="linkForeign">{{translate 'name' category='fields' scope='EntityManager'}}</label>
|
||||
<div class="field" data-name="linkForeign">
|
||||
{{{linkForeign}}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell form-group col-md-4" data-name="relationName">
|
||||
{{#if relationName}}
|
||||
<label class="control-label" data-name="relationName">{{translate 'relationName' category='fields' scope='EntityManager'}}</label>
|
||||
<div class="field" data-name="relationName">
|
||||
{{{relationName}}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="cell form-group col-md-4" data-name="link">
|
||||
<label class="control-label" data-name="link">{{translate 'name' category='fields' scope='EntityManager'}}</label>
|
||||
<div class="field" data-name="link">
|
||||
{{{link}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="cell form-group col-md-4" data-name="labelForeign">
|
||||
<label class="control-label" data-name="labelForeign">{{translate 'label' category='fields' scope='EntityManager'}}</label>
|
||||
<div class="field" data-name="labelForeign">
|
||||
{{{labelForeign}}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell form-group col-md-4"></div>
|
||||
<div class="cell form-group col-md-4" data-name="label">
|
||||
<label class="control-label" data-name="label">{{translate 'label' category='fields' scope='EntityManager'}}</label>
|
||||
<div class="field" data-name="label">
|
||||
{{{label}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="cell form-group col-md-4" data-name="linkMultipleFieldForeign">
|
||||
<label class="control-label" data-name="linkMultipleFieldForeign">{{translate 'linkMultipleField' category='fields' scope='EntityManager'}}</label>
|
||||
<div class="field" data-name="linkMultipleFieldForeign">
|
||||
{{{linkMultipleFieldForeign}}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell form-group col-md-4"></div>
|
||||
<div class="cell form-group col-md-4" data-name="linkMultipleField">
|
||||
<label class="control-label" data-name="linkMultipleField">{{translate 'linkMultipleField' category='fields' scope='EntityManager'}}</label>
|
||||
<div class="field" data-name="linkMultipleField">
|
||||
{{{linkMultipleField}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="cell form-group col-md-4" data-name="auditedForeign">
|
||||
<label class="control-label" data-name="auditedForeign">{{translate 'audited' category='fields' scope='EntityManager'}}</label>
|
||||
<div class="field" data-name="auditedForeign">
|
||||
{{{auditedForeign}}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell form-group col-md-4"></div>
|
||||
<div class="cell form-group col-md-4" data-name="audited">
|
||||
<label class="control-label" data-name="audited">{{translate 'audited' category='fields' scope='EntityManager'}}</label>
|
||||
<div class="field" data-name="audited">
|
||||
{{{audited}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="cell form-group col-md-4" data-name="layoutForeign">
|
||||
<label class="control-label" data-name="layoutForeign">{{translate 'layout' category='fields' scope='EntityManager'}}</label>
|
||||
<div class="field" data-name="layoutForeign">
|
||||
{{{layoutForeign}}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell form-group col-md-4"></div>
|
||||
<div class="cell form-group col-md-4" data-name="layout">
|
||||
<label class="control-label" data-name="layout">{{translate 'layout' category='fields' scope='EntityManager'}}</label>
|
||||
<div class="field" data-name="layout">
|
||||
{{{layout}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="cell form-group col-md-4" data-name="selectFilterForeign">
|
||||
<label class="control-label" data-name="selectFilterForeign">{{translate 'selectFilter' category='fields' scope='EntityManager'}}</label>
|
||||
<div class="field" data-name="selectFilterForeign">
|
||||
{{{selectFilterForeign}}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell form-group col-md-4"></div>
|
||||
<div class="cell form-group col-md-4" data-name="selectFilter">
|
||||
<label class="control-label" data-name="selectFilter">{{translate 'selectFilter' category='fields' scope='EntityManager'}}</label>
|
||||
<div class="field" data-name="selectFilter">
|
||||
{{{selectFilter}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="cell form-group col-md-4"></div>
|
||||
<div class="cell form-group col-md-4" data-name="parentEntityTypeList">
|
||||
<label class="control-label" data-name="parentEntityTypeList">
|
||||
{{translate 'parentEntityTypeList' category='fields' scope='EntityManager'}}
|
||||
</label>
|
||||
<div class="field" data-name="parentEntityTypeList">
|
||||
{{{parentEntityTypeList}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="cell form-group col-md-4"></div>
|
||||
<div class="cell form-group col-md-4" data-name="foreignLinkEntityTypeList">
|
||||
<label class="control-label" data-name="foreignLinkEntityTypeList">
|
||||
{{translate 'foreignLinkEntityTypeList' category='fields' scope='EntityManager'}}
|
||||
</label>
|
||||
<div class="field" data-name="foreignLinkEntityTypeList">
|
||||
{{{foreignLinkEntityTypeList}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
15
client/res/templates/admin/panels/notifications.tpl
Normal file
15
client/res/templates/admin/panels/notifications.tpl
Normal file
@@ -0,0 +1,15 @@
|
||||
{{#if notificationList}}
|
||||
<div class="panel panel-danger">
|
||||
<div class="panel-body">
|
||||
<div class="list-container">
|
||||
<div class="list-group list list-expanded">
|
||||
{{#each notificationList}}
|
||||
<div data-id="{{id}}" class="list-group-item notification-item">
|
||||
<div class="text-danger complex-text">{{complexText message}}</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
3
client/res/templates/admin/settings/headers/page.tpl
Normal file
3
client/res/templates/admin/settings/headers/page.tpl
Normal file
@@ -0,0 +1,3 @@
|
||||
<h3><a href="#Admin">{{translate 'Administration'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
{{translate viewObject.options.label category='labels' scope='Admin'}}</h3>
|
||||
112
client/res/templates/admin/system-requirements/index.tpl
Normal file
112
client/res/templates/admin/system-requirements/index.tpl
Normal file
@@ -0,0 +1,112 @@
|
||||
<div class="page-header"><h3><a href="#Admin">{{translate 'Administration'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
{{translate 'System Requirements' scope='Admin'}}</h3></div>
|
||||
|
||||
{{#if noAccess}}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
{{translate 'error403' category='messages'}}
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="panel panel-default">
|
||||
<table class="table table-striped table-no-overflow table-fixed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><h5>{{translate 'PHP Settings' scope='Admin'}}</h5></th>
|
||||
<th style="width: 24%"></th>
|
||||
<th style="width: 24%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each phpRequirementList}}
|
||||
<tr class="list-row">
|
||||
<td class="cell">
|
||||
{{translate @key scope='Admin' category='systemRequirements'}}
|
||||
</td>
|
||||
<td class="cell">{{actual}}</td>
|
||||
<td class="cell">
|
||||
{{#if acceptable}} <span class="text-success">{{translate 'Success' scope='Admin'}}</span>
|
||||
{{else}}
|
||||
<span class="text-danger">{{translate 'Fail' scope='Admin'}}
|
||||
{{#ifEqual type 'lib'}} ({{translate 'extension is missing' scope='Admin'}}) {{/ifEqual}}
|
||||
{{#ifEqual type 'param'}} ({{required}} {{translate 'is recommended' scope='Admin'}}) {{/ifEqual}}
|
||||
</span> {{/if}}
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-default">
|
||||
<table class="table table-striped table-no-overflow table-fixed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><h5>{{translate 'Database Settings' scope='Admin'}}</h5></th>
|
||||
<th style="width: 24%"></th>
|
||||
<th style="width: 24%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each databaseRequirementList}}
|
||||
<tr class="">
|
||||
<td class="cell">
|
||||
{{translate @key scope='Admin' category='systemRequirements'}}
|
||||
</td>
|
||||
<td class="cell" style="width: 24%">{{actual}}</td>
|
||||
<td class="cell" style="width: 24%">
|
||||
{{#if acceptable}}
|
||||
<span class="text-success">{{translate 'Success' scope='Admin'}}</span>
|
||||
{{else}}
|
||||
<span class="text-danger">{{translate 'Fail' scope='Admin'}}
|
||||
{{#ifEqual type 'param'}} ({{required}} {{translate 'is recommended' scope='Admin'}}) {{/ifEqual}}
|
||||
</span>
|
||||
{{/if}}
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-default">
|
||||
<table class="table table-striped table-no-overflow table-fixed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><h5>{{translate 'Permissions' scope='Admin'}}</h5></th>
|
||||
<th style="width: 24%"></th>
|
||||
<th style="width: 24%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each permissionRequirementList}}
|
||||
<tr>
|
||||
<td class="cell">
|
||||
{{translate @key scope='Admin' category='systemRequirements'}}
|
||||
</td>
|
||||
<td class="cell" style="width: 24%">{{translate type scope='Admin' category='systemRequirements'}}</td>
|
||||
<td class="cell" style="width: 24%">
|
||||
{{#if acceptable}}
|
||||
<span class="text-success">{{translate 'Success' scope='Admin'}}</span>
|
||||
{{else}}
|
||||
<span class="text-danger">{{translate 'Fail' scope='Admin'}}</span>
|
||||
{{/if}}
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="pull-right">
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://docs.espocrm.com/administration/server-configuration/"
|
||||
><strong>{{translate 'Configuration Instructions' scope='Admin'}}</strong></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
29
client/res/templates/admin/template-manager/edit.tpl
Normal file
29
client/res/templates/admin/template-manager/edit.tpl
Normal file
@@ -0,0 +1,29 @@
|
||||
<div class="page-header">
|
||||
<h4>{{{title}}}</h4>
|
||||
</div>
|
||||
|
||||
<div class="button-container">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-primary btn-xs-wide" data-action="save">{{translate 'Save'}}</button>
|
||||
<button class="btn btn-default btn-xs-wide" data-action="cancel">{{translate 'Cancel'}}</button>
|
||||
<button class="btn btn-default btn-xs-wide" data-action="resetToDefault"
|
||||
>{{translate 'Reset to Default' scope='Admin'}}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body panel-body-form">
|
||||
{{#if hasSubject}}
|
||||
<div class="row">
|
||||
<div class="cell col-sm-12 form-group">
|
||||
<div class="field subject-field">{{{subjectField}}}</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="row">
|
||||
<div class="cell col-sm-12 form-group">
|
||||
<div class="field body-field">{{{bodyField}}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
23
client/res/templates/admin/template-manager/index.tpl
Normal file
23
client/res/templates/admin/template-manager/index.tpl
Normal file
@@ -0,0 +1,23 @@
|
||||
<div class="page-header"><h3><a href="#Admin">{{translate 'Administration'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
{{translate 'Template Manager' scope='Admin'}}</h3></div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<ul class="list-unstyled" style="overflow-x: hidden;">
|
||||
{{#each templateDataList}}
|
||||
<li>
|
||||
<button class="btn btn-link" data-name="{{name}}" data-action="selectTemplate">{{{text}}}</button>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-9">
|
||||
<div class="template-record">{{{record}}}</div>
|
||||
</div>
|
||||
</div>
|
||||
4
client/res/templates/admin/upgrade/done.tpl
Normal file
4
client/res/templates/admin/upgrade/done.tpl
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
<p class="text-success">
|
||||
{{complexText text inline=true}}
|
||||
</p>
|
||||
40
client/res/templates/admin/upgrade/index.tpl
Normal file
40
client/res/templates/admin/upgrade/index.tpl
Normal file
@@ -0,0 +1,40 @@
|
||||
<div class="page-header"><h3><a href="#Admin">{{translate 'Administration'}}</a>
|
||||
<span class="breadcrumb-separator"><span></span></span>
|
||||
{{translate 'Upgrade' scope='Admin'}}</h3></div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
|
||||
<div class="panel panel-danger notify">
|
||||
<div class="panel-body">
|
||||
<p class="notify-text">
|
||||
{{versionMsg}}
|
||||
<br><br>
|
||||
{{complexText infoMsg inline=true}}
|
||||
<br><br>
|
||||
{{backupsMsg}}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-default upload">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">{{translate 'selectUpgradePackage' scope='Admin' category="messages"}}</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p class="text-danger" style="font-weight: 600;">{{{upgradeRecommendation}}}</p>
|
||||
<p class="">
|
||||
{{complexText downloadMsg inline=true}}
|
||||
</p>
|
||||
<div>
|
||||
<input type="file" name="package" accept="application/zip">
|
||||
</div>
|
||||
<div class="message-container text-danger" style="height: 20px; margin-bottom: 10px; margin-top: 10px;"></div>
|
||||
<div class="buttons-container">
|
||||
<button class="btn btn-primary disabled" disabled="disabled" data-action="upload">{{translate 'Upload' scope='Admin'}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
4
client/res/templates/admin/upgrade/ready.tpl
Normal file
4
client/res/templates/admin/upgrade/ready.tpl
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
<p class="text-danger">
|
||||
{{complexText text inline=true}}
|
||||
</p>
|
||||
2
client/res/templates/attachment/fields/name/detail.tpl
Normal file
2
client/res/templates/attachment/fields/name/detail.tpl
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
<span class="fas fa-paperclip small"></span> <a href="{{url}}" target="_blank">{{value}}</a>
|
||||
22
client/res/templates/clear-cache.tpl
Normal file
22
client/res/templates/clear-cache.tpl
Normal file
@@ -0,0 +1,22 @@
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-sm-offset-2">
|
||||
<div class="panel">
|
||||
<div class="panel-body">
|
||||
{{#if cacheIsEnabled}}
|
||||
<button class="btn btn-default action" data-action="clearLocalCache">{{translate 'Clear Local Cache'}}</button>
|
||||
{{else}}
|
||||
<div style="margin-bottom: 10px;">
|
||||
<span class="text-danger">
|
||||
{{translate 'Cache is not enabled'}}
|
||||
</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="hidden message-container margin-bottom"><span class="text-success"></span></div>
|
||||
<div>
|
||||
<button class="btn btn-default action {{#if cacheIsEnabled}}hidden{{/if}}" data-action="returnToApplication">{{translate 'Return to Application'}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
47
client/res/templates/dashboard.tpl
Normal file
47
client/res/templates/dashboard.tpl
Normal file
@@ -0,0 +1,47 @@
|
||||
<div class="page-header dashboard-header">
|
||||
<div class="row">
|
||||
<div class="col-sm-4">
|
||||
{{#if displayTitle}}
|
||||
<h3>{{translate 'Dashboard' category='scopeNames'}}</h3>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="col-sm-8 clearfix">
|
||||
{{#unless layoutReadOnly}}
|
||||
<div class="btn-group pull-right dashboard-buttons">
|
||||
<button
|
||||
class="btn btn-text btn-icon dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
><span class="fas fa-ellipsis-h"></span></button>
|
||||
<ul class="dropdown-menu pull-right dropdown-menu-with-icons">
|
||||
<li>
|
||||
<a role="button" tabindex="0" data-action="editTabs">
|
||||
<span class="fas fa-pencil-alt fa-sm"></span>
|
||||
<span class="item-text">{{translate 'Edit Dashboard'}}</span>
|
||||
</a>
|
||||
</li>
|
||||
{{#if hasAdd}}
|
||||
<li>
|
||||
<a role="button" tabindex="0" data-action="addDashlet">
|
||||
<span class="fas fa-plus"></span>
|
||||
<span class="item-text">{{translate 'Add Dashlet'}}</span>
|
||||
</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
{{/unless}}
|
||||
{{#ifNotEqual dashboardLayout.length 1}}
|
||||
<div class="btn-group pull-right dashboard-tabs">
|
||||
{{#each dashboardLayout}}
|
||||
<button
|
||||
class="btn btn-text{{#ifEqual @index ../currentTab}} active{{/ifEqual}}"
|
||||
data-action="selectTab"
|
||||
data-tab="{{@index}}"
|
||||
>{{name}}</button>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/ifNotEqual}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dashlets grid-stack grid-stack-12">{{{dashlets}}}</div>
|
||||
59
client/res/templates/dashlet.tpl
Normal file
59
client/res/templates/dashlet.tpl
Normal file
@@ -0,0 +1,59 @@
|
||||
<div
|
||||
id="dashlet-{{id}}"
|
||||
class="panel panel-default headered dashlet{{#if isDoubleHeight}} double-height{{/if}}"
|
||||
data-name="{{name}}"
|
||||
data-id="{{id}}"
|
||||
>
|
||||
<div class="panel-heading">
|
||||
<div class="btn-group pull-right">
|
||||
{{#each buttonList}}
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-{{#if ../style}}{{../style}}{{else}}default{{/if}} dashlet-action btn-sm action{{#if hidden}} hidden{{/if}}"
|
||||
data-action="{{name}}"
|
||||
data-name="{{name}}"
|
||||
title="{{#if title}}{{translate title}}{{/if}}"
|
||||
>{{#if html}}{{{html}}}{{else}}{{#if text}}{{text}}{{else}}{{translate label}}{{/if}}{{/if}}</button>
|
||||
{{/each}}
|
||||
<button
|
||||
class="dropdown-toggle btn btn-{{#if ../style}}{{../style}}{{else}}default{{/if}} btn-sm menu-button"
|
||||
data-toggle="dropdown"
|
||||
><span class="fas fa-ellipsis-h"></span></button>
|
||||
<ul class="dropdown-menu dropdown-menu-with-icons" role="menu">
|
||||
{{#each actionList}}
|
||||
{{#if this}}
|
||||
<li>
|
||||
<a
|
||||
data-action="{{name}}"
|
||||
data-name="{{name}}"
|
||||
class="action dashlet-action"
|
||||
{{#if url}}href="{{url}}"{{else}}role="button"{{/if}}
|
||||
tabindex="0"
|
||||
{{#each data}} data-{{hyphen @key}}="{{./this}}"{{/each}}
|
||||
>
|
||||
{{#if iconHtml}}{{{iconHtml}}}
|
||||
{{else}}
|
||||
<span class="empty-icon"> </span>
|
||||
{{/if}}
|
||||
<span class="item-text">{{#if html}}{{{html}}}{{else}}{{#if text}}{{text}}{{else}}{{translate label}}{{/if}}{{/if}}</span>
|
||||
</a>
|
||||
</li>
|
||||
{{else}}
|
||||
<li class="divider"></li>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<h4 class="panel-title">
|
||||
<span
|
||||
data-action="refresh"
|
||||
class="action"
|
||||
title="{{translate 'Refresh'}}"
|
||||
>
|
||||
{{~#if color}}<span class="color-icon fas fa-square" style="color: {{color}}"></span><span> </span>{{/if~}}
|
||||
{{~#if title}}{{title}}{{else}} {{/if~}}
|
||||
</span>
|
||||
</h4>
|
||||
</div>
|
||||
<div class="dashlet-body panel-body{{#if noPadding}} no-padding{{/if}}">{{{body}}}</div>
|
||||
</div>
|
||||
7
client/res/templates/dashlets/options/base.tpl
Normal file
7
client/res/templates/dashlets/options/base.tpl
Normal file
@@ -0,0 +1,7 @@
|
||||
<div class="no-side-margin">
|
||||
|
||||
<form id="dashlet-options">
|
||||
<div class="middle record no-side-margin">{{{record}}}</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
6
client/res/templates/detail.tpl
Normal file
6
client/res/templates/detail.tpl
Normal file
@@ -0,0 +1,6 @@
|
||||
<div class="header page-header">{{{header}}}</div>
|
||||
{{#if modes}}
|
||||
<div class="modes">{{{modes}}}</div>
|
||||
{{/if}}
|
||||
<div class="record">{{{record}}}</div>
|
||||
<div class="bottom">{{{bottom}}}</div>
|
||||
2
client/res/templates/edit.tpl
Normal file
2
client/res/templates/edit.tpl
Normal file
@@ -0,0 +1,2 @@
|
||||
<div class="header page-header">{{{header}}}</div>
|
||||
<div class="record">{{{record}}}</div>
|
||||
@@ -0,0 +1,6 @@
|
||||
<div class="input-group">
|
||||
<input class="main-element form-control" type="text" data-name="{{name}}" value="{{value}}" autocomplete="espo-{{name}}">
|
||||
<span class="input-group-btn">
|
||||
<button data-action="selectFolder" class="btn btn-default" type="button" tabindex="-1"><i class="fas fa-angle-up"></i></button>
|
||||
</span>
|
||||
</div>
|
||||
12
client/res/templates/email-account/modals/select-folder.tpl
Normal file
12
client/res/templates/email-account/modals/select-folder.tpl
Normal file
@@ -0,0 +1,12 @@
|
||||
{{#unless folders}}
|
||||
{{translate 'No Data'}}
|
||||
{{/unless}}
|
||||
<ul class="list-group no-side-margin array-add-list-group">
|
||||
{{#each folders}}
|
||||
<li class="list-group-item">
|
||||
<a role="button" data-value="{{./this}}" data-action="select" class="text-bold">
|
||||
{{./this}}
|
||||
</a>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
33
client/res/templates/email-folder/list-side.tpl
Normal file
33
client/res/templates/email-folder/list-side.tpl
Normal file
@@ -0,0 +1,33 @@
|
||||
<ul class="list-group list-group-side list-group-no-border folder-list">
|
||||
<li
|
||||
data-id="all"
|
||||
class="list-group-item{{#ifEqual 'all' selectedFolderId}} selected{{/ifEqual}} droppable"
|
||||
>
|
||||
<a
|
||||
href="#Email/list/folder=all"
|
||||
data-action="selectFolder"
|
||||
data-id="all"
|
||||
class="side-link"
|
||||
><span class="item-icon-container"><span class="far fa-hdd"></span></span><span>{{translate 'all' category='presetFilters' scope='Email'}}</span></a>
|
||||
</li>
|
||||
{{#each collection.models}}
|
||||
<li
|
||||
data-id="{{get this 'id'}}"
|
||||
class="list-group-item {{#ifAttrEquals this 'id' ../selectedFolderId}} selected {{/ifAttrEquals}}{{#if droppable}} droppable {{/if}}{{#if groupStart}} group-start {{/if}}"
|
||||
>
|
||||
<a
|
||||
href="#Email/list/folder={{get this 'id'}}"
|
||||
data-action="selectFolder"
|
||||
data-id="{{get this 'id'}}"
|
||||
class="side-link pull-right count"
|
||||
></a>
|
||||
<a
|
||||
href="#Email/list/folder={{get this 'id'}}"
|
||||
data-action="selectFolder"
|
||||
data-id="{{get this 'id'}}"
|
||||
class="side-link"
|
||||
{{#if title}}title="{{title}}"{{/if}}
|
||||
><span class="item-icon-container"><span class="{{iconClass}}"></span></span><span>{{get this 'name'}}</span></a>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
14
client/res/templates/email-folder/modals/select-folder.tpl
Normal file
14
client/res/templates/email-folder/modals/select-folder.tpl
Normal file
@@ -0,0 +1,14 @@
|
||||
<ul class="list-group no-side-margin">
|
||||
{{#each folderDataList}}
|
||||
<li data-id="{{id}}" class="list-group-item">
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="selectFolder"
|
||||
data-id="{{id}}"
|
||||
data-name="{{name}}"
|
||||
class="side-link text-bold {{#if disabled}} disabled text-muted {{/if}}"
|
||||
><span class="item-icon-container"><span class="{{iconClass}}"></span></span><span class="text-default">{{name}}</span></a>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
@@ -0,0 +1,11 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-4 col-xs-6">
|
||||
<select class="form-control" data-name="entityType"></select>
|
||||
</div>
|
||||
<div class="col-sm-6 col-xs-6">
|
||||
<select class="form-control" data-name="field"></select>
|
||||
</div>
|
||||
<div class="col-sm-2 col-xs-6">
|
||||
<button class="btn btn-default" type="button" data-action="insert">{{translate 'Insert'}}</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,9 @@
|
||||
{{#if list.length}}
|
||||
<select data-name="{{name}}" class="form-control main-element">
|
||||
{{#each list}}
|
||||
<option value="{{./this}}"{{#ifEqual ../value this}} selected{{/ifEqual}}>{{./this}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
{{else}}
|
||||
{{{noSmtpMessage}}}
|
||||
{{/if}}
|
||||
@@ -0,0 +1 @@
|
||||
<button class="btn btn-default" data-action="createEvent">{{translate 'Create Meeting' scope='Meeting'}}</button>
|
||||
@@ -0,0 +1,6 @@
|
||||
{{#if value}}
|
||||
{{{value}}}
|
||||
{{else}}
|
||||
{{#if valueIsSet}}<span class="none-value">{{translate 'None'}}</span>
|
||||
{{else}}<span class="loading-value"></span>{{/if}}
|
||||
{{/if}}
|
||||
@@ -0,0 +1,30 @@
|
||||
<div class="link-container list-group"></div>
|
||||
{{#if hasSelectAddress}}
|
||||
<div class="input-group">
|
||||
<input
|
||||
class="form-control"
|
||||
type="email"
|
||||
autocomplete="espo-{{name}}"
|
||||
spellcheck="false"
|
||||
maxlength="{{maxLength}}"
|
||||
>
|
||||
<div class="input-group-btn">
|
||||
<button
|
||||
data-action="selectAddress"
|
||||
class="btn btn-default btn-icon"
|
||||
type="button"
|
||||
tabindex="-1"
|
||||
title="{{translate 'Select'}}"
|
||||
><i class="fas fa-angle-up"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<input
|
||||
class="form-control"
|
||||
type="email"
|
||||
autocomplete="espo-{{name}}"
|
||||
spellcheck="false"
|
||||
maxlength="{{maxLength}}"
|
||||
title="{{translate 'Select'}}"
|
||||
>
|
||||
{{/if}}
|
||||
@@ -0,0 +1 @@
|
||||
{{nameValue}}
|
||||
11
client/res/templates/email/fields/has-attachment/detail.tpl
Normal file
11
client/res/templates/email/fields/has-attachment/detail.tpl
Normal file
@@ -0,0 +1,11 @@
|
||||
{{#if value~}}
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="show"
|
||||
class="text-soft"
|
||||
><span
|
||||
class="fas fa-paperclip{{#if isSmall}} small{{/if}}"
|
||||
title="{{translate 'View Attachments' scope='Email'}}"
|
||||
></span></a>
|
||||
{{~/if~}}
|
||||
1
client/res/templates/email/fields/icon/detail.tpl
Normal file
1
client/res/templates/email/fields/icon/detail.tpl
Normal file
@@ -0,0 +1 @@
|
||||
<span class="fas fa-envelope action text-muted" data-action="quickView" data-id="{{model.id}}" style="cursor: pointer; margin-left: -7px; top: 2px;" title="{{translate 'View'}}"></span>
|
||||
@@ -0,0 +1,7 @@
|
||||
<span title="{{value}}">{{value}}</span>
|
||||
<span class="list-icon-container"{{#unless isReplied}} style="display: none;"{{/unless}}>
|
||||
<span
|
||||
class="fas icon-is-replied fa-sm text-muted icon-flip-horizontal"
|
||||
title="{{translate 'isReplied' category='fields' scope='Email'}}"
|
||||
></span>
|
||||
</span>
|
||||
@@ -0,0 +1,4 @@
|
||||
<span class="list-icon-container pull-right"{{#unless isReplied}} style="visibility: hidden;"{{/unless}}>
|
||||
<span class="fas icon-is-replied fa-sm text-muted icon-flip-horizontal" title="{{translate 'isReplied' category='fields' scope='Email'}}"></span>
|
||||
</span>
|
||||
<span title="{{value}}">{{value}}</span>
|
||||
20
client/res/templates/email/fields/select-template/edit.tpl
Normal file
20
client/res/templates/email/fields/select-template/edit.tpl
Normal file
@@ -0,0 +1,20 @@
|
||||
<div class="input-group">
|
||||
<input
|
||||
class="main-element form-control"
|
||||
type="text"
|
||||
data-name="{{nameName}}"
|
||||
value="{{nameValue}}"
|
||||
autocomplete="espo-{{name}}"
|
||||
spellcheck="false"
|
||||
>
|
||||
<span class="input-group-btn">
|
||||
<button
|
||||
data-action="selectLink"
|
||||
class="btn btn-default btn-icon"
|
||||
type="button"
|
||||
tabindex="-1"
|
||||
title="{{translate 'Select'}}"
|
||||
><i class="fas fa-angle-up"></i></button>
|
||||
</span>
|
||||
</div>
|
||||
<input type="hidden" data-name="{{idName}}" value="{{idValue}}">
|
||||
31
client/res/templates/email/fields/subject/list-link.tpl
Normal file
31
client/res/templates/email/fields/subject/list-link.tpl
Normal file
@@ -0,0 +1,31 @@
|
||||
<span>
|
||||
<span>
|
||||
<a
|
||||
href="#{{scope}}/view/{{model.id}}"
|
||||
class="link {{#if style}}text-{{style}}{{/if}} {{#unless isRead}} text-bold {{/unless}}"
|
||||
data-id="{{model.id}}"
|
||||
title="{{value}}"
|
||||
>{{value}}</a>
|
||||
</span>
|
||||
{{#if hasIcon}}
|
||||
<span class="list-icon-container" data-icon-count="{{iconCount}}">
|
||||
{{#if hasAttachment}}
|
||||
<a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
data-action="showAttachments"
|
||||
class="text-muted"
|
||||
><span
|
||||
class="fas fa-paperclip small"
|
||||
title="{{translate 'hasAttachment' category='fields' scope='Email'}}"
|
||||
></span></a>
|
||||
{{/if}}
|
||||
{{#if isAutoReply}}
|
||||
<span
|
||||
class="fas fas fa-robot small text-muted"
|
||||
title="{{translate 'isAutoReply' category='fields' scope='Email'}}"
|
||||
></span>
|
||||
{{/if}}
|
||||
</span>
|
||||
{{/if}}
|
||||
</span>
|
||||
11
client/res/templates/email/list.tpl
Normal file
11
client/res/templates/email/list.tpl
Normal file
@@ -0,0 +1,11 @@
|
||||
<div class="page-header">{{{header}}}</div>
|
||||
<div class="search-container">{{{search}}}</div>
|
||||
|
||||
<div class="row">
|
||||
{{#unless foldersDisabled}}
|
||||
<div class="left-container{{#unless foldersDisabled}} col-md-2 col-sm-3{{else}} col-md-12{{/unless}}">
|
||||
<div class="folders-container">{{{folders}}}</div>
|
||||
</div>
|
||||
{{/unless}}
|
||||
<div class="list-container{{#unless foldersDisabled}} col-md-10 col-sm-9{{else}} col-md-12{{/unless}}">{{{list}}}</div>
|
||||
</div>
|
||||
8
client/res/templates/errors/403.tpl
Normal file
8
client/res/templates/errors/403.tpl
Normal file
@@ -0,0 +1,8 @@
|
||||
<div class="container">
|
||||
<div class="panel panel-default block-center-md margin-top-2x">
|
||||
<div class="panel-body">
|
||||
<h1 class="text-5em text-soft margin-bottom-4x">403</h1>
|
||||
<p class="text-large">{{translate 'error403' category='messages'}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
8
client/res/templates/errors/404.tpl
Normal file
8
client/res/templates/errors/404.tpl
Normal file
@@ -0,0 +1,8 @@
|
||||
<div class="container">
|
||||
<div class="panel panel-default block-center-md margin-top-2x">
|
||||
<div class="panel-body">
|
||||
<h1 class="text-5em text-soft margin-bottom-4x">404</h1>
|
||||
<p class="text-large">{{translate 'error404' category='messages'}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,7 @@
|
||||
<a
|
||||
href="#{{model.entityType}}/view/{{model.id}}"
|
||||
class="link"
|
||||
data-id="{{model.id}}"
|
||||
title="{{value}}"
|
||||
{{#if strikethrough}}style="text-decoration: line-through;"{{/if}}
|
||||
>{{#if value}}{{value}}{{else}}{{translate 'None'}}{{/if}}</a>
|
||||
1
client/res/templates/export/modals/export.tpl
Normal file
1
client/res/templates/export/modals/export.tpl
Normal file
@@ -0,0 +1 @@
|
||||
<div class="record no-side-margin">{{{record}}}</div>
|
||||
7
client/res/templates/export/modals/idle.tpl
Normal file
7
client/res/templates/export/modals/idle.tpl
Normal file
@@ -0,0 +1,7 @@
|
||||
<div class="record no-side-margin">{{{record}}}</div>
|
||||
|
||||
<div class="well info-text">{{complexText infoText}}</div>
|
||||
|
||||
<div class="margin-top download-container hidden">
|
||||
<button type="button" class="btn btn-default download-button" data-action="download">{{translate 'Download'}}</button>
|
||||
</div>
|
||||
26
client/res/templates/external-account/index.tpl
Normal file
26
client/res/templates/external-account/index.tpl
Normal file
@@ -0,0 +1,26 @@
|
||||
<div class="page-header"><h3>{{translate 'ExternalAccount' category='scopeNamesPlural'}}</h3></div>
|
||||
|
||||
<div class="row">
|
||||
<div id="external-account-menu" class="col-sm-3">
|
||||
<ul class="list-group list-group-panel{{#unless externalAccountListCount}} hidden{{/unless}}">
|
||||
{{#each externalAccountList}}
|
||||
<li class="list-group-item"><a
|
||||
role="button"
|
||||
tabindex="0"
|
||||
class="external-account-link"
|
||||
data-id="{{id}}"
|
||||
>{{id}}</a></li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{#unless externalAccountListCount}}
|
||||
{{translate 'No Data'}}
|
||||
{{/unless}}
|
||||
</div>
|
||||
|
||||
<div id="external-account-panel" class="col-sm-9">
|
||||
<h4 id="external-account-header" style="margin-top: 0px;"></h4>
|
||||
<div id="external-account-content">
|
||||
{{{content}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
37
client/res/templates/external-account/oauth2.tpl
Normal file
37
client/res/templates/external-account/oauth2.tpl
Normal file
@@ -0,0 +1,37 @@
|
||||
<div class="button-container">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-primary btn-xs-wide" data-action="save">{{translate 'Save'}}</button>
|
||||
<button class="btn btn-default btn-xs-wide" data-action="cancel">{{translate 'Cancel'}}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div>
|
||||
<div class="cell form-group" data-name="enabled">
|
||||
<label
|
||||
class="control-label"
|
||||
data-name="enabled"
|
||||
>{{translate 'enabled' scope='Integration' category='fields'}}</label>
|
||||
<div class="field" data-name="enabled">{{{enabled}}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="data-panel">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-danger {{#if isConnected}}hidden{{/if}}"
|
||||
data-action="connect"
|
||||
>{{translate 'Connect' scope='ExternalAccount'}}</button>
|
||||
<span
|
||||
class="connected-label label label-success {{#unless isConnected}}hidden{{/unless}}"
|
||||
>{{translate 'Connected' scope='ExternalAccount'}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
{{#if helpText}}
|
||||
<div class="well">
|
||||
{{{helpText}}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
20
client/res/templates/fields/address/detail.tpl
Normal file
20
client/res/templates/fields/address/detail.tpl
Normal file
@@ -0,0 +1,20 @@
|
||||
{{#if formattedAddress}}
|
||||
{{breaklines formattedAddress}}
|
||||
{{/if}}
|
||||
|
||||
{{#if isNone}}
|
||||
<span class="none-value">{{translate 'None'}}</span>
|
||||
{{/if}}
|
||||
|
||||
{{#if isLoading}}
|
||||
<span class="loading-value"></span>
|
||||
{{/if}}
|
||||
|
||||
{{#if viewMap}}
|
||||
<div><a
|
||||
href="{{viewMapLink}}"
|
||||
data-action="viewMap"
|
||||
class="small"
|
||||
style="user-select: none;"
|
||||
>{{translate 'View on Map'}}</a></div>
|
||||
{{/if}}
|
||||
20
client/res/templates/fields/address/edit-1.tpl
Normal file
20
client/res/templates/fields/address/edit-1.tpl
Normal file
@@ -0,0 +1,20 @@
|
||||
<textarea
|
||||
class="form-control auto-height"
|
||||
data-name="{{name}}Street"
|
||||
rows="1" placeholder="{{translate 'Street'}}"
|
||||
autocomplete="espo-street"
|
||||
maxlength="{{streetMaxLength}}"
|
||||
style="resize: none;"
|
||||
>{{streetValue}}</textarea>
|
||||
<div class="row">
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" class="form-control" data-name="{{name}}City" value="{{cityValue}}" placeholder="{{translate 'City'}}" autocomplete="espo-city" maxlength="{{cityMaxLength}}">
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" class="form-control" data-name="{{name}}State" value="{{stateValue}}" placeholder="{{translate 'State'}}" autocomplete="espo-state" maxlength="{{stateMaxLength}}">
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" class="form-control" data-name="{{name}}PostalCode" value="{{postalCodeValue}}" placeholder="{{translate 'PostalCode'}}" autocomplete="espo-postalCode" maxlength="{{postalCodeMaxLength}}" spellcheck="false">
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" class="form-control" data-name="{{name}}Country" value="{{countryValue}}" placeholder="{{translate 'Country'}}" autocomplete="espo-country" maxlength="{{countryMaxLength}}">
|
||||
24
client/res/templates/fields/address/edit-2.tpl
Normal file
24
client/res/templates/fields/address/edit-2.tpl
Normal file
@@ -0,0 +1,24 @@
|
||||
<textarea
|
||||
class="form-control auto-height"
|
||||
data-name="{{name}}Street"
|
||||
rows="1" placeholder="{{translate 'Street'}}"
|
||||
autocomplete="espo-street"
|
||||
maxlength="{{streetMaxLength}}"
|
||||
style="resize: none;"
|
||||
>{{streetValue}}</textarea>
|
||||
<div class="row">
|
||||
<div class="col-sm-6 col-xs-6">
|
||||
<input type="text" class="form-control" data-name="{{name}}PostalCode" value="{{postalCodeValue}}" placeholder="{{translate 'PostalCode'}}" autocomplete="espo-postalCode" maxlength="{{postalCodeMaxLength}}" spellcheck="false">
|
||||
</div>
|
||||
<div class="col-sm-6 col-xs-6">
|
||||
<input type="text" class="form-control" data-name="{{name}}City" value="{{cityValue}}" placeholder="{{translate 'City'}}" autocomplete="espo-city" maxlength="{{cityMaxLength}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6 col-xs-6">
|
||||
<input type="text" class="form-control" data-name="{{name}}State" value="{{stateValue}}" placeholder="{{translate 'State'}}" autocomplete="espo-state" maxlength="{{stateMaxLength}}">
|
||||
</div>
|
||||
<div class="col-sm-6 col-xs-6">
|
||||
<input type="text" class="form-control" data-name="{{name}}Country" value="{{countryValue}}" placeholder="{{translate 'Country'}}" autocomplete="espo-country" maxlength="{{countryMaxLength}}">
|
||||
</div>
|
||||
</div>
|
||||
20
client/res/templates/fields/address/edit-3.tpl
Normal file
20
client/res/templates/fields/address/edit-3.tpl
Normal file
@@ -0,0 +1,20 @@
|
||||
<input type="text" class="form-control auto-height" data-name="{{name}}Country" value="{{countryValue}}" placeholder="{{translate 'Country'}}" autocomplete="espo-country" maxlength="{{countryMaxLength}}">
|
||||
<div class="row">
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" class="form-control" data-name="{{name}}PostalCode" value="{{postalCodeValue}}" placeholder="{{translate 'PostalCode'}}" autocomplete="espo-postalCode" maxlength="{{postalCodeMaxLength}}" spellcheck="false">
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" class="form-control" data-name="{{name}}State" value="{{stateValue}}" placeholder="{{translate 'State'}}" autocomplete="espo-state" maxlength="{{stateMaxLength}}">
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" class="form-control" data-name="{{name}}City" value="{{cityValue}}" placeholder="{{translate 'City'}}" autocomplete="espo-city" maxlength="{{cityMaxLength}}">
|
||||
</div>
|
||||
</div>
|
||||
<textarea
|
||||
class="form-control auto-height"
|
||||
data-name="{{name}}Street"
|
||||
rows="1" placeholder="{{translate 'Street'}}"
|
||||
autocomplete="espo-street"
|
||||
maxlength="{{streetMaxLength}}"
|
||||
style="resize: none;"
|
||||
>{{streetValue}}</textarea>
|
||||
20
client/res/templates/fields/address/edit-4.tpl
Normal file
20
client/res/templates/fields/address/edit-4.tpl
Normal file
@@ -0,0 +1,20 @@
|
||||
<textarea
|
||||
class="form-control auto-height"
|
||||
data-name="{{name}}Street"
|
||||
rows="1" placeholder="{{translate 'Street'}}"
|
||||
autocomplete="espo-street"
|
||||
maxlength="{{streetMaxLength}}"
|
||||
style="resize: none;"
|
||||
>{{streetValue}}</textarea>
|
||||
<input type="text" class="form-control" data-name="{{name}}City" value="{{cityValue}}" placeholder="{{translate 'City'}}" autocomplete="espo-city" maxlength="{{cityMaxLength}}">
|
||||
<div class="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
<input type="text" class="form-control" data-name="{{name}}Country" value="{{countryValue}}" placeholder="{{translate 'Country'}}" autocomplete="espo-country" maxlength="{{countryMaxLength}}">
|
||||
</div>
|
||||
<div class="col-sm-3 col-xs-3">
|
||||
<input type="text" class="form-control" data-name="{{name}}State" value="{{stateValue}}" placeholder="{{translate 'State'}}" autocomplete="espo-state" maxlength="{{stateMaxLength}}">
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" class="form-control" data-name="{{name}}PostalCode" value="{{postalCodeValue}}" placeholder="{{translate 'PostalCode'}}" autocomplete="espo-postalCode" maxlength="{{postalCodeMaxLength}}" spellcheck="false">
|
||||
</div>
|
||||
</div>
|
||||
20
client/res/templates/fields/address/edit.tpl
Normal file
20
client/res/templates/fields/address/edit.tpl
Normal file
@@ -0,0 +1,20 @@
|
||||
<textarea
|
||||
class="form-control auto-height"
|
||||
data-name="{{name}}Street"
|
||||
rows="1" placeholder="{{translate 'Street'}}"
|
||||
autocomplete="espo-street"
|
||||
maxlength="{{streetMaxLength}}"
|
||||
style="resize: none;"
|
||||
>{{streetValue}}</textarea>
|
||||
<div class="row">
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" class="form-control" data-name="{{name}}City" value="{{cityValue}}" placeholder="{{translate 'City'}}" autocomplete="espo-city" maxlength="{{cityMaxLength}}">
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" class="form-control" data-name="{{name}}State" value="{{stateValue}}" placeholder="{{translate 'State'}}" autocomplete="espo-state" maxlength="{{stateMaxLength}}">
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" class="form-control" data-name="{{name}}PostalCode" value="{{postalCodeValue}}" placeholder="{{translate 'PostalCode'}}" autocomplete="espo-postalCode" maxlength="{{postalCodeMaxLength}}" spellcheck="false">
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" class="form-control" data-name="{{name}}Country" value="{{countryValue}}" placeholder="{{translate 'Country'}}" autocomplete="espo-country" maxlength="{{countryMaxLength}}">
|
||||
7
client/res/templates/fields/address/list-link.tpl
Normal file
7
client/res/templates/fields/address/list-link.tpl
Normal file
@@ -0,0 +1,7 @@
|
||||
{{#if formattedAddress}}
|
||||
<a
|
||||
href="#{{scope}}/view/{{model.id}}"
|
||||
class="link"
|
||||
data-id="{{model.id}}"
|
||||
>{{breaklines formattedAddress}}</a>
|
||||
{{/if}}
|
||||
2
client/res/templates/fields/address/search.tpl
Normal file
2
client/res/templates/fields/address/search.tpl
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
<input type="text" class="main-element form-control input-sm" data-name="{{name}}" value="{{searchData.value}}" {{#if params.maxLength}} maxlength="{{params.maxLength}}"{{/if}}{{#if params.size}} size="{{params.size}}"{{/if}} autocomplete="espo-{{name}}">
|
||||
3
client/res/templates/fields/array/detail.tpl
Normal file
3
client/res/templates/fields/array/detail.tpl
Normal file
@@ -0,0 +1,3 @@
|
||||
{{#unless isEmpty}}{{{value}}}{{else}}
|
||||
{{#if valueIsSet}}<span class="none-value">{{translate 'None'}}</span>{{else}}<span class="loading-value"></span>{{/if}}
|
||||
{{/unless}}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user