diff --git a/dom.js b/dom.js index ca825f5..86dd7e9 100644 --- a/dom.js +++ b/dom.js @@ -215,6 +215,9 @@ jx.dom.get.value = function(id){ */ jx.dom.get.attribute = function(id,field){ _dom = jx.dom.get.instance(id) + if (_dom[field] != null) { + return _dom[field] + } return _dom.getAttribute(field) ; } /** @@ -312,8 +315,13 @@ jx.dom.set.value= function(id,value){ * @post: jx.dom.get.attribute(id,field) == value || or none */ jx.dom.set.attribute = function(id,field,value){ - _dom = jx.dom.get.instance(id) ; - _dom.setAttribute(field,value) ; + _dom = jx.dom.get.instance(id); + if (value.constructor == Object) { + _dom[field] = value + } else { + _dom.setAttribute(field,value) ; + } + } /** diff --git a/ext/cloud-view.js b/ext/cloud-view.js new file mode 100644 index 0000000..6d1c42a --- /dev/null +++ b/ext/cloud-view.js @@ -0,0 +1,64 @@ +/** + * This framework is intended to work and handle authentication with the cloud view engine + * DEPENDENCIES : + * rpc.js HttpClient, urlparser + * @TODO: A registration process maybe required + */ + +/** + * @param id service identifier + * @param key callback/ user key + */ +jx.cloudview = { popup:null,cache: {},oauth:{}} +jx.cloudview.oauth.init = function (id, key,callback) { + var url = "https://the-phi.com/cloud-view/" +id+"/get" + var httpclient = HttpClient.instance() + httpclient.setHeader("platform",navigator.appName) + httpclient.post(url, function (x) { + + var url = x.responseText + + var oauth_uri = url.match(/redirect_uri=(.+)&/)[1]; + + url = url.replace(oauth_uri, key) + + jx.cloudview.handler = null + jx.cloudview.popup = window.open(url, 'oauth', 'width=405, height=900') + + jx.cloudview.oauth.listen(key,callback) + }) +} +/** + * @param key + */ +jx.cloudview.oauth.listen = function (key,callback) { + if (jx.cloudview.handler != null) { + clearInterval(jx.cloudview.handler) + } + jx.cloudview.handler = setInterval(function () { + try { + + if (jx.cloudview.popup.location.search.match(/code=/)) { + clearInterval(jx.cloudview.handler) + var p = urlparser(jx.cloudview.popup.location.search) + + var url = (["https://the-phi.com/cloud-view/", p.state, "/set/authentication"]).join('') + var http = HttpClient.instance() + http.setHeader('code', encodeURIComponent(p.code)) + http.setHeader('pid', 'authentication') + http.setHeader('platform', navigator.appName) + http.setHeader('redirect_uri', key) + http.post(url, function (x) { + + var info = JSON.parse(x.responseText) + callback(info) + // jx.dom.set.value('name', info.user.uii) + }) + + } + jx.cloudview.popup.close() + } catch (error) { + // console.log(error) + } + },1500) +} diff --git a/rpc.js b/rpc.js index 6201f2f..8dd08fe 100755 --- a/rpc.js +++ b/rpc.js @@ -106,7 +106,6 @@ jx.ajax.get.instance = function(){ http.setRequestHeader(key,value) } - http.send(this.obj.data) }