System exts wip
This commit is contained in:
9
.gitmodules
vendored
Normal file
9
.gitmodules
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
[submodule "vendor/extensions/extensions-manager"]
|
||||||
|
path = vendor/extensions/extensions-manager
|
||||||
|
url = https://github.com/sn-extensions/extensions-manager.git
|
||||||
|
[submodule "app/extensions/extensions-manager"]
|
||||||
|
path = app/extensions/extensions-manager
|
||||||
|
url = https://github.com/sn-extensions/extensions-manager.git
|
||||||
|
[submodule "public/extensions/extensions-manager"]
|
||||||
|
path = public/extensions/extensions-manager
|
||||||
|
url = https://github.com/sn-extensions/extensions-manager.git
|
||||||
@@ -159,18 +159,67 @@ angular.module('app.frontend')
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let extensionsIdentifier = "org.standardnotes.extensions-manager";
|
||||||
|
|
||||||
// Handle singleton ProLink instance
|
// Handle singleton ProLink instance
|
||||||
singletonManager.registerSingleton({content_type: "SN|Component", package_info: {identifier: "org.standardnotes.prolink"}}, (resolvedSingleton) => {
|
singletonManager.registerSingleton({content_type: "SN|Component", package_info: {identifier: extensionsIdentifier}}, (resolvedSingleton) => {
|
||||||
|
// Resolved Singleton
|
||||||
|
console.log("Resolved extensions-manager", resolvedSingleton);
|
||||||
|
var needsSync = false;
|
||||||
|
if(isDesktopApplication()) {
|
||||||
|
if(!resolvedSingleton.local_url) {
|
||||||
|
resolvedSingleton.local_url = window._extensions_manager_location;
|
||||||
|
needsSync = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(!resolvedSingleton.hosted_url) {
|
||||||
|
resolvedSingleton.hosted_url = window._extensions_manager_location;
|
||||||
|
needsSync = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(needsSync) {
|
||||||
|
resolvedSingleton.setDirty(true);
|
||||||
|
syncManager.sync();
|
||||||
|
}
|
||||||
}, (valueCallback) => {
|
}, (valueCallback) => {
|
||||||
// Safe to create. Create and return object.
|
// Safe to create. Create and return object.
|
||||||
let url = window._prolink_package_url;
|
let url = window._extensions_manager_location;
|
||||||
console.log("Installing ProLink from URL", url);
|
console.log("Installing Extensions Manager from URL", url);
|
||||||
if(!url) {
|
if(!url) {
|
||||||
console.error("window._prolink_package_url must be set.");
|
console.error("window._extensions_manager_location must be set.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
packageManager.installPackage(url, (component) => {
|
|
||||||
|
var item = {
|
||||||
|
content_type: "SN|Component",
|
||||||
|
content: {
|
||||||
|
name: "Extensions",
|
||||||
|
area: "rooms",
|
||||||
|
package_info: {
|
||||||
|
identifier: extensionsIdentifier
|
||||||
|
},
|
||||||
|
permissions: [
|
||||||
|
{
|
||||||
|
name: "stream-items",
|
||||||
|
content_types: ["SN|Component", "SN|Theme", "SF|Extension", "Extension", "SF|MFA"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isDesktopApplication()) {
|
||||||
|
item.content.local_url = window._extensions_manager_location;
|
||||||
|
} else {
|
||||||
|
item.content.hosted_url = window._extensions_manager_location;
|
||||||
|
}
|
||||||
|
|
||||||
|
var component = modelManager.createItem(item);
|
||||||
|
modelManager.addItem(component);
|
||||||
|
|
||||||
|
component.setDirty(true);
|
||||||
|
syncManager.sync();
|
||||||
|
|
||||||
valueCallback(component);
|
valueCallback(component);
|
||||||
})
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
%a.no-decoration{"ng-if" => "editors.length == 0", "href" => "https://standardnotes.org/extensions", "target" => "blank"}
|
%a.no-decoration{"ng-if" => "editors.length == 0", "href" => "https://standardnotes.org/extensions", "target" => "blank"}
|
||||||
%menu-row{"title" => "'Download More Editors'", "ng-click" => "moreEditors()"}
|
%menu-row{"title" => "'Download More Editors'", "ng-click" => "moreEditors()"}
|
||||||
.section
|
.section{"ng-if" => "stack.length > 0"}
|
||||||
.header
|
.header
|
||||||
%h4.title Editor Stack
|
%h4.title Editor Stack
|
||||||
%menu-row{"ng-repeat" => "component in stack", "ng-click" => "selectComponent($event, component)", "title" => "component.name",
|
%menu-row{"ng-repeat" => "component in stack", "ng-click" => "selectComponent($event, component)", "title" => "component.name",
|
||||||
|
|||||||
1
app/extensions/extensions-manager
Submodule
1
app/extensions/extensions-manager
Submodule
Submodule app/extensions/extensions-manager added at f6fce76888
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
window._default_sf_server = "<%= ENV['SF_DEFAULT_SERVER'] %>";
|
window._default_sf_server = "<%= ENV['SF_DEFAULT_SERVER'] %>";
|
||||||
window._prolink_package_url = "<%= ENV['PROLINK_PACKAGE_URL'] %>";
|
window._extensions_manager_location = "<%= ENV['EXTENSIONS_MANAGER_LOCATION'] %>";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<% if Rails.env.development? %>
|
<% if Rails.env.development? %>
|
||||||
|
|||||||
1
public/extensions/extensions-manager
Submodule
1
public/extensions/extensions-manager
Submodule
Submodule public/extensions/extensions-manager added at f6fce76888
1
vendor/extensions/extensions-manager
vendored
Submodule
1
vendor/extensions/extensions-manager
vendored
Submodule
Submodule vendor/extensions/extensions-manager added at f6fce76888
Reference in New Issue
Block a user