Repository: incubator-trafficcontrol Updated Branches: refs/heads/master a42629673 -> 33fa72c4a
adds ds invalidate content views Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/aad190ac Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/aad190ac Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/aad190ac Branch: refs/heads/master Commit: aad190ac8a5e0814a328b8253e2d1643fa5505fc Parents: 3e6baf3 Author: Jeremy Mitchell <[email protected]> Authored: Tue Apr 11 16:04:18 2017 -0600 Committer: Dan Kirkwood <[email protected]> Committed: Wed Apr 12 15:07:35 2017 -0600 ---------------------------------------------------------------------- traffic_ops/experimental/ui/app/src/app.js | 12 ++++ .../ui/app/src/common/api/JobService.js | 33 ++++++++++ .../experimental/ui/app/src/common/api/index.js | 1 + .../FormDeliveryServiceController.js | 4 +- .../form.deliveryService.tpl.html | 2 +- .../FormDeliveryServiceJobController.js | 35 +++++++++++ .../form.deliveryServiceJob.tpl.html | 58 +++++++++++++++++ .../modules/form/deliveryServiceJob/index.js | 21 +++++++ .../new/FormNewDeliveryServiceJobController.js | 48 +++++++++++++++ .../form/deliveryServiceJob/new/index.js | 21 +++++++ .../modules/form/job/FormJobController.js | 45 ++++++++++++++ .../common/modules/form/job/form.job.tpl.html | 65 ++++++++++++++++++++ .../ui/app/src/common/modules/form/job/index.js | 21 +++++++ .../form/job/new/FormNewJobController.js | 48 +++++++++++++++ .../src/common/modules/form/job/new/index.js | 21 +++++++ .../modules/navigation/navigation.tpl.html | 1 + .../TableDeliveryServiceJobsController.js | 46 ++++++++++++++ .../modules/table/deliveryServiceJobs/index.js | 21 +++++++ .../table.deliveryServiceJobs.tpl.html | 55 +++++++++++++++++ .../modules/table/jobs/TableJobsController.js | 42 +++++++++++++ .../app/src/common/modules/table/jobs/index.js | 21 +++++++ .../modules/table/jobs/table.jobs.tpl.html | 55 +++++++++++++++++ traffic_ops/experimental/ui/app/src/index.html | 2 + .../private/admin/jobs/JobsController.js | 24 ++++++++ .../app/src/modules/private/admin/jobs/index.js | 36 +++++++++++ .../modules/private/admin/jobs/jobs.tpl.html | 22 +++++++ .../modules/private/admin/jobs/list/index.js | 39 ++++++++++++ .../src/modules/private/admin/jobs/new/index.js | 39 ++++++++++++ .../jobs/DeliveryServiceJobsController.js | 24 ++++++++ .../jobs/deliveryServiceJobs.tpl.html | 22 +++++++ .../configure/deliveryServices/jobs/index.js | 36 +++++++++++ .../deliveryServices/jobs/list/index.js | 42 +++++++++++++ .../deliveryServices/jobs/new/index.js | 42 +++++++++++++ 33 files changed, 1001 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/app.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/app.js b/traffic_ops/experimental/ui/app/src/app.js index 20461f3..d61b659 100644 --- a/traffic_ops/experimental/ui/app/src/app.js +++ b/traffic_ops/experimental/ui/app/src/app.js @@ -69,6 +69,9 @@ var trafficOps = angular.module('trafficOps', [ require('./modules/private/admin/divisions/list').name, require('./modules/private/admin/divisions/new').name, require('./modules/private/admin/divisions/regions').name, + require('./modules/private/admin/jobs').name, + require('./modules/private/admin/jobs/list').name, + require('./modules/private/admin/jobs/new').name, require('./modules/private/admin/physLocations').name, require('./modules/private/admin/physLocations/edit').name, require('./modules/private/admin/physLocations/list').name, @@ -129,6 +132,9 @@ var trafficOps = angular.module('trafficOps', [ require('./modules/private/configure/deliveryServices/edit').name, require('./modules/private/configure/deliveryServices/list').name, require('./modules/private/configure/deliveryServices/new').name, + require('./modules/private/configure/deliveryServices/jobs').name, + require('./modules/private/configure/deliveryServices/jobs/list').name, + require('./modules/private/configure/deliveryServices/jobs/new').name, require('./modules/private/configure/deliveryServices/regexes').name, require('./modules/private/configure/deliveryServices/regexes/edit').name, require('./modules/private/configure/deliveryServices/regexes/list').name, @@ -177,9 +183,13 @@ var trafficOps = angular.module('trafficOps', [ require('./common/modules/form/deliveryServiceRegex').name, require('./common/modules/form/deliveryServiceRegex/edit').name, require('./common/modules/form/deliveryServiceRegex/new').name, + require('./common/modules/form/deliveryServiceJob').name, + require('./common/modules/form/deliveryServiceJob/new').name, require('./common/modules/form/division').name, require('./common/modules/form/division/edit').name, require('./common/modules/form/division/new').name, + require('./common/modules/form/job').name, + require('./common/modules/form/job/new').name, require('./common/modules/form/physLocation').name, require('./common/modules/form/physLocation/edit').name, require('./common/modules/form/physLocation/new').name, @@ -220,12 +230,14 @@ var trafficOps = angular.module('trafficOps', [ require('./common/modules/table/cdnProfiles').name, require('./common/modules/table/cdnServers').name, require('./common/modules/table/deliveryServices').name, + require('./common/modules/table/deliveryServiceJobs').name, require('./common/modules/table/deliveryServiceRegexes').name, require('./common/modules/table/deliveryServiceServers').name, require('./common/modules/table/deliveryServiceStaticDnsEntries').name, require('./common/modules/table/deliveryServiceUsers').name, require('./common/modules/table/divisions').name, require('./common/modules/table/divisionRegions').name, + require('./common/modules/table/jobs').name, require('./common/modules/table/physLocations').name, require('./common/modules/table/physLocationServers').name, require('./common/modules/table/parameters').name, http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/api/JobService.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/api/JobService.js b/traffic_ops/experimental/ui/app/src/common/api/JobService.js new file mode 100644 index 0000000..ab05d30 --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/api/JobService.js @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +var JobService = function(Restangular) { + + this.getJobs = function(queryParams) { + return Restangular.all('jobs').getList(queryParams); + }; + + this.createJob = function(job) { + return Restangular.service('user/current/jobs').post(job); + }; + +}; + +JobService.$inject = ['Restangular']; +module.exports = JobService; http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/api/index.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/api/index.js b/traffic_ops/experimental/ui/app/src/common/api/index.js index 0dd26b6..4099199 100644 --- a/traffic_ops/experimental/ui/app/src/common/api/index.js +++ b/traffic_ops/experimental/ui/app/src/common/api/index.js @@ -27,6 +27,7 @@ module.exports = angular.module('trafficOps.api', []) .service('deliveryServiceRegexService', require('./DeliveryServiceRegexService')) .service('divisionService', require('./DivisionService')) .service('httpService', require('./HttpService')) + .service('jobService', require('./JobService')) .service('physLocationService', require('./PhysLocationService')) .service('parameterService', require('./ParameterService')) .service('profileService', require('./ProfileService')) http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/FormDeliveryServiceController.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/FormDeliveryServiceController.js b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/FormDeliveryServiceController.js index d3eaec7..30a2378 100644 --- a/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/FormDeliveryServiceController.js +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/FormDeliveryServiceController.js @@ -134,8 +134,8 @@ var FormDeliveryServiceController = function(deliveryService, $scope, $location, alert('not hooked up yet: cachegroupHealth for DS'); }; - $scope.invalidateContent = function() { - alert('not hooked up yet: invalidateContent for DS'); + $scope.viewJobs = function() { + $location.path($location.path() + '/jobs'); }; $scope.manageSslKeys = function() { http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/form.deliveryService.tpl.html ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/form.deliveryService.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/form.deliveryService.tpl.html index d13dab4..3cddf16 100644 --- a/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/form.deliveryService.tpl.html +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/form.deliveryService.tpl.html @@ -33,7 +33,7 @@ under the License. <ul class="dropdown-menu-right dropdown-menu" uib-dropdown-menu> <li role="menuitem"><a ng-click="viewRegexes()">Edit Delivery Service Regexes</a></li> <li class="divider"></li> - <li role="menuitem"><a ng-click="invalidateContent()">Invalidate Content</a></li> + <li role="menuitem"><a ng-click="viewJobs()">View Invalidate Content Jobs</a></li> <li class="divider"></li> <li role="menuitem"><a ng-click="manageSslKeys()">Manage SSL Keys</a></li> <li role="menuitem"><a ng-click="manageUrlSigKeys()">Manage URL Sig Keys</a></li> http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/FormDeliveryServiceJobController.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/FormDeliveryServiceJobController.js b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/FormDeliveryServiceJobController.js new file mode 100644 index 0000000..a672874 --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/FormDeliveryServiceJobController.js @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +var FormDeliveryServiceJobController = function(deliveryService, job, $scope, formUtils, locationUtils) { + + $scope.deliveryService = deliveryService; + + $scope.job = job; + + $scope.navigateToPath = locationUtils.navigateToPath; + + $scope.hasError = formUtils.hasError; + + $scope.hasPropertyError = formUtils.hasPropertyError; + +}; + +FormDeliveryServiceJobController.$inject = ['deliveryService', 'job', '$scope', 'formUtils', 'locationUtils']; +module.exports = FormDeliveryServiceJobController; http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/form.deliveryServiceJob.tpl.html ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/form.deliveryServiceJob.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/form.deliveryServiceJob.tpl.html new file mode 100644 index 0000000..1ae3f56 --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/form.deliveryServiceJob.tpl.html @@ -0,0 +1,58 @@ +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<div class="x_panel"> + <div class="x_title"> + <ol class="breadcrumb pull-left"> + <li><a ng-click="navigateToPath('/configure/delivery-services')">Delivery Services</a></li> + <li><a ng-click="navigateToPath('/configure/delivery-services/' + deliveryService.id)">{{deliveryService.displayName}}</a></li> + <li><a ng-click="navigateToPath('/configure/delivery-services/' + deliveryService.id + '/jobs')">Invalidate Content Jobs</a></li> + <li class="active">{{jobName}}</li> + </ol> + <div class="clearfix"></div> + </div> + <div class="x_content"> + <br> + <form name="jobForm" class="form-horizontal form-label-left" novalidate> + <div class="form-group" ng-class="{'has-error': hasError(jobForm.regex), 'has-feedback': hasError(jobForm.regex)}"> + <label class="control-label col-md-2 col-sm-2 col-xs-12">Path Regex *</label> + <div class="col-md-10 col-sm-10 col-xs-12"> + <input id="regex" name="regex" type="text" class="form-control" placeholder="eg. /path/to/content/.*\.jpg" ng-model="job.regex" ng-required="true" ng-maxlength="255" ng-pattern="/^\//" autofocus> + <small class="input-error" ng-show="hasPropertyError(jobForm.regex, 'required')">Required</small> + <small class="input-error" ng-show="hasPropertyError(jobForm.regex, 'maxlength')">Too Long</small> + <small class="input-error" ng-show="hasPropertyError(jobForm.regex, 'pattern')">Must Start with /</small> + <span ng-show="hasError(jobForm.regex)" class="form-control-feedback"><i class="fa fa-times"></i></span> + </div> + </div> + <div class="form-group" ng-class="{'has-error': hasError(jobForm.ttl), 'has-feedback': hasError(jobForm.ttl)}"> + <label class="control-label col-md-2 col-sm-2 col-xs-12">TTL (hours) *</label> + <div class="col-md-10 col-sm-10 col-xs-12"> + <input id="ttl" name="ttl" type="text" class="form-control" ng-model="job.ttl" ng-required="true" ng-maxlength="1000" ng-pattern="/^\d+$/" autofocus> + <small class="input-error" ng-show="hasPropertyError(jobForm.ttl, 'required')">Required</small> + <small class="input-error" ng-show="hasPropertyError(jobForm.ttl, 'maxlength')">Too Long</small> + <small class="input-error" ng-show="hasPropertyError(jobForm.ttl, 'pattern')">Number</small> + <span ng-show="hasError(jobForm.ttl)" class="form-control-feedback"><i class="fa fa-times"></i></span> + </div> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-success" ng-disabled="jobForm.$pristine || jobForm.$invalid" ng-click="save(job)">{{settings.saveLabel}}</button> + </div> + </form> + </div> +</div> http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/index.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/index.js b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/index.js new file mode 100644 index 0000000..af4fdf4 --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/index.js @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +module.exports = angular.module('trafficOps.form.deliveryServiceJob', []) + .controller('FormDeliveryServiceJobController', require('./FormDeliveryServiceJobController')); http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/new/FormNewDeliveryServiceJobController.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/new/FormNewDeliveryServiceJobController.js b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/new/FormNewDeliveryServiceJobController.js new file mode 100644 index 0000000..bace310 --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/new/FormNewDeliveryServiceJobController.js @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +var FormNewDeliveryServiceJobController = function(deliveryService, job, $scope, $controller, jobService, messageModel, locationUtils) { + + // extends the FormDeliveryServiceJobController to inherit common methods + angular.extend(this, $controller('FormDeliveryServiceJobController', { deliveryService: deliveryService, job: job, $scope: $scope })); + + $scope.jobName = 'New'; + + $scope.settings = { + isNew: true, + saveLabel: 'Create' + }; + + $scope.save = function(job) { + jobService.createJob(job) + .then( + function() { + messageModel.setMessages([ { level: 'success', text: 'Delivery Service Invalidate Content Job Created' } ], true); + locationUtils.navigateToPath('/configure/delivery-services/' + deliveryService.id + '/jobs'); + }, + function(fault) { + messageModel.setMessages(fault.data.alerts, false); + } + ); + }; + +}; + +FormNewDeliveryServiceJobController.$inject = ['deliveryService', 'job', '$scope', '$controller', 'jobService', 'messageModel', 'locationUtils']; +module.exports = FormNewDeliveryServiceJobController; http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/new/index.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/new/index.js b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/new/index.js new file mode 100644 index 0000000..9b3b50a --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryServiceJob/new/index.js @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +module.exports = angular.module('trafficOps.form.deliveryServiceJob.new', []) + .controller('FormNewDeliveryServiceJobController', require('./FormNewDeliveryServiceJobController')); http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/form/job/FormJobController.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/job/FormJobController.js b/traffic_ops/experimental/ui/app/src/common/modules/form/job/FormJobController.js new file mode 100644 index 0000000..7bf157b --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/job/FormJobController.js @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +var FormJobController = function(job, $scope, formUtils, locationUtils, deliveryServiceService) { + + var getDeliveryServices = function() { + deliveryServiceService.getDeliveryServices() + .then(function(result) { + $scope.deliveryservices = result; + }); + }; + + $scope.job = job; + + $scope.navigateToPath = locationUtils.navigateToPath; + + $scope.hasError = formUtils.hasError; + + $scope.hasPropertyError = formUtils.hasPropertyError; + + var init = function () { + getDeliveryServices(); + }; + init(); + +}; + +FormJobController.$inject = ['job', '$scope', 'formUtils', 'locationUtils', 'deliveryServiceService']; +module.exports = FormJobController; http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/form/job/form.job.tpl.html ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/job/form.job.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/form/job/form.job.tpl.html new file mode 100644 index 0000000..4839aeb --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/job/form.job.tpl.html @@ -0,0 +1,65 @@ +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<div class="x_panel"> + <div class="x_title"> + <ol class="breadcrumb"> + <li><a ng-click="navigateToPath('/admin/jobs')">Invalidate Content Jobs</a></li> + <li class="active">{{jobName}}</li> + </ol> + <div class="clearfix"></div> + </div> + <div class="x_content"> + <br> + <form name="jobForm" class="form-horizontal form-label-left" novalidate> + <div class="form-group" ng-class="{'has-error': hasError(jobForm.deliveryservice), 'has-feedback': hasError(jobForm.deliveryservice)}"> + <label class="control-label col-md-2 col-sm-2 col-xs-12">Delivery Service *</label> + <div class="col-md-10 col-sm-10 col-xs-12"> + <select id="deliveryservice" name="deliveryservice" class="form-control" ng-model="job.dsId" ng-options="deliveryservice.id as deliveryservice.xmlId for deliveryservice in deliveryservices" required> + <option value="">Select...</option> + </select> + <small class="input-error" ng-show="hasPropertyError(jobForm.deliveryservice, 'required')">Required</small> + </div> + </div> + <div class="form-group" ng-class="{'has-error': hasError(jobForm.regex), 'has-feedback': hasError(jobForm.regex)}"> + <label class="control-label col-md-2 col-sm-2 col-xs-12">Path Regex *</label> + <div class="col-md-10 col-sm-10 col-xs-12"> + <input id="regex" name="regex" type="text" class="form-control" placeholder="eg. /path/to/content/.*\.jpg" ng-model="job.regex" ng-required="true" ng-maxlength="255" ng-pattern="/^\//" autofocus> + <small class="input-error" ng-show="hasPropertyError(jobForm.regex, 'required')">Required</small> + <small class="input-error" ng-show="hasPropertyError(jobForm.regex, 'maxlength')">Too Long</small> + <small class="input-error" ng-show="hasPropertyError(jobForm.regex, 'pattern')">Must Start with /</small> + <span ng-show="hasError(jobForm.regex)" class="form-control-feedback"><i class="fa fa-times"></i></span> + </div> + </div> + <div class="form-group" ng-class="{'has-error': hasError(jobForm.ttl), 'has-feedback': hasError(jobForm.ttl)}"> + <label class="control-label col-md-2 col-sm-2 col-xs-12">TTL (hours) *</label> + <div class="col-md-10 col-sm-10 col-xs-12"> + <input id="ttl" name="ttl" type="text" class="form-control" ng-model="job.ttl" ng-required="true" ng-maxlength="1000" ng-pattern="/^\d+$/" autofocus> + <small class="input-error" ng-show="hasPropertyError(jobForm.ttl, 'required')">Required</small> + <small class="input-error" ng-show="hasPropertyError(jobForm.ttl, 'maxlength')">Too Long</small> + <small class="input-error" ng-show="hasPropertyError(jobForm.ttl, 'pattern')">Number</small> + <span ng-show="hasError(jobForm.ttl)" class="form-control-feedback"><i class="fa fa-times"></i></span> + </div> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-success" ng-disabled="jobForm.$pristine || jobForm.$invalid" ng-click="save(job)">{{settings.saveLabel}}</button> + </div> + </form> + </div> +</div> http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/form/job/index.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/job/index.js b/traffic_ops/experimental/ui/app/src/common/modules/form/job/index.js new file mode 100644 index 0000000..9f5aebf --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/job/index.js @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +module.exports = angular.module('trafficOps.form.job', []) + .controller('FormJobController', require('./FormJobController')); http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/form/job/new/FormNewJobController.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/job/new/FormNewJobController.js b/traffic_ops/experimental/ui/app/src/common/modules/form/job/new/FormNewJobController.js new file mode 100644 index 0000000..4ecde31 --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/job/new/FormNewJobController.js @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +var FormNewJobController = function(job, $scope, $controller, jobService, messageModel, locationUtils) { + + // extends the FormJobController to inherit common methods + angular.extend(this, $controller('FormJobController', { job: job, $scope: $scope })); + + $scope.jobName = 'New'; + + $scope.settings = { + isNew: true, + saveLabel: 'Create' + }; + + $scope.save = function(job) { + jobService.createJob(job) + .then( + function() { + messageModel.setMessages([ { level: 'success', text: 'Invalidate Content Job Created' } ], true); + locationUtils.navigateToPath('/admin/jobs'); + }, + function(fault) { + messageModel.setMessages(fault.data.alerts, false); + } + ); + }; + +}; + +FormNewJobController.$inject = ['job', '$scope', '$controller', 'jobService', 'messageModel', 'locationUtils']; +module.exports = FormNewJobController; http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/form/job/new/index.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/job/new/index.js b/traffic_ops/experimental/ui/app/src/common/modules/form/job/new/index.js new file mode 100644 index 0000000..4d1ec76 --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/modules/form/job/new/index.js @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +module.exports = angular.module('trafficOps.form.job.new', []) + .controller('FormNewJobController', require('./FormNewJobController')); http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/navigation/navigation.tpl.html ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/navigation/navigation.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/navigation/navigation.tpl.html index 6814241..f535a35 100644 --- a/traffic_ops/experimental/ui/app/src/common/modules/navigation/navigation.tpl.html +++ b/traffic_ops/experimental/ui/app/src/common/modules/navigation/navigation.tpl.html @@ -44,6 +44,7 @@ under the License. <li class="side-menu-category-item" ng-class="{'current-page': isState('trafficOps.private.admin.asns')}"><a ng-click="navigateToPath('/admin/asns')">ASNs</a></li> <li class="side-menu-category-item" ng-class="{'current-page': isState('trafficOps.private.admin.cdns')}"><a ng-click="navigateToPath('/admin/cdns')">CDNs</a></li> <li class="side-menu-category-item" ng-class="{'current-page': isState('trafficOps.private.admin.divisions')}"><a ng-click="navigateToPath('/admin/divisions')">Divisions</a></li> + <li class="side-menu-category-item" ng-class="{'current-page': isState('trafficOps.private.admin.jobs')}"><a ng-click="navigateToPath('/admin/jobs')">Jobs</a></li> <li class="side-menu-category-item" ng-class="{'current-page': isState('trafficOps.private.admin.physLocations')}"><a ng-click="navigateToPath('/admin/phys-locations')">Phys Locations</a></li> <li class="side-menu-category-item" ng-class="{'current-page': isState('trafficOps.private.admin.parameters')}"><a ng-click="navigateToPath('/admin/parameters')">Parameters</a></li> <li class="side-menu-category-item" ng-class="{'current-page': isState('trafficOps.private.admin.profiles')}"><a ng-click="navigateToPath('/admin/profiles')">Profiles</a></li> http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/TableDeliveryServiceJobsController.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/TableDeliveryServiceJobsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/TableDeliveryServiceJobsController.js new file mode 100644 index 0000000..93e263e --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/TableDeliveryServiceJobsController.js @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +var TableDeliveryServiceJobsController = function(deliveryService, jobs, $scope, $state, $location, locationUtils) { + + $scope.deliveryService = deliveryService; + + $scope.dsJobs = jobs; + + $scope.createJob = function() { + $location.path($location.path() + '/new'); + }; + + $scope.refresh = function() { + $state.reload(); // reloads all the resolves for the view + }; + + $scope.navigateToPath = locationUtils.navigateToPath; + + angular.element(document).ready(function () { + $('#dsJobsTable').dataTable({ + "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]], + "iDisplayLength": -1 + }); + }); + +}; + +TableDeliveryServiceJobsController.$inject = ['deliveryService', 'jobs', '$scope', '$state', '$location', 'locationUtils']; +module.exports = TableDeliveryServiceJobsController; http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/index.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/index.js b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/index.js new file mode 100644 index 0000000..086882a --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/index.js @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +module.exports = angular.module('trafficOps.table.deliveryServiceJobs', []) + .controller('TableDeliveryServiceJobsController', require('./TableDeliveryServiceJobsController')); http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/table.deliveryServiceJobs.tpl.html ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/table.deliveryServiceJobs.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/table.deliveryServiceJobs.tpl.html new file mode 100644 index 0000000..237fc8e --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/table.deliveryServiceJobs.tpl.html @@ -0,0 +1,55 @@ +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<div class="x_panel"> + <div class="x_title"> + <ol class="breadcrumb pull-left"> + <li><a ng-click="navigateToPath('/configure/delivery-services')">Delivery Services</a></li> + <li><a ng-click="navigateToPath('/configure/delivery-services/' + deliveryService.id)">{{deliveryService.displayName}}</a></li> + <li class="active">Invalidate Content Jobs</li> + </ol> + <div class="pull-right"> + <button class="btn btn-primary" title="Create Invalidate Content Job" ng-click="createJob(deliveryService.id)"><i class="fa fa-plus"></i></button> + <button class="btn btn-default" title="Refresh" ng-click="refresh()"><i class="fa fa-refresh"></i></button> + </div> + <div class="clearfix"></div> + </div> + <div class="x_content"> + <br> + <table id="dsJobsTable" class="table responsive-utilities jambo_table"> + <thead> + <tr class="headings"> + <th>assetUrl</th> + <th>parameters</th> + <th>start</th> + <th>createdBy</th> + </tr> + </thead> + <tbody> + <tr ng-repeat="dsJob in dsJobs"> + <td>{{dsJob.assetUrl}}</td> + <td>{{dsJob.parameters}}</td> + <td>{{dsJob.startTime}}</td> + <td>{{dsJob.createdBy}}</td> + </tr> + </tbody> + </table> + </div> +</div> + http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/TableJobsController.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/TableJobsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/TableJobsController.js new file mode 100644 index 0000000..f9edec3 --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/TableJobsController.js @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +var TableJobsController = function(jobs, $scope, $state, locationUtils) { + + $scope.jobs = jobs; + + $scope.createJob = function() { + locationUtils.navigateToPath('/admin/jobs/new'); + }; + + $scope.refresh = function() { + $state.reload(); // reloads all the resolves for the view + }; + + angular.element(document).ready(function () { + $('#jobsTable').dataTable({ + "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]], + "iDisplayLength": 25 + }); + }); + +}; + +TableJobsController.$inject = ['jobs', '$scope', '$state', 'locationUtils']; +module.exports = TableJobsController; http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/index.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/index.js b/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/index.js new file mode 100644 index 0000000..e95ab6a --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/index.js @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +module.exports = angular.module('trafficOps.table.jobs', []) + .controller('TableJobsController', require('./TableJobsController')); http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/table.jobs.tpl.html ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/table.jobs.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/table.jobs.tpl.html new file mode 100644 index 0000000..9b9dcb4 --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/table.jobs.tpl.html @@ -0,0 +1,55 @@ +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<div class="x_panel"> + <div class="x_title"> + <ol class="breadcrumb pull-left"> + <li class="active">Invalidate Content Jobs</li> + </ol> + <div class="pull-right" role="group" ng-show="!settings.isNew"> + <button class="btn btn-primary" title="Create Invalidate Content Job" ng-click="createJob()"><i class="fa fa-plus"></i></button> + <button class="btn btn-default" title="Refresh" ng-click="refresh()"><i class="fa fa-refresh"></i></button> + </div> + <div class="clearfix"></div> + </div> + <div class="x_content"> + <br> + <table id="jobsTable" class="table responsive-utilities jambo_table"> + <thead> + <tr class="headings"> + <th>deliveryService</th> + <th>assetUrl</th> + <th>parameters</th> + <th>start</th> + <th>createdBy</th> + </tr> + </thead> + <tbody> + <tr ng-repeat="job in jobs"> + <td>{{job.deliveryService}}</td> + <td>{{job.assetUrl}}</td> + <td>{{job.parameters}}</td> + <td>{{job.startTime}}</td> + <td>{{job.createdBy}}</td> + </tr> + </tbody> + </table> + </div> +</div> + http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/index.html ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/index.html b/traffic_ops/experimental/ui/app/src/index.html index ac22f1d..7c5b598 100644 --- a/traffic_ops/experimental/ui/app/src/index.html +++ b/traffic_ops/experimental/ui/app/src/index.html @@ -43,6 +43,8 @@ under the License. <div class="app container body" ui-view></div> + <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.js"></script> + <script src="resources/assets/js/shared-libs.js"></script> <script src="resources/assets/js/app.js"></script> <script src="resources/assets/js/config.js"></script> http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/JobsController.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/JobsController.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/JobsController.js new file mode 100644 index 0000000..5a08d47 --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/JobsController.js @@ -0,0 +1,24 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +var JobsController = function() { +}; + +JobsController.$inject = []; +module.exports = JobsController; http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/index.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/index.js new file mode 100644 index 0000000..a353511 --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/index.js @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +module.exports = angular.module('trafficOps.private.admin.jobs', []) + .controller('JobsController', require('./JobsController')) + .config(function($stateProvider, $urlRouterProvider) { + $stateProvider + .state('trafficOps.private.admin.jobs', { + url: '/jobs', + abstract: true, + views: { + adminContent: { + templateUrl: 'modules/private/admin/jobs/jobs.tpl.html', + controller: 'JobsController' + } + } + }) + ; + $urlRouterProvider.otherwise('/'); + }); http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/jobs.tpl.html ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/jobs.tpl.html b/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/jobs.tpl.html new file mode 100644 index 0000000..3597900 --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/jobs.tpl.html @@ -0,0 +1,22 @@ +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<div id="jobsContainer"> + <div ui-view="jobsContent"></div> +</div> http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/list/index.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/list/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/list/index.js new file mode 100644 index 0000000..076a102 --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/list/index.js @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +module.exports = angular.module('trafficOps.private.admin.jobs.list', []) + .config(function($stateProvider, $urlRouterProvider) { + $stateProvider + .state('trafficOps.private.admin.jobs.list', { + url: '', + views: { + jobsContent: { + templateUrl: 'common/modules/table/jobs/table.jobs.tpl.html', + controller: 'TableJobsController', + resolve: { + jobs: function(jobService) { + return jobService.getJobs(); + } + } + } + } + }) + ; + $urlRouterProvider.otherwise('/'); + }); http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/new/index.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/new/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/new/index.js new file mode 100644 index 0000000..abc007f --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/jobs/new/index.js @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +module.exports = angular.module('trafficOps.private.admin.jobs.new', []) + .config(function($stateProvider, $urlRouterProvider) { + $stateProvider + .state('trafficOps.private.admin.jobs.new', { + url: '/new', + views: { + jobsContent: { + templateUrl: 'common/modules/form/job/form.job.tpl.html', + controller: 'FormNewJobController', + resolve: { + job: function() { + return { startTime: moment().format('YYYY-MM-DD HH:mm:ss') }; + } + } + } + } + }) + ; + $urlRouterProvider.otherwise('/'); + }); http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/DeliveryServiceJobsController.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/DeliveryServiceJobsController.js b/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/DeliveryServiceJobsController.js new file mode 100644 index 0000000..f4d085d --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/DeliveryServiceJobsController.js @@ -0,0 +1,24 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +var DeliveryServiceJobsController = function() { +}; + +DeliveryServiceJobsController.$inject = []; +module.exports = DeliveryServiceJobsController; http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/deliveryServiceJobs.tpl.html ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/deliveryServiceJobs.tpl.html b/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/deliveryServiceJobs.tpl.html new file mode 100644 index 0000000..b941e55 --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/deliveryServiceJobs.tpl.html @@ -0,0 +1,22 @@ +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<div id="deliveryServiceJobsContainer"> + <div ui-view="deliveryServiceJobsContent"></div> +</div> http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/index.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/index.js b/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/index.js new file mode 100644 index 0000000..cfa4c92 --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/index.js @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +module.exports = angular.module('trafficOps.private.configure.deliveryServices.jobs', []) + .controller('DeliveryServiceJobsController', require('./DeliveryServiceJobsController')) + .config(function($stateProvider, $urlRouterProvider) { + $stateProvider + .state('trafficOps.private.configure.deliveryServices.jobs', { + url: '/{deliveryServiceId}/jobs', + abstract: true, + views: { + deliveryServicesContent: { + templateUrl: 'modules/private/configure/deliveryServices/jobs/deliveryServiceJobs.tpl.html', + controller: 'DeliveryServiceJobsController' + } + } + }) + ; + $urlRouterProvider.otherwise('/'); + }); http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/list/index.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/list/index.js b/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/list/index.js new file mode 100644 index 0000000..2ca812a --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/list/index.js @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +module.exports = angular.module('trafficOps.private.configure.deliveryServices.jobs.list', []) + .config(function($stateProvider, $urlRouterProvider) { + $stateProvider + .state('trafficOps.private.configure.deliveryServices.jobs.list', { + url: '', + views: { + deliveryServiceJobsContent: { + templateUrl: 'common/modules/table/deliveryServiceJobs/table.deliveryServiceJobs.tpl.html', + controller: 'TableDeliveryServiceJobsController', + resolve: { + deliveryService: function($stateParams, deliveryServiceService) { + return deliveryServiceService.getDeliveryService($stateParams.deliveryServiceId); + }, + jobs: function($stateParams, jobService) { + return jobService.getJobs({ dsId: $stateParams.deliveryServiceId }); + } + } + } + } + }) + ; + $urlRouterProvider.otherwise('/'); + }); http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/aad190ac/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/new/index.js ---------------------------------------------------------------------- diff --git a/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/new/index.js b/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/new/index.js new file mode 100644 index 0000000..5146fbd --- /dev/null +++ b/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/jobs/new/index.js @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +module.exports = angular.module('trafficOps.private.configure.deliveryServices.jobs.new', []) + .config(function($stateProvider, $urlRouterProvider) { + $stateProvider + .state('trafficOps.private.configure.deliveryServices.jobs.new', { + url: '/new', + views: { + deliveryServiceJobsContent: { + templateUrl: 'common/modules/form/deliveryServiceJob/form.deliveryServiceJob.tpl.html', + controller: 'FormNewDeliveryServiceJobController', + resolve: { + deliveryService: function($stateParams, deliveryServiceService) { + return deliveryServiceService.getDeliveryService($stateParams.deliveryServiceId); + }, + job: function($stateParams) { + return { dsId: $stateParams.deliveryServiceId, startTime: moment().format('YYYY-MM-DD HH:mm:ss') }; + } + } + } + } + }) + ; + $urlRouterProvider.otherwise('/'); + });
