Skip to content
Snippets Groups Projects
Commit 112d8b07 authored by Torsten Oppermann's avatar Torsten Oppermann
Browse files

[TASK] Fixing filter ui

parent 29cbe1f2
No related branches found
No related tags found
1 merge request!3New version 4 1
......@@ -80,16 +80,37 @@ class QueueController extends ActionController {
$pageUid = (int) GeneralUtility::_GP('id');
$pageInfo = BackendUtility::readPageAccess($pageUid, $GLOBALS['BE_USER']->getPagePermsClause(1));
if ($pageInfo && $pageInfo['is_siteroot'] === '1') {
$this->view->assign('selectedTemplateKey', $selectedTemplate);
$this->view->assign('selectedExtensionKey', $selectedExtension);
$this->view->assign('templates', $registerArray);
$this->view->assign('queue', $queue);
$templates = [];
foreach ($registerArray as $extensions) {
foreach ($extensions as $template => $key) {
$templates[] = $key['templateName'];
}
}
array_unshift($templates, '');
$this->view->assign('templatesFilter', $templates);
$languages = BackendService::getLanguages();
array_unshift($languages, '');
$this->view->assign('languages', $languages);
$this->view->assign('mode', 'queue');
if (!$filters['sent']) {
$filters['sent'] = 0;
}
$this->view->assign('filters', $filters);
$this->view->assign('queue', $queue);
$this->view->assign(
'filterFields', [
LocalizationUtility::translate('backend.filter.from', 'SgMail'),
LocalizationUtility::translate('backend.filter.to', 'SgMail'),
LocalizationUtility::translate('backend.filter.subject', 'SgMail'),
LocalizationUtility::translate('backend.filter.mailtext', 'SgMail'),
LocalizationUtility::translate('backend.filter.cc', 'SgMail'),
LocalizationUtility::translate('backend.filter.bcc', 'SgMail')
]
);
} else {
$this->view->assign('pages', BackendService::getPages());
}
......
......@@ -43,6 +43,13 @@ use TYPO3\CMS\Lang\Domain\Repository\LanguageRepository;
* Backend Service class
*/
class BackendService {
// options for the queue search filter
const SENDER_FILTER_OPTION = 0;
const RECIPIENT_FILTER_OPTION = 1;
const SUBJECT_FILTER_OPTION = 2;
const MAILTEXT_FILTER_OPTION = 3;
const CC_FILTER_OPTION = 4;
const BCC_FILTER_OPTION = 5;
/**
* Get all pages the be user has access to
......
......@@ -53,6 +53,58 @@
<source>There was an error when sending the preview email. Please check your configuration.</source>
<target>Ein Fehler ist aufgetreten. Bitte überprüfen Sie die Konfiguration.</target>
</trans-unit>
<trans-unit id="backend.filter.bcc" approved="yes">
<source>BCC address</source>
<target>BCC Adressen</target>
</trans-unit>
<trans-unit id="backend.filter.cc" approved="yes">
<source>CC address</source>
<target>CC Adressen</target>
</trans-unit>
<trans-unit id="backend.filter.date_from" approved="yes">
<source>From:</source>
<target>Von:</target>
</trans-unit>
<trans-unit id="backend.filter.date_to" approved="yes">
<source>To:</source>
<target>Bis:</target>
</trans-unit>
<trans-unit id="backend.filter.fields.description" approved="yes">
<source>Please select one or more fields you want to filter for:</source>
<target>Bitte wählen Sie ein oder mehrere Felder nach denen Sie filtern möchten:</target>
</trans-unit>
<trans-unit id="backend.filter.filter" approved="yes">
<source>Filter</source>
<target>Filter anwenden</target>
</trans-unit>
<trans-unit id="backend.filter.from" approved="yes">
<source>Sender address</source>
<target>Absender</target>
</trans-unit>
<trans-unit id="backend.filter.language" approved="yes">
<source>Language:</source>
<target>Sprache:</target>
</trans-unit>
<trans-unit id="backend.filter.mailtext" approved="yes">
<source>Mailtext</source>
<target>Mailinhalt</target>
</trans-unit>
<trans-unit id="backend.filter.search" approved="yes">
<source>Search for:</source>
<target>Suchen nach:</target>
</trans-unit>
<trans-unit id="backend.filter.subject" approved="yes">
<source>Subject</source>
<target>Betreff</target>
</trans-unit>
<trans-unit id="backend.filter.template" approved="yes">
<source>Template key:</source>
<target>Template:</target>
</trans-unit>
<trans-unit id="backend.filter.to" approved="yes">
<source>Recipient address</source>
<target>Empfänger</target>
</trans-unit>
<trans-unit id="backend.from" approved="yes">
<source>From</source>
<target>Absender</target>
......
......@@ -42,6 +42,45 @@
<trans-unit id="backend.failure_mail">
<source>There was an error when sending the preview email. Please check your configuration.</source>
</trans-unit>
<trans-unit id="backend.filter.bcc">
<source>BCC address</source>
</trans-unit>
<trans-unit id="backend.filter.cc">
<source>CC address</source>
</trans-unit>
<trans-unit id="backend.filter.date_from">
<source>From:</source>
</trans-unit>
<trans-unit id="backend.filter.date_to">
<source>To:</source>
</trans-unit>
<trans-unit id="backend.filter.fields.description">
<source>Please select one or more fields you want to filter for:</source>
</trans-unit>
<trans-unit id="backend.filter.filter">
<source>Filter</source>
</trans-unit>
<trans-unit id="backend.filter.from">
<source>Sender address</source>
</trans-unit>
<trans-unit id="backend.filter.language">
<source>Language:</source>
</trans-unit>
<trans-unit id="backend.filter.mailtext">
<source>Mailtext</source>
</trans-unit>
<trans-unit id="backend.filter.search">
<source>Search for:</source>
</trans-unit>
<trans-unit id="backend.filter.subject">
<source>Subject</source>
</trans-unit>
<trans-unit id="backend.filter.template">
<source>Template key:</source>
</trans-unit>
<trans-unit id="backend.filter.to">
<source>Recipient address</source>
</trans-unit>
<trans-unit id="backend.from">
<source>From</source>
</trans-unit>
......
<div class="col-xs-4 row ">
<f:form action="index" controller="Queue" method="post" objectName="filters" object="{filters}">
<table class="table">
<tbody>
<tr>
<td>
<f:form.textfield class="form-control" property="from" id="filter-from" placeholder="{f:translate(key: 'backend.from')}" />
</td>
</tr>
<tr>
<td>
<f:form.textfield class="form-control" property="to" id="filter-to" placeholder="{f:translate(key: 'backend.to')}" />
</td>
</tr>
<tr>
<td>
<f:form.textfield class="form-control" property="subject" id="filter-subject" placeholder="{f:translate(key: 'backend.subject')}" />
</td>
</tr>
<tr>
<td>
<div class="radio">
<label class="radio-inline">
<f:form.radio property="sent" id="filters-all" value="0" checked="{f:if(condition: '{filters.sent} == \'0\'', then: '1')}" />
<f:translate key="backend.all" />
</label>
<label class="radio-inline">
<f:form.radio property="sent" id="filters-sent" value="1" checked="{f:if(condition: '{filters.sent} == \'1\'', then: '1')}" />
<f:translate key="backend.sent" />
</label>
<label class="radio-inline">
<f:form.radio property="sent" id="filters-notsent" value="2" checked="{f:if(condition: '{filters.sent} == \'2\'', then: '1')}" />
<f:translate key="backend.not_sent" />
</label>
</div>
</td>
</tr>
<tr>
<td>
<f:form.button class="btn btn-success form-group col-xs-12" type="submit">Filter</f:form.button>
</td>
</tr>
</tbody>
</table>
</f:form>
</div>
\ No newline at end of file
{namespace sgm=SGalinski\SgMail\ViewHelpers}
<f:form action="index" controller="Queue" method="post" objectName="filters" object="{filters}">
<div class="row">
<div class="col-xs-5">
<div class="form-group">
<label for="filter-fields">
<f:translate key="backend.filters.fields" />
<small><f:translate key="backend.filter.fields.description" /></small>
</label>
<f:form.select class="form-control" multiple="1" size="4" property="filterfields" options="{filterFields}" id="filter-fields" />
</div>
</div>
<div class="col-xs-4">
<div class="col-xs-6">
<div class="form-group">
<label for="filter-from-date"><f:translate key="backend.filter.date_from" /></label>
<div class='input-group date' id='datetimepicker_from'>
<f:form.textfield id="filter-from-date" class="form-control" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label for="filter-to-date"><f:translate key="backend.filter.date_to" /></label>
<div class='input-group date' id='datetimepicker_to'>
<f:form.textfield id="filter-to-date" class="form-control" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
<div class="form-group">
<label for="filter-search"><f:translate key="backend.filter.search" /></label>
<f:form.textfield class="form-control" property="search" id="filter-search" />
</div>
<div class="form-group">
<label for="filter-template"><f:translate key="backend.filter.template" /></label>
<f:form.select class="form-control" multiple="0" size="1" options="{templatesFilter}" id="filter-template" />
</div>
</div>
<div class="col-xs-3">
<div class="form-group">
<label for="filter-languages"><f:translate key="backend.filter.language" /></label>
<f:form.select class="form-control" multiple="0" size="1" options="{languages}" id="filter-languages" />
</div>
<div class="form-group">
<br />
<f:form.button class="btn btn-success form-group col-xs-12" type="submit">
<f:translate key="backend.filter.filter" /></f:form.button>
</div>
</div>
</div>
</f:form>
<f:comment>
<div class="col-xs-4 row ">
<f:form action="index" controller="Queue" method="post" objectName="filters" object="{filters}">
<table class="table">
<tbody>
<tr>
<td>
<f:form.textfield class="form-control" property="from" id="filter-from" placeholder="{f:translate(key: 'backend.from')}" />
</td>
</tr>
<tr>
<td>
<f:form.textfield class="form-control" property="to" id="filter-to" placeholder="{f:translate(key: 'backend.to')}" />
</td>
</tr>
<tr>
<td>
<f:form.textfield class="form-control" property="subject" id="filter-subject" placeholder="{f:translate(key: 'backend.subject')}" />
</td>
</tr>
<tr>
<td>
<div class="radio">
<label class="radio-inline">
<f:form.radio property="sent" id="filters-all" value="0" checked="{f:if(condition: '{filters.sent} == \'0\'', then: '1')}" />
<f:translate key="backend.all" />
</label>
<label class="radio-inline">
<f:form.radio property="sent" id="filters-sent" value="1" checked="{f:if(condition: '{filters.sent} == \'1\'', then: '1')}" />
<f:translate key="backend.sent" />
</label>
<label class="radio-inline">
<f:form.radio property="sent" id="filters-notsent" value="2" checked="{f:if(condition: '{filters.sent} == \'2\'', then: '1')}" />
<f:translate key="backend.not_sent" />
</label>
</div>
</td>
</tr>
<tr>
<td>
<f:form.button class="btn btn-success form-group col-xs-12" type="submit">Filter</f:form.button>
</td>
</tr>
</tbody>
</table>
</f:form>
</div>
</f:comment>
\ No newline at end of file
{namespace sgm=SGalinski\SgMail\ViewHelpers}
<f:layout name="Default" />
<f:section name="iconButtons">
......@@ -29,7 +28,7 @@
<f:if condition="{queue -> f:count()} > 0">
<f:then>
<f:render partial="Queue/Filter" arguments="{userGroupOptions: userGroupOptions, filters: filters}" />
<f:render partial="Queue/Filter" arguments="{filterFields: filterFields, filters: filters, languages: languages, templatesFilter: templatesFilter}" />
<div class="panel panel-default recordlist">
<div class="table-fit">
<table data-table="tx_sgmail_domain_model_mail" class="table table-striped table-hover">
......@@ -41,7 +40,6 @@
<th><f:translate key="backend.to" /></th>
<th><f:translate key="backend.subject" /></th>
<th><f:translate key="backend.entry_date" /></th>
<th><f:translate key="backend.sending_time" /></th>
<th><f:translate key="backend.last_sent" /></th>
<th></th>
<th></th>
......@@ -71,9 +69,6 @@
<td>
<span><f:format.date format="d.m.Y h:i">{mail.tstamp}</f:format.date></span>
</td>
<td>
<span><f:format.date format="d.m.Y h:i">{mail.sending_time}</f:format.date></span>
</td>
<td>
<span><f:format.date format="d.m.Y h:i">{mail.last_sending_time}</f:format.date></span>
</td>
......
......@@ -28,10 +28,12 @@
function toggleMailBody(_event) {
var uid = $(_event.currentTarget).data('uid');
$('#toggle-' + uid).detach().appendTo('body').modal('show');;
$('#toggle-' + uid).detach().appendTo('body').modal('show');
}
$(document).ready(function() {
// $('#datetimepicker_to').datetimepicker();
// $('#datetimepicker_from').datetimepicker();
$('.reset-btn').on('click', resetTemplateListener);
$('.btn-send-now').on('click', sendMailListener);
$('.btn-resend').on('click', resendMailListener);
......@@ -71,7 +73,7 @@ function setHighlight(id) { //
* @param {number} uid
*/
function sgMailGoToPage(uid) {
top.nav.invokePageId(uid,gotToPageCallback);
top.nav.invokePageId(uid, gotToPageCallback);
}
/**
......@@ -79,11 +81,11 @@ function sgMailGoToPage(uid) {
*
* @param {number} uid
*/
function gotToPageCallback(path){
function gotToPageCallback(path) {
var callback = top.Ext.createDelegate(top.nav.mainTree.selectPath, top.nav.mainTree);
callback.apply(this, arguments);
var node = top.nav.getSelected();
if (node) {
top.TYPO3.Components.PageTree.Actions.singleClick(node, top.TYPO3.Components.PageTree.Tree);
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment