← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 21535: tracker/event-capture: printing custom and default forms

 

------------------------------------------------------------
revno: 21535
committer: Abyot Asalefew Gizaw <abyota@xxxxxxxxx>
branch nick: dhis2
timestamp: Mon 2015-12-28 15:53:48 +0100
message:
  tracker/event-capture: printing custom and default forms
removed:
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/styles/bootstrap.min.css
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/styles/screen.css
added:
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/main-dataentry-form.html
modified:
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/styles/style.css
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry-controller.js
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry-print.html
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry.html
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/default-form.html
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/event-details.html
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/index.html
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/styles/print.css
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/styles/style.css
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.angular.services.js


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/styles/style.css'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/styles/style.css	2015-12-24 12:26:41 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/styles/style.css	2015-12-28 14:53:48 +0000
@@ -449,15 +449,4 @@
 
 .custom-form-completed {
     width: 35%
-}
-
-
-
-/*.file-input input[readonly] {
-    background-color: white !important;
-    cursor: text !important;
-}*/
-
-/*input[type='file'] {
-    opacity:0
-}*/
\ No newline at end of file
+}
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry-controller.js'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry-controller.js	2015-12-21 13:28:07 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry-controller.js	2015-12-28 14:53:48 +0000
@@ -26,6 +26,8 @@
                 EventCreationService,
                 $q) {
 
+    $scope.printForm = false;
+    $scope.printEmptyForm = false;
     $scope.eventPageSize = 4;
     $scope.maxOptionSize = 30;
     $scope.dashboardReady = false;
@@ -117,22 +119,26 @@
         } 
     }
     $scope.model= {};
-
+            
     $scope.print = function(divName){
-        $scope.showProgramReportDetailsDiv = false;
-        var printContents =  document.getElementById(divName).innerHTML;
-        //var popupWin = window.open('', '_blank', 'resizable=1,scrollbars=no,width=500,height=200');
+        $scope.printForm = true;
+        $scope.printEmptyForm = true;
+        var printContents = document.getElementById(divName).innerHTML;
         var popupWin = window.open('', '_blank', 'fullscreen=1');
         popupWin.document.open();
         popupWin.document.write('<html>\n\
-                                     <head>\n\
-                                         <link rel="stylesheet" type="text/css" href="styles/bootstrap.min.css" media="print"/>\n\
-                                         <link rel="stylesheet" type="text/css" href="styles/print.css" media="print"/>\n\
-                                     </head>\n\
-                                     <body onload="window.print()">' + printContents +
+                                        <head>\n\
+                                                <link rel="stylesheet" type="text/css" href="../dhis-web-commons/bootstrap/css/bootstrap.min.css" />\n\
+                                                <link type="text/css" rel="stylesheet" href="../dhis-web-commons/javascripts/angular/plugins/select.css">\n\
+                                                <link type="text/css" rel="stylesheet" href="../dhis-web-commons/javascripts/angular/plugins/select2.css">\n\
+                                                <link rel="stylesheet" type="text/css" href="styles/style.css" />\n\
+                                                <link rel="stylesheet" type="text/css" href="styles/print.css" />\n\
+                                        </head>\n\
+                                        <body onload="window.print()">' + printContents + 
                                 '</html>');
         popupWin.document.close();
-
+        $scope.printForm = false;
+        $scope.printEmptyForm = false;
     };
 
     var processRuleEffect = function(event){

=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry-print.html'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry-print.html	2015-12-16 14:39:12 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry-print.html	2015-12-28 14:53:48 +0000
@@ -1,120 +1,55 @@
 <div id="print-div" class="not-for-screen">
 
-
-  <!-- For personal data-->
-  <div style="overflow:visible">
-
-    <div class="section">Personal Details</div>
-
-    <table class="table table-bordered">
-      <tbody>
-        <tr ng-repeat="attribute in selectedTei.attributes" ng-show="attribute.show">
-          <td class="bold attritbute-name">
-            {{attribute.displayName}}
-          </td>
-          <td>
-            <input type="text" value={{attribute.value}} class="form-control">
-          </td>
-        </tr>
-      </tbody>
-    </table>
-  </div>
-  <!-- For personal data -->
-
-
-  <!-- For Enrollment-->
-
-    <div style="overflow:visible">
-
-      <div class="section">Enrollment</div>
-
-      <table class="table table-bordered">
-
-        <tbody>
-        <tr>
-          <td class="bold attritbute-name">
-            {{'enrolling_orgunit' | translate}}
-          </td>
-          <td>
-            <input type="text" value={{selectedEnrollment.orgUnitName}} class="form-control">
-          </td>
-        </tr>
-        <tr>
-          <td class="bold attritbute-name">
-            {{selectedProgram.enrollmentDateLabel}}
-          </td>
-          <td>
-            <input type="text" value= {{selectedEnrollment.enrollmentDate}} class="form-control">
-          </td>
-        </tr>
-        <tr>
-          <td class="bold attritbute-name">
-            {{selectedProgram.incidentDateLabel}}
-          </td>
-          <td>
-            <input type="text" value={{selectedEnrollment.incidentDate}} class="form-control">
-          </td>
-        </tr>
-        </tbody>
-      </table>
-    </div>
-  <!-- For Enrollment-->
-
-  <table class="table table-bordered" ng-if='currentEvent && !currentStage.programStageSections.length'>
-    <thead>
-    <tr>
-      <th ng-bind="dataElementLabel">
-      </th>
-      <th class="align-center" ng-bind="valueLabel">
-      </th>
-      </th>
-    </tr>
-    </thead>
-    <tbody>
-    <tr ng-repeat="prStDe in currentStage.programStageDataElements">
-      <td class="bold attritbute-name">
-        {{prStDe.dataElement.formname ? prStDe.dataElement.formname : prStDe.dataElement.name}}
-      </td>
-      <td>
-        <input type="text" value={{currentEvent[prStDe.dataElement.id]}} class="form-control">
-      </td>
-    </tr>
-    </tbody>
-  </table>
-
-  <div ng-if='currentEvent && currentStage.programStageSections.length'>
-
-      <div ng-repeat='section in currentStage.programStageSections'
-                       ng-if="!hiddenSections[section.id]" style="overflow:visible">
-
-        <div class="section">{{section.name}}</div>
-
-          <table class="table table-bordered" ng-if="section.programStageDataElements && section.programStageDataElements.length > 0">
-          <thead>
-            <tr>
-              <th ng-bind="dataElementLabel">
-              </th>
-              <th class="align-center" ng-bind="valueLabel">
-              </th>
-              <th class="align-center" ng-if="allowProvidedElsewhereExists[currentStage.id]" ng-bind="providedElsewhereLabel">
-              </th>
-            </tr>
-          </thead>
-          <tbody id="list">
-            <tr ng-repeat="de in section.programStageDataElements">
-              <td class="bold attritbute-name">
-                {{prStDes[de.dataElement.id].dataElement.formName ? prStDes[de.dataElement.id].dataElement.formName : prStDes[de.dataElement.id].dataElement.name}}
-              </td>
-              <td>
-                <input type="text" value={{currentEvent[prStDes[de.dataElement.id].dataElement.id]}} class="form-control">
-              </td>
-            </tr>
-          </tbody>
-        </table>
-      </div>
-      </div>
-
-    </div>
-    </div>
-  </div>
-</div>
+    <div class="col-sm-12">
+        <h3>{{'profile'| translate}}</h3>
+    </div>    
+    <table class="dhis2-list-table-striped dhis2-table-hover">
+        <tbody>
+            <tr ng-repeat="attribute in selectedTei.attributes" ng-show="attribute.show">
+                <td class="col-sm-6">
+                    {{attribute.displayName}}
+                </td>
+                <td class="col-sm-6">
+                    <input type="text" value={{attribute.value}} class="form-control">
+                </td>
+            </tr>
+        </tbody>
+    </table>
+
+    <div class="col-sm-12">
+        <h3>{{'enrollment'| translate}}</h3>
+    </div>    
+    <table class="dhis2-list-table-striped dhis2-table-hover">
+        <tbody>
+            <tr>
+                <td class="col-sm-6">
+                    {{'enrolling_orgunit'| translate}}
+                </td>
+                <td class="col-sm-6">
+                    <input type="text" value={{selectedEnrollment.orgUnitName}} class="form-control">
+                </td>
+            </tr>
+            <tr>
+                <td class="col-sm-6">
+                    {{selectedProgram.enrollmentDateLabel}}
+                </td>
+                <td class="col-sm-6">
+                    <input type="text" value= {{selectedEnrollment.enrollmentDate}} class="form-control">
+                </td>
+            </tr>
+            <tr>
+                <td class="col-sm-6">
+                    {{selectedProgram.incidentDateLabel}}
+                </td>
+                <td class="col-sm-6">
+                    <input type="text" value={{selectedEnrollment.incidentDate}} class="form-control">
+                </td>
+            </tr>
+        </tbody>
+    </table>
+
+    <div class="col-sm-12">
+        <h3>{{'dataentry'| translate}}</h3>
+        <div ng-include="'components/dataentry/main-dataentry-form.html'"></div>
+    </div>
+</div>
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry.html'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry.html	2015-12-21 13:28:07 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry.html	2015-12-28 14:53:48 +0000
@@ -39,24 +39,7 @@
 
             <div ng-if="!selectedEnrollment || !selectedEnrollment.enrollment" class="alert alert-danger">{{notEnrolledLabel}}</div>
 
-            <form name="outerForm" novalidate>
-                <div ng-if="currentEvent">
-                    <div ng-include="'components/dataentry/event-details.html'"></div>
-                    <!-- data entry form begins -->
-                    <div ng-if="currentEvent.eventDate">
-                        <div class="clear vertical-spacing" ng-if="displayCustomForm === 'CUSTOM'" ng-include="'../dhis-web-commons/angular-forms/custom-form.html'"></div>
-                        <div class="clear vertical-spacing" ng-if="displayCustomForm === 'DEFAULT'" ng-include="'components/dataentry/default-form.html'"></div>
-                    </div>
-                    <!-- the table form is insensitive to the event date being present. In this situation the eventdate is set inside the table form -->
-                    <div class="clear vertical-spacing" ng-if="displayCustomForm === 'TABLE'" ng-include="'components/dataentry/table-entry-form.html'"></div>
-                    <!-- data entry form ends -->
-
-                    <!-- data entry/event buttons begins -->
-                    <div ng-include="'components/dataentry/dataentry-buttons.html'"></div>
-                    <!-- data entry/event buttons ends -->
-
-                </div>
-            </form>
+            <div ng-include="'components/dataentry/main-dataentry-form.html'"></div>
 
             <div ng-if="displayCustomForm !== 'TABLE'">
                 <div ng-include="'components/dataentry/dataentry-notes.html'"></div>

=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/default-form.html'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/default-form.html	2015-12-17 15:00:48 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/default-form.html	2015-12-28 14:53:48 +0000
@@ -1,5 +1,5 @@
 <form name="outerForm" novalidate>
-    <table class="dhis2-list-table-striped default-form-table" ng-if='currentEvent && !currentStage.programStageSections.length'>
+    <table class="dhis2-list-table-striped dhis2-table-hover" ng-if='currentEvent && !currentStage.programStageSections.length'>
         <thead>
             <tr>
                 <th ng-bind="dataElementLabel">
@@ -13,47 +13,37 @@
         <tr class="col-md-12" ng-repeat="prStDe in currentStage.programStageDataElements" ng-if="!isHidden(prStDe.dataElement.id, currentEvent)">
             <td>
                 <span ng-bind="prStDe.dataElement.formName ? prStDe.dataElement.formName : prStDe.dataElement.name"></span>
-                <a ng-if="prStDe.dataElement.description" Title="{{prStDe.dataElement.description}}" ng-init="showHelpText[prStDe.dataElement.id] = false;" ng-click="showHelpText[prStDe.dataElement.id] = !showHelpText[prStDe.dataElement.id]">
-                    <span class="glyphicon glyphicon-info-sign" ></span>
-                    <span ng-show="showHelpText[prStDe.dataElement.id]" ><br>{{prStDe.dataElement.description}}</span>
-                </a>    
-                <span ng-if="otherValuesLists[prStDe.dataElement.id] && currentStage.id !== 'PUZaKR0Jh2k'" ng-repeat="altValue in otherValuesLists[prStDe.dataElement.id] track by $index">
-                    <span class="label label-default">{{altValue | translate}}</span>
-               </span>    
-                
+                <span class="hideInPrint">
+                    <a ng-if="prStDe.dataElement.description" Title="{{prStDe.dataElement.description}}" ng-init="showHelpText[prStDe.dataElement.id] = false;" ng-click="showHelpText[prStDe.dataElement.id] = !showHelpText[prStDe.dataElement.id]">
+                        <span class="glyphicon glyphicon-info-sign" ></span>
+                        <span ng-show="showHelpText[prStDe.dataElement.id]" ><br>{{prStDe.dataElement.description}}</span>
+                    </a>    
+                    <span ng-if="otherValuesLists[prStDe.dataElement.id] && currentStage.id !== 'PUZaKR0Jh2k'" ng-repeat="altValue in otherValuesLists[prStDe.dataElement.id] track by $index">
+                        <span class="label label-default">{{altValue | translate}}</span>
+                   </span> 
+                </span>                
             </td>
             <td>
                 <ng-form name="innerForm">
                     <div ng-if="prStDe.dataElement.optionSetValue">
-                        <div ng-if="!selectedProgram.dataEntryMethod || optionSets[prStDe.dataElement.optionSet.id].options.length >= 7">
-                            <ui-select  ng-model="currentEvent[prStDe.dataElement.id]" 
-                                        theme="select2" 
-                                        ng-required={{prStDe.compulsory}} 
-                                        ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
-                                        name="foo" 
-                                        on-select="saveDatavalue(prStDe, innerForm.foo)"
-                                        style="width:100%;">
-                                <ui-select-match allow-clear="true" ng-class="getInputNotifcationClass(prStDe.dataElement.id, true)"  class="form-control-ui-select"  placeholder="{{'select_or_search' | translate}}">{{$select.selected.name  || $select.selected}}</ui-select-match>
-                                <ui-select-choices  repeat="option.name as option in optionSets[prStDe.dataElement.optionSet.id].options | filter: $select.search | limitTo:maxOptionSize">
-                                  <span ng-bind-html="option.name | highlight: $select.search"></span>
-                                </ui-select-choices>
-                            </ui-select>
-                        </div>
-                        <div ng-if="selectedProgram.dataEntryMethod && optionSets[prStDe.dataElement.optionSet.id].options.length < 7">
-                            <label>                                        
-                                <input type="radio"                                    
-                                    class="form-control"
-                                    ng-class="getInputNotifcationClass(prStDe.dataElement.id,false, currentEvent)"
-                                    name={{prStDe.dataElement.id}}
-                                    ng-required={{prStDe.compulsory}} 
-                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
-                                    ng-model="currentEvent[prStDe.dataElement.id]"
-                                    ng-change="saveDatavalue(prStDe, innerForm.foo)" 
-                                    value=""> {{'no_value' | translate}}<br>                                       
-                            </label><br>
-                            <span ng-repeat="option in optionSets[prStDe.dataElement.optionSet.id].options">
-                                <label>
-                                    <input type="radio"
+                        <div class="hideInPrint">
+                            <div ng-if="!selectedProgram.dataEntryMethod || optionSets[prStDe.dataElement.optionSet.id].options.length >= 7">
+                                <ui-select  ng-model="currentEvent[prStDe.dataElement.id]" 
+                                            theme="select2" 
+                                            ng-required={{prStDe.compulsory}} 
+                                            ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
+                                            name="foo" 
+                                            on-select="saveDatavalue(prStDe, innerForm.foo)"
+                                            style="width:100%;">
+                                    <ui-select-match allow-clear="true" ng-class="getInputNotifcationClass(prStDe.dataElement.id, true)"  class="form-control-ui-select"  placeholder="{{'select_or_search' | translate}}">{{$select.selected.name  || $select.selected}}</ui-select-match>
+                                    <ui-select-choices  repeat="option.name as option in optionSets[prStDe.dataElement.optionSet.id].options | filter: $select.search | limitTo:maxOptionSize">
+                                      <span ng-bind-html="option.name | highlight: $select.search"></span>
+                                    </ui-select-choices>
+                                </ui-select>
+                            </div>
+                            <div ng-if="selectedProgram.dataEntryMethod && optionSets[prStDe.dataElement.optionSet.id].options.length < 7">
+                                <label>                                        
+                                    <input type="radio"                                    
                                         class="form-control"
                                         ng-class="getInputNotifcationClass(prStDe.dataElement.id,false, currentEvent)"
                                         name={{prStDe.dataElement.id}}
@@ -61,38 +51,65 @@
                                         ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
                                         ng-model="currentEvent[prStDe.dataElement.id]"
                                         ng-change="saveDatavalue(prStDe, innerForm.foo)" 
-                                        value={{option.name}}> {{option.name}}
+                                        value=""> {{'no_value' | translate}}<br>                                       
                                 </label><br>
-                            </span>
-                        </div> 
+                                <span ng-repeat="option in optionSets[prStDe.dataElement.optionSet.id].options">
+                                    <label>
+                                        <input type="radio"
+                                            class="form-control"
+                                            ng-class="getInputNotifcationClass(prStDe.dataElement.id,false, currentEvent)"
+                                            name={{prStDe.dataElement.id}}
+                                            ng-required={{prStDe.compulsory}} 
+                                            ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
+                                            ng-model="currentEvent[prStDe.dataElement.id]"
+                                            ng-change="saveDatavalue(prStDe, innerForm.foo)" 
+                                            value={{option.name}}> {{option.name}}
+                                    </label><br>
+                                </span>
+                            </div>
+                        </div>
+                        <div class="not-for-screen">
+                            <input type="text" class="form-control" value={{currentEvent[prStDe.dataElement.id]}}>
+                        </div>
                     </div>
                     <div ng-if="!prStDe.dataElement.optionSetValue" ng-switch="prStDe.dataElement.valueType">
                         <div ng-switch-when="NUMBER">
-                            <input type="number"                                   
-                                   number-type={{prStDe.dataElement.valueType}}
-                                   class="form-control"
-                                   ng-class="getInputNotifcationClass(prStDe.dataElement.id,false, currentEvent)"
-                                   ng-model="currentEvent[prStDe.dataElement.id]"                                    
-                                   d2-number-validator
-                                   ng-required={{prStDe.compulsory}}
-                                   ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
-                                   ng-blur="saveDatavalue(prStDe, innerForm.foo)" 
-                                   name="foo"/>
+                            <div class="hideInPrint">
+                                <input type="number"                                   
+                                    number-type={{prStDe.dataElement.valueType}}
+                                    class="form-control"
+                                    ng-class="getInputNotifcationClass(prStDe.dataElement.id,false, currentEvent)"
+                                    ng-model="currentEvent[prStDe.dataElement.id]"                                    
+                                    d2-number-validator
+                                    ng-required={{prStDe.compulsory}}
+                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
+                                    ng-blur="saveDatavalue(prStDe, innerForm.foo)" 
+                                    name="foo"/>
+                            </div>
+                            <div class="not-for-screen">
+                                <input type="text" class="form-control" value={{currentEvent[prStDe.dataElement.id]}}>
+                            </div>                            
                         </div>
                         <div ng-switch-when="INTEGER">
-                            <input type="number"                                   
-                                   number-type={{prStDe.dataElement.valueType}}
-                                   class="form-control"
-                                   ng-class="getInputNotifcationClass(prStDe.dataElement.id,false, currentEvent)"
-                                   ng-model="currentEvent[prStDe.dataElement.id]"                                    
-                                   d2-number-validator
-                                   ng-required={{prStDe.compulsory}}
-                                   ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
-                                   ng-blur="saveDatavalue(prStDe, innerForm.foo)" 
-                                   name="foo"/>
+                            <div class="hideInPrint">
+                                <input type="number"                                   
+                                    number-type={{prStDe.dataElement.valueType}}
+                                    class="form-control"
+                                    ng-class="getInputNotifcationClass(prStDe.dataElement.id,false, currentEvent)"
+                                    ng-model="currentEvent[prStDe.dataElement.id]"                                    
+                                    d2-number-validator
+                                    ng-required={{prStDe.compulsory}}
+                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
+                                    ng-blur="saveDatavalue(prStDe, innerForm.foo)" 
+                                    name="foo"/>
+                            </div>                            
+                            <div class="not-for-screen">
+                                <input type="text" class="form-control" value={{currentEvent[prStDe.dataElement.id]}}>
+                            </div>
                         </div>
                         <div ng-switch-when="INTEGER_POSITIVE">
-                            <input type="number"                                   
+                            <div class="hideInPrint">
+                                <input type="number"                                   
                                    number-type={{prStDe.dataElement.valueType}}
                                    class="form-control"
                                    ng-class='getInputNotifcationClass(prStDe.dataElement.id,false)'
@@ -102,9 +119,14 @@
                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
                                    ng-blur="saveDatavalue(prStDe, innerForm.foo)" 
                                    name="foo"/>
+                            </div>                            
+                            <div class="not-for-screen">
+                                <input type="text" class="form-control" value={{currentEvent[prStDe.dataElement.id]}}>
+                            </div>
                         </div>
                         <div ng-switch-when="INTEGER_NEGATIVE">
-                            <input type="number"                                   
+                            <div class="hideInPrint">
+                                <input type="number"                                   
                                    number-type={{prStDe.dataElement.valueType}}
                                    class="form-control"
                                    ng-class="getInputNotifcationClass(prStDe.dataElement.id,false, currentEvent)"
@@ -114,9 +136,14 @@
                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
                                    ng-blur="saveDatavalue(prStDe, innerForm.foo)" 
                                    name="foo"/>
+                            </div>                            
+                            <div class="not-for-screen">
+                                <input type="text" class="form-control" value={{currentEvent[prStDe.dataElement.id]}}>
+                            </div>
                         </div>
                         <div ng-switch-when="INTEGER_ZERO_OR_POSITIVE">
-                            <input type="number"                                   
+                            <div class="hideInPrint">
+                                <input type="number"                                   
                                    number-type={{prStDe.dataElement.valueType}}
                                    class="form-control"
                                    ng-class="getInputNotifcationClass(prStDe.dataElement.id,false, currentEvent)"
@@ -126,39 +153,60 @@
                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
                                    ng-blur="saveDatavalue(prStDe, innerForm.foo)" 
                                    name="foo"/>
+                            </div>                            
+                            <div class="not-for-screen">
+                                <input type="text" class="form-control" value={{currentEvent[prStDe.dataElement.id]}}>
+                            </div>
                         </div>                        
                         <div ng-switch-when="LONG_TEXT">
-                            <textarea rows="3"
-                                ng-class="getInputNotifcationClass(prStDe.dataElement.id,false, currentEvent)"
-                                class="form-control"
-                                ng-model="currentEvent[prStDe.dataElement.id]" 
-                                ng-required={{prStDe.compulsory}} 
-                                ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
-                                ng-blur="saveDatavalue(prStDe, innerForm.foo)" 
-                                name="foo">
-                            </textarea>
+                            <div class="hideInPrint">
+                                <textarea rows="3"
+                                    ng-class="getInputNotifcationClass(prStDe.dataElement.id,false, currentEvent)"
+                                    class="form-control"
+                                    ng-model="currentEvent[prStDe.dataElement.id]" 
+                                    ng-required={{prStDe.compulsory}} 
+                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
+                                    ng-blur="saveDatavalue(prStDe, innerForm.foo)" 
+                                    name="foo">
+                                </textarea>
+                            </div>                            
+                            <div class="not-for-screen">
+                                <textarea rows="3" class="form-control" value={{currentEvent[prStDe.dataElement.id]}}></textarea>
+                            </div>
                         </div>
                         <div ng-switch-when="TEXT">
-                            <input type="text"
+                            <div class="hideInPrint">
+                                <input type="text"
                                     ng-class="getInputNotifcationClass(prStDe.dataElement.id,false, currentEvent)"
                                     class="form-control"
                                     ng-model="currentEvent[prStDe.dataElement.id]" 
                                     ng-required={{prStDe.compulsory}} 
                                     ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
                                     ng-blur="saveDatavalue(prStDe, innerForm.foo)" 
-                                    name="foo"/>                            
+                                    name="foo"/>
+                            </div>                            
+                            <div class="not-for-screen">
+                                <input type="text" class="form-control" value={{currentEvent[prStDe.dataElement.id]}}>
+                            </div>
                         </div>
                         <div ng-switch-when="BOOLEAN">
-                            <dhis2-radio-button
-                                dh-required="prStDe.compulsory" 
-                                dh-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id] === true" 
-                                dh-value="currentEvent[prStDe.dataElement.id]" 
-                                dh-name="foo"
-                                dh-click="saveDataValueForRadio(prStDe, currentEvent, value)">                                                    
-                            </dhis2-radio-button>
+                            <div class="hideInPrint">
+                                <dhis2-radio-button
+                                    dh-required="prStDe.compulsory" 
+                                    dh-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id] === true" 
+                                    dh-value="currentEvent[prStDe.dataElement.id]" 
+                                    dh-name="foo"
+                                    dh-click="saveDataValueForRadio(prStDe, currentEvent, value)">                                                    
+                                </dhis2-radio-button>
+                            </div>                            
+                            <div class="not-for-screen">                                
+                                <label class="radio-inline"><input type="radio" ng-checked="{{currentEvent[prStDe.dataElement.id] === 'true'}}">{{'yes' | translate}}</label>
+                                <label class="radio-inline"><input type="radio" ng-checked="{{currentEvent[prStDe.dataElement.id] === 'false'}}">{{'no' | translate}}</label>
+                            </div>
                         </div>
                         <div ng-switch-when="DATE">
-                            <input type="text" 
+                            <div class="hideInPrint">
+                                <input type="text" 
                                    placeholder="{{dhis2CalendarFormat.keyDateFormat}}" 
                                    d2-date
                                    d2-date-validator
@@ -170,9 +218,14 @@
                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
                                    blur-or-change="saveDatavalue(prStDe, innerForm.foo)"
                                    name="foo"/>
+                            </div>                            
+                            <div class="not-for-screen">
+                                <input type="text" class="form-control" value={{currentEvent[prStDe.dataElement.id]}}>
+                            </div>
                         </div>
                         <div ng-switch-when="TRUE_ONLY">
-                            <input type="checkbox"     
+                            <div class="hideInPrint">
+                                <input type="checkbox"     
                                    class="form-control"
                                    ng-class="getInputNotifcationClass(prStDe.dataElement.id,false, currentEvent)"
                                    ng-model="currentEvent[prStDe.dataElement.id]"                                                               
@@ -180,40 +233,48 @@
                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
                                    ng-change="saveDatavalue(prStDe, innerForm.foo)" 
                                    name="foo"/>
-                        </div>
-                        
+                            </div>                            
+                            <div class="not-for-screen">
+                                <input type="text" class="form-control" ng-checked={{currentEvent[prStDe.dataElement.id]}}>
+                            </div>
+                        </div>                        
                         <div ng-switch-when="MULTI_SELECT_GROUP">
-                            <ui-select  ng-model="currentEvent[prStDe.dataElement.id].selections" 
-                                        id="multiSelectGroup"
-                                        ng-init="initMultiSelect(currentEvent)"
-                                        theme="select2" 
-                                        ng-required={{prStDe.compulsory}} 
-                                        ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed" 
-                                        name="foo" 
-                                        multiple
-                                        on-remove="saveMultiSelectState($item,currentEvent,prStDe,false)"
-                                        on-select="saveMultiSelectState($item,currentEvent,prStDe,true)"
-                                        style="width:100%; overflow:visible">
-                                <ui-select-match allow-clear="true" ng-class={{getInputNotifcationClass(prStDe.dataElement.id,false)}}  class="form-control-ui-select"  placeholder="{{'select_or_search' | translate}}" >{{$item.dataElement.formName ? $item.dataElement.formName : $item.dataElement.name }}</ui-select-match>
-                                <ui-select-choices repeat="prStDe.dataElement as prStDe in currentStage.multiSelectGroups[prStDe.dataElement.id].dataElements | filter: $select.search | limitTo:maxOptionSize">
-                                    <span ng-bind-html="prStDe.dataElement.formName ? prStDe.dataElement.formName : prStDe.dataElement.name | highlight: $select.search"></span>
-                                </ui-select-choices>
-                                <!--<ui-select-choices  repeat="option.nameo.name as option in optionsTest | filter: $select.search | limitTo:maxOptionSize">
-                                  <span ng-bind-html="option.nameo.name | highlight: $select.search"></span>
-                                </ui-select-choices>-->
-                            </ui-select>
-                        </div>
-                        
-                        
+                            <div class="hideInPrint">
+                                <ui-select  ng-model="currentEvent[prStDe.dataElement.id].selections" 
+                                            id="multiSelectGroup"
+                                            ng-init="initMultiSelect(currentEvent)"
+                                            theme="select2" 
+                                            ng-required={{prStDe.compulsory}} 
+                                            ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed" 
+                                            name="foo" 
+                                            multiple
+                                            on-remove="saveMultiSelectState($item,currentEvent,prStDe,false)"
+                                            on-select="saveMultiSelectState($item,currentEvent,prStDe,true)"
+                                            style="width:100%; overflow:visible">
+                                    <ui-select-match allow-clear="true" ng-class={{getInputNotifcationClass(prStDe.dataElement.id,false)}}  class="form-control-ui-select"  placeholder="{{'select_or_search' | translate}}" >{{$item.dataElement.formName ? $item.dataElement.formName : $item.dataElement.name }}</ui-select-match>
+                                    <ui-select-choices repeat="prStDe.dataElement as prStDe in currentStage.multiSelectGroups[prStDe.dataElement.id].dataElements | filter: $select.search | limitTo:maxOptionSize">
+                                        <span ng-bind-html="prStDe.dataElement.formName ? prStDe.dataElement.formName : prStDe.dataElement.name | highlight: $select.search"></span>
+                                    </ui-select-choices>
+                                </ui-select>
+                            </div>                           
+                            <div class="not-for-screen">
+                                <input type="text" class="form-control" value={{currentEvent[prStDe.dataElement.id]}}>
+                            </div>
+                        </div>                        
                         <div ng-switch-default>
-                            <input type="text" 
-                                class="form-control"
-                                ng-class="getInputNotifcationClass(prStDe.dataElement.id,false, currentEvent)"
-                                ng-model="currentEvent[prStDe.dataElement.id]" 
-                                ng-required={{prStDe.compulsory}} 
-                                ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
-                                ng-blur="saveDatavalue(prStDe, innerForm.foo)" 
-                                name="foo"/> 
+                            <div class="hideInPrint">
+                                <input type="text" 
+                                    class="form-control"
+                                    ng-class="getInputNotifcationClass(prStDe.dataElement.id,false, currentEvent)"
+                                    ng-model="currentEvent[prStDe.dataElement.id]" 
+                                    ng-required={{prStDe.compulsory}} 
+                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][prStDe.dataElement.id]" 
+                                    ng-blur="saveDatavalue(prStDe, innerForm.foo)" 
+                                    name="foo"/>
+                            </div>                            
+                            <div class="not-for-screen">
+                                <input type="text" class="form-control" value={{currentEvent[prStDe.dataElement.id]}}>
+                            </div>
                         </div>
                     </div>
                     
@@ -240,7 +301,6 @@
             </td>
         </tr>
     </table>
-    
     <div ng-if='currentEvent && currentStage.programStageSections.length'>
         <accordion close-others='false'>
             <!-- The inline style was needed to override overflow:hidden in the css. Can possibly be replaced with a CSS update. --> 
@@ -250,7 +310,7 @@
                     <div class="alert alert-warning">{{'section'| translate}} {{section.name}} {{'has_no_dataelements'| translate}}</div>
                 </div> 
 
-                <table class="dhis2-list-table-striped default-form-table" ng-if="section.programStageDataElements && section.programStageDataElements.length > 0">                    
+                <table class="dhis2-list-table-striped dhis2-table-hover" ng-if="section.programStageDataElements && section.programStageDataElements.length > 0">                    
                     <thead>
                         <tr>
                             <th ng-bind="dataElementLabel">
@@ -265,61 +325,69 @@
                         <tr ng-repeat="de in section.programStageDataElements" ng-if="!isHidden(de.dataElement.id)">
                             <td>
                                 <span ng-bind="prStDes[de.dataElement.id].dataElement.formName ? prStDes[de.dataElement.id].dataElement.formName : prStDes[de.dataElement.id].dataElement.name"></span>                                
-                                <a ng-if="prStDes[de.dataElement.id].dataElement.description" Title="{{prStDes[de.dataElement.id].dataElement.description}}" ng-init="showHelpText[de.dataElement.id] = false;" ng-click="showHelpText[de.dataElement.id] = !showHelpText[de.dataElement.id]">
-                                    <span class="glyphicon glyphicon-info-sign" ></span>
-                                    <span ng-show="showHelpText[de.dataElement.id]" ><br>{{prStDes[de.dataElement.id].dataElement.description}}</span>
-                                </a>   
-                                <span ng-if="otherValuesLists[de.dataElement.id]" ng-repeat="altValue in otherValuesLists[de.dataElement.id]">
-                                     <span class="label label-default">{{altValue | translate}}</span>
-                                </span>
+                                <span class="hideInPrint">
+                                    <a ng-if="prStDes[de.dataElement.id].dataElement.description" Title="{{prStDes[de.dataElement.id].dataElement.description}}" ng-init="showHelpText[de.dataElement.id] = false;" ng-click="showHelpText[de.dataElement.id] = !showHelpText[de.dataElement.id]">
+                                        <span class="glyphicon glyphicon-info-sign" ></span>
+                                        <span ng-show="showHelpText[de.dataElement.id]" ><br>{{prStDes[de.dataElement.id].dataElement.description}}</span>
+                                    </a>   
+                                    <span ng-if="otherValuesLists[de.dataElement.id]" ng-repeat="altValue in otherValuesLists[de.dataElement.id]">
+                                        <span class="label label-default">{{altValue | translate}}</span>
+                                    </span>
+                                </span>                                
                             </td>
                             <td>
                                 <ng-form name="innerForm">
-                                    <div ng-if="prStDes[de.dataElement.id].dataElement.optionSetValue">                                        
-                                        <div ng-if="!selectedProgram.dataEntryMethod || optionSets[prStDes[de.dataElement.id].dataElement.optionSet.id].options.length >= 7">
-                                            <ui-select  ng-model="currentEvent[prStDes[de.dataElement.id].dataElement.id]" 
-                                                        theme="select2" 
-                                                        ng-required={{prStDes[de.dataElement.id].compulsory}} 
-                                                        ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id]" 
-                                                        name="foo" 
-                                                        on-select="saveDatavalue(prStDes[de.dataElement.id], innerForm.foo)"  
-                                                        style="width:100%;">
-                                                <ui-select-match allow-clear="true" ng-class="getInputNotifcationClass(prStDes[de.dataElement.id].dataElement.id,true, currentEvent)"  class="form-control-ui-select"  placeholder="{{'select_or_search' | translate}}">{{$select.selected.name  || $select.selected}}</ui-select-match>
-                                                <ui-select-choices  repeat="option.name as option in optionSets[prStDes[de.dataElement.id].dataElement.optionSet.id].options | filter: $select.search | limitTo:maxOptionSize">
-                                                  <span ng-bind-html="option.name | highlight: $select.search"></span>
-                                                </ui-select-choices>
-                                            </ui-select>
-                                        </div>
-                                        <div ng-if="selectedProgram.dataEntryMethod && optionSets[prStDes[de.dataElement.id].dataElement.optionSet.id].options.length < 7">
-                                            <label>                                        
-                                                <input type="radio"
-                                                    class="form-control"
-                                                    ng-class="getInputNotifcationClass(prStDes[de.dataElement.id].dataElement.id,false, currentEvent)"
-                                                    name={{currentEvent[prStDes[de.dataElement.id].dataElement.id]}}
-                                                    ng-required={{prStDes[de.dataElement.id].compulsory}} 
-                                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id]" 
-                                                    ng-model="currentEvent[prStDes[de.dataElement.id].dataElement.id]"
-                                                    ng-change="saveDatavalue(prStDes[de.dataElement.id])" 
-                                                    value=""> {{'no_value' | translate}}<br>                                       
-                                            </label><br>
-                                            <span ng-repeat="option in optionSets[prStDes[de.dataElement.id].dataElement.optionSet.id].options">
-                                                <label>
+                                    <div ng-if="prStDes[de.dataElement.id].dataElement.optionSetValue">
+                                        <div class="hideInPrint">                                            
+                                            <div ng-if="!selectedProgram.dataEntryMethod || optionSets[prStDes[de.dataElement.id].dataElement.optionSet.id].options.length >= 7">
+                                                <ui-select  ng-model="currentEvent[prStDes[de.dataElement.id].dataElement.id]" 
+                                                            theme="select2" 
+                                                            ng-required={{prStDes[de.dataElement.id].compulsory}} 
+                                                            ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id]" 
+                                                            name="foo" 
+                                                            on-select="saveDatavalue(prStDes[de.dataElement.id], innerForm.foo)"  
+                                                            style="width:100%;">
+                                                    <ui-select-match allow-clear="true" ng-class="getInputNotifcationClass(prStDes[de.dataElement.id].dataElement.id,true, currentEvent)"  class="form-control-ui-select"  placeholder="{{'select_or_search' | translate}}">{{$select.selected.name  || $select.selected}}</ui-select-match>
+                                                    <ui-select-choices  repeat="option.name as option in optionSets[prStDes[de.dataElement.id].dataElement.optionSet.id].options | filter: $select.search | limitTo:maxOptionSize">
+                                                      <span ng-bind-html="option.name | highlight: $select.search"></span>
+                                                    </ui-select-choices>
+                                                </ui-select>
+                                            </div>
+                                            <div ng-if="selectedProgram.dataEntryMethod && optionSets[prStDes[de.dataElement.id].dataElement.optionSet.id].options.length < 7">
+                                                <label>                                        
                                                     <input type="radio"
-                                                        class="form-control"   
+                                                        class="form-control"
                                                         ng-class="getInputNotifcationClass(prStDes[de.dataElement.id].dataElement.id,false, currentEvent)"
                                                         name={{currentEvent[prStDes[de.dataElement.id].dataElement.id]}}
                                                         ng-required={{prStDes[de.dataElement.id].compulsory}} 
                                                         ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id]" 
                                                         ng-model="currentEvent[prStDes[de.dataElement.id].dataElement.id]"
                                                         ng-change="saveDatavalue(prStDes[de.dataElement.id])" 
-                                                        value={{option.name}}> {{option.name}}
+                                                        value=""> {{'no_value' | translate}}<br>                                       
                                                 </label><br>
-                                            </span>
-                                        </div> 
+                                                <span ng-repeat="option in optionSets[prStDes[de.dataElement.id].dataElement.optionSet.id].options">
+                                                    <label>
+                                                        <input type="radio"
+                                                            class="form-control"   
+                                                            ng-class="getInputNotifcationClass(prStDes[de.dataElement.id].dataElement.id,false, currentEvent)"
+                                                            name={{currentEvent[prStDes[de.dataElement.id].dataElement.id]}}
+                                                            ng-required={{prStDes[de.dataElement.id].compulsory}} 
+                                                            ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id]" 
+                                                            ng-model="currentEvent[prStDes[de.dataElement.id].dataElement.id]"
+                                                            ng-change="saveDatavalue(prStDes[de.dataElement.id])" 
+                                                            value={{option.name}}> {{option.name}}
+                                                    </label><br>
+                                                </span>
+                                            </div> 
+                                        </div>
+                                        <div class="not-for-screen">
+                                            <input type="text" class="form-control" value={{currentEvent[prStDes[de.dataElement.id].dataElement.id]}}>
+                                        </div>
                                     </div>
                                     <div ng-if="!prStDes[de.dataElement.id].dataElement.optionSetValue" ng-switch="prStDes[de.dataElement.id].dataElement.valueType">
                                         <div ng-switch-when="NUMBER">
-                                            <input type="number"
+                                            <div class="hideInPrint">
+                                                <input type="number"
                                                    d2-number-validator
                                                    number-type={{prStDes[de.dataElement.id].dataElement.valueType}}
                                                    class="form-control"
@@ -329,9 +397,14 @@
                                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id]" 
                                                    ng-blur="saveDatavalue(prStDes[de.dataElement.id], innerForm.foo)" 
                                                    name="foo"/>
+                                            </div>                                            
+                                            <div class="not-for-screen">
+                                                <input type="text" class="form-control" value={{currentEvent[prStDes[de.dataElement.id].dataElement.id]}}>
+                                            </div>                                            
                                         </div>
                                         <div ng-switch-when="INTEGER">
-                                            <input type="number"
+                                            <div class="hideInPrint">
+                                                <input type="number"
                                                    d2-number-validator
                                                    number-type={{prStDes[de.dataElement.id].dataElement.valueType}}
                                                    class="form-control"
@@ -341,9 +414,14 @@
                                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id]" 
                                                    ng-blur="saveDatavalue(prStDes[de.dataElement.id], innerForm.foo)" 
                                                    name="foo"/>
+                                            </div>                                            
+                                            <div class="not-for-screen">
+                                                <input type="text" class="form-control" value={{currentEvent[prStDes[de.dataElement.id].dataElement.id]}}>
+                                            </div>
                                         </div>
                                         <div ng-switch-when="INTEGER_POSITIVE">
-                                            <input type="number"
+                                            <div class="hideInPrint">
+                                                <input type="number"
                                                    d2-number-validator
                                                    number-type={{prStDes[de.dataElement.id].dataElement.valueType}}
                                                    class="form-control"
@@ -353,9 +431,14 @@
                                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id]" 
                                                    ng-blur="saveDatavalue(prStDes[de.dataElement.id], innerForm.foo)" 
                                                    name="foo"/>
+                                            </div>                                            
+                                            <div class="not-for-screen">
+                                                <input type="text" class="form-control" value={{currentEvent[prStDes[de.dataElement.id].dataElement.id]}}>
+                                            </div>
                                         </div>
                                         <div ng-switch-when="INTEGER_NEGATIVE">
-                                            <input type="number"
+                                            <div class="hideInPrint">
+                                                <input type="number"
                                                    d2-number-validator
                                                    number-type={{prStDes[de.dataElement.id].dataElement.valueType}}
                                                    class="form-control"
@@ -365,9 +448,14 @@
                                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id]" 
                                                    ng-blur="saveDatavalue(prStDes[de.dataElement.id], innerForm.foo)" 
                                                    name="foo"/>
+                                            </div>                                            
+                                            <div class="not-for-screen">
+                                                <input type="text" class="form-control" value={{currentEvent[prStDes[de.dataElement.id].dataElement.id]}}>
+                                            </div>
                                         </div>
                                         <div ng-switch-when="INTEGER_ZERO_OR_POSITIVE">
-                                            <input type="number"
+                                            <div class="hideInPrint">
+                                                <input type="number"
                                                    d2-number-validator
                                                    number-type={{prStDes[de.dataElement.id].dataElement.valueType}}
                                                    class="form-control"
@@ -377,20 +465,30 @@
                                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id]" 
                                                    ng-blur="saveDatavalue(prStDes[de.dataElement.id], innerForm.foo)" 
                                                    name="foo"/>
+                                            </div>                                            
+                                            <div class="not-for-screen">
+                                                <input type="text" class="form-control" value={{currentEvent[prStDes[de.dataElement.id].dataElement.id]}}>
+                                            </div>
                                         </div>
 
                                         <div ng-switch-when="BOOLEAN">                                          
-                                            <dhis2-radio-button
-                                                dh-required="prStDes[de.dataElement.id].compulsory" 
-                                                dh-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id] === true" 
-                                                dh-value="currentEvent[prStDes[de.dataElement.id].dataElement.id]" 
-                                                dh-name="foo"
-                                                dh-click="saveDataValueForRadio(prStDes[de.dataElement.id], currentEvent, value)">                                                    
-                                            </dhis2-radio-button>
-                                            
+                                            <div class="hideInPrint">
+                                                <dhis2-radio-button
+                                                    dh-required="prStDes[de.dataElement.id].compulsory" 
+                                                    dh-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id] === true" 
+                                                    dh-value="currentEvent[prStDes[de.dataElement.id].dataElement.id]" 
+                                                    dh-name="foo"
+                                                    dh-click="saveDataValueForRadio(prStDes[de.dataElement.id], currentEvent, value)">                                                    
+                                                </dhis2-radio-button>
+                                            </div>                                            
+                                            <div class="not-for-screen">                                                
+                                                <label class="radio-inline"><input type="radio" ng-checked="{{currentEvent[prStDes[de.dataElement.id].dataElement.id] === 'true'}}">{{'yes' | translate}}</label>
+                                                <label class="radio-inline"><input type="radio" ng-checked="{{currentEvent[prStDes[de.dataElement.id].dataElement.id] === 'false'}}">{{'no' | translate}}</label>
+                                            </div>
                                         </div>
                                         <div ng-switch-when="DATE">
-                                            <input type="text" 
+                                            <div class="hideInPrint">
+                                                <input type="text" 
                                                    placeholder="{{dhis2CalendarFormat.keyDateFormat}}" 
                                                    d2-date
                                                    d2-date-validator
@@ -402,9 +500,14 @@
                                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id]" 
                                                    blur-or-change="saveDatavalue(prStDes[de.dataElement.id])"
                                                    name="foo"/>
+                                            </div>                                            
+                                            <div class="not-for-screen">
+                                                <input type="text" class="form-control" value={{currentEvent[prStDes[de.dataElement.id].dataElement.id]}}>
+                                            </div>
                                         </div>
                                         <div ng-switch-when="TRUE_ONLY">
-                                            <input type="checkbox"          
+                                            <div class="hideInPrint">
+                                                <input type="checkbox"          
                                                    class="form-control"
                                                    ng-class="getInputNotifcationClass(prStDes[de.dataElement.id].dataElement.id,false, currentEvent)"
                                                    ng-model="currentEvent[prStDes[de.dataElement.id].dataElement.id]"                                                               
@@ -412,39 +515,56 @@
                                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id]" 
                                                    ng-change="saveDatavalue(prStDes[de.dataElement.id], innerForm.foo)" 
                                                    name="foo"/>
+                                            </div>                                            
+                                            <div class="not-for-screen">
+                                                <input type="checkbox" class="form-control" ng-checked={{currentEvent[prStDes[de.dataElement.id].dataElement.id]}}>
+                                            </div>
                                         </div>
                                         <div ng-switch-when="LONG_TEXT">
-                                            <textarea rows="3" 
+                                            <div class="hideInPrint">
+                                                <textarea rows="3" 
                                                     class="form-control"
                                                     ng-class="getInputNotifcationClass(prStDes[de.dataElement.id].dataElement.id,false, currentEvent)"
                                                     ng-model="currentEvent[prStDes[de.dataElement.id].dataElement.id]"                                                    
                                                     ng-required={{prStDes[de.dataElement.id].compulsory}}
                                                     ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id]" 
                                                     ng-blur="saveDatavalue(prStDes[de.dataElement.id], innerForm.foo)"
-                                                    name="foo">
-                                            </textarea>
+                                                    name="foo"></textarea>
+                                            </div>
+                                            <div class="not-for-screen">
+                                                <textarea rows="3" class="form-control" value={{currentEvent[prStDes[de.dataElement.id].dataElement.id]}}></textarea>
+                                            </div>
                                         </div>
                                         <div ng-switch-when="TEXT">
-                                            <input type="text" 
+                                            <div class="hideInPrint">
+                                                <input type="text" 
                                                     class="form-control"   
                                                     ng-class="getInputNotifcationClass(prStDes[de.dataElement.id].dataElement.id,false, currentEvent)"
                                                     ng-model="currentEvent[prStDes[de.dataElement.id].dataElement.id]"                                                    
                                                     ng-required={{prStDes[de.dataElement.id].compulsory}}
                                                     ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id]" 
                                                     ng-blur="saveDatavalue(prStDes[de.dataElement.id], innerForm.foo)"
-                                                    name="foo"/>                                              
+                                                    name="foo"/>
+                                            </div>                                            
+                                            <div class="not-for-screen">
+                                                <input type="text" class="form-control" value={{currentEvent[prStDes[de.dataElement.id].dataElement.id]}}>
+                                            </div>
                                         </div>                                        
                                         <div ng-switch-default>
-                                            <input type="text" 
-                                                class="form-control"
-                                                ng-class="getInputNotifcationClass(prStDes[de.dataElement.id].dataElement.id,false, currentEvent)"
-                                                ng-model="currentEvent[prStDes[de.dataElement.id].dataElement.id]" 
-                                                ng-required={{prStDes[de.dataElement.id].compulsory}} 
-                                                ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id]" 
-                                                ng-blur="saveDatavalue(prStDes[de.dataElement.id])" 
-                                                name="foo"/>
-                                        </div>
-                                        
+                                            <div class="hideInPrint">
+                                                <input type="text" 
+                                                    class="form-control"
+                                                    ng-class="getInputNotifcationClass(prStDes[de.dataElement.id].dataElement.id,false, currentEvent)"
+                                                    ng-model="currentEvent[prStDes[de.dataElement.id].dataElement.id]" 
+                                                    ng-required={{prStDes[de.dataElement.id].compulsory}} 
+                                                    ng-disabled="selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed || assignedFields[currentEvent.event][de.dataElement.id]" 
+                                                    ng-blur="saveDatavalue(prStDes[de.dataElement.id])" 
+                                                    name="foo"/>
+                                            </div>                                            
+                                            <div class="not-for-screen">
+                                                <input type="text" class="form-control" value={{currentEvent[prStDes[de.dataElement.id].dataElement.id]}}>
+                                            </div>
+                                        </div>                                        
                                         <div ng-messages="innerForm.foo.$error" ng-if="interacted(innerForm.foo, outerForm)" class="required" ng-messages-include="../dhis-web-commons/angular-forms/error-messages.html">                                         
                                         </div>                                        
                                         <div class="alert alert-warning alert-dismissible" role="alert" ng-if="warningMessages[currentEvent.event][de.dataElement.id]">

=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/event-details.html'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/event-details.html	2015-12-17 16:15:10 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/event-details.html	2015-12-28 14:53:48 +0000
@@ -5,7 +5,7 @@
         {{currentEvent.excecutionDateLabel}}
         <input type="text"
                placeholder="{{dhis2CalendarFormat.keyDateFormat}}"
-               class="form-control" 
+               class="form-control hideInPrint" 
                ng-class="{'input-success': eventDateSaved}"
                d2-date 
                max-date="0"
@@ -14,6 +14,10 @@
                ng-disabled="currentEvent.status === 'SKIPPED' || selectedEnrollment.status !== 'ACTIVE' || currentEvent.editingNotAllowed"    
                ng-required="true"
                blur-or-change="saveEventDate()"/>
+        <input type="text"
+               class="form-control not-for-screen" 
+               ng-class="{'input-success': eventDateSaved}"               
+               value={{currentEvent.eventDate}}>
         <span ng-if="invalidDate === currentEvent.event" class="error">{{'date_required'| translate}}</span>
     </div>
     <div ng-if="!currentStage.hideDueDate || !currentEvent.eventDate && currentEvent.status !== 'SKIPPED'"  class="col-md-6">

=== added file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/main-dataentry-form.html'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/main-dataentry-form.html	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/main-dataentry-form.html	2015-12-28 14:53:48 +0000
@@ -0,0 +1,17 @@
+<form name="outerForm" novalidate>
+    <div ng-if="currentEvent">
+        <div ng-include="'components/dataentry/event-details.html'"></div>
+        <!-- data entry form begins -->
+        <div ng-if="currentEvent.eventDate">
+            <div class="clear vertical-spacing" ng-if="displayCustomForm === 'CUSTOM'" ng-include="'../dhis-web-commons/angular-forms/custom-form.html'"></div>
+            <div class="clear vertical-spacing" ng-if="displayCustomForm === 'DEFAULT'" ng-include="'components/dataentry/default-form.html'"></div>
+        </div>
+        <!-- the table form is insensitive to the event date being present. In this situation the eventdate is set inside the table form -->
+        <div class="clear vertical-spacing" ng-if="displayCustomForm === 'TABLE'" ng-include="'components/dataentry/table-entry-form.html'"></div>
+        <!-- data entry form ends -->
+
+        <!-- data entry/event buttons begins -->
+        <div ng-include="'components/dataentry/dataentry-buttons.html'"></div>
+        <!-- data entry/event buttons ends -->
+    </div>
+</form>
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/index.html'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/index.html	2015-12-23 08:56:16 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/index.html	2015-12-28 14:53:48 +0000
@@ -124,7 +124,6 @@
         <link type="text/css" rel="stylesheet" href="../dhis-web-commons/javascripts/angular/plugins/select2.css">
 
         <link type="text/css" rel="stylesheet" href="styles/style.css">
-        <link type="text/css" rel="stylesheet" media="screen" href="styles/screen.css">
         <link type="text/css" rel="stylesheet" media="print" href="styles/print.css">
         <script type="text/javascript" src="../main.js"></script>
 

=== removed file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/styles/bootstrap.min.css'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/styles/bootstrap.min.css	2015-12-16 13:52:38 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/styles/bootstrap.min.css	1970-01-01 00:00:00 +0000
@@ -1,14 +0,0 @@
-/*!
- * Bootstrap v3.3.5 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-
-/*!
- * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=04c66795bd1a555a8572)
- * Config saved to config.json and https://gist.github.com/04c66795bd1a555a8572
- *//*!
- * Bootstrap v3.3.6 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:34px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:46px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/styles/print.css'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/styles/print.css	2015-12-24 12:02:01 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/styles/print.css	2015-12-28 14:53:48 +0000
@@ -24,93 +24,14 @@
     display: none !important;
 }
 
-.dhis2-table-striped-border {
-  width: 100%;
-  border-collapse: collapse;
-  cursor: pointer;
-  table-layout: fixed;
-}
-
-.dhis2-table-striped-border tr th {
-  border: 1px solid #cad5e5;
-}
-
-.dhis2-table-striped-border tr td {
-  border: 1px solid #cad5e5;
-}
-
-.dhis2-table-striped-border > tbody > tr:nth-child(odd)> td, .dhis2-table-striped > tbody > tr:nth-child(odd)> th {
-  background-color: #ebf0f6
-}
-
-.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;
-}
-
-.dhis2-table-striped > tbody > tr:nth-child(odd)> td, .dhis2-table-striped > tbody > tr:nth-child(odd)> th {
-  background-color: #ebf0f6
-}
-
-.dhis2-list-table-striped {
-  width: 100%;
-  padding: 5px 10px;
-  table-layout: fixed;
-}
-
-.dhis2-list-table-striped>thead>tr,
-.dhis2-list-table-striped>tbody>tr,
-.dhis2-list-table-striped>tfoot>tr,
-.dhis2-list-table-striped>thead>tr,
-.dhis2-list-table-striped>tbody>tr,
-.dhis2-list-table-striped>tfoot>tr {
-  border: none;
-}
-
-.dhis2-list-table-striped > tbody > tr:nth-child(odd)> td, .dhis2-table-striped > tbody > tr:nth-child(odd)> th {
-  background-color: #ebf0f6
-}
-
-table.table-striped tr.selected > td {
-  background-color: #d9edf7;;
-}
-
-table.table-striped tr td.optionset {
-  padding-left: 0px;
-  padding-right: 0px;
-}
-
-.vertical-spacing{
-  margin-top: 50px;
-  margin-bottom: 50px;
-}
-
-
-.align-center {
-  text-align: center;
-}
-
-.alert {
-  padding: 15px;
-  margin-bottom: 20px;
-  border: 1px solid transparent;
-  border-radius: 4px
-}
-
-.alert-warning {
-  color: #c09853;
-  background-color: #fcf8e3;
-  border-color: #faebcc
-}
-
-.section {
-  font-size: 20px;
-}
-
-.attritbute-name {
-  width:50%;
+span.select2-chosen.ng-binding.ng-hide {
+    display: none !important;
+}
+
+.select2-arrow, .ui-select-toggle {
+    display: none !important;
+}
+
+.dhis2-list-table-striped > thead > tr > th, .dhis2-list-table-striped > tbody > tr > th, .dhis2-list-table-striped > tfoot > tr > th, .dhis2-list-table-striped > thead > tr > td, .dhis2-list-table-striped > tbody > tr > td, .dhis2-list-table-striped > tfoot > tr > td {
+    border: 1px solid #ddd
 }
\ No newline at end of file

=== removed file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/styles/screen.css'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/styles/screen.css	2015-03-06 10:08:41 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/styles/screen.css	1970-01-01 00:00:00 +0000
@@ -1,11 +0,0 @@
-html, body { 
-    height:100%;
-    margin: 0;
-    padding: 0;
-    background-color: white;
-    font-size: 10pt;
-}
-
-.not-for-screen {
-    display: none;
-}
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/styles/style.css'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/styles/style.css	2015-12-28 12:37:51 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/styles/style.css	2015-12-28 14:53:48 +0000
@@ -11,14 +11,16 @@
 }
 
 @media print {
-    .not-for-screen {
-        display: block;
-    }
+    
     body, html {
         width: 100% !important;
         height: auto !important;
     }
-    
+
+    .not-for-screen {
+        display: block;
+    }
+
     ::-webkit-input-placeholder { /* WebKit browsers */
         color: white !important;
     }
@@ -32,15 +34,15 @@
         color: white !important;
     }
 
-    .select2-chosen {
-        color: white !important;
-    }
-
     #header, #leftBar, .hideInPrint {
         display: none !important;
-    }    
+    }
+
+    span.select2-chosen.ng-binding.ng-hide {
+        display: none !important;
+    }
     
-    .select2-arrow, .ui-select-toggle {
+    .select2-arrow, .ui-select-toggle, .select2-chosen {
         display: none !important;
     }
 }
@@ -225,12 +227,7 @@
 div.ui-select-dropdown.select2-drop.select2-with-searchbox.select2-drop-active{
     min-width: 200px;
 }
-ul.select2-choices {
-    /*overflow: visible !important;*/
-}
-span.form-control-ui-select.ui-select-match {
-    padding:1px;
-}
+
 .container-heading {
     color: white;
 }
@@ -256,8 +253,6 @@
     border-color: #aaa29a;
 }
 
-
-
 .stick {
     font-weight: bolder;
     color: #000000;

=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.angular.services.js'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.angular.services.js	2015-12-28 12:24:24 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.angular.services.js	2015-12-28 14:53:48 +0000
@@ -362,7 +362,7 @@
                                 attributes['name'] = fieldId;
                             }
 
-                            newInputField = '<input type="text" ' +
+                            newInputField = '<span class="hideInPrint"><input type="text" ' +
                                     this.getAttributesAsString(attributes) +
                                     ' ng-model="currentEvent.' + fieldId + '"' +
                                     ' input-field-id="' + fieldId + '"' +
@@ -372,7 +372,7 @@
                                     ' placeholder="{{dhis2CalendarFormat.keyDateFormat}}" ' +
                                     ' ng-class="getInputNotifcationClass(prStDes.' + fieldId + '.dataElement.id,true)"' +
                                     ' blur-or-change="saveDatavalue(prStDes.' + fieldId + ')"' +
-                                    ' ng-required="{{true}}">';
+                                    ' ng-required="{{true}}"></span><span class="not-for-screen"><input type="text" value={{currentEvent.' + fieldId + '}}></span>';
                         }
                         else {
                             fieldId = attributes['id'].substring(4, attributes['id'].length - 1).split("-")[1];
@@ -395,13 +395,13 @@
                                 //check if dataelement has optionset								
                                 if (prStDe.dataElement.optionSetValue) {
                                     var optionSetId = prStDe.dataElement.optionSet.id;                 
-                                    newInputField = '<ui-select style="width:100%;" theme="select2" ' + commonInputFieldProperty + ' on-select="saveDatavalue(prStDes.' + fieldId + ', outerForm.' + fieldId + ')" >' +
+                                    newInputField = '<span class="hideInPrint"><ui-select style="width:100%;" theme="select2" ' + commonInputFieldProperty + ' on-select="saveDatavalue(prStDes.' + fieldId + ', outerForm.' + fieldId + ')" >' +
                                             '<ui-select-match style="width:100%;" ng-class="getInputNotifcationClass(prStDes.' + fieldId + '.dataElement.id, true)" allow-clear="true" placeholder="' + $translate.instant('select_or_search') + '">{{$select.selected.name || $select.selected}}</ui-select-match>' +
                                             '<ui-select-choices ' +
                                             ' repeat="option.name as option in optionSets.' + optionSetId + '.options | filter: $select.search | limitTo:maxOptionSize">' +
                                             '<span ng-bind-html="option.name | highlight: $select.search"></span>' +
                                             '</ui-select-choices>' +
-                                            '</ui-select>';
+                                            '</ui-select></span><span class="not-for-screen"><input type="text" value={{currentEvent.' + fieldId + '}}></span>';
                                 }
                                 else {
                                     //check data element type and generate corresponding angular input field
@@ -410,46 +410,48 @@
                                     		prStDe.dataElement.valueType === "INTEGER_POSITIVE" ||
                                     		prStDe.dataElement.valueType === "INTEGER_NEGATIVE" ||
                                     		prStDe.dataElement.valueType === "INTEGER_ZERO_OR_POSITIVE") {
-                                        newInputField = '<input type="number" ' +
+                                        newInputField = '<span class="hideInPrint"><input type="number" ' +
                                                 ' d2-number-validator ' +
                                                 ' ng-class="{{getInputNotifcationClass(prStDes.' + fieldId + '.dataElement.id, true)}}" ' +
                                                 ' number-type="' + prStDe.dataElement.valueType + '" ' +
                                                 ' ng-blur="saveDatavalue(prStDes.' + fieldId + ', outerForm.' + fieldId + ')"' +
-                                                commonInputFieldProperty + ' >';
+                                                commonInputFieldProperty + '></span><span class="not-for-screen"><input type="text" value={{currentEvent.' + fieldId + '}}></span>';
                                     }
                                     else if (prStDe.dataElement.valueType === "BOOLEAN") {                                    	
-                                    	newInputField = '<label class="radio-inline"><input type="radio" ng-change="saveDatavalue()" ' + commonInputFieldProperty + ' value="">{{\'no_value\'| translate}}</label>' + 
-                                    					'<label class="radio-inline"><input type="radio" ng-change="saveDatavalue()" ' + commonInputFieldProperty + ' value="true">{{\'yes\'| translate}}</label>' +
-                                    					'<label class="radio-inline"><input type="radio" ng-change="saveDatavalue()" ' + commonInputFieldProperty + ' value="false">{{\'no\'| translate}}</label>';                                   					
+                                    	newInputField = '<span class="hideInPrint"><label class="radio-inline"><input type="radio" ng-change="saveDatavalue()" ' + commonInputFieldProperty + ' value="">{{\'no_value\'| translate}}</label>' + 
+                                    					'<label class="radio-inline"><input type="radio" ng-change="saveDatavalue(prStDes.' + fieldId + ', outerForm.' + fieldId + ')" ' + commonInputFieldProperty + ' value="true">{{\'yes\'| translate}}</label>' +
+                                    					'<label class="radio-inline"><input type="radio" ng-change="saveDatavalue(prStDes.' + fieldId + ', outerForm.' + fieldId + ')" ' + commonInputFieldProperty + ' value="false">{{\'no\'| translate}}</label></span>' +
+                                    					'<span class="not-for-screen"><label class="radio-inline"><input type="radio" ng-checked="{{\'true\' === currentEvent.' + fieldId + '}}">{{\'yes\'| translate}}</label>' +
+                                    					'<label class="radio-inline"><input type="radio" ng-checked="{{\'false\' === currentEvent.' + fieldId + '}}">{{\'no\'| translate}}</label></span>';                                   					
                                     }
                                     else if (prStDe.dataElement.valueType === "DATE") {
                                         var maxDate = prStDe.allowFutureDate ? '' : 0;
-                                        newInputField = '<input type="text" ' +
+                                        newInputField = '<span class="hideInPrint"><input type="text" ' +
                                                 ' placeholder="{{dhis2CalendarFormat.keyDateFormat}}" ' +
                                                 ' ng-class="{{getInputNotifcationClass(prStDes.' + fieldId + '.dataElement.id, true)}}" ' +
                                                 ' d2-date ' +
                                                 ' d2-date-validator ' +
                                                 ' max-date="' + maxDate + '"' +
                                                 ' blur-or-change="saveDatavalue(prStDes.' + fieldId + ', outerForm.' + fieldId + ')"' +
-                                                commonInputFieldProperty + ' >';
+                                                commonInputFieldProperty + ' ></span><span class="not-for-screen"><input type="text" value={{currentEvent.' + fieldId + '}}></span>';
                                     }
                                     else if (prStDe.dataElement.valueType === "TRUE_ONLY") {
-                                        newInputField = '<input type="checkbox" ' +
+                                        newInputField = '<span class="hideInPrint"><input type="checkbox" ' +
                                                 ' ng-class="{{getInputNotifcationClass(prStDes.' + fieldId + '.dataElement.id, true)}}" ' +
                                                 ' ng-change="saveDatavalue(prStDes.' + fieldId + ', outerForm.' + fieldId + ')"' +
-                                                commonInputFieldProperty + ' >';
+                                                commonInputFieldProperty + ' ></span><span class="not-for-screen"><input type="checkbox" ng-checked={{currentEvent.' + fieldId + '}}></span>';
                                     }
                                     else if (prStDe.dataElement.valueType === "LONG_TEXT") {
-                                        newInputField = '<textarea row ="3" ' +
+                                        newInputField = '<textarea row="3" ' +
                                                 ' ng-class="{{getInputNotifcationClass(prStDes.' + fieldId + '.dataElement.id, true)}}" ' +
                                                 ' ng-blur="saveDatavalue(prStDes.' + fieldId + ', outerForm.' + fieldId + ')"' +
-                                                commonInputFieldProperty + '></textarea>';
+                                                commonInputFieldProperty + '></textarea></span><span class="not-for-screen"><textarea row="3" value={{currentEvent.' + fieldId + '}}></span>';
                                     }
                                     else {
-                                        newInputField = '<input type="text" ' +
+                                        newInputField = '<span class="hideInPrint"><input type="text" ' +
                                                 ' ng-class="{{getInputNotifcationClass(prStDes.' + fieldId + '.dataElement.id, true)}}" ' +
                                                 ' ng-blur="saveDatavalue(prStDes.' + fieldId + ', outerForm.' + fieldId + ')"' +
-                                                commonInputFieldProperty + ' >';
+                                                commonInputFieldProperty + ' ></span><span class="not-for-screen"><input type="text" value={{currentEvent.' + fieldId + '}}></span>';
                                     }
                                 }
                             }