[Catalyst] Best Practices - an application.
    mnichols at mojosoft.org 
    mnichols at mojosoft.org
       
    Tue Sep 19 06:05:02 CEST 2006
    
    
  
mnichols at mojosoft.org writes:
Last night I stumbled across a dojo widget that allows a dialog popup
to show up called Dialog.  I think I'll post my two relevant files
./root/static/javascript/dmu.js and ./root/servers.tt in their current
form.  This seems to fit the bill pretty well, so I'm going to use
it. This results in a "popup" dialog that will allow me to fill out
the required information to define a system.  I'm cleaning it up and
wiring in real ajax calls, and then I'll post.  I thought this dialog
was really nice and will fit the bill for a lot of interaction on web
pages. 
Thanks,
mojo
dmu.js
//
// dmu javascript functions etc.
//
// Load event to connect an event to the widget below
dojo.require("dojo.io.*");
dojo.require("dojo.event.*");
// Load Dojo's code relating to widget managing functions
dojo.require("dojo.widget.*");
//Load dialog;
dojo.require("dojo.widget.Dialog");
// Load Dojo's code relating to the Button widget
dojo.require("dojo.widget.Button");
function SubmitServerPressed() 
{
  
   alert("HELLOW WORLD ");
   dojo.io.bind({
     url: 'http://localhost:3000/servers/add_server',
        handler: addServerCallback,
        content: {name: "WHAT" }
     });
}
function AddServerPressed() 
{
   alert("HELLOW WORLD ");
   var server = dojo.widget.byId("ServerName");
   server.show();
        
}
function addServerCallback(type, data, evt)
{
  if (type == 'error')
    alert('Error when retrieving data from the server!');
  else
    alert(data);
}
function init()
{
 dlg = dojo.widget.byId("ServerName");
 var btn = document.getElementById("hider");
 dlg.setCloseControl(btn); 
 var link = dojo.widget.byId("AddServerButton");
 alert("init ");
 dojo.event.connect(link, "onClick", 'AddServerPressed');
 alert("init ");
  
}
dojo.addOnLoad(init);
and servers.tt
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title>[%info.title%]</title>
  <meta name="GENERATOR" content="Quanta Plus">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  [% PROCESS style.tt %]
 
  <script language="javascript" type="text/javascript">
  // <!--
  
  // -->
  </script>
</head>
<body>
<script type="text/javascript" src="/static/dojo/dojo.js"></script>
<script type="text/javascript" src="/static/javascript/dmu.js"></script>
<div id="content">
<div id="answers">
<div id="tabs">
</div>
   [% IF c.stash.message %]
    <p> [% c.stash.message %]</p>
   [% END %]
<form name="myform" id="myform" action="[% c.req.uri%]" method="post" >
        <table>
        [% WHILE (systems = c.stash.servers.next) %]
        <tr><td>[%systems.db_server%]</td><td></tr>
        [%END%]
</table>
<div> <button dojoType="Button" widgetId="AddServerButton">New Server</button> </div>
<a href="javascript:dlg.show()">Show</a>
<div dojoType="dialog" id="ServerName" bgColor="white" bgOpacity="0.5" toggle="fade" toggleDuration="250">
	<form onsubmit="return false;">
		<table>
			<tr>
				<td>Name:</td>
				<td><input type="text"></td>
			</tr>
			<tr>
				<td>Location:</td>
				<td><input type="text"></td>
			</tr>
			<tr>
				<td>Description:</td>
				<td><input type="text"></td>
			</tr>
			<tr>
				<td>Location:</td>
				<td><input type="file"></td>
			</tr>
			<tr>
				<td colspan="2" align="center">
					<input type="button" id="hider" value="OK"></td>
			</tr>
		</table>
	</form>
</div>
</form>
</div>
</div>
</body>
</html>
    
    
More information about the Catalyst
mailing list