$(document).ready(function(){
var loadedConfigs = {}
var shinobiHubWindow = $('#tab-configFinder')
var shinobiHubWindowTableBody = $('#shinobihub-results')
var shinobiHubWindowSearch = $('#shinobihub-search')
var shinobiHubWindowSortBy = $('#shinobihub-sort-by')
var shinobiHubWindowExplore = $('#shinobihub-explore')
var shinobiHubWindowSortDirection = $('#shinobihub-sort-direction')
var shinobiHubWindowPages = $('#shinobihub-pages')
var sideMenuList = $(`#side-menu-link-configFinder ul`)
var pageLimit = 15
function drawFoundConfigsSubMenu(){
var allFound = []
Object.keys(loadedConfigs).forEach(function(configId){
var item = loadedConfigs[configId]
allFound.push({
attributes: `href="#monitor-settings-found-${configId}" scrollToParent="#tab-configFinder"`,
class: `scrollTo`,
color: 'blue',
label: item.brand + ' ' + item.name,
})
})
var html = buildSubMenuItems(allFound)
sideMenuList.html(html)
}
var getConfigurationsFromHub = function(rowLimit,skipOver,explore,searchQuery,sortBy,sortDirection,callback){
// $.get(,callback)
$.getJSON(`https://hub.shinobi.video/searchConfiguration?skipOver=${skipOver}&rowLimit=${rowLimit}&sortBy=${sortBy}&sortDirection=${sortDirection}${searchQuery ? `&text=${searchQuery}` : ''}`,function(data){
callback(data)
// $.get(getApiPrefix() + `/getShinobiHubConfigurations/${$user.ke}/cam?rowLimit=${rowLimit}&skipOver=${skipOver}&explore=${explore ? explore : "0"}&search=${searchQuery}&sortDirection=${sortDirection}&sortBy=${sortBy}`,function(privateData){
// callback(data.concat(privateData || []))
// })
})
}
var buildConfigRow = function(row){
return `
${row.description}
${lang['Date Added']} : ${moment(row.dateAdded).format('DD-MM-YYYY hh:mm:ss A')}
${lang['Date Updated']} : ${moment(row.dateUpdated).format('DD-MM-YYYY hh:mm:ss A')}
`
}
var loadRows = function(skipOver,rowLimit,explore){
shinobiHubWindowTableBody.empty()
if(!skipOver)skipOver = 0
if(!rowLimit)rowLimit = pageLimit
loadedConfigs = {}
var searchQuery = shinobiHubWindowSearch.val()
var sortBy = shinobiHubWindowSortBy.val()
var sortDirection = shinobiHubWindowSortDirection.val()
var explore = shinobiHubWindowExplore.val() || '0'
getConfigurationsFromHub(rowLimit,skipOver,explore,searchQuery,sortBy,sortDirection,function(data){
var html = ''
$.each(data.configs,function(n,row){
loadedConfigs[row.id] = row
try{
html += buildConfigRow(row)
}catch(err){
console.log(err,row)
}
})
shinobiHubWindowTableBody.html(html)
html = ''
if(data.pages > 10){
for (i = 1; i < 3 + 1; i++) {
html += ``
}
html += ``
for (i = data.pages - 2; i < data.pages + 1; i++) {
html += ``
}
}else{
for (i = 1; i < data.pages + 1; i++) {
html += ``
}
}
shinobiHubWindowPages.html(html)
drawFoundConfigsSubMenu()
})
}
addOnTabOpen('configFinder', function () {
loadRows()
})
addOnTabReopen('configFinder', function () {
// loadRows()
})
shinobiHubWindow.on('click','.copy',function(){
openMonitorEditorPage()
var configId = $(this).parents(`[drawn-id]`).attr('drawn-id')
var json = loadedConfigs[configId].json
writeToMonitorSettingsWindow(json)
})
shinobiHubWindowPages.on('click','.page-select',function(){
var pageSelect = parseInt($(this).attr('page')) - 1
loadRows(pageSelect * pageLimit, pageLimit,'0')
})
shinobiHubWindow.on('change','.page-number-input',function(){
var pageSelect = parseInt($(this).val()) - 1
loadRows(pageSelect * pageLimit, pageLimit,'0')
})
shinobiHubWindowSearch.change(function(){
loadRows(0, pageLimit, '0')
})
shinobiHubWindowSortBy.change(function(){
var descText
var ascText
switch($(this).val()){
case'dateUpdated':
case'dateAdded':
descText = 'Newest'
ascText = 'Oldest'
break;
case'heading':
case'opening':
descText = 'Z - #'
ascText = '# - Z'
break;
}
shinobiHubWindowSortDirection.find('[value="DESC"]').html(descText)
shinobiHubWindowSortDirection.find('[value="ASC"]').html(ascText)
loadRows(0, pageLimit, '0')
})
shinobiHubWindowSortDirection.change(function(){
loadRows(0, pageLimit, '0')
})
shinobiHubWindowExplore.change(function(){
loadRows(0, pageLimit, '0')
})
})