init III
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
||||
# --
|
||||
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
# the enclosed file COPYING for license information (GPL). If you
|
||||
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
|
||||
# --
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label class="Mandatory" for="Title">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Title") | html %]:
|
||||
</label>
|
||||
<div class="Value">
|
||||
<input type="text" name="Title" id="Title" class="W90pc Validate_Required [% Data.TitleServerError | html %]" value="[% Data.Title | html %]"/>
|
||||
<div id="TitleError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Description">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Description") | html %]:
|
||||
</label>
|
||||
<div class="Value">
|
||||
<textarea name="Description" id="Description" rows="4" cols="60" class="W90pc Validate_Required [% Data.DescriptionServerError | html %]">[% Data.Description | html %]</textarea>
|
||||
<div id="DescriptionError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% IF !Data.StatID %]
|
||||
<input type="hidden" name="StatisticPreselection" value="[% Data.StatisticPreselection | html %]" />
|
||||
<label class="Mandatory" for="ObjectModule">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Object type") | html %]:
|
||||
</label>
|
||||
<div class="Value">
|
||||
<input type="hidden" name="StatType" value="[% Data.StatType | html %]" />
|
||||
[% Data.SelectObjectType %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% END %]
|
||||
|
||||
<label class="Mandatory" for="Permission">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Permissions") | html %]:
|
||||
</label>
|
||||
<div class="Value">
|
||||
[% Data.SelectPermission %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("You can select one or more groups to define access for different agents.") | html %]
|
||||
</p>
|
||||
<div id="ValueError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Format">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Result formats") | html %]:
|
||||
</label>
|
||||
<div class="Value">
|
||||
[% Data.SelectFormat %]
|
||||
<div id="FormatError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% IF Data.SelectTimeZone %]
|
||||
<label class="Mandatory" for="TimeZone">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Time Zone") | html %]:
|
||||
</label>
|
||||
<div class="Value">
|
||||
[% Data.SelectTimeZone %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate('The selected time periods in the statistic are time zone neutral.') | html %]
|
||||
</p>
|
||||
<div id="TimeZoneError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% END %]
|
||||
|
||||
<label for="SumRow">
|
||||
[% Translate("Create summation row") | html %]:
|
||||
</label>
|
||||
<div class="Value">
|
||||
[% Data.SelectSumRow %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate('Generate an additional row containing sums for all data rows.') | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SumCol">
|
||||
[% Translate("Create summation column") | html %]:
|
||||
</label>
|
||||
<div class="Value">
|
||||
[% Data.SelectSumCol %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate('Generate an additional column containing sums for all data columns.') | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% IF Data.StatID %]
|
||||
<label for="Cache">
|
||||
[% Translate("Cache results") | html %]:
|
||||
</label>
|
||||
<div class="Value">
|
||||
[% Data.SelectCache %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Stores statistics result data in a cache to be used in subsequent views with the same configuration (requires at least one selected time field).") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% END %]
|
||||
|
||||
[% IF Data.StatID %]
|
||||
<label for="ShowAsDashboardWidget">
|
||||
[% Translate("Show as dashboard widget") | html %]:
|
||||
</label>
|
||||
<div class="Value">
|
||||
[% Data.SelectShowAsDashboardWidget %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Provide the statistic as a widget that agents can activate in their dashboard.") | html %]
|
||||
[% Translate("Please note that enabling the dashboard widget will activate caching for this statistic in the dashboard.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% END %]
|
||||
|
||||
<label for="Valid">
|
||||
[% Translate("Validity") | html %]:
|
||||
</label>
|
||||
<div class="Value">
|
||||
[% Data.SelectValid %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If set to invalid end users can not generate the stat.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
@@ -0,0 +1,236 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
||||
# --
|
||||
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
# the enclosed file COPYING for license information (GPL). If you
|
||||
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
|
||||
# --
|
||||
|
||||
## nofilter(TidyAll::Plugin::OTRS::TT::Format)
|
||||
|
||||
[% SET HighlightError = {};
|
||||
SET HighlightHint = {};
|
||||
SET DisableButton = {};
|
||||
%]
|
||||
|
||||
[% FOR XAxisElement IN Data.UseAsXvalue %]
|
||||
[% IF XAxisElement.Selected %][% SET XAxisConfigured = 1 %][% END %]
|
||||
[% END %]
|
||||
[% IF !Data.UseAsXvalue.size %][% SET XAxisConfigured = 1 %][% END %]
|
||||
[% FOR YAxisElement IN Data.UseAsValueSeries %]
|
||||
[% IF YAxisElement.Selected %][% SET YAxisConfigured = 1 %][% END %]
|
||||
[% END %]
|
||||
|
||||
[% IF Data.StatsConfigurationErrors.size || !XAxisConfigured %]
|
||||
|
||||
<div class="Preview">
|
||||
|
||||
[% BLOCK ErrorText %]
|
||||
<p class="Error">
|
||||
<i class="fa fa-times"></i>
|
||||
[% Translate('There are problems in the configuration of this statistic:') | html %]
|
||||
</p>
|
||||
[% END %]
|
||||
|
||||
[% IF Data.StatsConfigurationErrors.GeneralSpecificationFieldErrors.size %]
|
||||
[% PROCESS ErrorText %]
|
||||
[% FOR Error IN Data.StatsConfigurationErrors.GeneralSpecificationFieldErrors.pairs %]
|
||||
<p class="Error">
|
||||
[% Error.key | html %]: [% Translate(Error.value) | html %]
|
||||
</p>
|
||||
[% END %]
|
||||
|
||||
[% ELSIF Data.StatsConfigurationErrors.XAxisGeneralErrors.size || !XAxisConfigured %]
|
||||
[% SET DisableButton.YAxis = 1;
|
||||
SET DisableButton.Restrictions = 1;
|
||||
%]
|
||||
|
||||
[% IF XAxisConfigured %]
|
||||
[% SET HighlightError.XAxis = 1; %]
|
||||
[% PROCESS ErrorText %]
|
||||
[% FOR Error IN Data.StatsConfigurationErrors.XAxisGeneralErrors %]
|
||||
<p class="Error">
|
||||
[% Translate(Error) | html %]
|
||||
</p>
|
||||
[% END %]
|
||||
[% ELSE %]
|
||||
[% SET HighlightHint.XAxis = 1; %]
|
||||
<p class="Hint">
|
||||
<i class="fa fa-cog"></i>
|
||||
[% Translate('You may now configure the X-axis of your statistic.') | html %]
|
||||
</p>
|
||||
[% END %]
|
||||
|
||||
[% ELSIF Data.StatsConfigurationErrors.XAxisFieldErrors.size %]
|
||||
[% SET HighlightError.XAxis = 1;
|
||||
SET DisableButton.YAxis = 1;
|
||||
SET DisableButton.Restrictions = 1;
|
||||
%]
|
||||
[% FOR Error IN Data.StatsConfigurationErrors.XAxisFieldErrors.pairs %]
|
||||
<p class="Error">
|
||||
<i class="fa fa-times"></i>
|
||||
[% Error.key | html%]: [% Translate(Error.value) | html %]
|
||||
</p>
|
||||
[% END %]
|
||||
|
||||
[% ELSIF Data.StatsConfigurationErrors.YAxisGeneralErrors.size %]
|
||||
|
||||
[% SET DisableButton.Restrictions = 1; %]
|
||||
|
||||
[% SET HighlightError.YAxis = 1; %]
|
||||
[% PROCESS ErrorText %]
|
||||
[% FOR Error IN Data.StatsConfigurationErrors.YAxisGeneralErrors %]
|
||||
<p class="Error">
|
||||
[% Translate(Error) | html %]
|
||||
</p>
|
||||
[% END %]
|
||||
|
||||
[% ELSIF Data.StatsConfigurationErrors.YAxisFieldErrors.size %]
|
||||
|
||||
[% SET HighlightError.YAxis = 1;
|
||||
SET DisableButton.Restrictions = 1;
|
||||
%]
|
||||
|
||||
[% PROCESS ErrorText %]
|
||||
[% FOR Error IN Data.StatsConfigurationErrors.YAxisFieldErrors.pairs %]
|
||||
<p class="Error">
|
||||
[% Error.key | html%]: [% Translate(Error.value) | html %]
|
||||
</p>
|
||||
[% END %]
|
||||
|
||||
[% ELSE %]
|
||||
|
||||
[% SET HighlightError.Restrictions = 1; %]
|
||||
|
||||
[% PROCESS ErrorText %]
|
||||
[% FOR Error IN Data.StatsConfigurationErrors.RestrictionsFieldErrors.pairs %]
|
||||
<p class="Error">
|
||||
[% Error.key | html%]: [% Translate(Error.value) | html %]
|
||||
</p>
|
||||
[% END %]
|
||||
|
||||
[% END %]
|
||||
|
||||
</div>
|
||||
|
||||
[% ELSIF !Data.PreviewResult %]
|
||||
|
||||
<div class="Preview">
|
||||
<p class="Hint">
|
||||
<i class="fa fa-ban"></i>
|
||||
[% Translate('This statistic does not provide preview data.') | html %]
|
||||
</p>
|
||||
</div>
|
||||
|
||||
[% ELSE %]
|
||||
|
||||
[% SET PreviewFormats = Data.Format.grep('Print|D3') %]
|
||||
[% SET FormatConfig = Config('Stats::Format') %]
|
||||
|
||||
[% IF Data.PreviewResult && PreviewFormats.size %]
|
||||
|
||||
<div class="PreviewSettings">
|
||||
[% Translate('Preview format') | html %]:
|
||||
[% FOREACH Format IN PreviewFormats.sort %]
|
||||
<button class="CallForAction SwitchPreviewFormat" data-format="[% Format | html %]"><span>[% Translate(FormatConfig.item(Format)) | html %]</span></button>
|
||||
[% END %]
|
||||
<span class="Warning">
|
||||
[% Translate('Please note that the preview uses random data and does not consider data filters.') | html %]
|
||||
</span>
|
||||
</div>
|
||||
[% END %]
|
||||
|
||||
<div class="Preview">
|
||||
[% IF !Data.PreviewResult || !PreviewFormats.size %]
|
||||
<p>[% Translate('This statistic does not provide preview data.') | html %]</p>
|
||||
[% ELSE %]
|
||||
[% FOREACH Format IN PreviewFormats %]
|
||||
[% IF Format == 'Print' %]
|
||||
<div class="PreviewContent PreviewTable" id="PreviewContent[% Format.replace('::', '') | html %]" style="display: none;">
|
||||
[% SET HeaderRow = Data.PreviewResult.1 %]
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
[% FOREACH HeaderCell IN HeaderRow %]
|
||||
<th title="[% HeaderCell | html %]">[% HeaderCell | truncate(15) | html %]</th>
|
||||
[% END %]
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% SET DataRowMaxIndex = Data.PreviewResult.max %]
|
||||
[% FOREACH DataRowIndex = [ 2 .. DataRowMaxIndex ] %]
|
||||
[% SET DataRow = Data.PreviewResult.$DataRowIndex %]
|
||||
<tr>[% FOREACH DataCell IN DataRow %]<td>[% DataCell | truncate(20) | html %]</td>[% END %]</tr>
|
||||
[% END %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% ELSE %]
|
||||
<svg class="PreviewContent PreviewCanvas" id="PreviewContent[% Format.replace('::', '') | html %]" style="display: none;"></svg>
|
||||
[% END %]
|
||||
[% END %]
|
||||
[% END %]
|
||||
|
||||
</div>
|
||||
|
||||
[% END %]
|
||||
|
||||
[% IF Data.UseAsValueSeries.size && !YAxisConfigured && !DisableButton.YAxis %][% SET HighlightHint.YAxis = 1 %][% END %]
|
||||
|
||||
<button type="button"
|
||||
class="CallForAction EditXAxis Bottom
|
||||
[% IF HighlightError.XAxis %]HighlightError[% END %]
|
||||
[% IF HighlightHint.XAxis %]HighlightHint[% END %]
|
||||
"
|
||||
[% IF DisableButton.XAxis %]disabled="disabled"[% END %]
|
||||
data-configuration-type="XAxis"
|
||||
data-configuration-limit="1"
|
||||
data-dialog-title="[% Translate('Configure X-Axis') | html %]">
|
||||
<span>
|
||||
<i class="fa fa-arrows-h"></i>
|
||||
[% Translate('X-axis') | html %]
|
||||
</span>
|
||||
</button>
|
||||
<div id="XAxisFormFields" class="Hidden"></div>
|
||||
|
||||
<button type="button"
|
||||
class="CallForAction EditYAxis Left
|
||||
[% IF HighlightError.YAxis %]HighlightError[% END %]
|
||||
[% IF HighlightHint.YAxis %]HighlightHint[% END %]
|
||||
"
|
||||
[% IF DisableButton.YAxis %]disabled="disabled"[% END %]
|
||||
data-configuration-type="YAxis"
|
||||
data-configuration-limit="2"
|
||||
data-dialog-title="[% Translate('Configure Y-Axis') | html %]">
|
||||
<span>
|
||||
<i class="fa fa-arrows-v"></i>
|
||||
[% Translate('Y-axis') | html %]
|
||||
</span>
|
||||
</button>
|
||||
<div id="YAxisFormFields" class="Hidden"></div>
|
||||
|
||||
<button type="button"
|
||||
class="CallForAction EditRestrictions Right
|
||||
[% IF HighlightError.Restrictions %]HighlightError[% END %]
|
||||
[% IF HighlightHint.Restrictions %]HighlightHint[% END %]
|
||||
"
|
||||
[% IF DisableButton.Restrictions %]disabled="disabled"[% END %]
|
||||
data-configuration-type="Restrictions"
|
||||
data-configuration-limit=""
|
||||
data-dialog-title="[% Translate('Configure Filter') | html %]">
|
||||
<span>
|
||||
<i class="fa fa-filter"></i>
|
||||
[% Translate('Filter') | html %]
|
||||
</span>
|
||||
</button>
|
||||
<div id="RestrictionsFormFields" class="Hidden"></div>
|
||||
|
||||
<div id="EditDialogTemplate" class="Hidden">
|
||||
<div class="Fields"></div>
|
||||
<fieldset class="TableLike Add">
|
||||
<label>[% Translate("Add") | html %]:</label>
|
||||
<div class="Field Value">
|
||||
<select></select>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
@@ -0,0 +1,71 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
||||
# --
|
||||
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
# the enclosed file COPYING for license information (GPL). If you
|
||||
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
|
||||
# --
|
||||
|
||||
<div id="RestrictionsContainer" class="Hidden">
|
||||
|
||||
[% RenderBlockStart("Attribute") %]
|
||||
<fieldset class="TableLike Element Element[% Data.Element | html %] ElementBlock[% Data.Block | html %]" data-element="[% Data.Element | html %]">
|
||||
<input type="hidden" name="Select[% Data.Element | html %]" value="1" />
|
||||
<legend>
|
||||
<span>[% Translate(Data.Name) | html %]</span>
|
||||
<a class="RemoveButton" href="#"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Delete") | html %]</span></a>
|
||||
</legend>
|
||||
[% RenderBlockStart("MultiSelectField") %]
|
||||
<label></label>
|
||||
<div class="Field">
|
||||
[% Data.SelectField %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("MultiSelectField") %]
|
||||
[% RenderBlockStart("SelectField") %]
|
||||
<label></label>
|
||||
<div class="Field">
|
||||
[% Data.SelectField %]
|
||||
<p class="FieldExplanation">[% Translate("Please select only one element or turn off the button 'Fixed'.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("SelectField") %]
|
||||
[% RenderBlockStart("InputField") %]
|
||||
<label></label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Element | html %]" id="[% Data.Element| html %]" value="[% Data.SelectedValue | html %]" class="W50pc [% Data.Invalid | html %] [% Data.CSSClass | html %]"[% FOR DataAttribute IN Data.HTMLDataAttributes.keys.sort %] data-[% DataAttribute | html %]="[% Data.HTMLDataAttributes.$DataAttribute | html %]"[% END %]/>
|
||||
<div id="[% Data.Element| html %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Data.InvalidTooltip | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("InputField") %]
|
||||
[% RenderBlockStart("Time") %]
|
||||
<label>
|
||||
<input type="radio" name="[% Data.Element | html %]TimeSelect" value="Absolut" [% Data.CheckedAbsolut | html %]/>
|
||||
[% Translate("Absolute period") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Translate("Between %s and %s") | html | ReplacePlaceholders(Data.TimeStart, Data.TimeStop) %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>
|
||||
<input type="radio" name="[% Data.Element | html %]TimeSelect" value="Relativ" [% Data.CheckedRelative | html %]/>
|
||||
[% Translate("Relative period") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Translate("The past complete %s and the current+upcoming complete %s %s") | html | ReplacePlaceholders(Data.TimeRelativeCount, Data.TimeRelativeUpcomingCount, Data.TimeRelativeUnit) %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Time") %]
|
||||
<label></label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="Fixed[% Data.Element | html %]" value="1" [% Data.Fixed %]/>
|
||||
[% Translate("Do not allow changes to this element when the statistic is generated.") | html %]
|
||||
</label>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
[% RenderBlockEnd("Attribute") %]
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,137 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
||||
# --
|
||||
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
# the enclosed file COPYING for license information (GPL). If you
|
||||
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
|
||||
# --
|
||||
|
||||
<fieldset class="TableLike">
|
||||
<label>[% Translate("Object") | html %]:</label>
|
||||
<div class="Value">[% Translate(Data.ObjectName) | html %]</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Description") | html %]:</label>
|
||||
<div class="Value">[% Data.Description | html %]</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("Format") %]
|
||||
<label for="Format">[% Translate("Format") | html %]:</label>
|
||||
<div class="Value">[% Data.SelectFormat %]</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Format") %]
|
||||
[% RenderBlockStart("FormatFixed") %]
|
||||
<input type="hidden" id="Format" name="Format" value="[% Data.FormatKey | html %]"/>
|
||||
<label>[% Translate("Format") | html %]:</label>
|
||||
<div class="Value">[% Translate(Data.Format) | html %]</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("FormatFixed") %]
|
||||
|
||||
[% RenderBlockStart("TimeZone") %]
|
||||
<label for="TimeZone">[% Translate("Time Zone") | html %]:</label>
|
||||
<div class="Value">
|
||||
[% Data.SelectTimeZone %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate('The selected time periods in the statistic are time zone neutral.') | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("TimeZone") %]
|
||||
|
||||
[% RenderBlockStart("ExchangeAxis") %]
|
||||
<label>[% Translate("Exchange Axis") | html %]:</label>
|
||||
<div class="Value">[% Data.ExchangeAxis %]</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("ExchangeAxis") %]
|
||||
</fieldset>
|
||||
|
||||
[% RenderBlockStart("Static") %]
|
||||
<h2>
|
||||
[% Translate("Configurable Params of Static Stat") | html %]
|
||||
</h2>
|
||||
<fieldset class="TableLike">
|
||||
[% RenderBlockStart("ItemParam") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Param) | html %]:</label>
|
||||
<div class="Value">[% Data.Field %]</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("ItemParam") %]
|
||||
</fieldset>
|
||||
[% RenderBlockEnd("Static") %]
|
||||
|
||||
|
||||
[% RenderBlockStart("Dynamic") %]
|
||||
<fieldset class="TableLike">
|
||||
<legend><span>[% Translate(Data.Name) | html %]</span></legend>
|
||||
[% RenderBlockStart("NoElement") %]
|
||||
<div class="Value">
|
||||
<p class="FieldExplanation">[% Translate("No element selected.") | html %]</p>
|
||||
</div>
|
||||
[% RenderBlockEnd("NoElement") %]
|
||||
[% RenderBlockStart("Element") %]
|
||||
<label>[% Translate(Data.Name) | html %]:</label>
|
||||
<div class="Value">
|
||||
[% RenderBlockStart("TimePeriodFixed") %]
|
||||
[% Translate("Between %s and %s") | html | ReplacePlaceholders(Data.TimeStart, Data.TimeStop) %]<br/>
|
||||
[% RenderBlockEnd("TimePeriodFixed") %]
|
||||
[% RenderBlockStart("TimeRelativeFixed") %]
|
||||
[% Translate("The past complete %s and the current+upcoming complete %s %s") | html | ReplacePlaceholders(Data.TimeRelativeCount, Data.TimeRelativeUpcomingCount, Data.TimeRelativeUnit) %]<br/>
|
||||
[% RenderBlockEnd("TimeRelativeFixed") %]
|
||||
[% RenderBlockStart("TimeScaleFixed") %]
|
||||
[% Translate("Scale") | html %]: [% Data.Count %] [% Translate(Data.Scale) | html %]
|
||||
[% RenderBlockEnd("TimeScaleFixed") %]
|
||||
[% RenderBlockStart("Fixed") %]
|
||||
<div title="[% Data.Value | html %]">
|
||||
<span class="DataTruncated">[% Data.Value | truncate(120) | html %]</span>
|
||||
[% IF Data.Value.length > 120 %]
|
||||
<span class="DataFull Hidden">[% Data.Value | html %]</span>
|
||||
<a href="#" class="DataShowMore">
|
||||
<span class="More"><i class="fa fa-long-arrow-right"></i> [% Translate("show more") | html %]</span>
|
||||
<span class="Less Hidden"><i class="fa fa-long-arrow-left"></i> [% Translate("show less") | html %]</span>
|
||||
</a>
|
||||
[% END %]
|
||||
</div>
|
||||
[% RenderBlockEnd("Fixed") %]
|
||||
[% RenderBlockStart("MultiSelectField") %]
|
||||
[% Data.SelectField %]
|
||||
[% RenderBlockEnd("MultiSelectField") %]
|
||||
[% RenderBlockStart("SelectField") %]
|
||||
[% Data.SelectField %]
|
||||
[% RenderBlockEnd("SelectField") %]
|
||||
[% RenderBlockStart("InputField") %]
|
||||
<input type="text" id="[% Data.Key | html %]" name="[% Data.Key | html %]" value="[% Data.Value | html %]" class="W25pc [% Data.CSSClass | html %]"[% FOR DataAttribute IN Data.HTMLDataAttributes.keys.sort %] data-[% DataAttribute | html %]="[% Data.HTMLDataAttributes.$DataAttribute | html %]"[% END %]/>
|
||||
[% RenderBlockEnd("InputField") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("TimePeriod") %]
|
||||
<label><em>[% Translate("Absolute period") | html %]</em>:</label>
|
||||
<div class="Value">
|
||||
<p>
|
||||
[% Translate("Between %s and %s") | html | ReplacePlaceholders(Data.TimeStart, Data.TimeStop) %]<br/>
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("TimePeriod") %]
|
||||
|
||||
[% RenderBlockStart("TimeScale") %]
|
||||
<label><em>[% Translate("Scale") | html %]</em>:</label>
|
||||
<div class="Value">
|
||||
[% IF Data.TimeScaleCount %]
|
||||
[% Data.TimeScaleCount %]
|
||||
[% END %]
|
||||
[% Data.TimeScaleUnit %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("TimeScale") %]
|
||||
|
||||
[% RenderBlockStart("TimePeriodRelative") %]
|
||||
<label><em>[% Translate("Relative period") | html %]</em>:</label>
|
||||
<div class="Value">
|
||||
[% Translate("The past complete %s and the current+upcoming complete %s %s") | html | ReplacePlaceholders(Data.TimeRelativeCount, Data.TimeRelativeUpcomingCount, Data.TimeRelativeUnit) %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("TimePeriodRelative") %]
|
||||
|
||||
[% RenderBlockEnd("Element") %]
|
||||
</fieldset>
|
||||
[% RenderBlockEnd("Dynamic") %]
|
||||
@@ -0,0 +1,30 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
||||
# --
|
||||
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
# the enclosed file COPYING for license information (GPL). If you
|
||||
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
|
||||
# --
|
||||
|
||||
## nofilter(TidyAll::Plugin::OTRS::TT::Format)
|
||||
|
||||
<div class="MainBox AriaRoleMain">
|
||||
<h1 class="Center SpacingBottom">
|
||||
[% Config("Stats::StatsHook") | html %][% Data.StatNumber | html %]
|
||||
[% IF Data.TimeZone %] ([% Translate("Time Zone") | html %] [% Data.TimeZone | html %])[% END %]
|
||||
— [% Data.Title | html %]
|
||||
</h1>
|
||||
|
||||
<div id="svg-container">
|
||||
<svg id="ChartContent" xmlns="http://www.w3.org/2000/svg" version="1.1" style="min-height: 500px"></svg>
|
||||
</div>
|
||||
|
||||
<div class="Center SpacingTop">
|
||||
<a id="download-svg" class="CallForAction" download="[% Data.Title | replace('\s+', '_') | html %][% IF Data.TimeZone %]_TimeZone_[% Data.TimeZone %][% END %].svg">
|
||||
<span>[% Translate('Download SVG') | html %]</span>
|
||||
</a>
|
||||
<a id="download-png" class="CallForAction" download="[% Data.Title | replace('\s+', '_') | html %][% IF Data.TimeZone %]_TimeZone_[% Data.TimeZone %][% END %].png">
|
||||
<span>[% Translate('Download PNG') | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,62 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
||||
# --
|
||||
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
# the enclosed file COPYING for license information (GPL). If you
|
||||
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
|
||||
# --
|
||||
|
||||
<div id="XAxisContainer" class="Hidden">
|
||||
|
||||
[% RenderBlockStart("Attribute") %]
|
||||
<fieldset class="TableLike Element Element[% Data.Element | html %] ElementBlock[% Data.Block | html %]" data-element="[% Data.Element | html %]">
|
||||
<input type="hidden" name="XAxisSelectedElement" value="[% Data.Element | html %]" [% Data.Checked %]/>
|
||||
<legend>
|
||||
<span>[% Translate(Data.Name) | html %]</span>
|
||||
<a class="RemoveButton" href="#"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Delete") | html %]</span></a>
|
||||
</legend>
|
||||
[% RenderBlockStart("MultiSelectField") %]
|
||||
<label></label>
|
||||
<div class="Field">
|
||||
[% Data.SelectField %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("MultiSelectField") %]
|
||||
[% RenderBlockStart("Time") %]
|
||||
<label>
|
||||
<input type="radio" name="[% Data.Element | html %]TimeSelect" value="Absolut" [% Data.CheckedAbsolut | html %]/>
|
||||
[% Translate("Absolute period") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Translate("Between %s and %s") | html | ReplacePlaceholders(Data.TimeStart, Data.TimeStop) %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>
|
||||
<input type="radio" name="[% Data.Element | html %]TimeSelect" value="Relativ" [% Data.CheckedRelative | html %]/>
|
||||
[% Translate("Relative period") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Translate("The past complete %s and the current+upcoming complete %s %s") | html | ReplacePlaceholders(Data.TimeRelativeCount, Data.TimeRelativeUpcomingCount, Data.TimeRelativeUnit) %]
|
||||
<p class="FieldExplanation">[% Translate("The selected time period defines the default time frame for this statistic to collect data from.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<br/>
|
||||
|
||||
<label>[% Translate("Scale") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.TimeScaleCount %]
|
||||
[% Data.TimeScaleUnit %]
|
||||
<p class="FieldExplanation">[% Translate("Defines the time unit that will be used to split the selected time period into reporting data points.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Time") %]
|
||||
<label></label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="Fixed[% Data.Element | html %]" value="1" [% Data.Fixed %]/>
|
||||
[% Translate("Do not allow changes to this element when the statistic is generated.") | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
[% RenderBlockEnd("Attribute") %]
|
||||
</div>
|
||||
@@ -0,0 +1,44 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
||||
# --
|
||||
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
# the enclosed file COPYING for license information (GPL). If you
|
||||
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
|
||||
# --
|
||||
|
||||
<div id="YAxisContainer" class="Hidden">
|
||||
|
||||
[% RenderBlockStart("Attribute") %]
|
||||
<fieldset class="TableLike Element Element[% Data.Element | html %] ElementBlock[% Data.Block | html %]" data-element="[% Data.Element | html %]">
|
||||
<input type="hidden" name="Select[% Data.Element | html %]" value="1" />
|
||||
<legend>
|
||||
<span>[% Translate(Data.Name) | html %]</span>
|
||||
<a class="RemoveButton" href="#"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Delete") | html %]</span></a>
|
||||
</legend>
|
||||
[% RenderBlockStart("MultiSelectField") %]
|
||||
<label></label>
|
||||
<div class="Field">
|
||||
[% Data.SelectField %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("MultiSelectField") %]
|
||||
[% RenderBlockStart("Time") %]
|
||||
<label>[% Translate("Scale") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.TimeScaleUnit %]
|
||||
<p class="FieldExplanation">[% Translate("Defines the time unit that will be used to split the selected time period into reporting data points.") | html %]</p>
|
||||
# <p class="FieldExplanation">
|
||||
# [% Translate("Please remember that the scale for the Y-axis has to be larger than the scale for the X-axis (e.g. X-axis => Month, Y-Axis => Year).") | html %]
|
||||
# </p>
|
||||
# [% Data.TimeScaleCount %] Comment: Danger to use and no best practise
|
||||
</div>
|
||||
[% RenderBlockEnd("Time") %]
|
||||
<label></label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="Fixed[% Data.Element | html %]" value="1" [% Data.Fixed %]/>
|
||||
[% Translate("Do not allow changes to this element when the statistic is generated.") | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
[% RenderBlockEnd("Attribute") %]
|
||||
</div>
|
||||
Reference in New Issue
Block a user