Changeset 778 for trunk/grails-app/views


Ignore:
Timestamp:
Aug 5, 2010, 10:58:09 PM (13 years ago)
Author:
duh
Message:
  • big refactoring of the Study Capture Wizard until the grouping page, removing all internal maps and directory work on the study object to
    • simplify internal representation and handling
    • added static incremental identifiers to TemplateEntity?, EventGroup? and Template for use in dynamic web forms
  • TODO: fix the sample page
  • TODO: check cascaded deletes, confirm database content
Location:
trunk/grails-app/views/wizard/pages
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/views/wizard/pages/_events.gsp

    r637 r778  
    7070        </script>
    7171
    72         <g:if test="${events}">
    73         <g:each var="eventTemplate" in="${eventTemplates}">
    74                 <g:set var="showHeader" value="${true}" />
    75                 <h1>${eventTemplate.value.name}</h1>
    76         <div class="table">
    77                 <g:each var="eventId" in="${eventTemplate.value.events}">
    78                         <g:if test="${showHeader}">
    79                         <g:set var="showHeader" value="${false}" />
    80                         <div class="header">
    81                                 <div class="firstColumn">#</div>
    82                                 <div class="firstColumn"></div>
    83                                 <g:if test="${eventGroups}"><g:each var="eventGroup" status="g" in="${eventGroups}">
    84                                 <div class="column">
    85                                         <g:textField name="eventGroup_${g}_name" value="${eventGroup.name}" />
    86                                         <wizard:ajaxButton name="deleteEventGroup" src="../images/icons/famfamfam/delete.png" alt="delete this eventgroup" class="famfamfam" value="-" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" before="\$(\'input[name=do]\').val(${g});" afterSuccess="onWizardPage()" />
     72        <g:if test="${study.events || study.samplingEvents}">
     73                <g:each var="template" in="${study.giveAllEventTemplates()}">
     74                        <g:set var="showHeader" value="${true}" />
     75                        <h1>${template}</h1>
     76                        <div class="table">
     77                        <g:each var="event" in="${study.giveEventsForTemplate(template)}">
     78                                <g:if test="${showHeader}">
     79                                <g:set var="showHeader" value="${false}" />
     80                                <div class="header">
     81                                        <div class="firstColumn">#</div>
     82                                        <div class="firstColumn"></div>
     83                                        <g:if test="${study.eventGroups}"><g:each var="eventGroup" in="${study.eventGroups}">
     84                                        <div class="column">
     85                                                <g:textField name="eventGroup_${eventGroup.getIdentifier()}_${template.getIdentifier()}" value="${eventGroup.name}" />
     86                                                <wizard:ajaxButton name="deleteEventGroup" src="../images/icons/famfamfam/delete.png" alt="delete this eventgroup" class="famfamfam" value="-" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" before="\$(\'input[name=do]\').val(${eventGroup.getIdentifier()});" afterSuccess="onWizardPage()" />
     87                                        </div>
     88                                        </g:each></g:if>
     89                                        <div class="firstColumn">
     90                                                <wizard:ajaxButton name="addEventGroup" src="../images/icons/famfamfam/add.png" alt="add a new eventgroup" class="famfamfam" value="+" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" afterSuccess="onWizardPage()" />
     91                                        </div>
     92                                  <wizard:templateColumnHeaders class="column" entity="${event}" />
    8793                                </div>
    88                                 </g:each></g:if>
    89                                 <div class="firstColumn">
    90                                         <wizard:ajaxButton name="addEventGroup" src="../images/icons/famfamfam/add.png" alt="add a new eventgroup" class="famfamfam" value="+" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" afterSuccess="onWizardPage()" />
     94                                </g:if>
     95
     96                                <div class="row">
     97                                        <div class="firstColumn">${event.getIdentifier()}</div>
     98                                        <div class="firstColumn">
     99                                                <wizard:ajaxButton name="deleteEvent" src="../images/icons/famfamfam/delete.png" alt="delete this subject" class="famfamfam" value="-" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" before="\$(\'input[name=do]\').val(${event.getIdentifier()});" afterSuccess="onWizardPage()"/>
     100                                        </div>
     101                                        <g:if test="${study.eventGroups}"><g:each var="eventGroup" in="${study.eventGroups}">
     102                                        <div class="column">
     103                                                <g:if test="${eventGroup.events.find{ it == event } || eventGroup.samplingEvents.find{ it == event }}">
     104                                                        <input type="checkbox" name="event_${event.getIdentifier()}_group_${eventGroup.getIdentifier()}" checked="checked" />
     105                                                </g:if><g:else>
     106                                                        <input type="checkbox" name="event_${event.getIdentifier()}_group_${eventGroup.getIdentifier()}"/>
     107                                                </g:else>
     108                                        </div>
     109                                        </g:each></g:if>
     110                                        <div class="firstColumn"></div>
     111                                        <wizard:templateColumns class="column" entity="${event}" name="event_${event.getIdentifier()}" />
    91112                                </div>
    92                                 <wizard:templateColumnHeaders entity="${events[ eventId ]}" class="column"/>
     113
     114                        </g:each>
    93115                        </div>
    94                         </g:if>
    95                         <div class="row">
    96                                 <div class="firstColumn">${eventId + 1}</div>
    97                                 <div class="firstColumn">
    98                                         <wizard:ajaxButton name="deleteEvent" src="../images/icons/famfamfam/delete.png" alt="delete this subject" class="famfamfam" value="-" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" before="\$(\'input[name=do]\').val(${eventId});" afterSuccess="onWizardPage()"/>
    99                                 </div>
    100                                 <g:if test="${eventGroups}"><g:each var="eventGroup" status="j" in="${eventGroups}">
    101                                 <div class="column">
    102                                         <g:if test="${eventGroup.events.find{ it == events[ eventId ] } }">
    103                                                 <input type="checkbox" name="event_${eventId}_group_${j}" checked="checked" />
    104                                         </g:if><g:else>
    105                                                 <input type="checkbox" name="event_${eventId}_group_${j}"/>
    106                                         </g:else>
    107                                 </div>
    108                                 </g:each></g:if>
    109                                 <div class="firstColumn"></div>
    110                                 <wizard:templateColumns id="${eventId}" entity="${events[ eventId ]}" template="${events[ eventId ].template}" name="event_${eventId}" class="column" />
     116                        <div class="sliderContainer">
     117                                <div class="slider"></div>
    111118                        </div>
    112119                </g:each>
    113         </div>
    114         <div class="sliderContainer">
    115                 <div class="slider"></div>
    116         </div>
    117         </g:each>
    118 </g:if>
     120        </g:if>
    119121
    120122</wizard:pageContent>
  • trunk/grails-app/views/wizard/pages/_groups.gsp

    r529 r778  
    2727                        <div class="column">Template</div>
    2828                        <div class="column">Subjects</div>
    29                         <g:if test="${eventGroups}"><g:each var="eventGroup" status="g" in="${eventGroups}">
     29                        <g:if test="${study.eventGroups}"><g:each var="eventGroup" in="${study.eventGroups}">
    3030                                <div class="column">
    3131                                        ${eventGroup.name}
     
    4343                        </g:each></g:if>
    4444                </div>
    45                 <g:each var="sTemplate" in="${subjectTemplates}">
    46                         <g:set var="subjectTemplate" value="${sTemplate.getValue()}"/>
     45                <g:each var="template" in="${study.giveSubjectTemplates()}">
    4746                        <g:set var="showHeader" value="${true}"/>
    48                         <g:each var="sId" in="${subjectTemplate.subjects}">
    49                                 <g:set var="subjectId" value="${sId.getValue()}"/>
    50                                 <div class="row">
    51                                         <div class="column">
    52                                                 <g:if test="${showHeader}">
    53                                                         <g:set var="showHeader" value="${false}"/>
    54                                                         ${subjectTemplate.name}
    55                                                         <div class="helpIcon"></div>
    56                                                         <div class="helpContent">
    57                                                                 <h1>${subjectTemplate.name}</h1>
    58                                                                 <h2>Template Fields:</h2>
    59                                                                 <g:each var="field" status="f" in="${subjects[ subjectId ].giveFields()}">
    60                                                                         ${field.name[0].toUpperCase() + field.name.substring(1)}<br/>
    61                                                                 </g:each>
    62                                                         </div>
    63                                                 </g:if>
    64                                         </div>
    65                                         <div class="column">${subjects[subjectId].name}</div>
    66                                         <g:if test="${eventGroups}"><g:each var="eventGroup" status="g" in="${eventGroups}">
    67                                                 <div class="column">
    68                                                         <g:if test="${eventGroup.subjects.find{ it == subjects[ subjectId ] } }">
    69                                                                 <input type="checkbox" name="subject_${subjectId}_group_${g}" checked="checked"/>
    70                                                         </g:if><g:else>
    71                                                         <input type="checkbox" name="subject_${subjectId}_group_${g}"/>
    72                                                 </g:else>
     47                        <g:each var="subject" in="${study.giveSubjectsForTemplate(template)}">
     48                        <div class="row">
     49                                <div class="column">
     50                                        <g:if test="${showHeader}">
     51                                                <g:set var="showHeader" value="${false}"/>
     52                                                ${template.name}
     53                                                <div class="helpIcon"></div>
     54                                                <div class="helpContent">
     55                                                        <h1>${template.name}</h1>
     56                                                        <h2>Template Fields:</h2>
     57                                                        <g:each var="field" in="${subject.giveFields()}">
     58                                                                ${field.name[0].toUpperCase() + field.name.substring(1)}<br/>
     59                                                        </g:each>
    7360                                                </div>
    74                                         </g:each></g:if>
     61                                        </g:if>
    7562                                </div>
     63                                <div class="column">${subject.name}</div>
     64                                <g:if test="${study.eventGroups}"><g:each var="eventGroup" in="${study.eventGroups}">
     65                                <div class="column">
     66                                        <g:if test="${eventGroup.subjects.find{ it == subject } }">
     67                                                <input type="checkbox" name="subject_${subject.getIdentifier()}_group_${eventGroup.getIdentifier()}" checked="checked"/>
     68                                        </g:if><g:else>
     69                                                <input type="checkbox" name="subject_${subject.getIdentifier()}_group_${eventGroup.getIdentifier()}" />
     70                                        </g:else>
     71                                </div>
     72                                </g:each></g:if>
     73                        </div>
    7674                        </g:each>
    7775                </g:each>
  • trunk/grails-app/views/wizard/pages/_subjects.gsp

    r567 r778  
    3737        </wizard:ajaxButtonElement>
    3838
    39 <g:if test="${subjects}">
    40         <g:each var="sTemplate" in="${subjectTemplates}">
    41                 <g:set var="showHeader" value="${true}" />
    42                 <g:set var="subjectTemplate" value="${sTemplate.getValue()}" />
    43                 <h1>${subjectTemplate.name} template</h1>
    44                 <div class="table">
    45                 <g:each status="i" var="sId" in="${subjectTemplate.subjects}">
    46                   <g:set var="subjectId" value="${sId.getValue()}" />
    47                   <g:if test="${subjects[ subjectId ]}">
    48                         <g:if test="${showHeader}">
    49                         <g:set var="showHeader" value="${false}" />
    50                         <div class="header">
    51                                 <div class="firstColumn">#</div>
    52                                 <div class="firstColumn"></div>
    53                                 <wizard:templateColumnHeaders entity="${subjects[ subjectId ]}" class="column" />                               
     39        <g:if test="${study.subjects}">
     40                <g:each var="template" in="${study.giveSubjectTemplates()}">
     41                        <g:set var="showHeader" value="${true}" />
     42                        <h1>${template} template</h1>
     43                        <div class="table">
     44                        <g:each var="subject" status="s" in="${study.giveSubjectsForTemplate(template)}">
     45                                <g:if test="${showHeader}">
     46                                <g:set var="showHeader" value="${false}" />
     47                                <div class="header">
     48                                  <div class="firstColumn">#</div>
     49                                  <div class="firstColumn"></div>
     50                                  <wizard:templateColumnHeaders class="column" entity="${subject}" />
     51                                </div>
     52                                </g:if>
     53                                <div class="row">
     54                                        <div class="firstColumn">${subject.getIdentifier()}</div>
     55                                        <div class="firstColumn">
     56                                                <wizard:ajaxButton name="delete" src="../images/icons/famfamfam/delete.png" alt="delete this subject" class="famfamfam" value="-" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" before="\$(\'input[name=do]\').val(${subject.getIdentifier()});" afterSuccess="onWizardPage()" />
     57                                        </div>
     58                                        <wizard:templateColumns class="column" entity="${subject}" name="subject_${subject.getIdentifier()}" />
     59                                </div>
     60                        </g:each>
    5461                        </div>
    55                         </g:if>
    56                         <div class="row">
    57                                 <div class="firstColumn">${subjectId + 1}</div>
    58                                 <div class="firstColumn">
    59                                         <wizard:ajaxButton name="delete" src="../images/icons/famfamfam/delete.png" alt="delete this subject" class="famfamfam" value="-" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" before="\$(\'input[name=do]\').val(${subjectId});" afterSuccess="onWizardPage()" />
    60                                 </div>
    61                                 <wizard:templateColumns id="${subjectId}" entity="${subjects[ subjectId ]}" template="${subjects[ subjectId ].template}" name="subject_${subjectId}" class="column" subject="${subjects[ subjectId ]}" addDummy="true" />
     62                        <div class="sliderContainer">
     63                                <div class="slider" ></div>
    6264                        </div>
    63                   </g:if>
    6465                </g:each>
    65                 </div>
    66                 <div class="sliderContainer">
    67                         <div class="slider" ></div>
    68                 </div>
    69         </g:each>
    70 </g:if>
     66        </g:if>
    7167
    7268</wizard:pageContent>
Note: See TracChangeset for help on using the changeset viewer.