File manager - Edit - /usr/local/cpanel/whostmgr/docroot/templates/greylist/views/trustedHosts.min.js
Back
define(["angular","jquery","lodash","cjt/util/locale","app/util/ipPadder","uiBootstrap","cjt/directives/toggleSortDirective","cjt/directives/pageSizeDirective","cjt/decorators/paginationDecorator","cjt/decorators/growlDecorator","cjt/filters/startFromFilter","app/services/GreylistDataSource"],(function(angular,$,_,LOCALE,ipPad){var app=angular.module("App");var controller=app.controller("trustedHostsController",["$scope","$rootScope","$filter","$uibModal","GreylistDataSource","growl",function($scope,$rootScope,$filter,$uibModal,GreylistDataSource,growl){$scope.trustedHosts=GreylistDataSource.trustedHosts;$scope.ips_to_delete=[];$scope.netblock=[];$scope.netblockTrusted=false;$scope.newTrustedHosts="";$scope.newTrustedHostComment="";$scope.current_ip=null;$scope.current_comment="";$scope.modal_instance=null;$scope.addingBatchToTrustedHosts=false;$scope.delete_in_progress=false;$scope.ip_being_edited=false;$scope.list_loading=false;$scope.selectAllCheckbox=false;$scope.selecting_page_size=false;$scope.trustedHostsReverse=false;$scope.updating_comment=false;$scope.ipAddressExampleText="<strong>"+LOCALE.maketext("Examples:")+"</strong><br>169.254.1.1<br>169.254.1.10-169.254.1.10<br>169.254.0.0/16<br>2001:db8::<br>2001:db8::-2001:db8:ffff:ffff:ffff:ffff:ffff:ffff<br>2001:db8::/32";$scope.meta={sortDirection:"asc",sortBy:"hostIp",sortType:"",sortReverse:false,maxPages:0,totalRows:$scope.trustedHosts.length||0,pageNumber:1,pageNumberStart:0,pageNumberEnd:0,pageSize:20,pageSizes:[20,50,100]};var filters={filter:$filter("filter"),orderBy:$filter("orderBy"),startFrom:$filter("startFrom"),limitTo:$filter("limitTo")};$scope.editTrustedHost=function(trustedHost){$scope.current_ip=trustedHost.host_ip;$scope.current_comment=trustedHost.comment;$scope.ip_being_edited=true;var trustedHostCommentField=$("#currentTrustedHostComment");var wait_id=setInterval((function(){if(trustedHostCommentField.is(":visible")){trustedHostCommentField.focus();if($scope.current_comment===""){var commentField=document.getElementById("currentTrustedHostComment");commentField.innerHTML="";if(commentField.setSelectionRange){commentField.setSelectionRange(0,1)}}trustedHostCommentField.select();clearInterval(wait_id)}}),250)};$scope.cancelTrustedHostEditing=function(){$scope.current_ip=null;$scope.current_comment="";$scope.ip_being_edited=false;$scope.focusOnListEditor()};$scope.deleteTooltip=function(ipAddress){return LOCALE.maketext("Click to delete “[_1]” from the Trusted Hosts list.",ipAddress)};$scope.editTooltip=function(ipAddress){return LOCALE.maketext("Click to edit the comment for “[_1]”.",ipAddress)};$scope.itemsAreChecked=function(){return $(".selectItem").filter(":checked").length>0};$scope.checkSelection=function(){if($(".selectItem").filter(":not(:checked)").length===0){$scope.selectAllCheckbox=true}else{$scope.selectAllCheckbox=false}};$scope.toggleSelection=function(selectAll){if(selectAll){$scope.selectAll()}else{$scope.deselectAll()}};$scope.changePageSize=function(){return $scope.loadList({reset_focus:false})};$scope.fetchPage=function(page){$scope.selectAllCheckbox=false;if(page&&angular.isNumber(page)){$scope.meta.pageNumber=page}return $scope.loadList()};$scope.sortList=function(meta){$scope.deselectAll();$scope.meta.sortReverse=meta.sortDirection==="asc"?false:true;$scope.filteredList()};$scope.orderByComments=function(){var checkForComment=function(trustedHost){return trustedHost.comment!==""};var ipsWithComments=_.filter($scope.trustedHosts,checkForComment);var ipsNoComments=_.reject($scope.trustedHosts,checkForComment);ipsWithComments=_.sortBy(ipsWithComments,(function(trustedHost){return trustedHost.comment}));ipsNoComments=_.sortBy(ipsNoComments,(function(trustedHost){return trustedHost.host_ip}));var stuck_together=ipsWithComments.concat(ipsNoComments);if($scope.meta.sortDirection==="desc"){return stuck_together.reverse()}return stuck_together};$scope.filteredList=function(){var filteredList=[];var start,limit;filteredList=$scope.trustedHosts;if($scope.meta.sortDirection!==""&&$scope.meta.sortBy!==""){if($scope.meta.sortBy==="hostIp"){filteredList=filters.orderBy(filteredList,$scope.ipPadder,$scope.meta.sortReverse)}else{filteredList=$scope.orderByComments()}}$scope.meta.totalRows=$scope.trustedHosts.length;start=($scope.meta.pageNumber-1)*$scope.meta.pageSize;limit=$scope.meta.pageSize;filteredList=filters.limitTo(filters.startFrom(filteredList,start),limit);$scope.meta.pageNumberStart=start+1;$scope.meta.pageNumberEnd=$scope.meta.pageNumber*$scope.meta.pageSize;if($scope.meta.totalRows===0){$scope.meta.pageNumberStart=0}if($scope.meta.pageNumberEnd>$scope.meta.totalRows){$scope.meta.pageNumberEnd=$scope.meta.totalRows}$scope.meta.filteredList=filteredList;return filteredList};$scope.loadList=function(options){if(GreylistDataSource.enabled()&&!$scope.list_loading){$scope.list_loading=true;$scope.meta.filteredList=[];var reset_focus=true;var force=false;if(typeof options!=="undefined"){reset_focus=options.hasOwnProperty("reset_focus")?options.reset_focus:true;force=options.hasOwnProperty("force")?options.force:false}return GreylistDataSource.loadTrustedHosts(force).then((function(){$scope.trustedHosts=GreylistDataSource.trustedHosts;$scope.filteredList();if(force){return $scope.isServerNetblockTrusted()}}),(function(error){growl.error(error)})).finally((function(){$scope.isListEmpty();if(reset_focus){$scope.focusOnListEditor()}$scope.selecting_page_size=false;$scope.list_loading=false}))}return null};$scope.isServerNetblockTrusted=function(){return GreylistDataSource.isServerNetblockTrusted().then((function(result){$scope.netblock=result.netblock;$scope.netblockTrusted=result.status;if($scope.$parent){$scope.$parent.growlTrustMyNeighbors(result.untrusted,result.status)}}),(function(error){growl.error(error)}))};$scope.forceLoadTrustedHosts=function(){$scope.trustedHosts=[];$scope.meta.filteredList=[];$scope.isListEmpty();return $scope.loadList({force:true})};$scope.isListEmpty=function(){var result=$scope.trustedHosts.length===0||$scope.meta.filteredList.length===0;if(result){$scope.selectAllCheckbox=false}return result};$scope.deleteConfirmationMessage=function(){if($scope.ips_to_delete.length===1){return LOCALE.maketext("Do you want to permanently delete “[_1]” from the Trusted Hosts list?",$scope.ips_to_delete[0])}else{return LOCALE.maketext("Do you want to permanently delete [quant,_1,record,records] from the Trusted Hosts list?",$scope.ips_to_delete.length)}};$scope.deleteIps=function(is_single_deletion){$scope.clearModalInstance();GreylistDataSource.deleteTrustedHosts($scope.ips_to_delete).then((function(results){$scope.trustedHosts=GreylistDataSource.trustedHosts;$scope.filteredList();$scope.focusOnListEditor();$scope.isListEmpty();if(results.removed&&results.removed.length===1){growl.success(LOCALE.maketext("You have successfully deleted “[_1]” from the Trusted Hosts list.",_.escape(results.removed[0])))}else if(results.removed){growl.success(LOCALE.maketext("You have successfully deleted [quant,_1,record,records] from the Trusted Hosts list.",results.removed.length))}if(results.not_removed.keys&&results.not_removed.keys.length>0){growl.warning(LOCALE.maketext("The system was unable to delete [quant,_1,record,records] from the Trusted Hosts list.",results.not_removed.keys.length))}}),(function(error){growl.error(error)})).finally((function(){$scope.delete_in_progress=false;$scope.ips_to_delete=[];if(!is_single_deletion){$scope.deselectAll()}}))};$scope.confirmDeletion=function(trustedHostToDelete){if($scope.trustedHosts.length===0){return false}$scope.delete_in_progress=true;if(trustedHostToDelete!==void 0){$scope.ips_to_delete=[trustedHostToDelete.host_ip];$scope.is_single_deletion=true}else{var selected_items=[],$selectedDomNodes=$(".selectItem:checked");if($selectedDomNodes.length===0){return false}$selectedDomNodes.each((function(){selected_items.push($(this).data("ip"))}));$scope.ips_to_delete=selected_items;$scope.is_single_deletion=false}$scope.modal_instance=$uibModal.open({templateUrl:"modal/confirmTrustedHostDeletion.html",scope:$scope});return true};$scope.clearModalInstance=function(){if($scope.modal_instance){$scope.modal_instance.close();$scope.modal_instance=null}};$scope.cancelDeletion=function(){$scope.delete_in_progress=false;$scope.ips_to_delete=[];$scope.clearModalInstance();$scope.focusOnListEditor()};$scope.confirmDeleteAll=function(){if($scope.trustedHosts.length===0){return false}$scope.delete_in_progress=true;$scope.modal_instance=$uibModal.open({templateUrl:"modal/confirmTrustedHostsDeleteAll.html",scope:$scope});return true};$scope.cancelDeleteAll=function(){$scope.delete_in_progress=false;$scope.clearModalInstance();$scope.focusOnListEditor()};$scope.deleteAll=function(){$scope.clearModalInstance();GreylistDataSource.deleteAllTrustedHosts().then((function(results){$scope.trustedHosts=GreylistDataSource.trustedHosts;$scope.filteredList();$scope.focusOnListEditor();$scope.isListEmpty();if(results.not_removed.keys&&results.not_removed.keys.length>0){growl.success(LOCALE.maketext("You have successfully deleted [quant,_1,record,records] from the Trusted Hosts list.",results.removed.keys.length));growl.warning(LOCALE.maketext("The system was unable to delete [quant,_1,record,records] from the Trusted Hosts list.",results.not_removed.keys.length))}else{growl.success(LOCALE.maketext("You have deleted all records from the Trusted Hosts list."))}}),(function(error){growl.error(error)})).finally((function(){$scope.delete_in_progress=false;$scope.deselectAll()}))};$scope.selectAll=function(){if($scope.trustedHosts.length===0){return false}$(".selectItem").prop("checked",true);$scope.selectAllCheckbox=true;return true};$scope.deselectAll=function(){if($scope.trustedHosts.length===0){return false}$(".selectItem").prop("checked",false);$scope.selectAllCheckbox=false;return true};$scope.focusOnListEditor=function(){var batchField=$("#batchAdd");var wait_id=setInterval((function(){if(batchField.is(":visible")){batchField.focus();batchField.select();clearInterval(wait_id)}}),250)};$scope.trustMyServerNetblock=function(){if($scope.netblockTrusted){return}var comment="The server's neighboring IP addresses";return $scope.$parent.addTrustedHost($scope.netblock,comment).then((function(result){$scope.trustedHosts=GreylistDataSource.trustedHosts;$scope.filteredList();if(result.status){$scope.netblockTrusted=true;if(result.rejected.length>0){$scope.newTrustedHosts=result.rejected.join("\n")}}})).finally((function(){$scope.isListEmpty()}))};$scope.untrustMyServerNetblock=function(){if(!$scope.netblockTrusted){return}return GreylistDataSource.deleteTrustedHosts($scope.netblock).then((function(results){$scope.trustedHosts=GreylistDataSource.trustedHosts;$scope.filteredList();if(results.removed){$scope.netblockTrusted=false;if(results.removed.length===1){growl.success(LOCALE.maketext("You have successfully deleted “[_1]” from the Trusted Hosts list.",_.escape(results.removed[0])))}else{growl.success(LOCALE.maketext("You have successfully deleted [quant,_1,record,records] from the Trusted Hosts list.",results.removed.length))}}if(results.not_removed.keys&&results.not_removed.keys.length>0){growl.warning(LOCALE.maketext("The system was unable to delete [quant,_1,record,records] from the Trusted Hosts list.",results.not_removed.keys.length))}}),(function(error){growl.error(error)})).finally((function(){$scope.isListEmpty()}))};$scope.addToTrustedHosts=function(){if(!$scope.newTrustedHosts||$scope.addingBatchToTrustedHosts){return}var batch=$scope.newTrustedHosts.split("\n");var trimmed_batch=[];for(var i=0;i<batch.length;i++){var trimmed_item=batch[i].trim();if(trimmed_item.length>0&&trimmed_batch.indexOf(trimmed_item)===-1){trimmed_batch.push(trimmed_item)}}$scope.addingBatchToTrustedHosts=true;return $scope.$parent.addTrustedHost(trimmed_batch,$scope.newTrustedHostComment).then((function(result){$scope.trustedHosts=GreylistDataSource.trustedHosts;$scope.filteredList();if(result.status){if(result.rejected.length>0){$scope.newTrustedHosts=result.rejected.join("\n")}else{$scope.newTrustedHosts="";$scope.newTrustedHostComment=""}}})).finally((function(){$scope.addingBatchToTrustedHosts=false;$scope.focusOnListEditor();$scope.isListEmpty()}))};$scope.updateTrustedHostComment=function(){if($scope.updating_comment){return}$scope.updating_comment=true;GreylistDataSource.addTrustedHosts([$scope.current_ip],$scope.current_comment).then((function(results){var rejected_messages=[];$scope.trustedHosts=GreylistDataSource.trustedHosts;$scope.filteredList();for(var i=0;i<results.updated.length;i++){growl.success(LOCALE.maketext("You have successfully updated the comment for “[_1]”.",_.escape(results.updated[i])))}var ips_rejected=Object.keys(results.rejected);for(var ed=0;ed<ips_rejected.length;ed++){rejected_messages.push(_.escape(ips_rejected[ed])+": "+_.escape(results.rejected[ips_rejected[ed]]))}if(rejected_messages.length>0){var accumulated_messages=LOCALE.maketext("Some records failed to update.")+"<br>";accumulated_messages+=rejected_messages.join("<br>");growl.error(accumulated_messages)}}),(function(error){growl.error(error)})).finally((function(){$scope.updating_comment=false;$scope.cancelTrustedHostEditing()}))};$scope.ipPadder=function(trustedHost){return ipPad.ipPadder(trustedHost.host_ip)};$scope.$watch((function(){return GreylistDataSource.enabled()}),(function(){$scope.loadList({force:true})}));$scope.$watch((function(){return $scope.$parent.isNetblockTrusted}),(function(){$scope.netblockTrusted=$scope.$parent.isNetblockTrusted}));var updateListEvent=$rootScope.$on("TrustedHosts.UPDATE_LIST",(function(){$scope.loadList()}));$scope.$on("$destroy",updateListEvent);$scope.focusOnListEditor()}]);return controller}));
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Generation time: 0.05 |
proxy
|
phpinfo
|
Settings