1var spInstanceHelper = (function() { 2 return { 3 getAllPreferences: function(preferencUri){ 4 var xhrArgs = {url:preferencUri,responseType: "json"}; 5 return i$.xhrGet(xhrArgs); 6 }, 7 getPortletPreferences: function (preferencUri){ 8 Promise = i$.Promise; 9 var p = new Promise() 10 spInstanceHelper.getAllPreferences(preferencUri).then(function(prefJson){ 11 var returnData = null; 12 if(prefJson.data != null && 13 prefJson.data.additionalPreferences['com.ibm.portal.scriptpreference'] != null) 14 returnData = prefJson.data.additionalPreferences['com.ibm.portal.scriptpreference'][0]; 15 if(returnData != null) 16 returnData = JSON.parse(returnData); 17 p.resolve(returnData); 18 }, 19 function(e){ 20 p.reject(e.data); 21 }); 22 return p; 23 }, 24 setAllPreferences: function(preferencUri, prefJson){ 25 var headers = {"Content-Type": "application/json; charset=utf-8"}; 26 var xhrArgs = {url:preferencUri,postData:JSON.stringify(prefJson),headers: headers}; 27 return i$.xhrPut(xhrArgs); 28 }, 29 setPortletPreferences: function (preferencUri, data){ 30 Promise = i$.Promise; 31 var p = new Promise() 32 spInstanceHelper.getAllPreferences(preferencUri).then(function(prefJson){ 33 var oneElement = []; 34 oneElement[0] = JSON.stringify(data); 35 prefJson.data.additionalPreferences['com.ibm.portal.scriptpreference'] = oneElement; 36 spInstanceHelper.setAllPreferences(preferencUri, prefJson.data).then(function(prefJson){ 37 var returnData = null; 38 if(prefJson.data!= null){ 39 returnData = JSON.parse(prefJson.data).additionalPreferences['com.ibm.portal.scriptpreference']; 40 } 41 if(returnData != null) 42 returnData = JSON.parse(returnData); 43 p.resolve(returnData); 44 }, 45 function(e){ 46 p.reject(e.data); 47 }); 48 }, 49 function(e){ 50 p.reject(e.data); 51 }); 52 return p; 53 } 54 }; 55})(); 56// this is a version of promise that I can return when the other Promise support is missing 57// used in preview since i$ is not available always returns an error result 58function ErrorPromise(fn) { 59 var value; 60 var state = 'pending'; 61 var deferred = null; 62 63 function resolve(newValue) { 64 if(newValue && typeof newValue.then === 'function') { 65 newValue.then(resolve, reject); 66 return; 67 } 68 state = 'resolved'; 69 value = newValue; 70 if(deferred) { 71 handle(deferred); 72 } 73 } 74 75 function reject(reason) { 76 state = 'rejected'; 77 value = reason; 78 if(deferred) { 79 handle(deferred); 80 } 81 } 82 83 function handle(handler) { 84 if(state === 'pending') { 85 deferred = handler; 86 return; 87 } 88 var handlerCallback; 89 if(state === 'resolved') { 90 handlerCallback = handler.onResolved; 91 } else { 92 handlerCallback = handler.onRejected; 93 } 94 if(!handlerCallback) { 95 if(state === 'resolved') { 96 handler.resolve(value); 97 } else { 98 handler.reject(value); 99 } 100 return; 101 } 102 103 var ret = handlerCallback(value); 104 handler.resolve(ret); 105 } 106 107 this.then = function(onResolved, onRejected) { 108 return new ErrorPromise(function(resolve, reject) { 109 handle({ 110 onResolved: onResolved, 111 onRejected: onRejected, 112 resolve: resolve, 113 reject: reject 114 }); 115 }); 116 }; 117 fn(resolve, reject); 118}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.