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>


Reply via email to