Ignore:
Timestamp:
May 21, 2010, 10:04:49 AM (12 years ago)
Author:
roberth
Message:

Improved study list to be able to handle one or more studies. Also improved performance issues with Subject and Sample classes. I have set the domainFields property to a static property, filled it in the class description and attached an ontology to it in the bootstrap (because it can't be done in the class description). It might not be the prettiest solution, it does improve the performance of the study detail page and study comparison with 90%.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/views/study/show.gsp

    r453 r454  
    3939          <table>
    4040            <!-- only show the head section if there are multiple studies -->
    41             <g:if test="${studyList.size()>1}">
     41            <g:if test="${multipleStudies}">
    4242              <thead>
    4343                <tr>
     
    144144              <thead>
    145145                <tr>
    146                   <th></th>
     146                  <g:if test="${multipleStudies}">
     147                    <th></th>
     148                  </g:if>
    147149                  <g:each in="${new dbnp.studycapturing.Subject().giveDomainFields()}" var="field">
    148150                    <th>${field}</th>
     
    187189                      }
    188190                    }
    189                      
    190191                  %>
    191192
     
    208209                <g:each in="${sortedSubjects}" var="subject" status="j">
    209210                  <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
    210                     <g:if test="${j==0}">
     211                    <g:if test="${multipleStudies && j==0}">
    211212                      <td class="studytitle" rowspan="${sortedSubjects.size()}">
    212213                        ${studyInstance.title}
     
    245246                <thead>
    246247                  <tr>
    247                     <th></th>
     248                    <g:if test="${multipleStudies}">
     249                      <th></th>
     250                    </g:if>
    248251                    <th>Start time</th>
    249252                    <th>Duration</th>
     
    269272                  <g:each in="${sortedEvents}" var="event" status="j">
    270273                    <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
    271                       <g:if test="${j==0}">
     274                      <g:if test="${multipleStudies && j==0}">
    272275                        <td class="studytitle" rowspan="${sortedEvents.size()}">
    273276                          ${studyInstance.title}
     
    321324              <thead>
    322325                <tr>
    323                   <th></th>
     326                  <g:if test="${multipleStudies}">
     327                    <th></th>
     328                  </g:if>
    324329                  <th>Name</th>
    325330                  <th colspan="${groupTemplates.size()}">Events</th>
     
    327332                </tr>
    328333                <tr>
    329                   <th></th>
     334                  <g:if test="${multipleStudies}">
     335                    <th></th>
     336                  </g:if>
    330337                  <th></th>
    331338                  <g:each in="${groupTemplates}" var="eventTemplate">
     
    342349                <g:each in="${studyInstance.eventGroups}" var="eventGroup" status="j">
    343350                  <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
    344                     <g:if test="${j==0}">
     351                    <g:if test="${multipleStudies && j==0}">
    345352                      <td class="studytitle" rowspan="${studyInstance.eventGroups.size()}">
    346353                        ${studyInstance.title}
     
    389396              <thead>
    390397                <tr>
    391                   <th></th>
     398                  <g:if test="${multipleStudies}">
     399                    <th></th>
     400                  </g:if>
    392401                  <th width="100">Assay Name</th>
    393402                  <th width="100">Module</th>
     
    403412                <g:each in="${studyInstance.assays}" var="assay" status="j">
    404413                  <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
    405                     <g:if test="${j==0}">
     414                    <g:if test="${multipleStudies && j==0}">
    406415                      <td class="studytitle" rowspan="${studyInstance.assays.size()}">
    407416                        ${studyInstance.title}
     
    442451                  <th>Phone</th>
    443452                  <th>Email</th>
    444                   <g:each in="${studyList}" var="studyInstance">
    445                     <th>${studyInstance.title}</th>
    446                   </g:each>
     453                  <g:if test="${multipleStudies}">
     454                    <g:each in="${studyList}" var="studyInstance">
     455                      <th>${studyInstance.title}</th>
     456                    </g:each>
     457                  </g:if>
     458                  <g:else>
     459                    <th>Role</th>
     460                  </g:else>
    447461                </thead>
    448462              </tr>
     
    487501                  <th>Authors</th>
    488502                  <th>Comments</th>
    489                   <g:each in="${studyList}" var="studyInstance">
    490                     <th>${studyInstance.title}</th>
    491                   </g:each>
     503
     504                  <g:if test="${multipleStudies}">
     505                    <g:each in="${studyList}" var="studyInstance">
     506                      <th>${studyInstance.title}</th>
     507                    </g:each>
     508                  </g:if>
    492509                </thead>
    493510              </tr>
     
    499516                  </td>
    500517                  <td>${publication.comments}</td>
    501                   <g:each in="${studyList}" var="studyInstance">
    502                     <td>
    503                       <g:if test="${publication in studyInstance.publications}">
    504                         x
    505                       </g:if>
    506                     </td>
    507                   </g:each>
     518                  <g:if test="${multipleStudies}">
     519                    <g:each in="${studyList}" var="studyInstance">
     520                      <td>
     521                        <g:if test="${publication in studyInstance.publications}">
     522                          x
     523                        </g:if>
     524                      </td>
     525                    </g:each>
     526                  </g:if>
    508527                </tr>
    509528              </g:each>
Note: See TracChangeset for help on using the changeset viewer.