mirror of
https://github.com/bingohuang/docker-labs.git
synced 2025-07-13 17:42:53 +08:00
Added setting to allow specification of new instance image
This commit is contained in:
parent
38c97cf100
commit
3b86c79c5b
@ -11,7 +11,7 @@
|
||||
}, 500);
|
||||
}]);
|
||||
|
||||
app.controller('PlayController', ['$scope', '$log', '$http', '$location', '$timeout', '$mdDialog', '$window', 'KeyboardShortcutService', function($scope, $log, $http, $location, $timeout, $mdDialog, $window, KeyboardShortcutService) {
|
||||
app.controller('PlayController', ['$scope', '$log', '$http', '$location', '$timeout', '$mdDialog', '$window', 'KeyboardShortcutService', 'InstanceService', function($scope, $log, $http, $location, $timeout, $mdDialog, $window, KeyboardShortcutService, InstanceService) {
|
||||
$scope.sessionId = window.location.pathname.replace('/p/', '');
|
||||
$scope.instances = [];
|
||||
$scope.idx = {};
|
||||
@ -75,6 +75,7 @@
|
||||
$http({
|
||||
method: 'POST',
|
||||
url: '/sessions/' + $scope.sessionId + '/instances',
|
||||
data : { ImageName : InstanceService.getDesiredImage() }
|
||||
}).then(function(response) {
|
||||
var i = $scope.upsertInstance(response.data);
|
||||
$scope.showInstance(i);
|
||||
@ -325,12 +326,14 @@
|
||||
})
|
||||
.component("settingsDialog", {
|
||||
templateUrl : "settings-modal.html",
|
||||
controller : function($mdDialog, KeyboardShortcutService, $rootScope) {
|
||||
controller : function($mdDialog, KeyboardShortcutService, $rootScope, InstanceService) {
|
||||
var $ctrl = this;
|
||||
|
||||
$ctrl.$onInit = function() {
|
||||
$ctrl.keyboardShortcutPresets = KeyboardShortcutService.getAvailablePresets();
|
||||
$ctrl.selectedShortcutPreset = KeyboardShortcutService.getCurrentShortcuts();
|
||||
$ctrl.instanceImages = InstanceService.getAvailableImages();
|
||||
$ctrl.selectedInstanceImage = InstanceService.getDesiredImage();
|
||||
};
|
||||
|
||||
$ctrl.currentShortcutConfig = function(value) {
|
||||
@ -341,13 +344,58 @@
|
||||
$rootScope.$broadcast('settings:shortcutsSelected', $ctrl.selectedShortcutPreset);
|
||||
}
|
||||
return JSON.stringify(KeyboardShortcutService.getCurrentShortcuts());
|
||||
}
|
||||
};
|
||||
|
||||
$ctrl.currentDesiredInstanceImage = function(value) {
|
||||
if (value !== undefined) {
|
||||
InstanceService.setDesiredImage(value);
|
||||
}
|
||||
return InstanceService.getDesiredImage(value);
|
||||
};
|
||||
|
||||
$ctrl.close = function() {
|
||||
$mdDialog.cancel();
|
||||
}
|
||||
}
|
||||
})
|
||||
.service("InstanceService", function($http) {
|
||||
var instanceImages = [];
|
||||
_prepopulateAvailableImages();
|
||||
|
||||
return {
|
||||
getAvailableImages : getAvailableImages,
|
||||
setDesiredImage : setDesiredImage,
|
||||
getDesiredImage : getDesiredImage,
|
||||
};
|
||||
|
||||
function getAvailableImages() {
|
||||
return instanceImages;
|
||||
}
|
||||
|
||||
function getDesiredImage() {
|
||||
var image = localStorage.getItem("settings.desiredImage");
|
||||
if (image == null)
|
||||
return instanceImages[0];
|
||||
return image;
|
||||
}
|
||||
|
||||
function setDesiredImage(image) {
|
||||
if (image === null)
|
||||
localStorage.removeItem("settings.desiredImage");
|
||||
else
|
||||
localStorage.setItem("settings.desiredImage", image);
|
||||
}
|
||||
|
||||
function _prepopulateAvailableImages() {
|
||||
return $http
|
||||
.get("/instances/images")
|
||||
.then(function(response) {
|
||||
instanceImages = response.data;
|
||||
});
|
||||
}
|
||||
|
||||
})
|
||||
.run(function(InstanceService) { /* forcing pre-populating for now */ })
|
||||
.service("KeyboardShortcutService", function() {
|
||||
return {
|
||||
getAvailablePresets : getAvailablePresets,
|
||||
@ -394,3 +442,5 @@
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
||||
|
||||
|
@ -149,6 +149,18 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div layout="row">
|
||||
<div flex="50">
|
||||
<md-input-container class="md-block" flex-gt-sm>
|
||||
<label>Instance Image</label>
|
||||
<md-select ng-model="$ctrl.currentDesiredInstanceImage" ng-model-options="{getterSetter: true}" placeholder="New Instance Image">
|
||||
<md-option ng-repeat="image in $ctrl.instanceImages" value="{{image}}">
|
||||
{{ image }}
|
||||
</md-option>
|
||||
</md-select>
|
||||
</md-input-container>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</md-dialog-content>
|
||||
|
||||
@ -187,3 +199,4 @@
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user