Author: husted
Date: Tue Jan 9 04:34:18 2007
New Revision: 494390
URL: http://svn.apache.org/viewvc?view=rev&rev=494390
Log:
PhoneBook2 - Complete initial CRUD workflow.
Modified:
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Core/App.cs
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Core/Core.csproj
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Commands/DirectoryViewTest.cs
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Resources/AppBase.xml
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Resources/Catalog.xml
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Resources/Queries.xml
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Test.csproj
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.ashx
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.html
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppBase.xml
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppFields.xml
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Catalog.xml
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Queries.xml
Modified: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Core/App.cs
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Core/App.cs?view=diff&rev=494390&r1=494389&r2=494390
==============================================================================
--- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Core/App.cs (original)
+++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Core/App.cs Tue Jan 9
04:34:18 2007
@@ -175,6 +175,12 @@
///
public const string ENTRY_SAVE = "entry_save";
+ /// <summary>
+ /// Token for Entry Delete command.
+ /// </summary>
+ ///
+ public const string ENTRY_DELETE = "entry_delete";
+
#endregion
#region Messages
Modified: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Core/Core.csproj
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Core/Core.csproj?view=diff&rev=494390&r1=494389&r2=494390
==============================================================================
--- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Core/Core.csproj
(original)
+++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Core/Core.csproj Tue Jan
9 04:34:18 2007
@@ -72,6 +72,7 @@
<Compile Include="Commands\AppCommand.cs" />
<Compile Include="Commands\BaseCommand.cs" />
<Compile Include="Commands\BaseCount.cs" />
+ <Compile Include="Commands\BaseDelete.cs" />
<Compile Include="Commands\BaseEntry.cs" />
<Compile Include="Commands\BaseFilterList.cs" />
<Compile Include="Commands\BaseList.cs" />
Modified:
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Commands/DirectoryViewTest.cs
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Commands/DirectoryViewTest.cs?view=diff&rev=494390&r1=494389&r2=494390
==============================================================================
---
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Commands/DirectoryViewTest.cs
(original)
+++
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Commands/DirectoryViewTest.cs
Tue Jan 9 04:34:18 2007
@@ -19,7 +19,7 @@
public void ContainsFilters()
{
IRequestContext context =
catalog.ExecuteRequest(App.ENTRY_FIND);
- this.AssertNominal(context);
+ AssertNominal(context);
string[] FILTERS = {App.LAST_NAME_LIST,
App.FIRST_NAME_LIST, App.EXTENSION_LIST, App.USER_NAME_LIST, App.HIRED_LIST,
App.HOURS_LIST};
foreach (string filter in FILTERS)
{
Modified:
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Resources/AppBase.xml
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Resources/AppBase.xml?view=diff&rev=494390&r1=494389&r2=494390
==============================================================================
---
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Resources/AppBase.xml
(original)
+++
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Resources/AppBase.xml
Tue Jan 9 04:34:18 2007
@@ -15,9 +15,11 @@
<object id="BaseCount" type="PhoneBook.Core.Commands.BaseCount,
PhoneBook.Core" parent="BaseMapper"/>
- <object id="BaseEntry" type="PhoneBook.Core.Commands.BaseEntry,
PhoneBook.Core" parent="BaseMapper"/>
-
- <object id="BaseFilterList"
type="PhoneBook.Core.Commands.BaseFilterList, PhoneBook.Core"
parent="BaseMapper"/>
+ <object id="BaseDelete" type="PhoneBook.Core.Commands.BaseDelete,
PhoneBook.Core" parent="BaseMapper"/>
+
+ <object id="BaseEntry" type="PhoneBook.Core.Commands.BaseEntry,
PhoneBook.Core" parent="BaseMapper"/>
+
+ <object id="BaseFilterList" type="PhoneBook.Core.Commands.BaseFilterList,
PhoneBook.Core" parent="BaseMapper"/>
<object id="BaseFieldContext" type="Nexus.Extras.Spring.FieldContext">
<property name="MessageSource">
Modified:
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Resources/Catalog.xml
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Resources/Catalog.xml?view=diff&rev=494390&r1=494389&r2=494390
==============================================================================
---
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Resources/Catalog.xml
(original)
+++
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Resources/Catalog.xml
Tue Jan 9 04:34:18 2007
@@ -65,9 +65,19 @@
</list>
</property>
</object>
-
-
- <!-- filter list commands -->
+
+ <object id="entry_delete" parent="BaseDelete">
+ <property name="ID">
+ <value>entry_delete</value>
+ </property>
+ <property name="RequiredIDs">
+ <list>
+ <value>entry_key</value>
+ </list>
+ </property>
+ </object>
+
+ <!-- filter list commands -->
<object id="last_name_list" parent="BaseFilterList">
<property name="ID"><value>last_name_list</value></property>
Modified:
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Resources/Queries.xml
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Resources/Queries.xml?view=diff&rev=494390&r1=494389&r2=494390
==============================================================================
---
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Resources/Queries.xml
(original)
+++
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Resources/Queries.xml
Tue Jan 9 04:34:18 2007
@@ -175,6 +175,10 @@
WHERE
pk_entry=?
</update>
-
- </statements>
+
+ <delete id="entry_delete" paramClass="Hashtable">
+ DELETE FROM entry WHERE pk_entry=#entry_key#;
+ </delete>
+
+ </statements>
</sqlMap>
Modified: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Test.csproj
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Test.csproj?view=diff&rev=494390&r1=494389&r2=494390
==============================================================================
--- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Test.csproj
(original)
+++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Test/Test.csproj Tue Jan
9 04:34:18 2007
@@ -72,6 +72,7 @@
<ItemGroup>
<Compile Include="BaseTest.cs" />
<Compile Include="Commands\DirectoryViewTest.cs" />
+ <Compile Include="Commands\EditFixture.cs" />
<Compile Include="Commands\FilterLists.cs" />
<Compile Include="Commands\FormatEntry.cs" />
<Compile Include="Commands\SelectAllTest.cs" />
Modified: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.ashx
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.ashx?view=diff&rev=494390&r1=494389&r2=494390
==============================================================================
--- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.ashx
(original)
+++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.ashx Tue
Jan 9 04:34:18 2007
@@ -80,6 +80,19 @@
AppEntry entry = new AppEntry(helper.Criteria);
return entry;
}
-
+
+ [JsonRpcMethod(App.ENTRY_DELETE, Idempotent = true)]
+ [JsonRpcHelp("Deletes an entry by key.")]
+ public AppEntry entry_delete(string key)
+ {
+ IViewHelper helper = GetCatalog().GetHelperFor(App.ENTRY_DELETE);
+ helper.Criteria[App.ENTRY_KEY] = key;
+ helper.Execute();
+ // if helper.IsNominal ...
+ AppEntry entry = new AppEntry(helper.Criteria);
+ return entry;
+ }
+
+
}
}
Modified: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.html
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.html?view=diff&rev=494390&r1=494389&r2=494390
==============================================================================
--- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.html
(original)
+++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.html Tue
Jan 9 04:34:18 2007
@@ -45,12 +45,17 @@
}
dojo.addOnLoad(entry_list);
- function entry_list_select_result(evt) {
+ function entry_list_select_edit(evt) {
var table = dojo.widget.byId("entry_list");
entry_edit(table.getSelectedData().entry_key);
}
+ function entry_list_select_delete(evt) {
+ var table = dojo.widget.byId("entry_list");
+ entry_delete(table.getSelectedData().entry_key);
+ }
+
function entry_list_select() {
- dojo.event.connect(dojo.byId("entry_list"),
"onSelect", entry_list_select_result);
+ dojo.event.connect(dojo.byId("entry_list"),
"onSelect", entry_list_select_edit);
}
dojo.addOnLoad(entry_list_select);
@@ -79,27 +84,85 @@
}
/* editor */
-
+
+ function setHired(hired) {
+ var dpHired = dojo.widget.byId("dpHired");
+ dpHired.setDate(hired);
+ }
+
function entry_edit_result(type, data, evt)
{
var w = dojo.widget.byId("entry_form");
- w.setValues(data.result);
-
+ w.setValues(data.result);
+ var part = new Array();
+ part = data.result.hired.split('/',3); // mm/dd/yyyy
+ var yyyy = part[2];
+ var mm = part[0];
+ var dd = part[1];
+ if (mm.length==1) mm = new String().concat('0',mm);
+ if (dd.length==1) dd = new String().concat('0',dd);
+ var hired = new String().concat( yyyy,'-',mm,'-',dd );
+ setHired(hired);
}
function entry_edit(entry_key)
{
PhoneBook.rpc.entry(entry_key,entry_edit_result).call(server);
}
- function entry_save_result(type, data, evt)
+ function entry_save_result() {
+ reloadData('entry_list');
+ entry_reset();
+ }
+ function entry_save_update_result(type, data, evt)
+ {
+ alert ( "Edited: " + data.result.user_name + " (" +
data.result.entry_key + ")" );
+ entry_save_result();
+ }
+ function entry_save_insert_result(type, data, evt)
{
alert ( "Added: " + data.result.user_name + " (" +
data.result.entry_key + ")" );
+ entry_save_result();
}
function entry_save()
{
var w = dojo.widget.byId("entry_form");
- var values = w.getValues();
-
PhoneBook.rpc.entry_save(values,entry_save_result).call(server);
+ var values = w.getValues();
+ if (values.entry_key)
+
PhoneBook.rpc.entry_save(values,entry_save_update_result).call(server);
+ else
+
PhoneBook.rpc.entry_save(values,entry_save_insert_result).call(server);
+ }
+
+ function entry_reset() {
+ var w = dojo.widget.byId("entry_form");
+ var values = w.getValues();
+ values.first_name = "";
+ values.last_name = "";
+ values.extension = "";
+ values.user_name = "";
+ values.hours = "37.5";
+ values.entry_key = "";
+ w.setValues(values);
+ var today = new Date();
+ setHired(today);
+ }
+
+ function entry_add()
+ {
+ entry_reset();
+ }
+
+ function entry_delete_result(type, data, evt)
+ {
+ alert ( "Deleted: (" + data.result.entry_key + ")" );
+ entry_save_result();
+ }
+ function entry_delete(entry_key)
+ {
+ if (entry_key) {
+ confirm ( "Delete entry?" );
+
PhoneBook.rpc.entry_delete(entry_key,entry_delete_result).call(server);
+ }
}
</script>
@@ -170,10 +233,16 @@
<div id="finder" />
<div id="lister">
+
+ <table id="filter_menu"><tr><td>
+ <input type="button" onclick="applyDate('entry_list');"
value="Show only hires between 1/1/1984 and 1/1/1987" />
+ <input type="button" onclick="applyName('entry_list');"
value="Show only names between M and Z" />
+ <input type="button" value="Show All Entries"
onclick="clearFilters('entry_list');" />
+ <input type="button" value="Reload Entries"
onclick="reloadData('entry_list');" />
+ </td></tr></table>
+
<table id="entry_list"
- cellpadding="0" cellspacing="0" border="0"
style="margin-bottom:24px;"
- dojoType="filteringTable" alternateRows="true"
valueField="user_name"
- >
+ dojoType="filteringTable" alternateRows="true"
valueField="user_name" >
<thead>
<tr>
<th field="last_name" sort="asc">Last Name</th>
@@ -185,18 +254,19 @@
</tr>
</thead>
</table>
- <p>
- <input type="button" onclick="applyDate('entry_list');"
value="Show only hires between 1/1/1984 and 1/1/1987" />
- <input type="button" onclick="applyName('entry_list');"
value="Show only names between M and Z" />
- <input type="button" value="Show All Entries"
onclick="clearFilters('entry_list');" />
- <input type="button" value="Reload Data"
onclick="reloadData('entry_list');" />
- <input type="button" value="Edit Row"
onclick="entry_list_select_result('entry_list');" />
- </p>
+
+ <table id="edit_menu"><tr><td>
+ <input type="button" value="Edit Entry"
onclick="entry_list_select_edit('entry_list');" />
+ <input type="button" value="Add Entry"
onclick="entry_add('entry_list');" />
+ <input type="button" value="Delete Entry"
onclick="entry_list_select_delete('entry_list');" />
+ </td></tr></table>
+
</div>
<div id="viewer" />
<div id="editor">
+
<form id="entry_form" dojoType="Form">
<table><tr>
<td>First Name</td><td><input name="first_name" /></td>
@@ -207,7 +277,7 @@
</tr><tr>
<td>User Name</td><td><input name="user_name" /></td>
</tr><tr>
- <td>Hired</td><td><input name="hired"
dojoType="dropdowndatepicker" displayFormat="dd/MM/yyyy" /></td>
+ <td>Hired</td><td><input name="hired" widgetid="dpHired"
dojoType="dropdowndatepicker" displayFormat="MM/dd/yyyy" /></td>
</tr><tr>
<td>Hours</td><td><input name="hours" /></td>
</tr><tr>
Modified:
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppBase.xml
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppBase.xml?view=diff&rev=494390&r1=494389&r2=494390
==============================================================================
---
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppBase.xml
(original)
+++
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppBase.xml
Tue Jan 9 04:34:18 2007
@@ -15,9 +15,11 @@
<object id="BaseCount" type="PhoneBook.Core.Commands.BaseCount,
PhoneBook.Core" parent="BaseMapper"/>
- <object id="BaseEntry" type="PhoneBook.Core.Commands.BaseEntry,
PhoneBook.Core" parent="BaseMapper"/>
-
- <object id="BaseFilterList"
type="PhoneBook.Core.Commands.BaseFilterList, PhoneBook.Core"
parent="BaseMapper"/>
+ <object id="BaseDelete" type="PhoneBook.Core.Commands.BaseDelete,
PhoneBook.Core" parent="BaseMapper"/>
+
+ <object id="BaseEntry" type="PhoneBook.Core.Commands.BaseEntry,
PhoneBook.Core" parent="BaseMapper"/>
+
+ <object id="BaseFilterList" type="PhoneBook.Core.Commands.BaseFilterList,
PhoneBook.Core" parent="BaseMapper"/>
<object id="BaseFieldContext" type="Nexus.Extras.Spring.FieldContext">
<property name="MessageSource">
Modified:
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppFields.xml
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppFields.xml?view=diff&rev=494390&r1=494389&r2=494390
==============================================================================
---
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppFields.xml
(original)
+++
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppFields.xml
Tue Jan 9 04:34:18 2007
@@ -88,7 +88,7 @@
<property
name="ID"><value>EntryCountProcessor</value></property>
</object>
- <!-- "d" is .NET for "short date" -->
+ <!-- "d" is .NET for "shor date" -->
<object id="DateTimeProcessor"
type="Nexus.Core.Validators.DateTimeProcessor">
<property name="ID"><value>DateTimeProcessor</value></property>
<property name="DataFormat"><value>d</value></property>
Modified:
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Catalog.xml
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Catalog.xml?view=diff&rev=494390&r1=494389&r2=494390
==============================================================================
---
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Catalog.xml
(original)
+++
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Catalog.xml
Tue Jan 9 04:34:18 2007
@@ -65,9 +65,19 @@
</list>
</property>
</object>
-
-
- <!-- filter list commands -->
+
+ <object id="entry_delete" parent="BaseDelete">
+ <property name="ID">
+ <value>entry_delete</value>
+ </property>
+ <property name="RequiredIDs">
+ <list>
+ <value>entry_key</value>
+ </list>
+ </property>
+ </object>
+
+ <!-- filter list commands -->
<object id="last_name_list" parent="BaseFilterList">
<property name="ID"><value>last_name_list</value></property>
Modified:
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Queries.xml
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Queries.xml?view=diff&rev=494390&r1=494389&r2=494390
==============================================================================
---
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Queries.xml
(original)
+++
struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Queries.xml
Tue Jan 9 04:34:18 2007
@@ -175,6 +175,10 @@
WHERE
pk_entry=?
</update>
-
- </statements>
+
+ <delete id="entry_delete" paramClass="Hashtable">
+ DELETE FROM entry WHERE pk_entry=#entry_key#;
+ </delete>
+
+ </statements>
</sqlMap>