Changeset 264


Ignore:
Timestamp:
Mar 15, 2010, 2:59:21 AM (7 years ago)
Author:
jahn
Message:

There are still errors in saving the Events. The errors are related to the Maps that associate ProtocolParameters? with "hasMany" members.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/views/event/edit.gsp

    r247 r264  
    99
    1010
     11
     12
     13
    1114<body>
    1215
    1316
     17
     18
     19<script type="text/javascript">
     20
     21     var nextSampleRowId=0;
     22
     23     function addAddButton(elementId,sampleTableId) {
     24         var parent=document.getElementById(elementId);
     25         var button=document.createElement('input');
     26         button.setAttribute('type','button');
     27         button.setAttribute('onclick','addEmptySampleRow(\''+sampleTableId+'\');');
     28         button.value='add Sample';
     29         parent.appendChild(button);
     30     }
     31
     32
     33     function addEmptySampleRow(elementId) {
     34          addSampleRow(elementId,'','');
     35     }
     36
     37
     38     function addSampleRow(elementId,text1,text2) {
     39             addSampleRowWithId(elementId,text1,text2,nextSampleRowId);
     40             nextSampleRowId++;
     41     }
     42
     43
     44     function addSampleRowWithId(elementId,text1,text2,newId) {
     45
     46        var parent=document.getElementById(elementId);
     47        var tr=document.createElement('tr');
     48        tr.id='samplerow'+newId;
     49        parent.appendChild(tr);
     50
     51        var td1=document.createElement('td');
     52        var input1= document.createElement('input');
     53        input1.type='text';
     54        input1.value=text1;
     55        input1.name='sampleName'+(newId);
     56        input1.id=input1.name
     57        td1.appendChild(input1);
     58
     59        var td2=document.createElement('td');
     60        var input2= document.createElement('input');
     61        input2.type='text';
     62        input2.value=text2;
     63        input2.name='sampleMaterial'+(newId);
     64        input2.id=input2.name
     65        td2.appendChild(input2);
     66
     67        tr.appendChild(td1);
     68        tr.appendChild(td2);
     69
     70        var td3=document.createElement('td');
     71        var button=document.createElement('input');
     72        button.setAttribute('type','button');
     73        button.value='delete';
     74        button.onclick=function(){jQuery(tr).remove();}
     75        tr.appendChild(td3);
     76        td3.appendChild(button);
     77     }
     78
     79</script>
     80
     81
     82
     83
    1484        <div class="body">
    1585
    1686            <h1><g:message code="default.create.label" args="[entityName]" /></h1>
     87
    1788
    1889            <g:if test="${flash.message}">
     
    2495
    2596
    26 
    2797            <g:form action="save" method="post" id="${eventInstance.id}">
    2898
     
    32102
    33103
    34                             <tr class="prop">
    35                                 <td valign="top" class="name">
    36                                     <label for="subject"><g:message code="event.subject.label" default="Subject" /></label>
    37                                 </td>
    38                                 <td valign="top" class="value" >
    39                                     <g:select id="subject" name="subject.id" from="${dbnp.studycapturing.Subject.list()}" optionKey="id" optionValue="name" value="${eventInstance?.subject?.id}" />
    40                                 </td>
    41                             </tr>
     104                            <!-- show the EventDescription -->
     105
     106                            <tr class="prop">
     107                                <td valign="top" class="name">
     108                                  <label for="name"><g:message code="eventDescription.name.label" default="Name" /></label>
     109                                </td>
     110                                <td valign="top" class="value ${hasErrors(bean: description, field: 'name', 'errors')}">
     111                                    <g:textField name="name" value="${description?.name}" />
     112                                </td>
     113                            </tr>
     114
     115
     116                            <tr class="prop">
     117                                <td valign="top" class="name">
     118                                  <label for="description"><g:message code="eventDescription.description.label" default="Description" /></label>
     119                                </td>
     120                                <td valign="top" class="value ${hasErrors(bean: description, field: 'description', 'errors')}">
     121                                    <g:textArea name="description" value="${description?.description}" cols="40" rows="6" />
     122                                </td>
     123                            </tr>
     124
     125
     126                            <!-- show Event members -->
    42127
    43128                            <tr class="prop">
     
    75160                            </tr>
    76161
    77                             <g:render template="../common/eventDescriptionTableRows" model="${[description:description, event:event]}"/>
    78 
    79 
    80                             <tr class="prop">
    81                             <td>This is a sampling event </td>
    82                             <td valign="top" class="value ${hasErrors(bean: description, field: 'protocol', 'errors')}">
    83                                  <g:select name="mySampleEvent" id="mySampleEvent" from="${['yes','no']}" value="${isSamplingEvent}" onchange="${remoteFunction(action:'showSample', controller='event', update:'samplePartial', onComplete:'Effect.Appear(samplePartial)', id:params['id'], params:'\'wantSample=\' + this.value',)}" />
    84                             </td>
    85                             </tr>
    86 
    87 
    88                         </tbody>
    89 
    90 
    91 
    92                         <tbody id="samplePartial">
    93 
    94                         <g:if  test="${(eventInstance.isSamplingEvent()) && (eventInstance.samples!=null)}" >
    95                                 <% def list = eventInstance.samples %>
    96                                 <% list.sort{ a,b -> a.name <=> b.name }%>
    97                                 <g:each in="${list}">
    98                                 <tr class="prop">
    99                                         <td valign="top" class="name" width=200 >
    100                                         <label><%=  it.name %> </label>
    101                                         </td>
    102                                         <td valign="top" class="name">
    103                                         <g:textField name="${it.name}" value="" />
    104                                         </td>
    105                                 </tr>
    106                                 </g:each>
    107                         </g:if>
    108                         </tbody>
    109 
    110 
     162
     163
     164                            <!-- select protocol -->
     165
     166                            <tr class="prop">
     167
     168                                <td valign="top" class="name" width=200 >
     169                                  <label for="protocol"><g:message code="eventDescription.protocol.label" default="Protocol" /></label>
     170                                </td>
     171                                <td valign="top" class="value ${hasErrors(bean: description, field: 'rotocol', 'errors')}">
     172                                    <% protocols=dbnp.studycapturing.Protocol.list() %>
     173                                    <g:select name="protocol" id="protocol" from="${protocols}" optionKey="id" optionValue="${{it.name}}"
     174                                              value="${{it?.id}}" onchange="${remoteFunction(action:'showPartial', controller:'eventDescription', update:'preview',
     175                                              params:'\'protocolid=\' + this.value')} " />
     176                                </td>
     177                            </tr>
     178
     179
     180                            <!-- this part changes dynamically on select -->
     181
     182                            <tbody id="preview">
     183                                <g:include action='showPartial' controller='eventDescription' params="[protocolid:protocols[0].id]" id="${eventInstance.id}" />
     184                            </tbody>
     185
     186
     187
     188                        </tbody>                <!-- end of main table -->
     189
     190
     191
     192
     193
     194
     195
     196                        <!-- samplePartial -->
     197
     198                        <g:if test="${showSample}">
     199
     200                             <tbody>
     201                                     <tr> <td> Sample </td>  <td>
     202                                     <table>
     203                                     <thead> <th>Name</th> <th>Material</th> <th> Delete </th> </thead>
     204                                     <tbody id="Samples" class="Samples"> </tbody>
     205                                     </table>
     206                                     </td> </tr>
     207                                     <g:each var="sample" in="${samples}">
     208                                             <script type="text/javascript">
     209                                                     addSampleRowWithId('Samples',"${sample.name}","${sample.material}","_existing_${sample.id}")
     210                                             </script>
     211                                     </g:each>
     212                                     <tr><td></td><td id="sampleAddButtonRow"></td></tr>
     213                             </tbody>
     214
     215                             <script type="text/javascript">
     216                                     addAddButton('sampleAddButtonRow','Samples');
     217                             </script>
     218
     219                        </g:if>
    111220
    112221
     
    115224                </div>
    116225
    117 
    118226                <div class="buttons">
    119                     <span class="button"><g:submitButton name="create" class="save" value="${message(code: 'default.button.create.label', default: 'Save')}" /></span>
     227                    <span class="button"><g:submitButton name="save" class="save" value="${message(code: 'default.button.save.label', default: 'Save')}" /></span>
    120228                </div>
    121229
     
    123231            </g:form>
    124232        </div>
     233
     234
    125235</body>
    126236</html>
Note: See TracChangeset for help on using the changeset viewer.