Commit d95c6fb7 authored by Romain Courteaud's avatar Romain Courteaud

Rename __element property to element.

Gadget can now access their DOM element without using not needed asynchronous code.
parent 92a09327
...@@ -420,7 +420,7 @@ ...@@ -420,7 +420,7 @@
} }
function loadSubGadgetDOMDeclaration(g) { function loadSubGadgetDOMDeclaration(g) {
var element_list = g.__element.querySelectorAll('[data-gadget-url]'), var element_list = g.element.querySelectorAll('[data-gadget-url]'),
element, element,
promise_list = [], promise_list = [],
scope, scope,
...@@ -460,7 +460,7 @@ ...@@ -460,7 +460,7 @@
RenderJSGadget.onEvent = function (type, callback, use_capture, RenderJSGadget.onEvent = function (type, callback, use_capture,
prevent_default) { prevent_default) {
this.__service_list.push(function () { this.__service_list.push(function () {
return loopEventListener(this.__element, type, use_capture, return loopEventListener(this.element, type, use_capture,
callback.bind(this), prevent_default); callback.bind(this), prevent_default);
}); });
return this; return this;
...@@ -564,10 +564,11 @@ ...@@ -564,10 +564,11 @@
}) })
.declareMethod('getElement', function () { .declareMethod('getElement', function () {
// Returns the DOM Element of a gadget // Returns the DOM Element of a gadget
if (this.__element === undefined) { // XXX Kept for compatibility. Use element property directly
if (this.element === undefined) {
throw new Error("No element defined"); throw new Error("No element defined");
} }
return this.__element; return this.element;
}); });
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
...@@ -688,9 +689,9 @@ ...@@ -688,9 +689,9 @@
template_node_list = Klass.__template_element.body.childNodes; template_node_list = Klass.__template_element.body.childNodes;
gadget_loading_klass = Klass; gadget_loading_klass = Klass;
gadget_instance = new Klass(); gadget_instance = new Klass();
gadget_instance.__element = options.element; gadget_instance.element = options.element;
for (i = 0; i < template_node_list.length; i += 1) { for (i = 0; i < template_node_list.length; i += 1) {
gadget_instance.__element.appendChild( gadget_instance.element.appendChild(
template_node_list[i].cloneNode(true) template_node_list[i].cloneNode(true)
); );
} }
...@@ -764,7 +765,7 @@ ...@@ -764,7 +765,7 @@
// gadget_instance.element.setAttribute("seamless", "seamless"); // gadget_instance.element.setAttribute("seamless", "seamless");
iframe.setAttribute("src", url); iframe.setAttribute("src", url);
gadget_instance.__path = url; gadget_instance.__path = url;
gadget_instance.__element = options.element; gadget_instance.element = options.element;
// Attach it to the DOM // Attach it to the DOM
options.element.appendChild(iframe); options.element.appendChild(iframe);
...@@ -959,16 +960,16 @@ ...@@ -959,16 +960,16 @@
} }
} }
parent_gadget.__sub_gadget_dict[scope] = gadget_instance; parent_gadget.__sub_gadget_dict[scope] = gadget_instance;
gadget_instance.__element.setAttribute("data-gadget-scope", gadget_instance.element.setAttribute("data-gadget-scope",
scope); scope);
// Put some attribute to ease page layout comprehension // Put some attribute to ease page layout comprehension
gadget_instance.__element.setAttribute("data-gadget-url", url); gadget_instance.element.setAttribute("data-gadget-url", url);
gadget_instance.__element.setAttribute("data-gadget-sandbox", gadget_instance.element.setAttribute("data-gadget-sandbox",
options.sandbox); options.sandbox);
gadget_instance.__element._gadget = gadget_instance; gadget_instance.element._gadget = gadget_instance;
if (document.contains(gadget_instance.__element)) { if (document.contains(gadget_instance.element)) {
// Put a timeout // Put a timeout
queue.push(startService); queue.push(startService);
} }
...@@ -1458,10 +1459,10 @@ ...@@ -1458,10 +1459,10 @@
} }
} }
tmp_constructor.__template_element = document.createElement("div"); tmp_constructor.__template_element = document.createElement("div");
root_gadget.__element = document.body; root_gadget.element = document.body;
for (j = 0; j < root_gadget.__element.childNodes.length; j += 1) { for (j = 0; j < root_gadget.element.childNodes.length; j += 1) {
tmp_constructor.__template_element.appendChild( tmp_constructor.__template_element.appendChild(
root_gadget.__element.childNodes[j].cloneNode(true) root_gadget.element.childNodes[j].cloneNode(true)
); );
} }
RSVP.all([root_gadget.getRequiredJSList(), RSVP.all([root_gadget.getRequiredJSList(),
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
.declareService(function () { .declareService(function () {
service_started = true; service_started = true;
var event = new Event("bar"); var event = new Event("bar");
this.__element.dispatchEvent(event); this.element.dispatchEvent(event);
}) })
.declareMethod('wasReadyCalled', function () { .declareMethod('wasReadyCalled', function () {
return ready_called; return ready_called;
......
...@@ -1173,7 +1173,7 @@ ...@@ -1173,7 +1173,7 @@
test('returns element property', function () { test('returns element property', function () {
// Check that getElement return a Promise // Check that getElement return a Promise
var gadget = new RenderJSGadget(); var gadget = new RenderJSGadget();
gadget.__element = "foo"; gadget.element = "foo";
stop(); stop();
gadget.getElement() gadget.getElement()
.then(function (result) { .then(function (result) {
...@@ -1804,7 +1804,7 @@ ...@@ -1804,7 +1804,7 @@
document document
.getElementById('qunit-fixture') .getElementById('qunit-fixture')
.querySelector("div") .querySelector("div")
.appendChild(g.__element); .appendChild(g.element);
return RSVP.delay(50); return RSVP.delay(50);
}) })
.then(function () { .then(function () {
...@@ -1847,7 +1847,7 @@ ...@@ -1847,7 +1847,7 @@
); );
}) })
.then(function (g) { .then(function (g) {
parent_element.appendChild(g.__element); parent_element.appendChild(g.element);
document document
.getElementById('qunit-fixture') .getElementById('qunit-fixture')
.appendChild(parent_element); .appendChild(parent_element);
...@@ -1943,7 +1943,7 @@ ...@@ -1943,7 +1943,7 @@
); );
}) })
.then(function (g) { .then(function (g) {
parent_element.appendChild(g.__element); parent_element.appendChild(g.element);
document document
.getElementById('qunit-fixture') .getElementById('qunit-fixture')
.appendChild(parent_element); .appendChild(parent_element);
...@@ -2007,7 +2007,7 @@ ...@@ -2007,7 +2007,7 @@
.then(function () { .then(function () {
document document
.getElementById('qunit-fixture') .getElementById('qunit-fixture')
.appendChild(created_gadget.__element); .appendChild(created_gadget.element);
return RSVP.delay(50); return RSVP.delay(50);
}) })
.then(function () { .then(function () {
...@@ -2504,7 +2504,7 @@ ...@@ -2504,7 +2504,7 @@
document document
.getElementById('qunit-fixture') .getElementById('qunit-fixture')
.querySelector("div") .querySelector("div")
.appendChild(g.__element); .appendChild(g.element);
return RSVP.delay(50); return RSVP.delay(50);
}) })
.then(function () { .then(function () {
...@@ -2626,7 +2626,7 @@ ...@@ -2626,7 +2626,7 @@
.then(function () { .then(function () {
document document
.getElementById('qunit-fixture') .getElementById('qunit-fixture')
.appendChild(created_gadget.__element); .appendChild(created_gadget.element);
return RSVP.delay(50); return RSVP.delay(50);
}) })
.then(function () { .then(function () {
...@@ -2880,7 +2880,7 @@ ...@@ -2880,7 +2880,7 @@
document document
.getElementById('qunit-fixture') .getElementById('qunit-fixture')
.querySelector("div") .querySelector("div")
.appendChild(g.__element); .appendChild(g.element);
return RSVP.delay(50); return RSVP.delay(50);
}) })
.then(function () { .then(function () {
...@@ -3142,15 +3142,15 @@ ...@@ -3142,15 +3142,15 @@
.then(function (new_gadget) { .then(function (new_gadget) {
equal(document.getElementById('qunit-fixture').innerHTML, equal(document.getElementById('qunit-fixture').innerHTML,
"<div>youhou2</div><div>bar</div>"); "<div>youhou2</div><div>bar</div>");
equal(new_gadget.__element.innerHTML, equal(new_gadget.element.innerHTML,
"<p>Bar content</p>"); "<p>Bar content</p>");
equal(new_gadget.__element.tagName, equal(new_gadget.element.tagName,
"DIV"); "DIV");
equal(new_gadget.__element.getAttribute("data-gadget-url"), equal(new_gadget.element.getAttribute("data-gadget-url"),
html_url); html_url);
equal(new_gadget.__element.getAttribute("data-gadget-sandbox"), equal(new_gadget.element.getAttribute("data-gadget-sandbox"),
"public"); "public");
notEqual(new_gadget.__element.getAttribute("data-gadget-scope"), notEqual(new_gadget.element.getAttribute("data-gadget-scope"),
null); null);
ok(spy_js.calledTwice, "JS count " + spy_js.callCount); ok(spy_js.calledTwice, "JS count " + spy_js.callCount);
equal(spy_js.firstCall.args[0], js1_url, "First JS call"); equal(spy_js.firstCall.args[0], js1_url, "First JS call");
...@@ -3526,7 +3526,7 @@ ...@@ -3526,7 +3526,7 @@
.then(function (child_gadget) { .then(function (child_gadget) {
ok(gadget.__sub_gadget_dict.hasOwnProperty("foo")); ok(gadget.__sub_gadget_dict.hasOwnProperty("foo"));
equal(gadget.__sub_gadget_dict.foo, child_gadget); equal(gadget.__sub_gadget_dict.foo, child_gadget);
equal(child_gadget.__element.getAttribute("data-gadget-scope"), equal(child_gadget.element.getAttribute("data-gadget-scope"),
"foo"); "foo");
}) })
.fail(function (e) { .fail(function (e) {
...@@ -3559,7 +3559,7 @@ ...@@ -3559,7 +3559,7 @@
); );
}) })
.then(function (child_gadget) { .then(function (child_gadget) {
scope1 = child_gadget.__element.getAttribute("data-gadget-scope"); scope1 = child_gadget.element.getAttribute("data-gadget-scope");
equal(scope1.indexOf('RJS_'), 0, scope1); equal(scope1.indexOf('RJS_'), 0, scope1);
ok(gadget.__sub_gadget_dict.hasOwnProperty(scope1)); ok(gadget.__sub_gadget_dict.hasOwnProperty(scope1));
equal(gadget.__sub_gadget_dict[scope1], child_gadget); equal(gadget.__sub_gadget_dict[scope1], child_gadget);
...@@ -3579,7 +3579,7 @@ ...@@ -3579,7 +3579,7 @@
); );
}) })
.then(function (child_gadget) { .then(function (child_gadget) {
var scope2 = child_gadget.__element.getAttribute("data-gadget-scope"); var scope2 = child_gadget.element.getAttribute("data-gadget-scope");
equal(scope2.indexOf('RJS_'), 0); equal(scope2.indexOf('RJS_'), 0);
ok(gadget.__sub_gadget_dict.hasOwnProperty(scope1)); ok(gadget.__sub_gadget_dict.hasOwnProperty(scope1));
ok(gadget.__sub_gadget_dict.hasOwnProperty(scope2)); ok(gadget.__sub_gadget_dict.hasOwnProperty(scope2));
...@@ -3869,11 +3869,11 @@ ...@@ -3869,11 +3869,11 @@
.then(function (g2) { .then(function (g2) {
equal(g2.__path, html_url2); equal(g2.__path, html_url2);
// The gadget element is the one defined in HTML // The gadget element is the one defined in HTML
equal(g2.__element.getAttribute("data-foo"), "bar"); equal(g2.element.getAttribute("data-foo"), "bar");
equal(g2.__element.getAttribute("data-gadget-scope"), scope); equal(g2.element.getAttribute("data-gadget-scope"), scope);
// The gadget is public by default // The gadget is public by default
equal(g2.__element.innerHTML, "raw html"); equal(g2.element.innerHTML, "raw html");
}) })
.fail(function (e) { .fail(function (e) {
ok(false, e); ok(false, e);
...@@ -3915,9 +3915,9 @@ ...@@ -3915,9 +3915,9 @@
.then(function (g2) { .then(function (g2) {
equal(g2.__path, html_url2); equal(g2.__path, html_url2);
// The gadget element is the one defined in HTML // The gadget element is the one defined in HTML
equal(g2.__element.getAttribute("data-foo"), "bar"); equal(g2.element.getAttribute("data-foo"), "bar");
// The gadget is public by default // The gadget is public by default
equal(g2.__element.innerHTML, "raw html"); equal(g2.element.innerHTML, "raw html");
}) })
.fail(function (e) { .fail(function (e) {
ok(false, e); ok(false, e);
...@@ -3958,9 +3958,9 @@ ...@@ -3958,9 +3958,9 @@
.then(function (g2) { .then(function (g2) {
equal(g2.__path, html_url2); equal(g2.__path, html_url2);
// The gadget element is the one defined in HTML // The gadget element is the one defined in HTML
equal(g2.__element.getAttribute("data-foo"), "bar"); equal(g2.element.getAttribute("data-foo"), "bar");
// The gadget is inside an iframe // The gadget is inside an iframe
equal(g2.__element.innerHTML, equal(g2.element.innerHTML,
'<iframe src="' + html_url2 + '"></iframe>'); '<iframe src="' + html_url2 + '"></iframe>');
}) })
.fail(function (e) { .fail(function (e) {
...@@ -4081,9 +4081,9 @@ ...@@ -4081,9 +4081,9 @@
.then(function (child_gadget) { .then(function (child_gadget) {
ok(gadget.__sub_gadget_dict.hasOwnProperty("foo")); ok(gadget.__sub_gadget_dict.hasOwnProperty("foo"));
equal(gadget.__sub_gadget_dict.foo, child_gadget); equal(gadget.__sub_gadget_dict.foo, child_gadget);
equal(child_gadget.__element.getAttribute("data-gadget-scope"), equal(child_gadget.element.getAttribute("data-gadget-scope"),
"foo"); "foo");
equal(child_gadget.__element.getAttribute("data-gadget-sandbox"), equal(child_gadget.element.getAttribute("data-gadget-sandbox"),
"iframe"); "iframe");
}) })
.fail(function (e) { .fail(function (e) {
...@@ -4119,7 +4119,7 @@ ...@@ -4119,7 +4119,7 @@
equal(Object.keys(new_gadget.__acquired_method_dict).length, 1); equal(Object.keys(new_gadget.__acquired_method_dict).length, 1);
ok(new_gadget instanceof RenderJSIframeGadget); ok(new_gadget instanceof RenderJSIframeGadget);
equal( equal(
new_gadget.__element.innerHTML, new_gadget.element.innerHTML,
'<iframe src="' + absolute_path + '"></iframe>' '<iframe src="' + absolute_path + '"></iframe>'
); );
ok(new_gadget.__chan !== undefined); ok(new_gadget.__chan !== undefined);
...@@ -4710,7 +4710,7 @@ ...@@ -4710,7 +4710,7 @@
equal(new_gadget.__path, data_url); equal(new_gadget.__path, data_url);
ok(new_gadget instanceof RenderJSIframeGadget); ok(new_gadget instanceof RenderJSIframeGadget);
equal( equal(
new_gadget.__element.innerHTML, new_gadget.element.innerHTML,
'<iframe src="' + data_url + '"></iframe>' '<iframe src="' + data_url + '"></iframe>'
); );
}) })
...@@ -4862,7 +4862,7 @@ ...@@ -4862,7 +4862,7 @@
URI("renderjs_test.js") URI("renderjs_test.js")
.absoluteTo(parent_path).toString() .absoluteTo(parent_path).toString()
]); ]);
equal(root_gadget.__element.outerHTML, document.body.outerHTML); equal(root_gadget.element.outerHTML, document.body.outerHTML);
// Check klass // Check klass
equal(root_gadget.constructor.prototype.__path, equal(root_gadget.constructor.prototype.__path,
root_gadget_path_without_hash); root_gadget_path_without_hash);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment