Author: jmorliaguet Date: Sun May 7 16:24:35 2006 New Revision: 3067 Added: cpsskins/branches/paris-sprint-2006/lib/cpsskins/src/tests/functional/cpsskins_insertscript_test.html (contents, props changed) Modified: cpsskins/branches/paris-sprint-2006/lib/cpsskins/src/cpsskins.js cpsskins/branches/paris-sprint-2006/lib/cpsskins/src/tests/functional/tests.html
Log: - added a Script Inserter controller Modified: cpsskins/branches/paris-sprint-2006/lib/cpsskins/src/cpsskins.js ============================================================================== --- cpsskins/branches/paris-sprint-2006/lib/cpsskins/src/cpsskins.js (original) +++ cpsskins/branches/paris-sprint-2006/lib/cpsskins/src/cpsskins.js Sun May 7 16:24:35 2006 @@ -493,6 +493,10 @@ 'perspective selector': function(node, def) { return new CPSSkins.PerspectiveSelector(node, def); + }, + + 'script inserter': function(node, def) { + return new CPSSkins.ScriptInserter(node, def); } }); @@ -1095,6 +1099,25 @@ }); +CPSSkins.ScriptInserter = Class.create(); +CPSSkins.ScriptInserter.prototype = Object.extend( + new CPSSkins.Controller(), { + + setup: function() { + this.script = this.def.script; + this.script_id = this.def.id; + }, + + register: function(view) { + CPSSkins.Canvas.addScript(this.script_id, this.script); + }, + + unregister: function(view) { + CPSSkins.Canvas.removeScript(this.script_id); + } + +}); + // Identifiable DOM elements. if (!CPSSkins.Identifiable) { CPSSkins.Identifiable = new Object() } Object.extend(CPSSkins.Identifiable, { @@ -2055,6 +2078,7 @@ CPSSkins.registerEventHandler("loaded template", view, function(event) { var view = event.subscriber; view.reload(); + view.attachControllers(); CPSSkins.unsubscribe("loaded template", {'scope': view.hash()}); }); @@ -2076,7 +2100,6 @@ node.innerHTML = this.source; ctal.process_ctal(node, data); this.widget.innerHTML = node.innerHTML; - this.attachControllers(); } } Added: cpsskins/branches/paris-sprint-2006/lib/cpsskins/src/tests/functional/cpsskins_insertscript_test.html ============================================================================== --- (empty file) +++ cpsskins/branches/paris-sprint-2006/lib/cpsskins/src/tests/functional/cpsskins_insertscript_test.html Sun May 7 16:24:35 2006 @@ -0,0 +1,42 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xml:lang="en" lang="en" + xmlns="http://www.w3.org/1999/xhtml"> +<head> + <title>CPSSkins Unit test file</title> + <meta http-equiv="content-type" content="text/html; charset=utf-8" /> + <script src="../prototype.js" type="text/javascript"></script> + <script src="../json.js" type="text/javascript"></script> + <script src="../ctal.js" type="text/javascript"></script> + <script src="../../cpsskins.js" type="text/javascript"></script> + <link rel="stylesheet" href="../../cpsskins.css" type="text/css" /> + +</head> +<body> + + <h1>CPSSkins: inserting script</h1> + + <ins class="model"> + {"id": "dummy" + } + </ins> + + <ins class="view"> + {"id": "some-template", + "widget": { + "template": "ajax_widget_template.pt" + }, + "model": "dummy", + "controllers": ["script"] + } + </ins> + + <ins class="controller"> + {"id": "script", + "type": "script inserter", + "script": "script.js" + } + </ins> + +</body> +</html> Modified: cpsskins/branches/paris-sprint-2006/lib/cpsskins/src/tests/functional/tests.html ============================================================================== --- cpsskins/branches/paris-sprint-2006/lib/cpsskins/src/tests/functional/tests.html (original) +++ cpsskins/branches/paris-sprint-2006/lib/cpsskins/src/tests/functional/tests.html Sun May 7 16:24:35 2006 @@ -48,4 +48,8 @@ <a target="main" href="cpsskins_effects_test.html">Visual effects</a> </li> + <li> + <a target="main" + href="cpsskins_insertscript_test.html">Inserting scripts</a> + </li> </ul> -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins