All operations except for preview are working

master
Mike Koch 7 years ago
parent d897fa2a4b
commit 3e7f000630
No known key found for this signature in database
GPG Key ID: 9BA5D7F8391455ED

@ -247,6 +247,10 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
<i class="fa fa-times-circle"></i> <i class="fa fa-times-circle"></i>
<span><?php echo $hesklang['cancel']; ?></span> <span><?php echo $hesklang['cancel']; ?></span>
</button> </button>
<button type="button" class="btn btn-primary preview-button">
<i class="fa fa-search"></i>
<span><?php echo $hesklang['sm_preview']; ?></span>
</button>
<button type="submit" class="btn btn-success save-button"> <button type="submit" class="btn btn-success save-button">
<i class="fa fa-check-circle"></i> <i class="fa fa-check-circle"></i>
<span><?php echo $hesklang['save']; ?></span> <span><?php echo $hesklang['save']; ?></span>
@ -262,6 +266,13 @@ echo mfh_get_hidden_fields_for_language(array(
'sm_published', 'sm_published',
'sm_draft', 'sm_draft',
'no_sm', 'no_sm',
'sm_added',
'sm_mdf',
'error_saving_updating_sm',
'sm_deleted',
'error_deleting_sm',
'error_sorting_categories',
'error_retrieving_sm',
)); ));
echo '<script>var users = [];'; echo '<script>var users = [];';

@ -81,14 +81,14 @@ class ServiceMessageHandler extends \BaseClass {
$serviceMessages = $this->serviceMessageGateway->getServiceMessages($heskSettings); $serviceMessages = $this->serviceMessageGateway->getServiceMessages($heskSettings);
$serviceMessage = null; $serviceMessage = null;
foreach ($serviceMessages as $innerServiceMessage) { foreach ($serviceMessages as $innerServiceMessage) {
if ($innerServiceMessage->id === intval($id)) { if (intval($innerServiceMessage->id) === intval($id)) {
$serviceMessage = $innerServiceMessage; $serviceMessage = $innerServiceMessage;
break; break;
} }
} }
if ($serviceMessage === null) { if ($serviceMessage === null) {
throw new \BaseException("Could not find category with ID {$id}!"); throw new \BaseException("Could not find service message with ID {$id}!");
} }
if ($direction === Direction::UP) { if ($direction === Direction::UP) {

@ -29,14 +29,16 @@ class ServiceMessagesController extends \BaseClass {
return output($element, 201); return output($element, 201);
} }
function put() { function put($id) {
global $applicationContext, $hesk_settings; global $applicationContext, $hesk_settings;
/* @var $handler ServiceMessageHandler */ /* @var $handler ServiceMessageHandler */
$handler = $applicationContext->get(ServiceMessageHandler::clazz()); $handler = $applicationContext->get(ServiceMessageHandler::clazz());
$data = JsonRetriever::getJsonData(); $data = JsonRetriever::getJsonData();
$element = $handler->editServiceMessage($this->buildElementModel($data, null, false), $hesk_settings); $serviceMessage = $this->buildElementModel($data, null, false);
$serviceMessage->id = $id;
$element = $handler->editServiceMessage($serviceMessage, $hesk_settings);
return output($element); return output($element);
} }
@ -61,7 +63,6 @@ class ServiceMessagesController extends \BaseClass {
$serviceMessage = new ServiceMessage(); $serviceMessage = new ServiceMessage();
if (!$creating) { if (!$creating) {
$serviceMessage->id = $data['id'];
$serviceMessage->order = $data['order']; $serviceMessage->order = $data['order'];
} }
@ -77,4 +78,13 @@ class ServiceMessagesController extends \BaseClass {
return $serviceMessage; return $serviceMessage;
} }
static function sort($id, $direction) {
global $applicationContext, $hesk_settings;
/* @var $handler ServiceMessageHandler */
$handler = $applicationContext->get(ServiceMessageHandler::clazz());
$handler->sortServiceMessage(intval($id), $direction, $hesk_settings);
}
} }

@ -57,7 +57,7 @@ class ServiceMessagesGateway extends CommonDao {
$serviceMessages = array(); $serviceMessages = array();
$rs = hesk_dbQuery("SELECT * FROM `". hesk_dbEscape($heskSettings['db_pfix']) . "service_messages` ORDER BY `id`"); $rs = hesk_dbQuery("SELECT * FROM `". hesk_dbEscape($heskSettings['db_pfix']) . "service_messages` ORDER BY `order`");
while ($row = hesk_dbFetchAssoc($rs)) { while ($row = hesk_dbFetchAssoc($rs)) {
$serviceMessage = new ServiceMessage(); $serviceMessage = new ServiceMessage();
$serviceMessage->id = $row['id']; $serviceMessage->id = $row['id'];
@ -88,14 +88,14 @@ class ServiceMessagesGateway extends CommonDao {
`message` = '" . hesk_dbEscape($serviceMessage->message) . "', `message` = '" . hesk_dbEscape($serviceMessage->message) . "',
`style` = '" . intval($style) . "', `style` = '" . intval($style) . "',
`type` = " . intval($type) . ", `type` = " . intval($type) . ",
`icon` = '" . hesk_dbEscape($serviceMessage->icon) . "' `icon` = '" . hesk_dbEscape($serviceMessage->icon) . "',
`order` = " . intval($serviceMessage->order) . "
WHERE `id` = " . intval($serviceMessage->id)); WHERE `id` = " . intval($serviceMessage->id));
$otherFieldsRs = hesk_dbQuery("SELECT `dt`, `author`, `order` FROM `" . hesk_dbEscape($heskSettings['db_pfix']) . "service_messages` $otherFieldsRs = hesk_dbQuery("SELECT `dt`, `author`, `order` FROM `" . hesk_dbEscape($heskSettings['db_pfix']) . "service_messages`
WHERE `id` = " . intval($serviceMessage->id)); WHERE `id` = " . intval($serviceMessage->id));
$otherFields = hesk_dbFetchAssoc($otherFieldsRs); $otherFields = hesk_dbFetchAssoc($otherFieldsRs);
$serviceMessage->order = intval($otherFields['order']);
$serviceMessage->createdBy = intval($otherFields['author']); $serviceMessage->createdBy = intval($otherFields['author']);
$serviceMessage->dateCreated = $otherFields['dt']; $serviceMessage->dateCreated = $otherFields['dt'];

@ -204,12 +204,12 @@ Link::all(array(
'/v1/settings' => action(\Controllers\Settings\SettingsController::clazz(), RequestMethod::all()), '/v1/settings' => action(\Controllers\Settings\SettingsController::clazz(), RequestMethod::all()),
// Service Messages // Service Messages
'/v1/service-messages' => action(\Controllers\ServiceMessages\ServiceMessagesController::clazz(), '/v1/service-messages' => action(\Controllers\ServiceMessages\ServiceMessagesController::clazz(),
array(RequestMethod::GET, RequestMethod::POST, RequestMethod::PUT), array(RequestMethod::GET, RequestMethod::POST),
SecurityHandler::INTERNAL_OR_AUTH_TOKEN), SecurityHandler::INTERNAL_OR_AUTH_TOKEN),
'/v1/service-messages/{i}' => action(\Controllers\ServiceMessages\ServiceMessagesController::clazz(), '/v1/service-messages/{i}' => action(\Controllers\ServiceMessages\ServiceMessagesController::clazz(),
array(RequestMethod::DELETE), array(RequestMethod::PUT, RequestMethod::DELETE),
SecurityHandler::INTERNAL_OR_AUTH_TOKEN), SecurityHandler::INTERNAL_OR_AUTH_TOKEN),
'/v1/service-messages/{i}/sort/{s}' => action(\Controllers\ServiceMessages\ServiceMessagesController::clazz() . '::sort', '/v1-internal/service-messages/{i}/sort/{s}' => action(\Controllers\ServiceMessages\ServiceMessagesController::clazz() . '::sort',
array(RequestMethod::POST), array(RequestMethod::POST),
SecurityHandler::INTERNAL), SecurityHandler::INTERNAL),

@ -14,6 +14,7 @@ $(document).ready(function() {
bindDeleteButton(); bindDeleteButton();
bindCreateModal(); bindCreateModal();
bindSortButtons(); bindSortButtons();
bindPreview();
}); });
@ -215,19 +216,16 @@ function bindFormSubmit() {
}, },
data: JSON.stringify(data), data: JSON.stringify(data),
success: function(data) { success: function(data) {
var format = undefined; if (serviceMessageId === -1) {
if (categoryId === -1) { mfhAlert.success(mfhLang.text('sm_added'));
format = mfhLang.html('cat_name_added');
mfhAlert.success(format.replace('%s', data.name));
} else { } else {
format = mfhLang.html('category_updated'); mfhAlert.success(mfhLang.text('sm_mdf'));
mfhAlert.success(format.replace('%s', data.name));
} }
$modal.modal('hide'); $modal.modal('hide');
loadTable(); loadTable();
}, },
error: function(data) { error: function(data) {
mfhAlert.errorWithLog(mfhLang.text('error_saving_updating_category'), data.responseJSON); mfhAlert.errorWithLog(mfhLang.text('error_saving_updating_sm'), data.responseJSON);
console.error(data); console.error(data);
}, },
complete: function(data) { complete: function(data) {
@ -243,55 +241,38 @@ function bindDeleteButton() {
$('#overlay').show(); $('#overlay').show();
var heskUrl = $('p#hesk-path').text(); var heskUrl = $('p#hesk-path').text();
var element = categories[$(this).parent().parent().find('[data-property="id"]').text()]; var element = serviceMessages[$(this).parent().parent().find('[data-property="id"]').data('value')];
$.ajax({ $.ajax({
method: 'POST', method: 'POST',
url: heskUrl + 'api/index.php/v1/categories/' + element.id, url: heskUrl + 'api/index.php/v1/service-messages/' + element.id,
headers: { headers: {
'X-Internal-Call': true, 'X-Internal-Call': true,
'X-HTTP-Method-Override': 'DELETE' 'X-HTTP-Method-Override': 'DELETE'
}, },
success: function() { success: function() {
mfhAlert.success(mfhLang.text('cat_removed')); mfhAlert.success(mfhLang.text('sm_deleted'));
loadTable(); loadTable();
}, },
error: function(data) { error: function(data) {
$('#overlay').hide(); $('#overlay').hide();
mfhAlert.errorWithLog(mfhLang.text('error_deleting_category'), data.responseJSON); mfhAlert.errorWithLog(mfhLang.text('error_deleting_sm'), data.responseJSON);
console.error(data); console.error(data);
} }
}); });
}); });
} }
function bindGenerateLinkModal() {
var $modal = $('#generate-link-modal');
$modal.find('.input-group-addon').click(function() {
clipboard.copy($modal.find('input[type="text"]').val());
mfhAlert.success(mfhLang.text('copied_to_clipboard'));
});
$(document).on('click', '[data-property="generate-link"] i.fa-code', function () {
var heskUrl = $('p#hesk-url').text();
var url = heskUrl + '/index.php?a=add&catid=' + $(this).parent().data('category-id');
$modal.find('input[type="text"]').val(url).end().modal('show');
});
}
function bindSortButtons() { function bindSortButtons() {
$(document).on('click', '[data-action="sort"]', function() { $(document).on('click', '[data-action="sort"]', function() {
$('#overlay').show(); $('#overlay').show();
var heskUrl = $('p#hesk-path').text(); var heskUrl = $('p#hesk-path').text();
var direction = $(this).data('direction'); var direction = $(this).data('direction');
var element = categories[$(this).parent().parent().parent().find('[data-property="id"]').text()]; var element = serviceMessages[$(this).parent().parent().parent().find('[data-property="id"]').data('value')];
$.ajax({ $.ajax({
method: 'POST', method: 'POST',
url: heskUrl + 'api/index.php/v1-internal/categories/' + element.id + '/sort/' + direction, url: heskUrl + 'api/index.php/v1-internal/service-messages/' + element.id + '/sort/' + direction,
headers: { 'X-Internal-Call': true }, headers: { 'X-Internal-Call': true },
success: function() { success: function() {
loadTable(); loadTable();
@ -304,3 +285,19 @@ function bindSortButtons() {
}) })
}); });
} }
function bindPreview() {
$('#preview-button').click(function() {
var $modal = $('#service-message-modal');
var data = {
icon: $modal.find('input[name="icon"]').val(),
title: $modal.find('input[name="title"]').val(),
message: tinyMCE.get('content').getContent(),
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()
};
getServiceMessagePreview(data.icon, data.title, data.message, data.style);
});
}

@ -2217,6 +2217,9 @@ $hesklang['audit_unlinked_ticket'] = '%s unlinked ticket %s';
// Added or modified in Mods for HESK 3.3.0 // Added or modified in Mods for HESK 3.3.0
$hesklang['error_retrieving_sm'] = 'An error occurred retrieving service messages!'; $hesklang['error_retrieving_sm'] = 'An error occurred retrieving service messages!';
$hesklang['error_saving_updating_sm'] = 'An error occurred creating / saving the service message!';
$hesklang['error_deleting_sm'] = 'An error occurred when trying to delete the service message.';
$hesklang['error_sorting_sm'] = 'An error occurred sorting service messages!';
// DO NOT CHANGE BELOW // DO NOT CHANGE BELOW
if (!defined('IN_SCRIPT')) die('PHP syntax OK!'); if (!defined('IN_SCRIPT')) die('PHP syntax OK!');

Loading…
Cancel
Save