Chorem-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- 545 discussions
10 Jul '14
Author: ymartel
Date: 2014-07-10 11:36:45 +0200 (Thu, 10 Jul 2014)
New Revision: 420
Url: http://forge.chorem.org/projects/chorem/repository/revisions/420
Log:
boostrap migration
Modified:
trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/search.jsp
trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/view.jsp
Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/search.jsp
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/search.jsp 2014-07-10 09:34:48 UTC (rev 419)
+++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/search.jsp 2014-07-10 09:36:45 UTC (rev 420)
@@ -31,7 +31,7 @@
<a href="<c:url value="/wikitty/${key}/search"/>">${key}</a>
</li>
<li>
- <a class="btn btn-success btn-mini" href="<c:url value="/wikitty/${key}/edit/new"/>"><i class="icon-plus icon-white"></i> Add</a>
+ <a class="btn btn-success btn-xs" href="<c:url value="/wikitty/${key}/edit/new"/>"><i class="icon-plus icon-white"></i> Add</a>
</li>
<li>
<form class="form-search form-inline" action="<c:url value="/wikitty/${key}/search"/>">
Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/view.jsp
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/view.jsp 2014-07-10 09:34:48 UTC (rev 419)
+++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/view.jsp 2014-07-10 09:36:45 UTC (rev 420)
@@ -35,9 +35,9 @@
<c:forEach var="ext" items="${extensions}">
<dl><dt><a href="<c:url value="/wikitty/search?extension=${ext.name}"/>">${ext.name}</a>
- <a class="btn btn-success btn-mini" href="<c:url value="/wikitty/edit/${wikitty.id}?extension=${ext.name}"/>"><i class="icon-pencil icon-white"></i> Edit</a>
- <a class="btn btn-success btn-mini" href="<c:url value="/wikitty/editMulti/${wikitty.id}"/>"><i class="icon-pencil icon-white"></i> Edit Multi</a>
- <a class="btn btn-danger btn-mini" href="<c:url value="/wikitty/delete/${wikitty.id}?extension=${ext.name}&wmDecoratorNo=true"/>"><i class="icon-trash icon-white"></i> Delete</a></dt>
+ <a class="btn btn-success btn-xs" href="<c:url value="/wikitty/edit/${wikitty.id}?extension=${ext.name}"/>"><i class="icon-pencil icon-white"></i> Edit</a>
+ <a class="btn btn-success btn-xs" href="<c:url value="/wikitty/editMulti/${wikitty.id}"/>"><i class="icon-pencil icon-white"></i> Edit Multi</a>
+ <a class="btn btn-danger btn-xs" href="<c:url value="/wikitty/delete/${wikitty.id}?extension=${ext.name}&wmDecoratorNo=true"/>"><i class="icon-trash icon-white"></i> Delete</a></dt>
<c:forEach var="fieldName" items="${ext.fieldNames}">
<dd><w:display wikitty="${wikitty}" fqfield="${ext.name}.${fieldName}"/></dd>
</c:forEach>
1
0
r419 - in trunk: . chorem-webmotion/src/main/webapp/WEB-INF chorem-webmotion/src/main/webapp/WEB-INF/jsp chorem-webmotion/src/main/webapp/WEB-INF/jsp/salesReports chorem-webmotion/src/main/webapp/js
by ymartel@users.chorem.org 10 Jul '14
by ymartel@users.chorem.org 10 Jul '14
10 Jul '14
Author: ymartel
Date: 2014-07-10 11:34:48 +0200 (Thu, 10 Jul 2014)
New Revision: 419
Url: http://forge.chorem.org/projects/chorem/repository/revisions/419
Log:
some dependencies upgrade and bootstrap migration
Added:
trunk/chorem-webmotion/src/main/webapp/js/jquery.maskedinput-1.3-1.js
Removed:
trunk/chorem-webmotion/src/main/webapp/js/jquery.maskedinput-1.3.js
Modified:
trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/decorator.jsp
trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/salesReports/menu.jsp
trunk/chorem-webmotion/src/main/webapp/WEB-INF/wro.xml
trunk/chorem-webmotion/src/main/webapp/js/jquery.fn.gantt.js
trunk/pom.xml
Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/decorator.jsp
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/decorator.jsp 2014-07-07 11:56:49 UTC (rev 418)
+++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/decorator.jsp 2014-07-10 09:34:48 UTC (rev 419)
@@ -59,44 +59,44 @@
<script type="text/javascript" src="<c:url value='/js/ng-select2.js'/>"></script>
</head>
<body>
- <div class="navbar navbar-fixed-top">
+ <div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="navbar-inner">
<div class="container">
- <!-- .btn-navbar is used as the toggle for collapsed navbar content -->
- <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+ <span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
- </a>
+ </button>
- <a class="brand" href="<c:url value="/"/>">Chorem</a>
+ <a class="navbar-brand" href="<c:url value="/"/>">Chorem</a>
<!-- Everything you want hidden at 940px or less, place within here -->
- <div class="nav-collapse">
+ <div class="navbar-collapse collapse">
- <ul class="nav">
- <li class="dropdown nav-group">
+ <ul class="nav navbar-nav">
+ <li class="dropdown nav-group"">
<a href="<c:url value="/wikitty/search?extension=Company&extension=Person&extension=Employee&extension=Touch"/>">Contact</a>
<a href="#"
class="dropdown-toggle"
data-toggle="dropdown">
- <b class="caret"></b>
+ <span class="caret"></span>
</a>
- <ul class="dropdown-menu">
- <li><a href="<c:url value="/wikitty/Company/search"/>"><i class="icon-th-list icon-black"></i> All company</a></li>
- <li><a href="<c:url value="/wikitty/Company/edit/new"/>"><i class="icon-plus icon-black"></i> Add company</a></li>
+ <ul class="dropdown-menu" role="menu">
+ <li><a href="<c:url value="/wikitty/Company/search"/>"><span class="glyphicon glyphicon-th-list"></span> All company</a></li>
+ <li><a href="<c:url value="/wikitty/Company/edit/new"/>"><span class="glyphicon glyphicon-plus glyphicon-black"></span> Add company</a></li>
<li class="divider"></li>
- <li><a href="<c:url value="/wikitty/Person/search"/>"><i class="icon-th-list icon-black"></i> All person</a></li>
- <li><a href="<c:url value="/wikitty/Person/edit/new"/>"><i class="icon-plus icon-black"></i> Add person</a></li>
+ <li><a href="<c:url value="/wikitty/Person/search"/>"><span class="glyphicon glyphicon-th-list"></span> All person</a></li>
+ <li><a href="<c:url value="/wikitty/Person/edit/new"/>"><span class="glyphicon glyphicon-plus"></span> Add person</a></li>
<li class="divider"></li>
- <li><a href="<c:url value="/wikitty/Employee/search"/>"><i class="icon-th-list icon-black"></i> All employee</a></li>
- <li><a href="<c:url value="/wikitty/Employee/edit/new"/>"><i class="icon-plus icon-black"></i> Add employee</a></li>
+ <li><a href="<c:url value="/wikitty/Employee/search"/>"><span class="glyphicon glyphicon-th-list"></span> All employee</a></li>
+ <li><a href="<c:url value="/wikitty/Employee/edit/new"/>"><span class="glyphicon glyphicon-plus"></span> Add employee</a></li>
<li class="divider"></li>
- <li><a href="<c:url value="/wikitty/ContactDetails/search"/>"><i class="icon-th-list icon-black"></i> All contact details</a></li>
- <li><a href="<c:url value="/wikitty/ContactDetails/edit/new"/>"><i class="icon-plus icon-black"></i> Add contact details</a></li>
+ <li><a href="<c:url value="/wikitty/ContactDetails/search"/>"><span class="glyphicon glyphicon-th-list"></span> All contact details</a></li>
+ <li><a href="<c:url value="/wikitty/ContactDetails/edit/new"/>"><i class="glyphicon glyphicon-plus"></i> Add contact details</a></li>
<li class="divider"></li>
- <li><a href="<c:url value="/wikitty/Touch/search"/>"><i class="icon-th-list icon-black"></i> All touch</a></li>
- <li><a href="<c:url value="/wikitty/Touch/edit/new"/>"><i class="icon-plus icon-black"></i> Add touch</a></li>
+ <li><a href="<c:url value="/wikitty/Touch/search"/>"><span class="glyphicon glyphicon-th-list"></span> All touch</a></li>
+ <li><a href="<c:url value="/wikitty/Touch/edit/new"/>"><i class="glyphicon glyphicon-plus"></i> Add touch</a></li>
<li class="divider"></li>
<li><a href="<c:url value="/crm/export"/>"> Export</li>
</ul>
@@ -105,31 +105,31 @@
<!-- around projects -->
<a href="<c:url value="/report?report=quotation,projectOpen,projectClosed"/>">Project</a>
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
- <b class="caret"></b>
+ <span class="caret"></span>
</a>
- <ul class="dropdown-menu">
+ <ul class="dropdown-menu" role="menu">
<li>Current project</li>
- <li><a href="<c:url value="/wikitty/Project/search"/>"><i class="icon-th-list icon-black"></i> All projects</a></li>
- <li><a href="<c:url value="/wikitty/Project/edit/new"/>"><i class="icon-plus icon-black"></i> Add project</a></li>
- <li><a href="<c:url value="/project"/>"><i class="icon-th-list icon-black"></i> Dashboard project</a></li>
- <li><a href="<c:url value="/project/multi"/>"><i class="icon-th-list icon-black"></i> Dashboard multi-project</a></li>
+ <li><a href="<c:url value="/wikitty/Project/search"/>"><span class="glyphicon glyphicon-th-list"></span> All projects</a></li>
+ <li><a href="<c:url value="/wikitty/Project/edit/new"/>"><span class="glyphicon glyphicon-plus"></span> Add project</a></li>
+ <li><a href="<c:url value="/project"/>"><span class="glyphicon glyphicon-th-list"></span> Dashboard project</a></li>
+ <li><a href="<c:url value="/project/multi"/>"><span class="glyphicon glyphicon-th-list"></span> Dashboard multi-project</a></li>
<li class="divider"></li>
<li>Propale</li>
- <li><a href="<c:url value="/wikitty/Quotation/search"/>"><i class="icon-th-list icon-black"></i> All quotations</a></li>
- <li><a href="<c:url value="/wikitty/Quotation/edit/new"/>"><i class="icon-plus icon-black"></i> Add quotation</a></li>
+ <li><a href="<c:url value="/wikitty/Quotation/search"/>"><span class="glyphicon glyphicon-th-list"></span> All quotations</a></li>
+ <li><a href="<c:url value="/wikitty/Quotation/edit/new"/>"><span class="glyphicon glyphicon-plus"></span> Add quotation</a></li>
<li class="divider"></li>
<li>Task</li>
- <li><a href="<c:url value="/wikitty/Task/search"/>"><i class="icon-th-list icon-black"></i> All tasks</a></li>
- <li><a href="<c:url value="/wikitty/Task/edit/new"/>"><i class="icon-plus icon-black"></i> Add task</a></li>
+ <li><a href="<c:url value="/wikitty/Task/search"/>"><span class="glyphicon glyphicon-th-list"></span> All tasks</a></li>
+ <li><a href="<c:url value="/wikitty/Task/edit/new"/>"><span class="glyphicon glyphicon-plus"></span> Add task</a></li>
<li class="divider"></li>
<li>Worker</li>
- <li><a href="<c:url value="/wikitty/Worker/search"/>"><i class="icon-th-list icon-black"></i> All workers</a></li>
- <li><a href="<c:url value="/wikitty/Worker/edit/new"/>"><i class="icon-plus icon-black"></i> Add worker</a></li>
- <li><a href="<c:url value="/project/employee"/>"><i class="icon-plus icon-black"></i> Employee dashboard</a></li>
+ <li><a href="<c:url value="/wikitty/Worker/search"/>"><span class="glyphicon glyphicon-th-list"></span> All workers</a></li>
+ <li><a href="<c:url value="/wikitty/Worker/edit/new"/>"><span class="glyphicon glyphicon-plus"></span> Add worker</a></li>
+ <li><a href="<c:url value="/project/employee"/>"><span class="glyphicon glyphicon-plus"></span> Employee dashboard</a></li>
<li class="divider"></li>
<li>Time</li>
- <li><a href="<c:url value="/wikitty/Time/search"/>"><i class="icon-th-list icon-black"></i> All times</a></li>
- <li><a href="<c:url value="/wikitty/Time/edit/new"/>"><i class="icon-plus icon-black"></i> Add time</a></li>
+ <li><a href="<c:url value="/wikitty/Time/search"/>"><span class="glyphicon glyphicon-th-list"></span> All times</a></li>
+ <li><a href="<c:url value="/wikitty/Time/edit/new"/>"><span class="glyphicon glyphicon-plus"></span> Add time</a></li>
<li class="divider"></li>
<li>Report</li>
<li><a href="<c:url value="/report?report=quotation"/>">Quotation</a></li>
@@ -141,43 +141,43 @@
<!-- around sales -->
<a>Commercial</a>
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
- <b class="caret"></b>
+ <span class="caret"></span>
</a>
- <ul class="dropdown-menu">
- <li><a href="<c:url value="/sales/funnel"/>"><i class="icon-tasks icon-black"></i> Tunnel de commande</a></li>
- <li><a href="<c:url value="/sales/report/sales"/>"><i class="icon-th-list icon-black"></i> Rapports</a></li>
+ <ul class="dropdown-menu" role="menu">
+ <li><a href="<c:url value="/sales/funnel"/>"><span class="glyphicon glyphicon-tasks"></span> Tunnel de commande</a></li>
+ <li><a href="<c:url value="/sales/report/sales"/>"><span class="glyphicon glyphicon-th-list"></span> Rapports</a></li>
</ul>
</li>
<li class="dropdown nav-group">
<!-- around financial -->
<a href="<c:url value="/report?report=invoiceDebt,invoiceIncome,profitability,budget"/>">Financial</a>
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
- <b class="caret"></b>
+ <span class="caret"></span>
</a>
- <ul class="dropdown-menu">
+ <ul class="dropdown-menu" role="menu">
<li>
- <a href="<c:url value="/wikitty/Quotation/search"/>"><i class="icon-th-list icon-black"></i>Quotations</a>
- <a href="<c:url value="/wikitty/Quotation/edit/new"/>"><i class="icon-plus icon-black"></i></a>
+ <a href="<c:url value="/wikitty/Quotation/search"/>"><span class="glyphicon glyphicon-th-list"></span>Quotations</a>
+ <a href="<c:url value="/wikitty/Quotation/edit/new"/>"><span class="glyphicon glyphicon-plus"></span></a>
</li>
<li>
- <a href="<c:url value="/wikitty/FinancialTransaction/search"/>"><i class="icon-th-list icon-black"></i>FinancialTransaction</a>
- <a href="<c:url value="/wikitty/FinancialTransaction/edit/new"/>"><i class="icon-plus icon-black"></i></a>
+ <a href="<c:url value="/wikitty/FinancialTransaction/search"/>"><span class="glyphicon glyphicon-th-list"></span>FinancialTransaction</a>
+ <a href="<c:url value="/wikitty/FinancialTransaction/edit/new"/>"><span class="glyphicon glyphicon-plus"></span></a>
</li>
<li>
- <a href="<c:url value="/wikitty/Invoice/search"/>"><i class="icon-th-list icon-black"></i>Invoices</a>
- <a href="<c:url value="/wikitty/Invoice/edit/new"/>"><i class="icon-plus icon-black"></i></a>
+ <a href="<c:url value="/wikitty/Invoice/search"/>"><span class="glyphicon glyphicon-th-list"></span>Invoices</a>
+ <a href="<c:url value="/wikitty/Invoice/edit/new"/>"><span class="glyphicon glyphicon-plus"></span></a>
</li>
<li>
- <a href="<c:url value="/wikitty/Invoice/search?query=FinancialTransaction.beneficiary%3D%22Code+Lutin%22"/>"><i class="icon-th-list icon-black"></i>Crédits-Ventes</a>
- <a href="<c:url value="/wikitty/Invoice/edit/new"/>"><i class="icon-plus icon-black"></i></a>
+ <a href="<c:url value="/wikitty/Invoice/search?query=FinancialTransaction.beneficiary%3D%22Code+Lutin%22"/>"><span class="glyphicon glyphicon-th-list"></span>Crédits-Ventes</a>
+ <a href="<c:url value="/wikitty/Invoice/edit/new"/>"><span class="glyphicon glyphicon-plus"></span></a>
</li>
<li>
- <a href="<c:url value="/wikitty/Invoice/search?query=FinancialTransaction.payer%3D%22Code+Lutin%22"/>"><i class="icon-th-list icon-black"></i>Débits-Achats</a>
- <a href="<c:url value="/wikitty/Invoice/edit/new"/>"><i class="icon-plus icon-black"></i></a>
+ <a href="<c:url value="/wikitty/Invoice/search?query=FinancialTransaction.payer%3D%22Code+Lutin%22"/>"><span class="glyphicon glyphicon-th-list"></span>Débits-Achats</a>
+ <a href="<c:url value="/wikitty/Invoice/edit/new"/>"><span class="glyphicon glyphicon-plus"></span></a>
</li>
<li>
- <a href="<c:url value="/wikitty/Category/search"/>"><i class="icon-th-list icon-black"></i>Categories</a>
- <a href="<c:url value="/wikitty/Category/edit/new"/>"><i class="icon-plus icon-black"></i></a>
+ <a href="<c:url value="/wikitty/Category/search"/>"><span class="glyphicon glyphicon-th-list"></span>Categories</a>
+ <a href="<c:url value="/wikitty/Category/edit/new"/>"><span class="glyphicon glyphicon-plus"></span></a>
</li>
<li class="divider"></li>
<li>Report</li>
@@ -194,25 +194,25 @@
<a href="#"
class="dropdown-toggle"
data-toggle="dropdown">
- <b class="caret"></b>
+ <span class="caret"></span>
</a>
- <ul class="dropdown-menu">
+ <ul class="dropdown-menu" role="menu">
<li>Reference Year</li>
- <li><a href="<c:url value="/wikitty/ReferenceYear/search"/>"><i class="icon-th-list icon-black"></i> All years</a></li>
- <li><a href="<c:url value="/wikitty/ReferenceYear/edit/new"/>"><i class="icon-plus icon-black"></i> Add year</a></li>
+ <li><a href="<c:url value="/wikitty/ReferenceYear/search"/>"><span class="glyphicon glyphicon-th-list"></span> All years</a></li>
+ <li><a href="<c:url value="/wikitty/ReferenceYear/edit/new"/>"><span class="glyphicon glyphicon-plus"></span> Add year</a></li>
<li>Employee HR</li>
- <li><a href="<c:url value="/wikitty/EmployeeHR/search"/>"><i class="icon-th-list icon-black"></i> All employees HR</a></li>
- <li><a href="<c:url value="/wikitty/EmployeeHR/edit/new"/>"><i class="icon-plus icon-black"></i> Add employee HR</a>
+ <li><a href="<c:url value="/wikitty/EmployeeHR/search"/>"><span class="glyphicon glyphicon-th-list"></span> All employees HR</a></li>
+ <li><a href="<c:url value="/wikitty/EmployeeHR/edit/new"/>"><span class="glyphicon glyphicon-plus"></span> Add employee HR</a>
<li><a href="<c:url value="/hr/employeeEdit"/>">Employee edit</a></li>
<li><a href="<c:url value="/hr/dashboardAdc"/>">Adc Dashboard</a></li>
<li>Vacation</li>
- <li><a href="<c:url value="/wikitty/Vacation/search"/>"><i class="icon-th-list icon-black"></i> All vacations</a></li>
- <li><a href="<c:url value="/wikitty/Vacation/edit/new"/>"><i class="icon-plus icon-black"></i> Add vacation</a></li>
+ <li><a href="<c:url value="/wikitty/Vacation/search"/>"><span class="glyphicon glyphicon-th-list"></span> All vacations</a></li>
+ <li><a href="<c:url value="/wikitty/Vacation/edit/new"/>"><span class="glyphicon glyphicon-plus"></span> Add vacation</a></li>
<li>Vacation Request</li>
- <li><a href="<c:url value="/wikitty/VacationRequest/search"/>"><i class="icon-th-list icon-black"></i> All requests</a></li>
- <li><a href="<c:url value="/wikitty/VacationRequest/edit/new"/>"><i class="icon-plus icon-black"></i> Add request</a></li>
- <li><a href="<c:url value="/report?report=requestVacation"/>"><i class="icon-th-list icon-black"></i> Dashboard vacations</a></li>
- <li><a href="<c:url value="/hr/vacationRequest/edit/new"/>"><i class="icon-plus icon-black"></i> Add Leave Request</a></li>
+ <li><a href="<c:url value="/wikitty/VacationRequest/search"/>"><span class="glyphicon glyphicon-th-list"></span> All requests</a></li>
+ <li><a href="<c:url value="/wikitty/VacationRequest/edit/new"/>"><span class="glyphicon glyphicon-plus"></span> Add request</a></li>
+ <li><a href="<c:url value="/report?report=requestVacation"/>"><span class="glyphicon glyphicon-th-list"></span> Dashboard vacations</a></li>
+ <li><a href="<c:url value="/hr/vacationRequest/edit/new"/>"><span class="glyphicon glyphicon-plus"></span> Add Leave Request</a></li>
</ul>
</li>
<li class="dropdown nav-group">
@@ -220,12 +220,12 @@
<a href="#"
class="dropdown-toggle"
data-toggle="dropdown">
- <b class="caret"></b>
+ <span class="caret"></span>
</a>
- <ul class="dropdown-menu">
+ <ul class="dropdown-menu" role="menu">
<li>User</li>
- <li><a href="<c:url value="/wikitty/WikittyUser/search"/>"><i class="icon-th-list icon-black"></i> All users</a></li>
- <li><a href="<c:url value="/wikitty/WikittyUser/edit/new"/>"><i class="icon-plus icon-black"></i> Add user</a></li>
+ <li><a href="<c:url value="/wikitty/WikittyUser/search"/>"><span class="glyphicon glyphicon-th-list"></span> All users</a></li>
+ <li><a href="<c:url value="/wikitty/WikittyUser/edit/new"/>"><span class="glyphicon glyphicon-plus"></span> Add user</a></li>
<li class="divider"></li>
<li><a href="<c:url value="/admin/variables"/>">Variables</a></li>
<li class="divider"></li>
@@ -233,12 +233,12 @@
<li class="divider"></li>
<li><a href="<c:url value="/admin/reindex"/>">Reindex</a></li>
<li class="divider"></li>
-
+
</ul>
</li>
</ul>
-
- <form class="navbar-search pull-left" action="<c:url value="/wikitty/search"/>">
+
+ <form class="navbar-form navbar-right" action="<c:url value="/wikitty/search"/>">
<input type="text" class="search-query" placeholder="Search" name="query" value="${fn:escapeXml(param.query)}"/>
</form>
</div>
Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/salesReports/menu.jsp
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/salesReports/menu.jsp 2014-07-07 11:56:49 UTC (rev 418)
+++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/salesReports/menu.jsp 2014-07-10 09:34:48 UTC (rev 419)
@@ -20,10 +20,10 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
#L%
--%>
-<ul class="nav nav-list">
- <li><a href="sales"><i class="icon-chevron-right"></i> Ventes</a></li>
- <li><a href="#"><i class="icon-chevron-right"></i> Ventes par client</a></li>
- <li><a href="salesPerProject"><i class="icon-chevron-right"></i> Ventes par projet</a></li>
- <li><a href="sentQuotation"><i class="icon-chevron-right"></i> Devis envoy�s</a></li>
- <li><a href="acceptedQuotation"><i class="icon-chevron-right"></i> Devis accept�s</a></li>
+<ul class="list-group">
+ <li class="list-group-item"><a href="sales"><i class="icon-chevron-right"></i> Ventes</a></li>
+ <li class="list-group-item"><a href="#"><i class="icon-chevron-right"></i> Ventes par client</a></li>
+ <li class="list-group-item"><a href="salesPerProject"><i class="icon-chevron-right"></i> Ventes par projet</a></li>
+ <li class="list-group-item"><a href="sentQuotation"><i class="icon-chevron-right"></i> Devis envoy�s</a></li>
+ <li class="list-group-item"><a href="acceptedQuotation"><i class="icon-chevron-right"></i> Devis accept�s</a></li>
</ul>
\ No newline at end of file
Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/wro.xml
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/WEB-INF/wro.xml 2014-07-07 11:56:49 UTC (rev 418)
+++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/wro.xml 2014-07-10 09:34:48 UTC (rev 419)
@@ -24,7 +24,8 @@
<group name='chorem-lib'>
<group-ref>jquery</group-ref>
- <group-ref>bootstrap-responsive</group-ref>
+ <group-ref>bootstrap</group-ref>
+ <group-ref>bootstrap-theme</group-ref>
<group-ref>jquery-ui</group-ref>
<group-ref>jquery-ui-cupertino</group-ref>
<group-ref>jquery-ui-fr</group-ref>
Modified: trunk/chorem-webmotion/src/main/webapp/js/jquery.fn.gantt.js
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/js/jquery.fn.gantt.js 2014-07-07 11:56:49 UTC (rev 418)
+++ trunk/chorem-webmotion/src/main/webapp/js/jquery.fn.gantt.js 2014-07-10 09:34:48 UTC (rev 419)
@@ -213,13 +213,14 @@
// Normalizes for IE
elementFromPoint: function (x, y) {
- if ($.browser.msie) {
- x -= $(document).scrollLeft();
- y -= $(document).scrollTop();
- } else {
- x -= window.pageXOffset;
- y -= window.pageYOffset;
- }
+ //XXX ymartel - 2014/07/07 : $.browser has been removed from jquery, do we still need it ?
+// if ($.browser.msie) {
+// x -= $(document).scrollLeft();
+// y -= $(document).scrollTop();
+// } else {
+ x -= window.pageXOffset;
+ y -= window.pageYOffset;
+// }
return document.elementFromPoint(x, y);
},
Copied: trunk/chorem-webmotion/src/main/webapp/js/jquery.maskedinput-1.3-1.js (from rev 416, trunk/chorem-webmotion/src/main/webapp/js/jquery.maskedinput-1.3.js)
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/js/jquery.maskedinput-1.3-1.js (rev 0)
+++ trunk/chorem-webmotion/src/main/webapp/js/jquery.maskedinput-1.3-1.js 2014-07-10 09:34:48 UTC (rev 419)
@@ -0,0 +1,381 @@
+/*
+ * %%Ignore-License
+ *
+ Masked Input plugin for jQuery
+ Copyright (c) 2007-2013 Josh Bush (digitalbush.com)
+ Licensed under the MIT license (http://digitalbush.com/projects/masked-input-plugin/#license)
+ Version: 1.3.1
+
+<script src="jquery.js" type="text/javascript"></script>
+<script src="jquery.maskedinput.js" type="text/javascript"></script>
+
+jQuery(function($){
+ $("#date").mask("99/99/9999");
+ $("#phone").mask("(999) 999-9999");
+ $("#tin").mask("99-9999999");
+ $("#ssn").mask("999-99-9999");
+});
+
+Optionally, if you are not satisfied with the underscore ('_') character as a
+placeholder, you may pass an optional argument to the maskedinput method.
+
+jQuery(function($){
+ $("#product").mask("99/99/9999",{placeholder:" "});
+});
+
+Optionally, if you would like to execute a function once the mask has been
+completed, you can specify that function as an optional argument to the
+maskedinput method.
+
+jQuery(function($){
+ $("#product").mask("99/99/9999",
+ {completed:function(){alert("You typed thefollowing: "+this.val());}});
+});
+
+You can now supply your own mask definitions.
+
+jQuery(function($){
+ $.mask.definitions['~']='[+-]';
+ $("#eyescript").mask("~9.99 ~9.99 999");
+});
+
+You can have part of your mask be optional. Anything listed after '?' within the
+mask is considered optional user input. The common example for this is phone
+number + optional extension.
+
+jQuery(function($){
+ $("#phone").mask("(999) 999-9999? x99999");
+});
+*/
+(function($) {
+ function getPasteEvent() {
+ var el = document.createElement('input'),
+ name = 'onpaste';
+ el.setAttribute(name, '');
+ return (typeof el[name] === 'function')?'paste':'input';
+}
+
+var pasteEventName = getPasteEvent() + ".mask",
+ ua = navigator.userAgent,
+ iPhone = /iphone/i.test(ua),
+ android=/android/i.test(ua),
+ caretTimeoutId;
+
+$.mask = {
+ //Predefined character definitions
+ definitions: {
+ '9': "[0-9]",
+ 'a': "[A-Za-z]",
+ '*': "[A-Za-z0-9]"
+ },
+ dataName: "rawMaskFn",
+ placeholder: '_',
+};
+
+$.fn.extend({
+ //Helper Function for Caret positioning
+ caret: function(begin, end) {
+ var range;
+
+ if (this.length === 0 || this.is(":hidden")) {
+ return;
+ }
+
+ if (typeof begin == 'number') {
+ end = (typeof end === 'number') ? end : begin;
+ return this.each(function() {
+ if (this.setSelectionRange) {
+ this.setSelectionRange(begin, end);
+ } else if (this.createTextRange) {
+ range = this.createTextRange();
+ range.collapse(true);
+ range.moveEnd('character', end);
+ range.moveStart('character', begin);
+ range.select();
+ }
+ });
+ } else {
+ if (this[0].setSelectionRange) {
+ begin = this[0].selectionStart;
+ end = this[0].selectionEnd;
+ } else if (document.selection && document.selection.createRange) {
+ range = document.selection.createRange();
+ begin = 0 - range.duplicate().moveStart('character', -100000);
+ end = begin + range.text.length;
+ }
+ return { begin: begin, end: end };
+ }
+ },
+ unmask: function() {
+ return this.trigger("unmask");
+ },
+ mask: function(mask, settings) {
+ var input,
+ defs,
+ tests,
+ partialPosition,
+ firstNonMaskPos,
+ len;
+
+ if (!mask && this.length > 0) {
+ input = $(this[0]);
+ return input.data($.mask.dataName)();
+ }
+ settings = $.extend({
+ placeholder: $.mask.placeholder, // Load default placeholder
+ completed: null
+ }, settings);
+
+
+ defs = $.mask.definitions;
+ tests = [];
+ partialPosition = len = mask.length;
+ firstNonMaskPos = null;
+
+ $.each(mask.split(""), function(i, c) {
+ if (c == '?') {
+ len--;
+ partialPosition = i;
+ } else if (defs[c]) {
+ tests.push(new RegExp(defs[c]));
+ if (firstNonMaskPos === null) {
+ firstNonMaskPos = tests.length - 1;
+ }
+ } else {
+ tests.push(null);
+ }
+ });
+
+ return this.trigger("unmask").each(function() {
+ var input = $(this),
+ buffer = $.map(
+ mask.split(""),
+ function(c, i) {
+ if (c != '?') {
+ return defs[c] ? settings.placeholder : c;
+ }
+ }),
+ focusText = input.val();
+
+ function seekNext(pos) {
+ while (++pos < len && !tests[pos]);
+ return pos;
+ }
+
+ function seekPrev(pos) {
+ while (--pos >= 0 && !tests[pos]);
+ return pos;
+ }
+
+ function shiftL(begin,end) {
+ var i,
+ j;
+
+ if (begin<0) {
+ return;
+ }
+
+ for (i = begin, j = seekNext(end); i < len; i++) {
+ if (tests[i]) {
+ if (j < len && tests[i].test(buffer[j])) {
+ buffer[i] = buffer[j];
+ buffer[j] = settings.placeholder;
+ } else {
+ break;
+ }
+
+ j = seekNext(j);
+ }
+ }
+ writeBuffer();
+ input.caret(Math.max(firstNonMaskPos, begin));
+ }
+
+ function shiftR(pos) {
+ var i,
+ c,
+ j,
+ t;
+
+ for (i = pos, c = settings.placeholder; i < len; i++) {
+ if (tests[i]) {
+ j = seekNext(i);
+ t = buffer[i];
+ buffer[i] = c;
+ if (j < len && tests[j].test(t)) {
+ c = t;
+ } else {
+ break;
+ }
+ }
+ }
+ }
+
+ function keydownEvent(e) {
+ var k = e.which,
+ pos,
+ begin,
+ end;
+
+ //backspace, delete, and escape get special treatment
+ if (k === 8 || k === 46 || (iPhone && k === 127)) {
+ pos = input.caret();
+ begin = pos.begin;
+ end = pos.end;
+
+ if (end - begin === 0) {
+ begin=k!==46?seekPrev(begin):(end=seekNext(begin-1));
+ end=k===46?seekNext(end):end;
+ }
+ clearBuffer(begin, end);
+ shiftL(begin, end - 1);
+
+ e.preventDefault();
+ } else if (k == 27) {//escape
+ input.val(focusText);
+ input.caret(0, checkVal());
+ e.preventDefault();
+ }
+ }
+
+ function keypressEvent(e) {
+ var k = e.which,
+ pos = input.caret(),
+ p,
+ c,
+ next;
+
+ if (e.ctrlKey || e.altKey || e.metaKey || k < 32) {//Ignore
+ return;
+ } else if (k) {
+ if (pos.end - pos.begin !== 0){
+ clearBuffer(pos.begin, pos.end);
+ shiftL(pos.begin, pos.end-1);
+ }
+
+ p = seekNext(pos.begin - 1);
+ if (p < len) {
+ c = String.fromCharCode(k);
+ if (tests[p].test(c)) {
+ shiftR(p);
+
+ buffer[p] = c;
+ writeBuffer();
+ next = seekNext(p);
+
+ if(android){
+ setTimeout($.proxy($.fn.caret,input,next),0);
+ }else{
+ input.caret(next);
+ }
+
+ if (settings.completed && next >= len) {
+ settings.completed.call(input);
+ }
+ }
+ }
+ e.preventDefault();
+ }
+ }
+
+ function clearBuffer(start, end) {
+ var i;
+ for (i = start; i < end && i < len; i++) {
+ if (tests[i]) {
+ buffer[i] = settings.placeholder;
+ }
+ }
+ }
+
+ function writeBuffer() { input.val(buffer.join('')); }
+
+ function checkVal(allow) {
+ //try to place characters where they belong
+ var test = input.val(),
+ lastMatch = -1,
+ i,
+ c;
+
+ for (i = 0, pos = 0; i < len; i++) {
+ if (tests[i]) {
+ buffer[i] = settings.placeholder;
+ while (pos++ < test.length) {
+ c = test.charAt(pos - 1);
+ if (tests[i].test(c)) {
+ buffer[i] = c;
+ lastMatch = i;
+ break;
+ }
+ }
+ if (pos > test.length) {
+ break;
+ }
+ } else if (buffer[i] === test.charAt(pos) && i !== partialPosition) {
+ pos++;
+ lastMatch = i;
+ }
+ }
+ if (allow) {
+ writeBuffer();
+ } else if (lastMatch + 1 < partialPosition) {
+ input.val("");
+ clearBuffer(0, len);
+ } else {
+ writeBuffer();
+ input.val(input.val().substring(0, lastMatch + 1));
+ }
+ return (partialPosition ? i : firstNonMaskPos);
+ }
+
+ input.data($.mask.dataName,function(){
+ return $.map(buffer, function(c, i) {
+ return tests[i]&&c!=settings.placeholder ? c : null;
+ }).join('');
+ });
+
+ if (!input.attr("readonly"))
+ input
+ .one("unmask", function() {
+ input
+ .unbind(".mask")
+ .removeData($.mask.dataName);
+ })
+ .bind("focus.mask", function() {
+ clearTimeout(caretTimeoutId);
+ var pos,
+ moveCaret;
+
+ focusText = input.val();
+ pos = checkVal();
+
+ caretTimeoutId = setTimeout(function(){
+ writeBuffer();
+ if (pos == mask.length) {
+ input.caret(0, pos);
+ } else {
+ input.caret(pos);
+ }
+ }, 10);
+ })
+ .bind("blur.mask", function() {
+ checkVal();
+ if (input.val() != focusText)
+ input.change();
+ })
+ .bind("keydown.mask", keydownEvent)
+ .bind("keypress.mask", keypressEvent)
+ .bind(pasteEventName, function() {
+ setTimeout(function() {
+ var pos=checkVal(true);
+ input.caret(pos);
+ if (settings.completed && pos == input.val().length)
+ settings.completed.call(input);
+ }, 0);
+ });
+ checkVal(); //Perform initial check for existing values
+ });
+ }
+});
+
+
+})(jQuery);
Deleted: trunk/chorem-webmotion/src/main/webapp/js/jquery.maskedinput-1.3.js
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/js/jquery.maskedinput-1.3.js 2014-07-07 11:56:49 UTC (rev 418)
+++ trunk/chorem-webmotion/src/main/webapp/js/jquery.maskedinput-1.3.js 2014-07-10 09:34:48 UTC (rev 419)
@@ -1,301 +0,0 @@
-/*
- * %%Ignore-License
- *
- Masked Input plugin for jQuery
- Copyright (c) 2007-2011 Josh Bush (digitalbush.com)
- Licensed under the MIT license (http://digitalbush.com/projects/masked-input-plugin/#license)
- Version: 1.3
-
-<script src="jquery.js" type="text/javascript"></script>
-<script src="jquery.maskedinput.js" type="text/javascript"></script>
-
-jQuery(function($){
- $("#date").mask("99/99/9999");
- $("#phone").mask("(999) 999-9999");
- $("#tin").mask("99-9999999");
- $("#ssn").mask("999-99-9999");
-});
-
-Optionally, if you are not satisfied with the underscore ('_') character as a
-placeholder, you may pass an optional argument to the maskedinput method.
-
-jQuery(function($){
- $("#product").mask("99/99/9999",{placeholder:" "});
-});
-
-Optionally, if you would like to execute a function once the mask has been
-completed, you can specify that function as an optional argument to the
-maskedinput method.
-
-jQuery(function($){
- $("#product").mask("99/99/9999",
- {completed:function(){alert("You typed thefollowing: "+this.val());}});
-});
-
-You can now supply your own mask definitions.
-
-jQuery(function($){
- $.mask.definitions['~']='[+-]';
- $("#eyescript").mask("~9.99 ~9.99 999");
-});
-
-You can have part of your mask be optional. Anything listed after '?' within the
-mask is considered optional user input. The common example for this is phone
-number + optional extension.
-
-jQuery(function($){
- $("#phone").mask("(999) 999-9999? x99999");
-});
-*/
-(function($) {
- var pasteEventName = ($.browser.msie ? 'paste' : 'input') + ".mask";
- var iPhone = (window.orientation != undefined);
-
- $.mask = {
- //Predefined character definitions
- definitions: {
- '9': "[0-9]",
- 'a': "[A-Za-z]",
- '*': "[A-Za-z0-9]"
- },
- dataName:"rawMaskFn"
- };
-
- $.fn.extend({
- //Helper Function for Caret positioning
- caret: function(begin, end) {
- if (this.length == 0) return;
- if (typeof begin == 'number') {
- end = (typeof end == 'number') ? end : begin;
- return this.each(function() {
- if (this.setSelectionRange) {
- this.setSelectionRange(begin, end);
- } else if (this.createTextRange) {
- var range = this.createTextRange();
- range.collapse(true);
- range.moveEnd('character', end);
- range.moveStart('character', begin);
- range.select();
- }
- });
- } else {
- if (this[0].setSelectionRange) {
- begin = this[0].selectionStart;
- end = this[0].selectionEnd;
- } else if (document.selection && document.selection.createRange) {
- var range = document.selection.createRange();
- begin = 0 - range.duplicate().moveStart('character', -100000);
- end = begin + range.text.length;
- }
- return { begin: begin, end: end };
- }
- },
- unmask: function() { return this.trigger("unmask"); },
- mask: function(mask, settings) {
- if (!mask && this.length > 0) {
- var input = $(this[0]);
- return input.data($.mask.dataName)();
- }
- settings = $.extend({
- placeholder: "_",
- completed: null
- }, settings);
-
- var defs = $.mask.definitions;
- var tests = [];
- var partialPosition = mask.length;
- var firstNonMaskPos = null;
- var len = mask.length;
-
- $.each(mask.split(""), function(i, c) {
- if (c == '?') {
- len--;
- partialPosition = i;
- } else if (defs[c]) {
- tests.push(new RegExp(defs[c]));
- if(firstNonMaskPos==null)
- firstNonMaskPos = tests.length - 1;
- } else {
- tests.push(null);
- }
- });
-
- return this.trigger("unmask").each(function() {
- var input = $(this);
- var buffer = $.map(mask.split(""), function(c, i) { if (c != '?') return defs[c] ? settings.placeholder : c });
- var focusText = input.val();
-
- function seekNext(pos) {
- while (++pos <= len && !tests[pos]);
- return pos;
- };
- function seekPrev(pos) {
- while (--pos >= 0 && !tests[pos]);
- return pos;
- };
-
- function shiftL(begin,end) {
- if(begin<0)
- return;
- for (var i = begin,j = seekNext(end); i < len; i++) {
- if (tests[i]) {
- if (j < len && tests[i].test(buffer[j])) {
- buffer[i] = buffer[j];
- buffer[j] = settings.placeholder;
- } else
- break;
- j = seekNext(j);
- }
- }
- writeBuffer();
- input.caret(Math.max(firstNonMaskPos, begin));
- };
-
- function shiftR(pos) {
- for (var i = pos, c = settings.placeholder; i < len; i++) {
- if (tests[i]) {
- var j = seekNext(i);
- var t = buffer[i];
- buffer[i] = c;
- if (j < len && tests[j].test(t))
- c = t;
- else
- break;
- }
- }
- };
-
- function keydownEvent(e) {
- var k=e.which;
-
- //backspace, delete, and escape get special treatment
- if(k == 8 || k == 46 || (iPhone && k == 127)){
- var pos = input.caret(),
- begin = pos.begin,
- end = pos.end;
-
- if(end-begin==0){
- begin=k!=46?seekPrev(begin):(end=seekNext(begin-1));
- end=k==46?seekNext(end):end;
- }
- clearBuffer(begin, end);
- shiftL(begin,end-1);
-
- return false;
- } else if (k == 27) {//escape
- input.val(focusText);
- input.caret(0, checkVal());
- return false;
- }
- };
-
- function keypressEvent(e) {
- var k = e.which,
- pos = input.caret();
- if (e.ctrlKey || e.altKey || e.metaKey || k<32) {//Ignore
- return true;
- } else if (k) {
- if(pos.end-pos.begin!=0){
- clearBuffer(pos.begin, pos.end);
- shiftL(pos.begin, pos.end-1);
- }
-
- var p = seekNext(pos.begin - 1);
- if (p < len) {
- var c = String.fromCharCode(k);
- if (tests[p].test(c)) {
- shiftR(p);
- buffer[p] = c;
- writeBuffer();
- var next = seekNext(p);
- input.caret(next);
- if (settings.completed && next >= len)
- settings.completed.call(input);
- }
- }
- return false;
- }
- };
-
- function clearBuffer(start, end) {
- for (var i = start; i < end && i < len; i++) {
- if (tests[i])
- buffer[i] = settings.placeholder;
- }
- };
-
- function writeBuffer() { return input.val(buffer.join('')).val(); };
-
- function checkVal(allow) {
- //try to place characters where they belong
- var test = input.val();
- var lastMatch = -1;
- for (var i = 0, pos = 0; i < len; i++) {
- if (tests[i]) {
- buffer[i] = settings.placeholder;
- while (pos++ < test.length) {
- var c = test.charAt(pos - 1);
- if (tests[i].test(c)) {
- buffer[i] = c;
- lastMatch = i;
- break;
- }
- }
- if (pos > test.length)
- break;
- } else if (buffer[i] == test.charAt(pos) && i!=partialPosition) {
- pos++;
- lastMatch = i;
- }
- }
- if (!allow && lastMatch + 1 < partialPosition) {
- input.val("");
- clearBuffer(0, len);
- } else if (allow || lastMatch + 1 >= partialPosition) {
- writeBuffer();
- if (!allow) input.val(input.val().substring(0, lastMatch + 1));
- }
- return (partialPosition ? i : firstNonMaskPos);
- };
-
- input.data($.mask.dataName,function(){
- return $.map(buffer, function(c, i) {
- return tests[i]&&c!=settings.placeholder ? c : null;
- }).join('');
- })
-
- if (!input.attr("readonly"))
- input
- .one("unmask", function() {
- input
- .unbind(".mask")
- .removeData($.mask.dataName);
- })
- .bind("focus.mask", function() {
- focusText = input.val();
- var pos = checkVal();
- writeBuffer();
- var moveCaret=function(){
- if (pos == mask.length)
- input.caret(0, pos);
- else
- input.caret(pos);
- };
- ($.browser.msie ? moveCaret:function(){setTimeout(moveCaret,0)})();
- })
- .bind("blur.mask", function() {
- checkVal();
- if (input.val() != focusText)
- input.change();
- })
- .bind("keydown.mask", keydownEvent)
- .bind("keypress.mask", keypressEvent)
- .bind(pasteEventName, function() {
- setTimeout(function() { input.caret(checkVal(true)); }, 0);
- });
-
- checkVal(); //Perform initial check for existing values
- });
- }
- });
-})(jQuery);
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-07-07 11:56:49 UTC (rev 418)
+++ trunk/pom.xml 2014-07-10 09:34:48 UTC (rev 419)
@@ -5,7 +5,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>4.6</version>
+ <version>5.0.5</version>
</parent>
<groupId>org.chorem</groupId>
@@ -75,7 +75,7 @@
</scm>
<distributionManagement>
<site>
- <id>${platform}</id>
+ <id>doc.${platform}</id>
<url>${our.site.repository}/${projectId}</url>
</site>
</distributionManagement>
@@ -106,10 +106,10 @@
<nuitonjsWro.version>1.0.2</nuitonjsWro.version>
<nuitonjsAngularjs.version>1.2.12-1</nuitonjsAngularjs.version>
- <nuitonjsJquery.version>1.8.3-1</nuitonjsJquery.version>
+ <nuitonjsJquery.version>2.1.1-1</nuitonjsJquery.version>
<nuitonjsJqueryui.version>1.10.4-1</nuitonjsJqueryui.version>
- <nuitonjsJqplot.version>1.0.4r1121-1</nuitonjsJqplot.version>
- <nuitonjsBootstrap.version>3.2.0-1</nuitonjsBootstrap.version>
+ <nuitonjsJqplot.version>1.0.8r1250-1-SNAPSHOT</nuitonjsJqplot.version>
+ <nuitonjsBootstrap.version>3.2.0-2-SNAPSHOT</nuitonjsBootstrap.version>
<!-- license to use -->
<license.licenseName>agpl_v3</license.licenseName>
1
0
Author: ymartel
Date: 2014-07-07 13:56:49 +0200 (Mon, 07 Jul 2014)
New Revision: 418
Url: http://forge.chorem.org/projects/chorem/repository/revisions/418
Log:
some upgrades
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-07-07 09:00:39 UTC (rev 417)
+++ trunk/pom.xml 2014-07-07 11:56:49 UTC (rev 418)
@@ -84,30 +84,33 @@
<platform>chorem.org</platform>
<projectId>chorem</projectId>
+ <guavaVersion>17.0</guavaVersion>
+ <gsonVersion>2.2.4</gsonVersion>
<opencsvVersion>2.3</opencsvVersion>
+ <slf4jVersion>1.7.7</slf4jVersion>
+ <javaxMailVersion>1.5.0-b01</javaxMailVersion>
+ <servletApiVersion>3.0-alpha-1</servletApiVersion>
+ <jspApiVersion>2.0</jspApiVersion>
+ <h2Version>1.4.179</h2Version>
+ <jstlVersion>1.2</jstlVersion>
+ <webmotionVersion>2.4</webmotionVersion>
<processPluginVersion>1.1</processPluginVersion>
<eugenePluginVersion>2.7.4</eugenePluginVersion>
- <nuitonUtilsVersion>3.0-rc-2</nuitonUtilsVersion>
+
+ <nuitonCsvVersion>3.0-rc-2</nuitonCsvVersion>
+ <nuitonUtilsVersion>3.0-rc-3</nuitonUtilsVersion>
+ <nuitonI18nVersion>3.1</nuitonI18nVersion>
<nuitonConfigVersion>3.0-alpha-2</nuitonConfigVersion>
- <nuitonWebVersion>1.7</nuitonWebVersion>
- <nuitonI18nVersion>3.0</nuitonI18nVersion>
- <nuitonCsvVersion>3.0-alpha-3</nuitonCsvVersion>
+ <nuitonWebVersion>1.16</nuitonWebVersion>
<wikittyVersion>3.11-SNAPSHOT</wikittyVersion>
- <slf4jVersion>1.7.6</slf4jVersion>
- <javaxMailVersion>1.5.0-b01</javaxMailVersion>
- <servletApiVersion>3.0-alpha-1</servletApiVersion>
- <jspApiVersion>2.0</jspApiVersion>
- <h2Version>1.3.175</h2Version>
- <webmotionVersion>2.4</webmotionVersion>
- <jstlVersion>1.2</jstlVersion>
+
+ <nuitonjsWro.version>1.0.2</nuitonjsWro.version>
<nuitonjsAngularjs.version>1.2.12-1</nuitonjsAngularjs.version>
<nuitonjsJquery.version>1.8.3-1</nuitonjsJquery.version>
- <nuitonjsJqueryui.version>1.9.2-1</nuitonjsJqueryui.version>
+ <nuitonjsJqueryui.version>1.10.4-1</nuitonjsJqueryui.version>
<nuitonjsJqplot.version>1.0.4r1121-1</nuitonjsJqplot.version>
- <nuitonjsBootstrap.version>2.3.2-1</nuitonjsBootstrap.version>
+ <nuitonjsBootstrap.version>3.2.0-1</nuitonjsBootstrap.version>
- <gsonVersion>2.2.4</gsonVersion>
-
<!-- license to use -->
<license.licenseName>agpl_v3</license.licenseName>
@@ -254,7 +257,7 @@
<dependency>
<groupId>org.nuiton.js</groupId>
<artifactId>nuiton-js-wro</artifactId>
- <version>1.0.2</version>
+ <version>${nuitonjsWro.version}</version>
</dependency>
<dependency>
<groupId>org.nuiton.js</groupId>
1
0
r417 - in trunk/chorem-webmotion/src/main: java/org/chorem/webmotion/actions/financial java/org/chorem/webmotion/bean/financial webapp/WEB-INF/jsp/financial webapp/js/financial
by ymartel@users.chorem.org 07 Jul '14
by ymartel@users.chorem.org 07 Jul '14
07 Jul '14
Author: ymartel
Date: 2014-07-07 11:00:39 +0200 (Mon, 07 Jul 2014)
New Revision: 417
Url: http://forge.chorem.org/projects/chorem/repository/revisions/417
Log:
UI is ready to create expense accounts
Modified:
trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/financial/ExpenseAccountAction.java
trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/bean/financial/ExpenseAccountEntryBean.java
trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountEntryEdit.html
trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountView.jsp
trunk/chorem-webmotion/src/main/webapp/js/financial/expenseAccount.js
Modified: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/financial/ExpenseAccountAction.java
===================================================================
--- trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/financial/ExpenseAccountAction.java 2014-07-04 09:47:25 UTC (rev 416)
+++ trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/financial/ExpenseAccountAction.java 2014-07-07 09:00:39 UTC (rev 417)
@@ -33,19 +33,25 @@
import com.google.common.base.Function;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;
+import com.google.gson.Gson;
+import org.apache.commons.lang3.StringUtils;
import org.chorem.ChoremClient;
+import org.chorem.entities.Category;
import org.chorem.entities.CategoryImpl;
import org.chorem.entities.Employee;
import org.chorem.entities.EmployeeImpl;
import org.chorem.entities.ExpenseAccount;
+import org.chorem.entities.ExpenseAccountEntry;
import org.chorem.entities.ExpenseAccountEntryImpl;
import org.chorem.entities.ExpenseAccountImpl;
+import org.chorem.entities.Project;
import org.chorem.webmotion.PaginatedResult;
import org.chorem.webmotion.bean.financial.ExpenseAccountBean;
import org.chorem.webmotion.bean.financial.ExpenseAccountEntryBean;
import org.debux.webmotion.server.WebMotionController;
import org.debux.webmotion.server.render.Render;
import org.nuiton.util.DateUtil;
+import org.nuiton.wikitty.entities.Wikitty;
import org.nuiton.wikitty.query.WikittyQuery;
import org.nuiton.wikitty.query.WikittyQueryMaker;
import org.nuiton.wikitty.query.WikittyQueryResult;
@@ -124,8 +130,34 @@
Employee employee = client.restore(Employee.class, employeeId);
if (expenseAccountWikitty == null) {
expenseAccountWikitty = new ExpenseAccountImpl();
+ expenseAccountWikitty.setEmployee(employee);
}
- //TODO ymartel 2014/04/11 just do it
+ expenseAccountWikitty.setBeginDate(expenseAccount.getStartDate());
+ expenseAccountWikitty.setEndDate(expenseAccount.getEndDate());
+ Set<ExpenseAccountEntryBean> expenseAccountEntries = expenseAccount.getExpenseAccountEntries();
+ if (expenseAccountEntries != null) {
+ for (ExpenseAccountEntryBean expenseAccountEntryBean : expenseAccountEntries) {
+ ExpenseAccountEntry expenseAccountEntry = new ExpenseAccountEntryImpl();
+ expenseAccountEntry.setReference(expenseAccountEntryBean.getJustificationNumber());
+ expenseAccountEntry.setEmittedDate(new Date(expenseAccountEntryBean.getEmittedDate()));
+ expenseAccountEntry.setDescription(expenseAccountEntryBean.getDescription());
+ expenseAccountEntry.setAmount(expenseAccountEntryBean.getAmount());
+ expenseAccountEntry.setVAT(expenseAccountEntryBean.getVAT());
+ String projectId = expenseAccountEntryBean.getProjectId();
+ if (StringUtils.isNotBlank(projectId)) {
+ Wikitty project = client.restore(projectId);
+ expenseAccountEntry.setTarget(project);
+ }
+ String categoryId = expenseAccountEntryBean.getCategoryId();
+ if (StringUtils.isNotBlank(categoryId)) {
+ Category category = client.restore(Category.class, categoryId);
+ expenseAccountEntry.setCategory(category);
+ }
+
+ expenseAccountWikitty.addExpenseAccountEntry(expenseAccountEntry);
+ }
+ }
+ client.store(expenseAccountWikitty);
}
public Render findExpenseAccount(ChoremClient client, String expenseAccountId) {
@@ -137,39 +169,6 @@
if (expenseAccount == null) {
expenseAccount = new ExpenseAccountImpl();
-// expenseAccountBean.setId("new");n
-//
-// //XXX ymartel 2014/04/08 Some Fake datas, just for test
-// employee = client.findAllByExample(new EmployeeImpl(), 0, 1).get(0);
-// expenseAccountBean.setEmployeeName(employee.toString());
-// expenseAccountBean.setEmployeeId(employee.getWikittyId());
-//
-// expenseAccountBean.setMonth(3);
-// expenseAccountBean.setYear(2014);
-//
-// int capacity = categories.size();
-// expenseAccountEntries = new HashSet<>(capacity);
-// Random random = new Random();
-// for (CategoryImpl category : categories) {
-// ExpenseAccountEntryBean expenseAccountEntry = new ExpenseAccountEntryBean();
-// int randomInt = random.nextInt(capacity);
-// expenseAccountEntry.setEmittedDate(DateUtil.createDate(01, 03, 2014).getTime());
-// expenseAccountEntry.setDescription("blabla" + randomInt);
-// expenseAccountEntry.setJustificationNumber(String.valueOf(randomInt));
-// double amount = random.nextDouble();
-// expenseAccountEntry.setAmount(amount);
-// double vat = random.nextDouble();
-// expenseAccountEntry.setVAT(vat);
-// expenseAccountEntry.setTotal(amount + vat);
-// expenseAccountEntry.setCategoryName(category.toString());
-// expenseAccountEntry.setProjectName("aucun");
-// if (random.nextBoolean()) {
-// expenseAccountEntry.setPaymentDate(DateUtil.createDate(31, 03, 2014).getTime());
-// }
-// expenseAccountEntries.add(expenseAccountEntry);
-// }
-// expenseAccountBean.setExpenseAccountEntries(expenseAccountEntries);
-
}
ExpenseAccountBean expenseAccountBean = TRANSFORM_EXPENSE_ACCOUNT_TO_BEAN.apply(expenseAccount);
Modified: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/bean/financial/ExpenseAccountEntryBean.java
===================================================================
--- trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/bean/financial/ExpenseAccountEntryBean.java 2014-07-04 09:47:25 UTC (rev 416)
+++ trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/bean/financial/ExpenseAccountEntryBean.java 2014-07-07 09:00:39 UTC (rev 417)
@@ -31,6 +31,7 @@
public class ExpenseAccountEntryBean implements Serializable {
protected String categoryName;
+ protected String categoryId;
protected long emittedDate;
protected long paymentDate;
protected String description;
@@ -49,6 +50,14 @@
this.categoryName = categoryName;
}
+ public String getCategoryId() {
+ return categoryId;
+ }
+
+ public void setCategoryId(String categoryId) {
+ this.categoryId = categoryId;
+ }
+
public long getEmittedDate() {
return emittedDate;
}
Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountEntryEdit.html
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountEntryEdit.html 2014-07-04 09:47:25 UTC (rev 416)
+++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountEntryEdit.html 2014-07-07 09:00:39 UTC (rev 417)
@@ -1,8 +1,15 @@
+
<td><input type="text" ng-model="newExpenseAccountEntry.justificationNumber" name="newExpenseAccountEntry.justificationNumber" size="10" style='width:100%'></td>
<td><input type="date" ng-model="newExpenseAccountEntry.emittedDate" name="newExpenseAccountEntry.emittedDate" size="10" maxlength="10" style='width:90%'></td>
- <td><input type="text" ng-model="newExpenseAccountEntry.project" name="newExpenseAccountEntry.project" size="4" style='width:100%'></td>
+ <td>
+ <input type="text" ng-model="newExpenseAccountEntry.projectName" name="newExpenseAccountEntry.project" size="4" style='width:100%' id="text-newExpenseAccountEntry-project" auto-complete data-source="Project" data-model="newExpenseAccountEntry" data-base-field="project">
+ <input type="hidden" ng-model="newExpenseAccountEntry.projectId" id="hidden-newExpenseAccountEntry-project"/>
+ </td>
<td><input type="text" ng-model="newExpenseAccountEntry.description" name="newExpenseAccountEntry.description" style='width:100%'></td>
- <td><input type="text" ng-model="newExpenseAccountEntry.category" name="newExpenseAccountEntry.category" style='width:100%'></td>
+ <td>
+ <input type="text" ng-model="newExpenseAccountEntry.categoryName" name="newExpenseAccountEntry.category" style='width:100%' id="text-newExpenseAccountEntry-category" auto-complete data-source="Category" data-model="newExpenseAccountEntry" data-base-field="category">
+ <input type="hidden" ng-model="newExpenseAccountEntry.categoryId" id="hidden-newExpenseAccountEntry-category"/>
+ </td>
<td><input type="number" ng-model="newExpenseAccountEntry.amount" name="newExpenseAccountEntry.amount" min="0" style='width:100%'></td>
<td><input type="number" ng-model="newExpenseAccountEntry.VAT" name="newExpenseAccountEntry.VAT" min="0" style='width:100%'></td>
<td>{{(newExpenseAccountEntry.amount * 1) + (newExpenseAccountEntry.VAT * 1)}}</td>
Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountView.jsp
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountView.jsp 2014-07-04 09:47:25 UTC (rev 416)
+++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountView.jsp 2014-07-07 09:00:39 UTC (rev 417)
@@ -44,27 +44,13 @@
<dl>
<dd ng-if="expenseAccount && expenseAccount.employeeId"><a href="<c:url value="/wikitty/view/{{expenseAccount.employeeId}}"/>">{{expenseAccount.employeeName}}</a></dd>
<dd ng-if="!expenseAccount || !expenseAccount.employeeId">
- <input type="text" ng-model="expenseAccount.employeeName" id="text-expenseAccount-employee" auto-complete auto-complete-source=<c:url value="/wikitty-json/search?extension=Employee"/> />
+ <input type="text" ng-model="expenseAccount.employeeName" id="text-expenseAccount-employee" auto-complete data-source="Employee" data-model="expenseAccount" data-base-field="employee" />
<input type="hidden" ng-model="expenseAccount.employeeId" id="hidden-expenseAccount-employee"/>
- <!-- script>
- $(function() {
- $( "#text-expenseAccount-employee" ).autocompleteByExtension({
- source: "<c:url value="/wikitty-json/search?extension=Employee"/>",
- minLength: 2,
- select: function( event, ui ) {
- $( "#text-expenseAccount-employee" ).val( ui.item.label );
- $( "#hidden-expenseAccount-employee" ).val( ui.item.id );
- return false;
- }
- });
- });
- </script -->
-
</dd>
<dd ng-if="editPeriod == false">Period from {{expenseAccount.startDate |date}} to {{expenseAccount.endDate |date}}</dd>
- <dd ng-if="editPeriod == true">StartDate : <input type="date" ng-model="newExpenseAccount.startDate" name="newExpenseAccount.startDate"></dd>
- <dd ng-if="editPeriod == true">EndDate : <input type="date" ng-model="newExpenseAccount.endDate" name="newExpenseAccount.endDate"></dd>
+ <dd ng-if="editPeriod == true">StartDate : <input type="date" ng-model="expenseAccount.startDate" name="expenseAccount.startDate"></dd>
+ <dd ng-if="editPeriod == true">EndDate : <input type="date" ng-model="expenseAccount.endDate" name="expenseAccount.endDate"></dd>
</dl>
</div>
Modified: trunk/chorem-webmotion/src/main/webapp/js/financial/expenseAccount.js
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/js/financial/expenseAccount.js 2014-07-04 09:47:25 UTC (rev 416)
+++ trunk/chorem-webmotion/src/main/webapp/js/financial/expenseAccount.js 2014-07-07 09:00:39 UTC (rev 417)
@@ -60,22 +60,21 @@
app.directive("autoComplete", function() {
return {
- restrict : "A" ,
- require : '^ngModel',
- link : function (scope, element, attrs) {
+ require : 'ngModel',
+ link : function ($scope, element, attrs) {
// prevent html5/browser auto completion
attrs.$set('autocomplete','off');
- scope.autocomplete = $(element).autocompleteByExtension({
- source: scope.baseURL + "wikitty-json/search?extension=Employee",
- minLength: 2,
- select: function(event, ui) {
- scope.expenseAccount.employeeName = ui.item.label;
- scope.expenseAccount.employeeId = ui.item.id;
- return true;
- }
- });
+ $scope.autocomplete = $(element).autocompleteByExtension({
+ source: $scope.baseURL + "wikitty-json/search?extension=" + $(element).data("source"),
+ minLength: 2,
+ select: function(event, ui) {
+ $scope[$(element).data("model")][$(element).data("baseField") + "Name"] = ui.item.label;
+ $scope[$(element).data("model")][$(element).data("baseField") + "Id"] = ui.item.id;
+ return true;
+ }
+ });
}
}
});
\ No newline at end of file
1
0
r416 - in trunk/chorem-webmotion/src/main/webapp: WEB-INF/jsp/financial js/financial
by ymartel@users.chorem.org 04 Jul '14
by ymartel@users.chorem.org 04 Jul '14
04 Jul '14
Author: ymartel
Date: 2014-07-04 11:47:25 +0200 (Fri, 04 Jul 2014)
New Revision: 416
Url: http://forge.chorem.org/projects/chorem/repository/revisions/416
Log:
bind the employee with ExpenseAccount in scope
Modified:
trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountView.jsp
trunk/chorem-webmotion/src/main/webapp/js/financial/expenseAccount.js
Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountView.jsp
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountView.jsp 2014-07-03 15:58:51 UTC (rev 415)
+++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountView.jsp 2014-07-04 09:47:25 UTC (rev 416)
@@ -33,7 +33,8 @@
<script>
angular.module('expenseAccountPage').value('expenseAccountInit', {
expenseAccount: ${expenseAccount.toJson()},
- saveURL: "<c:url value="/financial/expenseAccounts"/>"
+ saveURL: "<c:url value="/financial/expenseAccounts"/>",
+ baseURL: "<c:url value="/"/>"
});
</script>
</head>
@@ -43,9 +44,9 @@
<dl>
<dd ng-if="expenseAccount && expenseAccount.employeeId"><a href="<c:url value="/wikitty/view/{{expenseAccount.employeeId}}"/>">{{expenseAccount.employeeName}}</a></dd>
<dd ng-if="!expenseAccount || !expenseAccount.employeeId">
- <input type="text" ng-model="expenseAccount.employeeName" id="text-expenseAccount-employee" />
+ <input type="text" ng-model="expenseAccount.employeeName" id="text-expenseAccount-employee" auto-complete auto-complete-source=<c:url value="/wikitty-json/search?extension=Employee"/> />
<input type="hidden" ng-model="expenseAccount.employeeId" id="hidden-expenseAccount-employee"/>
- <script>
+ <!-- script>
$(function() {
$( "#text-expenseAccount-employee" ).autocompleteByExtension({
source: "<c:url value="/wikitty-json/search?extension=Employee"/>",
@@ -58,7 +59,7 @@
}
});
});
- </script>
+ </script -->
</dd>
<dd ng-if="editPeriod == false">Period from {{expenseAccount.startDate |date}} to {{expenseAccount.endDate |date}}</dd>
Modified: trunk/chorem-webmotion/src/main/webapp/js/financial/expenseAccount.js
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/js/financial/expenseAccount.js 2014-07-03 15:58:51 UTC (rev 415)
+++ trunk/chorem-webmotion/src/main/webapp/js/financial/expenseAccount.js 2014-07-04 09:47:25 UTC (rev 416)
@@ -6,7 +6,7 @@
$scope.expenseAccount = expenseAccountInit.expenseAccount;
$scope.editPeriod = expenseAccountInit && expenseAccountInit.id ? false : true;
- $scope.saveURL = expenseAccountInit.saveURL;
+ $scope.baseURL = expenseAccountInit.baseURL;
$scope.newLine = function() {
if ($scope.showNewLine === true) {
@@ -27,6 +27,10 @@
}
}
+ $scope.ac_options = {
+ baseURL : $scope.baseURL,
+ };
+
$scope.addLine = function() {
if(!$scope.expenseAccount.expenseAccountEntries) {
@@ -44,13 +48,34 @@
console.log($scope.expenseAccount)
- url = $scope.saveURL + "/" + $scope.expenseAccount.id;
+ url = $scope.baseURL + "financial/expenseAccounts/" + $scope.expenseAccount.id;
$resource('url', $scope.expenseAccount, {'update' : {method:'PUT'}}).update(function(result) {
console.log("saved!");
});
}
+});
-});
+app.directive("autoComplete", function() {
+ return {
+ restrict : "A" ,
+ require : '^ngModel',
+ link : function (scope, element, attrs) {
+
+ // prevent html5/browser auto completion
+ attrs.$set('autocomplete','off');
+
+ scope.autocomplete = $(element).autocompleteByExtension({
+ source: scope.baseURL + "wikitty-json/search?extension=Employee",
+ minLength: 2,
+ select: function(event, ui) {
+ scope.expenseAccount.employeeName = ui.item.label;
+ scope.expenseAccount.employeeId = ui.item.id;
+ return true;
+ }
+ });
+ }
+ }
+});
\ No newline at end of file
1
0
r415 - in trunk: chorem-entities/src/main/xmi chorem-webmotion/src/main/java/org/chorem/webmotion/actions/financial chorem-webmotion/src/main/java/org/chorem/webmotion/bean/financial chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial chorem-webmotion/src/main/webapp/js/financial
by ymartel@users.chorem.org 03 Jul '14
by ymartel@users.chorem.org 03 Jul '14
03 Jul '14
Author: ymartel
Date: 2014-07-03 17:58:51 +0200 (Thu, 03 Jul 2014)
New Revision: 415
Url: http://forge.chorem.org/projects/chorem/repository/revisions/415
Log:
prepare Expense Account edition
Modified:
trunk/chorem-entities/src/main/xmi/chorem-model.properties
trunk/chorem-entities/src/main/xmi/chorem-model.zargo
trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/financial/ExpenseAccountAction.java
trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/bean/financial/ExpenseAccountBean.java
trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountEntryEdit.html
trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountView.jsp
trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccounts.jsp
trunk/chorem-webmotion/src/main/webapp/js/financial/expenseAccount.js
Modified: trunk/chorem-entities/src/main/xmi/chorem-model.properties
===================================================================
--- trunk/chorem-entities/src/main/xmi/chorem-model.properties 2014-04-11 16:19:46 UTC (rev 414)
+++ trunk/chorem-entities/src/main/xmi/chorem-model.properties 2014-07-03 15:58:51 UTC (rev 415)
@@ -193,8 +193,8 @@
#
org.chorem.entities.ExpenseAccount.class.tagvalue.version=1.0
org.chorem.entities.ExpenseAccount.class.tagvalue.preload=ExpenseAccount.employee
-org.chorem.entities.ExpenseAccount.class.tagvalue.toString=%ExpenseAccount.employee$s - %ExpenseAccount.month$s/%ExpenseAccount.year$s
-org.chorem.entities.ExpenseAccount.class.tagvalue.sortOrder=ExpenseAccount.year,ExpenseAccount.month
+org.chorem.entities.ExpenseAccount.class.tagvalue.toString=%ExpenseAccount.employee$s - %Interval.beginDate$s/%Interval.endDate$s
+org.chorem.entities.ExpenseAccount.class.tagvalue.sortOrder=Interval.beginDate,Interval.endDate
#
# ExpenseAccountEntry
Modified: trunk/chorem-entities/src/main/xmi/chorem-model.zargo
===================================================================
(Binary files differ)
Modified: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/financial/ExpenseAccountAction.java
===================================================================
--- trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/financial/ExpenseAccountAction.java 2014-04-11 16:19:46 UTC (rev 414)
+++ trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/financial/ExpenseAccountAction.java 2014-07-03 15:58:51 UTC (rev 415)
@@ -27,27 +27,23 @@
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
-import java.util.HashSet;
import java.util.List;
-import java.util.Map;
-import java.util.Random;
import java.util.Set;
import com.google.common.base.Function;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;
-import com.google.gson.Gson;
import org.chorem.ChoremClient;
import org.chorem.entities.CategoryImpl;
import org.chorem.entities.Employee;
import org.chorem.entities.EmployeeImpl;
import org.chorem.entities.ExpenseAccount;
+import org.chorem.entities.ExpenseAccountEntryImpl;
import org.chorem.entities.ExpenseAccountImpl;
import org.chorem.webmotion.PaginatedResult;
import org.chorem.webmotion.bean.financial.ExpenseAccountBean;
import org.chorem.webmotion.bean.financial.ExpenseAccountEntryBean;
import org.debux.webmotion.server.WebMotionController;
-import org.debux.webmotion.server.call.Call;
import org.debux.webmotion.server.render.Render;
import org.nuiton.util.DateUtil;
import org.nuiton.wikitty.query.WikittyQuery;
@@ -59,21 +55,22 @@
*/
public class ExpenseAccountAction extends WebMotionController {
- public PaginatedResult<ExpenseAccountBean> findAllExpenseAccounts(ChoremClient client, Integer year, Integer mounth, int page, int count) {
+ public PaginatedResult<ExpenseAccountBean> findAllExpenseAccounts(ChoremClient client, Integer year, Integer month, int page, int count) {
- if (mounth == null) {
- mounth = DateUtil.getMonth(new Date());
+ if (month == null) {
+ month = DateUtil.getMonth(new Date());
}
if (year == null) {
Calendar calendar = Calendar.getInstance();
year = calendar.get(Calendar.YEAR);
}
+ Date refDate = DateUtil.createDate(1, month, year);
WikittyQuery totalQuery = new WikittyQueryMaker()
- .select().count(ExpenseAccount.ELEMENT_FIELD_EXPENSEACCOUNT_MONTH).where().and()
+ .select().count(ExpenseAccount.ELEMENT_FIELD_INTERVAL_BEGINDATE).where().and()
.exteq(ExpenseAccount.EXT_EXPENSEACCOUNT)
- .eq(ExpenseAccount.ELEMENT_FIELD_EXPENSEACCOUNT_MONTH, mounth)
- .eq(ExpenseAccount.ELEMENT_FIELD_EXPENSEACCOUNT_YEAR, year)
+ .le(ExpenseAccount.ELEMENT_FIELD_INTERVAL_BEGINDATE, refDate)
+ .ge(ExpenseAccount.ELEMENT_FIELD_INTERVAL_ENDDATE, refDate)
.end();
Integer nbExpenseAccounts = client.findByQuery(Integer.class, totalQuery);
@@ -84,8 +81,8 @@
WikittyQuery expAccountsQuery = new WikittyQueryMaker()
.where().and()
.exteq(ExpenseAccount.EXT_EXPENSEACCOUNT)
- .eq(ExpenseAccount.ELEMENT_FIELD_EXPENSEACCOUNT_MONTH, mounth)
- .eq(ExpenseAccount.ELEMENT_FIELD_EXPENSEACCOUNT_YEAR, year)
+ .le(ExpenseAccount.ELEMENT_FIELD_INTERVAL_BEGINDATE, refDate)
+ .ge(ExpenseAccount.ELEMENT_FIELD_INTERVAL_ENDDATE, refDate)
.end()
.setOffset((page - 1) * count)
.setLimit(page * count);
@@ -102,14 +99,14 @@
Employee employee = client.findAllByExample(new EmployeeImpl(), 0, 1).get(0);
ExpenseAccountBean fakeOne = new ExpenseAccountBean();
fakeOne.setId("fake");
- fakeOne.setMonth(03);
- fakeOne.setYear(2014);
+ fakeOne.setStartDate(DateUtil.createDate(1, 3, 2014));
+ fakeOne.setEndDate(DateUtil.createDate(31, 3, 2014));
fakeOne.setEmployeeName(employee.toString());
fakeOne.setEmployeeId(employee.getWikittyId());
ExpenseAccountBean fakeTwo = new ExpenseAccountBean();
fakeTwo.setId("fake");
- fakeTwo.setMonth(mounth);
- fakeTwo.setYear(year);
+ fakeTwo.setStartDate(DateUtil.createDate(1, 4, 2014));
+ fakeTwo.setEndDate(DateUtil.createDate(30, 4, 2014));
fakeTwo.setEmployeeName(employee.toString());
fakeTwo.setEmployeeId(employee.getWikittyId());
ArrayList<ExpenseAccountBean> expenseAccounts = new ArrayList<>();
@@ -122,12 +119,12 @@
}
public void saveExpenseAccount(ChoremClient client, String expenseAccountId, ExpenseAccountBean expenseAccount) {
- ExpenseAccount expenseAccountWikitty = client.restore(ExpenseAccount.class, expenseAccountId);
+ ExpenseAccountImpl expenseAccountWikitty = client.restore(ExpenseAccountImpl.class, expenseAccountId);
+ String employeeId = expenseAccount.getEmployeeId();
+ Employee employee = client.restore(Employee.class, employeeId);
if (expenseAccountWikitty == null) {
expenseAccountWikitty = new ExpenseAccountImpl();
}
- String json = expenseAccount.toJson();
- expenseAccount.toString();
//TODO ymartel 2014/04/11 just do it
}
@@ -137,45 +134,46 @@
WikittyQueryResult<CategoryImpl> categoriesResult = client.findAllByExample(new CategoryImpl(), 0, 10);
List<CategoryImpl> categories = categoriesResult.getAll();
- ExpenseAccountBean expenseAccountBean = null;
-
if (expenseAccount == null) {
- expenseAccountBean = new ExpenseAccountBean();
- expenseAccountBean.setId("new");
- //XXX ymartel 2014/04/08 Some Fake datas, just for test
- Employee employee = client.findAllByExample(new EmployeeImpl(), 0, 1).get(0);
- expenseAccountBean.setEmployeeName(employee.toString());
- expenseAccountBean.setEmployeeId(employee.getWikittyId());
+ expenseAccount = new ExpenseAccountImpl();
+// expenseAccountBean.setId("new");n
+//
+// //XXX ymartel 2014/04/08 Some Fake datas, just for test
+// employee = client.findAllByExample(new EmployeeImpl(), 0, 1).get(0);
+// expenseAccountBean.setEmployeeName(employee.toString());
+// expenseAccountBean.setEmployeeId(employee.getWikittyId());
+//
+// expenseAccountBean.setMonth(3);
+// expenseAccountBean.setYear(2014);
+//
+// int capacity = categories.size();
+// expenseAccountEntries = new HashSet<>(capacity);
+// Random random = new Random();
+// for (CategoryImpl category : categories) {
+// ExpenseAccountEntryBean expenseAccountEntry = new ExpenseAccountEntryBean();
+// int randomInt = random.nextInt(capacity);
+// expenseAccountEntry.setEmittedDate(DateUtil.createDate(01, 03, 2014).getTime());
+// expenseAccountEntry.setDescription("blabla" + randomInt);
+// expenseAccountEntry.setJustificationNumber(String.valueOf(randomInt));
+// double amount = random.nextDouble();
+// expenseAccountEntry.setAmount(amount);
+// double vat = random.nextDouble();
+// expenseAccountEntry.setVAT(vat);
+// expenseAccountEntry.setTotal(amount + vat);
+// expenseAccountEntry.setCategoryName(category.toString());
+// expenseAccountEntry.setProjectName("aucun");
+// if (random.nextBoolean()) {
+// expenseAccountEntry.setPaymentDate(DateUtil.createDate(31, 03, 2014).getTime());
+// }
+// expenseAccountEntries.add(expenseAccountEntry);
+// }
+// expenseAccountBean.setExpenseAccountEntries(expenseAccountEntries);
- expenseAccountBean.setMonth(3);
- expenseAccountBean.setYear(2014);
-
- int capacity = categories.size();
- expenseAccountEntries = new HashSet<>(capacity);
- Random random = new Random();
- for (CategoryImpl category : categories) {
- ExpenseAccountEntryBean expenseAccountEntry = new ExpenseAccountEntryBean();
- int randomInt = random.nextInt(capacity);
- expenseAccountEntry.setEmittedDate(DateUtil.createDate(01, 03, 2014).getTime());
- expenseAccountEntry.setDescription("blabla" + randomInt);
- expenseAccountEntry.setJustificationNumber(String.valueOf(randomInt));
- double amount = random.nextDouble();
- expenseAccountEntry.setAmount(amount);
- double vat = random.nextDouble();
- expenseAccountEntry.setVAT(vat);
- expenseAccountEntry.setTotal(amount + vat);
- expenseAccountEntry.setCategoryName(category.toString());
- expenseAccountEntry.setProjectName("aucun");
- if (random.nextBoolean()) {
- expenseAccountEntry.setPaymentDate(DateUtil.createDate(31, 03, 2014).getTime());
- }
- expenseAccountEntries.add(expenseAccountEntry);
- }
- expenseAccountBean.setExpenseAccountEntries(expenseAccountEntries);
-
}
+ ExpenseAccountBean expenseAccountBean = TRANSFORM_EXPENSE_ACCOUNT_TO_BEAN.apply(expenseAccount);
+
return renderView("financial/expenseAccountView.jsp", "expenseAccount", expenseAccountBean);
}
@@ -188,8 +186,9 @@
Employee employee = expenseAccount.getEmployee(false);
expenseAccountBean.setEmployeeName(employee != null ? employee.toString() : null);
expenseAccountBean.setEmployeeId(employee != null ? employee.getWikittyId() : null);
- expenseAccountBean.setMonth(expenseAccount.getMonth());
- expenseAccountBean.setYear(expenseAccount.getYear());
+ expenseAccountBean.setStartDate(expenseAccount.getBeginDate());
+ expenseAccountBean.setEndDate(expenseAccount.getEndDate());
+ expenseAccountBean.setEndDate(expenseAccount.getEndDate());
return expenseAccountBean;
}
};
Modified: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/bean/financial/ExpenseAccountBean.java
===================================================================
--- trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/bean/financial/ExpenseAccountBean.java 2014-04-11 16:19:46 UTC (rev 414)
+++ trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/bean/financial/ExpenseAccountBean.java 2014-07-03 15:58:51 UTC (rev 415)
@@ -24,6 +24,7 @@
*/
import java.io.Serializable;
+import java.util.Date;
import java.util.Set;
import com.google.gson.Gson;
@@ -36,8 +37,8 @@
protected String id;
protected String employeeName;
protected String employeeId;
- protected int month;
- protected int year;
+ protected Date startDate;
+ protected Date endDate;
protected Set<ExpenseAccountEntryBean> expenseAccountEntries;
public String getId() {
@@ -64,20 +65,20 @@
this.employeeId = employeeId;
}
- public int getMonth() {
- return month;
+ public Date getStartDate() {
+ return startDate;
}
- public void setMonth(int month) {
- this.month = month;
+ public void setStartDate(Date startDate) {
+ this.startDate = startDate;
}
- public int getYear() {
- return year;
+ public Date getEndDate() {
+ return endDate;
}
- public void setYear(int year) {
- this.year = year;
+ public void setEndDate(Date endDate) {
+ this.endDate = endDate;
}
public Set<ExpenseAccountEntryBean> getExpenseAccountEntries() {
Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountEntryEdit.html
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountEntryEdit.html 2014-04-11 16:19:46 UTC (rev 414)
+++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountEntryEdit.html 2014-07-03 15:58:51 UTC (rev 415)
@@ -1,9 +1,9 @@
- <td><input type="text" ng-model="newExpenseAccountEntry.justificationNumber" name="newExpenseAccountEntry.justificationNumber" size="10"></td>
- <td><input type="date" ng-model="newExpenseAccountEntry.emittedDate" name="newExpenseAccountEntry.emittedDate" size="10" maxlength="10"></td>
- <td><input type="text" ng-model="newExpenseAccountEntry.project" name="newExpenseAccountEntry.project" size="4"></td>
- <td><input type="text" ng-model="newExpenseAccountEntry.description" name="newExpenseAccountEntry.description" class="w100"></td>
- <td><input type="text" ng-model="newExpenseAccountEntry.category" name="newExpenseAccountEntry.category" class="w100"></td>
- <td><input type="number" ng-model="newExpenseAccountEntry.amount" name="newExpenseAccountEntry.amount" class="w100"></td>
- <td><input type="number" ng-model="newExpenseAccountEntry.VAT" name="newExpenseAccountEntry.VAT" class="w100"></td>
- <td><input type="number" ng-model="newExpenseAccountEntry.total" name="newExpenseAccountEntry.total"></td>
+ <td><input type="text" ng-model="newExpenseAccountEntry.justificationNumber" name="newExpenseAccountEntry.justificationNumber" size="10" style='width:100%'></td>
+ <td><input type="date" ng-model="newExpenseAccountEntry.emittedDate" name="newExpenseAccountEntry.emittedDate" size="10" maxlength="10" style='width:90%'></td>
+ <td><input type="text" ng-model="newExpenseAccountEntry.project" name="newExpenseAccountEntry.project" size="4" style='width:100%'></td>
+ <td><input type="text" ng-model="newExpenseAccountEntry.description" name="newExpenseAccountEntry.description" style='width:100%'></td>
+ <td><input type="text" ng-model="newExpenseAccountEntry.category" name="newExpenseAccountEntry.category" style='width:100%'></td>
+ <td><input type="number" ng-model="newExpenseAccountEntry.amount" name="newExpenseAccountEntry.amount" min="0" style='width:100%'></td>
+ <td><input type="number" ng-model="newExpenseAccountEntry.VAT" name="newExpenseAccountEntry.VAT" min="0" style='width:100%'></td>
+ <td>{{(newExpenseAccountEntry.amount * 1) + (newExpenseAccountEntry.VAT * 1)}}</td>
<td><a class="btn btn-success" ng-click="addLine()"><i class="icon-pencil icon-white"></i>Validate</a></td>
Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountView.jsp
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountView.jsp 2014-04-11 16:19:46 UTC (rev 414)
+++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountView.jsp 2014-07-03 15:58:51 UTC (rev 415)
@@ -25,8 +25,10 @@
<%@ taglib uri="/WEB-INF/wikitty.tld" prefix="w"%>
<head>
- <script data-require="angular-resource(a)1.2.0-rc.3" data-semver="1.2.0-rc.3" src="<c:url value='http://code.angularjs.org/1.2.0-rc.3/angular-resource.js'/>"></script>
- <link data-require="bootstrap-css@*" data-semver="3.0.0" rel="stylesheet" href="<c:url value='http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css'/>" />
+ <script data-require="angular-resource(a)1.2.10" data-semver="1.2.10" src="<c:url value='http://code.angularjs.org/1.2.10/angular-resource.js'/>"></script>
+ <link data-require="bootstrap-css@*" data-semver="3.1.1" rel="stylesheet" href="<c:url value='http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css'/>" />
+ <script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.11.0.js"></script>
+
<script type="text/javascript" src="<c:url value='/js/financial/expenseAccount.js'/>"></script>
<script>
angular.module('expenseAccountPage').value('expenseAccountInit', {
@@ -39,23 +41,44 @@
<div ng-app='expenseAccountPage' ng-controller="expenseAccountView">
<div >
<dl>
- <dd><a href="<c:url value="/wikitty/view/{{expenseAccount.employeeId}}"/>">{{expenseAccount.employeeName}}</a></dd>
- <dd>Period : {{expenseAccount.month}} / {{expenseAccount.year}}</dd>
+ <dd ng-if="expenseAccount && expenseAccount.employeeId"><a href="<c:url value="/wikitty/view/{{expenseAccount.employeeId}}"/>">{{expenseAccount.employeeName}}</a></dd>
+ <dd ng-if="!expenseAccount || !expenseAccount.employeeId">
+ <input type="text" ng-model="expenseAccount.employeeName" id="text-expenseAccount-employee" />
+ <input type="hidden" ng-model="expenseAccount.employeeId" id="hidden-expenseAccount-employee"/>
+ <script>
+ $(function() {
+ $( "#text-expenseAccount-employee" ).autocompleteByExtension({
+ source: "<c:url value="/wikitty-json/search?extension=Employee"/>",
+ minLength: 2,
+ select: function( event, ui ) {
+ $( "#text-expenseAccount-employee" ).val( ui.item.label );
+ $( "#hidden-expenseAccount-employee" ).val( ui.item.id );
+
+ return false;
+ }
+ });
+ });
+ </script>
+
+ </dd>
+ <dd ng-if="editPeriod == false">Period from {{expenseAccount.startDate |date}} to {{expenseAccount.endDate |date}}</dd>
+ <dd ng-if="editPeriod == true">StartDate : <input type="date" ng-model="newExpenseAccount.startDate" name="newExpenseAccount.startDate"></dd>
+ <dd ng-if="editPeriod == true">EndDate : <input type="date" ng-model="newExpenseAccount.endDate" name="newExpenseAccount.endDate"></dd>
</dl>
</div>
<div>
<table>
<tr>
- <th>Justif. Nb</th>
- <th>Emitted Date</th>
- <th>Project</th>
- <th>Description</th>
- <th>Category</th>
- <th>Amount</th>
- <th>VAT</th>
- <th>total</th>
- <th>Payment Date</th>
+ <th style='width:15%'>Justif. Nb</th>
+ <th style='width:15%'>Emitted Date</th>
+ <th style='width:10%'>Project</th>
+ <th style='width:15%'>Description</th>
+ <th style='width:15%%'>Category</th>
+ <th style='width:7%'>Amount</th>
+ <th style='width:7%'>VAT</th>
+ <th style='width:6%'>total</th>
+ <th style='width:10%'>Payment Date</th>
</tr>
<tr ng-repeat="expenseEntry in expenseAccount.expenseAccountEntries">
<td>{{expenseEntry.justificationNumber}}</td>
@@ -73,8 +96,9 @@
</div>
<a class="btn btn-success" ng-click="newLine()"><i class="icon-list icon-white"></i> New entry</a>
<div ng-if="hasChanged == true">
- <a class="btn btn-success" ng-click="saveExpenseAccount()"><i class="icon-od icon-white"></i>Save</a>
+ <a class="btn btn-success" ng-click="saveExpenseAccount()"><i class="icon-od icon-white"></i>Save</a>
</div>
+
</div>
</div>
Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccounts.jsp
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccounts.jsp 2014-04-11 16:19:46 UTC (rev 414)
+++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccounts.jsp 2014-07-03 15:58:51 UTC (rev 415)
@@ -47,11 +47,11 @@
<td data-title="'Employee'">
<a href="<c:url value="/wikitty/view/{{expenseAccount.employeeId}}"/>">{{expenseAccount.employeeName}}</a>
</td>
- <td data-title="'Month'">
- {{expenseAccount.month}}
+ <td data-title="'Start Date'">
+ {{expenseAccount.startDate |date}}
</td>
- <td data-title="'Year'">
- {{expenseAccount.year}}
+ <td data-title="'End Date'">
+ {{expenseAccount.endDate |date}}
</td>
<td>
<a class="btn btn-success" href="<c:url value="/financial/expenseAccounts/{{expenseAccount.id}}"/>">See it</a>
Modified: trunk/chorem-webmotion/src/main/webapp/js/financial/expenseAccount.js
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/js/financial/expenseAccount.js 2014-04-11 16:19:46 UTC (rev 414)
+++ trunk/chorem-webmotion/src/main/webapp/js/financial/expenseAccount.js 2014-07-03 15:58:51 UTC (rev 415)
@@ -1,9 +1,11 @@
-var app = angular.module('expenseAccountPage', ['ngResource']);
+var app = angular.module('expenseAccountPage', ['ngResource', 'ui.bootstrap']);
-app.controller("expenseAccountView", function($scope, $resource, expenseAccountInit) {
+app.controller("expenseAccountView", function($scope, $resource, $modal, $log, expenseAccountInit) {
$scope.showNewLine = false;
$scope.expenseAccount = expenseAccountInit.expenseAccount;
+ $scope.editPeriod = expenseAccountInit && expenseAccountInit.id ? false : true;
+
$scope.saveURL = expenseAccountInit.saveURL;
$scope.newLine = function() {
@@ -27,6 +29,10 @@
$scope.addLine = function() {
+ if(!$scope.expenseAccount.expenseAccountEntries) {
+ $scope.expenseAccount.expenseAccountEntries = [];
+ }
+ $scope.newExpenseAccountEntry.total = $scope.newExpenseAccountEntry.amount + $scope.newExpenseAccountEntry.VAT;
$scope.expenseAccount.expenseAccountEntries.push($scope.newExpenseAccountEntry);
$scope.hasChanged = true;
1
0
11 Apr '14
See <http://ci.chorem.org/jenkins/job/chorem-nightly/1/>
------------------------------------------
[...truncated 685 lines...]
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/cod…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/cod…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/codehaus/mojo…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/ow2/asm/asm-a…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/codehaus/mojo…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/codehaus/mojo… (5 KB at 111.5 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/… (4 KB at 82.3 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/codehaus/plex…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/codehaus/mojo… (31 KB at 595.9 KB/sec)
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/ow2/asm/asm-a… (208 KB at 3101.2 KB/sec)
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/… (6 KB at 80.4 KB/sec)
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/… (32 KB at 587.7 KB/sec)
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/codehaus/plex… (245 KB at 531.9 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer/1.9/an…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/ow2/asm/asm-all/4.0/asm-all-4.0.jar
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/codehaus/mojo/java-boot-classpath-d…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/reporting/maven-report…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/doxia/doxia-sink-api/1…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/codehaus/mojo/java-boot-classpath-d… (5 KB at 177.5 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-plugin-te…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/reporting/maven-report… (6 KB at 149.6 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.5.6/…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/doxia/doxia-sink-api/1… (4 KB at 101.3 KB/sec)
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-plugin-te… (32 KB at 1175.3 KB/sec)
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/ow2/asm/asm-all/4.0/asm-all-4.0.jar (208 KB at 3521.7 KB/sec)
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer/1.9/an… (31 KB at 499.8 KB/sec)
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.5.6/… (245 KB at 2422.5 KB/sec)
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java16:1.1
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/cod…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/codehaus/mojo…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/codehaus/mojo… (584 KB at 6709.1 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/codehaus/mojo/signature/java16/1.1/…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/codehaus/mojo/signature/java16/1.1/… (584 KB at 6787.1 KB/sec)
[INFO]
[INFO] --- jredmine-maven-plugin:1.6:generate-changes (jredmine-generate-changes) @ chorem ---
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/nui…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/nui… (8 KB at 99.1 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/nuiton/jredmi…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/nuiton/jredmi… (8 KB at 220.0 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/nuiton/jredmine/jredmine-client/1.6…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/nuiton/jredmine/jredmine-client/1.6… (8 KB at 62.8 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/commons…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/commons-codec/com…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/commons-codec/com… (11 KB at 155.2 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.7/commons…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.7/commons… (11 KB at 387.9 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/common…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/common… (47 KB at 483.8 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/26/co…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/26/co… (47 KB at 1738.1 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/httpco…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/httpco… (5 KB at 38.7 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcore/4.2.…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcore/4.2.… (5 KB at 183.0 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/httpco…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/httpco… (10 KB at 207.3 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponent…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponent… (10 KB at 337.9 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/cod…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/codehaus/plex…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/codehaus/plex… (3 KB at 38.2 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-i18n/1.0-bet…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-i18n/1.0-bet… (3 KB at 11.8 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/… (19 KB at 242.2 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-changes-…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-changes-… (19 KB at 681.7 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/… (5 KB at 126.2 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/reporting/maven-report…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/reporting/maven-report… (5 KB at 169.9 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/… (6 KB at 187.7 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-filtering…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-filtering… (6 KB at 216.6 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/xmlrpc…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/xmlrpc… (808 B at 11.6 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/xmlrpc/xmlrpc-client/3.0/xml…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/xmlrpc/xmlrpc-client/3.0/xml… (808 B at 29.2 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/xmlrpc…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/xmlrpc… (12 KB at 235.7 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/xmlrpc/xmlrpc/3.0/xmlrpc-3.0…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/xmlrpc/xmlrpc/3.0/xmlrpc-3.0… (12 KB at 426.2 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/xmlrpc…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/xmlrpc… (854 B at 19.4 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/xmlrpc/xmlrpc-common/3.0/xml…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/xmlrpc/xmlrpc-common/3.0/xml… (854 B at 32.1 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/ws/com…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/ws/com… (6 KB at 90.4 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/ws/commons/ws-commons-util/1…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/ws/commons/ws-commons-util/1… (6 KB at 187.4 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/veloci…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/veloci… (11 KB at 109.3 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/velocity/velocity/1.7/veloci…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/velocity/velocity/1.7/veloci… (11 KB at 392.7 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/nui…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/commons…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/cod…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/cod…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/dom4j/d…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/apa…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/nui… (105 KB at 1590.6 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/nuiton/jredmi…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/commons-codec/com…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/httpco…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/codehaus/plex…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/nuiton/jredmi… (105 KB at 2624.5 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/codehaus/plex… (12 KB at 291.3 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/… (204 KB at 2424.7 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/codehaus/plex…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/… (17 KB at 337.3 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/commons-codec/com… (254 KB at 2391.7 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/dom4j/dom4j/1.1/d…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/httpco… (223 KB at 2078.2 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/xmlrpc…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/… (42 KB at 625.8 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/xmlrpc…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/codehaus/plex… (60 KB at 1353.0 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/ws/com…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/maven/… (15 KB at 289.1 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/veloci…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/xmlrpc… (43 KB at 863.2 KB/sec)
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/xmlrpc… (96 KB at 1709.9 KB/sec)
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/ws/com… (35 KB at 895.4 KB/sec)
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/apache/veloci… (439 KB at 5045.6 KB/sec)
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/dom4j/dom4j/1.1/d… (447 KB at 2771.5 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/nuiton/jredmine/jredmine-client/1.6…
[INFO] Downloading: http://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.7/commons…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcore/4.2.…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-i18n/1.0-bet…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-changes-…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.7/commons… (254 KB at 6183.3 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/reporting/maven-report…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcore/4.2.… (223 KB at 4447.4 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-filtering…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/reporting/maven-report… (17 KB at 647.7 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interpolatio…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-filtering… (42 KB at 1612.8 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/doxia/doxia-module-xht…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-changes-… (204 KB at 2514.5 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/dom4j/dom4j/1.1/dom4j-1.1.jar
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interpolatio… (60 KB at 2126.2 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/xmlrpc/xmlrpc-client/3.0/xml…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/doxia/doxia-module-xht… (15 KB at 546.0 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/xmlrpc/xmlrpc-common/3.0/xml…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/xmlrpc/xmlrpc-client/3.0/xml… (43 KB at 1566.6 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/ws/commons/ws-commons-util/1…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/xmlrpc/xmlrpc-common/3.0/xml… (96 KB at 3301.8 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/velocity/velocity/1.7/veloci…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/ws/commons/ws-commons-util/1… (35 KB at 1308.6 KB/sec)
[INFO] Downloaded: http://repo.maven.apache.org/maven2/dom4j/dom4j/1.1/dom4j-1.1.jar (447 KB at 6374.3 KB/sec)
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/apache/velocity/velocity/1.7/veloci… (439 KB at 7440.2 KB/sec)
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/nuiton/jredmine/jredmine-client/1.6… (105 KB at 360.8 KB/sec)
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-i18n/1.0-bet… (12 KB at 38.8 KB/sec)
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Chorem ............................................ FAILURE [19.857s]
[INFO] Chorem :: entities ................................ SKIPPED
[INFO] Chorem :: webmotion ............................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 21.322s
[INFO] Finished at: Sat Feb 15 00:21:23 CET 2014
[INFO] Final Memory: 25M/243M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.nuiton.jredmine:jredmine-maven-plugin:1.6:generate-changes (jredmine-generate-changes) on project chorem: the user 'hudson' could not be retrieve from redmine server. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.nuiton.jredmine:jredmine-maven-plugin:1.6:generate-changes (jredmine-generate-changes) on project chorem: the user 'hudson' could not be retrieve from redmine server.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152)
at org.jvnet.hudson.maven3.launcher.Maven31Launcher.main(Maven31Launcher.java:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238)
at jenkins.maven3.agent.Maven31Main.launch(Maven31Main.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:134)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:69)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:328)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.apache.maven.plugin.MojoExecutionException: the user 'hudson' could not be retrieve from redmine server.
at org.nuiton.jredmine.plugin.AbstractRedmineMojo.failIfSafe(AbstractRedmineMojo.java:396)
at org.nuiton.jredmine.plugin.AbstractRedmineMojoWithProject.init(AbstractRedmineMojoWithProject.java:114)
at org.nuiton.jredmine.plugin.AbstractRedmineMojoWithProjectAndVersion.init(AbstractRedmineMojoWithProjectAndVersion.java:101)
at org.nuiton.jredmine.plugin.GenerateChangesMojo.init(GenerateChangesMojo.java:348)
at org.nuiton.plugin.AbstractPlugin.execute(AbstractPlugin.java:106)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 30 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Sending e-mails to: chorem-commits(a)list.chorem.org
channel stopped
Skipping sonar analysis due to bad build status FAILURE
1
8
Build failed in Jenkins: chorem-nightly » Chorem :: webmotion #6
by admin+ci-chorem.org@codelutin.com 11 Apr '14
by admin+ci-chorem.org@codelutin.com 11 Apr '14
11 Apr '14
See <http://ci.chorem.org/jenkins/job/chorem-nightly/org.chorem.chorem$chorem-we…>
Changes:
[ymartel] review dependencies
------------------------------------------
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Chorem :: webmotion 0.3-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/debux/webmoti…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/snapshots/org/debux/webm…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/debux/webmoti… (2 KB at 1.1 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/snapshots/org/debux/webm…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/debux/webmoti…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/debux/webmoti… (609 B at 1.1 KB/sec)
[WARNING] The POM for org.antlr:stringtemplate:jar:3.2.1 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ chorem-webmotion ---
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (ensure-no-container-api) @ chorem-webmotion ---
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (check-project-files) @ chorem-webmotion ---
[INFO]
[INFO] --- helper-maven-plugin:2.1:share-server-secret (get-redmine-login) @ chorem-webmotion ---
[INFO] Exporting server [redmine-chorem.org] username in ${redmine.username}
[INFO] Exporting server [redmine-chorem.org] privateKey in ${redmine.apiKey}
[INFO]
[INFO] --- maven-processor-plugin:1.1:process (default) @ chorem-webmotion ---
[INFO] Processing 44 files(s).
[INFO]
[INFO] --- license-maven-plugin:1.6:update-project-license (attach-licenses) @ chorem-webmotion ---
[INFO] Will create or update license file [agpl_v3] to <http://ci.chorem.org/jenkins/job/chorem-nightly/org.chorem.chorem$chorem-we…>
[INFO]
[INFO] --- license-maven-plugin:1.6:add-third-party (attach-licenses) @ chorem-webmotion ---
[WARNING] Unable to obtain POM for artifact : org.antlr:stringtemplate:jar:3.2.1:compile
org.apache.maven.project.InvalidProjectModelException: 1 problem was encountered while building the effective model
[FATAL] Non-readable POM /var/local/forge/data/chorem.org/maven/repository/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.pom: input contained no data @
for project for project
at org.apache.maven.project.DefaultMavenProjectBuilder.transformError(DefaultMavenProjectBuilder.java:193)
at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:240)
at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:251)
at org.codehaus.mojo.license.api.DefaultDependenciesTool.loadProjectDependencies(DefaultDependenciesTool.java:206)
at org.codehaus.mojo.license.api.DefaultThirdPartyHelper.loadDependencies(DefaultThirdPartyHelper.java:152)
at org.codehaus.mojo.license.AddThirdPartyMojo.loadDependencies(AddThirdPartyMojo.java:288)
at org.codehaus.mojo.license.AbstractAddThirdPartyMojo.init(AbstractAddThirdPartyMojo.java:386)
at org.codehaus.mojo.license.AbstractLicenseMojo.execute(AbstractLicenseMojo.java:174)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
at org.jvnet.hudson.maven3.launcher.Maven31Launcher.main(Maven31Launcher.java:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238)
at jenkins.maven3.agent.Maven31Main.launch(Maven31Main.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:134)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:69)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:328)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
[INFO] Load missing file <http://ci.chorem.org/jenkins/job/chorem-nightly/org.chorem.chorem$chorem-we…>
[WARNING] dependency [javax.servlet--servlet-api--2.5] does not exist in project, remove it from the missing file.
[WARNING] dependency [jakarta-regexp--jakarta-regexp--1.4] does not exist in project, remove it from the missing file.
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/com/goo…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/com/google/code/g…
[INFO] Downloading: http://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.2.4/gson-2.…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/com/tho…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/com/thoughtworks/…
[INFO] Downloading: http://repo.maven.apache.org/maven2/com/thoughtworks/paranamer/paranamer/2.…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/commons…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/commons-configura…
[INFO] Downloading: http://repo.maven.apache.org/maven2/commons-configuration/commons-configura…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/javax/s…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/javax/servlet/jst…
[INFO] Downloading: http://repo.maven.apache.org/maven2/javax/servlet/jstl/1.2/jstl-1.2-third-p…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/javax/v…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/javax/validation/…
[INFO] Downloading: http://repo.maven.apache.org/maven2/javax/validation/validation-api/1.0.0.G…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/net/sou…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/net/sourceforge/j…
[INFO] Downloading: http://repo.maven.apache.org/maven2/net/sourceforge/javacsv/javacsv/2.0/jav…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/ant…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/antlr/ST4/4.0…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/antlr/ST4/4.0.4/ST4-4.0.4-third-par…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/ant…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/antlr/antlr-r…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/antlr/antlr-runtime/3.3/antlr-runti…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/bou…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/bouncycastle/…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk16/1.46/bcpr…
[INFO] Detects third party descriptor /var/local/forge/data/chorem.org/jenkins/workspace/chorem-nightly/trunk/chorem-entities/src/license/THIRD-PARTY.properties
[INFO] Load missing file /var/local/forge/data/chorem.org/jenkins/workspace/chorem-nightly/trunk/chorem-entities/src/license/THIRD-PARTY.properties
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/snapshots/org/debux/webm…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/debux/webmoti…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/ecl…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/eclipse/jetty…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-http/8.1.1.v201…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/ecl…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/eclipse/jetty…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-io/8.1.1.v20120…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/ecl…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/eclipse/jetty…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-util/8.1.1.v201…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/ecl…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/eclipse/jetty…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-websocket/8.1.1…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/hib…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/hibernate/hib…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-validator/4.2.0…
[INFO] Detects third party descriptor /var/local/forge/data/chorem.org/maven/repository/org/nuiton/nuiton-config/3.0-alpha-2/nuiton-config-3.0-alpha-2-third-party.properties
[INFO] Load missing file /var/local/forge/data/chorem.org/maven/repository/org/nuiton/nuiton-config/3.0-alpha-2/nuiton-config-3.0-alpha-2-third-party.properties
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/nui…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/nui… (884 B at 21.6 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/nuiton/nuiton…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/nuiton/nuiton… (884 B at 34.5 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/nuiton/nuiton-csv/3.0-alpha-3/nuito…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/nuiton/nuiton-csv/3.0-alpha-3/nuito… (884 B at 2.6 KB/sec)
[INFO] Detects third party descriptor /var/local/forge/data/chorem.org/maven/repository/org/nuiton/nuiton-csv/3.0-alpha-3/nuiton-csv-3.0-alpha-3-third-party.properties
[INFO] Load missing file /var/local/forge/data/chorem.org/maven/repository/org/nuiton/nuiton-csv/3.0-alpha-3/nuiton-csv-3.0-alpha-3-third-party.properties
[INFO] Detects third party descriptor /var/local/forge/data/chorem.org/maven/repository/org/nuiton/nuiton-utils/3.0-rc-2/nuiton-utils-3.0-rc-2-third-party.properties
[INFO] Load missing file /var/local/forge/data/chorem.org/maven/repository/org/nuiton/nuiton-utils/3.0-rc-2/nuiton-utils-3.0-rc-2-third-party.properties
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/nui…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/nui… (859 B at 30.0 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/nuiton/js/nui…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/nuiton/js/nui… (859 B at 24.0 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/nuiton/js/nuiton-js-angularjs/1.2.1…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/nuiton/js/nuiton-js-angularjs/1.2.1… (859 B at 2.5 KB/sec)
[INFO] Detects third party descriptor /var/local/forge/data/chorem.org/maven/repository/org/nuiton/js/nuiton-js-angularjs/1.2.12-1/nuiton-js-angularjs-1.2.12-1-third-party.properties
[INFO] Load missing file /var/local/forge/data/chorem.org/maven/repository/org/nuiton/js/nuiton-js-angularjs/1.2.12-1/nuiton-js-angularjs-1.2.12-1-third-party.properties
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/nui…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/nuiton/js/nui…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/nuiton/js/nuiton-js-bootstrap/2.3.2…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/nui…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/nuiton/js/nui…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/nuiton/js/nuiton-js-jqplot/1.0.4r11…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/nui…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/nuiton/js/nui…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/nuiton/js/nuiton-js-jquery/1.8.3-1/…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/nui…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/nuiton/js/nui…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/nuiton/js/nuiton-js-jquery-ui/1.9.2…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/nui…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/nui… (2 KB at 58.5 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/nuiton/js/nui…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/nuiton/js/nui… (2 KB at 82.5 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/nuiton/js/nuiton-js-wro/1.0.2/nuito…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/nuiton/js/nuiton-js-wro/1.0.2/nuito… (2 KB at 3.5 KB/sec)
[INFO] Detects third party descriptor /var/local/forge/data/chorem.org/maven/repository/org/nuiton/js/nuiton-js-wro/1.0.2/nuiton-js-wro-1.0.2-third-party.properties
[INFO] Load missing file /var/local/forge/data/chorem.org/maven/repository/org/nuiton/js/nuiton-js-wro/1.0.2/nuiton-js-wro-1.0.2-third-party.properties
[INFO] Detects third party descriptor /var/local/forge/data/chorem.org/maven/repository/org/nuiton/wikitty/wikitty-api/3.11-SNAPSHOT/wikitty-api-3.11-SNAPSHOT-third-party.properties
[INFO] Load missing file /var/local/forge/data/chorem.org/maven/repository/org/nuiton/wikitty/wikitty-api/3.11-SNAPSHOT/wikitty-api-3.11-SNAPSHOT-third-party.properties
[INFO] Detects third party descriptor /var/local/forge/data/chorem.org/maven/repository/org/nuiton/wikitty/wikitty-generators/3.11-SNAPSHOT/wikitty-generators-3.11-SNAPSHOT-third-party.properties
[INFO] Load missing file /var/local/forge/data/chorem.org/maven/repository/org/nuiton/wikitty/wikitty-generators/3.11-SNAPSHOT/wikitty-generators-3.11-SNAPSHOT-third-party.properties
[INFO] Detects third party descriptor /var/local/forge/data/chorem.org/maven/repository/org/nuiton/wikitty/wikitty-jdbc/3.11-SNAPSHOT/wikitty-jdbc-3.11-SNAPSHOT-third-party.properties
[INFO] Load missing file /var/local/forge/data/chorem.org/maven/repository/org/nuiton/wikitty/wikitty-jdbc/3.11-SNAPSHOT/wikitty-jdbc-3.11-SNAPSHOT-third-party.properties
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/snapshots/org/nuiton/wik…
[INFO] Downloaded: http://nexus.nuiton.org/nexus/content/repositories/snapshots/org/nuiton/wik… (2 KB at 24.1 KB/sec)
[INFO] Detects third party descriptor /var/local/forge/data/chorem.org/maven/repository/org/nuiton/wikitty/wikitty-solr/3.11-SNAPSHOT/wikitty-solr-3.11-SNAPSHOT-third-party.properties
[INFO] Load missing file /var/local/forge/data/chorem.org/maven/repository/org/nuiton/wikitty/wikitty-solr/3.11-SNAPSHOT/wikitty-solr-3.11-SNAPSHOT-third-party.properties
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/ref…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/reflections/r…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/reflections/reflections/0.9.8/refle…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/slf…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/slf4j/slf4j-a…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.7.6/slf4j-api-1.7…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/slf…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/org/slf4j/slf4j-l…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/slf4j/slf4j-log4j12/1.7.6/slf4j-log…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/ro/isdc…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/ro/isdc/wro4j/wro…
[INFO] Downloading: http://repo.maven.apache.org/maven2/ro/isdc/wro4j/wro4j-core/1.7.2/wro4j-co…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/xml-api…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/groups/chorem-group/xml-apis/xml-apis…
[INFO] Downloading: http://repo.maven.apache.org/maven2/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b…
[INFO] Missing file <http://ci.chorem.org/jenkins/job/chorem-nightly/org.chorem.chorem$chorem-we…> is up-to-date.
[WARNING] There is 1 dependencies with no license :
[WARNING] - dom4j--dom4j--1.6.1
[INFO] Writing third-party file to <http://ci.chorem.org/jenkins/job/chorem-nightly/org.chorem.chorem$chorem-we…>
[INFO] Regenerate missing license file <http://ci.chorem.org/jenkins/job/chorem-nightly/org.chorem.chorem$chorem-we…>
[JENKINS] Archiving disabled
1
3
r414 - in trunk/chorem-webmotion/src/main: java/org/chorem/webmotion/actions/financial java/org/chorem/webmotion/bean/financial resources webapp/WEB-INF/jsp/financial webapp/js webapp/js/financial
by ymartel@users.chorem.org 11 Apr '14
by ymartel@users.chorem.org 11 Apr '14
11 Apr '14
Author: ymartel
Date: 2014-04-11 18:19:46 +0200 (Fri, 11 Apr 2014)
New Revision: 414
Url: http://forge.chorem.org/projects/chorem/repository/revisions/414
Log:
prepare save of expenseAccount \!
Added:
trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountEntryEdit.html
trunk/chorem-webmotion/src/main/webapp/js/financial/
trunk/chorem-webmotion/src/main/webapp/js/financial/expenseAccount.js
Modified:
trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/financial/ExpenseAccountAction.java
trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/bean/financial/ExpenseAccountBean.java
trunk/chorem-webmotion/src/main/resources/mapping
trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountView.jsp
Modified: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/financial/ExpenseAccountAction.java
===================================================================
--- trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/financial/ExpenseAccountAction.java 2014-04-11 14:16:53 UTC (rev 413)
+++ trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/financial/ExpenseAccountAction.java 2014-04-11 16:19:46 UTC (rev 414)
@@ -36,6 +36,7 @@
import com.google.common.base.Function;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;
+import com.google.gson.Gson;
import org.chorem.ChoremClient;
import org.chorem.entities.CategoryImpl;
import org.chorem.entities.Employee;
@@ -120,14 +121,14 @@
return paginatedResult;
}
- public void saveExpenseAccount(ChoremClient client, String expenseAccountId, Call call) {
- ExpenseAccount expenseAccount = client.restore(ExpenseAccount.class, expenseAccountId);
- if (expenseAccount == null) {
- expenseAccount = new ExpenseAccountImpl();
+ public void saveExpenseAccount(ChoremClient client, String expenseAccountId, ExpenseAccountBean expenseAccount) {
+ ExpenseAccount expenseAccountWikitty = client.restore(ExpenseAccount.class, expenseAccountId);
+ if (expenseAccountWikitty == null) {
+ expenseAccountWikitty = new ExpenseAccountImpl();
}
- Map<String,Object> extractParameters = call.getExtractParameters();
- String contextPath = call.getContext().getServletContext().getContextPath();
- contextPath.length();
+ String json = expenseAccount.toJson();
+ expenseAccount.toString();
+ //TODO ymartel 2014/04/11 just do it
}
public Render findExpenseAccount(ChoremClient client, String expenseAccountId) {
@@ -140,6 +141,7 @@
if (expenseAccount == null) {
expenseAccountBean = new ExpenseAccountBean();
+ expenseAccountBean.setId("new");
//XXX ymartel 2014/04/08 Some Fake datas, just for test
Employee employee = client.findAllByExample(new EmployeeImpl(), 0, 1).get(0);
Modified: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/bean/financial/ExpenseAccountBean.java
===================================================================
--- trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/bean/financial/ExpenseAccountBean.java 2014-04-11 14:16:53 UTC (rev 413)
+++ trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/bean/financial/ExpenseAccountBean.java 2014-04-11 16:19:46 UTC (rev 414)
@@ -26,6 +26,8 @@
import java.io.Serializable;
import java.util.Set;
+import com.google.gson.Gson;
+
/**
* @author ymartel <martel(a)codelutin.com>
*/
@@ -86,4 +88,8 @@
this.expenseAccountEntries = expenseAccountEntries;
}
+ public String toJson() {
+ Gson gson = new Gson();
+ return gson.toJson(this);
+ }
}
Modified: trunk/chorem-webmotion/src/main/resources/mapping
===================================================================
--- trunk/chorem-webmotion/src/main/resources/mapping 2014-04-11 14:16:53 UTC (rev 413)
+++ trunk/chorem-webmotion/src/main/resources/mapping 2014-04-11 16:19:46 UTC (rev 414)
@@ -14,6 +14,7 @@
* /sales/funnel/partial/* DecoratorFilter.decorate wmDecoratorNo=true
* /crm/export DecoratorFilter.decorate wmDecoratorNo=true
* /project/editProject.html DecoratorFilter.decorate wmDecoratorNo=true
+* /financial/expenseAccounts/expenseAccountEntryEdit.html DecoratorFilter.decorate wmDecoratorNo=true
* /hr/employeeEdit/json/* DecoratorFilter.decorate wmDecoratorNo=true
* /ascii/* DecoratorFilter.decorate wmDecoratorNo=true
* /rest/* DecoratorFilter.decorate wmDecoratorNo=true
@@ -102,6 +103,7 @@
GET /rest/financial/expenseAccounts?page={page}&count={count} action:financial.ExpenseAccountAction.findAllExpenseAccounts page=1,count=20
GET /rest/financial/expenseAccounts/{expenseAccountId} action:financial.ExpenseAccountAction.findExpenseAccount
GET /financial/expenseAccounts view:financial/expenseAccounts.jsp
+GET /financial/expenseAccounts/expenseAccountEntryEdit.html view:financial/expenseAccountEntryEdit.html
GET /financial/expenseAccounts/{expenseAccountId} action:financial.ExpenseAccountAction.findExpenseAccount
PUT /financial/expenseAccounts/{expenseAccountId} action:financial.ExpenseAccountAction.saveExpenseAccount
Added: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountEntryEdit.html
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountEntryEdit.html (rev 0)
+++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountEntryEdit.html 2014-04-11 16:19:46 UTC (rev 414)
@@ -0,0 +1,9 @@
+ <td><input type="text" ng-model="newExpenseAccountEntry.justificationNumber" name="newExpenseAccountEntry.justificationNumber" size="10"></td>
+ <td><input type="date" ng-model="newExpenseAccountEntry.emittedDate" name="newExpenseAccountEntry.emittedDate" size="10" maxlength="10"></td>
+ <td><input type="text" ng-model="newExpenseAccountEntry.project" name="newExpenseAccountEntry.project" size="4"></td>
+ <td><input type="text" ng-model="newExpenseAccountEntry.description" name="newExpenseAccountEntry.description" class="w100"></td>
+ <td><input type="text" ng-model="newExpenseAccountEntry.category" name="newExpenseAccountEntry.category" class="w100"></td>
+ <td><input type="number" ng-model="newExpenseAccountEntry.amount" name="newExpenseAccountEntry.amount" class="w100"></td>
+ <td><input type="number" ng-model="newExpenseAccountEntry.VAT" name="newExpenseAccountEntry.VAT" class="w100"></td>
+ <td><input type="number" ng-model="newExpenseAccountEntry.total" name="newExpenseAccountEntry.total"></td>
+ <td><a class="btn btn-success" ng-click="addLine()"><i class="icon-pencil icon-white"></i>Validate</a></td>
Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountView.jsp
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountView.jsp 2014-04-11 14:16:53 UTC (rev 413)
+++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/financial/expenseAccountView.jsp 2014-04-11 16:19:46 UTC (rev 414)
@@ -27,13 +27,20 @@
<head>
<script data-require="angular-resource(a)1.2.0-rc.3" data-semver="1.2.0-rc.3" src="<c:url value='http://code.angularjs.org/1.2.0-rc.3/angular-resource.js'/>"></script>
<link data-require="bootstrap-css@*" data-semver="3.0.0" rel="stylesheet" href="<c:url value='http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css'/>" />
+ <script type="text/javascript" src="<c:url value='/js/financial/expenseAccount.js'/>"></script>
+ <script>
+ angular.module('expenseAccountPage').value('expenseAccountInit', {
+ expenseAccount: ${expenseAccount.toJson()},
+ saveURL: "<c:url value="/financial/expenseAccounts"/>"
+ });
+ </script>
</head>
-<div ng-app>
+<div ng-app='expenseAccountPage' ng-controller="expenseAccountView">
<div >
<dl>
- <dd><a href="<c:url value="/wikitty/view/${expenseAccount.employeeId}"/>">${expenseAccount.employeeName}</a></dd>
- <dd>Period : {{expenseAccount.month}} / ${expenseAccount.year}</dd>
+ <dd><a href="<c:url value="/wikitty/view/{{expenseAccount.employeeId}}"/>">{{expenseAccount.employeeName}}</a></dd>
+ <dd>Period : {{expenseAccount.month}} / {{expenseAccount.year}}</dd>
</dl>
</div>
@@ -50,23 +57,24 @@
<th>total</th>
<th>Payment Date</th>
</tr>
- <c:forEach var="expenseEntry" items="${expenseAccount.expenseAccountEntries}">
- <tr>
- <td>${expenseEntry.justificationNumber}</td>
- <td>{{${expenseEntry.emittedDate}| date:'shortDate'}}</td>
- <td><a href="<c:url value="/wikitty/view/${expenseEntry.projectId}"/>">${expenseEntry.projectName}</a></td>
- <td>${expenseEntry.description}</td>
- <td>${expenseEntry.categoryName}</td>
- <td>{{${expenseEntry.amount}|number:2}}</td>
- <td>{{${expenseEntry.VAT}|number:2}}</td>
- <td>{{${expenseEntry.total}|number:2}}</td>
- <td><span ng-if = "${expenseEntry.paymentDate} != 0"> {{${expenseEntry.paymentDate}|date:'shortDate'}}</span></td>
+ <tr ng-repeat="expenseEntry in expenseAccount.expenseAccountEntries">
+ <td>{{expenseEntry.justificationNumber}}</td>
+ <td>{{expenseEntry.emittedDate| date:'shortDate'}}</td>
+ <td><a href="<c:url value="/wikitty/view/{{expenseEntry.projectId}}"/>">{{expenseEntry.projectName}}</a></td>
+ <td>{{expenseEntry.description}}</td>
+ <td>{{expenseEntry.categoryName}}</td>
+ <td>{{expenseEntry.amount|number:2}}</td>
+ <td>{{expenseEntry.VAT|number:2}}</td>
+ <td>{{expenseEntry.total|number:2}}</td>
+ <td><span ng-if = "expenseEntry.paymentDate"> {{expenseEntry.paymentDate|date:'shortDate'}}</span></td>
</tr>
- </c:forEach>
+ <tr ng-if="showNewLine == true" ng-include src="'expenseAccountEntryEdit.html'"></tr>
</table>
</div>
+ <a class="btn btn-success" ng-click="newLine()"><i class="icon-list icon-white"></i> New entry</a>
+ <div ng-if="hasChanged == true">
+ <a class="btn btn-success" ng-click="saveExpenseAccount()"><i class="icon-od icon-white"></i>Save</a>
+ </div>
</div>
-<div>
- <a class="btn btn-success" href="<c:url value="/financial/expenseAccounts/new"/>"><i class="icon-list icon-white"></i> New one</a>
</div>
Added: trunk/chorem-webmotion/src/main/webapp/js/financial/expenseAccount.js
===================================================================
--- trunk/chorem-webmotion/src/main/webapp/js/financial/expenseAccount.js (rev 0)
+++ trunk/chorem-webmotion/src/main/webapp/js/financial/expenseAccount.js 2014-04-11 16:19:46 UTC (rev 414)
@@ -0,0 +1,50 @@
+var app = angular.module('expenseAccountPage', ['ngResource']);
+
+app.controller("expenseAccountView", function($scope, $resource, expenseAccountInit) {
+
+ $scope.showNewLine = false;
+ $scope.expenseAccount = expenseAccountInit.expenseAccount;
+ $scope.saveURL = expenseAccountInit.saveURL;
+
+ $scope.newLine = function() {
+ if ($scope.showNewLine === true) {
+ $scope.showNewLine = false;
+ delete $scope.newExpenseAccountEntry;
+ } else {
+ $scope.showNewLine = true;
+ $scope.newExpenseAccountEntry = {
+ justificationNumber: '',
+ emittedDate : '',
+ project: '',
+ description: '',
+ category: '',
+ amount: '',
+ VAT: '',
+ total: ''
+ };
+ }
+ }
+
+ $scope.addLine = function() {
+
+ $scope.expenseAccount.expenseAccountEntries.push($scope.newExpenseAccountEntry);
+
+ $scope.hasChanged = true;
+ $scope.showNewLine = false;
+ delete $scope.newExpenseAccountEntry;
+ }
+
+ $scope.saveExpenseAccount = function() {
+
+ console.log($scope.expenseAccount)
+
+ url = $scope.saveURL + "/" + $scope.expenseAccount.id;
+
+ $resource('url', $scope.expenseAccount, {'update' : {method:'PUT'}}).update(function(result) {
+ console.log("saved!");
+ });
+ }
+
+
+
+});
1
0
Author: maven-release
Date: 2014-04-11 16:16:53 +0200 (Fri, 11 Apr 2014)
New Revision: 413
Url: http://forge.chorem.org/projects/chorem/repository/revisions/413
Log:
demis-commit
Modified:
trunk/chorem-entities/src/license/THIRD-PARTY.properties
Modified: trunk/chorem-entities/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/chorem-entities/src/license/THIRD-PARTY.properties 2014-04-11 10:23:42 UTC (rev 412)
+++ trunk/chorem-entities/src/license/THIRD-PARTY.properties 2014-04-11 14:16:53 UTC (rev 413)
@@ -1,21 +1,19 @@
# Generated by org.codehaus.mojo.license.AddThirdPartyMojo
#-------------------------------------------------------------------------------
# Already used licenses in project :
-# - Apache License
-# - Apache Software License, Version 2.0
# - Apache Software License, version 1.1
# - BSD License
# - BSD style
-# - CDDL
+# - CDDL + GPLv2 with classpath exception
# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
# - Common Public License Version 1.0
# - GNU Lesser General Public License, version 2.1
-# - GPLv2+CE
# - Indiana University Extreme! Lab Software License, vesion 1.1.1
# - Lesser General Public License (LGPL) v 3.0
# - Lesser General Public License (LPGL)
# - Lesser General Public License (LPGL) v 2.1
# - MIT License
+# - New BSD License
# - Public Domain
# - Public domain
# - TECHNOLOGY LICENSE FROM SUN MICROSYSTEMS, INC.
@@ -25,10 +23,10 @@
# Please fill the missing licenses for dependencies :
#
#
-#Fri Jun 22 17:47:10 CEST 2012
+#Thu Feb 20 04:44:22 CET 2014
commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0
concurrent--concurrent--1.0=TECHNOLOGY LICENSE FROM SUN MICROSYSTEMS, INC.
-jakarta-regexp--jakarta-regexp--1.4=The Apache Software License, Version 2.0
-javax.servlet--servlet-api--2.5=COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
javax.transaction--jta--1.1=COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+org.apache.zookeeper--zookeeper--3.4.5=The Apache Software License, Version 2.0
+org.jacorb--jacorb--2.3.1.jbossorg-1=Lesser General Public License (LPGL)
xpp3--xpp3_min--1.1.3.4.O=Indiana University Extreme\! Lab Software License, vesion 1.1.1
1
0