This commit is contained in:
Mo Bitar
2017-12-21 12:31:56 -06:00
parent 5714a63a78
commit 81b392bdaa
6 changed files with 87 additions and 2 deletions

View File

@@ -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;

View File

@@ -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);

View 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);

View File

@@ -50,7 +50,7 @@ h2 {
font-weight: bold;
margin-bottom: 4px;
}
h1 {
font-size: 16px;
}
@@ -83,6 +83,18 @@ h2 {
// margin-bottom: 10px;
border-radius: 0px;
}
#room-bar {
display: inline-block;
border-left: 1px solid gray;
padding-left: 10px;
padding-right: 10px;
margin-left: 5px;
.room-item {
display: inline-block;
}
}
}
#footer-bar .footer-bar-link {

View File

@@ -0,0 +1,2 @@
.room-item{"ng-repeat" => "room in rooms"}
{{room.name}}

View File

@@ -12,6 +12,8 @@
%a{"href" => "https://standardnotes.org/help", "target" => "_blank"}
Help
%room-bar#room-bar
.pull-right
.footer-bar-link{"ng-if" => "ctrl.newUpdateAvailable", "ng-click" => "ctrl.clickedNewUpdateAnnouncement()"}