opt
/
kaspersky
/
kav4fs
/
share
/
wmconsole
/
html
/
js
➕ New
📤 Upload
✎ Editing:
search_objects_model.js
← Back
function SearchObjectsForm() { var _this = this; this.searching = false; var restoreButtonInfo; var deleteButtonInfo; var refreshButtonInfo; function toggleButtonState( $btn, info, enable ) { if( $btn.length == 0 ) return false; if(enable && $btn.hasClass('disabledLink')) $btn.enable(); if(!enable && !$btn.hasClass('disabledLink')) $btn.disable(); } this.toggleRefreshButtonState = function( enable ) { toggleButtonState( $('#refreshButton'), refreshButtonInfo, enable ); } this.toggleRestoreButtonState = function( enable ) { toggleButtonState($('#restoreButton'), restoreButtonInfo, enable); } this.toggleDeleteButtonState = function( enable ) { toggleButtonState($('#deleteButton'), deleteButtonInfo, enable); } function enableDeleteAndRestoreButtons() { _this.toggleRestoreButtonState(true); _this.toggleDeleteButtonState(true); } function disableDeleteAndRestoreButtons() { _this.toggleRestoreButtonState(false); _this.toggleDeleteButtonState(false); } function disableDeleteRestoreRefresh() { disableDeleteAndRestoreButtons(); _this.toggleRefreshButtonState(false); } function createButtonInfo( $btn ) { return { className : $btn.attr('className'), selfHtml : $btn.selfHtml(), text : $btn.html() }; } this.refresh = function(){} function setupButtons() { restoreButtonInfo = createButtonInfo( $('#restoreButton') ); deleteButtonInfo = createButtonInfo( $('#deleteButton') ); refreshButtonInfo = createButtonInfo( $('#refreshButton') ); function setHref(){ this.href = window.location.href } $('#restoreButton').each(setHref); $('#deleteButton').each(setHref); $('#refreshButton').each(setHref); $('#restoreButton').click(function(){ disableDeleteAndRestoreButtons(); _this.restoreObjects(); }); $('#deleteButton').click(function(){ disableDeleteAndRestoreButtons(); _this.deleteObjects(); }); $('#refreshButton').click(function(){ _this.refresh(); }) } function turnOnSelectAllCheckbox($cbs, numChecked) { if($cbs.length == numChecked) $('#resultTable #selectAllCheckbox').attr('checked', true); } function turnOffSelectAllCheckbox($cbs, numChecked) { $('#resultTable #selectAllCheckbox').attr('checked', false); if(0 == numChecked) disableDeleteAndRestoreButtons(); } _this.itemCheckedHandlers = []; _this.itemUncheckedHandlers = []; _this.itemCheckedHandlers.push(enableDeleteAndRestoreButtons); _this.itemCheckedHandlers.push(turnOnSelectAllCheckbox); _this.itemUncheckedHandlers.push(turnOffSelectAllCheckbox); _this.selectItemsCheckboxes = function() { return $('#resultTable :checkbox[id^=cb_]'); } _this.countChecked = function($cbs) { var numChecked = 0; $cbs.each(function(){ if(this.checked) numChecked++ }) return numChecked; } _this.itemCheckboxClicked = function() { var $cbs = _this.selectItemsCheckboxes(); var numChecked = _this.countChecked($cbs); var elem = this; if(elem.checked) for(var i = 0; i < _this.itemCheckedHandlers.length; i++) _this.itemCheckedHandlers[i].call(elem, $cbs, numChecked); else for(var i = 0; i < _this.itemUncheckedHandlers.length; i++) _this.itemUncheckedHandlers[i].call(elem, $cbs, numChecked); } function bindTableCheckboxes() { _this.selectItemsCheckboxes().unbind('click').click(_this.itemCheckboxClicked); } function getHeaderSortLinks() { return $('#resultTable > tbody > tr:first [id^=headlink_]'); } this.setup = function() { setupButtons(); disableDeleteRestoreRefresh(); this.setupButtonsActivity(); getHeaderSortLinks().click(function(){ getHeaderSortLinks().sortEmpty(); _this.changeSort(this, this.id.substring(9)); }) $('#resultTable #selectAllCheckbox').unbind('click').click(function(){ _this.selectAll(this); }) if(this.isSimpleMode()) this.showSimpleMode(); else this.showAdvancedMode(); } this.run = function() { this.setup(); this.doSearch(); } this.setupButtonsActivity = function() { var sel = '#searchButton,#pageLines,' + '#nextPageButton,#prevPageButton,' + '#lastPageButton,#firstPageButton'; if(this.searching) { $(sel).disable(); disableDeleteRestoreRefresh(); } else $(sel).enable(); } this.total = 0; this.updateFromToTotal = function(from, to, total) { this.total = total; $('#resultTotal').html(_resTmpl("SEARCH_FORM_FROM_TO_TOTAL", { FROM : (from+''), TO : (to+''), TOTAL : (total+'') } )); } this.setSearchingState = function(state) { this.searching = state; this.setupButtonsActivity() if(state) this.updateFromToTotal(0, 0, 0); } this.loadFormCallback = function() { this.setupButtonsActivity(); $('#searchButton').click(function(){_this.doSearch(0)}); $('#searchForm input').keypress(function(e){ var enterKeyCode = 13; if((e.which == enterKeyCode) && !_this.searching) $('#searchButton').click() }) } this.getModeCookieName = function() { return this.name + 'SimpleMode'; } function emptyFunction(){} this.onSimplePageLoaded = emptyFunction; this.onAdvancedPageLoaded = emptyFunction; this.getAdvSearchParams = emptyFunction; this.getSimpleSearchParams = emptyFunction; this.showSimpleMode = function() { var params = _this.getAdvSearchParams(); $('#searchForm').loadCache(this.simplePage, function(){ _this.loadFormCallback(); _this.onSimplePageLoaded(params); }); ic.storage.save(this.getModeCookieName(), '1'); } this.showAdvancedMode = function() { var params = _this.getSimpleSearchParams(); $('#searchForm').loadCache(this.advancedPage, function(){ _this.loadFormCallback(); _this.onAdvancedPageLoaded(params); }); ic.storage.save(this.getModeCookieName(), '0'); } this.isSimpleMode = function() { var val = ic.storage.get(this.getModeCookieName()); return (val == null) || (val == '1'); } this.pageLimit = function() { var result = 0; $('#pageLines').each(function(){result = parseInt(this.value)}); return result; } this.setTableStatus = function(resid) { clearResultTable(); var $titleRow = $('#resultTable > tbody > tr:first'); numColumns = Math.max( $titleRow.find('> th').length, $titleRow.find('> td').length ); var $statusRow = $('<tr id="tableStatus">' +'<td align="center"' +' colspan="' + numColumns + '">' + _res(resid) + '</td></tr>'); $('#resultTable').append($statusRow); } function getSearchParams() { if(_this.isSimpleMode()) return _this.getSimpleSearchParams(); else return _this.getAdvSearchParams(); } function countTableRecords() { return $('#resultTable > tbody > tr').length - 1; } this.updatePageInformation = function(offset, total) { this.offset = offset; this.total = total; var first = 0; var last = 0; var prevPageFunc = 0; var nextPageFunc = 0; var firstPageFunc = 0; var lastPageFunc = 0; var numRecords = countTableRecords(); var searchParams = getSearchParams(); _this.onRemoveTableCells = function(){}; if(numRecords > 0) { first = offset + 1; last = offset + numRecords; var plimit = _this.pageLimit(); if(offset > 0) { var rem = (offset % plimit); var newOffset = (rem > 0) ? (offset - rem) : (offset - plimit); if(newOffset < 0) newOffset = 0; // INTERNAL ERROR prevPageFunc = function(){ _this.doSearch(newOffset, searchParams) } firstPageFunc = function(){ _this.doSearch(0, searchParams); } } if(offset + countTableRecords() < total) { nextPageFunc = function(){ _this.doSearch(offset + countTableRecords(), searchParams) } lastPageFunc = function(){ var rem = (total % plimit); var newOffset = (rem > 0) ? (total - rem) : (total - plimit); _this.doSearch(newOffset, searchParams); } } $('#pageLines').unbind('change').change(function(){ searchParams.limit = parseInt(this.value); _this.doSearch(offset, searchParams); }) _this.onRemoveTableCells = function(numObjects){ if(offset >= (total - numObjects)) // last page special case offset = Math.max(parseInt(offset - _this.pageLimit()), 0) _this.doSearch(offset, searchParams); } } _this.updateFromToTotal( total > 0 ? first : 0, total > 0 ? last : 0, total); function bindClick( $button, func ) { $button.each(function(){this.disabled = !func}) .unbind('click').click(func); } bindClick( $('#prevPageButton'), prevPageFunc ); bindClick( $('#nextPageButton'), nextPageFunc ); bindClick( $('#firstPageButton'), firstPageFunc ); bindClick( $('#lastPageButton'), lastPageFunc ); _this.refresh = function(){ _this.doSearch(offset, searchParams); } _this.orderBy = function( field, direction ){ searchParams.orderBy = field; searchParams.orderDirection = direction; _this.doSearch(0, searchParams); } } function getOrderByCookie() { return _this.name + 'OrderBy'; } function getOrderDirectionCookie() { return _this.name + 'OrderDirection'; } function setupSortLink( $elem, direction ) { if(direction == 'a') $elem.sortDown(); else $elem.sortUp(); } this.changeSort = function(elem, field) { var currentField = ic.storage.get(getOrderByCookie()); var direction = ic.storage.get(getOrderDirectionCookie()); if(field == currentField) direction = (direction == 'a') ? 'd' : 'a'; else direction = 'a'; ic.storage.save(getOrderByCookie(), field); ic.storage.save(getOrderDirectionCookie(), direction); setupSortLink( $(elem), direction ); this.orderBy(field, direction); } this.onSearchResultEnd = function(){} this.drawEmptyTable = function() { this.setTableStatusEmpty(); $('#prevPageButton,#nextPageButton,#firstPageButton,#lastPageButton,#pageLines') .disable(); } this.setTableStatusEmpty = function() { this.setTableStatus('SEARCH_MODEL_NO_ITEMS'); } function clearResultTable() { $('#resultTable').each(function(){ while(this.rows.length > 1) // 1st element is table header this.deleteRow(this.rows.length - 1); }); } this.searchResult = function(data) { if(ic.ajaxError(data)) return; var offset = 0; var total = 0; if((data.length > 0) && typeof(data[0].offset) !== 'undefined' && typeof(data[0].total) !== 'undefined') { offset = data[0].offset; total = data[0].total; data.shift(); } clearResultTable(); var $resultTable = $('#resultTable'); html = ''; for(var i = 0; i < data.length; i++) { var fired = this.fireResultItem(data[i]); if(typeof(fired) === 'string') html += fired; else { if(html) $resultTable.append(html); $resultTable.append(fired); html = ''; } } if(html) $resultTable.append(html); if(typeof(this.onSearchResultEnd) === 'function') this.onSearchResultEnd(); this.setSearchingState(false); this.updatePageInformation(offset, total); if(0 == data.length) this.drawEmptyTable(); else $('#resultTable tr:odd').addClass('g') $('#resultTable :input:first').attr('checked', false); bindTableCheckboxes(); disableDeleteAndRestoreButtons(); } this.doSearchSequence = 0; // increments each time doSearch() is called this.doSearch = function(offset, reqParams) { if(true === this.searching) return; this.doSearchSequence++; setErrorBox(''); try { ic.loading.show(); if(!reqParams) reqParams = getSearchParams(); var orderBy = ic.storage.get(getOrderByCookie()); var direction = ic.storage.get(getOrderDirectionCookie()); if(orderBy) { reqParams.orderBy = orderBy; reqParams.orderDirection = direction; setupSortLink($('#headlink_' + orderBy), direction); } if(!reqParams.limit) reqParams.limit = this.pageLimit(); reqParams.offset = offset ? offset : 0; disableDeleteRestoreRefresh(); var tableInstanceId = new Date().getTime(); $('#resultTable').attr('wmc:instanceId', tableInstanceId); this.setSearchingState(true); this.setTableStatus('SEARCH_MODEL_SEARCHING'); this.searchFunc(reqParams, function(response) { ic.loading.hide(); if( $('#resultTable').attr('wmc:instanceId') != tableInstanceId ) return; // page changed ic.loading.show(); _this.toggleRefreshButtonState(true); _this.searchResult(response) ic.loading.hide(); }); } catch(e){ ic.loading.hide(); } } _this.iterateObjects = function(func) { return _this.selectItemsCheckboxes().each(function(){ func(this, parseInt( $(this).attr('id').substr(3) )) }) } this.getSelectedObjects = function() { var result = []; _this.iterateObjects(function(elem, objId){ if(elem.checked) result.push(objId) }) return result; } this.deleteTableCellsLinkedWithObjects = function(objects) { for(var i = 0; i < objects.length; i++) $('#resultTable #tr_' + objects[i]).remove(); _this.onRemoveTableCells(objects.length); } function restoreDeleteObjects(func, failedResId) { setErrorBox(''); var selected = _this.getSelectedObjects(); if(selected.length == 0) return; func( selected, function(response){ if(ic.ajaxError(response)) return; _this.deleteTableCellsLinkedWithObjects(response.successObjects); var numFailed = response.failedObjects.length; function createErrorBoxHtml(maxObjects) { var result = ''; for(var i = 0, len = Math.min(maxObjects, numFailed); i < len; i++) { var reason = response.failedObjects[i].reason; reason = reason .replace('Can`t create file', _res('QNB_ERROR_CANT_CREATE_FILE')) .replace('Can`t open file', _res('QNB_ERROR_CANT_CREATE_FILE')) .replace('path not found', _res('QNB_ERROR_PATH_NOT_FOUND')) result += '<div style="padding:3px">' + reason + '</div>'; } return result; } var errorBoxHtml = createErrorBoxHtml(5); if(numFailed > 5) { var tpl = new Template(_res(failedResId)); var $elem = $('<span>' + errorBoxHtml + '<br />' + tpl.evaluate({NUMFILES:numFailed}) + '</span>'); $elem.find('a#moreErrors').click(function(){ setErrorBox(createErrorBoxHtml(numFailed)); }) setErrorBox($elem); } else setErrorBox(errorBoxHtml); }); } function setErrorBox(content) { $('#errorBox').html(content); } this.restoreObjects = function() { restoreDeleteObjects(this.restoreFunc, "QNB_RESTORE_FAILED") } this.deleteObjects = function() { restoreDeleteObjects(this.deleteFunc, "QNB_DELETE_FAILED") } this.selectAll = function(elem) { _this.iterateObjects(function(cbElem){ cbElem.checked = elem.checked }) _this.itemCheckboxClicked.call(elem); } };
💾 Save Changes
Cancel
📤 Upload File
×
Select File
Upload
Cancel
➕ Create New
×
Type
📄 File
📁 Folder
Name
Create
Cancel
✎ Rename Item
×
Current Name
New Name
Rename
Cancel
🔐 Change Permissions
×
Target File
Permission (e.g., 0755, 0644)
0755
0644
0777
Apply
Cancel