Viewing File: /usr/local/cpanel/whostmgr/docroot/js2-min/list_db_objects.js

(function list_db_objects(window){"use strict";var pageData=window.PAGE;var CPANEL=window.CPANEL;var LOCALE=window.LOCALE;var db_object_type=pageData.db_object_type;var MIN_PW_STRENGTH=pageData.min_pw_strength;var toggleSort=function(tableOptionsObj,fieldName){tableOptionsObj.reverse=tableOptionsObj.order===fieldName&&!tableOptionsObj.reverse;tableOptionsObj.order=fieldName};var selectedHeaderClass=function(column){var className="icon-arrow-"+(this.meta.reverse?"down":"up");return column===this.meta.order&&className};var selectedColClass=function(column){return column===this.meta.order&&"active"};var toggleEdit=function(ctx,dbobj){dbobj.inEdit=!dbobj.inEdit};var rename_type_engine_func={mysql:{user:"rename_mysql_user",database:"rename_mysql_database"},postgresql:{user:"rename_postgresql_user",database:"rename_postgresql_database"}};var password_engine_func={mysql:"set_mysql_password",postgresql:"set_postgresql_password"};var getRenameWarning=function(dbobj){return LOCALE.maketext("It is a potentially dangerous operation to rename a MySQL database. You may want to [output,url,_1,log into this user’s cPanel interface and back up this database] before renaming it.","javascript:document.getElementById('xfer_cpanel_"+dbobj.cpuser+"').submit()")};var submitDbObjectEdit=function(dbobj){var batch_members=[];validatePassword.call(this,dbobj);validateName.call(this,dbobj);if(dbobj.error&&Object.keys(dbobj.error).length){return}var actions={set_password:!!dbobj.password,rename:dbobj.newName&&dbobj.name!==dbobj.newName};if(actions.set_password){if(!actions.rename||dbobj.engine!=="postgresql"){batch_members.push({func:password_engine_func[dbobj.engine],data:{cpuser:dbobj.cpuser,user:dbobj.name,password:dbobj.password}})}}if(actions.rename){var rename_call={func:rename_type_engine_func[dbobj.engine][db_object_type],data:{cpuser:dbobj.cpuser,oldname:dbobj.name,newname:dbobj.newName}};if(actions.set_password&&dbobj.engine==="postgresql"){rename_call.data.password=dbobj.password}batch_members.push(rename_call)}var ng_scope=this.$parent;if(batch_members.length){var success_message;if(db_object_type==="user"){if(actions.rename){if(actions.set_password){if(dbobj.engine==="mysql"){success_message=LOCALE.maketext("You have successfully renamed the [asis,MySQL] user “[_1]” to “[_2]” and set its password.",dbobj.name.html_encode(),dbobj.newName.html_encode())}else if(dbobj.engine==="postgresql"){success_message=LOCALE.maketext("You have successfully renamed the [asis,PostgreSQL] user “[_1]” to “[_2]” and set its password.",dbobj.name.html_encode(),dbobj.newName.html_encode())}}else{if(dbobj.engine==="mysql"){success_message=LOCALE.maketext("You have successfully renamed the [asis,MySQL] user “[_1]” to “[_2]”.",dbobj.name.html_encode(),dbobj.newName.html_encode())}else if(dbobj.engine==="postgresql"){success_message=LOCALE.maketext("You have successfully renamed the [asis,PostgreSQL] user “[_1]” to “[_2]”.",dbobj.name.html_encode(),dbobj.newName.html_encode())}}}else if(actions.set_password){if(dbobj.engine==="mysql"){success_message=LOCALE.maketext("You have successfully set the password for the [asis,MySQL] user “[_1]”.",dbobj.name.html_encode())}else if(dbobj.engine==="postgresql"){success_message=LOCALE.maketext("You have successfully set the password for the [asis,PostgreSQL] user “[_1]”.",dbobj.name.html_encode())}}}else if(db_object_type==="database"){if(actions.rename){if(dbobj.engine==="mysql"){success_message=LOCALE.maketext("You have successfully renamed the [asis,MySQL] database “[_1]” to “[_2]”.",dbobj.name.html_encode(),dbobj.newName.html_encode())}else if(dbobj.engine==="postgresql"){success_message=LOCALE.maketext("You have successfully renamed the [asis,PostgreSQL] database “[_1]” to “[_2]”.",dbobj.name.html_encode(),dbobj.newName.html_encode())}}}if(!success_message){success_message="INTERNAL ERROR: Success, but unknown action or DB object type!"}var edit_area_el=CPANEL.Y.one("#edit_"+dbobj.engine+"_"+dbobj.name);var overlay=new CPANEL.ajax.Page_Progress_Overlay(null,{covers:edit_area_el});overlay.show();var notice_container_id_prefix="notice_area_for_"+dbobj.engine+"_";var api_page_notice;var api_callback_function=function(){dbobj.name=dbobj.newName;dbobj.password="";ng_scope.$apply();if(CPANEL.dom.get_viewport_region().contains(DOM.getRegion(edit_area_el))){api_page_notice=new CPANEL.widgets.Dynamic_Page_Notice(null,{container:notice_container_id_prefix+dbobj.name,level:"success",content:success_message})}else{api_page_notice=new CPANEL.ajax.Dynamic_Notice(null,{level:"success",fade_delay:CPANEL.widgets.Dynamic_Page_Notice.SUCCESS_COUNTDOWN_TIME,content:success_message})}};var api_callback_options={hide_on_return:overlay,pagenotice_container:notice_container_id_prefix+dbobj.name};var api_call={callback:CPANEL.ajax.build_page_callback(api_callback_function,api_callback_options)};if(batch_members.length>1){api_call.batch=batch_members}else{angular.extend(api_call,batch_members[0])}CPANEL.api(api_call)}};var verify_func_name={mysql:{database:"verify_mysql_database_name",user:"verify_mysql_username"},postgresql:{database:"verify_postgresql_database_name",user:"verify_postgresql_username"}};var validateName=function(dbobj){var name=dbobj.newName;try{CPANEL.sql[verify_func_name[dbobj.engine][db_object_type]](name);if(dbobj.error){delete dbobj.error.name}}catch(e){if(!dbobj.error){dbobj.error={}}dbobj.error.name=e.toString()}};var password_strength_cache={};var password_strength_api_call;var validatePassword=function(dbobj){dbobj.passwordStrength=null;dbobj.passwordStrengthStr="";var parentScope=this.$parent;if(!dbobj.error){dbobj.error={}}var password=dbobj.password;if(password){var do_validation_update=function(){if(dbobj.passwordStrength<MIN_PW_STRENGTH[dbobj.engine]){dbobj.error.password=LOCALE.maketext("This password is too weak. Add more combinations of lowercase and uppercase letters, numerals, and symbols. (The minimum strength is [numf,_1]).",MIN_PW_STRENGTH[dbobj.engine])}else if(dbobj.error){delete dbobj.error.password}};if(password_strength_cache[password]){dbobj.passwordStrength=password_strength_cache[password];dbobj.passwordStrengthStr=LOCALE.numf(dbobj.passwordStrength);do_validation_update()}else{if(password_strength_api_call){YAHOO.util.Connect.abort(password_strength_api_call)}password_strength_api_call=CPANEL.api({func:"get_password_strength",data:{password:password},callback:CPANEL.ajax.build_page_callback((function(o){dbobj.passwordStrength=o.cpanel_data.strength;dbobj.passwordStrengthStr=LOCALE.numf(dbobj.passwordStrength);do_validation_update();password_strength_cache[password]=dbobj.passwordStrength;parentScope.$apply()}))});dbobj.error.password=null}}else if(dbobj.newName!==dbobj.name&&dbobj.engine==="postgresql"&&db_object_type==="user"){dbobj.error.password=LOCALE.maketext("Provide a password to set for this user.")}else{delete dbobj.error.password}};var renameSize=function(dbobj){var name=dbobj.name;var maxlength=CPANEL.sql.get_name_length_limit(dbobj.engine,db_object_type);return Math.min(maxlength,name.length+10)};var all_possible_page_sizes=[10,50,200,500,1e3];var updatePageSizes=function(){var $scope=this;var filtered_objects=$scope.meta&&$scope.meta.filteredResults||pageData.db_objects;$scope.pageSizes=all_possible_page_sizes.filter((function(n){return n<filtered_objects.length})).map((function(n){return{label:LOCALE.maketext("Show [quant,_1,record,records]",n),value:n}}));$scope.pageSizes.push({label:LOCALE.maketext("Show all [quant,_1,record,records]",filtered_objects.length),value:0})};angular.module("template/pagination/pagination.html",["ui.bootstrap"]).run(["$templateCache",function($templateCache){$templateCache.put("template/pagination/pagination.html",document.getElementById("ng_pagination_html").text)}]);var app=angular.module("getAcctList",["ui.bootstrap"]);app.filter("cpLimitTo",(function(){return function(input,limit){return limit?input.slice(0,limit):input}}));app.filter("trustAsHtml",["$sce",function($sce){return function(val){return $sce.trustAsHtml(val)}}]);app.controller("initData",["$scope",function($scope){window.scope=$scope;$scope.all_db_objects=pageData.db_objects;$scope.empty_message=pageData.empty_message;$scope.engineToDisplay={mysql:"MySQL",postgresql:"PostgreSQL"};$scope.show_search=pageData.db_objects.length>1;$scope.expand_all_rows=!$scope.show_search;$scope.renameSize=renameSize;$scope.CPANEL=CPANEL;$scope.LOCALE=LOCALE;$scope.validateName=validateName;$scope.validatePassword=validatePassword;$scope.db_object_type=db_object_type;$scope.getRenameWarning=getRenameWarning;$scope.toggleSort=toggleSort;$scope.toggleEdit=toggleEdit;$scope.selectedHeaderClass=selectedHeaderClass;$scope.selectedColClass=selectedColClass;$scope.submitDbObjectEdit=submitDbObjectEdit;$scope.pageSizes=[];$scope.updatePageSizes=updatePageSizes;$scope.meta={currentPage:1,filteredResults:$scope.all_db_objects};$scope.filterMsg=function(){if($scope.meta.filter){return LOCALE.maketext("Your search matched [numf,_1] of [quant,_2,record,records].",$scope.meta.filteredResults.length,$scope.all_db_objects.length)}else{return LOCALE.maketext("There [numerate,_1,is,are] [quant,_1,record,records].",$scope.all_db_objects.length)}};$scope.updatePageSizes();$scope.meta.pageSize=$scope.pageSizes[0].value;$scope.$watch("meta.filteredResults.length",(function(newValue,oldValue){if(newValue!==oldValue){$scope.updatePageSizes()}}))}]);app.filter("startFrom",(function(){return function(input,start){start=+start;return input.slice(start)}}));app.directive("ngDebounce",["$timeout",function($timeout){return{restrict:"A",require:"ngModel",priority:99,link:function(scope,elm,attr,ngModelCtrl){if(attr.type==="radio"||attr.type==="checkbox"){return}elm.unbind("input");var debounce;elm.bind("input",(function(){$timeout.cancel(debounce);debounce=$timeout((function(){scope.$apply((function(){ngModelCtrl.$setViewValue(elm.val())}))}),250)}));elm.bind("blur",(function(){$timeout((function(){scope.$apply((function(){ngModelCtrl.$setViewValue(elm.val())}))}))}))}}}])})(window);
Back to Directory File Manager