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);
|
||||
@@ -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 {
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
.room-item{"ng-repeat" => "room in rooms"}
|
||||
{{room.name}}
|
||||
@@ -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()"}
|
||||
|
||||
Reference in New Issue
Block a user