feat: support parallel legacy and sandbox extensions
This commit is contained in:
83
Legacy/PackageTemplate/Files/WM/workspaces/C4IT_F4SD/F4SD.min.js
vendored
Normal file
83
Legacy/PackageTemplate/Files/WM/workspaces/C4IT_F4SD/F4SD.min.js
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
(function (w) {
|
||||
'use strict';
|
||||
var icons = 'c4it-f4sd-icons';
|
||||
w.mx = w.mx || {};
|
||||
w.mx.workspacesConfig = w.mx.workspacesConfig || {};
|
||||
w.mx.workspacesConfig.modules = w.mx.workspacesConfig.modules || {};
|
||||
w.mx.workspacesConfig.modules.add = w.mx.workspacesConfig.modules.add || function (name, config) {
|
||||
w.mx.workspacesConfig.modules[name] = config;
|
||||
};
|
||||
|
||||
w.mx.workspacesConfig.modules.add('mx.C4IT.F4SD', {
|
||||
name: 'mx.C4IT.F4SD',
|
||||
config: ['$mdIconProvider', function ($mdIconProvider) {
|
||||
$mdIconProvider.iconSet(icons, 'workspaces/C4IT_F4SD/F4SDIcons.svg');
|
||||
|
||||
w.mx = w.mx || {};
|
||||
w.mx.components = w.mx.components || {};
|
||||
w.mx.components.Icons = w.mx.components.Icons || {};
|
||||
|
||||
w.mx.components.Icons.unshift({
|
||||
'id': icons,
|
||||
'name': 'C4IT F4SD Icons',
|
||||
'icons': [{
|
||||
'SVG': true,
|
||||
'id': icons + ':icon-f4sd',
|
||||
'name': 'F4SD Icon',
|
||||
'keywords': ['c4it', 'custom', 'f4sd']
|
||||
}, {
|
||||
'SVG': true,
|
||||
'id': icons + ':icon-f4sd-coloured',
|
||||
'name': 'F4SD Icon (coloured)',
|
||||
'keywords': ['c4it', 'custom', 'f4sd']
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
]
|
||||
});
|
||||
})(window);
|
||||
(function (w) {
|
||||
'use strict';
|
||||
|
||||
angular.module("mx.C4IT.F4SD").controller("mx.C4IT.F4SD.Actions.callF4SD", ["mx.shell.Config", "mx.SolutionBuilderAgent.Http", "mx.shell.NotificationService", "mx.internationalization", function (shellConfig, $http, notificationService, i18n) {
|
||||
var vm = this;
|
||||
this.restHost = shellConfig.settings.restHosts.default;
|
||||
this.messageF4SDOpened = i18n.get('c4it.f4sd.action-open-called') || 'F4SD is beeing opened...';
|
||||
this.execute = function (conf, para) {
|
||||
// called from context menu grid || in dialog
|
||||
var eoid = conf[0]['Sys-ObjectId'] || conf[0].ID;
|
||||
|
||||
// get action parameters
|
||||
try {
|
||||
vm.controllerParams = new URLSearchParams(para.controllerParams);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
notificationService.error("Action config parameters format exception");
|
||||
return;
|
||||
}
|
||||
|
||||
// get f4sd url
|
||||
const uri = new URL("/api/c4itf4sdwebapi/getdirectlinkf4sd/", vm.restHost);
|
||||
uri.searchParams.append("type", vm.controllerParams.get("type") || para.name);
|
||||
uri.searchParams.append("eoid", eoid);
|
||||
$http.get(uri.pathname + uri.search).then(function (n) {
|
||||
try {
|
||||
const F4SDUrl = new URL(n);
|
||||
if (F4SDUrl.protocol == "f4sdsend:" && F4SDUrl.pathname == "//localhost/") {
|
||||
if (vm.controllerParams.has("showNotification") && vm.controllerParams.get("showNotification") == 1)
|
||||
notificationService.info(vm.messageF4SDOpened);
|
||||
window.location.href = n;
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error); // => TypeError, "Failed to construct URL: Invalid URL"
|
||||
notificationService.error("Service not available");
|
||||
}
|
||||
}, function errorCallback(response) {
|
||||
console.log(response);
|
||||
notificationService.error("Service not available");
|
||||
});
|
||||
};
|
||||
}
|
||||
]);
|
||||
})(window);
|
||||
Reference in New Issue
Block a user