Customer portal : Formatted date in case log entries header

SVN:trunk[4180]
This commit is contained in:
Guillaume Lajarige
2016-06-02 15:45:33 +00:00
parent 54a40c42cd
commit 80789ccaa9

View File

@@ -22,6 +22,7 @@ namespace Combodo\iTop\Renderer\Bootstrap\FieldRenderer;
use \utils;
use \Dict;
use \UserRights;
use \AttributeDateTime;
use \InlineImage;
use \Combodo\iTop\Renderer\FieldRenderer;
use \Combodo\iTop\Renderer\RenderingOutput;
@@ -109,41 +110,7 @@ EOF
// Then the previous entries if necessary
if ($sFieldClass === 'Combodo\\iTop\\Form\\Field\\CaseLogField')
{
$aEntries = $this->oField->GetEntries();
if (count($aEntries) > 0)
{
$oOutput->AddHtml('<div>');
for ($i = 0; $i < count($aEntries); $i++)
{
$sEntryDate = $aEntries[$i]['date'];
$sEntryUser = $aEntries[$i]['user_login'];
$sEntryHeader = Dict::Format('UI:CaseLog:Header_Date_UserName', $sEntryDate, $sEntryUser);
// Only the last 2 entries are expanded by default
$sEntryContentExpanded = ($i < 2) ? 'true' : 'false';
$sEntryHeaderButtonClass = ($i < 2) ? '' : 'collapsed';
$sEntryContentClass = ($i < 2) ? 'in' : '';
$sEntryContentId = 'caselog_field_entry_content-' . $this->oField->GetGlobalId() . '-' . $i;
// Note : We use CKEditor stylesheet to format this
$oOutput->AddHtml(
<<<EOF
<div class="caselog_field_entry cke_inner">
<div class="caselog_field_entry_header">
{$sEntryHeader}
<div class="pull-right">
<span class="caselog_field_entry_button {$sEntryHeaderButtonClass}" data-toggle="collapse" href="#{$sEntryContentId}" aria-expanded="{$sEntryContentExpanded}" aria-controls="{$sEntryContentId}"></span>
</div>
</div>
<div class="caselog_field_entry_content collapse {$sEntryContentClass}" id="{$sEntryContentId}">
{$aEntries[$i]['message_html']}
</div>
</div>
EOF
);
}
$oOutput->AddHtml('</div>');
}
$this->PreparingCaseLogEntries($oOutput);
}
$oOutput->AddHtml('</div>');
@@ -260,6 +227,17 @@ EOF
$oOutput->AddHtml('</div>');
break;
case 'Combodo\\iTop\\Form\\Field\\CaseLogField':
$oOutput->AddHtml('<div class="form-group ' . $sFieldMandatoryClass . '">');
if ($this->oField->GetLabel() !== '')
{
$oOutput->AddHtml('<label for="' . $this->oField->GetGlobalId() . '" class="control-label">')->AddHtml($this->oField->GetLabel(), true)->AddHtml('</label>');
}
// Entries if necessary
$this->PreparingCaseLogEntries($oOutput);
$oOutput->AddHtml('</div>');
break;
case 'Combodo\\iTop\\Form\\Field\\DateTimeField':
$oOutput->AddHtml('<div class="form-group">');
// Showing label / value only if read-only but not hidden
@@ -406,4 +384,43 @@ EOF
return $oOutput;
}
protected function PreparingCaseLogEntries(RenderingOutput &$oOutput)
{
$aEntries = $this->oField->GetEntries();
if (count($aEntries) > 0)
{
$oOutput->AddHtml('<div>');
for ($i = 0; $i < count($aEntries); $i++)
{
$sEntryDate = AttributeDateTime::GetFormat()->Format($aEntries[$i]['date']);
$sEntryUser = $aEntries[$i]['user_login'];
$sEntryHeader = Dict::Format('UI:CaseLog:Header_Date_UserName', $sEntryDate, $sEntryUser);
// Only the last 2 entries are expanded by default
$sEntryContentExpanded = ($i < 2) ? 'true' : 'false';
$sEntryHeaderButtonClass = ($i < 2) ? '' : 'collapsed';
$sEntryContentClass = ($i < 2) ? 'in' : '';
$sEntryContentId = 'caselog_field_entry_content-' . $this->oField->GetGlobalId() . '-' . $i;
// Note : We use CKEditor stylesheet to format this
$oOutput->AddHtml(
<<<EOF
<div class="caselog_field_entry cke_inner">
<div class="caselog_field_entry_header">
{$sEntryHeader}
<div class="pull-right">
<span class="caselog_field_entry_button {$sEntryHeaderButtonClass}" data-toggle="collapse" href="#{$sEntryContentId}" aria-expanded="{$sEntryContentExpanded}" aria-controls="{$sEntryContentId}"></span>
</div>
</div>
<div class="caselog_field_entry_content collapse {$sEntryContentClass}" id="{$sEntryContentId}">
{$aEntries[$i]['message_html']}
</div>
</div>
EOF
);
}
$oOutput->AddHtml('</div>');
}
}
}