Viewing File: /usr/local/cpanel/whostmgr/docroot/templates/easyapache4/index.cmb.min.js
define("app/services/ea4Util",["angular","cjt/util/locale","lodash","cjt/io/api","cjt/io/whm-v1-request","cjt/io/whm-v1","cjt/services/APIService"],(function(e,t,a){"use strict";e.module("whm.easyapache4.ea4Util",[]).factory("ea4Util",["wizardState",function(n){var i={eaRegex:/^ea-/i,phpVerRegex:/^ea-php(\d{2})$/i,phpExtRegex:/^ea-php(\d{2}-)/i,apacheVerRegex:/^ea-apache(\d{2})$/i,rubyVerRegex:/^ea-ruby(\d{2})/i,apacheModulesRegex:/^ea-apache(\d{2}-)/i,additionalPkgList:[],defaultMeta:{filterList:{},filterValue:"",isEmptyList:!1,showPager:!0,maxPages:0,totalItems:0,currentPage:1,pageSize:10,pageSizes:[10,20,50,100],start:0,limit:10},pkgActions:{removeList:[],addList:[],actionNeeded:!1},vhostWarning:{exist:!1,text:""},multiRequirements:{exist:!1,orList:[],chosenPackage:""},autoSelectExt:{list:[],text:"",errorList:[],show:!1,showError:!1,showCommonExtensions:!1},checkUpdateInfo:{isLoading:!0,pkgNumber:0,btnText:t.maketext("Checking for updates …"),btnTitle:t.maketext("Checking for updates …"),btnCss:"btn-ea4-looking-updates disabled"},cachedPrefixes:null,cachePrefixes:function(e){i.cachedPrefixes=e},getCachedPrefixes:function(){return i.cachedPrefixes||[]},gatherAllRequirementsOfPkgs:function(e,t){var n=[];return a.each(e,(function(e){if(!a.includes(n,e)){var o=t[e];if(void 0!==o){var s=i.recurseForRequires(o,e,n,t);void 0!==s&&(n=s)}n.push(e)}})),n},recurseForRequires:function(e,t,n,o){var s=e.package,r=i.getCachedPrefixes(),c=["ea"].concat(r);if(a.some(c,(function(e){return s.startsWith(e+"-")}))&&!a.includes(n,s)){void 0!==t&&s!==t&&n.push(s);var l=[];return e.pkg_dep.requires.length>0&&(l=a.clone(e.pkg_dep.requires),l=a.filter(l,(function(e){return"string"==typeof e&&!a.isArray(e)&&a.some(c,(function(t){return e.startsWith(t+"-")}))})),l=a.difference(l,n)),a.forEach(l,(function(e){var a=o[e];void 0!==a&&i.recurseForRequires(a,t,n,o)})),n}},getFormattedPackageList:function(e,t){var n=[],o=i.getCachedPrefixes()||[],s=["ea"].concat(o);return a.each(e,(function(e){var o,r="ea",c=a.find(s,(function(t){return e.startsWith(t+"-")}));c&&(r=c),o="ea"===r?i._getReadableName(e,t):e,n.push(o)})),n},getFormattedPackageName:function(e,t){return i._getReadableName(e,t)},_getReadableName:function(e,t){var a=e;if(void 0!==t&&""!==t)a=e.replace(t,"");else if(i.apacheModulesRegex.test(e))a=e.replace(i.apacheModulesRegex,"");else{var n=i.getCachedPrefixes()||[],o="^("+["ea"].concat(n).join("|")+")-",s=new RegExp(o);a=s.test(e)?e.replace(s,""):e}return"php"===a&&(a="php (DSO)"),a},getProfilePackagesByCategories:function(e){return i._pkgByCategory(e)},_pkgByCategory:function(e){var n={},o=[],s=[],r=[],c=[],l="",u="ea",p=i.getCachedPrefixes(),d=["ea"].concat(p);(a.each(e,(function(e){if(i.apacheVerRegex.test(e)){l=e;var t=e.match(new RegExp("^("+d.join("|")+")-apache"));t&&(u=t[1])}else i.apacheModulesRegex.test(e)?o=a.concat(o,e):i.phpVerRegex.test(e)?c=a.concat(c,e):i.phpExtRegex.test(e)?s=a.concat(s,e):r=a.concat(r,e)})),o.length>0)&&(l=i._getReadableName(l,i.eaRegex),n[u+"_"+l]={name:i.versionToString(l),prefix:"ea"!==u?u:null,packages:i.getFormattedPackageListForProfile(o,i.apacheModulesRegex)});return c.length>0&&a.each(c.sort(),(function(e){var t=new RegExp("^"+a.escapeRegExp(e)+"-"),o=a.filter(s,(function(e){return t.test(e)}));s=a.difference(s,o);var r=i._getReadableName(e,i.eaRegex),c="ea",l=e.match(new RegExp("^("+d.join("|")+")-php"));l&&(c=l[1]),n[c+"_"+r]={name:i.versionToString(r).replace("Php","PHP"),prefix:"ea"!==c?c:null,packages:i.getFormattedPackageListForProfile(o,i.phpExtRegex)}})),r.length>0&&(n.others={name:t.maketext("Additional Packages"),prefix:null,packages:i.getFormattedPackageListForProfile(r,/^ea-/)}),n},getFormattedPackageListForProfile:function(e,t){var n=[];return a.each(e,(function(e){var a=i._getReadableName(e,t);n.push(a)})),n},versionToString:function(e){return e.replace(/^([a-z]+)(\d)(\d)$/,(function(e,t,n,i){return a.capitalize(t)+" "+n+"."+i}))},getPackageLabel:function(e,t){var a="";return e?"updatable"===t?a="Update":"installed"!==t&&"updatable"!==t?a="Install":"installed"===t&&(a="Unaffected"):"installed"!==t&&"updatable"!==t||(a="Uninstall"),a},getPackageClass:function(e,t){var a;return e?(a="callout",a+="updatable"===t?" callout-info":" callout-success"):a="installed"===t||"updatable"===t?"callout callout-warning":"no-callout",a},getDefaultMetaData:function(){return a.clone(i.defaultMeta)},getDefaultPageSizes:function(){return i.defaultMeta.pageSizes},getUpdatedMetaData:function(e,t){if(void 0!==e&&a.keys(e).length<=0)return t.isEmptyList=!0,t.totalItems=0,t;var n=t.filterValue;if(n){var o=new RegExp(".*"+n+".*","i");e=a.pickBy(e,(function(e,t){return o.test(e.package)||o.test(e.short_description)}))}var s=a.keys(e),r=i.getDefaultPageSizes();r=a.filter(r,(function(e){return e<=s.length})),t.pageSizes=r;var c=s.length;if(c>a.min(r)){var l=(t.currentPage-1)*t.pageSize,u=l+t.pageSize;u=u>c?c:u,e=a.pick(e,a.slice(s,l,u)),t.start=l+1,t.limit=u,t.showPager=!0}else t.showPager=!1,0===s.length?t.start=0:t.start=1,t.limit=s.length;return t.totalItems=c,t.filterList=e,t.isEmptyList=a.keys(t.filterList).length<=0,t},getPageShowingText:function(e){var a="";return e&&void 0!==e.start&&void 0!==e.limit&&void 0!==e.totalItems&&(a=t.maketext("[output,strong,Showing] [_1] - [_2] of [_3] items",e.start,e.limit,e.totalItems)),a},getExtensionsForPHPVersion:function(e,t){var n=new RegExp(e+".*","i");return a.filter(t,(function(e){return n.test(e)}))},decideShowHideRecommendations:function(e,n,o,s){return a.each(e,(function(e){if(!a.isUndefined(e)&&(e.show=void 0!==o&&(o?"add"===e.on:"remove"===e.on),e.show)){var r=s;i.phpVerRegex.test(s)&&(r=i._getReadableName(s,i.eaRegex),r=i.versionToString(r).replace("Php","PHP"));var c=t.makevar(e.name);e.displayName=t.maketext("Recommendations for “[_1]”: [_2]",r,c),e.desc=t.makevar(e.desc),e.showFootnote=!1;var l=!0;a.each(e.options,(function(i){a.isNil(i.recommended)||(i.title=i.recommended?t.maketext("Recommended"):t.maketext("Not Recommended")),i.text=t.makevar(i.text),i.show=!0,a.isEmpty(i.items)?i.show=l:(l=i.show=a.isEmpty(a.intersection(i.items,n)),e.showFootnote||(e.showFootnote=i.show))})),e.show=!a.every(e.options,["show",!1])}})),e},getExtensionsOfSelectedPHPVersions:function(e,t,n){var o=[],s=!1,r=a.filter(a.keys(e),(function(e){return i.phpVerRegex.test(e)})).sort(),c=a.filter(n,(function(e){return i.phpVerRegex.test(e)})).sort();if(a.isEqual(r,c))c=r,o=a.keys(t);else if(c.length>0){var l=a.keys(t);a.each(c,(function(e){var t=new RegExp(e+".*","i"),n=a.remove(l,(function(e){return t.test(e)}));o=a.concat(o,n)}))}else s=!0;return{versions:c,extensions:o,noPHPSelected:s}},validateFilename:function(e){var a={valid:!0,valMsg:""};return/^\.{1,2}$/.test(e)?(a.valid=!1,a.valMsg=t.maketext("Filename [output,strong,cannot] be “[output,strong,_1]”.",e)):/\/|\0/.test(e)&&(a.valid=!1,a.valMsg=t.maketext("Filename [output,strong,cannot] include the following characters: [list_and,_1]",["/","NUL"])),a},setupVhostWarning:function(e,a){e.vhostWarning.exist=!0;var n=t.maketext("[quant,_1,virtual host currently uses,virtual hosts currently use] this version of PHP. If you remove this PHP version, your virtual hosts may not work properly.",a);return n=n.replace(/^(\d+)/,"<span class='vhost-emphasis'>$1</span>"),e.vhostWarning.text=n,e},resetVhostWarning:function(t){t.vhostWarning=e.copy(i.vhostWarning)},createTagsForActiveProfile:function(e){var t=[],n=!1,o=new Set,s=i.getCachedPrefixes()||[],r=["ea"].concat(s),c=new RegExp("^("+r.join("|")+")-php(\\d{2})$","i"),l=new RegExp("^("+r.join("|")+")-apache(\\d{2})$","i"),u=new RegExp("^("+r.join("|")+")-ruby(\\d{2})","i");return a.each(e,(function(e){var i,s=e.match(l);if(s){i="Apache "+s[2].replace(/(\d)(\d)$/,"$1.$2"),t=a.concat(t,i)}else{var r=e.match(c);if(r){var p="PHP "+r[2].replace(/(\d)(\d)$/,"$1.$2");o.has(p)||(o.add(p),t=a.concat(t,p))}var d=e.match(u);if(d&&!n)i="Ruby "+d[2].replace(/(\d)(\d)$/,"$1.$2"),t=a.concat(t,i),n=!0}})),t},checkMPMRequirement:function(e,n,i,o){var s=/mod[-_]mpm/,r=a.filter(a.uniq(n.removeList),(function(e){return s.test(e)}));!o&&s.test(e.package)&&(r=a.union(r,[e.package]));var c=a.difference(i,r),l=a.findIndex(c,(function(e){return s.test(e)})),u=a.findIndex(n.addList,(function(e){return s.test(e)}));return-1===l&&-1===u&&(e.mpmMissing=!0,e.mpmMissingMsg=t.maketext("Your selection removed [list_and,_1].",r)+" "+t.maketext("An [asis,MPM] package must exist on your system. Click “Continue” to select a new [asis,MPM] package.")+" "+t.maketext("Click “Cancel” to cancel this operation."),e.actions.actionNeeded=!1),e},getCommonlyInstalledExtensions:function(e,t){var n=a.map(a.filter(e,["selectedPackage",!0]),"package"),o=[];a.each(t,(function(e,t){o[t]=a.chain(n).filter((function(t){return a.startsWith(t,e)})).map((function(e){return a.replace(e,i.phpExtRegex,"")})).value()}));var s=[];if(1===o.length)s=o[0];else{for(var r=a.map(o,(function(e){var t={};return a.each(e,(function(e){var a=function(e){return 0===e.indexOf("php-")?e.substring(4):e}(e);t[a]&&0!==e.indexOf("php-")||(t[a]=e)})),t})),c=a.keys(r[0]),l=1;l<r.length;l++)c=a.intersection(c,a.keys(r[l]));s=a.map(c,(function(e){for(var t=0;t<r.length;t++){var a=r[t][e];if(a&&0===a.indexOf("php-"))return a}return r[0][e]}))}return a.pullAll(s,["php","scldevel"]),s},doRubyPkgsExist:function(e){return a.some(e,(function(e){return i.rubyVerRegex.test(e.package)}))},updateRegexForPrefixes:function(e){var t=["ea"].concat(e||[]),a="("+t.join("|")+")";i.eaRegex=new RegExp("^("+t.join("|")+")-","i"),i.phpVerRegex=new RegExp("^"+a+"-php(\\d{2})$","i"),i.phpExtRegex=new RegExp("^"+a+"-php(\\d{2}-)","i"),i.apacheVerRegex=new RegExp("^"+a+"-apache(\\d{2})$","i"),i.apacheModulesRegex=new RegExp("^"+a+"-apache(\\d{2}-)","i"),i.rubyVerRegex=new RegExp("^"+a+"-ruby(\\d{2})","i")},doAdditionalPkgsExist:function(e,t){return a.some(e,(function(e){return a.includes(a.keys(t),e)}))},showFooter:function(){n.showFooter=!0},hideFooter:function(){n.showFooter=!1}};return i}])}));var LZString=function(){var e=String.fromCharCode,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",n={};function i(e,t){if(!n[e]){n[e]={};for(var a=0;a<e.length;a++)n[e][e.charAt(a)]=a}return n[e][t]}var o={compressToBase64:function(e){if(null==e)return"";var a=o._compress(e,6,(function(e){return t.charAt(e)}));switch(a.length%4){default:case 0:return a;case 1:return a+"===";case 2:return a+"==";case 3:return a+"="}},decompressFromBase64:function(e){return null==e?"":""==e?null:o._decompress(e.length,32,(function(a){return i(t,e.charAt(a))}))},compressToUTF16:function(t){return null==t?"":o._compress(t,15,(function(t){return e(t+32)}))+" "},decompressFromUTF16:function(e){return null==e?"":""==e?null:o._decompress(e.length,16384,(function(t){return e.charCodeAt(t)-32}))},compressToUint8Array:function(e){for(var t=o.compress(e),a=new Uint8Array(2*t.length),n=0,i=t.length;n<i;n++){var s=t.charCodeAt(n);a[2*n]=s>>>8,a[2*n+1]=s%256}return a},decompressFromUint8Array:function(t){if(null==t)return o.decompress(t);for(var a=new Array(t.length/2),n=0,i=a.length;n<i;n++)a[n]=256*t[2*n]+t[2*n+1];var s=[];return a.forEach((function(t){s.push(e(t))})),o.decompress(s.join(""))},compressToEncodedURIComponent:function(e){return null==e?"":o._compress(e,6,(function(e){return a.charAt(e)}))},decompressFromEncodedURIComponent:function(e){return null==e?"":""==e?null:(e=e.replace(/ /g,"+"),o._decompress(e.length,32,(function(t){return i(a,e.charAt(t))})))},compress:function(t){return o._compress(t,16,(function(t){return e(t)}))},_compress:function(e,t,a){if(null==e)return"";var n,i,o,s={},r={},c="",l="",u="",p=2,d=3,f=2,g=[],m=0,v=0;for(o=0;o<e.length;o+=1)if(c=e.charAt(o),Object.prototype.hasOwnProperty.call(s,c)||(s[c]=d++,r[c]=!0),l=u+c,Object.prototype.hasOwnProperty.call(s,l))u=l;else{if(Object.prototype.hasOwnProperty.call(r,u)){if(u.charCodeAt(0)<256){for(n=0;n<f;n++)m<<=1,v==t-1?(v=0,g.push(a(m)),m=0):v++;for(i=u.charCodeAt(0),n=0;n<8;n++)m=m<<1|1&i,v==t-1?(v=0,g.push(a(m)),m=0):v++,i>>=1}else{for(i=1,n=0;n<f;n++)m=m<<1|i,v==t-1?(v=0,g.push(a(m)),m=0):v++,i=0;for(i=u.charCodeAt(0),n=0;n<16;n++)m=m<<1|1&i,v==t-1?(v=0,g.push(a(m)),m=0):v++,i>>=1}0==--p&&(p=Math.pow(2,f),f++),delete r[u]}else for(i=s[u],n=0;n<f;n++)m=m<<1|1&i,v==t-1?(v=0,g.push(a(m)),m=0):v++,i>>=1;0==--p&&(p=Math.pow(2,f),f++),s[l]=d++,u=String(c)}if(""!==u){if(Object.prototype.hasOwnProperty.call(r,u)){if(u.charCodeAt(0)<256){for(n=0;n<f;n++)m<<=1,v==t-1?(v=0,g.push(a(m)),m=0):v++;for(i=u.charCodeAt(0),n=0;n<8;n++)m=m<<1|1&i,v==t-1?(v=0,g.push(a(m)),m=0):v++,i>>=1}else{for(i=1,n=0;n<f;n++)m=m<<1|i,v==t-1?(v=0,g.push(a(m)),m=0):v++,i=0;for(i=u.charCodeAt(0),n=0;n<16;n++)m=m<<1|1&i,v==t-1?(v=0,g.push(a(m)),m=0):v++,i>>=1}0==--p&&(p=Math.pow(2,f),f++),delete r[u]}else for(i=s[u],n=0;n<f;n++)m=m<<1|1&i,v==t-1?(v=0,g.push(a(m)),m=0):v++,i>>=1;0==--p&&(p=Math.pow(2,f),f++)}for(i=2,n=0;n<f;n++)m=m<<1|1&i,v==t-1?(v=0,g.push(a(m)),m=0):v++,i>>=1;for(;;){if(m<<=1,v==t-1){g.push(a(m));break}v++}return g.join("")},decompress:function(e){return null==e?"":""==e?null:o._decompress(e.length,32768,(function(t){return e.charCodeAt(t)}))},_decompress:function(t,a,n){var i,o,s,r,c,l,u,p=[],d=4,f=4,g=3,m="",v=[],h={val:n(0),position:a,index:1};for(i=0;i<3;i+=1)p[i]=i;for(s=0,c=Math.pow(2,2),l=1;l!=c;)r=h.val&h.position,h.position>>=1,0==h.position&&(h.position=a,h.val=n(h.index++)),s|=(r>0?1:0)*l,l<<=1;switch(s){case 0:for(s=0,c=Math.pow(2,8),l=1;l!=c;)r=h.val&h.position,h.position>>=1,0==h.position&&(h.position=a,h.val=n(h.index++)),s|=(r>0?1:0)*l,l<<=1;u=e(s);break;case 1:for(s=0,c=Math.pow(2,16),l=1;l!=c;)r=h.val&h.position,h.position>>=1,0==h.position&&(h.position=a,h.val=n(h.index++)),s|=(r>0?1:0)*l,l<<=1;u=e(s);break;case 2:return""}for(p[3]=u,o=u,v.push(u);;){if(h.index>t)return"";for(s=0,c=Math.pow(2,g),l=1;l!=c;)r=h.val&h.position,h.position>>=1,0==h.position&&(h.position=a,h.val=n(h.index++)),s|=(r>0?1:0)*l,l<<=1;switch(u=s){case 0:for(s=0,c=Math.pow(2,8),l=1;l!=c;)r=h.val&h.position,h.position>>=1,0==h.position&&(h.position=a,h.val=n(h.index++)),s|=(r>0?1:0)*l,l<<=1;p[f++]=e(s),u=f-1,d--;break;case 1:for(s=0,c=Math.pow(2,16),l=1;l!=c;)r=h.val&h.position,h.position>>=1,0==h.position&&(h.position=a,h.val=n(h.index++)),s|=(r>0?1:0)*l,l<<=1;p[f++]=e(s),u=f-1,d--;break;case 2:return v.join("")}if(0==d&&(d=Math.pow(2,g),g++),p[u])m=p[u];else{if(u!==f)return null;m=o+o.charAt(0)}v.push(m),p[f++]=o+m.charAt(0),o=m,0==--d&&(d=Math.pow(2,g),g++)}}};return o}();"function"==typeof define&&define.amd?define("lz-string",[],(function(){return LZString})):"undefined"!=typeof module&&null!=module?module.exports=LZString:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",(function(){return LZString})),define("app/services/ea4Data",["angular","lodash","cjt/io/api","cjt/io/whm-v1-request","cjt/io/whm-v1","cjt/services/APIService","app/services/ea4Util","lz-string"],(function(e,t,a,n,i,o,s,r){"use strict";e.module("whm.easyapache4.ea4Data",[]).factory("ea4Data",["$q","$location","ea4Util","APIService",function(e,i,o,s){var c={isReadyForProvision:!1,updateRegexesForPrefixes:function(e){var t="("+["ea"].concat(e||[]).join("|")+")";c.mpmRegex=new RegExp(t+"-apache\\d{2}-mod[_-]mpm.*","i"),c.modulesRegex=new RegExp(t+"-apache\\d{2}-mod.*","i"),c.phpRegex=new RegExp("^"+t+"-php\\d{2}$","i"),c.phpExtRegex=new RegExp(t+"-php\\d{2}-.*","i"),c.rubyRegex=new RegExp(t+"-ruby\\d{2}-.*","i")}};c.updateRegexesForPrefixes([]),c.provisionReady=function(e){if("boolean"!=typeof e)return c.isReadyForProvision;c.isReadyForProvision=e},c.getProfiles=function(){var t=e.defer(),i=new n.Class;return i.initialize("","ea4_list_profiles"),a.promise(i.getRunArguments()).done((function(e){(e=e.parsedResponse).status?t.resolve(e.raw.data):t.reject(e.error)})),t.promise},c.getVhostsByPhpVersion=function(t){var i=e.defer(),o=new n.Class;return o.initialize("","php_get_vhosts_by_version"),o.addArgument("version",t),a.promise(o.getRunArguments()).done((function(e){(e=e.parsedResponse).status?i.resolve(e.data):i.reject(e.error)})),i.promise},c.ea4GetCurrentPkgList=function(){var e=new n.Class,t=new s;return e.initialize("","ea4_get_currently_installed_packages"),t.deferred(e).promise},c.getEA4MetaInfo=function(){var e=new n.Class,t=new s;return e.initialize("","ea4_metainfo"),t.deferred(e).promise},c.getPkgInfoForAdditionalPackages=function(e){var a={};return t.each(o.additionalPkgList,(function(t){var n=e[t];void 0!==n&&(a[t]=n)})),a},c.getPkgInfoSubset=function(e,t){var a;if("additional"===e)return c.getPkgInfoForAdditionalPackages(t);switch(e){case"mpm":a=c.mpmRegex;break;case"modules":a=c.modulesRegex;break;case"php":a=c.phpRegex;break;case"extensions":a=c.phpExtRegex;break;case"ruby":a=c.rubyRegex}return c.filterByRegex(a,t)},c.filterByRegex=function(e,a){var n={};if(void 0===e)return a;var i=t.filter(t.keys(a),(function(t){return e.test(t)}));return i.sort(),t.each(i,(function(e){n[e]=a[e]})),n},c.resolvePackages=function(i){var s=e.defer();return c.getAdditionalPkgPrefixes().then((function(e){o.cachePrefixes(e),o.updateRegexForPrefixes(e);var r=["ea"].concat(e);if(i&&0!==i.length){var c=new n.Class;c.initialize("","package_manager_resolve_actions");var l=0,u=0;t.each(r,(function(e){0===l?c.addArgument("ns",e):c.addArgument("ns-"+l,e),l++})),t.each(i,(function(e){0===u?c.addArgument("package",e):c.addArgument("package-"+u,e),u++})),a.promise(c.getRunArguments()).done((function(e){(e=e.parsedResponse)&&e.status&&e.raw&&e.raw.data?s.resolve(e.raw.data):s.resolve({install:[],uninstall:[],upgrade:[],unaffected:[]})})).fail((function(e){s.reject(e)}))}else s.resolve({install:[],uninstall:[],upgrade:[],unaffected:[]})}),(function(e){o.cachePrefixes([]),o.updateRegexForPrefixes([]);var r=t.filter(i,(function(e){return e.startsWith("ea-")}));if(0!==r.length){var c=new n.Class;c.initialize("","package_manager_resolve_actions"),c.addArgument("ns","ea"),t.each(r,(function(e,t){0===t?c.addArgument("package",e):c.addArgument("package-"+t,e)})),a.promise(c.getRunArguments()).done((function(e){(e=e.parsedResponse)&&e.status&&e.raw&&e.raw.data?s.resolve(e.raw.data):s.resolve({install:[],uninstall:[],upgrade:[],unaffected:[]})})).fail((function(e){s.reject(e)}))}else s.resolve({install:[],uninstall:[],upgrade:[],unaffected:[]})})),s.promise},c.doProvision=function(i,o,s,r){var c=e.defer(),l=new n.Class;return l.initialize("","package_manager_submit_actions"),t.each(i,(function(e,t){l.addArgument("install-"+t,e)})),t.each(o,(function(e,t){l.addArgument("uninstall-"+t,e)})),t.each(s,(function(e,t){l.addArgument("upgrade-"+t,e)})),a.promise(l.getRunArguments()).done((function(e){e=e.parsedResponse,c.resolve(e.raw.data)})),c.promise},c.tailingLog=function(t,i){var o=e.defer(),s=new n.Class;return s.initialize("","package_manager_get_build_log"),s.addArgument("build",t),s.addArgument("offset",i),a.promise(s.getRunArguments()).done((function(e){e=e.parsedResponse,o.resolve(e.raw.data)})),o.promise},c.getPkgInfoList=function(){var i=e.defer();return c.getAdditionalPkgPrefixes().then((function(s){o.cachePrefixes(s),o.updateRegexForPrefixes(s);var r=["ea"].concat(s),c=[];t.each(r,(function(e){var t=new n.Class;t.initialize("","package_manager_get_package_info"),t.addArgument("ns",e),c.push(a.promise(t.getRunArguments()))})),e.all(c).then((function(e){var a={};t.each(e,(function(e){(e=e.parsedResponse).status&&e.raw.data&&e.raw.data.packages&&t.each(e.raw.data.packages,(function(e){a[e.package]=e}))})),i.resolve(a)})).catch((function(e){i.reject(e)}))}),(function(e){o.cachePrefixes([]),o.updateRegexForPrefixes([]);var s=new n.Class;s.initialize("","package_manager_get_package_info"),s.addArgument("ns","ea"),a.promise(s.getRunArguments()).done((function(e){e=e.parsedResponse;var a={};t.each(e.raw.data.packages,(function(e){a[e.package]=e})),i.resolve(a)})).fail((function(e){i.reject(e)}))})),i.promise},c.cancelOperation=function(){c.clearEA4LocalStorageItems(),i.path("profile")},c.clearEA4LocalStorageItems=function(){localStorage.removeItem("pkgInfoList"),localStorage.removeItem("selectedProfile"),localStorage.removeItem("selectedPkgs"),localStorage.removeItem("provisionActions"),localStorage.removeItem("customize"),localStorage.removeItem("ea4Recommendations"),localStorage.removeItem("ea4RawPkgList"),localStorage.removeItem("ea4Update"),o.hideFooter()},c.setData=function(e){t.each(t.keys(e),(function(t){try{localStorage.setItem(t,r.compress(JSON.stringify(e[t])))}catch(e){console.error("Error storing localStorage item "+t+": ",e)}}))},c.getData=function(e){try{var t=localStorage.getItem(e);if(!t)return null;var a=r.decompress(t);return a?JSON.parse(a):JSON.parse(t)}catch(e){return null}},c.initPkgUIProps=function(e){return e.actions=o.pkgActions,e.recommendations=[],e.multiRequirements=o.multiRequirements,e.vhostWarning=o.vhostWarning,e.mpmMissing=!1,e.mpmMissingMsg="",e.autoSelectExt=[],e};return c.buildPkgInfoList=function(e,a,n){var i={},s=o.getCachedPrefixes()||[],r=["ea"].concat(s);return a=t.filter(a,(function(e){return!/.*\-debuginfo/.test(e.package)})),t.each(a,(function(e){var a=e.package;e=c.initPkgUIProps(e),t.isEmpty(n[a])||(e.recommendations=n[a]);var s="ea",l=t.find(r,(function(e){return a.startsWith(e+"-")}));l&&(s=l),e.prefix="ea"!==s?s:null,e.selectedPackage=!1,e.displayName=o.getFormattedPackageName(a),e.filterName="ea"===s?o.getFormattedPackageName(a):a,e.reviewDisplayName="ea"===s?o.getFormattedPackageName(a):a,i[a]=e})),i=function(e,a){var n=o.gatherAllRequirementsOfPkgs(e,a);return t.each(n,(function(e){void 0!==a[e]&&(a[e].selectedPackage=!0)})),a}(e,i),i},c.fixYumCache=function(){var e=new n.Class,t=new s;return e.addArgument("ns","ea"),e.initialize("","package_manager_fixcache"),t.deferred(e).promise},c.saveAsNewProfile=function(i,o,s){var r=e.defer(),c=new n.Class;return c.initialize("","ea4_save_profile"),c.addArgument("filename",o),c.addArgument("name",i.name),c.addArgument("overwrite",s),c.addArgument("desc",i.desc||""),c.addArgument("version",i.version||""),t.each(i.pkgs,(function(e,t){c.addArgument("pkg-"+t,e)})),t.each(i.tags,(function(e,t){c.addArgument("tag-"+t,e)})),a.promise(c.getRunArguments()).done((function(e){(e=e.parsedResponse).status?r.resolve(e.data):r.reject(e)})),r.promise},c.getEA4Recommendations=function(){var e=new n.Class,t=new s;return e.initialize("","ea4_recommendations"),t.deferred(e).promise},c.getUploadContentFromUrl=function(t){var i=e.defer(),o=new n.Class;return o.initialize("","cors_proxy_get"),o.addArgument("url",t),a.promise(o.getRunArguments()).done((function(e){(e=e.parsedResponse).status?i.resolve(e.data):i.reject(e.error)})),i.promise},c.dataIsAvailable=function(){return!!c.getData("pkgInfoList")},c.getPkgInfoByType=function(e,t){var a=[];return e&&(a=c.getPkgInfoSubset(e,t)),a},c.getAdditionalPkgPrefixes=function(){var t=e.defer(),i=new n.Class;return i.initialize("","ea4_get_additional_pkg_prefixes"),a.promise(i.getRunArguments()).done((function(e){(e=e.parsedResponse).status?t.resolve(e.raw.data.additional_pkg_prefixes):t.reject(e.raw.metadata.reason)})),t.promise},{provisionReady:c.provisionReady,getProfiles:c.getProfiles,ea4GetCurrentPkgList:c.ea4GetCurrentPkgList,cancelOperation:c.cancelOperation,getPkgInfoForAdditionalPackages:c.getPkgInfoForAdditionalPackages,getAdditionalPkgPrefixes:c.getAdditionalPkgPrefixes,getPkgInfoSubset:c.getPkgInfoSubset,updateRegexesForPrefixes:c.updateRegexesForPrefixes,filterByRegex:c.filterByRegex,clearEA4LocalStorageItems:c.clearEA4LocalStorageItems,resolvePackages:c.resolvePackages,doProvision:c.doProvision,tailingLog:c.tailingLog,getPkgInfoList:c.getPkgInfoList,setData:c.setData,getData:c.getData,initPkgUIProps:c.initPkgUIProps,buildPkgInfoList:c.buildPkgInfoList,getVhostsByPhpVersion:c.getVhostsByPhpVersion,fixYumCache:c.fixYumCache,saveAsNewProfile:c.saveAsNewProfile,getEA4Recommendations:c.getEA4Recommendations,getUploadContentFromUrl:c.getUploadContentFromUrl,dataIsAvailable:c.dataIsAvailable,getPkgInfoByType:c.getPkgInfoByType,getEA4MetaInfo:c.getEA4MetaInfo}}])})),define("app/directives/eaWizard",["angular","cjt/core","lodash","cjt/util/locale","cjt/filters/qaSafeIDFilter","app/services/ea4Data","app/services/ea4Util"],(function(e,t,a,n){"use strict";e.module("App").directive("eaWizard",["$timeout","ea4Data","ea4Util","wizardApi","pkgResolution",function(i,o,s,r,c){var l="directives/eaWizard.ptt",u="templates/easyapache4/"+l;return{replace:!0,restrict:"E",templateUrl:t.config.debug?t.buildFullPath(u):l,scope:{idPrefix:"@",totalPackageInfoList:"=",selectedPackages:"=",metaData:"=",stepName:"@",stepIndex:"@",stepTitle:"@",stepPath:"@",stepNext:"@",onToggleFn:"&",showSearch:"@",showPagination:"@"},link:function(t,l,u){var p=function(e){e.multiRequirements.exist=!1;var a=e.multiRequirements.chosenPackage,n=c.continueResolvingDependencies(e,t.totalPackageInfoList[a],a,t.totalPackageInfoList,t.selectedPackages);return n.orListExist?(e.multiRequirements=c.setupMultiRequirementForUserInput(t.totalPackageInfoList),!1):n.actionNeeded?(e=c.setupConDepCallout(e,t.totalPackageInfoList),!1):t.applyDependency(e)},d=function(e){var n=t.php.commonExtensions,i=!/^ea-/i.test(e);n=a.map(n,(function(a){var n=e+"-"+a;if(t.totalPackageInfoList[n])return n;if(i&&0===a.indexOf("php-")){var o=e+"-"+a.substring(4);if(t.totalPackageInfoList[o])return o}if(!i&&0!==a.indexOf("php-")){var s=e+"-php-"+a;if(t.totalPackageInfoList[s])return s}return n}));var o,r,l,u=(o=e,r=[],(l=c.getAllDepsRecursively(!0,t.totalPackageInfoList[o],o,t.totalPackageInfoList,t.selectedPackages))&&(r=s.getExtensionsForPHPVersion(o,l.requiredPkgs)),r);return n=a.filter(n,(function(e){var n=!1;return void 0===t.totalPackageInfoList[e]||a.includes(u,e)||(n=!0),n})),a.map(n,(function(e){return{package:e,displayName:s.getFormattedPackageName(e),isSelected:!0}}))},f=function(a){var i,r,c=!a.selectedPackage,l=a.package;if(c){if(t.checkDependency(a),a.selectedPackage){a.autoSelectExt=e.copy(s.autoSelectExt),a.autoSelectExt.list=d(a.package);var u=a.autoSelectExt.list.length;a.autoSelectExt.text=n.maketext("In addition to the dependencies that this version of [asis,PHP] requires, the system detected [quant,_1,extension,extensions] of all other installed PHP versions that it will install for this version.",u);var p=(i=l.match(s.phpVerRegex),r="",i&&(r="PHP "+i[1].replace(/(\d)(\d)$/,"$1.$2")),r);a.autoSelectExt.okText=n.maketext("[_1][comment,package name] and Extensions[comment,action text]",p),a.autoSelectExt.cancelText=n.maketext("[_1][comment,package name] Only[comment,action text]",p),a.autoSelectExt.show=u>0&&!a.actions.actionNeeded}}else{var f=0;o.getVhostsByPhpVersion(l).then((function(e){(void 0!==e&&(f=e.length),f>0)?a=s.setupVhostWarning(a,f):t.checkDependency(a)&&t.php.updatePHPExtensionList(a)}),(function(e){})),a.autoSelectExt=e.copy(s.autoSelectExt)}};t.php={commonExtensions:[],updatePHPExtensionList:function(e){if(!e.selectedPackage){var n=s.getExtensionsForPHPVersion(e.package,t.selectedPackages);a.each(n,(function(e){void 0!==t.totalPackageInfoList[e]&&(t.totalPackageInfoList[e].selectedPackage=!1),a.pull(t.selectedPackages,e)}))}},continueCheckDependency:function(e){s.resetVhostWarning(e);var a=t.checkDependency(e);!e.selectedPackage&&a&&t.php.updatePHPExtensionList(e)},resetVhostWarning:function(e){return s.resetVhostWarning(e)}},t.extensions={_extToConsider:[],_extensionList:{},noPHPSelected:!1,filterPHPExtensions:function(){var e=t.phpVersions,n=[];a.each(e,(function(e){if(e.selected){var i=new RegExp(e.version+".*","i"),o=a.filter(t.extensions._extToConsider,(function(e){return i.test(e)}));n=a.union(n,o)}})),t.currPkgInfoList=a.pick(t.extensions._extensionList,n),t.applyMetaData()},showPhpFilterTags:function(){return"extensions"===t.stepName&&!a.isEmpty(t.extensions._extensionList)}},t.toggleLabel=function(e){return s.getPackageLabel(e.selectedPackage,e.state)},t.packageClass=function(e){return s.getPackageClass(e.selectedPackage,e.state)},t.applyDependency=function(e){var n=e.package,i=t.selectedPackages,r=c.getResolvedData();return e.mpmMissing=!1,e.mpmMissingMsg="",(!e.actions.actionNeeded||!(e=s.checkMPMRequirement(e,r,i,e.selectedPackage)).mpmMissing)&&(a.each(r.removeList,(function(e){a.pull(i,e),void 0!==t.totalPackageInfoList[e]&&(t.totalPackageInfoList[e].selectedPackage=!1)})),a.each(r.addList,(function(e){i=a.concat(i,e),void 0!==t.totalPackageInfoList[e]&&(t.totalPackageInfoList[e].selectedPackage=!0)})),e.selectedPackage||(a.pull(i,n),void 0!==t.totalPackageInfoList[n]&&(t.totalPackageInfoList[n].selectedPackage=!1)),t.selectedPackages=i,e=c.resetPkgResolveActions(e),o.setData({pkgInfoList:t.totalPackageInfoList}),!0)},t.checkDependency=function(e){var n,i=e.package,o=t.selectedPackages;if(e.actions={removeList:[],addList:[],actionNeeded:!1},e.selectedPackage=t.totalPackageInfoList[i].selectedPackage=n=!e.selectedPackage,e.recommendations=s.decideShowHideRecommendations(e.recommendations,t.selectedPackages,n,i),e.showRecommendations=!a.every(e.recommendations,["show",!1]),n){var r=c.resolveDependenciesWhenSelected(e,o,t.totalPackageInfoList);return r.orListExist?(e.multiRequirements=c.setupMultiRequirementForUserInput(t.totalPackageInfoList),!1):r.actionNeeded?(e=c.setupConDepCallout(e,t.totalPackageInfoList),!1):e.showRecommendations?(e.actions.actionNeeded=!0,!1):t.applyDependency(e)}if(c.resolveDependenciesWhenUnSelected(e,o,t.totalPackageInfoList),e.showRecommendations)return e.actions.actionNeeded=!0,!1;e.mpmMissing=!1,e.mpmMissingMsg="";var l=c.getResolvedData();return!(e=s.checkMPMRequirement(e,l,o,n)).mpmMissing&&t.applyDependency(e)},t.applyMetaData=function(){t.metaData=s.getUpdatedMetaData(t.currPkgInfoList,t.metaData)},t.getShowingText=function(){return s.getPageShowingText(t.metaData)},t.showSearchPageSection=function(){return"extensions"!==t.stepName||"extensions"===t.stepName&&!t.extensions.noPHPSelected},t.showEmptyMessage=function(){return"extensions"===t.stepName?!t.extensions.noPHPSelected&&t.metaData.isEmptyList:t.metaData.isEmptyList},t.showToggleSwitch=function(e){return"php"===t.stepName?!(e.actions.actionNeeded||e.multiRequirements.exist||e.mpmMissing||e.vhostWarning.exist):!e.actions.actionNeeded&&!e.multiRequirements.exist&&!e.mpmMissing},t.initializeSelection=function(e){"php"===t.stepName?f(e):t.checkDependency(e)},t.php.resetAutoSelectExtensions=function(t){t.autoSelectExt=e.copy(s.autoSelectExt)},t.php.performAutoSelect=function(e){var n=a.filter(e.autoSelectExt.list,["isSelected",!0]);a.each(n,(function(a){var n=a.package,i=!0,o=t.selectedPackages,s=t.totalPackageInfoList[n];c.resetCommonVariables(),s.selectedPackage=i;var r=c.resolveDependenciesWhenSelected(s,o,t.totalPackageInfoList);if(!r.orListExist&&!r.actionNeeded)return t.applyDependency(s);s.selectedPackage=!1,e.autoSelectExt.errorList.push(n)})),e.autoSelectExt.errorList.length>0?e.autoSelectExt.showError=!0:t.php.resetAutoSelectExtensions(e)},t.continueProcess=function(e){return"php"===t.stepName?void((a=e).selectedPackage?p(a):p(a)&&t.php.updatePHPExtensionList(a)):p(e);var a},t.finalizeSelection=function(e){var a;"php"===t.stepName?(a=e).selectedPackage?(t.applyDependency(a),t.php.autoSelectExtList=d(a.package),a.autoSelectExt.show=a.autoSelectExt.list.length>0&&!a.actions.actionNeeded):t.applyDependency(a)&&t.php.updatePHPExtensionList(a):t.applyDependency(e)},t.resetSelection=function(e){e.selectedPackage=!e.selectedPackage,e=c.resetPkgResolveActions(e)},t.proceed=function(e){o.setData({pkgInfoList:t.totalPackageInfoList,selectedPkgs:t.selectedPackages}),r.next(e)};!function(){t.showSearch=!1,t.showPagination=!1;var e=r.getStepByName(t.stepName);if(void 0!==e&&(t.stepIndex=e.stepIndex||-1,t.stepPath=e.path||"",t.stepTitle=e.title||"",t.idPrefix=e.name||"eaWizard",t.stepNext=e.nextStep||""),t.currPkgInfoList=o.getPkgInfoByType(t.stepName,t.totalPackageInfoList),t.metaData=s.getDefaultMetaData(),t.applyMetaData(t.currPkgInfoList,t.metaData),i((function(){l.find("#wizard-step-title").focus()})),"extensions"===t.stepName){var n=t.currPkgInfoList,c=s.getExtensionsOfSelectedPHPVersions(t.totalPackageInfoList,n,t.selectedPackages);t.extensions.noPHPSelected=c.noPHPSelected,t.phpVersions=a.map(c.versions,(function(e){if(void 0!==t.totalPackageInfoList[e])return{version:t.totalPackageInfoList[e].package,name:t.totalPackageInfoList[e].filterName||t.totalPackageInfoList[e].displayName,selected:!0}})),t.extensions._extToConsider=c.extensions,t.extensions._extensionList=a.pick(n,t.extensions._extToConsider),t.currPkgInfoList=t.extensions._extensionList,t.applyMetaData()}else if("php"===t.stepName){var u=o.getPkgInfoByType("extensions",t.totalPackageInfoList),p=a.map(a.filter(t.currPkgInfoList,(function(e){return"not_installed"!==e.state})),"package");t.php.commonExtensions=s.getCommonlyInstalledExtensions(u,p)}}()}}}])})),define("app/directives/saveAsProfile",["angular","cjt/util/locale","cjt/core","lodash","cjt/decorators/growlDecorator","app/services/ea4Data","app/services/ea4Util","cjt/directives/validationContainerDirective","cjt/directives/validationItemDirective"],(function(e,t,a,n){e.module("App").directive("saveAsProfile",["ea4Data","ea4Util","growl","growlMessages",function(e,i,o,s){var r={name:"",filename:{name:"",valMsg:""},tags:[],description:"",version:"",overwrite:!1},c="directives/saveAsProfile.ptt",l="templates/easyapache4/"+c;return{replace:!0,restrict:"E",templateUrl:a.config.debug?a.buildFullPath(l):c,scope:{idPrefix:"@",packages:"=",actionHandler:"=",position:"@",onCancel:"&",onSaveSuccess:"&",onSaveError:"&",show:"@",saveButtonText:"@"},link:function(a,c,l){a.saveAsData=n.cloneDeep(r),a.highlightOverwrite=!1,a.actionHandler=a.actionHandler||{},a.idPrefix=a.idPrefix||"save",a.position=a.position||"top",a.saveButtonText=a.saveButtonText||t.maketext("Save");var u=function(){a.saveAsData=n.cloneDeep(r),a.form&&a.form.$dirty&&(a.form.txtFilename.$setValidity("invalidFilename",!0),a.form.$setPristine()),n.isUndefined(a.onCancel)||a.onCancel({position:a.position})};a.actionHandler.saveForm=function(){if(s.destroyAllMessages(),n.isUndefined(a.packages))throw"Packages for the profile are not provided. Wherever this directive is used, make sure to fill the packages attribute correctly.";if(a.form.$valid){var i=a.saveAsData.overwrite?1:0,r=n.split(a.saveAsData.tagsAsString,/\s*,\s*/),c=a.saveAsData.filename.name+".json",l={name:a.saveAsData.name,desc:a.saveAsData.desc,pkgs:a.packages,tags:n.compact(r)};return e.saveAsNewProfile(l,c,i).then((function(e){void 0===e||n.isEmpty(e.path)||(o.success(t.maketext("The system successfully saved the current packages to the “[_1]” profile. It is available in the EasyApache 4 profiles page.",n.escape(a.saveAsData.name))),u(),n.isUndefined(a.onSaveSuccess)||a.onSaveSuccess())}),(function(e){void 0!==e.data&&e.data.already_exists&&(a.highlightOverwrite=!0),n.isUndefined(a.onSaveSuccess)||a.onSaveError(),o.error(n.escape(e.error))}))}},a.actionHandler.cancel=function(){u()},a.validateFilenameInput=function(){var e=i.validateFilename(a.saveAsData.filename.name);a.saveAsData.filename.valMsg=e.valMsg,a.form.txtFilename.$setValidity("invalidFilename",e.valid)}}}}])})),define("app/services/pkgResolution",["angular","lodash","cjt/io/api","cjt/io/whm-v1-request","cjt/io/whm-v1","cjt/services/APIService"],(function(e,t){"use strict";e.module("whm.easyapache4.pkgResolution",[]).factory("pkgResolution",(function(){var e={eaRegex:/^ea-/,allConflicts:[],allRequires:[],resolvedRemoveList:[],requireStructure:{safe:[],unsafe:{}},conflictStructure:{safe:[],unsafe:{}},orListStructure:{exist:!1,orLists:[]},resolvedPackages:{addList:[],removeList:[],actionNeeded:!1},resetCommonVariables:function(){e.allConflicts=[],e.allRequires=[],e.resolvedRemoveList=[],e.requireStructure={safe:[],unsafe:{}},e.conflictStructure={safe:[],unsafe:{}},e.orListStructure={exist:!1,orLists:[]},e.resolvedPackages={addList:[],removeList:[],actionNeeded:!1}},getOrListStructure:function(){return e.orListStructure},setOrListStructure:function(t){e.orListStructure=t},getResolvedData:function(){return e.resolvedPackages},resolveDependenciesWhenSelected:function(t,a,n){var i={orListExist:!1,actionNeeded:!1};if(t)if(e.recurseWhenSelected(t,t.package,n),e.allRequires.push(t.package),e.orListStructure=e.updateMultiRequirements(e.orListStructure,a,e.allRequires,e.allConflicts,n),e.orListStructure.exist)i.orListExist=e.orListStructure.exist;else{var o=e.proceedToResolveRequirementsAndConflicts(t,a,n);i.actionNeeded=o}return i},updateMultiRequirements:function(a,n,i,o,s){if(a){var r=t.clone(a.orLists);t.each(r,(function(r){var c=!1,l=t.filter(r,(function(t){return e.eaRegex.test(t)&&void 0!==s[t]})),u=[];if(!(c=t.isEmpty(l)))if(u=t.intersection(l,n),t.isEmpty(u)&&(u=t.intersection(l,i)),t.isEmpty(u)){var p=t.intersection(l,o);1===(l=t.difference(l,p)).length&&(e.allRequires=t.union(i,l),c=!0)}else 1===l.length&&(e.allRequires=t.union(i,l)),c=!0;c?t.pull(a.orLists,r):t.isEqual(r,l)||(t.pull(a.orLists,r),t.isEmpty(l)||(a.orLists=t.concat(a.orLists,[l])))})),a.exist=a.orLists.length>0}return a},continueResolvingDependencies:function(t,a,n,i,o){var s={orListExist:!1,actionNeeded:!1};if(e.recurseWhenSelected(a,n,i),e.allRequires.push(n),e.orListStructure=e.updateMultiRequirements(e.orListStructure,o,e.allRequires,e.allConflicts,i),e.orListStructure.exist)s.orListExist=e.orListStructure.exist;else{var r=e.proceedToResolveRequirementsAndConflicts(t,o,i);s.actionNeeded=r}return s},proceedToResolveRequirementsAndConflicts:function(a,n,i){var o=t.difference(e.allRequires,n);o.length>0&&(e.requireStructure=e.buildRequireStructure(o,n,i));var s=t.intersection(e.allConflicts,n);return s.length>0&&(e.conflictStructure=e.buildConflictStructure(s,n,i)),e.requireStructure=e.resolveUnsafeRequires(n,e.requireStructure,i),e.conflictStructure=e.resolveUnsafeConflicts(n,e.conflictStructure,i),e.resolvedPackages.removeList=t.union(e.resolvedRemoveList,e.conflictStructure.safe),e.resolvedPackages.addList=e.requireStructure.safe,e.resolvedPackages.actionNeeded=e.resolvedPackages.removeList.length>0,e.resolvedPackages.actionNeeded},buildRequireStructure:function(a,n,i){var o=e.requireStructure;return i&&t.each(a,(function(e){var a=!0;t.each(n,(function(n){var s=i[n];void 0!==s&&t.includes(s.pkg_dep.conflicts,e)&&(void 0===o.unsafe[e]&&(o.unsafe[e]=[]),o.unsafe[e].push(n),a=!1)})),a&&o.safe.push(e)})),o},buildConflictStructure:function(a,n,i){var o=e.conflictStructure;return t.each(a,(function(e){var a=!0;t.each(n,(function(n){var s=i[n];void 0!==s&&t.includes(s.pkg_dep.requires,e)&&(void 0===o.unsafe[e]&&(o.unsafe[e]=[]),o.unsafe[e].push(n),a=!1)})),a&&o.safe.push(e)})),o},resolveUnsafeRequires:function(a,n,i){if(n){var o=n.unsafe,s=t.keys(o);t.each(s,(function(s){var r=o[s];r=t.difference(r,e.resolvedRemoveList),t.each(r,(function(n){if(!t.includes(e.resolvedRemoveList,n)){var o=t.difference(a,e.resolvedRemoveList);e.recurseConflictRequirements(i[n],n,o,i),e.resolvedRemoveList=t.union(e.resolvedRemoveList,[n])}})),n.safe.push(s),t.unset(n.unsafe,s)})),n.unsafe={}}return n},resolveUnsafeConflicts:function(a,n,i){if(n){var o=t.omit(n.unsafe,e.resolvedRemoveList),s=t.keys(o);t.each(s,(function(s){var r=t.difference(o[s],e.resolvedRemoveList);t.each(r,(function(n){if(!t.includes(e.resolvedRemoveList,n)){var o=t.difference(a,e.resolvedRemoveList);e.recurseConflictRequirements(i[n],n,o,i),e.resolvedRemoveList=t.union(e.resolvedRemoveList,[n])}})),n.safe.push(s),t.unset(n.unsafe,s)})),n.unsafe={}}return n},recurseConflictRequirements:function(a,n,i,o){var s=a.package;n!==s&&e.resolvedRemoveList.push(s);var r=t.pull(i,s);r=t.filter(r,(function(e){var a=o[e];return void 0!==a&&t.includes(a.pkg_dep.requires,s)})),t.each(r,(function(t){e.recurseConflictRequirements(o[t],n,i,o)}))},recurseWhenSelected:function(a,n,i){if(a){var o=a.package;if(!e.eaRegex.test(o))return;if(t.includes(e.allRequires,o))return;void 0!==n&&o!==n&&e.allRequires.push(o),e.allConflicts=t.union(e.allConflicts,t.filter(a.pkg_dep.conflicts,(function(t){return e.eaRegex.test(t)})));var s=[];if(a.pkg_dep.requires.length>0){s=t.clone(a.pkg_dep.requires);var r=t.remove(s,(function(e){return t.isArray(e)}));r.length>0&&(e.orListStructure.orLists=t.unionWith(e.orListStructure.orLists,r,t.isEqual)),s=t.filter(s,(function(t){return e.eaRegex.test(t)})),s=t.difference(s,e.allRequires)}t.forEach(s,(function(t){var a=i[t];void 0!==a&&e.recurseWhenSelected(a,n,i)}))}},getAllDepsRecursively:function(t,a,n,i,o){var s={};return t?(e.recurseWhenSelected(a,n,i),s={requiredPkgs:e.allRequires,conflictPkgs:e.allConflicts}):(e.recurseWhenUnselected(a,n,i,o),s={removedList:e.resolvedRemoveList}),s},resolveDependenciesWhenUnSelected:function(a,n,i){if(a){var o=a.package;e.resolvedRemoveList.push(o),e.recurseWhenUnselected(a,o,i,n),e.resolvedPackages.removeList=t.uniq(e.resolvedRemoveList)}},recurseWhenUnselected:function(a,n,i,o){var s=a.package;if(e.eaRegex.test(s)&&!t.includes(e.allRequires,s)){void 0!==n&&s!==n&&e.allRequires.push(s);var r=[];if(o.length>0){t.each(o,(function(a){t.includes(i&&i[a]&&i[a].pkg_dep.requires,s)&&(e.resolvedRemoveList.push(a),r.push(a))})),o=t.pullAll(o,r);var c=t.remove(r,(function(e){return t.isArray(e)}));t.each(c,(function(e){t.concat(r,t.filter(e,(function(e){return void 0!==i[e]&&i[e].selectedPackage})))})),r=t.filter(r,(function(t){return e.eaRegex.test(t)})),r=t.difference(r,e.allRequires)}t.forEach(r,(function(t){var a=i[t];void 0!==a&&e.recurseWhenUnselected(a,n,i,o)}))}},setupMultiRequirementForUserInput:function(a){var n={},i=e.getOrListStructure();if(void 0!==i){var o=i.orLists.shift();if(void 0!==o&&o.length>0){var s=t.map(o,(function(e){if(void 0!==a[e])return{package:e,displayName:a[e].displayName}}));n={exist:i.exist,orList:s,chosenPackage:""}}}return n},resetPkgResolveActions:function(t){return e.resetCommonVariables(),t&&(t.actions={removeList:[],addList:[],actionNeeded:!1},t.mpmMissing=!1,t.mpmMissingMsg="",t.multiRequirements={}),t},setupConDepCallout:function(a,n){var i=e.getResolvedData();return i.actionNeeded&&(a.actions.actionNeeded=i.actionNeeded,a.actions.removeList=t.map(i.removeList,(function(e){return n[e].displayName})),a.actions.addList=t.map(i.addList,(function(e){return n[e].displayName}))),a}};return e}))})),define("app/services/wizardApi",["angular","lodash","cjt/util/locale","cjt/io/api","cjt/io/whm-v1-request","cjt/io/whm-v1","cjt/services/APIService"],(function(e,t,a){"use strict";e.module("whm.easyapache4.wizardApi",[]).factory("wizardApi",["$location","wizardState","ea4Data","ea4Util",function(e,n,i,o){var s={defaultWizardState:{showWizard:!1,showSearchAndPage:!1,currentStepIndex:0,showFooter:!1,currentStep:"",lastStepName:"",steps:{mpm:{name:"mpm",title:a.maketext("Apache [output,acronym,MPM,Multi-Processing Modules]"),path:"mpm",stepIndex:1,nextStep:"modules"},modules:{name:"modules",title:a.maketext("Apache Modules"),path:"modules",stepIndex:2,nextStep:"php"},php:{name:"php",title:a.maketext("[output,acronym,PHP,PHP Hypertext Preprocessor] Versions"),path:"php",stepIndex:3,nextStep:"extensions"},extensions:{name:"extensions",title:a.maketext("[output,acronym,PHP,PHP Hypertext Preprocessor] Extensions"),path:"extensions",stepIndex:4,nextStep:"ruby"},ruby:{name:"ruby",title:a.maketext("[asis,Ruby] via [asis,Passenger]"),path:"ruby",stepIndex:5,nextStep:"additional"},additional:{name:"additional",title:a.maketext("Additional Packages"),path:"additional",stepIndex:6,nextStep:"review"},review:{name:"review",title:a.maketext("Review"),path:"review",stepIndex:7,nextStep:""}}},getDefaultWizardState:function(){return s.defaultWizardState},rebuildWizardSteps:function(e,a){e=e||{},a.rubyPkgsExist||delete e.ruby,a.additionalPkgsExist||delete e.additional;var n=t.orderBy(t.values(e),["stepIndex"],["asc"]);return e=t.keyBy(n,(function(e){return e.name}))},init:function(){n.steps=s.defaultWizardState.steps;var e=i.getData("pkgInfoList");if(e){var t={rubyPkgsExist:o.doRubyPkgsExist(e),additionalPkgsExist:i.getData("additionalPkgsExist")};n.steps=s.rebuildWizardSteps(s.defaultWizardState.steps,t)}n.showWizard=!1,n.showSearchAndPage=!1,n.showFooter=!1,n.currentStepIndex=1,n.lastStepName="review"},updateWizard:function(e){t.each(t.keys(e),(function(t){n[t]=e[t]}))},getStepByName:function(e){return n.steps[e]},getStepNameByIndex:function(e){var a=t.find(n.steps,["stepIndex",e]);if(void 0!==a)return a.name},reset:function(){n=s.getDefaultWizardState()},next:function(t){t?(n.currentStepIndex=s.getStepByName(t).stepIndex,n.currentStep=t):(n.currentStepIndex++,t=s.getNextStepNameByIndex(n.currentStepIndex),n.currentStep=t),e.path(t)},getNextStepNameByIndex:function(e){var a=s.getLastStep().stepIndex,i=t.find(n.steps,["stepIndex",e]);if(void 0===i)for(var o=e+1;o<=a;o++)i=t.find(n.steps,["stepIndex",o]);return i?i.name:""},getLastStep:function(){return n.steps[n.lastStepName]}};return{init:s.init,getStepByName:s.getStepByName,updateWizard:s.updateWizard,next:s.next,getDefaultWizardState:s.getDefaultWizardState,reset:s.reset,rebuildWizardSteps:s.rebuildWizardSteps,getLastStep:s.getLastStep,getNextStepNameByIndex:s.getNextStepNameByIndex}}])})),define("app/directives/fileModel",["angular"],(function(e){e.module("App").directive("fileModel",["$parse",function(e){return{restrict:"A",require:"ngModel",link:function(t,a,n,i){var o=e(n.fileModel);a.bind("change",(function(){var e=this.files[0];e&&t.$apply((function(){o.assign(t,e),i.$setViewValue(i.$modelValue),i.$setDirty()}))}))}}}])})),define("app/directives/fileType",["angular"],(function(e){e.module("App").directive("fileType",[function(){return{restrict:"A",require:"ngModel",link:function(e,t,a,n){t.bind("change",(function(){var t=this.files[0];t&&!function(e,t){var a=e.type;if(""===a){var n=e.name.match(/\.((?:.(?!\.))+)$/);"json"===(a=n.length>0?n[1]:"")&&(a="application/"+a)}return t.some((function(e){return e===a}))}(t,e.$eval(a.fileType))?n.$setValidity("filetype",!1):n.$setValidity("filetype",!0)}))}}}])})),define("app/directives/fileSize",["angular"],(function(e){e.module("App").directive("fileSize",[function(){return{restrict:"A",require:"ngModel",link:function(e,t,a,n){t.bind("change",(function(){var e=this.files[0];e&&(0===e.size?n.$setValidity("fileSize",!1):n.$setValidity("fileSize",!0))}))}}}])})),define("app/views/profile",["angular","cjt/util/locale","lodash","cjt/services/alertService","cjt/directives/alertList","cjt/decorators/growlDecorator","app/directives/fileModel","app/directives/fileType","app/directives/fileSize","app/services/ea4Data","app/services/ea4Util","app/services/pkgResolution"],(function(e,t,a){"use strict";var n=e.module("App");n.controller("profile",["$scope","$timeout","$location","$uibModal","ea4Data","ea4Util","alertService","growl","growlMessages",function(n,i,o,s,r,c,l,u,p){n.profileList=[],n.activeProfile={},n.loadingProfiles=!1,n.errorOccurred=!1,n.noProfiles=!1,n.upload={show:!1,profile:{},content:{},disableLocalSec:!0,localSecIsOpen:!0,disableUrlSec:!1,urlSecIsOpen:!1,url:{value:"",filename:"",filenameValMsg:"",showFilenameInput:!1},overwrite:!1,highlightOverwrite:!1},n.convertProfile={show:!1};var d={};n.isLoading=function(){return n.loadingProfiles||n.loadingProfileData};var f=function(e){r.clearEA4LocalStorageItems(),r.setData({selectedPkgs:e.pkgs,customize:!0,ea4Recommendations:d}),o.path("loadPackages")};n.$on("$viewContentLoaded",(function(){n.customize.wizard.currentStep="",n.customize.wizard.showWizard=!1,l.clear(),r.clearEA4LocalStorageItems(),n.loadProfiles()})),n.checkForEA4Updates=function(){n.customize.checkUpdateInfo=e.copy(c.checkUpdateInfo),r.getPkgInfoList().then((function(e){if(void 0!==e){var t=e;r.setData({ea4RawPkgList:t});var i=a.map(a.filter(t,["state","updatable"]),(function(e){return e.package}));n.customize.checkUpdateInfo.pkgNumber=i.length,n.customize.toggleUpdateButton()}n.customize.checkUpdateInfo.isLoading=!1}),(function(e){l.add({type:"danger",message:e,id:"alertMessages",closeable:!1})}))},n.loadProfiles=function(){n.profileList=[],n.loadingProfiles=!0,r.getProfiles().then((function(e){void 0!==e?(n.noProfiles=!1,n.checkForEA4Updates(),n.loadingProfileData=!0,r.getEA4Recommendations().then((function(t){d=t.data,k(e,d)}),(function(e){x(e)})).finally((function(){n.loadingProfileData=!1}))):n.noProfiles=!0}),(function(e){e&&(n.errorOccurred=!0,r.setData({ea4ThrewError:!0}),o.path("yumUpdate"))})).finally((function(){n.loadingProfiles=!1}))},n.viewProfile=function(t){var a=e.copy(t);s.open({templateUrl:"profileModalContent.tmpl",controller:"ModalInstanceCtrl",resolve:{data:function(){return a}}})},n.customizeCurrentProfile=function(e){f(e)},n.proceedNext=function(e,t){n.clickedCustomize=t,e.isValid?(e.showValidationWarning=!1,n.continueAction(e)):e.showValidationWarning=!0},n.continueAction=function(e){var t=n.clickedCustomize;n.clickedCustomize=!1,-1===e.pkgs.indexOf("ea-apache24")&&e.pkgs.push("ea-apache24"),t?f(e):function(e){r.setData({selectedProfile:e}),o.path("review")}(e)},n.reset=function(e){n.clickedCustomize=!1,e.showValidationWarning=!1},n.hideRecommendations=function(t){t.showRecommendations=!1,i((function(){e.element("#toggleRecommendations").focus()}))},n.showRecommendations=function(t){t.showRecommendations=!0,i((function(){e.element("#recommendations_container").focus()}))};var g=function(e){var t=e.$error;void 0!==t&&a.each(a.keys(t),(function(e){n.formUpload.profile_file.$setValidity(e,!0)}))},m=function(t){if(t.profile={},n.formUpload&&n.formUpload.$dirty){g(n.formUpload.profile_file),n.formUpload.$setPristine();try{e.element("#profile_file").val(null)}catch(t){e.element("#form_upload_profile").reset()}}},v=function(e){if(e.filename="",e.filenameValMsg="",e.value="",e.showFilenameInput=!1,n.formUpload&&n.formUpload.$dirty){var t=n.formUpload.profile_file_url.$error;void 0!==t&&a.each(a.keys(t),(function(e){n.formUpload.profile_file.$setValidity(e,!0)})),g(n.formUpload.profile_file_url),g(n.formUpload.txtUploadUrlFilename),n.formUpload.$setPristine()}},h=function(){p.destroyAllMessages();var e=n.upload.profile;if(t=e.name,i=!0,/(?:\.\.|\\|\/)/.test(t)&&(i=!1),i){var t,i;n.$apply(n.formUpload.profile_file.$setValidity("invalidfilename",!0));var o=new FileReader;o.readAsText(e),o.onloadend=function(){if(o.readyState&&!o.error){var e=P(o.result);a.each(a.keys(e.val_results),(function(t){n.$apply(n.formUpload.profile_file.$setValidity(t,e.val_results[t]))})),n.formUpload.profile_file_url.$valid&&(n.upload.content=e.content)}}}else n.$apply(n.formUpload.profile_file.$setValidity("invalidfilename",!1))},P=function(e){var t,n,i="",o={};try{i=JSON.parse(e),o.invalidformat=!0,t=i,n=!0,(a.isEmpty(t.name)||a.isEmpty(t.pkgs))&&(n=!1),o.content=!!n}catch(e){o.invalidformat=!1,console.log(e)}return{content:i,val_results:o}};n.cancelUpload=function(){n.upload.show=!1,function(){p.destroyAllMessages();var e=n.upload;e.content={},e.overwrite=!1,e.highlightOverwrite=!1,e.disableLocalSec=!0,e.localSecIsOpen=!0,e.disableUrlSec=!1,e.urlSecIsOpen=!1,m(n.upload),v(n.upload.url)}()},n.resetUploadUrl=function(){v(n.upload.url)},n.getAndValidateUploadDataFromURL=function(){return p.destroyAllMessages(),r.getUploadContentFromUrl(n.upload.url.value).then((function(e){if(void 0!==e&&"200"===e.status){var i=e.headers["content-type"];if(!/^(application|text)\/json/.test(i))return void n.formUpload.profile_file_url.$setValidity("filetype",!1);n.formUpload.profile_file_url.$setValidity("filetype",!0);var o=P(e.content);a.each(a.keys(o.val_results),(function(e){n.formUpload.profile_file_url.$setValidity(e,o.val_results[e])})),n.formUpload.profile_file_url.$valid?(n.upload.content=o.content,n.upload.url.showFilenameInput=!0):n.upload.url.showFilenameInput=!1}else{var s=t.maketext("Status: “[output,strong,_1]”. Reason: “[output,em,_2]”.",a.escape(e.status),a.escape(e.reason));u.error(s)}}),(function(e){u.error(a.escape(e))}))},n.validateFilenameInput=function(){var e=c.validateFilename(n.upload.url.filename);n.upload.url.filenameValMsg=e.valMsg,n.formUpload.txtUploadUrlFilename.$setValidity("valFilename",e.valid)},n.uploadProfile=function(){if(p.destroyAllMessages(),n.formUpload.$valid){var e=n.upload.overwrite?1:0,i=void 0!==n.upload.profile.name?n.upload.profile.name:n.upload.url.filename+".json";return r.saveAsNewProfile(n.upload.content,i,e).then((function(e){void 0===e||a.isEmpty(e.path)||(n.loadProfiles(),u.success(t.maketext("The system successfully uploaded your profile.")),n.cancelUpload())}),(function(e){!a.isEmpty(e.data)&&e.data.already_exists&&(n.upload.highlightOverwrite=!0),u.error(a.escape(e.error))}))}},n.handleAccordionToggle=function(){m(n.upload),v(n.upload.url),n.upload.urlSecIsOpen?(n.upload.disableLocalSec=!1,n.upload.disableUrlSec=!0):(n.upload.disableUrlSec=!1,n.upload.disableLocalSec=!0)},n.showPopover=function(e){switch(n.convertProfile.cancel(),e){case"upload":n.upload.show=!0,document.querySelector("#profile_file").onchange=h;var t=document.querySelectorAll(".panel-heading a");a.each(t,(function(e){e.onclick=n.handleAccordionToggle}));break;case"convert":n.convertProfile.show=!0}};var k=function(e,i){var o=a.sortBy(a.keys(e));a.each(o,(function(o){void 0!==e[o]&&a.each(e[o],(function(e){if(e.profileType=o,e.tagsAsString=t.list_and(e.tags),e.isValid=!0,e.showValidationWarning=!1,e.active){n.activeProfile=e,n.customize.activeProfilePkgs=e.pkgs;var s=function(e,n){var i=e.pkgs,o=a.intersection(i,a.keys(n)),s={};return a.each(o,(function(e){var o=n[e],r=c.decideShowHideRecommendations(o,i,!0,e);r=a.filter(r,["level","danger"]),a.isEmpty(r)||(s[e]={},s[e].recosList=r,s[e].show=!a.every(r,["show",!1]),s[e].footNote=t.maketext("These recommendations appear because you have “[_1]” installed on your system.",e))})),s}(n.activeProfile,i);if(a.isEmpty(a.keys(s)))n.activeProfile.recommendations={};else{n.activeProfile.showRecommendations=!1;var r=a.pickBy(s,(function(e,t){return s[t].show})),l=0;a.each(a.keys(r),(function(e){l+=a.filter(r[e].recosList,["show",!0]).length})),n.activeProfile.recommendations=r,n.activeProfile.recommendationLabel=t.maketext("[quant,_1,Recommendation,Recommendations]",l),n.activeProfile.recommendationsExist=!!l}}else{e.isValid=a.isEmpty(e.validation_data.not_on_server),e.isValid||(e.validation_data.not_on_server_without_prefix=c.getFormattedPackageList(e.validation_data.not_on_server)),e.id=o+"_"+e.path.replace(/\.json/,"");var u="cpanel"!==o&&"custom"!==o?"vendor/"+o:o;e.downloadUrl="ea4_profile_download/"+u+"?filename="+e.path,n.profileList.push(e)}}))})),n.noProfiles=n.profileList.length<=0;var s=c.createTagsForActiveProfile(n.activeProfile.pkgs);n.activeProfile.tags=s,n.activeProfile.tagsAsString=t.list_and(s)},x=function(e){n.errorOccurred=!0,l.add({type:"danger",message:e,id:"alertMessages",closeable:!1})}}]),n.controller("ModalInstanceCtrl",["$scope","$uibModalInstance","data","ea4Util",function(e,t,a,n){e.modalData={};var i=a;i.pkgs=n.getProfilePackagesByCategories(i.pkgs),e.modalData=i,e.closeModal=function(){t.close()}}])})),define("app/views/yumUpdate",["angular","cjt/util/locale","lodash","cjt/services/alertService","cjt/directives/alertList","app/services/ea4Data","app/services/ea4Util","app/services/pkgResolution"],(function(e,t,a){var n=e.module("App");n.controller("yumUpdate",["$scope","$location","ea4Data","ea4Util","alertService","growl","growlMessages",function(e,t,a,i,o,s,r){e.fixFailed=!1;e.$on("$viewContentLoaded",(function(){r.destroyAllMessages(),a.getData("ea4ThrewError")&&(e.fixingYum=!0,a.fixYumCache().then((function(i){i.status&&i.data.cache_seems_ok_now?(n.firstLoad=!1,a.setData({ea4ThrewError:!1}),t.path("profile")):e.fixFailed=!0}),(function(t){e.fixFailed=!0})).finally((function(){e.fixingYum=!1})))}))}])})),define("app/views/customize",["angular","lodash","cjt/util/locale","app/services/ea4Data","app/services/pkgResolution"],(function(e,t,a){"use strict";e.module("App").controller("customize",["$scope","ea4Data","pkgResolution","wizardState","wizardApi","$location","ea4Util",function(e,n,i,o,s,r,c){e.customize={pkgInfoList:{},selectedPkgs:[],currentPkgInfoList:{},saveProfilePopup:{position:"top",showTop:!1,showBottom:!1},activeProfilePkgs:[]},e.customize.wizard=o,e.customize.wizardApi=s,e.customize.showsaveProfilePopup=function(t){e.customize.saveProfilePopup.position=t,"top"!==t?(e.customize.saveProfilePopup.showTop=!1,e.customize.saveProfilePopup.showBottom=!0):(e.customize.saveProfilePopup.showTop=!0,e.customize.saveProfilePopup.showBottom=!1)},e.customize.clearSaveProfilePopup=function(t){"top"!==t?(e.customize.saveProfilePopup.showTop=!1,e.customize.saveProfilePopup.showBottom=!1,e.customize.saveProfilePopup.position="top"):(e.customize.saveProfilePopup.showTop=!1,e.customize.saveProfilePopup.showBottom=!1)},e.customize.loadData=function(a){i.resetCommonVariables(),e.customize.pkgInfoList=n.getData("pkgInfoList");var o=n.getData("customize");t.keys(e.customize.pkgInfoList).length<=0?n.cancelOperation():(e.customize.selectedPkgs=n.getData("selectedPkgs"),s.updateWizard({showWizard:o,currentStep:a}),"review"===a?c.hideFooter():c.showFooter())},e.customize.processPkgInfoList=function(t){if(void 0!==t){var a=c.getCachedPrefixes()||[];n.updateRegexesForPrefixes(a);var i=n.getData("ea4Recommendations");e.customize.pkgInfoList=n.buildPkgInfoList(e.customize.selectedPkgs,t,i),n.setData({pkgInfoList:e.customize.pkgInfoList})}},e.customize.loadPkgInfoList=function(){i.resetCommonVariables(),e.customize.selectedPkgs=n.getData("selectedPkgs");var t=n.getPkgInfoList();return t.then((function(t){e.customize.processPkgInfoList(t)})),t},e.customize.proceed=function(t){n.setData({pkgInfoList:e.customize.pkgInfoList,selectedPkgs:e.customize.selectedPkgs}),s.next(t)},e.customize.getStepClass=function(t){if(t===e.customize.wizard.currentStep)return"active"},e.customize.getViewWidthCss=function(e){return e?"col-xs-9":"col-xs-12"},e.customize.provisionEA4Updates=function(){n.clearEA4LocalStorageItems(),n.setData({selectedPkgs:e.customize.activeProfilePkgs,ea4Update:!0}),r.path("review")},e.customize.toggleUpdateButton=function(){e.customize.checkUpdateInfo.pkgNumber>0?(e.customize.checkUpdateInfo.btnText=a.maketext("Update [asis,EasyApache 4]"),e.customize.checkUpdateInfo.btnTitle=a.maketext("Update [asis,EasyApache 4]"),e.customize.checkUpdateInfo.btnCss="btn-primary"):(e.customize.checkUpdateInfo.btnText=a.maketext("[asis,EasyApache 4] is up to date[comment,no punctuation due to usage]"),e.customize.checkUpdateInfo.btnTitle=a.maketext("[asis,EasyApache 4] is up to date[comment,no punctuation due to usage]"),e.customize.checkUpdateInfo.btnCss="btn-primary disabled")}}])})),define("app/views/loadPackages",["angular","lodash","cjt/services/alertService"],(function(e,t){"use strict";e.module("App").controller("loadPackages",["$scope","alertService","wizardApi","wizardState","ea4Data","ea4Util","pkgResolution",function(e,t,a,n,i,o,s){e.$on("$viewContentLoaded",(function(){var r;null===(r=i.getData("ea4RawPkgList"))?e.customize.loadPkgInfoList().then((function(){i.getEA4MetaInfo().then((function(t){if(t.data){o.additionalPkgList=t.data.additional_packages;var s=o.doAdditionalPkgsExist(o.additionalPkgList,e.customize.pkgInfoList);i.setData({additionalPkgsExist:s});var r={rubyPkgsExist:o.doRubyPkgsExist(e.customize.pkgInfoList),additionalPkgsExist:s};n.steps=a.rebuildWizardSteps(n.steps,r),e.customize.proceed("mpm")}}),(function(e){t.add({type:"danger",message:e,id:"alertMessages",closeable:!1})}))}),(function(e){t.add({type:"danger",message:e,id:"alertMessages",closeable:!1})})):(s.resetCommonVariables(),e.customize.selectedPkgs=i.getData("selectedPkgs"),e.customize.processPkgInfoList(r),a.init(),e.customize.proceed("mpm"))}))}])})),define("app/views/mpm",["angular"],(function(e){e.module("App").controller("mpm",["$scope",function(e){e.$on("$viewContentLoaded",(function(){e.customize.loadData("mpm")}))}])})),define("app/views/modules",["angular"],(function(e){e.module("App").controller("modules",["$scope",function(e){e.$on("$viewContentLoaded",(function(){e.customize.loadData("modules")}))}])})),define("app/views/php",["angular","cjt/util/locale"],(function(e,t){e.module("App").controller("php",["$scope","PAGE","$sce",function(e,a,n){e.sendMixPanelEvent=function(e){var t=window&&window.mixpanel;t&&"function"==typeof t.track&&t.track(e,{})},e.$on("$viewContentLoaded",(function(){e.customize.loadData("php"),function(){var i,o,s;e.showCLBanner=!1,e.promotePhpEls=!0===a.promote_phpels,e.promoteCL=a.cl_data.cl_is_supported&&!a.cl_data.cl_is_installed,o=a.phpels_data,e.phpelsHasCustomUrl=o.purchase_phpels_data.is_url,e.phpelsIcon=a.phpels_icon,i=a.cl_data,s=!0===a.cl_licensed,e.hasCustomUrl=i.purchase_cl_data.is_url,e.clIcon=a.cl_icon,e.cl_is_supported=i.cl_is_supported,e.linkTarget="_blank",e.purchaseLink="",e.clActionText="",e.clBannerText="",e.clBannerHtml=n.trustAsHtml("");var r=i.purchase_cl_data;!i.cl_is_supported||i.cl_is_installed||r.disable_upgrade||(r.server_timeout||r.error_msg&&""!==r.error_msg?e.hideUpgradeOption=!0:(e.hideUpgradeOption=!1,s?(e.purchaseLink="scripts13/install_cloudlinux_EA4",e.clActionText=t.maketext("Install [_1]","CloudLinux"),e.linkTarget="_self"):(e.purchaseLink=i.purchase_cl_data.url,e.clActionText=t.maketext("Upgrade to [_1]","CloudLinux"))),e.purchaseClData=r);var c=o.purchase_phpels_data;e.phpelsBannerTitle=t.maketext("[output,strong,Need to keep older PHP versions secure?]"),e.phpelsBannerBody=t.maketext("cPanel provides the latest stable versions of PHP. If you require legacy versions like PHP 5.6 or 7.x, you can keep outdated websites secure with [output,strong,TuxCare Extended Lifecycle Support (ELS)] from CloudLinux. This service provides hardened PHP versions continuously patched against known vulnerabilities, making it the easiest way to maintain security for older PHP versions. [output,url,_1,Learn more.,target,_2]","https://go.cpanel.net/about-elsphp","blank"),e.phpelsBannerText=e.phpelsBannerTitle+"<br>"+e.phpelsBannerBody,e.phpelsBannerHtml=n.trustAsHtml(e.phpelsBannerText),e.clBannerTitle=t.maketext("[output,strong,Upgrade your server security and performance.]"),e.clBannerBody=t.maketext("[output,strong,CloudLinux OS] is a feature-rich platform solution that addresses multiple server challenges in a single package, including hardened PHP for legacy version, while also delivering enhanced security, performance, and resource isolation across your hosting environment. [output,url,_1,Learn more.,target,_2]","https://go.cpanel.net/about-cloudlinux","blank"),e.clBannerText=e.clBannerTitle+"<br>"+e.clBannerBody,e.clBannerHtml=n.trustAsHtml(e.clBannerText),e.phpelsPurchaseLink=o.purchase_phpels_data.url||"scripts13/purchase_phpels_init_MULTIPHP",e.phpelsActionText=t.maketext("Buy [_1]","TuxCare ELS PHP"),e.purchasePhpelsData=c,(e.promotePhpEls||e.promoteCL)&&(e.showCLBanner=!0)}()}))}])})),define("app/views/extensions",["angular"],(function(e){e.module("App").controller("extensions",["$scope",function(e){e.$on("$viewContentLoaded",(function(){e.customize.loadData("extensions")}))}])})),define("app/views/additionalPackages",["angular"],(function(e){"use strict";e.module("App").controller("additionalPackages",["$scope",function(e){e.$on("$viewContentLoaded",(function(){e.customize.loadData("additional")}))}])})),define("app/views/review",["angular","lodash","app/services/ea4Data","app/services/ea4Util"],(function(e,t){e.module("App").controller("review",["$scope","$location","ea4Data","ea4Util","growlMessages",function(e,a,n,i,o){e.readyToProvision=!1,e.gettingResults=!0;var s={},r=function(t,a){n.resolvePackages(t).then((function(t){e.installList=i.getFormattedPackageList(t.install),e.uninstallList=i.getFormattedPackageList(t.uninstall),e.upgradeList=i.getFormattedPackageList(t.upgrade),e.existingList=i.getFormattedPackageList(t.unaffected),e.installList.length||e.upgradeList.length||e.uninstallList.length?(n.setData({provisionActions:{profileId:a,install:t.install,uninstall:t.uninstall,upgrade:t.upgrade}}),e.readyToProvision=!0,n.provisionReady(!0)):e.noActionRequired=!0}),(function(t){e.apiError=!0,e.yumErrorMessage=t})).finally((function(){e.gettingResults=!1}))};e.$on("$viewContentLoaded",(function(){if(s=a.search(),t.isEmpty(s)||t.isEmpty(s.install)&&t.isEmpty(s.uninstall)){var i=n.getData("customize"),o=n.getData("ea4Update");if(i)e.customize.loadData("review"),r(n.getData("selectedPkgs"));else if(o)r(n.getData("selectedPkgs"));else{var c=n.getData("selectedProfile");c||n.cancelOperation(),r(c.pkgs,c.fullPath)}}else l=s,u=[],n.ea4GetCurrentPkgList().then((function(e){if(e.status){u=e.data;var a=t.isArray(l.install)?l.install:[l.install];u=t.union(u,a);var n=t.isArray(l.uninstall)?l.uninstall:[l.uninstall];u=t.difference(u,n),r(u)}}));var l,u})),e.cancel=function(){n.cancelOperation()}}])})),define("app/views/provision",["angular","cjt/util/locale","app/services/ea4Data","app/services/ea4Util"],(function(e,t){"use strict";var a=e.module("App");a.controller("provision",["$scope","$location","ea4Data","spinnerAPI",function(e,n,i,o){var s="";e.realTimeLogDisplay="";var r=!1,c=function(){i.tailingLog(e.buildID,e.currentTailingPosition).then((function(a){for(var n=!1,l=0,u=a.content;l<u.length;l++)if(u[l]!=="-- "+e.buildID+" --")if(u[l]!=="-- /"+e.buildID+" --")s+=u[l]+"\r\n",u[l]=u[l].replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/'/gm,"'").replace(/"/gm,"""),u[l]!=="-- error("+e.buildID+") --"?u[l]!=="-- /error("+e.buildID+") --"?(n&&(u[l]="<span class='text-danger'>"+u[l]+"</span>"),/Error:.*/gm.test(u[l])&&(u[l]="<span class='text-danger'>"+u[l]+"</span>",r=!0),e.realTimeLogDisplay+=u[l]+"\r\n"):n=!1:(n=!0,r=!0);else{var p=t.maketext("Provision process finished.");s+=p+"\r\n",e.realTimeLogDisplay+="<span class='text-success'><strong>"+p+"</strong></span>\r\n"}else{var d=t.maketext("Provision process started.");s+=d+"\r\n",e.realTimeLogDisplay+="<span class='text-success'><strong>"+d+"</strong></span>\r\n"}window.setTimeout((function(){var e=document.getElementById("log");e&&(e.scrollTop=e.scrollHeight)}),100),e.currentTailingPosition=a.offset,a.still_running?window.setTimeout(c(),100):(o.stop("provisionSpinner"),e.finished=!0,i.provisionReady(!1))}))};e.$on("$viewContentLoaded",(function(){e.customize.wizard.currentStep="",e.customize.wizard.showWizard=!1;var t=i.getData("provisionActions");i.provisionReady()&&void 0!==t||i.cancelOperation(),"bottom"===n.hash()?function(t){o.start("provisionSpinner"),e.provisionStarted=!0,r=!1,i.doProvision(t.install,t.uninstall,t.upgrade,t.profileId).then((function(t){e.buildID=t.build,e.currentTailingPosition=0,c()})).finally((function(){e.customize.checkUpdateInfo.pkgNumber=0,e.customize.toggleUpdateButton(),i.clearEA4LocalStorageItems(),a.firstLoad=!1,i.php_set_session_save_path()}))}(t):n.hash("bottom")})),e.cancel=function(){i.cancelOperation()},e.resultReady=function(){var a=null;return r?(a="alert-danger",e.resultSummary=t.maketext("The provision process exited with errors. Please check the log for details.")):(a="alert-success",e.resultSummary=t.maketext("The provision process is complete.")),a};var l=function(e){document.body.removeChild(e.target)};e.saveLog=function(){var e=new Blob([s],{type:"text/plain"}),t=document.createElement("a");t.download="log.txt",t.innerHTML="My Hidden Link",window.URL=window.URL||window.webkitURL,t.href=window.URL.createObjectURL(e),t.onclick=l,t.style.display="none",document.body.appendChild(t),t.click()}}])})),define("app/views/ruby",["angular"],(function(e){e.module("App").controller("ruby",["$scope",function(e){e.$on("$viewContentLoaded",(function(){e.customize.loadData("ruby")}))}])})),define("app/index",["angular","cjt/core","lodash","cjt/modules"],(function(e,t,a){"use strict";return function(){return e.module("App",["cjt2.config.whm.configProvider","ngRoute","ui.bootstrap","cjt2.whm","angular-growl","whm.easyapache4.ea4Util","whm.easyapache4.ea4Data","whm.easyapache4.pkgResolution","whm.easyapache4.wizardApi"]),require(["cjt/bootstrap","cjt/util/locale","cjt/directives/toggleSwitchDirective","cjt/directives/searchDirective","app/directives/eaWizard","app/directives/saveAsProfile","app/services/ea4Data","app/services/ea4Util","app/services/pkgResolution","app/services/wizardApi","cjt/views/applicationController","app/views/profile","app/views/yumUpdate","app/views/customize","app/views/loadPackages","app/views/mpm","app/views/modules","app/views/php","app/views/extensions","app/views/additionalPackages","app/views/review","app/views/provision","app/views/ruby"],(function(n,i){var o=e.module("App");o.value("PAGE",PAGE),o.firstLoad=!0;o.value("wizardState",{}),o.config(["$routeProvider","$compileProvider",function(e,a){e.when("/profile",{controller:"profile",templateUrl:t.buildFullPath("easyapache4/views/profile.ptt")}).when("/loadPackages",{controller:"loadPackages",templateUrl:t.buildFullPath("easyapache4/views/loadPackages.ptt")}).when("/mpm",{controller:"mpm",templateUrl:t.buildFullPath("templates/easyapache4/views/mpm.phtml")}).when("/modules",{controller:"modules",templateUrl:t.buildFullPath("templates/easyapache4/views/modules.phtml")}).when("/php",{controller:"php",templateUrl:t.buildFullPath("easyapache4/views/php.ptt")}).when("/extensions",{controller:"extensions",templateUrl:t.buildFullPath("templates/easyapache4/views/extensions.phtml")}).when("/additional",{controller:"additionalPackages",templateUrl:t.buildFullPath("templates/easyapache4/views/additionalPackages.phtml")}).when("/review",{controller:"review",templateUrl:t.buildFullPath("easyapache4/views/review.ptt")}).when("/ruby",{controller:"ruby",templateUrl:t.buildFullPath("templates/easyapache4/views/ruby.phtml")}).when("/provision",{controller:"provision",templateUrl:t.buildFullPath("easyapache4/views/provision.ptt")}).when("/yumUpdate",{controller:"yumUpdate",templateUrl:t.buildFullPath("easyapache4/views/yumUpdate.ptt")}).otherwise({redirectTo:"/profile"}),a.aHrefSanitizationWhitelist(/^\s*(https?|blob):/)}]),o.run(["$rootScope","$location","ea4Util","wizardApi","wizardState",function(e,t,n,i,o){a.isEmpty(o)&&(i.init(),n.hideFooter()),e.$on("$routeChangeStart",(function(){e.currentRoute=t.path()}))}]),n(document)}))}}));
Back to Directory
File Manager