- Added public/css/FilterWidget.css and public/css/NavigationWidget.css to define CSS for Filter and Navigation widgets

- Added public/js/FilterWidget.js and public/js/NavigationWidget.js to collect all the JS for Filter and Navigation widgets
- Added filterwidget and navigationwidget paramaters to FHC-Header to include the new CSS and JS for Filter and Navigation widgets
- Removed all CSS and JS from the views used from Filter and Navigation widgets
- Added method _getFilterUniqueId to controller Filters to generate a unique id for a filter based on fhc_controller_id and the current page
- Adapted the code in controller Filters to use _getFilterUniqueId
- Added method _getFilterUniqueId to widget FilterWidget to generate a unique id for a filter based on fhc_controller_id and the current page
- Adapted the code in widget FilterWidget to use _getFilterUniqueId
- Removed fhc_controller_id from menu generation in InfoCenter controller
- InfoCenter controller now gives as parameter fhc_controller_id to view infocenterDetails
- InfoCenter controller now gives as parameter fhc_controller_id to various redirect
- Views infocenter, infocenterData, infocenterDetails and infocenterFreigegeben:
	- including new JS and CSS to work with Navigation and Filter widgets
	- including AjaxLib (required by FilterWidget.js and NavigationWidget.js)
	- using fhc_controller_id in Details and unlockPerson links
- fhc_controller_id in not anymore a parameter for FilterWidget, adapted the code where FilterWidget is called
- AjaxLib: renamed method _getUrlParameter to getUrlParameter
- Removed function getUrlParameter from public/js/infocenter/infocenterDetails.js, now uses the method from AjaxLib
- Added fhc_controller_id where needed into public/js/infocenter/infocenterDetails.js
- public/js/infocenter/infocenterPersonDataset.js now uses getUrlParameter from AjaxLib
- Added paramater filter_page in infocenterPersonDataset.js when calling Filters/rowNumber
This commit is contained in:
Paolo
2018-05-18 12:10:14 +02:00
parent 6a67183738
commit 13beae23cc
23 changed files with 1239 additions and 1225 deletions
-161
View File
@@ -1,164 +1,3 @@
<style>
.filter-options-span {
display: inline-block;
width: 130px;
font-weight: bold;
}
.filter-name-title {
font-family: inherit;
font-size: 16px;
/*font-weight: bold;*/
line-height: 1.1;
color: black;
}
.filters-hidden-panel {
margin: 0 10px 10px 10px;
}
.hidden-control {
display: none !important;
}
.filter-select-fields-dnd-div {
height: 50px;
}
.filter-select-field-dnd-span {
border: 1px solid black;
border-radius: 7px;
margin-left: 3px;
margin-right: 3px;
padding: 10px;
top: 10px;
}
.filter-select-field-dnd-span:hover {
cursor: move;
}
.filter-select-field-dnd-span a {
cursor: pointer;
}
.selection-before::before {
content: "";
position: absolute;
top: 0;
right: 100%;
height: 100%;
margin-right: 3px;
border-left: 2px solid #428bca;
}
.selection-after::after {
content: "";
position: absolute;
top: 0;
left: 100%;
height: 100%;
margin-left: 3px;
border-right: 2px solid #428bca;
}
.select-filter-operation {
display: inline;
width: 130px;
}
.select-filter-operation-value {
display: inline;
width: 400px;
}
.select-filter-option {
display: inline;
width: 100px;
}
#addField, #customFilterDescription, #addFilter {
display: inline;
width: 535px;
}
#selectedFilters {
margin-bottom: 20px;
}
#applyFilter, #saveCustomFilterButton, .remove-selected-filter {
font-weight: bold;
}
#applyFilter, #saveCustomFilterButton {
width: 100px;
}
.remove-selected-filter {
padding-bottom: 3px;
}
.panel-title {
font-weight: bold;
padding-top: 3px;
}
.remove-field {
font-weight: bold;
}
</style>
<script language="Javascript" type="text/javascript">
function sideMenuHook()
{
$(".remove-filter").click(function() {
$.ajax({
url: "<?php echo site_url('system/Filters/deleteCustomFilter'); ?>",
method: "POST",
data: {
filter_id: $(this).attr('value'),
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
refreshSideMenu();
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
});
}
$(document).ready(function() {
$("[data-toggle='collapse']").click(function() {
var filterOptionsStatus = sessionStorage.getItem('filter-options-status');
if (filterOptionsStatus != null && filterOptionsStatus == 'closed')
{
sessionStorage.setItem('filter-options-status', 'open');
}
else
{
sessionStorage.setItem('filter-options-status', 'closed');
}
});
var filterOptionsStatus = sessionStorage.getItem('filter-options-status');
if (filterOptionsStatus != null && filterOptionsStatus == 'open')
{
$('.collapse').collapse("show");
}
});
</script>
<div class="row">
<div class="col-lg-12">
@@ -1,36 +1,3 @@
<script language="Javascript" type="text/javascript">
$(document).ready(function() {
$("#saveCustomFilterButton").click(function() {
if ($("#customFilterDescription").val() != '')
{
$.ajax({
url: "<?php echo site_url('system/Filters/saveFilter'); ?>",
method: "POST",
data: {
customFilterDescription: $("#customFilterDescription").val(),
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
refreshSideMenu()
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
}
else
{
alert("Please fill te description of this filter");
}
});
});
</script>
<br>
<div>
@@ -1,247 +1,11 @@
<script language="Javascript" type="text/javascript">
<div id="filterSelectFieldsDnd" class="filter-select-fields-dnd-div"></div>
function dndSF()
{
$(".filter-select-field-dnd-span").draggable({
containment: "parent",
cursor: "move",
opacity: 0.4,
revert: "invalid",
revertDuration: 200,
drag: function(event, ui) {
<div>
<span class="filter-options-span">
Add field:
</span>
var padding = 20;
var draggedElement = $(this);
$(".filter-select-field-dnd-span").each(function(i, e) {
if ($(this).attr('id') != draggedElement.attr('id'))
{
$(this).removeClass("selection-after");
$(this).removeClass("selection-before");
var elementCenter = $(this).offset().left + ((padding + $(this).width()) / 2);
if (event.pageX > ($(this).offset().left - (padding / 2))
&& event.pageX < ($(this).offset().left + $(this).width() + (padding / 2)))
{
if (event.pageX > elementCenter)
{
$(this).addClass("selection-after");
$(this).removeClass("selection-before");
}
else if (event.pageX < elementCenter)
{
$(this).addClass("selection-before");
$(this).removeClass("selection-after");
}
}
}
});
}
});
$(".filter-select-field-dnd-span").droppable({
accept: ".filter-select-field-dnd-span",
drop: function(event, ui) {
var padding = 20;
var elementCenter = $(this).offset().left + ((padding + $(this).width()) / 2);
var draggedElement = ui.helper;
if (event.pageX > elementCenter)
{
draggedElement.insertAfter($(this));
}
else if (event.pageX < elementCenter)
{
draggedElement.insertBefore($(this));
}
$(this).removeClass("selection-before");
$(this).removeClass("selection-after");
draggedElement.css({left: '0px', top: '10px'});
var arrayDndId = [];
$(".filter-select-field-dnd-span").each(function(i, e) {
arrayDndId[i] = $(this).attr('id').replace('dnd', '');
});
$.ajax({
url: "<?php echo site_url('system/Filters/sortSelectedFields'); ?>",
method: "POST",
data: {
selectedFieldsLst: arrayDndId,
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
resetSelectedFields();
renderSelectedFields();
renderTableDataset();
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
}
});
}
function resetEventsSF()
{
$("#addField").off('change');
$(".remove-field").off('click');
}
function addEventsSF()
{
$("#addField").change(function(event) {
$.ajax({
url: "<?php echo site_url('system/Filters/addSelectedFields'); ?>",
method: "POST",
data: {
fieldName: $(this).val(),
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
resetSelectedFields();
renderSelectedFields();
renderTableDataset();
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
});
$(".remove-field").click(function(event) {
$.ajax({
url: "<?php echo site_url('system/Filters/removeSelectedFields'); ?>",
method: "POST",
data: {
fieldName: $(this).attr('fieldToRemove'),
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
resetSelectedFields();
renderSelectedFields();
renderTableDataset();
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
});
}
function renderSelectedFields()
{
$.ajax({
url: "<?php echo site_url('system/Filters/selectFields'); ?>",
method: "GET",
data: {
fhc_controller_id: getUrlParameter("fhc_controller_id")
},
dataType: "json"
})
.done(function(data, textStatus, jqXHR) {
resetEventsSF();
if (data != null)
{
var arrayFieldsToDisplay = [];
if (data.columnsAliases != null && $.isArray(data.columnsAliases))
{
arrayFieldsToDisplay = data.columnsAliases;
}
else if (data.selectedFields != null && $.isArray(data.selectedFields))
{
arrayFieldsToDisplay = data.selectedFields;
}
for (var i = 0; i < arrayFieldsToDisplay.length; i++)
{
var fieldToDisplay = arrayFieldsToDisplay[i];
var fieldName = data.selectedFields[i];
var strHtml = '<span id="dnd' + fieldName + '" class="filter-select-field-dnd-span">';
strHtml += '<span>';
strHtml += fieldToDisplay;
strHtml += '</span>';
strHtml += '<span><a class="remove-field" fieldToRemove="' + fieldName + '"> X </a></span>';
strHtml += '</span>';
$("#filterSelectFieldsDnd").append(strHtml);
}
var strDropDown = '<option value="">Select a field to add...</option>';
$("#addField").append(strDropDown);
for (var i = 0; i < data.allSelectedFields.length; i++)
{
var fieldName = data.allSelectedFields[i];
var fieldToDisplay = data.allSelectedFields[i];
if (data.selectedFields.indexOf(fieldName) < 0)
{
if (data.allColumnsAliases != null && $.isArray(data.allColumnsAliases))
{
fieldToDisplay = data.allColumnsAliases[i];
}
strDropDown = '<option value="' + fieldName + '">' + fieldToDisplay + '</option>';
$("#addField").append(strDropDown);
}
}
}
dndSF();
addEventsSF();
})
.fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
}
function resetSelectedFields()
{
$("#filterSelectFieldsDnd").html("");
$("#addField").html("");
}
$(document).ready(function() {
renderSelectedFields();
});
</script>
<div id="filterSelectFieldsDnd" class="filter-select-fields-dnd-div"></div>
<div>
<span class="filter-options-span">
Add field:
</span>
<span>
<select id="addField"></select>
</span>
</div>
<span>
<select id="addField"></select>
</span>
</div>
@@ -1,282 +1,3 @@
<script language="Javascript" type="text/javascript">
function resetEventsSFilters()
{
$("#addFilter").off('change');
}
function addEventsSFilters()
{
$("#addFilter").change(function(event) {
$.ajax({
url: "<?php echo site_url('system/Filters/addSelectedFilters'); ?>",
method: "POST",
data: {
fieldName: $(this).val(),
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
resetSelectedFilters();
renderSelectedFilters();
renderTableDataset();
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
});
$(".select-filter-operation").change(function() {
if ($(this).val() == "set" || $(this).val() == "nset")
{
$(this).parent().parent().find(".select-filter-operation-value").addClass("hidden-control");
$(this).parent().parent().find(".select-filter-option").addClass("hidden-control");
$(this).parent().parent().find(".select-filter-operation-value").prop('disabled', true);
$(this).parent().parent().find(".select-filter-option").prop('disabled', true);
}
else
{
$(this).parent().parent().find(".select-filter-operation-value").removeClass("hidden-control");
$(this).parent().parent().find(".select-filter-option").removeClass("hidden-control");
$(this).parent().parent().find(".select-filter-operation-value").prop('disabled', false);
$(this).parent().parent().find(".select-filter-option").prop('disabled', false);
}
});
$("#applyFilter").click(function() {
var selectFilterName = [];
var selectFilterOperation = [];
var selectFilterOperationValue = [];
var selectFilterOption = [];
$("#selectedFilters > div").each(function(i, e) {
var tmpSelectFilterName = $(this).find('.hidden-field-name').val();
var tmpSelectFilterOperation = $(this).find('.select-filter-operation').val();
var tmpSelectFilterOperationValue = $(this).find('.select-filter-operation-value:enabled').val();
var tmpSelectFilterOption = $(this).find('.select-filter-option:enabled').val();
selectFilterName.push(tmpSelectFilterName);
selectFilterOperation.push(tmpSelectFilterOperation);
selectFilterOperationValue.push(tmpSelectFilterOperationValue != null ? tmpSelectFilterOperationValue : "");
selectFilterOption.push(tmpSelectFilterOption != null ? tmpSelectFilterOption : "");
});
$.ajax({
url: "<?php echo site_url('system/Filters/applyFilter'); ?>",
method: "POST",
data: {
filterNames: selectFilterName,
filterOperations: selectFilterOperation,
filterOperationValues: selectFilterOperationValue,
filterOptions: selectFilterOption,
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
// Success
}).fail(function(jqXHR, textStatus, errorThrown) {
// Error
}).always(function() {
location.reload();
});
});
$(".remove-selected-filter").click(function(event) {
$.ajax({
url: "<?php echo site_url('system/Filters/removeSelectedFilters'); ?>",
method: "POST",
data: {
fieldName: $(this).attr('filterToRemove'),
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
resetSelectedFilters();
renderSelectedFilters();
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
});
}
function renderSelectedFilterFields(metaData, activeFilters, activeFiltersOperation, activeFiltersOption)
{
var html = '';
if (metaData.type.toLowerCase().indexOf("int") >= 0)
{
html = '<span>';
html += ' <select class="form-control select-filter-operation">';
html += ' <option value="equal" ' + (activeFiltersOperation == "equal" ? "selected" : "") + '>equal</option>';
html += ' <option value="nequal" ' + (activeFiltersOperation == "nqual" ? "selected" : "") + '>not equal</option>';
html += ' <option value="gt" ' + (activeFiltersOperation == "gt" ? "selected" : "") + '>greater than</option>';
html += ' <option value="lt" ' + (activeFiltersOperation == "lt" ? "selected" : "") + '>less than</option>';
html += ' </select>';
html += '</span>';
html += '<span>';
html += ' <input type="number" value="' + activeFilters + '" class="form-control select-filter-operation-value">';
html += '</span>';
}
if (metaData.type.toLowerCase().indexOf('varchar') >= 0 || metaData.type.toLowerCase() == 'text')
{
html = '<span>';
html += ' <select class="form-control select-filter-operation">';
html += ' <option value="contains" ' + (activeFiltersOperation == "contains" ? "selected" : "") + '>contains</option>';
html += ' <option value="ncontains" ' + (activeFiltersOperation == "ncontains" ? "selected" : "") + '>does not contain</option>';
html += ' </select>';
html += '</span>';
html += '<span>';
html += ' <input type="text" value="' + activeFilters + '" class="form-control select-filter-operation-value">';
html += '</span>';
}
if (metaData.type.toLowerCase().indexOf('bool') >= 0)
{
html = '<span>';
html += ' <select class="form-control select-filter-operation">';
html += ' <option value="true" ' + (activeFiltersOperation == "true" ? "selected" : "") + '>is true</option>';
html += ' <option value="false" ' + (activeFiltersOperation == "false" ? "selected" : "") + '>is false</option>';
html += ' </select>';
html += '</span>';
html += '<span>';
html += ' <input type="hidden" value="' + activeFilters + '" class="form-control select-filter-operation-value">';
html += '</span>';
}
if (metaData.type.toLowerCase().indexOf('timestamp') >= 0 || metaData.type.toLowerCase().indexOf('date') >= 0)
{
var classOperation = 'form-control select-filter-operation-value';
var classOption = 'form-control select-filter-option';
var disabled = "";
if (activeFiltersOperation == "set" || activeFiltersOperation == "nset")
{
classOperation += ' hidden-control';
classOption += ' hidden-control';
disabled = "disabled";
}
html = '<span>';
html += ' <select class="form-control select-filter-operation">';
html += ' <option value="lt" ' + (activeFiltersOperation == "lt" ? "selected" : "") + '>less than</option>';
html += ' <option value="gt" ' + (activeFiltersOperation == "gt" ? "selected" : "") + '>greater than</option>';
html += ' <option value="set" ' + (activeFiltersOperation == "set" ? "selected" : "") + '>is set</option>';
html += ' <option value="nset" ' + (activeFiltersOperation == "nset" ? "selected" : "") + '>is not set</option>';
html += ' </select>';
html += '</span>';
html += '<span>';
html += ' <input type="text" value="' + activeFilters + '" class="' + classOperation + '" ' + disabled + '>';
html += '</span>';
html += '<span>';
html += ' <select class="' + classOption + '" ' + disabled + '>';
html += ' <option value="days" ' + (activeFiltersOption == "days" ? "selected" : "") + '>Days</option>';
html += ' <option value="months" ' + (activeFiltersOption == "months" ? "selected" : "") + '>Months</option>';
html += ' </select>';
html += '</span>';
}
html += '<span>';
html += ' <input type="hidden" value="' + metaData.name + '" class="hidden-field-name">';
html += '</span>';
return html;
}
function renderSelectedFilters()
{
$.ajax({
url: "<?php echo site_url('system/Filters/selectFilters'); ?>",
method: "GET",
data: {
fhc_controller_id: getUrlParameter("fhc_controller_id")
},
dataType: "json"
})
.done(function(data, textStatus, jqXHR) {
resetEventsSFilters();
if (data != null)
{
var strDropDown = '<option value="">Select a filter to add...</option>';
$("#addFilter").append(strDropDown);
for (var i = 0; i < data.selectedFilters.length; i++)
{
var selectedFilters = '<div>';
selectedFilters += '<span class="filter-options-span">';
selectedFilters += data.selectedFiltersAliases[i];
selectedFilters += '</span>';
selectedFilters += renderSelectedFilterFields(
data.selectedFiltersMetaData[i],
data.selectedFiltersActiveFilters[i],
data.selectedFiltersActiveFiltersOperation[i],
data.selectedFiltersActiveFiltersOption[i]
);
selectedFilters += '<span>';
selectedFilters += '<input type="button" value="X" class="remove-selected-filter btn btn-default" filterToRemove="' + data.selectedFilters[i] + '">';
selectedFilters += '</span>';
selectedFilters += '</div>';
$("#selectedFilters").append(selectedFilters);
}
for (var i = 0; i < data.allSelectedFields.length; i++)
{
var fieldName = data.allSelectedFields[i];
var fieldToDisplay = data.allSelectedFields[i];
if (data.selectedFilters.indexOf(fieldName) < 0)
{
if (data.allColumnsAliases != null && $.isArray(data.allColumnsAliases))
{
fieldToDisplay = data.allColumnsAliases[i];
}
strDropDown = '<option value="' + fieldName + '">' + fieldToDisplay + '</option>';
$("#addFilter").append(strDropDown);
}
}
}
addEventsSFilters();
})
.fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
}
function resetSelectedFilters()
{
$("#addFilter").html("");
$("#selectedFilters").html("");
}
$(document).ready(function() {
renderSelectedFilters();
});
</script>
<br>
<div id="selectedFilters"></div>
@@ -1,153 +1,3 @@
<script language="Javascript" type="text/javascript">
function callTableSorter()
{
// Checks if the table contains data (rows)
if ($('#filterTableDataset').find('tbody:empty').length == 0
&& $('#filterTableDataset').find('tr:empty').length == 0
&& $('#filterTableDataset').hasClass('table-condensed'))
{
$("#filterTableDataset").tablesorter({
widgets: ["zebra", "filter"]
});
var config = $('#filterTableDataset')[0].config;
$.tablesorter.updateAll(config, true, null);
}
}
function renderTableDataset()
{
$.ajax({
url: "<?php echo site_url('system/Filters/tableDataset'); ?>",
method: "GET",
data: {
fhc_controller_id: getUrlParameter("fhc_controller_id")
},
dataType: "json"
})
.done(function(data, textStatus, jqXHR) {
resetTableDataset();
if (data != null)
{
if (data.checkboxes != null)
{
$("#filterTableDataset > thead > tr").append("<th title=\"Select\">Select</th>");
}
var arrayFieldsToDisplay = [];
if (data.columnsAliases != null && $.isArray(data.columnsAliases) && data.columnsAliases.length > 0)
{
arrayFieldsToDisplay = data.columnsAliases;
}
else if (data.selectedFields != null && $.isArray(data.selectedFields))
{
arrayFieldsToDisplay = data.selectedFields;
}
/* ------------------------------------------------------------------------------------------------ */
if (data.checkboxes != null && data.checkboxes != "")
{
$("#filterTableDataset > thead > tr").html("<th title=\"Select\">Select</th>");
}
for (var i = 0; i < arrayFieldsToDisplay.length; i++)
{
var th = arrayFieldsToDisplay[i];
$("#filterTableDataset > thead > tr").append("<th title=\"" + th + "\">" + th + "</th>");
}
if (data.additionalColumns != null && $.isArray(data.additionalColumns))
{
for (var i = 0; i < data.additionalColumns.length; i++)
{
var th = data.additionalColumns[i];
$("#filterTableDataset > thead > tr").append("<th title=\"" + th + "\">" + th + "</th>");
}
}
/* ------------------------------------------------------------------------------------------------ */
if (arrayFieldsToDisplay.length > 0)
{
if (data.dataset != null && $.isArray(data.dataset))
{
for (var i = 0; i < data.dataset.length; i++)
{
var record = data.dataset[i];
var strHtml = '<tr class="' + record.FILTER_CLASS_MARK_ROW + '">';
if (data.checkboxes != null && data.checkboxes != "")
{
strHtml += '<td>';
strHtml += '<input type="checkbox" name="' + data.checkboxes + '[]" value="' + record[data.checkboxes] + '">';
strHtml += '</td>';
}
$.each(arrayFieldsToDisplay, function(i, fieldToDisplay) {
if (record.hasOwnProperty(data.selectedFields[i]))
{
strHtml += '<td>' + record[data.selectedFields[i]] + '</td>';
}
});
if (data.additionalColumns != null && $.isArray(data.additionalColumns))
{
$.each(data.additionalColumns, function(i, additionalColumn) {
if (record.hasOwnProperty(additionalColumn))
{
strHtml += '<td>' + record[additionalColumn] + '</td>';
}
});
}
strHtml += '</tr>';
$("#filterTableDataset > tbody").append(strHtml);
}
}
else
{
// console.log("No dataset!!!");
}
}
else
{
console.log("No fields to display!!!");
}
}
else
{
console.log("No data!!!");
}
callTableSorter();
})
.fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
}
function resetTableDataset()
{
$("#filterTableDataset > thead > tr").html("");
$("#filterTableDataset > tbody").html("");
}
$(document).ready(function() {
renderTableDataset();
});
</script>
<div>
<table class="tablesorter table-bordered table-responsive" id="filterTableDataset">
<thead>
+8 -8
View File
@@ -1,9 +1,9 @@
<nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
<?php
// Header
echo $this->widgetlib->widget('NavigationHeaderWidget');
<nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
<?php
// Header
echo $this->widgetlib->widget('NavigationHeaderWidget');
// Left menu
echo $this->widgetlib->widget('NavigationMenuWidget');
?>
</nav>
// Left menu
echo $this->widgetlib->widget('NavigationMenuWidget');
?>
</nav>
+11 -39
View File
@@ -1,39 +1,11 @@
<script language="Javascript" type="text/javascript">
$(document).ready(function() {
$.ajax({
url: "<?php echo site_url('system/Navigation/header'); ?>",
method: "GET",
data: {
navigation_widget_called: "<?php echo $this->router->directory.$this->router->class.'/'.$this->router->method; ?>"
}
})
.done(function(data, textStatus, jqXHR) {
if (data != null)
{
jQuery.each(data, function(i, e) {
$(".menu-header-items").append('<a class="navbar-brand" href="' + e + '">' + i + '</a>');
});
}
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
});
</script>
<div class="navbar-header">
<span>
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Men&uuml; umschalten </span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</span>
<span class="menu-header-items"></span>
</div>
<div class="navbar-header">
<span>
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Men&uuml; umschalten </span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</span>
<span class="menu-header-items"></span>
</div>
@@ -1,169 +1,3 @@
<style>
#collapseinicon {
display: none;
cursor: pointer;
color: #337ab7;
border-bottom: 1px solid #e7e7e7;
border-right: 1px solid #e7e7e7;
border-left: 1px solid #e7e7e7;
position: absolute;
width: 45px;
height: 20px;
background-color: #F8F8F8;
}
.nav > li > span > a:focus, .nav > li > span > a:hover {
text-decoration: none;
}
.nav > li > span {
position: relative;
display: inline-block;
padding-top: 15px;
padding-bottom: 15px;
}
.menuSubscriptLink {
font-size: 10px;
padding-left: 0px !important;
padding-right: 0px !important;
}
.sidebar ul li span a.active {
background-color: transparent;
font-weight: bold;
text-decoration: underline;
}
</style>
<script language="Javascript" type="text/javascript">
function printNavItem(item, depth = 1)
{
strMenu = "";
var expanded = typeof item['expand'] != 'undefined' && item['expand'] === true ? ' active' : '';
strMenu += '<li class="' + expanded + '">';
if (typeof item['subscriptLinkClass'] != 'undefined' && typeof item['subscriptDescription'] != 'undefined')
{
strMenu += '<span>';
}
strMenu += '<a href="' + item['link'] + '"' + expanded + '>';
if (item['icon'] != 'undefined')
{
strMenu += '<i class="fa fa-' + item['icon'] + ' fa-fw"></i> ';
}
strMenu += item['description'];
if (typeof item['children'] != 'undefined' && Object.keys(item['children']).length > 0)
{
strMenu += '<span class="fa arrow"></span>';
}
strMenu += '</a>';
if (typeof item['subscriptLinkClass'] != 'undefined' && typeof item['subscriptDescription'] != 'undefined')
{
strMenu += '<a class="' + item['subscriptLinkClass'] + ' menuSubscriptLink" value="' + item['subscriptLinkValue'] + '" href="#"> (' + item['subscriptDescription'] + ')</a>';
strMenu += '</span>';
}
if (typeof item['children'] != 'undefined' && Object.keys(item['children']).length > 0)
{
var level = '';
if (depth === 1)
{
level = 'second';
}
else if (depth > 1)
{
level = 'third';
}
strMenu += '<ul class="nav nav-' + level + '-level" ' + expanded + '>';
jQuery.each(item['children'], function(i, e) {
strMenu += printNavItem(e, ++depth);
});
strMenu += '</ul>';
}
strMenu += '</li>';
return strMenu;
}
function renderSideMenu()
{
$.ajax({
url: "<?php echo site_url('system/Navigation/menu'); ?>",
method: "GET",
data: {
navigation_widget_called: "<?php echo $this->router->directory.$this->router->class.'/'.$this->router->method; ?>"
}
})
.done(function(data, textStatus, jqXHR) {
if (data != null)
{
var strMenu = '';
printCollapseIcon();
jQuery.each(data, function(i, e) {
strMenu += printNavItem(e);
});
$("#side-menu").html(strMenu);
$("#side-menu").metisMenu();
}
if (typeof sideMenuHook == 'function')
{
sideMenuHook();
}
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
}
function printCollapseIcon()
{
// Hiding/showing navigation menu - works only with sb admin 2 template!!
if(!$("#collapseicon").length)
$("#side-menu").parent().append('<div id="collapseicon" title="hide Menu" class="text-right" style="cursor: pointer; color: #337ab7"><i class="fa fa-angle-double-left fa-fw"></i></div>');
$("#collapseicon").click(function() {
$("#page-wrapper").css('margin-left', '0px');
$("#side-menu").hide();
$("#collapseicon").hide();
$("#collapseinicon").show();
});
$("#collapseinicon").click(function() {
$("#page-wrapper").css('margin-left', '250px');
$("#side-menu").show();
$("#collapseicon").show();
$("#collapseinicon").hide();
});
}
$(document).ready(function() {
renderSideMenu();
});
</script>
<div class="navbar-default sidebar" role="navigation">
<div class="sidebar-nav navbar-collapse">
<ul class="nav" id="side-menu"></ul>