Changeset 1865 for trunk/grails-app


Ignore:
Timestamp:
May 23, 2011, 5:28:51 PM (8 years ago)
Author:
work@…
Message:
  • resolves gscf #447
  • gdt up to 0.0.49
Location:
trunk/grails-app
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/studycapturing/StudyWizardController.groovy

    r1863 r1865  
    362362                                flash.wizardErrors = [:]
    363363
    364                                 // remove subject
    365                                 def subjectToRemove = flow.study.subjects.find { it.identifier == (params.get('do') as int) }
    366                                 if (subjectToRemove) {
    367                                         flow.study.deleteSubject( subjectToRemove )
     364                                // remove subject(s)
     365                                params.get('do').split(",").each { identifier ->
     366                                        def subjectToRemove = flow.study.subjects.find { it.identifier == (identifier as int) }
     367                                        if (subjectToRemove) flow.study.deleteSubject( subjectToRemove )
    368368                                }
    369369                        }.to "subjects"
     
    515515                                flash.wizardErrors = [:]
    516516
    517                                 // find matching (sampling) event
    518                                 def event                       = flow.study.events.find { it.getIdentifier() == (params.get('do') as int) }
    519                                 def samplingEvent       = flow.study.samplingEvents.find { it.getIdentifier() == (params.get('do') as int) }
    520 
    521                                 // perform delete
    522                                 if (event) flow.study.deleteEvent( event )
    523                                 if (samplingEvent) flow.study.deleteSamplingEvent( samplingEvent )
     517                                // delete event(s)
     518                                params.get('do').split(",").each { identifier ->
     519                                        // find matching (sampling) event
     520                                        def event = flow.study.events.find { it.getIdentifier() == (identifier as int) }
     521                                        def samplingEvent = flow.study.samplingEvents.find { it.getIdentifier() == (identifier as int) }
     522
     523                                        // perform delete
     524                                        if (event) flow.study.deleteEvent( event )
     525                                        if (samplingEvent) flow.study.deleteSamplingEvent( samplingEvent )
     526                                }
    524527                        }.to "events"
    525528                        on("addEventGroup") {
     
    574577                                // clone event
    575578                                def event = null
    576                                 (((flow.study.events) ? flow.study.events : []) + ((flow.study.samplingEvents) ? flow.study.samplingEvents : [])).find { it.getIdentifier() == (params.get('do') as int) }.each {
    577                                         event = (it instanceof SamplingEvent) ? new SamplingEvent() : new Event()
    578 
    579                                         // set template
    580                                         event.template = it.template
    581 
    582                                         // copy data
    583                                         it.giveFields().each() { field ->
    584                                                 event.setFieldValue(
    585                                                         field.name,
    586                                                         it.getFieldValue(field.name)
    587                                                 )
    588                                         }
    589 
    590                                         // assign duplicate event to study
    591                                         if (event instanceof SamplingEvent) {
    592                                                 flow.study.addToSamplingEvents(event)
    593                                         } else {
    594                                                 flow.study.addToEvents(event)
     579
     580                                // clone event(s)
     581                                params.get('do').split(",").each { identifier ->
     582                                        (((flow.study.events) ? flow.study.events : []) + ((flow.study.samplingEvents) ? flow.study.samplingEvents : [])).find { it.getIdentifier() == (identifier as int) }.each {
     583                                                event = (it instanceof SamplingEvent) ? new SamplingEvent() : new Event()
     584
     585                                                // set template
     586                                                event.template = it.template
     587
     588                                                // copy data
     589                                                it.giveFields().each() { field ->
     590                                                        event.setFieldValue(
     591                                                                field.name,
     592                                                                it.getFieldValue(field.name)
     593                                                        )
     594                                                }
     595
     596                                                // assign duplicate event to study
     597                                                if (event instanceof SamplingEvent) {
     598                                                        flow.study.addToSamplingEvents(event)
     599                                                } else {
     600                                                        flow.study.addToEvents(event)
     601                                                }
    595602                                        }
    596603                                }
     
    912919                                flash.wizardErrors = [:]
    913920
    914                                 // find this assay
    915                                 def assay = flow.study.assays.find { it.getIdentifier() == (params.get('do') as int) }
    916 
    917                                 // perform delete
    918                                 if (assay) flow.study.deleteAssay( assay )
     921                                // delete assays
     922                                params.get('do').split(",").each { identifier ->
     923                                        // find this assay
     924                                        def assay = flow.study.assays.find { it.getIdentifier() == (identifier as int) }
     925
     926                                        // perform delete
     927                                        if (assay) flow.study.deleteAssay( assay )
     928                                }
     929                        }.to "assays"
     930                        on("duplicate") {
     931                                // handle form data
     932                                assayPage(flow, flash, params)
     933
     934                                // reset errors
     935                                flash.wizardErrors = [:]
     936
     937                                // clone event
     938                                def assay = null
     939                                params.get('do').split(",").each { identifier ->
     940                                        flow.study.assays.find { it.getIdentifier() == (identifier as int) }.each {
     941                                                assay = new Assay(template: it.template)
     942
     943                                                // copy data
     944                                                it.giveFields().each() { field ->
     945                                                        assay.setFieldValue(
     946                                                                field.name,
     947                                                                it.getFieldValue(field.name)
     948                                                        )
     949                                                }
     950
     951                                                // assign duplicate assay to study
     952                                                flow.study.addToAssays(assay)
     953                                        }
     954                                }
     955
     956                                success()
    919957                        }.to "assays"
    920958                        on("previous") {
  • trunk/grails-app/views/layouts/main.gsp

    r1840 r1865  
    2626                <script type="text/javascript" src="${resource(dir: 'js', file: 'paginate.js')}"></script>
    2727                <script type="text/javascript" src="${resource(dir: 'js', file: 'removeWebflowExecutionFromMenu.min.js')}"></script>
     28                <script type="text/javascript" src="${resource(dir: 'js', file: 'development.js')}"></script>
    2829        </g:if>
    2930        <g:else>
  • trunk/grails-app/views/studyWizard/pages/_assays.gsp

    r1809 r1865  
    4444                                <div class="header">
    4545                                        <div class="firstColumn"></div>
     46                                        <div class="firstColumn"></div>
    4647                                        <af:templateColumnHeaders class="column" entity="${assay}" />
    4748                                </div>
    4849                                </g:if>
    4950
    50                                 <div class="row">
     51                                <div class="row" identifier="${assay.getIdentifier()}">
    5152                                        <div class="firstColumn">
    52                                                 <af:ajaxButton name="deleteAssay" src="${resource(dir: 'images/icons', file: 'delete.png', plugin: 'famfamfam')}" alt="delete this assay" class="famfamfam" value="-" before="\$(\'input[name=do]\').val(${assay.getIdentifier()});" afterSuccess="onPage()"/>
     53                                                <input type="button" value="" action="deleteAssay" class="delete" identifier="${assay.getIdentifier()}" />
     54                                        </div>
     55                                        <div class="firstColumn">
     56                                                <input type="button" value="" action="duplicate" class="clone" identifier="${assay.getIdentifier()}" />
    5357                                        </div>
    5458                                        <af:templateColumns class="column" entity="${assay}" name="assay_${assay.getIdentifier()}" />
     
    5862                </g:each>
    5963        </g:if>
     64
     65        <script type="text/javascript">
     66        $(document).ready(function() {
     67                if (tableEditor) {
     68                        tableEditor.registerActionCallback('deleteAssay', function() {
     69                                if (confirm('are you sure you want to delete ' + ((this.length>1) ? 'these '+this.length+' assays?' : 'this assay?'))) {
     70                                        $('input[name="do"]').val(this);
     71                                        <af:ajaxSubmitJs name="deleteAssay" afterSuccess="onPage()" />
     72                                }
     73                        });
     74                        tableEditor.registerActionCallback('duplicate', function() {
     75                                $('input[name="do"]').val(this);
     76                                <af:ajaxSubmitJs name="duplicate" afterSuccess="onPage()" />
     77                        });
     78                }
     79        });
     80        </script>
    6081</af:page>
  • trunk/grails-app/views/studyWizard/pages/_events.gsp

    r1856 r1865  
    118118                                </g:if>
    119119
    120                                 <div class="row">
     120                                <div class="row" identifier="${event.getIdentifier()}">
    121121                                        <div class="firstColumn">
    122                                                 <af:ajaxButton name="deleteEvent" src="${resource(dir: 'images/icons', file: 'delete.png', plugin: 'famfamfam')}" alt="delete this event" class="famfamfam" value="-" before="\$(\'input[name=do]\').val(${event.getIdentifier()});" afterSuccess="onPage()"/>
     122                                                <input type="button" value="" action="deleteEvent" class="delete" identifier="${event.getIdentifier()}" />
    123123                                        </div>
    124124                                        <g:if test="${study.eventGroups}"><g:each var="eventGroup" in="${study.eventGroups}">
     
    132132                                        </g:each></g:if>
    133133                                        <div class="firstColumn">
    134                                                 <af:ajaxButton name="duplicate" src="${resource(dir: 'images/icons', file: 'application_put.png', plugin: 'famfamfam')}" alt="duplicate this event" class="famfamfam" value="-" before="\$(\'input[name=do]\').val(${event.getIdentifier()});" afterSuccess="onPage()" />
     134                                                <input type="button" value="" action="duplicate" class="clone" identifier="${event.getIdentifier()}" />
    135135                                        </div>
    136136                                        <af:templateColumns class="column" entity="${event}" name="event_${event.getIdentifier()}" />
     
    141141                </g:each>
    142142        </g:if>
     143
     144        <script type="text/javascript">
     145        $(document).ready(function() {
     146                if (tableEditor) {
     147                        tableEditor.registerActionCallback('deleteEvent', function() {
     148                                if (confirm('are you sure you want to delete ' + ((this.length>1) ? 'these '+this.length+' events?' : 'this event?'))) {
     149                                        $('input[name="do"]').val(this);
     150                                        <af:ajaxSubmitJs name="deleteEvent" afterSuccess="onPage()" />
     151                                }
     152                        });
     153                        tableEditor.registerActionCallback('duplicate', function() {
     154                                $('input[name="do"]').val(this);
     155                                <af:ajaxSubmitJs name="duplicate" afterSuccess="onPage()" />
     156                        });
     157                }
     158        });
     159        </script>
    143160</af:page>
  • trunk/grails-app/views/studyWizard/pages/_subjects.gsp

    r1809 r1865  
    5252                                </div>
    5353                                </g:if>
    54                                 <div class="row">
     54                                <div class="row" identifier="${subject.getIdentifier()}">
    5555                                        <div class="firstColumn">
    56                                                 <af:ajaxButton name="delete" src="${resource(dir: 'images/icons', file: 'delete.png', plugin: 'famfamfam')}" alt="delete this subject" class="famfamfam" value="-" before="\$(\'input[name=do]\').val(${subject.getIdentifier()});" afterSuccess="onPage()" />
     56                                                <input type="button" value="" action="delete" class="delete" identifier="${subject.getIdentifier()}" />
    5757                                        </div>
    5858                                        <af:templateColumns class="column" entity="${subject}" name="subject_${subject.getIdentifier()}" />
     
    6262                </g:each>
    6363        </g:if>
     64
     65        <script type="text/javascript">
     66        $(document).ready(function() {
     67                if (tableEditor) {
     68                        tableEditor.registerActionCallback('delete', function() {
     69                                if (confirm('are you sure you want to delete ' + ((this.length>1) ? 'these '+this.length+' subjects?' : 'this subject?'))) {
     70                                        $('input[name="do"]').val(this);
     71                                        <af:ajaxSubmitJs name="delete" afterSuccess="onPage()" />
     72                                }
     73                        });
     74                }
     75        });
     76        </script>
    6477</af:page>
Note: See TracChangeset for help on using the changeset viewer.