Wip
This commit is contained in:
@@ -7,7 +7,7 @@ class GlobalExtensionsMenu {
|
||||
};
|
||||
}
|
||||
|
||||
controller($scope, extensionManager, syncManager, modelManager, themeManager, componentManager) {
|
||||
controller($scope, extensionManager, syncManager, modelManager, themeManager, componentManager, packageManager) {
|
||||
'ngInject';
|
||||
|
||||
$scope.formData = {};
|
||||
@@ -176,6 +176,8 @@ class GlobalExtensionsMenu {
|
||||
$scope.handleThemeLink(link, completion);
|
||||
} else if(type == "component") {
|
||||
$scope.handleComponentLink(link, completion);
|
||||
} else if(type == "package") {
|
||||
$scope.handlePackageLink(link, completion);
|
||||
}
|
||||
|
||||
else {
|
||||
@@ -184,6 +186,10 @@ class GlobalExtensionsMenu {
|
||||
}
|
||||
}
|
||||
|
||||
$scope.handlePackageLink = function(link, completion) {
|
||||
packageManager.installPackage(link, completion);
|
||||
}
|
||||
|
||||
$scope.handleSyncAdapterLink = function(link, completion) {
|
||||
var params = parametersFromURL(link);
|
||||
params["url"] = link;
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
class RoomBar {
|
||||
|
||||
constructor() {
|
||||
this.restrict = "E";
|
||||
this.templateUrl = "frontend/directives/room-bar.html";
|
||||
this.scope = {
|
||||
};
|
||||
}
|
||||
|
||||
controller($rootScope, $scope, extensionManager, syncManager, modelManager, componentManager, $timeout) {
|
||||
'ngInject';
|
||||
|
||||
$scope.extensionManager = extensionManager;
|
||||
$scope.componentManager = componentManager;
|
||||
|
||||
$rootScope.$on("initial-data-loaded", () => {
|
||||
$timeout(() => {
|
||||
$scope.rooms = componentManager.componentsForArea("rooms");
|
||||
console.log("Rooms:", $scope.rooms);
|
||||
})
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
angular.module('app.frontend').directive('roomBar', () => new RoomBar);
|
||||
35
app/assets/javascripts/app/services/packageManager.js
Normal file
35
app/assets/javascripts/app/services/packageManager.js
Normal file
@@ -0,0 +1,35 @@
|
||||
class PackageManager {
|
||||
|
||||
constructor(httpManager, modelManager, syncManager) {
|
||||
this.httpManager = httpManager;
|
||||
this.modelManager = modelManager;
|
||||
this.syncManager = syncManager;
|
||||
}
|
||||
|
||||
|
||||
installPackage(url, callback) {
|
||||
this.httpManager.getAbsolute(url, {}, function(aPackage){
|
||||
console.log("Got package data", aPackage);
|
||||
if(typeof aPackage !== 'object') {
|
||||
callback(null);
|
||||
return;
|
||||
}
|
||||
|
||||
var assembled = this.modelManager.createItem(aPackage);
|
||||
this.modelManager.addItem(assembled);
|
||||
assembled.setDirty(true);
|
||||
this.syncManager.sync();
|
||||
|
||||
console.log("Created assembled", assembled);
|
||||
|
||||
callback && callback(assembled);
|
||||
}.bind(this), function(response){
|
||||
console.error("Error retrieving package", response);
|
||||
callback(null);
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
angular.module('app.frontend').service('packageManager', PackageManager);
|
||||
Reference in New Issue
Block a user