Viewing File: /usr/local/cpanel/base/frontend/jupiter/version_control/services/versionControlService.min.js

define(["angular","cjt/util/locale","cjt/util/parse","cjt/io/uapi-request","cjt/io/api","cjt/io/uapi","cjt/services/APIService","cjt/filters/qaSafeIDFilter"],(function(e,t,o,a){"use strict";var r=e.module("cpanel.versionControl.service",[]);r.value("PAGE",PAGE),r.factory("versionControlService",["$q","APIService","$filter","PAGE","$timeout","$rootScope",function(r,n,i,s,l,d){var p=function(){},u=[],c=s.fileManagerURL,m=s.gitwebURL;function y(e){if(e&&void 0!==e){if(e.qaSafeSuffix=i("qaSafeID")(e.repository_root),e.fileManagerRedirectURL=c?c+encodeURIComponent(e.repository_root):"",m){var a=e.repository_root.replace(/^\/+/g,"")+"/.git";e.gitWebURL=m+encodeURIComponent(a)}else e.gitWebURL="";e.hasRemote=void 0!==e.source_repository&&e.source_repository,void 0!==e.clone_urls&&e.clone_urls&&(e.cloneURL=e.clone_urls.read_write[0]||e.clone_urls.read_only[0]),e.activeBranch=t.maketext("Not available."),e.hasActiveBranch=!1,void 0!==e.branch&&e.branch&&(e.activeBranch=e.branch,e.hasActiveBranch=!0);var r=function(e){var o={};return o.lastUpdateSHA=t.maketext("Not available."),o.lastUpdateDate=t.maketext("Not available."),o.commitMessage=t.maketext("Not available."),o.author=t.maketext("Not available."),o.hasHeadInformation=!1,void 0!==e.last_update&&e.last_update&&(o.hasHeadInformation=!0,void 0!==e.last_update.identifier&&e.last_update.identifier&&(o.lastUpdateSHA=e.last_update.identifier),void 0!==e.last_update.date&&e.last_update.date&&(o.lastUpdateDate=f(e.last_update.date)),void 0!==e.last_update.author&&e.last_update.author&&(o.author=e.last_update.author),void 0!==e.last_update.message&&e.last_update.message&&(o.commitMessage=e.last_update.message)),o}(e);e.lastUpdateSHA=r.lastUpdateSHA,e.lastUpdateDate=r.lastUpdateDate,e.commitMessage=r.commitMessage,e.author=r.author,e.hasHeadInformation=r.hasHeadInformation;var n=function(e){var o={hasDeploymentInformation:!1};return o.lastDeployedSHA=t.maketext("Not available."),o.lastDeployedDate=t.maketext("Not available."),o.lastDeployedCommitDate=t.maketext("Not available."),o.lastDeployedCommitMessage=t.maketext("Not available."),o.lastDeployedAuthor=t.maketext("Not available."),void 0!==e.last_deployment&&e.last_deployment&&(o.hasDeploymentInformation=!0,void 0!==e.last_deployment.timestamps&&void 0!==e.last_deployment.timestamps.succeeded&&e.last_deployment.timestamps.succeeded&&(o.lastDeployedDate=f(e.last_deployment.timestamps.succeeded),void 0!==e.last_deployment.repository_state&&e.last_deployment.repository_state&&(void 0!==e.last_deployment.repository_state.identifier&&e.last_deployment.repository_state.identifier&&(o.lastDeployedSHA=e.last_deployment.repository_state.identifier),void 0!==e.last_deployment.repository_state.date&&e.last_deployment.repository_state.date&&(o.lastDeployedCommitDate=f(e.last_deployment.repository_state.date)),void 0!==e.last_deployment.repository_state.message&&e.last_deployment.repository_state.message&&(o.lastDeployedCommitMessage=e.last_deployment.repository_state.message),void 0!==e.last_deployment.repository_state.author&&e.last_deployment.repository_state.author&&(o.lastDeployedAuthor=e.last_deployment.repository_state.author)))),o}(e);if(e.hasDeploymentInformation=n.hasDeploymentInformation,e.lastDeployedSHA=n.lastDeployedSHA,e.lastDeployedDate=n.lastDeployedDate,e.lastDeployedCommitDate=n.lastDeployedCommitDate,e.lastDeployedCommitMessage=n.lastDeployedCommitMessage,e.lastDeployedAuthor=n.lastDeployedAuthor,e.deployable=o.parsePerlBoolean(e.deployable),e.cloneInProgress=!1,e.deployInProgress=!1,void 0!==e.tasks&&e.tasks&&e.tasks.length>0)for(var s=0,l=e.tasks.length;s<l;s++)"create"===e.tasks[s].action&&(e.cloneInProgress=!0,e.cloneTaskID=e.tasks[s].id),"deploy"===e.tasks[s].action&&(e.deployInProgress=!0)}return e}function f(e){return e?"number"!=typeof e&&(e=Number(e),isNaN(e))?t.maketext("Not available."):(e=Math.floor(e),t.local_datetime(e,"datetime_format_medium")):t.maketext("Not available.")}function v(e){var t=[];if(null!=e)for(var o=0,a=e.length;o<a;o++){var r=y(e[o]);t.push(r)}return t}function h(e,t){var o=null;if(void 0!==typeof e&&e)for(var a=0,r=e.length;a<r;a++)if(e[a].repository_root===t){o=a;break}return o}return u=v(s.repos),p.prototype=new n,e.extend(p.prototype,{getRepositoryList:function(){return u},listRepositories:function(e,t){if(e){var o=new a.Class;return o.initialize("VersionControl","retrieve"),t&&o.addArgument("fields",t),this.deferred(o).promise.then((function(e){try{return u=v(e.data),r.resolve(u)}catch(e){return r.reject(e)}})).catch((function(e){return r.reject(e)}))}return r.resolve(u)},getRepositoryInformation:function(e,o){var n=new a.Class;if(n.initialize("VersionControl","retrieve"),!e)throw new Error(t.maketext("Repository path cannot be empty."));n.addFilter("repository_root","eq",e),o&&n.addArgument("fields",o);var i=[];return this.deferred(n).promise.then((function(o){try{return(i=v(o.data))&&i.length>0?r.resolve(i[0]):r.reject(t.maketext("The system could not find the “[_1]” repository.",e))}catch(e){return r.reject(e)}})).catch((function(e){return r.reject(e)}))},cloneToClipboard:function(e){if("string"==typeof e&&""!==e)return function(e){var o=document.createElement("textarea");o.value=e,document.body.appendChild(o),o.select();try{document.execCommand("copy")}catch(o){throw new Error(t.maketext("You cannot copy the “[_1]” clone [output,acronym,URL,Uniform Resource Locator] to the clipboard.",e))}document.body.removeChild(o)}(e),!0;throw new Error(t.maketext("“[_1]” is not a valid clone [output,acronym,URL,Universal Resource Locator].",e))},createRepository:function(e,t,o){var n=new a.Class;return n.initialize("VersionControl","create"),n.addArgument("name",e),n.addArgument("repository_root",t),n.addArgument("type","git"),void 0!==o&&o&&n.addArgument("source_repository",JSON.stringify({remote_name:"origin",url:o})),this.deferred(n).promise.then((function(e){var t={};return e.data&&(t=y(e.data),u.push(t)),t})).catch((function(e){return r.reject(e)}))},deleteRepository:function(e){if("string"==typeof e&&""!==e){var t=new a.Class;return t.initialize("VersionControl","delete"),t.addArgument("repository_root",e),this.deferred(t).promise.then((function(){var t=h(u,e);return"number"==typeof t&&t>=0&&u.splice(t,1),r.resolve()})).catch((function(e){return r.reject(e)}))}},updateRepository:function(e,t,o){var n=new a.Class;return n.initialize("VersionControl","update"),n.addArgument("repository_root",e),"string"==typeof t&&t&&n.addArgument("name",t),"string"==typeof o&&o&&n.addArgument("branch",o),this.deferred(n).promise.then((function(t){if(t.data){var o=h(u,e);"number"==typeof o&&o>=0&&(u[o]=y(t.data))}return t})).catch((function(e){return r.reject(e)}))},updateFromRemote:function(e,t){var o=new a.Class;return o.initialize("VersionControl","update"),o.addArgument("repository_root",e),o.addArgument("branch",t||""),this.deferred(o).promise.then((function(t){if(t.data){var o=h(u,e);"number"==typeof o&&o>=0&&(u[o]=y(t.data))}return t})).catch((function(e){return r.reject(e)}))},deployRepository:function(e){var t=new a.Class;return t.initialize("VersionControlDeployment","create"),t.addArgument("repository_root",e),this.deferred(t).promise.then((function(e){return e})).catch((function(e){return r.reject(e)}))}}),new p}])}));
Back to Directory File Manager