1 var ARUGMENT1 = (function(window, undefined) {
3 var ARUGMENT1 = ARUGMENT1 || {};
4 function extractHostPortApp(src) {
5 ARUGMENT1.microserviceId = MICROSERVICE_ID;
6 ARUGMENT1.pathArray = src.split( '/' );
7 ARUGMENT1.widgetName = ARUGMENT1.pathArray[ARUGMENT1.pathArray.length - 2];
8 ARUGMENT1.serviceSeperator = ARUGMENT1.pathArray[ARUGMENT1.pathArray.length - 4];
9 ARUGMENT1.commonUrl = src.substring(0, src.lastIndexOf("/" + ARUGMENT1.widgetName));
10 ARUGMENT1.recipientDivDataAttrib = 'data-' + ARUGMENT1.widgetName;
11 ARUGMENT1.controllerName = 'ARUGMENT2';
12 ARUGMENT1.readyCssFlag = 'ARUGMENT3';
13 ARUGMENT1.readyCssFlagExpectedValue = '#bada55';
14 ARUGMENT1.serviceURL = src.substring(0, src.lastIndexOf("/" + ARUGMENT1.serviceSeperator)) + '/portalApi/microservice/proxy/parameter/' + WIDGET_ID;
17 extractHostPortApp(document.currentScript.src);
19 function loadStylesheet(url) {
20 var link = document.createElement('link');
21 link.rel = 'stylesheet';
22 link.type = 'text/css';
24 var entry = document.getElementsByTagName('script')[0];
25 entry.parentNode.insertBefore(link, entry);
28 function isCssReady(callback) {
29 var testElem = document.createElement('span');
30 testElem.id = ARUGMENT1.readyCssFlag;
31 testElem.style = 'CSS_ARG1';
32 var entry = document.getElementsByTagName('script')[0];
33 entry.parentNode.insertBefore(testElem, entry);
36 var node = document.getElementById('css-ready');
38 if (window.getComputedStyle) {
39 value = document.defaultView.getComputedStyle(testElem, null)
40 .getPropertyValue('color');
42 else if (node.currentStyle) {
43 value = node.currentStyle.color;
45 if (value && value === 'rgb(186, 218, 85)' || value.toLowerCase() === ARUGMENT1.readyCssFlagExpectedValue) {
48 setTimeout(poll, 500);
53 function injectCss(css) {
54 var style = document.createElement('style');
55 style.type = 'text/css';
56 css = css.replace(/\}/g, "}\n");
58 if (style.styleSheet) {
59 style.styleSheet.cssText = css;
61 style.appendChild(document.createTextNode(css));
63 var entry = document.getElementsByTagName('script')[0];
64 entry.parentNode.insertBefore(style, entry);
67 function loadScript(url, callback) {
68 var script = document.createElement('script');
70 var entry = document.getElementsByTagName('script')[0];
71 entry.parentNode.insertBefore(script, entry);
72 script.onload = script.onreadystatechange = function() {
73 var rdyState = script.readyState;
74 if (!rdyState || /complete|loaded/.test(script.readyState)) {
77 script.onreadystatechange = null;
82 function loadSupportingFiles(callback) {
86 function getWidgetParams() {
90 function getWidgetData(widgetUrl, callback) {
100 success: function (result) {
101 if (result.isOk == false){
115 function getMarkupContent(markupLocation, target){
119 success: function (result) {
120 if (result.isOk == false){
123 target.innerHTML = result;
130 function renderWidget(data, location, $controllerProvider) {
131 var div = document.createElement('div');
132 getMarkupContent(ARUGMENT1.commonUrl + "/markup/" + ARUGMENT1.widgetName, div);
133 location.append(div);
134 ARUGMENT1.widgetData = data;
135 app.controllerProvider.register(ARUGMENT1.controllerName, ARUGMENT1.controller);
136 var mController = angular.element(document.getElementById("widgets"));
137 mController.scope().activateThis(location);
140 function printAllArtifacts(moduleName, controllerName) {
141 var queue = angular.module(moduleName)._invokeQueue;
142 for(var i=0;i<queue.length;i++) {
144 console.log(i + '. ' + call[0] + ' - ' + call[1] + ' - ' + call[2][0]);
149 if(name=(new RegExp('[?&]'+encodeURIComponent(name)+'=([^&]*)')).exec(location.search))
150 return decodeURIComponent(name[1]);
153 loadSupportingFiles(function() {
154 loadStylesheet(ARUGMENT1.commonUrl + '/' + ARUGMENT1.widgetName + '/style.css');
155 loadScript(ARUGMENT1.commonUrl + '/' + ARUGMENT1.widgetName + '/controller.js',
157 $('['+ ARUGMENT1.recipientDivDataAttrib + ']').each(function() {
158 var location = jQuery(this);
159 location.removeAttr(ARUGMENT1.recipientDivDataAttrib);
160 var id = location.attr(ARUGMENT1.recipientDivDataAttrib);
161 getWidgetData(ARUGMENT1.serviceURL, function(data) {
162 isCssReady(function(){
163 renderWidget(data, location);