- Timestamp:
- 2009-05-18 14:50:28 (3 years ago)
- Location:
- tupper/trunk
- Files:
-
- 6 edited
-
tupper-model-api/src/main/java/org/kauriproject/tupper/api/manager/TaskManager.java (modified) (1 diff)
-
tupper-model/src/main/java/org/kauriproject/tupper/impl/manager/TaskManagerImpl.java (modified) (3 diffs)
-
tupper-site/src/main/java/org/kauriproject/tupper/resource/TasksResource.java (modified) (3 diffs)
-
tupper-site/src/main/kauri/pages/{user}/time..xml (modified) (2 diffs)
-
tupper-site/src/main/kauri/static/css/popups.css (modified) (1 diff)
-
tupper-site/src/main/kauri/static/js/time.js (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tupper/trunk/tupper-model-api/src/main/java/org/kauriproject/tupper/api/manager/TaskManager.java
r1263 r1270 17 17 public List<Task> findAllDoneByProject(Project p); 18 18 public List<Task> findByAssignedSubTasks(Employee e, Task t); 19 public List<Task> findBySearchValueAndEmployee(Employee e, String search); 20 public List<Task> findBySearchValue(String search); 19 21 public Task findById(int id); 20 22 public Task create(); -
tupper/trunk/tupper-model/src/main/java/org/kauriproject/tupper/impl/manager/TaskManagerImpl.java
r1269 r1270 31 31 } else { 32 32 if (t.getParentTask() instanceof Project) { 33 tImpl.setBelongsToProject((Project) tImpl.getParentTask());33 tImpl.setBelongsToProject((Project) tImpl.getParentTask()); 34 34 } else { 35 35 tImpl.setBelongsToProject(t.getParentTask().getBelongsToProject()); … … 41 41 // tImpl.setTaskPath("/" + tImpl.getId()); 42 42 //} else { 43 tImpl.setTaskPath(tImpl.getParentTask().getTaskPath() + "/" + tImpl.getId());43 tImpl.setTaskPath(tImpl.getParentTask().getTaskPath() + "/" + tImpl.getId()); 44 44 //} 45 45 return update(t); … … 168 168 } 169 169 } 170 171 public List<Task> findBySearchValueAndEmployee(Employee e, String search) { 172 EntityManager em = tupper.getEntityManager(); 173 String sql = "SELECT t FROM task t WHERE t.assigned = :empl AND (t.description LIKE :search OR t.name LIKE :search)"; 174 Query q = em.createQuery(sql); 175 q.setParameter("empl", e); 176 q.setParameter("search", "%" + search + "%"); 177 return q.getResultList(); 178 } 179 180 public List<Task> findBySearchValue(String search) { 181 EntityManager em = tupper.getEntityManager(); 182 String sql = "SELECT t FROM task t WHERE t.description LIKE :search OR t.name LIKE :search"; 183 Query q = em.createQuery(sql); 184 q.setParameter("search", "%" + search + "%"); 185 return q.getResultList(); 186 } 170 187 } -
tupper/trunk/tupper-site/src/main/java/org/kauriproject/tupper/resource/TasksResource.java
r1262 r1270 13 13 import org.kauriproject.tupper.api.model.Employee; 14 14 import org.kauriproject.tupper.api.model.Performance; 15 import org.kauriproject.tupper.api.model.Project; 15 16 import org.kauriproject.tupper.api.model.Task; 16 17 import org.restlet.Context; … … 57 58 Form form = req.getResourceRef().getQueryAsForm(); 58 59 String emplInitials = form.getValues("empl"); 59 60 String searchValue = form.getValues("search"); 60 61 tupper.begin(); 61 62 List<Task> taskList = null; 62 63 Employee e; 63 if (emplInitials != null) { 64 e = tupper.getEmployeeManager().findByInitials(emplInitials); 65 taskList = tm.findByEmployee(e); 64 if (searchValue != null) { 65 if (emplInitials != null) { 66 e = tupper.getEmployeeManager().findByInitials(emplInitials); 67 taskList = tm.findBySearchValueAndEmployee(e, searchValue); 68 } else { 69 taskList = tm.findBySearchValue(searchValue); 70 } 71 } else { 72 if (emplInitials != null) { 73 e = tupper.getEmployeeManager().findByInitials(emplInitials); 74 taskList = tm.findByEmployee(e); 75 } else { 76 taskList = tm.findAll(); 77 } 66 78 } 67 79 tupper.commit(); … … 70 82 JSONObject jsonTask = new JSONObject(); 71 83 jsonTask.element("id", task.getId()); 72 jsonTask.element("name", task.getName());73 84 jsonTask.element("estimatedTime", Math.round(task.getEstimatedTime())); 74 jsonTask.element("assigned", task.getAssigned().getFirstName() + " " + task.getAssigned().getLastName());75 85 jsonTask.element("done", task.isDone()); 76 86 jsonTask.element("description", task.getDescription()); 87 if(task.getAssigned() != null){ 88 jsonTask.element("assigned", task.getAssigned().getFirstName() + " " + task.getAssigned().getLastName()); 89 }else{ 90 jsonTask.element("assigned", "---"); 91 } 92 93 if(task.getBelongsToProject() == null){ 94 Project p = (Project)task; 95 jsonTask.element("project", task.getName()); 96 jsonTask.element("name", task.getName()); 97 jsonTask.element("customer", p.getCustomer().getName()); 98 }else{ 99 jsonTask.element("project", task.getBelongsToProject().getName()); 100 jsonTask.element("name", task.getName()); 101 jsonTask.element("customer", task.getBelongsToProject().getCustomer().getName()); 102 } 77 103 78 104 tupper.begin(); -
tupper/trunk/tupper-site/src/main/kauri/pages/{user}/time..xml
r1269 r1270 2 2 <html xmlns:t="http://kauriproject.org/template" t:inherit="../../templates/layout/layout.xml"> 3 3 4 <t:init>5 <t:variable name="current_week" value="20" overwrite="false"/>4 <t:init> 5 <t:variable name="current_week" value="20" overwrite="false"/> 6 6 <t:variable name="current_year" value="2009" overwrite="false"/> 7 <t:import src="../../templates/macro/all.xml" />8 </t:init>7 <t:import src="../../templates/macro/all.xml" /> 8 </t:init> 9 9 10 <t:block name="title">Performances</t:block>10 <t:block name="title">Performances</t:block> 11 11 12 <t:block name="extraheader">13 <link rel="stylesheet" type="text/css"12 <t:block name="extraheader"> 13 <link rel="stylesheet" type="text/css" 14 14 href="${publicUri('service:/main/static/css/time.css')}" /> 15 <link href="${publicUri('service:/main/static/css/ui.finder.css')}"15 <link href="${publicUri('service:/main/static/css/ui.finder.css')}" 16 16 rel="stylesheet" type="text/css" /> 17 <link href="${publicUri('service:/main/static/css/ui.theme.css')}"17 <link href="${publicUri('service:/main/static/css/ui.theme.css')}" 18 18 rel="stylesheet" type="text/css" /> 19 <script type="text/javascript">19 <script type="text/javascript"> 20 20 <; 42 return result === "0" ? "" : result; 43 }, 44 parse: function(valstr) { 45 //return this["<super.call>"]("parse", [valstr]); 46 var result = this["<super.call>"]("parse", [valstr]); 47 return result === undefined ? 0 : result; 48 } 49 }, 50 "noTask":{ 51 format:function(val){ 52 if(val === ""){ 53 return "noTask"; 54 }else{ 55 return val; 56 } 57 } 58 } 59 } 60 } 25 61 ]]> 26 </script> 27 <script type="text/javascript" 28 src="${publicUri('service:/main/static/js/scrollable_table.js')}"></script> 29 <script type="text/javascript" src="${publicUri('service:/main/static/js/time.js')}"></script> 30 <script type="text/javascript" 31 src="${publicUri('service:/main/static/js/ui.finder.js')}"></script> 32 <script type="text/javascript" 33 src="${publicUri('service:/main/static/js/jquery.scrollTo-1.4.0-min.js')}"></script> 34 </t:block> 35 <body> 36 <t:block name="content"> 37 <div id="row1"> 38 <div id="weeks"> 39 <table> 40 <thead> 41 <tr> 42 <td colspan="2">Week</td> 43 <td>Mo</td> 44 <td>Tu</td> 45 <td>We</td> 46 <td>Th</td> 47 <td>Fr</td> 48 <td>Sa</td> 49 <td>Su</td> 50 </tr> 51 <tr class="pager"> 62 </script> 63 <script type="text/javascript" 64 src="${publicUri('service:/main/static/js/scrollable_table.js')}"> 65 </script> 66 <script type="text/javascript" src="${publicUri('service:/main/static/js/time.js')}"></script> 67 <script type="text/javascript" 68 src="${publicUri('service:/main/static/js/ui.finder.js')}"> 69 </script> 70 <script type="text/javascript" 71 src="${publicUri('service:/main/static/js/jquery.scrollTo-1.4.0-min.js')}"> 72 </script> 73 </t:block> 74 <body> 75 <t:block name="content"> 76 <div id="row1"> 77 <div id="weeks"> 78 <table> 79 <thead> 80 <tr> 81 <td colspan="2">Week</td> 82 <td>Mo</td> 83 <td>Tu</td> 84 <td>We</td> 85 <td>Th</td> 86 <td>Fr</td> 87 <td>Sa</td> 88 <td>Su</td> 89 </tr> 90 <tr class="pager"> 52 91 <!--<td colspan="5" class="warning">Previous Weeks Incomplete</td>--> 53 <td colspan="9">54 <input type="button" value="Previous Weeks" id="previous_weeks" />55 </td>56 </tr>57 </thead>58 <tbody>92 <td colspan="9"> 93 <input type="button" value="Previous Weeks" id="previous_weeks" /> 94 </td> 95 </tr> 96 </thead> 97 <tbody> 59 98 <!-- //Filled By JS\\--> 60 </tbody>61 <tfoot>62 <tr class="pager">63 <td colspan="9">64 <input type="button" value="Next Weeks" id="next_weeks" />65 </td>66 </tr>67 </tfoot>68 </table>69 </div>70 71 <div id="details_week">72 <form id="performances_form">73 <fieldset>74 <table kauri-idref="performances" kauri-type="collection">75 <thead>76 <tr>77 <td>Customer</td>78 <td>Project</td>79 <td>Taak</td>80 <td>Mo</td>81 <td>Tu</td>82 <td>We</td>83 <td>Th</td>84 <td>Fr</td>85 <td>Sa</td>86 <td>Su</td>87 <td colspan="3">Comment</td>88 </tr>89 <tr class="total">90 <td colspan="3">Total:</td>91 <td class="day_total">0</td>92 <td class="day_total">0</td>93 <td class="day_total">0</td>94 <td class="day_total">0</td>95 <td class="day_total">0</td>96 <td class="day_total">0</td>97 <td class="day_total">0</td>98 <td colspan="3">99 <input type="button" value="New Entry" class="new_performance_button" />100 </td>101 </tr>102 <tr kauri-role="layout">103 <input type="hidden" class="task_id" kauri-idref="taskid"99 </tbody> 100 <tfoot> 101 <tr class="pager"> 102 <td colspan="9"> 103 <input type="button" value="Next Weeks" id="next_weeks" /> 104 </td> 105 </tr> 106 </tfoot> 107 </table> 108 </div> 109 110 <div id="details_week"> 111 <form id="performances_form"> 112 <fieldset> 113 <table kauri-idref="performances" kauri-type="collection"> 114 <thead> 115 <tr> 116 <td>Customer</td> 117 <td>Project</td> 118 <td>Taak</td> 119 <td>Mo</td> 120 <td>Tu</td> 121 <td>We</td> 122 <td>Th</td> 123 <td>Fr</td> 124 <td>Sa</td> 125 <td>Su</td> 126 <td colspan="3">Comment</td> 127 </tr> 128 <tr class="total"> 129 <td colspan="3">Total:</td> 130 <td class="day_total">0</td> 131 <td class="day_total">0</td> 132 <td class="day_total">0</td> 133 <td class="day_total">0</td> 134 <td class="day_total">0</td> 135 <td class="day_total">0</td> 136 <td class="day_total">0</td> 137 <td colspan="3"> 138 <input type="button" value="New Entry" class="new_performance_button" /> 139 </td> 140 </tr> 141 <tr kauri-role="layout"> 142 <input type="hidden" class="task_id" kauri-idref="taskid" 104 143 kauri-type="integer" /> 105 144 <input type="hidden" class="performance_empl" kauri-idref="employee" 106 145 kauri-type="string"/> 107 <input type="hidden" class="week" kauri-idref="week"146 <input type="hidden" class="week" kauri-idref="week" 108 147 kauri-type="string" /> 109 <td>110 <a href="#" class="new_performance_button">--</a>111 <input class="hidden" type="hidden" kauri-idref="customer"148 <td> 149 <a href="#" class="new_performance_button">--</a> 150 <input class="hidden" type="hidden" kauri-idref="customer" 112 151 kauri-type="string" /> 113 </td>114 <td>115 <a href="#" class="new_performance_button">--</a>116 <input class="hidden" type="hidden" kauri-idref="project"152 </td> 153 <td> 154 <a href="#" class="new_performance_button">--</a> 155 <input class="hidden" type="hidden" kauri-idref="project" 117 156 kauri-type="string" /> 118 </td>119 <td>120 <a href="#" class="new_performance_button">--</a>121 <input class="hidden" type="hidden" kauri-idref="task"157 </td> 158 <td> 159 <a href="#" class="new_performance_button">--</a> 160 <input class="hidden" type="hidden" kauri-idref="task" 122 161 kauri-type="string" /> 123 </td>124 <td class="table_input_time">125 <input kauri-idref="ma" type="text" kauri-type="zero" />126 </td>127 <td class="table_input_time">128 <input kauri-idref="di" type="text" kauri-type="zero" />129 </td>130 <td class="table_input_time">131 <input kauri-idref="wo" type="text" kauri-type="zero" />132 </td>133 <td class="table_input_time">134 <input kauri-idref="do" type="text" kauri-type="zero" />135 </td>136 <td class="table_input_time">137 <input kauri-idref="vr" type="text" kauri-type="zero" />138 </td>139 <td class="table_input_time">140 <input kauri-idref="za" type="text" kauri-type="zero" />141 </td>142 <td class="table_input_time">143 <input kauri-idref="zo" type="text" kauri-type="zero" />144 </td>145 <td class="table_input_comment">146 <input kauri-idref="comment" kauri-type="string" type="text" />147 </td>148 <td class="action">149 <img class="copy_action" kauri-idref="performances"162 </td> 163 <td class="table_input_time"> 164 <input kauri-idref="ma" type="text" kauri-type="zero" /> 165 </td> 166 <td class="table_input_time"> 167 <input kauri-idref="di" type="text" kauri-type="zero" /> 168 </td> 169 <td class="table_input_time"> 170 <input kauri-idref="wo" type="text" kauri-type="zero" /> 171 </td> 172 <td class="table_input_time"> 173 <input kauri-idref="do" type="text" kauri-type="zero" /> 174 </td> 175 <td class="table_input_time"> 176 <input kauri-idref="vr" type="text" kauri-type="zero" /> 177 </td> 178 <td class="table_input_time"> 179 <input kauri-idref="za" type="text" kauri-type="zero" /> 180 </td> 181 <td class="table_input_time"> 182 <input kauri-idref="zo" type="text" kauri-type="zero" /> 183 </td> 184 <td class="table_input_comment"> 185 <input kauri-idref="comment" kauri-type="string" type="text" /> 186 </td> 187 <td class="action"> 188 <img class="copy_action" kauri-idref="performances" 150 189 src="${publicUri('service:/main/static/img/copy.png')}" /> 151 </td>152 <td class="action">153 <img class="delete_action"190 </td> 191 <td class="action"> 192 <img class="delete_action" 154 193 src="${publicUri('service:/main/static/img/delete.png')}" /> 155 </td>156 </tr>157 </thead>158 <tbody kauri-role="input">159 </tbody>160 <tfoot>161 <tr class="total">162 <td colspan="3">Total:</td>163 <td class="day_total">0</td>164 <td class="day_total">0</td>165 <td class="day_total">0</td>166 <td class="day_total">0</td>167 <td class="day_total">0</td>168 <td class="day_total">0</td>169 <td class="day_total">0</td>170 <td colspan="3">171 <input type="button" value="New Entry" class="new_performance_button" />172 <input type="submit" value="Save" id="save_performances" />173 </td>174 </tr>175 </tfoot>176 </table>177 </fieldset>178 </form>179 </div>180 </div>181 <t:include src="../../templates/snippet/new_performance_entry.xml" />182 </t:block>183 </body>194 </td> 195 </tr> 196 </thead> 197 <tbody kauri-role="input"> 198 </tbody> 199 <tfoot> 200 <tr class="total"> 201 <td colspan="3">Total:</td> 202 <td class="day_total">0</td> 203 <td class="day_total">0</td> 204 <td class="day_total">0</td> 205 <td class="day_total">0</td> 206 <td class="day_total">0</td> 207 <td class="day_total">0</td> 208 <td class="day_total">0</td> 209 <td colspan="3"> 210 <input type="button" value="New Entry" class="new_performance_button" /> 211 <input type="submit" value="Save" id="save_performances" /> 212 </td> 213 </tr> 214 </tfoot> 215 </table> 216 </fieldset> 217 </form> 218 </div> 219 </div> 220 <t:include src="../../templates/snippet/new_performance_entry.xml" /> 221 </t:block> 222 </body> 184 223 185 224 -
tupper/trunk/tupper-site/src/main/kauri/static/css/popups.css
r1265 r1270 105 105 float:left; 106 106 font-size:20px; 107 } 108 .result{ 109 cursor:pointer; 107 110 } 108 111 #search_title h2{ -
tupper/trunk/tupper-site/src/main/kauri/static/js/time.js
r1269 r1270 6 6 var days = ["ma","di","wo","do","vr","za","zo"]; 7 7 var week = ""; 8 var performancesFconf= {9 "dataURI": "",10 "fieldTypes":{11 "zero":{12 base:'integer',13 "user-format": "noZero"14 },15 "task":{16 base:'string',17 "user-format": "noTask"18 }19 },20 "formatters":{21 "noZero":{22 base: "numeric",23 format: function(val){24 var result = this["<super.call>"]("format", [val]);25 return result === "0" ? "" : result;26 },27 parse: function(valstr) {28 //return this["<super.call>"]("parse", [valstr]);29 var result = this["<super.call>"]("parse", [valstr]);30 return result === undefined ? 0 : result;31 }32 },33 "noTask":{34 format:function(val){35 if(val === ""){36 return "noTask";37 }else{38 return val;39 }40 }41 }42 }43 }44 8 45 9 jQuery(document).ready(function(){ … … 96 60 97 61 $("#search_button").click(function(){ 62 $("#search_results").empty(); 98 63 var searchValue = trim($("#popup_search").val()); 99 64 if(searchValue !== ""){ 100 var url = baseUri + "task /?q.name=" + searchValue + "&filter=";65 var url = baseUri + "task?search=" + searchValue; 101 66 switch($("#select_mode select:first").val()){ 102 case "global": $.getJSON(url + "global", parseSearchResults);67 case "global": $.getJSON(url, parseSearchResults); 103 68 break; 104 case "personal": $.getJSON(url + " personal", parseSearchResults);69 case "personal": $.getJSON(url + "&empl=" + selectedEmpl, parseSearchResults); 105 70 break; 106 71 } … … 199 164 child.findControl("customer").setValue(customer); 200 165 child.findControl("project").setValue(project); 201 child.findControl("task").setValue(task); 166 if(task !== project){ 167 child.findControl("task").setValue(task); 168 }else{ 169 child.findControl("task").setValue("---"); 170 } 202 171 child.findControl("week").setValue(week); 203 172 child.findControl("employee").setValue(selectedEmpl); … … 211 180 for(var i=0; i < json.length; i++){ 212 181 var task = json[i]; 213 var html = "<div class='result'><h1 class='result' value='"+ task.id +"' project='"+ task.project +"' customer='"+ task.customer +"'>" + task.name + "</h1>";182 var html = "<div><h1 class='result' value='"+ task.id +"' project='"+ task.project +"' customer='"+ task.customer +"'>" + task.name + "</h1>"; 214 183 html += "<p>" + task.description + "</p><div>"; 215 184 $("#search_results").append(html); … … 221 190 var task = trim($(this).text()); 222 191 //alert("taskid="+id+",project=" + proj + ",customer=" + proj + ",task=" + task); 223 fillPerformanceInfo(id , proj, task, cust);192 fillPerformanceInfo(id*1, proj, task, cust); 224 193 added=true; 225 194 disablePopup();
Note: See TracChangeset
for help on using the changeset viewer.