Skip to content
Snippets Groups Projects
Commit 14651bdf authored by Piotr Gawron's avatar Piotr Gawron
Browse files

lint report more problems

parent 6007037f
No related branches found
No related tags found
1 merge request!5Frontend refactor
......@@ -46,18 +46,10 @@
"google" : false,
/* JSF objects */
"_tabViewVar" : false,
"_overviewDialog" : false,
/* jQuery */
"$" : false,
"jQuery" : false,
"jQuery" : false
/* Primefaces */
"PrimeFaces" : false,
"PF" : false
}
}
"use strict";
/**
* Class that adds tab navigation to defavult primefaces tabView component.
*/
function TabNavi(elementId, params) {
var self = this;
if (params === undefined) {
params = {};
}
if (params.tabSize === undefined) {
params.tabSize = 5;
}
if (params.hideRemaining === undefined) {
params.hideRemaining = true;
}
this.params = params;
if (elementId === undefined) {
throw new Error("Invalid element identifier for TabNavi component: " + elementId);
}
this.tabViewElement = document.getElementById(elementId);
if (this.tabViewElement === undefined) {
throw new Error("Element with id: " + elementId + " doesn't exist");
}
this.mainTabsPage = 0;
// insert elements for naviagtion (left arrow and right arrow)
this.tabNavigationDiv = document.createElement("div");
this.tabNavigationDiv.setAttribute('class', 'tabNavigation');
this.naviLeftElement = document.createElement("a");
this.naviLeftElement.setAttribute('class', 'naviLeft');
this.naviLeftElement.innerHTML = '<i class="fa fa-chevron-left"></i>';
this.naviLeftElement.href = "#";
this.naviLeftElement.onclick = function() {
self.naviLeft();
};
this.naviRightElement = document.createElement("a");
this.naviRightElement.setAttribute('class', 'naviRight');
this.naviRightElement.innerHTML = '<i class="fa fa-chevron-right"></i>';
this.naviRightElement.href = "#";
this.naviRightElement.onclick = function() {
self.naviRight();
};
if (this.params.top !== undefined) {
this.naviRightElement.style.top = this.params.top;
this.naviLeftElement.style.top = this.params.top;
}
this.tabNavigationDiv.appendChild(this.naviLeftElement);
this.tabNavigationDiv.appendChild(this.naviRightElement);
this.tabViewElement.parentNode.insertBefore(this.tabNavigationDiv, this.tabViewElement);
this.refreshAfterDataUpdate();
}
TabNavi.prototype.refreshAfterDataUpdate = function() {
this.refreshTabCount();
this.refreshNaviElementsStyle();
};
TabNavi.prototype.refreshNaviElementsStyle = function() {
var self = this;
if (this.mainTabsPage === 0) {
this.naviLeftElement.style.opacity = '0.3';
}
if (self.mainTabsPage > 0) {
this.naviLeftElement.style.opacity = '1';
}
if (self.mainTabsPage >= self.pagesCount) {
this.naviRightElement.style.opacity = '0.3';
}
if (self.mainTabsPage < self.pagesCount) {
this.naviRightElement.style.opacity = '1';
}
var counter = 0;
self.mainTabItems = $(PrimeFaces.escapeClientId(self.tabViewElement.id) + " > ul > li ").each(
function() {
if (counter < (self.mainTabsPage * self.params.tabSize) + self.params.tabSize
&& counter >= (self.mainTabsPage * self.params.tabSize)) {
$(this).show();
} else {
if (self.params.hideRemaining || counter < (self.mainTabsPage * self.params.tabSize)) {
$(this).hide();
} else {
$(this).show();
}
}
counter++;
});
};
TabNavi.prototype.naviLeft = function() {
var self = this;
this.refreshTabCount();
if (self.mainTabsPage > 0) {
self.mainTabsPage--;
}
this.refreshNaviElementsStyle();
};
TabNavi.prototype.naviRight = function() {
var self = this;
this.refreshTabCount();
if (self.pagesCount > self.mainTabsPage) {
self.mainTabsPage++;
}
this.refreshNaviElementsStyle();
};
TabNavi.prototype.refreshTabCount = function() {
var self = this;
self.numberOfElements = 0;
this.mainTabItems = jQuery(PrimeFaces.escapeClientId(self.tabViewElement.id) + " > ul > li").each(function() {
self.numberOfElements++;
});
self.pagesCount = Math.ceil(self.numberOfElements / self.params.tabSize) - 1;
};
module.exports = TabNavi;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment