=== modified file 'dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/i18n/en.json' --- dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/i18n/en.json 2014-02-14 10:59:22 +0000 +++ dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/i18n/en.json 2014-02-17 10:22:59 +0000 @@ -8,10 +8,16 @@ "no_registered_event": "There are no registered events.", "help": "Help", "edit": "Edit", + "edit_in_grid": "Edit in grid", + "full_edit": "Full edit", "update": "Update", "save": "Save", "delete": "Delete", "cancel": "Cancel", + "remove": "Remove", + "are_you_sure_to_remove": "Are you sure you want to remove the selected item?", + "show_hide_columns": "Show/Hide columns", + "show_details": "Show details", "new_event": "New Event", "register_new_event": "Register New Event", "total_number_of_pages": "No. of pages", === modified file 'dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/index.html' --- dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/index.html 2014-02-14 10:59:22 +0000 +++ dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/index.html 2014-02-17 10:22:59 +0000 @@ -49,7 +49,6 @@ - === modified file 'dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/scripts/controllers.js' --- dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/scripts/controllers.js 2014-02-14 10:59:22 +0000 +++ dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/scripts/controllers.js 2014-02-17 10:22:59 +0000 @@ -12,6 +12,8 @@ ProgramStageFactory, DHIS2EventFactory, Paginator, + ContextMenuSelectedItem, + ModalService, orderByFilter, $translate) { @@ -35,6 +37,7 @@ $scope.sortHeader = ''; $scope.reverse = false; + $scope.gridFilter = ''; //Get orgunits for the logged in user OrgUnitFactory.getMine().then(function(orgUnits) { @@ -107,7 +110,7 @@ dhis2Event.dataValues = orderByFilter(dhis2Event.dataValues, '-dataElement'); angular.forEach(dhis2Event.dataValues, function(dataValue){ - //now copy actual event value + //converting int value to integer for proper sorting. var dataElement = $scope.programStageDataElements[dataValue.dataElement]; if(dataElement.type == 'int'){ dataValue.value = parseInt(dataValue.value); @@ -116,13 +119,14 @@ }); }); - //generate grid headers from events - angular.forEach($scope.dhis2Events[0].dataValues, function(dataValue){ - var dataElement = $scope.programStageDataElements[dataValue.dataElement]; + //generate grid headers using program stage data elements + //also, create a template for new event. + for(var dataElement in $scope.programStageDataElements){ + var dataElement = $scope.programStageDataElements[dataElement]; var name = dataElement.formName || dataElement.name; $scope.newDhis2Event.dataValues.push({dataElement: dataElement, value: '', name: name}); - $scope.eventGridHeaders.push({name: name, id: dataElement.id}); - }); + $scope.eventGridHeaders.push({name: name, id: dataElement.id, filter: ''}); + } }); }); }); @@ -174,7 +178,32 @@ $scope.eventUnderEditing = ''; }; - $scope.deleteEvent = function(dhis2Event){ + $scope.editEventInGrid = function(){ + $scope.eventUnderEditing = ContextMenuSelectedItem.getSelectedItem(); + console.log('The event is: ', ContextMenuSelectedItem.getSelectedItem().event); + }; + + $scope.editEventInFull = function(){ + console.log('The event is: ', ContextMenuSelectedItem.getSelectedItem().event); + }; + + $scope.removeEvent = function(){ + var dhis2Event = ContextMenuSelectedItem.getSelectedItem(); + + var modalOptions = { + closeButtonText: 'cancel', + actionButtonText: 'remove', + headerText: 'remove', + bodyText: 'are_you_sure_to_remove' + }; + + ModalService.showModal({}, modalOptions).then(function(result){ + console.log('The event to be deleted is: ', dhis2Event); + }); + }; + + $scope.showEventDetails = function(){ + console.log('The event is: ', ContextMenuSelectedItem.getSelectedItem().event); }; $scope.getHelpContent = function(){ @@ -182,13 +211,8 @@ }; $scope.generateReport = function(){ - console.log('I need to generate the report....'); - }; - - $scope.showContextMenu = function(dhis2Event){ - //console.log('I need to display context menu for....', dhis2Event); - } - + console.log('I need to generate the report....'); + }; }) //Controller for the main page === modified file 'dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/scripts/directives.js' --- dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/scripts/directives.js 2014-02-14 10:59:22 +0000 +++ dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/scripts/directives.js 2014-02-17 10:22:59 +0000 @@ -51,4 +51,56 @@ }, templateUrl: 'views/pagination.html' }; -}); \ No newline at end of file +}) + +.directive('dhisContextMenu', ['ContextMenuSelectedItem', function(ContextMenuSelectedItem) { + + return { + restrict: 'A', + link: function(scope, element, attrs){ + var contextMenu = $("#contextMenu"); + + element.click(function (e) { + var selectedItem = $.parseJSON(attrs.selectedItem); + ContextMenuSelectedItem.setSelectedItem(selectedItem); + + var menuHeight = contextMenu.height(); + var menuWidth = contextMenu.width(); + var winHeight = $(window).height(); + var winWidth = $(window).width(); + + var pageX = e.pageX; + var pageY = e.pageY; + + contextMenu.show(); + + if( (menuWidth + pageX) > winWidth ) { + pageX -= menuWidth; + } + + if( (menuHeight + pageY) > winHeight ) { + pageY -= menuHeight; + + if( pageY < 0 ) { + pageY = e.pageY; + } + } + + contextMenu.css({ + left: pageX, + top: pageY + }); + + return false; + }); + + contextMenu.on("click", "a", function () { + contextMenu.hide(); + }); + + $(document).click(function () { + contextMenu.hide(); + }); + } + }; +}]); \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/scripts/services.js' --- dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/scripts/services.js 2014-02-14 10:59:22 +0000 +++ dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/scripts/services.js 2014-02-17 10:22:59 +0000 @@ -559,13 +559,9 @@ getByStage: function(orgUnit, programStage){ var promise = $http.get(dhis2Url + '/api/events.json?' + 'orgUnit=' + orgUnit + '&programStage=' + programStage + '&paging=false').then(function(response){ - var dhis2Events = response.data.eventList; - - /*angular.forEach(dhis2Events, function(dhis2Event){ - console.log('datavalue length: ', dhis2Event.dataValues.length); - });*/ - - return dhis2Events; + //var dhis2Events = response.data.eventList; + + return response.data.eventList; }); return promise; }, @@ -931,6 +927,18 @@ }]) +.service('ContextMenuSelectedItem', function(){ + this.selectedItem = ''; + + this.setSelectedItem = function(selectedItem){ + this.selectedItem = selectedItem; + }; + + this.getSelectedItem = function(){ + return this.selectedItem; + }; +}) + /* Pagination service */ .service('Paginator', function () { this.page = 0; === modified file 'dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/styles/style.css' --- dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/styles/style.css 2014-02-14 10:59:22 +0000 +++ dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/styles/style.css 2014-02-17 10:22:59 +0000 @@ -700,6 +700,10 @@ color: black; } +.bold { + font-weight: bold; +} + .white { color: white; } @@ -751,15 +755,15 @@ background-color: #ebf0f6; } -.dhis2-table-striped, -.dhis2-table-striped>thead>tr>th, -.dhis2-table-striped>tbody>tr>th, -.dhis2-table-striped>tfoot>tr>th, -.dhis2-table-striped>thead>tr>td, -.dhis2-table-striped>tbody>tr>td, -.dhis2-table-striped>tfoot>tr>td { - //border: 1px solid #cad5e5; - border: none; + +.dhis2-table-striped>thead>tr, +.dhis2-table-striped>tbody>tr, +.dhis2-table-striped>tfoot>tr, +.dhis2-table-striped>thead>tr, +.dhis2-table-striped>tbody>tr, +.dhis2-table-striped>tfoot>tr { + border-bottom: 1px solid #cad5e5; + //border: none; } .dhis2-table-striped > tbody > tr:nth-child(odd)> td, .dhis2-table-striped > tbody > tr:nth-child(odd)> th { @@ -769,3 +773,133 @@ .dhis2-table-hover > tbody > tr:hover > td, .table-hover > tbody > tr:hover > th { background-color: #dfe9f4; } + +#contextMenu { + position: absolute; + display:none; +} + +/*----------------------------------------------------------------------------*/ +/* Bootstrap modal style +/*----------------------------------------------------------------------------*/ +.modal-open { + overflow: hidden +} +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + display: none; + overflow: auto; + overflow-y: scroll +} +.modal.fade .modal-dialog { + -webkit-transform: translate(0,-25%); + -ms-transform: translate(0,-25%); + transform: translate(0,-25%); + -webkit-transition: -webkit-transform .3s ease-out; + -moz-transition: -moz-transform .3s ease-out; + -o-transition: -o-transform .3s ease-out; + transition: transform .3s ease-out +} +.modal.in .modal-dialog { + -webkit-transform: translate(0,0); + -ms-transform: translate(0,0); + transform: translate(0,0) +} +.modal-dialog { + position: relative; + z-index: 1050; + width: auto; + padding: 10px; + margin-right: auto; + margin-left: auto +} +.modal-content { + position: relative; + background-color: #fff; + border: 1px solid #999; + border: 1px solid rgba(0,0,0,0.2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0,0,0,0.5); + box-shadow: 0 3px 9px rgba(0,0,0,0.5); + background-clip: padding-box +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; + background-color: #000 +} +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0) +} +.modal-backdrop.in { + opacity: .5; + filter: alpha(opacity=50) +} +.modal-header { + min-height: 16.428571429px; + padding: 15px; + border-bottom: 1px solid #e5e5e5 +} +.modal-header .close { + margin-top: -2px +} +.modal-title { + margin: 0; + line-height: 1.428571429 +} +.modal-body { + position: relative; + padding: 20px +} +.modal-footer { + padding: 19px 20px 20px; + margin-top: 15px; + text-align: right; + border-top: 1px solid #e5e5e5 +} +.modal-footer:before, .modal-footer:after { + display: table; + content: " " +} +.modal-footer:after { + clear: both +} +.modal-footer:before, .modal-footer:after { + display: table; + content: " " +} +.modal-footer:after { + clear: both +} +.modal-footer .btn+ .btn { + margin-bottom: 0; + margin-left: 5px +} +.modal-footer .btn-group .btn+ .btn { + margin-left: -1px +} +.modal-footer .btn-block+ .btn-block { + margin-left: 0 +} +@media screen and (min-width: 768px) { + .modal-dialog { + width: 600px; + padding-top: 30px; + padding-bottom: 30px + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0,0,0,0.5); + box-shadow: 0 5px 15px rgba(0,0,0,0.5) + } +} === modified file 'dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/views/eventList.html' --- dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/views/eventList.html 2014-02-14 10:59:22 +0000 +++ dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/views/eventList.html 2014-02-17 10:22:59 +0000 @@ -1,44 +1,44 @@ -
+
+
- +
- - + - - - + - === added file 'dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/views/modal.html' --- dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/views/modal.html 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/app/views/modal.html 2014-02-17 10:22:59 +0000 @@ -0,0 +1,10 @@ + + + \ No newline at end of file
# {{eventGridHeader.name}} {{'operations'| translate}} + +
{{($index + 1) + (paginator.getPage() * paginator.rowsPerPage)}} +
{{dhis2Event[eventGridHeader.id]}} +
-
- +
+
+ +
- - - - - - + + +