You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2006/01/03 08:28:07 UTC
svn commit: r365559 -
/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/customizer/customizer.vm
Author: taylor
Date: Mon Jan 2 23:28:06 2006
New Revision: 365559
URL: http://svn.apache.org/viewcvs?rev=365559&view=rev
Log:
added ajax capabilities to customizer
- getPages
- getPage
(this is still early in dev state)
Modified:
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/customizer/customizer.vm
Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/customizer/customizer.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/customizer/customizer.vm?rev=365559&r1=365558&r2=365559&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/customizer/customizer.vm (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/customizer/customizer.vm Mon Jan 2 23:28:06 2006
@@ -1,15 +1,15 @@
#macro (traverseAllFolders $f)
-<div dojoType="TreeNode" title="$f.Name">
- #foreach($subf in $f.Folders.iterator())
+<div dojoType="TreeNode" title="$f.Name" id="$f.Path">
+ #foreach($subf in $f.Folders.iterator())
#traverseAllFolders($subf)
- #end
+ #end
</div>
#end
#macro (traverseFolders $f)
-<div dojoType="TreeNode" title="$f.Name">
- #foreach($subf in $f.Folders.iterator())
+<div dojoType="TreeNode" title="$f.Name" id="$f.Path">
+ #foreach($subf in $f.Folders.iterator())
#traverseFolders($subf)
- #end
+ #end
</div>
#end
@@ -17,151 +17,208 @@
<head>
<script type="text/javascript">
- var djConfig = {isDebug: true, baseRelativePath: "./", baseScriptUri: "http://localhost:8080/j2-admin/dojo/"};
- //djConfig.debugAtAllCosts = true;
+ var djConfig = {isDebug: true, baseRelativePath: "./", baseScriptUri: "http://localhost:8080/j2-admin/dojo/"};
+ //djConfig.debugAtAllCosts = true;
</script>
<script type="text/javascript" src="http://localhost:8080/j2-admin/dojo/dojo.js"></script>
<script language="JavaScript" type="text/javascript">
- dojo.require("dojo.lang.*");
- dojo.require("dojo.dnd.*");
- dojo.require("dojo.event.*");
- dojo.require("dojo.widget.HtmlLayoutPane");
- dojo.require("dojo.widget.HtmlSplitPane");
- dojo.require("dojo.widget.HtmlColorPalette");
- dojo.require("dojo.widget.HtmlTabSet");
- dojo.require("dojo.widget.Tree");
- dojo.require("dojo.jetspeed.JetspeedAjax");
- dojo.hostenv.writeIncludes();
+ dojo.require("dojo.lang.*");
+ dojo.require("dojo.dnd.*");
+ dojo.require("dojo.event.*");
+ dojo.require("dojo.io");
+ dojo.require("dojo.widget.HtmlLayoutPane");
+ dojo.require("dojo.widget.HtmlSplitPane");
+ dojo.require("dojo.widget.HtmlColorPalette");
+ dojo.require("dojo.widget.HtmlTabSet");
+ dojo.require("dojo.widget.Tree");
+ dojo.require("dojo.jetspeed.JetspeedAjax");
+ dojo.require("dojo.widget.Button");
+ dojo.require("dojo.widget.html.Button");
+ dojo.hostenv.writeIncludes();
</script>
<script type="text/javascript">
- function byId(id)
- {
- return document.getElementById(id);
- }
-
- function initTest()
- {
- portlets = byId("portlets");
- alert("portlets = " + portlets);
- dojo.jetspeed.getFragments(portlets);
- }
-
- function Subscriber(displayNode)
- {
- this.displayNode = displayNode;
-
- this.update = function(message)
- {
- this.displayNode.innerHTML = message;
- };
- }
-
- function init()
- {
- var dl = byId("portlets");
- new dojo.dnd.HtmlDropTarget(dl, ["li"]);
- var lis = dl.getElementsByTagName("li");
- for(var x=0; x<lis.length; x++)
- {
- new dojo.dnd.HtmlDragSource(lis[x], null, lis[x].firstChild);
- }
- }
-
- dojo.event.connect(dojo, "loaded", "initDnD");
-
- dojo.addOnLoad(function()
- {
- var eventSub = new Subscriber(document.getElementById("pages"));
- var selectionTopic = dojo.event.topic.getTopic("treeSelected");
- selectionTopic.subscribe(eventSub, "update");
- }
-
+ function byId(id)
+ {
+ return document.getElementById(id);
+ }
+
+ function initTest()
+ {
+ portlets = byId("portlets");
+ dojo.jetspeed.getFragments(portlets);
+ }
+
+ function displayPage(xml)
+ {
+ var pageArea = byId("pageArea");
+ pageArea.innerHTML = xml;
+ }
+
+ function displayPages(xml)
+ {
+ // alert("xml data = " + xml);
+ var pages = byId("pages");
+ var container = byId("pagesContainer");
+ if (container != null)
+ {
+ pages.removeChild(container);
+ }
+ container = document.createElement("div");
+ container.setAttribute("id", "pagesContainer");
+
+ pages.appendChild(container);
+ var lis = xml.getElementsByTagName("page");
+ for(var x=0; x<lis.length; x++)
+ {
+ var buttonArgs = {
+ label: lis[x].getAttribute("title"),
+ path: lis[x].getAttribute("path"),
+ onClick: function()
+ {
+ dojo.io.bind({
+ url: "http://localhost:8080/jetspeed/ajaxapi" + this.path + "?action=getpage",
+ load: function(type, data, evt){ displayPage(data); },
+ mimetype: "text/plain"
+ });
+ }
+ };
+ var button = dojo.widget.fromScript("Button", buttonArgs);
+ container.appendChild(button.domNode);
+ }
+
+ }
+
+ function FolderSubscriber(displayNode)
+ {
+ this.displayNode = displayNode;
+
+ this.update = function(folder)
+ {
+ this.displayNode.innerHTML = "retrieving contents for folder " + folder;
+
+ dojo.io.bind({
+ url: "http://localhost:8080/jetspeed/ajaxapi/?action=getpages&folder=" + folder,
+ load: function(type, data, evt){ displayPages(data); },
+ mimetype: "text/xml"
+ });
+
+ this.displayNode.innerHTML = folder;
+ };
+ }
+
+ function logMe(){
+ alert("logging");
+ dj_debug("click1");
+ }
+
+ function init()
+ {
+ var dl = byId("portlets");
+ new dojo.dnd.HtmlDropTarget(dl, ["li"]);
+ var lis = dl.getElementsByTagName("li");
+ for(var x=0; x<lis.length; x++)
+ {
+ new dojo.dnd.HtmlDragSource(lis[x], null, lis[x].firstChild);
+ }
+
+ //var clickNode = byId("folderTree");
+ //alert("clickNode " + clickNode);
+ //dojo.event.connect(clickNode, "onclick", dj_global, "logMe");
+
+ var eventSub = new FolderSubscriber(document.getElementById("FolderSelectionEvents"));
+ var selectionTopic = dojo.event.topic.getTopic("treeSelected");
+ selectionTopic.subscribe(eventSub, "update");
+
+
+ }
+ dojo.event.connect(dojo, "loaded", "init");
+
+
</script>
<style>
- html, body{
- width: 100%; /* make the body expand to fill the visible window */
- height: 100%;
- overflow: hidden; /* erase window level scrollbars */
- /*border: dotted blue; /* for debugging */
- padding: 0 0 0 0;
- margin: 0 0 0 0;
+ html, body{
+ width: 100%; /* make the body expand to fill the visible window */
+ height: 100%;
+ overflow: hidden; /* erase window level scrollbars */
+ /*border: dotted blue; /* for debugging */
+ padding: 0 0 0 0;
+ margin: 0 0 0 0;
}
</style>
</head>
<body>
<div dojoType="LayoutPane"
- layoutChildPriority='top-bottom'
- style="border: 2px solid black; width: 100%; height: 100%;">
- <div dojoType="LayoutPane" layoutAlign="top" style="background-color: #274383; color: white;">
- <b>Jetspeed Site Customizer</b>
- </div>
- <div dojoType="LayoutPane" layoutAlign="bottom" style="background-color: #274383; color: white;">
- Status:
- </div>
- <div dojoType="LayoutPane" layoutAlign="client">
- <div dojoType="SplitPane"
- orientation="horizontal"
- sizerWidth="5"
- activeSizing="0"
- style="width: 100%; height: 100%;"
- >
-
-<!-- Folders -------------------------------------------------------------------- -->
- <div dojoType="SplitPanePanel" sizeMin="20" sizeShare="20">
- <b>Site</b>
- <div id="leftTabSet" dojoType="TabSet" style="width: 100%; height: 20em;" selectedTab="tab2" >
- <div id='foldersTab' dojoType="Tab" label="Folders">
- <h1>Folders</h1>
- <div dojoType="Tree" publishSelectionTopic="treeSelected" toggle="fade" widgetId="folderTree">
-#traverseAllFolders($rootFolder)
- </div>
- </div>
- <div id='usersTab' dojoType="Tab" label="Users">
- <h1>Users</h1>
- <div dojoType="Tree" publishSelectionTopic="treeSelected" toggle="fade" widgetId="userTree">
+ layoutChildPriority='top-bottom'
+ style="border: 2px solid black; width: 100%; height: 100%;">
+ <div dojoType="LayoutPane" layoutAlign="top" style="background-color: #274383; color: white;">
+ <b>Jetspeed Site Customizer</b>
+ </div>
+ <div dojoType="LayoutPane" layoutAlign="bottom" style="background-color: #274383; color: white;">
+ Status:
+ </div>
+ <div dojoType="LayoutPane" layoutAlign="client">
+ <div dojoType="SplitPane"
+ orientation="horizontal"
+ sizerWidth="5"
+ activeSizing="0"
+ style="width: 100%; height: 100%;"
+ >
+
+<!-- Folders -------------------------------------------------------------------- -->
+ <div dojoType="SplitPanePanel" sizeMin="20" sizeShare="20">
+ <b>Site</b>
+ <div id="leftTabSet" dojoType="TabSet" style="width: 100%; height: 20em;" selectedTab="tab2" >
+ <div id='foldersTab' dojoType="Tab" label="Folders">
+ <h1>Folders</h1>
+ <div dojoType="Tree" publishSelectionTopic="treeSelected" toggle="fade" widgetId="folderTree" id="folderTree">
+#traverseAllFolders($rootFolder)
+ </div>
+ </div>
+ <div id='usersTab' dojoType="Tab" label="Users">
+ <h1>Users</h1>
+ <div dojoType="Tree" publishSelectionTopic="treeSelected" toggle="fade" widgetId="userTree">
#traverseFolders($rootFolder.getFolder("_user"))
- </div>
- </div>
- <div id='rolesTab' dojoType="Tab" label="Roles">
- <h1>Roles</h1>
- <div dojoType="Tree" publishSelectionTopic="treeSelected" toggle="fade" widgetId="roleTree">
+ </div>
+ </div>
+ <div id='rolesTab' dojoType="Tab" label="Roles">
+ <h1>Roles</h1>
+ <div dojoType="Tree" publishSelectionTopic="treeSelected" toggle="fade" widgetId="roleTree">
#traverseFolders($rootFolder.getFolder("_role"))
- </div>
- </div>
- </div>
- </div>
-
-<!-- Portlets -------------------------------------------------------------------- -->
- <div dojoType="SplitPanePanel" sizeMin="20" sizeShare="20">
- <b>Portlets</b>
- <ul id="portlets">
- #foreach ($portlet in $portlets)
- <li id='$portlet.Name'>$portlet.DisplayName</li>
- #end
- </ul>
- </div>
- <div dojoType="SplitPanePanel" sizeMin="50" sizeShare="50">
- <div dojoType="SplitPane"
- orientation="vertical"
- sizerWidth="5"
- activeSizing="0"
- style="width: 100%; height: 100%;"
- >
- <div dojoType="SplitPanePanel" sizeMin="20" sizeShare="70">
- Page Customization
- </div>
- <div id="pages" dojoType="SplitPanePanel" sizeMin="20" sizeShare="30">
- Pages
-<!-- <div dojoType="ColorPalette"></div> -->
- <div id="SelectionEvents" style="background:#dcdcdc; color:#191970;">Selection events should show up here</div>
-
- </div>
- </div>
- </div>
- </div>
- </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+<!-- Portlets -------------------------------------------------------------------- -->
+ <div dojoType="SplitPanePanel" sizeMin="20" sizeShare="20">
+ <b>Portlets</b>
+ <ul id="portlets">
+ #foreach ($portlet in $portlets)
+ <li id='$portlet.Name'>$portlet.DisplayName</li>
+ #end
+ </ul>
+ </div>
+ <div dojoType="SplitPanePanel" sizeMin="50" sizeShare="50">
+ <div dojoType="SplitPane"
+ orientation="vertical"
+ sizerWidth="5"
+ activeSizing="0"
+ style="width: 100%; height: 100%;"
+ >
+ <div dojoType="SplitPanePanel" sizeMin="20" sizeShare="70">
+ Page Customization
+ <div id='pageArea'></div>
+ </div>
+ <div id="pages" dojoType="SplitPanePanel" sizeMin="20" sizeShare="30">
+ Pages
+<!-- <div dojoType="ColorPalette"></div> -->
+ <div id="FolderSelectionEvents" style="background:#dcdcdc; color:#191970;">Selection events should show up here</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
</div>
</body>
-
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org