Add language property to service messages
This commit is contained in:
parent
3e82065fa4
commit
36295d1861
@ -102,6 +102,7 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
||||
<th style="display: none"><?php echo $hesklang['id']; ?></th>
|
||||
<th><?php echo $hesklang['sm_mtitle']; ?></th>
|
||||
<th><?php echo $hesklang['sm_author']; ?></th>
|
||||
<th><?php echo $hesklang['lgs']; ?></th>
|
||||
<th><?php echo $hesklang['sm_type']; ?></th>
|
||||
<th><?php echo $hesklang['opt']; ?></th>
|
||||
</tr>
|
||||
@ -131,11 +132,11 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
||||
<form id="service-message" class="form-horizontal" data-toggle="validator" method="post">
|
||||
<div class="modal-body">
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li role="presentation" class="active"><a href="#contents" role="tab" data-toggle="tab">Contents</a></li>
|
||||
<li role="presentation" class="active"><a href="#sm-contents" role="tab" data-toggle="tab">Contents</a></li>
|
||||
<li role="presentation"><a href="#properties" role="tab" data-toggle="tab">Properties</a></li>
|
||||
</ul><br>
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="contents">
|
||||
<div role="tabpanel" class="tab-pane active" id="sm-contents">
|
||||
<div class="form-group">
|
||||
<label for="title"
|
||||
class="col-md-2 control-label"><?php echo $hesklang['sm_mtitle']; ?></label>
|
||||
@ -364,6 +365,7 @@ echo mfh_get_hidden_fields_for_language(array(
|
||||
'error_deleting_sm',
|
||||
'error_sorting_categories',
|
||||
'error_retrieving_sm',
|
||||
'all',
|
||||
));
|
||||
|
||||
echo '<script>var users = [];';
|
||||
@ -376,6 +378,11 @@ while ($row = hesk_dbFetchAssoc($usersRs)) {
|
||||
name: '".$row['name']."'
|
||||
}\n";
|
||||
}
|
||||
echo "
|
||||
var languages = [];\n";
|
||||
foreach ($hesk_settings['languages'] as $key => $value) {
|
||||
echo "languages[" . json_encode($value['folder']) . "] = " . json_encode($key) . ";\n";
|
||||
}
|
||||
echo '</script>';
|
||||
?>
|
||||
<script type="text/html" id="service-message-title-template">
|
||||
@ -400,6 +407,7 @@ echo '</script>';
|
||||
<td style="display: none"><span data-property="id" data-value="x"></span></td>
|
||||
<td><span data-property="title"></span></td>
|
||||
<td><span data-property="author"></span></td>
|
||||
<td><span data-property="language"></span></td>
|
||||
<td><span data-property="type"></span></td>
|
||||
<td>
|
||||
<span class="sort-arrows">
|
||||
|
@ -33,4 +33,7 @@ class ServiceMessage extends \BaseClass {
|
||||
|
||||
/* @var $locations string[] */
|
||||
public $locations;
|
||||
|
||||
/* @var $language string */
|
||||
public $language;
|
||||
}
|
@ -118,6 +118,20 @@ class ServiceMessageHandler extends \BaseClass {
|
||||
$htmlPurifier = new \HeskHTMLPurifier($heskSettings['cache_dir']);
|
||||
$serviceMessage->message = $htmlPurifier->heskPurify($serviceMessage->message);
|
||||
}
|
||||
if ($serviceMessage->language === null || trim($serviceMessage->language) === '') {
|
||||
$validationModel->errorKeys[] = 'MISSING_LANGUAGE';
|
||||
}
|
||||
|
||||
$languageFound = false;
|
||||
foreach ($heskSettings['languages'] as $key => $value) {
|
||||
if ($value['folder'] === $serviceMessage->language || $serviceMessage->language === 'ALL') {
|
||||
$languageFound = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$languageFound) {
|
||||
$validationModel->errorKeys[] = 'LANGUAGE_NOT_INSTALLED';
|
||||
}
|
||||
|
||||
if ($serviceMessage->title === null || trim($serviceMessage->title) === '') {
|
||||
$validationModel->errorKeys[] = 'MISSING_TITLE';
|
||||
|
@ -76,6 +76,7 @@ class ServiceMessagesController extends \BaseClass {
|
||||
$serviceMessage->message = Helpers::safeArrayGet($data, 'message');
|
||||
$serviceMessage->published = Helpers::safeArrayGet($data, 'published');
|
||||
$serviceMessage->style = Helpers::safeArrayGet($data, 'style');
|
||||
$serviceMessage->language = Helpers::safeArrayGet($data, 'language');
|
||||
|
||||
$jsonLocations = Helpers::safeArrayGet($data, 'locations');
|
||||
|
||||
|
@ -24,14 +24,15 @@ class ServiceMessagesGateway extends CommonDao {
|
||||
$type = $serviceMessage->published ? 0 : 1;
|
||||
|
||||
// Insert service message into database
|
||||
hesk_dbQuery("INSERT INTO `" . hesk_dbEscape($heskSettings['db_pfix']) . "service_messages` (`author`,`title`,`message`,`style`,`type`,`order`, `icon`) VALUES (
|
||||
hesk_dbQuery("INSERT INTO `" . hesk_dbEscape($heskSettings['db_pfix']) . "service_messages` (`author`,`title`,`message`,`style`,`type`,`order`, `icon`, `mfh_language`) VALUES (
|
||||
'" . intval($serviceMessage->createdBy) . "',
|
||||
'" . hesk_dbEscape($serviceMessage->title) . "',
|
||||
'" . hesk_dbEscape($serviceMessage->message) . "',
|
||||
'" . hesk_dbEscape($style) . "',
|
||||
'{$type}',
|
||||
'{$myOrder}',
|
||||
'" . hesk_dbEscape($serviceMessage->icon) . "'
|
||||
'" . hesk_dbEscape($serviceMessage->icon) . "',
|
||||
'" . hesk_dbEscape($serviceMessage->language) . "',
|
||||
)");
|
||||
|
||||
$serviceMessage->id = hesk_dbInsertID();
|
||||
@ -74,6 +75,7 @@ class ServiceMessagesGateway extends CommonDao {
|
||||
$serviceMessage->message = $row['message'];
|
||||
$serviceMessage->style = ServiceMessageStyle::getStyleById($row['style']);
|
||||
$serviceMessage->icon = $row['icon'];
|
||||
$serviceMessage->language = $row['mfh_language'];
|
||||
$serviceMessage->locations = array();
|
||||
|
||||
$locationsRs = hesk_dbQuery("SELECT `location` FROM `" . hesk_dbEscape($heskSettings['db_pfix']) . "mfh_service_message_to_location`
|
||||
@ -102,7 +104,8 @@ class ServiceMessagesGateway extends CommonDao {
|
||||
`style` = '" . intval($style) . "',
|
||||
`type` = " . intval($type) . ",
|
||||
`icon` = '" . hesk_dbEscape($serviceMessage->icon) . "',
|
||||
`order` = " . intval($serviceMessage->order) . "
|
||||
`order` = " . intval($serviceMessage->order) . ",
|
||||
`mfh_language` = '" . hesk_dbEscape($serviceMessage->language) . "'
|
||||
WHERE `id` = " . intval($serviceMessage->id));
|
||||
|
||||
hesk_dbQuery("DELETE FROM `" . hesk_dbEscape($heskSettings['db_pfix']) . "mfh_service_message_to_location`
|
||||
|
@ -50,6 +50,9 @@ function loadTable() {
|
||||
} else {
|
||||
$template.find('span[data-property="type"]').text(mfhLang.text('sm_draft'));
|
||||
}
|
||||
$template.find('[data-property="language"]').text(this.language === 'ALL' ?
|
||||
mfhLang.text('all') :
|
||||
languages[this.language]);
|
||||
|
||||
$tableBody.append($template);
|
||||
|
||||
@ -148,7 +151,8 @@ function bindEditModal() {
|
||||
.prop('checked', 'checked').end()
|
||||
.find('input[name="title"]').val(element.title).end()
|
||||
.find('input[name="id"]').val(element.id).end()
|
||||
.find('input[name="order"]').val(element.order).end();
|
||||
.find('input[name="order"]').val(element.order).end()
|
||||
.find('select[name="language"]').val(element.language).end();
|
||||
setIcon(element.icon);
|
||||
|
||||
$.each(element.locations, function() {
|
||||
@ -161,6 +165,11 @@ function bindEditModal() {
|
||||
$('textarea[name="message"]').val(element.message);
|
||||
}
|
||||
|
||||
$('.tab-pane#sm-contents').addClass('active');
|
||||
$('.tab-pane#properties').removeClass('active');
|
||||
$('.nav-tabs > li').removeClass('active');
|
||||
$('.nav-tabs > li:first').addClass('active');
|
||||
|
||||
|
||||
$modal.modal('show');
|
||||
});
|
||||
@ -177,7 +186,8 @@ function bindCreateModal() {
|
||||
.find('input[name="id"]').val(-1).end()
|
||||
.find('input[name="order"]').val('').end()
|
||||
.find('#preview-pane').html('').end()
|
||||
.find('input[name="location[]"]').prop('checked', false);
|
||||
.find('input[name="location[]"]').prop('checked', false)
|
||||
.find('select[name="language"]').val('ALL');
|
||||
setIcon('');
|
||||
|
||||
if ($('input[name="kb_wysiwyg"]').val() === "1") {
|
||||
@ -186,6 +196,11 @@ function bindCreateModal() {
|
||||
$('textarea[name="message"]').val('');
|
||||
}
|
||||
|
||||
$('.tab-pane#sm-contents').addClass('active');
|
||||
$('.tab-pane#properties').removeClass('active');
|
||||
$('.nav-tabs > li').removeClass('active');
|
||||
$('.nav-tabs > li:first').addClass('active');
|
||||
|
||||
$modal.modal('show');
|
||||
});
|
||||
}
|
||||
@ -218,6 +233,7 @@ function bindFormSubmit() {
|
||||
published: $modal.find('input[name="type"]:checked').val() === "0",
|
||||
style: styles[$modal.find('input[name="style"]:checked').val()],
|
||||
order: $modal.find('input[name="order"]').val(),
|
||||
language: $modal.find('select[name="language"]').val(),
|
||||
locations: locations
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user