github.js
95 lines
| 3.6 KiB
| application/javascript
|
JavascriptLexer
r0 | // # Copyright (C) 2010-2016 RhodeCode GmbH | |||
// # | ||||
// # This program is free software: you can redistribute it and/or modify | ||||
// # it under the terms of the GNU Affero General Public License, version 3 | ||||
// # (only), as published by the Free Software Foundation. | ||||
// # | ||||
// # This program is distributed in the hope that it will be useful, | ||||
// # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
// # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||
// # GNU General Public License for more details. | ||||
// # | ||||
// # You should have received a copy of the GNU Affero General Public License | ||||
// # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||||
// # | ||||
// # This program is dual-licensed. If you wish to learn more about the | ||||
r28 | // # AppEnlight Enterprise Edition, including its added features, Support | |||
r0 | // # services, and proprietary license terms, please see | |||
// # https://rhodecode.com/licenses/ | ||||
angular.module('appenlight.controllers') | ||||
.controller('GithubIntegrationCtrl', GithubIntegrationCtrl); | ||||
GithubIntegrationCtrl.$inject = ['$uibModalInstance', '$state', 'report', 'integrationName', 'integrationResource']; | ||||
function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) { | ||||
var vm = this; | ||||
vm.loading = true; | ||||
vm.assignees = []; | ||||
vm.report = report; | ||||
vm.integrationName = integrationName; | ||||
vm.statuses = []; | ||||
vm.assignees = []; | ||||
vm.error_messages = []; | ||||
vm.form = { | ||||
content: '\n' + | ||||
'Issue created for report: ' + | ||||
$state.href('report.view_detail', {groupId:report.group_id, reportId:report.id}, {absolute:true}) | ||||
}; | ||||
vm.fetchInfo = function () { | ||||
integrationResource.get({ | ||||
resourceId: vm.report.resource_id, | ||||
action: 'info', | ||||
integration: vm.integrationName | ||||
}, null, | ||||
function (data) { | ||||
vm.loading = false; | ||||
if (data.error_messages) { | ||||
vm.error_messages = data.error_messages; | ||||
} | ||||
else { | ||||
vm.assignees = data.assignees; | ||||
vm.statuses = data.statuses; | ||||
vm.form.responsible = vm.assignees[0]; | ||||
vm.form.status = vm.statuses[0]; | ||||
} | ||||
}, function (error_data) { | ||||
if (error_data.data.error_messages) { | ||||
vm.error_messages = error_data.data.error_messages; | ||||
} | ||||
else { | ||||
vm.error_messages = ['There was a problem processing your request']; | ||||
} | ||||
}); | ||||
}; | ||||
vm.ok = function () { | ||||
vm.loading = true; | ||||
vm.form.group_id = vm.report.group_id; | ||||
integrationResource.save({ | ||||
resourceId: vm.report.resource_id, | ||||
action: 'create-issue', | ||||
integration: vm.integrationName | ||||
}, vm.form, | ||||
function (data) { | ||||
vm.loading = false; | ||||
if (data.error_messages) { | ||||
vm.error_messages = data.error_messages; | ||||
} | ||||
else { | ||||
$uibModalInstance.dismiss('success'); | ||||
} | ||||
}, function (error_data) { | ||||
if (error_data.data.error_messages) { | ||||
vm.error_messages = error_data.data.error_messages; | ||||
} | ||||
else { | ||||
vm.error_messages = ['There was a problem processing your request']; | ||||
} | ||||
}); | ||||
}; | ||||
vm.cancel = function () { | ||||
$uibModalInstance.dismiss('cancel'); | ||||
}; | ||||
vm.fetchInfo(); | ||||
} | ||||