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

Reply via email to