=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/anonymousRegistration.vm' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/anonymousRegistration.vm 2013-02-18 03:46:13 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/anonymousRegistration.vm 2013-02-20 08:03:09 +0000 @@ -1,10 +1,10 @@ - +

$i18n.getString( "anonymous_events_management" ) #openHelp('single_event_without_registration')

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/anonymousRegistration.js' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/anonymousRegistration.js 2013-01-29 14:45:08 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/anonymousRegistration.js 2013-02-20 08:03:09 +0000 @@ -1,3 +1,31 @@ +var DAO = DAO || {}; + +$( document ).ready( function () { + $.ajaxSetup( { + type: 'POST', + cache: false + } ); + + jQuery.getJSON( "getProgramMetaData.action", {}, function ( data ) { + DAO.programs = new dhis2.storage.Store( {name: 'programs'}, function ( store ) { + var keys = _.keys( data.metaData.programs ); + var objs = _.values( data.metaData.programs ); + + store.addAll( keys, objs, function ( store ) { + } ); + } ); + + DAO.programAssociations = new dhis2.storage.Store( {name: 'programAssociations'}, function ( store ) { + var keys = _.keys( data.metaData.programAssociations ); + var objs = _.values( data.metaData.programAssociations ); + + store.addAll( keys, objs, function ( store ) { + // wait until the stores have been populated until the listener is set + selection.setListenerFunction( organisationUnitSelected ); + } ); + } ); + } ); +} ); function organisationUnitSelected( orgUnits, orgUnitNames ) { @@ -12,30 +40,32 @@ setFieldValue("startDate", ''); setFieldValue("endDate", ''); jQuery('#advancedSearchTB [name=searchText]').val(''); - jQuery.getJSON( "anonymousPrograms.action",{}, - function( json ) - { - jQuery('#searchingAttributeIdTD [id=searchObjectId] option').remove(); - jQuery('#advancedSearchTB [id=searchObjectId] option').remove(); - clearListById('displayInReports'); - clearListById('programId'); - - jQuery( '#programId').append( '' ); - for ( i in json.programs ) { - jQuery( '#programId').append( '' ); - } - disableCriteriaDiv(); - showById('selectDiv'); - }); - - setFieldValue( 'orgunitId', orgUnits[0] ); + + setFieldValue( 'orgunitId', orgUnits[0] ); setFieldValue( 'orgunitName', orgUnitNames[0] ); hideById('listDiv'); hideById('dataEntryInfor'); + + DAO.programAssociations.fetch( orgUnits[0], function ( store, arr ) { + DAO.programs.fetch( arr, function ( store, arr ) { + jQuery( '#searchingAttributeIdTD [id=searchObjectId] option' ).remove(); + jQuery( '#advancedSearchTB [id=searchObjectId] option' ).remove(); + clearListById( 'displayInReports' ); + clearListById( 'programId' ); + + jQuery( '#programId' ).append( '' ); + + for ( var i = 0; i < arr.length; i++ ) { + jQuery( '#programId' ).append( '' ); + } + + disableCriteriaDiv(); + showById( 'selectDiv' ); + } ); + } ); } -selection.setListenerFunction( organisationUnitSelected ); - function disableCriteriaDiv() { disable('listBtn'); @@ -68,7 +98,7 @@ setFieldValue('programStageId', programStageId ); setInnerHTML('reportDateDescriptionField', jQuery('#programId option:selected').attr('reportDateDes')); setInnerHTML('reportDateDescriptionField2', jQuery('#programId option:selected').attr('reportDateDes')); - + if( programStageId == '') { removeAllAttributeOption(); @@ -79,19 +109,19 @@ setFieldValue('searchText'); return; } - + jQuery.getJSON( "getProgramStageDataElementList.action", { programStageId: getFieldValue('programStageId') - }, - function( json ) - { + }, + function( json ) + { jQuery('#advancedSearchTB [name=searchText]').val(''); jQuery('.stage-object-selected').attr('psid', jQuery('#programId option:selected').attr("psid")); - + clearListById('searchObjectId'); clearListById('displayInReports'); - + jQuery( '[name=searchObjectId]').append( '' ); for ( i in json.programStageDataElements ) { jQuery( '[name=searchObjectId]').append( '' ); @@ -99,7 +129,7 @@ jQuery( '#displayInReports').append( ''); } } - + enableCriteriaDiv(); validateSearchEvents( true ); }); @@ -110,7 +140,7 @@ var container = jQuery(this_).parent().parent().attr('id'); var element = jQuery('#' + container + ' [id=searchText]'); var valueType = jQuery('#' + container+ ' [id=searchObjectId] option:selected').attr('type'); - + if( valueType == 'date' ){ element.replaceWith( getDateField( container ) ); datePickerValid( 'searchText_' + container ); @@ -120,7 +150,7 @@ { $( '#searchText_' + container ).datepicker("destroy"); $('#' + container + ' [id=dateOperator]').replaceWith(""); - + if( valueType == 'bool' ){ element.replaceWith( getTrueFalseBox() ); } @@ -165,18 +195,18 @@ } }) .addClass( "ui-widget" ); - + input.data( "autocomplete" )._renderItem = function( ul, item ) { return $( "
  • " ) .data( "item.autocomplete", item ) .append( "" + item.label + "" ) .appendTo( ul ); }; - + var wrapper = this.wrapper = $( "" ) .addClass( "ui-combobox" ) .insertAfter( input ); - + var button = $( "" ) .attr( "tabIndex", -1 ) .attr( "title", i18n_show_all_items ) @@ -204,7 +234,7 @@ var input = jQuery( "#" + idField ); input.parent().width( input.width() + 200 ); var dataElementId = input.attr('id').split('-')[1]; - + input.autocomplete({ delay: 0, minLength: 0, @@ -226,13 +256,13 @@ minLength: 0, select: function( event, ui ) { var fieldValue = ui.item.value; - + if ( !dhis2.trigger.invoke( "caseentry-value-selected", [dataElementId, fieldValue] ) ) { input.val( "" ); return false; } - - input.val( fieldValue ); + + input.val( fieldValue ); if ( !unSave ) { saveVal( dataElementId ); } @@ -253,18 +283,18 @@ } }) .addClass( "ui-widget" ); - + input.data( "autocomplete" )._renderItem = function( ul, item ) { return $( "
  • " ) .data( "item.autocomplete", item ) .append( "
    " + item.label + "" ) .appendTo( ul ); }; - + var wrapper = this.wrapper = $( "" ) .addClass( "ui-combobox" ) .insertAfter( input ); - + var button = $( "" ) .attr( "tabIndex", -1 ) .attr( "title", i18n_show_all_items ) @@ -298,10 +328,10 @@ } function validateSearchEvents( listAll ) -{ +{ listAll = eval(listAll); setFieldValue('listAll', listAll ); - + var flag = true; if( !listAll ) { @@ -309,7 +339,7 @@ showWarningMessage( i18n_specify_a_date ); flag = false; } - + if(flag && !listAll && jQuery('#filterBtn').attr("disabled")=="disabled" ) { jQuery( '#advancedSearchTB tr' ).each( function( index, row ){ @@ -326,7 +356,7 @@ }); } } - + if(flag){ searchEvents( listAll ); } @@ -336,14 +366,14 @@ { hideById('dataEntryInfor'); hideById('listDiv'); - + var params = ''; jQuery( '#displayInReports option' ).each( function( i, item ){ var input = jQuery( item ); params += '&searchingValues=de_' + input.val() + '_false_'; }); - - if(listAll){ + + if(listAll){ params += '&startDate='; params += '&endDate='; } @@ -370,7 +400,7 @@ } } }); - + if( value !=''){ searchingValue += getValueFormula(value); } @@ -380,16 +410,16 @@ } }) } - + params += '&facilityLB=selected'; params += '&level=0'; params += '&orgunitIds=' + getFieldValue('orgunitId'); params += '&programStageId=' + jQuery('#programId option:selected').attr('psid'); params += '&orderByOrgunitAsc=false'; - + contentDiv = 'listDiv'; showLoader(); - + $.ajax({ type: "POST", url: 'searchProgramStageInstances.action', @@ -397,10 +427,10 @@ success: function( html ){ hideById('dataEntryInfor'); setInnerHTML( 'listDiv', html ); - + var searchInfor = (listAll) ? i18n_list_all_events : i18n_search_events_by_dataelements; setInnerHTML( 'searchInforTD', searchInfor); - + if(!listAll && jQuery('#filterBtn').attr("disabled")=="disabled") { showById('minimized-advanced-search'); @@ -412,7 +442,7 @@ hideById('advanced-search'); showById('filterBtn'); } - + showById('listDiv'); hideById('loaderDiv'); } @@ -428,7 +458,7 @@ // if key is [xyz] && [=xyz] if( value.indexOf("'")==-1 ){ var flag = value.match(/[>|>=|<|<=|=|!=]+[ ]*/); - + if( flag == null ) { value = "='"+ value + "'"; @@ -444,19 +474,19 @@ else { var flag = value.match(/[>|>=|<|<=|=|!=]+[ ]*/); - + if( flag == null ) { value = "="+ value; } } - + return value; } function removeEvent( programStageId ) -{ - removeItem( programStageId, '', i18n_comfirm_delete_event, 'removeCurrentEncounter.action' ); +{ + removeItem( programStageId, '', i18n_comfirm_delete_event, 'removeCurrentEncounter.action' ); } function showUpdateEvent( programStageInstanceId ) @@ -471,8 +501,8 @@ setInnerHTML('dataEntryFormDiv',''); showLoader(); - $( '#dataEntryFormDiv' ).load( "dataentryform.action", - { + $( '#dataEntryFormDiv' ).load( "dataentryform.action", + { programStageInstanceId: programStageInstanceId },function() { @@ -494,9 +524,9 @@ hideById('loaderDiv'); showById('dataEntryInfor'); showById('entryFormContainer'); - + jQuery("#entryForm :input").each(function() - { + { if(( jQuery(this).attr( 'options' )!= null && jQuery(this).attr( 'options' )== 'true' ) || ( jQuery(this).attr( 'username' )!= null && jQuery(this).attr( 'username' )== 'true' )) { @@ -548,9 +578,9 @@ programStageInstanceId:programStageInstanceId, programId:programId, executionDate:executionDate - }, - function( json ) - { + }, + function( json ) + { if(json.response=='success') { jQuery("#executionDate").css('background-color', SUCCESS_COLOR); @@ -573,17 +603,17 @@ } function removeEmptyEvents() -{ +{ var result = window.confirm( i18n_confirm_remove_empty_events ); - + if ( result ) { jQuery.getJSON( "removeEmptyEvents.action", { programStageId: jQuery('#selectDiv [id=programId] option:selected').attr('psid') - }, - function( json ) - { + }, + function( json ) + { if(json.response=='success') { showSuccessMessage( i18n_remove_empty_events_success ); @@ -594,23 +624,23 @@ } function removeCurrentEvent() -{ +{ var result = window.confirm( i18n_comfirm_delete_event ); if ( result ) { $.postJSON( "removeCurrentEncounter.action", { - "id": getFieldValue('programStageInstanceId') + "id": getFieldValue('programStageInstanceId') }, function( json ) - { + { if ( json.response == "success" ) { backEventList(); } else if ( json.response == "error" ) - { + { showWarningMessage( json.message ); } }); === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonProgramMetaData.vm' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonProgramMetaData.vm 2013-02-19 04:01:58 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonProgramMetaData.vm 2013-02-20 08:03:09 +0000 @@ -2,8 +2,18 @@ "programs": { #set( $psize = $programs.size() ) #foreach( $program in $programs ) -"${program.id}":{"name":"$encoder.jsonEncode( ${program.displayName} )"} -#if( $velocityCount < $psize ),#end +"${program.id}":{ +"name":"$encoder.jsonEncode( ${program.displayName} )", +"description":"$encoder.jsonEncode( ${program.description} )", +"enrollmentDescription":"$encoder.jsonEncode( ${program.dateOfEnrollmentDescription} )", +"incidentDescription":"$encoder.jsonEncode( ${program.dateOfIncidentDescription} )", +"programStages":[ +#set( $pssize = $program.programStages.size() ) +#foreach( $ps in $program.programStages ) +{ "id": "${ps.id}", "name": "$encoder.jsonEncode( ${ps.displayName} )", "reportDateDescription": "$encoder.jsonEncode( ${ps.reportDateDescription} )" }#if( $velocityCount < $pssize ),#end +#end +] +}#if( $velocityCount < $psize ),#end #end }, "programAssociations": { #set( $psize = $programAssociations.size() ) === modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.storage.dom.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.storage.dom.js 2013-02-17 04:06:34 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.storage.dom.js 2013-02-20 08:03:09 +0000 @@ -65,6 +65,22 @@ return this; }, + addAll: function ( keys, objs, callback ) { + var that = this; + + if ( keys.length == 0 || objs.length == 0 ) { + if ( callback ) callback.call( that, that ); + return; + } + + var key = keys.pop(); + var obj = objs.pop(); + + this.add( key, obj, function ( store ) { + that.addAll( keys, objs, callback ); + } ); + }, + remove: function ( key, callback ) { var key = this.dbname + '.' + this.name + '.' + key; this.indexer.remove( key ); @@ -94,23 +110,33 @@ }, fetch: function ( key, callback ) { - var key = this.dbname + '.' + this.name + '.' + key; - var obj = storage.getItem( key ); - - if ( obj ) { - obj = JSON.parse( obj ); - if ( callback ) callback.call( this, this, obj ); + var arr = []; + var keys = $.isArray( key ) ? key : [ key ]; + + for ( var k = 0; k < keys.length; k++ ) { + var storage_key = this.dbname + '.' + this.name + '.' + keys[k]; + var obj = storage.getItem( storage_key ); + + if ( obj ) { + obj = JSON.parse( obj ); + obj.key = keys[k]; + arr.push( obj ); + } } + if ( callback ) callback.call( this, this, arr ); + return this; }, fetchAll: function ( callback ) { + var arr = []; var idx = this.indexer.all(); - var arr = []; for ( var k = 0; k < idx.length; k++ ) { - arr.push( JSON.parse( storage.getItem( idx[k] ) ) ); + var obj = JSON.parse( storage.getItem( idx[k] ) ); + obj.key = idx[k].replace( that.dbname + '.' + that.name + '.', '' ); + arr.push( obj ); } if ( callback ) callback.call( this, this, arr ); === modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.storage.idb.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.storage.idb.js 2013-02-17 04:06:34 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.storage.idb.js 2013-02-20 08:03:09 +0000 @@ -22,9 +22,18 @@ return getTransaction( IDB.TransactionModes.READ_WRITE ).objectStore( IDB.options.name ); } + function defaultErrorHandler() { + console.log( "error:", e ); + } + + function defaultBlockingHandler() { + console.log( "blocked:", e ); + } + return { valid: function () { - return !!(window.indexedDB && window.IDBTransaction && window.IDBKeyRange); + return false; + // return !!(window.indexedDB && window.IDBTransaction && window.IDBKeyRange); }, init: function ( options, callback ) { @@ -47,13 +56,8 @@ if ( callback ) callback.call( that, that ); }; - request.onerror = function ( e ) { - console.log( "error:", e ); - }; - - request.onblocked = function ( e ) { - console.log( "blocked:", e ); - }; + request.onerror = defaultErrorHandler; + request.onblocked = defaultBlockingHandler; }, add: function ( key, obj, callback ) { @@ -63,6 +67,25 @@ request.onsuccess = function ( e ) { if ( callback ) callback.call( that, that, obj ); }; + + request.onerror = defaultErrorHandler; + request.onblocked = defaultBlockingHandler; + }, + + addAll: function ( keys, objs, callback ) { + var that = this; + + if ( keys.length == 0 || objs.length == 0 ) { + if ( callback ) callback.call( that, that ); + return; + } + + var key = keys.pop(); + var obj = objs.pop(); + + this.add( key, obj, function ( store ) { + that.addAll( keys, objs, callback ); + } ); }, remove: function ( key, callback ) { @@ -72,6 +95,9 @@ request.onsuccess = function ( e ) { if ( callback ) callback.call( that, that ); }; + + request.onerror = defaultErrorHandler; + request.onblocked = defaultBlockingHandler; }, exists: function ( key, callback ) { @@ -81,6 +107,9 @@ request.onsuccess = function ( e ) { if ( callback ) callback.call( that, that, e.target.result != null ); }; + + request.onerror = defaultErrorHandler; + request.onblocked = defaultBlockingHandler; }, fetch: function ( key, callback ) { @@ -90,6 +119,9 @@ request.onsuccess = function ( e ) { if ( callback ) callback.call( that, that, e.target.result ); }; + + request.onerror = defaultErrorHandler; + request.onblocked = defaultBlockingHandler; }, fetchAll: function ( callback ) { @@ -107,6 +139,9 @@ if ( callback ) callback.call( that, that, records ); } }; + + request.onerror = defaultErrorHandler; + request.onblocked = defaultBlockingHandler; }, destroy: function ( callback ) { @@ -117,6 +152,9 @@ request.onsuccess = function ( e ) { if ( callback ) callback.call( that, that ); } + + request.onerror = defaultErrorHandler; + request.onblocked = defaultBlockingHandler; } }; })() ); === modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.storage.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.storage.js 2013-02-17 04:06:34 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.storage.js 2013-02-20 08:03:09 +0000 @@ -53,7 +53,7 @@ dhis2.storage.Store.adapter = function ( id, obj ) { var Store = dhis2.storage.Store; - var adapter_interface = "init add remove exists fetch fetchAll destroy".split( ' ' ); + var adapter_interface = "init add addAll remove exists fetch fetchAll destroy".split( ' ' ); var missing_functions = []; // verify adapter