-
Notifications
You must be signed in to change notification settings - Fork 0
/
branch.html.ep
127 lines (119 loc) · 4.4 KB
/
branch.html.ep
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
% layout 'main';
% title $title;
<div class="row" ng-app ng-controller="InstanceCtrl">
<div class="span8">
<div class="alert alert-info">
<button type="button" class="close" data-dismiss="alert">x</button>
<p><em>If you don't see what you expected, refresh again!</em></p>
</div>
<h2>Instances for this branch</h2>
<table class="table table-striped">
<thead>
<tr>
<th>Name</th>
<th>IP</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="instance in instances">
<td>{{instance.name}}</td>
<td>{{instance.ip}}</td>
<td>{{instance.status}}</td>
<td>
<a ng-click="stopInstance(instance)"
class="btn btn-warning btn-mini">Stop</a>
<a ng-click="startInstance(instance)"
class="btn btn-warning btn-mini">Start</a>
<a ng-click="pauseInstance(instance)"
class="btn btn-warning btn-mini">Pause</a>
<a ng-click="unpauseInstance(instance)"
class="btn btn-warning btn-mini">Unpause</a>
<a ng-click="restartInstance(instance)"
class="btn btn-warning btn-mini">Restart</a>
<a ng-click="destroyInstance(instance)"
class="btn btn-warning btn-mini">Destroy</a>
</td>
</tr>
</tbody>
</table>
<p ng-hide="instances.length"><strong>No running instances!</strong></p>
</div><!-- .span8 -->
<div class="span4">
<form class="form well" action="/deploy" method="POST">
<legend>Deploy new instance</legend>
<div class="control-group">
<label class="control-label" for="name">Name</label>
<div class="controls">
<input type="text" id="name" name="name" class="input-block-level">
</div><!-- .controls -->
</div><!-- .control-group -->
<div class="control-group">
<label class="control-label" for="image">Image</label>
<div class="controls">
<select name="image" id="image" class="input-block-level">
<% foreach my $i (@$images) { %>
<option value="<%= $i->{id} %>"><%= $i->{name} %></option>
<% } %>
</select>
</div><!-- .controls -->
</div><!-- .control-group -->
<div class="control-group">
<label class="control-label" for="flavor">Flavors</label>
<div class="controls">
<select name="flavor" id="flavor" class="input-block-level">
<% foreach my $f (@$flavors) { %>
<option value="<%= $f->{id} %>"><%= $f->{name} %></option>
<% } %>
</select>
</div><!-- .controls -->
</div><!-- .control-group -->
<input type="hidden" value="<%= $branchId %>" name="branchId">
<input type="hidden" value="<%= $pid %>" name="projectId">
<div class="control-group">
<div class="controls">
<button type="submit" class="btn btn-primary">Deploy</button>
</div><!-- .controls -->
</div><!-- .control-group -->
</form>
</div><!-- .span4 -->
</div><!-- .row -->
<script src="/js/angular.min.js"></script>
<script>
function InstanceCtrl($scope, $http) {
$scope.branchId = '<%= $branchId %>';
$scope.projectId = '<%= $pid %>';
$scope.updateInstances = function() {
$http({method: 'GET', url: '/instances/<%= $branchId %>'},function(d) {
$scope.instances = d;
});
};
$scope.doWithInstance = function(i,verb) {
return $http.get(
"/instance/"+$scope.projectId+
"/"+$scope.branchId+"/"+i.id+"/"+verb;
);
$scope.updateInstances();
};
$scope.stopInstance = function(i) {
return $scope.doWithInstance(i,"stop");
};
$scope.startInstance = function(i) {
return $scope.doWithInstance(i,"start");
};
$scope.pauseInstance = function(i) {
return $scope.doWithInstance(i,"pause");
};
$scope.unpauseInstance = function(i) {
return $scope.doWithInstance(i,"unpause");
};
$scope.restartInstance = function(i) {
return $scope.doWithInstance(i,"restart");
};
$scope.destroyInstance = function(i) {
return $scope.doWithInstance(i,"destroy");
};
}
</script>
<!-- <%= $debugproject %> -->