=== modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/struts.xml' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/struts.xml 2015-09-17 05:52:20 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/struts.xml 2015-10-01 13:22:12 +0000 @@ -13,7 +13,7 @@ /main.vm /dhis-web-dataentry/select.vm /dhis-web-dataentry/menu.vm - ../dhis-web-commons/ouwt/ouwt.js,javascript/form.js,javascript/entry.js,javascript/history.js + ../dhis-web-commons/ouwt/ouwt.js,javascript/form.js,javascript/entry.js,javascript/history.js,javascript/entry.fileresource.js style/dhis-web-dataentry.css ../dhis-web-commons/cacheManifest.action === added file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/javascript/entry.fileresource.js' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/javascript/entry.fileresource.js 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/javascript/entry.fileresource.js 2015-10-01 13:22:12 +0000 @@ -0,0 +1,175 @@ +( function ( $ ) { + $.fn.fileResourceEntryField = function() { + + // TODO Use i18n + // TODO Disable field when offline + // TODO Re-init on period change + + var $container = $( this ); + + var $field = $container.find( '.entryfileresource' ); + var $button = $container.find( '.upload-button' ); + + var $fileInput = $container.find( 'input[type=file]' ); + + var $fileinfo = $container.find( '.upload-fileinfo' ); + var $fileinfoName = $fileinfo.find( '.upload-fileinfo-name' ); + var $fileinfoSize = $fileinfo.find( '.upload-fileinfo-size' ); + + var $progress = $container.find( '.upload-progress' ); + var $progressBar = $progress.find( '.upload-progress-bar' ); + var $progressInfo = $progress.find( '.upload-progress-info' ); + + var id = $field.attr( 'id' ); + + var split = dhis2.de.splitFieldId( id ); + + var dataElementId = split.dataElementId; + var optionComboId = split.optionComboId; + var orgUnitid = dhis2.de.currentOrganisationUnitId; + var periodId = $( '#selectedPeriodId' ).val(); + + var formData = { + 'de': dataElementId, + 'co': optionComboId, + 'ou': orgUnitid, + 'pe': periodId + }; + + // Logic + var deleteFileDataValue = function() { + var postData = formData; + postData.value = ''; + + $.ajax( { + url: '../api/dataValues', + type: 'POST', + dataType: 'json', + data: postData, + success: function() + { + $fileinfoName.text( '' ); + $fileinfoSize.text( '' ); + $fileinfo.hide(); + $field.css( 'background-color', '' ); + setButtonUpload(); + }, + error: function( data ) + { + console.log( data.errorThrown ); + } + } ); + }; + + var setButtonDelete = function() { + $button.button( { + text: false, + icons: { + primary: 'fa fa-trash-o' + } + } ); + $button.unbind( 'click' ); + $button.on( 'click', function() { + $( '#fileDeleteConfirmationDialog' ).dialog( { + title: 'Confirm deletion', + resizable: false, + height: 140, + modal: true, + buttons: { + 'Delete': function() { + deleteFileDataValue(); + $( this ).dialog( 'close' ); + }, + Cancel: function() { + $( this ).dialog( 'close' ); + } + } + } ); + } ); + $button.button( 'enable' ); + }; + + var setButtonUpload = function() { + $button.button( { + text: false, + icons: { + primary: 'fa fa-upload' + } + } ); + $button.unbind( 'click' ); + $button.on( 'click', function() + { + $fileInput.click(); + } ); + $button.button( 'enable' ); + }; + + var resetAndHideProgress = function() { + $progressBar.toggleClass( 'upload-progress-bar-complete', true ); + $progressBar.css( 'width', 0 ); + $progress.hide(); + }; + + var onFileDataValueSavedSuccess = function( fileResource ) { + var name = fileResource.name, size = '(' + filesize( fileResource.contentLength ) + ')'; + + $fileinfoName.text( name ); + $fileinfoSize.text( size ); + $progressBar.toggleClass( 'upload-progress-bar-complete' ); + $fileinfo.show(); + resetAndHideProgress(); + setButtonDelete(); + $button.button( 'enable' ); + }; + + // Button setup + $button.button( { + text: false, + icons: { + primary: 'fa fa-ban' + } + } ); + $button.button( 'disable' ); + + $( document ).on( dhis2.de.event.dataValuesLoaded, function() { + ( typeof( $field.data( 'value' ) ) == 'undefined' ) ? setButtonUpload() : setButtonDelete(); + } ); + + // Initialize file uploader + $fileInput.fileupload( { + url: '../api/dataValues/files', + paramName: 'file', + multipart: true, + replaceFileInput: false, + progressInterval: 250, /* ms */ + formData: formData, + start: function( e ) + { + $button.button( 'disable' ); + $progressBar.toggleClass( 'upload-progress-bar-complete', false ); + $fileinfo.hide(); + $progress.show(); + }, + progress: function( e, data ) + { + var percent = parseInt( data.loaded / data.total * 100, 10 ); + $progressBar.css( 'width', percent + '%' ); + $progressInfo.text( percent + '%' ); + }, + fail: function( e, data ) + { + setHeaderDelayMessage( "File upload failed!" ); + console.log( data.errorThrown ); + setButtonUpload(); + }, + done: function( e, data ) + { + var fileResource = data.result.response.fileResource; + + saveFileResource( dataElementId, optionComboId, id, fileResource, function() { + onFileDataValueSavedSuccess( fileResource ); + } ); + } + } ); + }; +} )( jQuery ); === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/javascript/form.js' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/javascript/form.js 2015-10-01 12:35:14 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/javascript/form.js 2015-10-01 13:22:12 +0000 @@ -641,176 +641,7 @@ $( '.entryfileresource-container' ).each( function() { - // TODO Use i18n - // TODO Disable when offline - - // Object refs - var $container = $( this ); - var $field = $container.find( '.entryfileresource' ); - var $button = $container.find( '.upload-button' ); - - var $fileInput = $container.find( 'input[type=file]' ); - - var $fileinfo = $container.find( '.upload-fileinfo' ); - var $fileinfoName = $fileinfo.find( '.upload-fileinfo-name' ); - var $fileinfoSize = $fileinfo.find( '.upload-fileinfo-size' ); - - var $progress = $container.find( '.upload-progress' ); - var $progressBar = $progress.find( '.upload-progress-bar' ); - var $progressInfo = $progress.find( '.upload-progress-info' ); - - // IDs - var id = $field.attr( 'id' ); - - var split = dhis2.de.splitFieldId( id ); - - var dataElementId = split.dataElementId; - var optionComboId = split.optionComboId; - var orgUnitid = dhis2.de.currentOrganisationUnitId; - var periodId = $( '#selectedPeriodId' ).val(); - - var formData = { - 'de': dataElementId, - 'co': optionComboId, - 'ou': orgUnitid, - 'pe': periodId - }; - - // Functions - var deleteFileDataValue = function() { - var postData = formData; - postData.value = ''; - - $.ajax( { - url: '../api/dataValues', - type: 'POST', - dataType: 'json', - data: postData, - success: function() - { - $fileinfoName.text( '' ); - $fileinfoSize.text( '' ); - $fileinfo.hide(); - $field.css( 'background-color', '' ); - setButtonUpload(); - }, - error: function( data ) - { - console.log( data.errorThrown ); - } - } ); - }; - - var setButtonDelete = function() { - $button.button( { - text: false, - icons: { - primary: 'fa fa-trash-o' - } - } ); - $button.unbind( 'click' ); - $button.on( 'click', function() { - $( '#fileDeleteConfirmationDialog' ).dialog( { - title: 'Confirm deletion', - resizable: false, - height: 140, - modal: true, - buttons: { - 'Delete': function() { - deleteFileDataValue(); - $( this ).dialog( 'close' ); - }, - Cancel: function() { - $( this ).dialog( 'close' ); - } - } - } ); - } ); - $button.button( 'enable' ); - }; - - var setButtonUpload = function() { - $button.button( { - text: false, - icons: { - primary: 'fa fa-upload' - } - } ); - $button.unbind( 'click' ); - $button.on( 'click', function() - { - $fileInput.click(); - } ); - $button.button( 'enable' ); - }; - - var resetAndHideProgress = function() { - $progressBar.toggleClass( 'upload-progress-bar-complete', true ); - $progressBar.css( 'width', 0 ); - $progress.hide(); - }; - - var onFileDataValueSavedSuccess = function( fileResource ) { - var name = fileResource.name, size = '(' + filesize( fileResource.contentLength ) + ')'; - - $fileinfoName.text( name ); - $fileinfoSize.text( size ); - $progressBar.toggleClass( 'upload-progress-bar-complete' ); - $fileinfo.show(); - resetAndHideProgress(); - setButtonDelete(); - $button.button( 'enable' ); - }; - - // Initialize button - $button.button( { - text: false, - icons: { - primary: 'fa fa-ban' - } - } ); - $button.button( 'disable' ); - - $( document ).on( dhis2.de.event.dataValuesLoaded, function() { - ( typeof( $field.data( 'value' ) ) == 'undefined' ) ? setButtonUpload() : setButtonDelete(); - } ); - - // Initialize file uploader - $fileInput.fileupload( { - url: '../api/dataValues/files', - paramName: 'file', - multipart: true, - replaceFileInput: false, - progressInterval: 250, /* ms */ - formData: formData, - start: function( e ) - { - $button.button( 'disable' ); - $progressBar.toggleClass( 'upload-progress-bar-complete', false ); - $fileinfo.hide(); - $progress.show(); - }, - progress: function( e, data ) - { - var percent = parseInt( data.loaded / data.total * 100, 10 ); - $progressBar.css( 'width', percent + '%' ); - $progressInfo.text( percent + '%' ); - }, - fail: function( e, data ) - { - setHeaderDelayMessage( "File upload failed!" ); - console.log( data.errorThrown ); - setButtonUpload(); - }, - done: function( e, data ) - { - var fileResource = data.result.response.fileResource; - - saveFileResource( dataElementId, optionComboId, id, fileResource, function() { - onFileDataValueSavedSuccess( fileResource ); - } ); - } - } ); + $( this ).fileResourceEntryField(); } ); } === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/style/dhis-web-dataentry.css' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/style/dhis-web-dataentry.css 2015-10-01 12:35:14 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/style/dhis-web-dataentry.css 2015-10-01 13:22:12 +0000 @@ -316,7 +316,6 @@ .upload-fileinfo-size { - /*width: 80px;*/ float: right; text-align: right; padding-left: 3px; @@ -366,14 +365,14 @@ vertical-align: middle; } +#fileDeleteConfirmationDialog .fa +{ + margin-right: 5px; +} + .confirm-dialog-content { display: inline-block; position: absolute; top: 16px; -} - -#fileDeleteConfirmationDialog .fa -{ - margin-right: 5px; } \ No newline at end of file