-
-
-
-
-
-
-
-
-
-
+
-
()
-
+
+
+
+
+ '.$hesklang['nosr'].'';
+ $show_default_category = true;
+ } else {
+ ?>
+
+ '.$hesklang['nosr'].' ';
- hesk_show_kb_category(1,1);
- }
- else
- {
-?>
-
-
-
-
-
- ' . mfh_get_stars($article['rating']) . '';
+ }
+ else
+ {
+ $rat = '';
+ }
- if ($hesk_settings['kb_rating'])
- {
- $alt = $article['rating'] ? sprintf($hesklang['kb_rated'], sprintf("%01.1f", $article['rating'])) : $hesklang['kb_not_rated'];
- $rat = ' ';
- }
- else
- {
- $rat = '';
- }
-
- echo '
+ echo '
@@ -207,18 +203,16 @@ function hesk_kb_search($query)
';
- }
- ?>
-
-
-
-
-
-
-
+ }
+ ?>
+
+
+
+
+
+
'.$article['subject'].'
-
+?>
+
+
+ '.$hesklang['as'].'
- '. $article['content'];
-
- if ( ! empty($article['attachments']))
- {
- echo ''.$hesklang['attachments'].': ';
- $att=explode(',',substr($article['attachments'], 0, -1));
- foreach ($att as $myatt)
- {
- list($att_id, $att_name) = explode('#', $myatt);
- echo ' '.$att_name.' ';
+ if ($article['catid']==1)
+ {
+ $link = 'knowledgebase_private.php';
}
- echo '
';
- }
+ else
+ {
+ $link = 'knowledgebase_private.php?category='.$article['catid'];
+ }
+ ?>
+
+
+
-
-
-
+
+
+
+
+
+
+ :
+
+
+
+ :
+
+
+
+ :
+
+
+
+ :
+
+
+
+
+
+
+
+
+
+
- // Stop when articles reach less than 10% of base score
- if ($related['score'] / $base_score < 0.10)
- {
- break;
- }
-
- // This is a valid related article
- $related_articles[$related['id']] = $related['subject'];
- }
-
- // Print related articles if we have any valid matches
- if ( count($related_articles) ) {
- $column = 'col-md-6';
- $showRelated = true;
- }
- ?>
-
-
-
-
-
- :
-
-
-
- :
-
-
-
- :
-
-
-
- :
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+'.$hesklang['kb_cat'].': '.$thiscat['name'].'
- '.$hesklang['back'].'
- ';
- }
-
- $result = hesk_dbQuery("SELECT `id`,`name`,`articles`,`type` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_categories` WHERE `parent`='".intval($catid)."' ORDER BY `parent` ASC, `cat_order` ASC");
- if (hesk_dbNumRows($result) > 0)
- {
- ?>
-
-
-
-
-
-
-
-
-
-
+?>
+
+
+
+
+
+
+
';
- }
+ if (hesk_dbNumRows($result) > 0) {
+ ?>
+
+
+
+
+ ';
+ }
+
+ $private = ($cat['type'] == 1) ? ' *' : '';
+
+ echo '
'.$cat['name'].' '.$private.'
';
- /* Print most popular/sticky articles */
- if ($hesk_settings['kb_numshow'] && $cat['articles'])
- {
- $res = hesk_dbQuery("SELECT `id`,`subject`,`type` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_articles` WHERE `catid`='".intval($cat['id'])."' AND `type` IN ('0','1') ORDER BY `sticky` DESC, `views` DESC, `art_order` ASC LIMIT " . (intval($hesk_settings['kb_numshow']) + 1) );
- $num = 1;
- while ($art = hesk_dbFetchAssoc($res))
- {
- $private = ($art['type'] == 1) ? ' *' : '';
- echo '
+ /* Print most popular/sticky articles */
+ if ($hesk_settings['kb_numshow'] && $cat['articles'])
+ {
+ $res = hesk_dbQuery("SELECT `id`,`subject`,`type` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_articles` WHERE `catid`='".intval($cat['id'])."' AND `type` IN ('0','1') ORDER BY `sticky` DESC, `views` DESC, `art_order` ASC LIMIT " . (intval($hesk_settings['kb_numshow']) + 1) );
+ $num = 1;
+ while ($art = hesk_dbFetchAssoc($res))
+ {
+ $private = ($art['type'] == 1) ? ' *' : '';
+ echo '
'.$art['subject'].' '.$private.'
';
- if ($num == $hesk_settings['kb_numshow'])
- {
- break;
- }
- else
- {
- $num++;
- }
- }
- if (hesk_dbNumRows($res) > $hesk_settings['kb_numshow'])
- {
- echo '» '.$hesklang['m'].' ';
- }
- }
+ if ($num == $hesk_settings['kb_numshow'])
+ {
+ break;
+ }
+ else
+ {
+ $num++;
+ }
+ }
+ if (hesk_dbNumRows($res) > $hesk_settings['kb_numshow'])
+ {
+ echo '» '.$hesklang['m'].' ';
+ }
+ }
- echo '
+ echo '
';
- if ($i == $per_col)
- {
- echo '';
- $i = 0;
- }
- $i++;
- }
- /* Finish the table if needed */
- if ($i != 1)
- {
- for ($j=1;$j<=$per_col;$j++)
- {
- echo ' ';
- if ($i == $per_col)
- {
- echo '';
- break;
- }
- $i++;
- }
- }
+ if ($i == $per_col)
+ {
+ echo '';
+ $i = 0;
+ }
+ $i++;
+ }
+ /* Finish the table if needed */
+ if ($i != 1)
+ {
+ for ($j=1;$j<=$per_col;$j++)
+ {
+ echo ' ';
+ if ($i == $per_col)
+ {
+ echo '';
+ break;
+ }
+ $i++;
+ }
+ }
- ?>
-
+ ?>
+
+
+
+
+
+
+
+
+ '.$hesklang['noac'].'';
+ }
+ else
+ {
+ echo '
';
+ while ($article = hesk_dbFetchAssoc($res))
+ {
+ $private = ($article['type'] == 1) ? ' *' : '';
-
-
-
+ $txt = hesk_kbArticleContentPreview($article['content']);
- 0
- ?>
-
-
-
-
-
-
-
-
- '.$hesklang['noac'].' ';
- }
- else
- {
- echo '';
- while ($article = hesk_dbFetchAssoc($res))
- {
- $private = ($article['type'] == 1) ? ' *' : '';
-
- $txt = hesk_kbArticleContentPreview($article['content']);
-
- echo '
+ echo '
@@ -528,14 +556,16 @@ function hesk_show_kb_category($catid, $is_search = 0) {
';
- }
- echo '
';
- }
- ?>
-
-
-
-
+ }
+ echo '
';
+ }
+ ?>
+
+
+
+
-
-
-
-
-
- ' . $hesk_settings['mailtmp']['inbox'] . '
- ' . $hesk_settings['mailtmp']['outbox'] . '
- ' . $hesk_settings['mailtmp']['new'] . ' ';
- ?>
-
+
+
'.$admins[$pm[$hesk_settings['mailtmp']['other']]].'' : (($pm['from'] == 9999) ? '
HESK.com ' : $hesklang['e_udel']);
-
- echo $pm['dt'];
$pm['dt'] = hesk_dateToString($pm['dt'],0,1,0,true);
?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
';
}
-echo '
- ';
+echo '';
function hesk_print_list_head()
diff --git a/inc/view_attachment_functions.inc.php b/inc/view_attachment_functions.inc.php
index d2d82586..a65c00e6 100644
--- a/inc/view_attachment_functions.inc.php
+++ b/inc/view_attachment_functions.inc.php
@@ -14,7 +14,6 @@ function mfh_listAttachments($attachments = '', $reply = 0, $is_staff)
}
/* List attachments */
- echo '' . $hesklang['attachments'] . ':
';
$att = explode(',', substr($attachments, 0, -1));
echo '';
echo '
';
diff --git a/internal-api/js/admin-ticket.js b/internal-api/js/admin-ticket.js
index aa15754a..1d278e42 100644
--- a/internal-api/js/admin-ticket.js
+++ b/internal-api/js/admin-ticket.js
@@ -1,8 +1,7 @@
$(document).ready(function() {
var $readonlyDueDateContainer = $('#readonly-due-date');
var $editableDueDateContainer = $('#editable-due-date');
- var $dueDateButton = $('#due-date-button');
- $dueDateButton.click(function() {
+ $readonlyDueDateContainer.click(function() {
$readonlyDueDateContainer.hide();
$editableDueDateContainer.show();
if ($readonlyDueDateContainer.find('span#due-date').text().trim() == 'None') {
@@ -37,4 +36,9 @@ $(document).ready(function() {
}
});
});
+
+ $('#related-tickets-link').click(function() {
+ $(this).hide();
+ $('.related-ticket').show();
+ })
});
\ No newline at end of file
diff --git a/js/adminlte.min.js b/js/adminlte.min.js
new file mode 100755
index 00000000..def8a04b
--- /dev/null
+++ b/js/adminlte.min.js
@@ -0,0 +1,13 @@
+/*! AdminLTE app.js
+ * ================
+ * Main JS application file for AdminLTE v2. This file
+ * should be included in all pages. It controls some layout
+ * options and implements exclusive AdminLTE plugins.
+ *
+ * @Author Almsaeed Studio
+ * @Support
+ * @Email
+ * @version 2.3.5
+ * @license MIT
+ */
+function _init(){"use strict";$.AdminLTE.layout={activate:function(){var a=this;a.fix(),a.fixSidebar(),$(window,".wrapper").resize(function(){a.fix(),a.fixSidebar()})},fix:function(){var a=$(".main-header").outerHeight()+$(".main-footer").outerHeight(),b=$(window).height(),c=$(".sidebar").height();if($("body").hasClass("fixed"))$(".content-wrapper, .right-side").css("min-height",b-$(".main-footer").outerHeight());else{var d;b>=c?($(".content-wrapper, .right-side").css("min-height",b-a),d=b-a):($(".content-wrapper, .right-side").css("min-height",c),d=c);var e=$($.AdminLTE.options.controlSidebarOptions.selector);"undefined"!=typeof e&&e.height()>d&&$(".content-wrapper, .right-side").css("min-height",e.height())}},fixSidebar:function(){return $("body").hasClass("fixed")?("undefined"==typeof $.fn.slimScroll&&window.console&&window.console.error("Error: the fixed layout requires the slimscroll plugin!"),void($.AdminLTE.options.sidebarSlimScroll&&"undefined"!=typeof $.fn.slimScroll&&($(".sidebar").slimScroll({destroy:!0}).height("auto"),$(".sidebar").slimscroll({height:$(window).height()-$(".main-header").height()+"px",color:"rgba(0,0,0,0.2)",size:"3px"})))):void("undefined"!=typeof $.fn.slimScroll&&$(".sidebar").slimScroll({destroy:!0}).height("auto"))}},$.AdminLTE.pushMenu={activate:function(a){var b=$.AdminLTE.options.screenSizes;$(document).on("click",a,function(a){a.preventDefault(),$(window).width()>b.sm-1?$("body").hasClass("sidebar-collapse")?$("body").removeClass("sidebar-collapse").trigger("expanded.pushMenu"):$("body").addClass("sidebar-collapse").trigger("collapsed.pushMenu"):$("body").hasClass("sidebar-open")?$("body").removeClass("sidebar-open").removeClass("sidebar-collapse").trigger("collapsed.pushMenu"):$("body").addClass("sidebar-open").trigger("expanded.pushMenu")}),$(".content-wrapper").click(function(){$(window).width()<=b.sm-1&&$("body").hasClass("sidebar-open")&&$("body").removeClass("sidebar-open")}),($.AdminLTE.options.sidebarExpandOnHover||$("body").hasClass("fixed")&&$("body").hasClass("sidebar-mini"))&&this.expandOnHover()},expandOnHover:function(){var a=this,b=$.AdminLTE.options.screenSizes.sm-1;$(".main-sidebar").hover(function(){$("body").hasClass("sidebar-mini")&&$("body").hasClass("sidebar-collapse")&&$(window).width()>b&&a.expand()},function(){$("body").hasClass("sidebar-mini")&&$("body").hasClass("sidebar-expanded-on-hover")&&$(window).width()>b&&a.collapse()})},expand:function(){$("body").removeClass("sidebar-collapse").addClass("sidebar-expanded-on-hover")},collapse:function(){$("body").hasClass("sidebar-expanded-on-hover")&&$("body").removeClass("sidebar-expanded-on-hover").addClass("sidebar-collapse")}},$.AdminLTE.tree=function(a){var b=this,c=$.AdminLTE.options.animationSpeed;$(document).off("click",a+" li a").on("click",a+" li a",function(a){var d=$(this),e=d.next();if(e.is(".treeview-menu")&&e.is(":visible")&&!$("body").hasClass("sidebar-collapse"))e.slideUp(c,function(){e.removeClass("menu-open")}),e.parent("li").removeClass("active");else if(e.is(".treeview-menu")&&!e.is(":visible")){var f=d.parents("ul").first(),g=f.find("ul:visible").slideUp(c);g.removeClass("menu-open");var h=d.parent("li");e.slideDown(c,function(){e.addClass("menu-open"),f.find("li.active").removeClass("active"),h.addClass("active"),b.layout.fix()})}e.is(".treeview-menu")&&a.preventDefault()})},$.AdminLTE.controlSidebar={activate:function(){var a=this,b=$.AdminLTE.options.controlSidebarOptions,c=$(b.selector),d=$(b.toggleBtnSelector);d.on("click",function(d){d.preventDefault(),c.hasClass("control-sidebar-open")||$("body").hasClass("control-sidebar-open")?a.close(c,b.slide):a.open(c,b.slide)});var e=$(".control-sidebar-bg");a._fix(e),$("body").hasClass("fixed")?a._fixForFixed(c):$(".content-wrapper, .right-side").height() .box-body, > .box-footer, > form >.box-body, > form > .box-footer");c.hasClass("collapsed-box")?(a.children(":first").removeClass(b.icons.open).addClass(b.icons.collapse),d.slideDown(b.animationSpeed,function(){c.removeClass("collapsed-box")})):(a.children(":first").removeClass(b.icons.collapse).addClass(b.icons.open),d.slideUp(b.animationSpeed,function(){c.addClass("collapsed-box")}))},remove:function(a){var b=a.parents(".box").first();b.slideUp(this.animationSpeed)}}}if("undefined"==typeof jQuery)throw new Error("AdminLTE requires jQuery");$.AdminLTE={},$.AdminLTE.options={navbarMenuSlimscroll:!0,navbarMenuSlimscrollWidth:"3px",navbarMenuHeight:"200px",animationSpeed:500,sidebarToggleSelector:"[data-toggle='offcanvas']",sidebarPushMenu:!0,sidebarSlimScroll:!0,sidebarExpandOnHover:!1,enableBoxRefresh:!0,enableBSToppltip:!0,BSTooltipSelector:"[data-toggle='tooltip']",enableFastclick:!1,enableControlSidebar:!0,controlSidebarOptions:{toggleBtnSelector:"[data-toggle='control-sidebar']",selector:".control-sidebar",slide:!0},enableBoxWidget:!0,boxWidgetOptions:{boxWidgetIcons:{collapse:"fa-minus",open:"fa-plus",remove:"fa-times"},boxWidgetSelectors:{remove:'[data-widget="remove"]',collapse:'[data-widget="collapse"]'}},directChat:{enable:!0,contactToggleSelector:'[data-widget="chat-pane-toggle"]'},colors:{lightBlue:"#3c8dbc",red:"#f56954",green:"#00a65a",aqua:"#00c0ef",yellow:"#f39c12",blue:"#0073b7",navy:"#001F3F",teal:"#39CCCC",olive:"#3D9970",lime:"#01FF70",orange:"#FF851B",fuchsia:"#F012BE",purple:"#8E24AA",maroon:"#D81B60",black:"#222222",gray:"#d2d6de"},screenSizes:{xs:480,sm:768,md:992,lg:1200}},$(function(){"use strict";$("body").removeClass("hold-transition"),"undefined"!=typeof AdminLTEOptions&&$.extend(!0,$.AdminLTE.options,AdminLTEOptions);var a=$.AdminLTE.options;_init(),$.AdminLTE.layout.activate(),$.AdminLTE.tree(".sidebar"),a.enableControlSidebar&&$.AdminLTE.controlSidebar.activate(),a.navbarMenuSlimscroll&&"undefined"!=typeof $.fn.slimscroll&&$(".navbar .menu").slimscroll({height:a.navbarMenuHeight,alwaysVisible:!1,size:a.navbarMenuSlimscrollWidth}).css("width","100%"),a.sidebarPushMenu&&$.AdminLTE.pushMenu.activate(a.sidebarToggleSelector),a.enableBSToppltip&&$("body").tooltip({selector:a.BSTooltipSelector}),a.enableBoxWidget&&$.AdminLTE.boxWidget.activate(),a.enableFastclick&&"undefined"!=typeof FastClick&&FastClick.attach(document.body),a.directChat.enable&&$(document).on("click",a.directChat.contactToggleSelector,function(){var a=$(this).parents(".direct-chat").first();a.toggleClass("direct-chat-contacts-open")}),$('.btn-group[data-toggle="btn-toggle"]').each(function(){var a=$(this);$(this).find(".btn").on("click",function(b){a.find(".btn.active").removeClass("active"),$(this).addClass("active"),b.preventDefault()})})}),function(a){"use strict";a.fn.boxRefresh=function(b){function c(a){a.append(f),e.onLoadStart.call(a)}function d(a){a.find(f).remove(),e.onLoadDone.call(a)}var e=a.extend({trigger:".refresh-btn",source:"",onLoadStart:function(a){return a},onLoadDone:function(a){return a}},b),f=a('');return this.each(function(){if(""===e.source)return void(window.console&&window.console.log("Please specify a source first - boxRefresh()"));var b=a(this),f=b.find(e.trigger).first();f.on("click",function(a){a.preventDefault(),c(b),b.find(".box-body").load(e.source,function(){d(b)})})})}}(jQuery),function(a){"use strict";a.fn.activateBox=function(){a.AdminLTE.boxWidget.activate(this)},a.fn.toggleBox=function(){var b=a(a.AdminLTE.boxWidget.selectors.collapse,this);a.AdminLTE.boxWidget.collapse(b)},a.fn.removeBox=function(){var b=a(a.AdminLTE.boxWidget.selectors.remove,this);a.AdminLTE.boxWidget.remove(b)}}(jQuery),function(a){"use strict";a.fn.todolist=function(b){var c=a.extend({onCheck:function(a){return a},onUncheck:function(a){return a}},b);return this.each(function(){"undefined"!=typeof a.fn.iCheck?(a("input",this).on("ifChecked",function(){var b=a(this).parents("li").first();b.toggleClass("done"),c.onCheck.call(b)}),a("input",this).on("ifUnchecked",function(){var b=a(this).parents("li").first();b.toggleClass("done"),c.onUncheck.call(b)})):a("input",this).on("change",function(){var b=a(this).parents("li").first();b.toggleClass("done"),a("input",b).is(":checked")?c.onCheck.call(b):c.onUncheck.call(b)})})}}(jQuery);
\ No newline at end of file
diff --git a/language/en/text.php b/language/en/text.php
index 9aeaee03..2a39ef5e 100644
--- a/language/en/text.php
+++ b/language/en/text.php
@@ -21,6 +21,52 @@ $hesklang['_COLLATE']='utf8_unicode_ci';
// This is the email break line that will be used in email piping
$hesklang['EMAIL_HR']='------ Reply above this line ------';
+// ADDED OR MODIFIED IN Mods for HESK 2.7.0
+$hesklang['you_have_x_messages'] = 'You have %s new %s'; // %s: Number of new messages, "message" or "messages", depending on #
+$hesklang['message_lower_case'] = 'message';
+$hesklang['messages_lower_case'] = 'messages';
+$hesklang['deleted_user_title_case'] = 'Deleted User';
+$hesklang['main_navigation_uppercase'] = 'MAIN NAVIGATION';
+$hesklang['x_system_warnings'] = '%s System %s'; // %s: Number of warnings, $s: "Warning" or "Warnings", depending on #
+$hesklang['warnings_title_case'] = 'Warnings';
+$hesklang['articles_in_category_x'] = 'Articles in Category %s'; // %s: category name
+$hesklang['private_category_star'] = 'Private categories indicated by *';
+$hesklang['private_article_star'] = 'Private articles indicated by *';
+$hesklang['ticket_details'] = 'Ticket Details';
+$hesklang['more'] = 'More';
+$hesklang['language_colon'] = 'Language:';
+$hesklang['created_colon'] = 'Created:';
+$hesklang['updated_colon'] = 'Updated:';
+$hesklang['last_replier_colon'] = 'Last replier:';
+$hesklang['click_to_edit'] = 'Click to edit';
+$hesklang['no_device_information'] = 'No device information';
+$hesklang['message_colon'] = 'Message:';
+$hesklang['original_message'] = 'Original message';
+$hesklang['reply_by_customer'] = 'Reply by customer';
+$hesklang['reply_by_staff'] = 'Reply by staff';
+$hesklang['timeline_today'] = 'Today';
+$hesklang['no_notes_for_this_ticket'] = 'No notes for this ticket';
+$hesklang['private_message_header'] = 'Private Message';
+$hesklang['date_colon'] = 'Date:';
+$hesklang['api_information'] = 'API Information';
+$hesklang['api_version'] = 'API Version';
+$hesklang['external_api'] = 'External API';
+$hesklang['external_api_help'] = 'Enable or Disable the external REST API';
+$hesklang['disabled_title_case'] = 'Disabled';
+$hesklang['enabled_title_case'] = 'Enabled';
+$hesklang['api_settings'] = 'API Settings';
+$hesklang['user_security'] = 'User Security';
+$hesklang['api_documentation'] = 'API Documentation';
+$hesklang['changes_saved'] = 'Changes saved!';
+$hesklang['save_failed_check_logs'] = 'Saving changes failed. Check the logs for more information.';
+$hesklang['number_of_tokens'] = 'Number of Tokens';
+$hesklang['generate_new_token'] = 'Generate New Token';
+$hesklang['revoke_all_tokens'] = 'Revoke All Tokens';
+$hesklang['generated_token_colon'] = 'Generated Token:';
+$hesklang['record_this_token_warning'] = 'Please record this token, as this is the only time you will be able to view it!';
+$hesklang['all_tokens_revoked'] = 'All tokens for this user have been revoked';
+$hesklang['staff_login_title'] = 'Staff Login';
+
// ADDED OR MODIFIED IN Mods for HESK 2.6.0
$hesklang['search_logs'] = 'Search Logs';
$hesklang['date_logged'] = 'Date Logged';
@@ -1809,7 +1855,7 @@ $hesklang['ekb_y']='YES , enable Knowledgebase';
$hesklang['ekb_o']='YES , use HESK as a Knowledgebase only (disable help desk )';
$hesklang['kb_set']='Knowledgebase settings';
$hesklang['kbo1']='Knowledgebase-only mode';
-$hesklang['kbo2']=' Visitors cannot submit new support tickets and are taken directly to the knowledgebase.';
+$hesklang['kbo2']='Visitors cannot submit new support tickets and are taken directly to the knowledgebase.';
$hesklang['fpass']='Forgot your password?';
$hesklang['passr']='Password reset';
$hesklang['passa']='Allow users to reset a forgot password over email';