11/**
22 * Data source.
3- *
3+ *
44 * Must implement methods.
55 *
66 * @param {Object } config
@@ -11,7 +11,9 @@ var DataSource = function (config, globalConfig) {
1111
1212 this . SOURCE_URL = config . MDX2JSONSource ||
1313 location . host + ":" + location . port + "/" + ( location . pathname . split ( "/" ) || [ ] ) [ 1 ] ;
14-
14+ this . NAMESPACE = config [ "namespace" ] ;
15+ this . USERNAME = config [ "username" ] ;
16+ this . PASSWORD = config [ "password" ] ;
1517 this . BASIC_MDX = config . basicMDX ;
1618
1719 this . GLOBAL_CONFIG = globalConfig ;
@@ -38,7 +40,6 @@ var DataSource = function (config, globalConfig) {
3840 * @private
3941 */
4042DataSource . prototype . _post = function ( url , data , callback ) {
41-
4243 var xhr = new XMLHttpRequest ( ) ;
4344 xhr . open ( "POST" , url ) ;
4445 xhr . onreadystatechange = function ( ) {
@@ -54,12 +55,15 @@ DataSource.prototype._post = function (url, data, callback) {
5455 }
5556 } ) ( ) ) ;
5657 } else if ( xhr . readyState === 4 && xhr . status !== 200 ) {
57- callback ( { error : xhr . responseText
58- || "Error while trying to retrieve data from server." } ) ;
58+ callback ( {
59+ error : xhr . responseText || "Error while trying to retrieve data from server."
60+ } ) ;
5961 }
6062 } ;
63+ if ( this . USERNAME && this . PASSWORD ) {
64+ xhr . setRequestHeader ( "Authorization" , "Basic " + btoa ( this . USERNAME + ":" + this . PASSWORD ) ) ;
65+ }
6166 xhr . send ( JSON . stringify ( data ) ) ;
62-
6367} ;
6468
6569/**
@@ -217,7 +221,7 @@ DataSource.prototype.getCurrentData = function (callback) {
217221
218222 console . log ( "Requesting MDX: " + mdx ) ;
219223
220- _ . _post ( _ . SOURCE_URL + "/" + _ . ACTION , {
224+ _ . _post ( _ . SOURCE_URL + "/" + _ . ACTION + ( _ . NAMESPACE ? "?Namespace=" + _ . NAMESPACE : "" ) , {
221225 MDX : mdx
222226 } , function ( data ) {
223227 ready . data = data ;
@@ -227,7 +231,8 @@ DataSource.prototype.getCurrentData = function (callback) {
227231 } ;
228232
229233 if ( this . DATA_SOURCE_PIVOT ) {
230- this . _post ( this . SOURCE_URL + "/DataSource" , {
234+ this . _post ( this . SOURCE_URL + "/DataSource"
235+ + ( _ . NAMESPACE ? "?Namespace=" + _ . NAMESPACE : "" ) , {
231236 DataSource : this . DATA_SOURCE_PIVOT
232237 } , function ( data ) {
233238 ready . pivotData = data ;
0 commit comments