[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