Localized some stuff, add descriptions to create ticket pages

master
Mike Koch 7 years ago
parent 45726bd388
commit 02d965e2d9
No known key found for this signature in database
GPG Key ID: 9BA5D7F8391455ED

@ -375,8 +375,8 @@ $res = hesk_dbQuery("SELECT * FROM `" . hesk_dbEscape($hesk_settings['db_pfix'])
<i class="fa fa-info-circle" data-toggle="popover" title="<?php echo $hesklang['description']; ?>"></i> <i class="fa fa-info-circle" data-toggle="popover" title="<?php echo $hesklang['description']; ?>"></i>
</td> </td>
<td> <td>
<i style="display: none" class="fa fa-fw fa-lock icon-link gray"></i> <i style="display: none; padding-right: 8px;" class="fa fa-fw fa-lock icon-link gray"></i>
<i style="display: none" class="fa fa-fw fa-unlock-alt icon-link blue"></i> <i style="display: none; padding-right: 8px;" class="fa fa-fw fa-unlock-alt icon-link blue"></i>
<span data-property="type"></span> <span data-property="type"></span>
</td> </td>
<td> <td>
@ -437,6 +437,11 @@ echo mfh_get_hidden_fields_for_language(array(
'cat_public', 'cat_public',
'cat_removed', 'cat_removed',
'error_deleting_category', 'error_deleting_category',
'error_retrieving_categories',
'error_saving_updating_category',
'copied_to_clipboard',
'category_updated',
'cat_name_added',
'enabled_title_case', 'enabled_title_case',
'disabled_title_case', 'disabled_title_case',
'geco', 'geco',

@ -113,13 +113,13 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
$hesk_settings['categories'] = array(); $hesk_settings['categories'] = array();
if (hesk_checkPermission('can_submit_any_cat', 0)) { if (hesk_checkPermission('can_submit_any_cat', 0)) {
$res = hesk_dbQuery("SELECT `id`, `name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` ORDER BY `cat_order` ASC"); $res = hesk_dbQuery("SELECT `id`, `name`, `mfh_description` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` ORDER BY `cat_order` ASC");
} else { } else {
$res = hesk_dbQuery("SELECT `id`, `name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` WHERE ".hesk_myCategories('id')." ORDER BY `cat_order` ASC"); $res = hesk_dbQuery("SELECT `id`, `name`, `mfh_description` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` WHERE ".hesk_myCategories('id')." ORDER BY `cat_order` ASC");
} }
while ($row = hesk_dbFetchAssoc($res)) { while ($row = hesk_dbFetchAssoc($res)) {
$hesk_settings['categories'][$row['id']] = $row['name']; $hesk_settings['categories'][$row['id']] = $row;
} }
$number_of_categories = count($hesk_settings['categories']); $number_of_categories = count($hesk_settings['categories']);
@ -147,7 +147,7 @@ $show_quick_help = $show['show'];
<li><a href="admin_main.php"><?php echo $hesk_settings['hesk_title']; ?></a></li> <li><a href="admin_main.php"><?php echo $hesk_settings['hesk_title']; ?></a></li>
<?php if ($number_of_categories > 1): ?> <?php if ($number_of_categories > 1): ?>
<li><a href="new_ticket.php"><?php echo $hesklang['nti2']; ?></a></li> <li><a href="new_ticket.php"><?php echo $hesklang['nti2']; ?></a></li>
<li class="active"><?php echo $hesk_settings['categories'][$category]; ?></li> <li class="active"><?php echo $hesk_settings['categories'][$category]['name']; ?></li>
<?php else: ?> <?php else: ?>
<li class="active"><?php echo $hesklang['nti2']; ?></li> <li class="active"><?php echo $hesklang['nti2']; ?></li>
<?php endif; ?> <?php endif; ?>
@ -1038,9 +1038,10 @@ function print_select_category($number_of_categories) {
// Print a select box if number of categories is large // Print a select box if number of categories is large
if ($number_of_categories > $hesk_settings['cat_show_select']) if ($number_of_categories > $hesk_settings['cat_show_select'])
{ {
$firstDescription = null;
?> ?>
<form action="new_ticket.php" method="get"> <form action="new_ticket.php" method="get">
<select name="category" id="select_category" class="form-control"> <select name="category" id="select_category" class="form-control" onchange="showDescription()">
<?php <?php
if ($hesk_settings['select_cat']) if ($hesk_settings['select_cat'])
{ {
@ -1048,23 +1049,45 @@ function print_select_category($number_of_categories) {
} }
foreach ($hesk_settings['categories'] as $k=>$v) foreach ($hesk_settings['categories'] as $k=>$v)
{ {
echo '<option value="'.$k.'">'.$v.'</option>'; if ($firstDescription === null) {
$firstDescription = $v['mfh_description'];
}
echo '<option value="'.$k.'" data-description="'.$v['mfh_description'].'">'.$v['name'].'</option>';
} }
?> ?>
</select> </select>
<?php
$display = ' style="display: none"';
&nbsp;<br /> if (!$hesk_settings['select_cat'] && $firstDescription !== null && trim($firstDescription) !== '') {
$display = '';
}
?>
<span id="category-description"<?php echo $display; ?>>
<b><?php echo $hesklang['description_colon']; ?></b>
<span><?php echo $firstDescription; ?></span>
</span>
<br>
<div style="text-align:center"> <div style="text-align:center">
<input type="submit" value="<?php echo $hesklang['c2c']; ?>" class="btn btn-default"> <input type="submit" value="<?php echo $hesklang['c2c']; ?>" class="btn btn-default">
</div> </div>
</form> </form>
<script>
function showDescription() {
var $value = $('#select_category').find(':selected');
if ($value.data('description') !== '') {
$('#category-description').show().find('span').text($value.data('description'));
} else {
$('#category-description').hide();
}
}
</script>
<?php <?php
} }
// Otherwise print quick links // Otherwise print quick links
else else
{ {
// echo '<li><a href="new_ticket.php?a=add&amp;category='.$k.'">&raquo; '.$v.'</a></li>';
$new_row = 1; $new_row = 1;
foreach ($hesk_settings['categories'] as $k=>$v): foreach ($hesk_settings['categories'] as $k=>$v):
@ -1079,7 +1102,14 @@ function print_select_category($number_of_categories) {
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-xs-12"> <div class="col-xs-12">
<?php echo $v; ?> <?php
echo $v['name'];
if ($v['mfh_description'] !== null && trim($v['mfh_description']) !== '') {
echo '&nbsp;<i class="fa fa-info-circle" data-toggle="popover"
title="'. $hesklang['description'] .'" data-content="' . $v['mfh_description'] . '"></i>';
}
?>
</div> </div>
</div> </div>
</div> </div>

@ -87,9 +87,10 @@ function print_select_category($number_of_categories)
// Print a select box if number of categories is large // Print a select box if number of categories is large
if ($number_of_categories > $hesk_settings['cat_show_select']) if ($number_of_categories > $hesk_settings['cat_show_select'])
{ {
$firstDescription = null;
?> ?>
<form action="index.php" method="get"> <form action="index.php" method="get">
<select name="category" id="select_category" class="form-control"> <select name="category" id="select_category" class="form-control" onchange="showDescription()">
<?php <?php
if ($hesk_settings['select_cat']) if ($hesk_settings['select_cat'])
{ {
@ -97,17 +98,40 @@ function print_select_category($number_of_categories)
} }
foreach ($hesk_settings['categories'] as $k=>$v) foreach ($hesk_settings['categories'] as $k=>$v)
{ {
echo '<option value="'.$k.'">'.$v.'</option>'; if ($firstDescription === null) {
$firstDescription = $v['mfh_description'];
}
echo '<option value="'.$k.'" data-description="'.$v['mfh_description'].'">'.$v['name'].'</option>';
} }
?> ?>
</select> </select>
<?php
$display = ' style="display: none"';
&nbsp;<br /> if (!$hesk_settings['select_cat'] && $firstDescription !== null && trim($firstDescription) !== '') {
$display = '';
}
?>
<span id="category-description"<?php echo $display; ?>>
<b><?php echo $hesklang['description_colon']; ?></b>
<span><?php echo $firstDescription; ?></span>
</span>
<br>
<div style="text-align:center"> <div style="text-align:center">
<input type="submit" value="<?php echo $hesklang['c2c']; ?>" class="btn btn-default"> <input type="submit" value="<?php echo $hesklang['c2c']; ?>" class="btn btn-default">
<input type="hidden" name="a" value="add" /> <input type="hidden" name="a" value="add" />
</div> </div>
<script>
function showDescription() {
var $value = $('#select_category').find(':selected');
if ($value.data('description') !== '') {
$('#category-description').show().find('span').text($value.data('description'));
} else {
$('#category-description').hide();
}
}
</script>
</form> </form>
<?php <?php
} }
@ -128,7 +152,14 @@ function print_select_category($number_of_categories)
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-xs-12"> <div class="col-xs-12">
<?php echo $v; ?> <?php
echo $v['name'];
if ($v['mfh_description'] !== null && trim($v['mfh_description']) !== '') {
echo '&nbsp;<i class="fa fa-info-circle" data-toggle="popover"
title="'. $hesklang['description'] .'" data-content="' . $v['mfh_description'] . '"></i>';
}
?>
</div> </div>
</div> </div>
</div> </div>
@ -220,9 +251,9 @@ function print_add_ticket()
// Get categories // Get categories
$hesk_settings['categories'] = array(); $hesk_settings['categories'] = array();
$res = hesk_dbQuery("SELECT `id`, `name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` WHERE `type`='0' ORDER BY `cat_order` ASC"); $res = hesk_dbQuery("SELECT `id`, `name`, `mfh_description` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` WHERE `type`='0' ORDER BY `cat_order` ASC");
while ($row=hesk_dbFetchAssoc($res)) { while ($row=hesk_dbFetchAssoc($res)) {
$hesk_settings['categories'][$row['id']] = $row['name']; $hesk_settings['categories'][$row['id']] = $row;
} }
$number_of_categories = count($hesk_settings['categories']); $number_of_categories = count($hesk_settings['categories']);
@ -254,7 +285,7 @@ function print_add_ticket()
<?php echo $hesklang['sub_support']; ?> <?php echo $hesklang['sub_support']; ?>
</a> </a>
</li> </li>
<li class="active"><?php echo $hesk_settings['categories'][$category]; ?></li> <li class="active"><?php echo $hesk_settings['categories'][$category]['name']; ?></li>
<?php } else { ?> <?php } else { ?>
<li class="active"><?php echo $hesklang['sub_support']; ?></li> <li class="active"><?php echo $hesklang['sub_support']; ?></li>
<?php } ?> <?php } ?>

@ -1130,4 +1130,14 @@ function execute311Scripts() {
hesk_dbConnect(); hesk_dbConnect();
updateVersion('3.1.1'); updateVersion('3.1.1');
}
function execute320Scripts() {
global $hesk_settings;
hesk_dbConnect();
executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories`
ADD COLUMN `mfh_description` VARCHAR(255)");
updateVersion('3.2.0');
} }

@ -1,5 +1,8 @@
var mfhLang = { var mfhLang = {
text: function(key) { text: function(key) {
return $('#lang_' + key).text(); return $('#lang_' + key).text();
},
html: function(key) {
return $('#lang_' + key).html()
} }
}; };

@ -25,7 +25,7 @@ function loadTable() {
$tableBody.html(''); $tableBody.html('');
if (data.length === 0) { if (data.length === 0) {
mfhAlert.error("I couldn't find any categories :(", "No categories found"); mfhAlert.error("No categories were found. This shouldn't happen.", "No categories found");
$('#overlay').hide(); $('#overlay').hide();
return; return;
} }
@ -138,7 +138,7 @@ function loadTable() {
} }
}, },
error: function(data) { error: function(data) {
mfhAlert.errorWithLog(mfhLang.text('Something bad happened...'), data.responseJSON); mfhAlert.errorWithLog(mfhLang.text('error_retrieving_categories'), data.responseJSON);
console.error(data); console.error(data);
}, },
complete: function() { complete: function() {
@ -288,16 +288,19 @@ function bindFormSubmit() {
}, },
data: JSON.stringify(data), data: JSON.stringify(data),
success: function(data) { success: function(data) {
var format = undefined;
if (categoryId === -1) { if (categoryId === -1) {
mfhAlert.success('CREATED'); format = mfhLang.html('cat_name_added');
mfhAlert.success(format.replace('%s', data.name));
} else { } else {
mfhAlert.success('SAVED'); format = mfhLang.html('category_updated');
mfhAlert.success(format.replace('%s', data.name));
} }
$modal.modal('hide'); $modal.modal('hide');
loadTable(); loadTable();
}, },
error: function(data) { error: function(data) {
mfhAlert.errorWithLog('ERROR SAVING/CREATING', data.responseJSON); mfhAlert.errorWithLog(mfhLang.text('error_saving_updating_category'), data.responseJSON);
console.error(data); console.error(data);
}, },
complete: function(data) { complete: function(data) {
@ -340,7 +343,7 @@ function bindGenerateLinkModal() {
$modal.find('.input-group-addon').click(function() { $modal.find('.input-group-addon').click(function() {
clipboard.copy($modal.find('input[type="text"]').val()); clipboard.copy($modal.find('input[type="text"]').val());
mfhAlert.success('Copied to clipboard', 'Success'); mfhAlert.success(mfhLang.text('copied_to_clipboard'));
}); });
$(document).on('click', '[data-property="generate-link"] i.fa-code', function () { $(document).on('click', '[data-property="generate-link"] i.fa-code', function () {

@ -2178,6 +2178,10 @@ $hesklang['cat_private'] = 'Private';
$hesklang['cat_public'] = 'Public'; $hesklang['cat_public'] = 'Public';
$hesklang['cat_name_description'] = 'Name / Description'; $hesklang['cat_name_description'] = 'Name / Description';
$hesklang['error_sorting_categories'] = 'An error occurred sorting categories!'; $hesklang['error_sorting_categories'] = 'An error occurred sorting categories!';
$hesklang['error_retrieving_categories'] = 'An error occurred retrieving categories!';
$hesklang['error_saving_updating_category'] = 'An error occurred creating / saving the category!';
$hesklang['description_colon'] = 'Description:'; // Same as 'description', but with a colon (:) afterwards
$hesklang['copied_to_clipboard'] = 'Copied to clipboard';
// 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