Component expiration handling, rename SyncAdapter -> ServerExtension

This commit is contained in:
Mo Bitar
2018-01-20 11:41:55 -06:00
parent 02f77b67b0
commit 56c247534b
8 changed files with 70 additions and 16 deletions

View File

@@ -50,11 +50,27 @@ class ComponentView {
if(component) {
componentManager.activateComponent(component);
component.runningLocally = $scope.getUrl
console.log("Loading", $scope.component.name, $scope.getUrl());
console.log("Loading", $scope.component.name, $scope.getUrl(), component.valid_until);
$scope.reloadStatus();
}
}
$scope.reloadStatus = function() {
$scope.reloading = true;
let previouslyValid = $scope.componentValid;
$scope.componentValid = !$scope.component.valid_until || ($scope.component.valid_until && $scope.component.valid_until > new Date());
if($scope.componentValid !== previouslyValid) {
if($scope.componentValid) {
componentManager.activateComponent($scope.component);
}
}
$timeout(() => {
$scope.reloading = false;
}, 500)
}
$scope.getUrl = function() {
var url = componentManager.urlForComponent($scope.component);
$scope.component.runningLocally = url !== ($scope.component.url || $scope.component.hosted_url);

View File

@@ -153,7 +153,7 @@ class GlobalExtensionsMenu {
var type = getParameterByName("type", link);
if(type == "sf") {
$scope.handleSyncAdapterLink(link, completion);
$scope.handleServerExtensionLink(link, completion);
} else if(type == "editor") {
$scope.handleEditorLink(link, completion);
} else if(link.indexOf(".css") != -1 || type == "theme") {
@@ -174,10 +174,10 @@ class GlobalExtensionsMenu {
packageManager.installPackage(link, completion);
}
$scope.handleSyncAdapterLink = function(link, completion) {
$scope.handleServerExtensionLink = function(link, completion) {
var params = parametersFromURL(link);
params["url"] = link;
var ext = new SyncAdapter({content: params});
var ext = new ServerExtension({content: params});
ext.setDirty(true);
modelManager.addItem(ext);

View File

@@ -1,4 +1,4 @@
class SyncAdapter extends Item {
class ServerExtension extends Item {
constructor(json_obj) {
super(json_obj);

View File

@@ -25,6 +25,10 @@ class Component extends Item {
this.hosted_url = content.hosted_url;
this.offlineOnly = content.offlineOnly;
if(content.valid_until) {
this.valid_until = new Date(content.valid_until);
}
this.name = content.name;
this.autoupdateDisabled = content.autoupdateDisabled;
@@ -51,6 +55,7 @@ class Component extends Item {
url: this.url,
hosted_url: this.hosted_url,
local_url: this.local_url,
valid_until: this.valid_until,
offlineOnly: this.offlineOnly,
name: this.name,
area: this.area,

View File

@@ -217,7 +217,7 @@ class ModelManager {
} else if(json_obj.content_type == "SN|Component") {
item = new Component(json_obj);
} else if(json_obj.content_type == "SF|Extension") {
item = new SyncAdapter(json_obj);
item = new ServerExtension(json_obj);
} else if(json_obj.content_type == "SF|MFA") {
item = new Mfa(json_obj);
}