diff --git a/ganttzk/src/main/resources/web/js/ganttz/DependencyComponent.js b/ganttzk/src/main/resources/web/js/ganttz/DependencyComponent.js index cd1d7b42a..583366b0e 100644 --- a/ganttzk/src/main/resources/web/js/ganttz/DependencyComponent.js +++ b/ganttzk/src/main/resources/web/js/ganttz/DependencyComponent.js @@ -118,7 +118,6 @@ ganttz.DependencyComponentBase = zk.$extends(zul.Widget,{ var deparrow = this._findImageElement('arrow'); - deparrow.attr('src', this.$class.getImagesDir() + "arrow3.png"); deparrow.css({top : yend - 5, left : xend - 8}); }, _drawArrowEndStart : function(coordOrig, coordDest){ @@ -155,23 +154,18 @@ ganttz.DependencyComponentBase = zk.$extends(zul.Widget,{ depend.css(dependcss); var deparrow = this._findImageElement('arrow'); - var deparrowsrc, deparrowcss; + var deparrowcss; if ( width == 0 ) { deparrowcss = {top : (yend - 10) , left : (xend - 5)}; - deparrowsrc = this.$class.getImagesDir() + "arrow2.png"; if ( yorig > yend ) { deparrowcss = {top : yend}; - deparrowsrc = this.$class.getImagesDir() + "arrow4.png"; } } else { deparrowcss = {top : (yend -5), left : (xend - 10)}; - deparrowsrc = this.$class.getImagesDir() + "arrow.png"; if (width < 0) { deparrowcss = {top : (yend - 5), left : xend} - deparrowsrc = this.$class.getImagesDir() + "arrow3.png"; } } - deparrow.attr('src', deparrowsrc); deparrow.css(deparrowcss); }, findPos_ : function(element){ @@ -180,22 +174,18 @@ ganttz.DependencyComponentBase = zk.$extends(zul.Widget,{ return {left : (pos2.left - pos1.left), top : (pos2.top - pos1.top)}; }, _findImageElement : function(name) { - var img = jq('.' + name + '', this.$n()); - return img; + return jq('.' + name + '', this.$n()); }, setupArrow_ : function(){ var image_data = [ [ "start", "pixel.gif" ], [ "mid", "pixel.gif" ], [ "end", "pixel.gif" ], [ "arrow", "arrow.png" ] ]; - var img; + var imgDiv; var insertPoint = jq(this.$n()); for ( var i = 0; i < image_data.length; i++) { - img = jq(document.createElement('img')); - img.attr({ - 'class' : image_data[i][0] + " extra_padding", - 'src' : this.$class.getImagesDir() + image_data[i][1] - }); + imgDiv = jq(document.createElement('div')); + imgDiv.attr('class', image_data[i][0] + " extra_padding"); - insertPoint.append(img); + insertPoint.append(imgDiv); } } },{ @@ -342,4 +332,4 @@ ganttz.UnlinkedDependencyComponent = zk.$extends(ganttz.DependencyComponentBase, zk.afterLoad('ganttz',function(){ ganttz.UnlinkedDependencyComponent.molds = ganttz.DependencyComponent.molds; -}) \ No newline at end of file +}) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/User.java b/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/User.java index cfa09f4b4..e2b0d66dc 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/User.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/User.java @@ -68,6 +68,10 @@ public class User extends BaseEntity { private boolean expandResourceLoadViewCharts = true; + private String firstName = ""; + + private String lastName = ""; + /** * Necessary for Hibernate. Please, do not call it. */ @@ -255,4 +259,20 @@ public class User extends BaseEntity { this.expandCompanyPlanningViewCharts = expandCompanyPlanningViewCharts; } + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + } diff --git a/navalplanner-business/src/main/resources/db.changelog-1.1.xml b/navalplanner-business/src/main/resources/db.changelog-1.1.xml index d18999006..647916fea 100644 --- a/navalplanner-business/src/main/resources/db.changelog-1.1.xml +++ b/navalplanner-business/src/main/resources/db.changelog-1.1.xml @@ -201,4 +201,14 @@ + + Add new column to store the first and last name for this user + + + + + + + + diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/users/entities/Users.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/users/entities/Users.hbm.xml index b4bc37f9c..2ba4f91ba 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/users/entities/Users.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/users/entities/Users.hbm.xml @@ -36,6 +36,8 @@ column="expand_order_planning_view_charts" /> + + diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/CustomMenuController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/CustomMenuController.java index 7678c4d23..716d9ec62 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/CustomMenuController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/CustomMenuController.java @@ -340,7 +340,7 @@ public class CustomMenuController extends Div implements IMenuItemsRegister { subItem(_("Materials Needs At Date"),"/reports/timeLineMaterialReport.zul","15-informes.html")); topItem(_("My account"), "", "", - subItem(_("Settings"), "/users/settings.zul", "")); + subItem(_("Settings"), "/settings/settings.zul", "")); } private Vbox getRegisteredItemsInsertionPoint() { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/ISettingsModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/settings/ISettingsModel.java similarity index 90% rename from navalplanner-webapp/src/main/java/org/navalplanner/web/users/ISettingsModel.java rename to navalplanner-webapp/src/main/java/org/navalplanner/web/users/settings/ISettingsModel.java index 6a6afbb3c..ee9c9334b 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/ISettingsModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/settings/ISettingsModel.java @@ -16,11 +16,10 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ -package org.navalplanner.web.users; +package org.navalplanner.web.users.settings; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.users.entities.Language; -import org.navalplanner.business.users.entities.User; /** * Model for UI operations related to user settings @@ -51,4 +50,12 @@ public interface ISettingsModel { boolean isExpandCompanyPlanningViewCharts(); + void setLastName(String lastName); + + String getLastName(); + + void setFirstName(String firstName); + + String getFirstName(); + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/SettingsController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/settings/SettingsController.java similarity index 91% rename from navalplanner-webapp/src/main/java/org/navalplanner/web/users/SettingsController.java rename to navalplanner-webapp/src/main/java/org/navalplanner/web/users/settings/SettingsController.java index ab749eaed..4ea09d9ea 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/SettingsController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/settings/SettingsController.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package org.navalplanner.web.users; +package org.navalplanner.web.users.settings; import static org.navalplanner.web.I18nHelper._; @@ -126,4 +126,20 @@ public class SettingsController extends GenericForwardComposer { return settingsModel.isExpandResourceLoadViewCharts(); } + public String getFirstName() { + return settingsModel.getFirstName(); + } + + public void setFirstName(String firstName) { + settingsModel.setFirstName(firstName); + } + + public String getLastName() { + return settingsModel.getLastName(); + } + + public void setLastName(String lastName) { + settingsModel.setLastName(lastName); + } + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/SettingsModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/settings/SettingsModel.java similarity index 90% rename from navalplanner-webapp/src/main/java/org/navalplanner/web/users/SettingsModel.java rename to navalplanner-webapp/src/main/java/org/navalplanner/web/users/settings/SettingsModel.java index 58ec1234e..13177865b 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/SettingsModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/settings/SettingsModel.java @@ -16,9 +16,8 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ -package org.navalplanner.web.users; +package org.navalplanner.web.users.settings; -import org.apache.commons.lang.Validate; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.users.daos.IUserDAO; @@ -42,7 +41,7 @@ import org.springframework.transaction.annotation.Transactional; */ @Service @Scope(BeanDefinition.SCOPE_PROTOTYPE) -@OnConcurrentModification(goToPage = "/users/settings.zul") +@OnConcurrentModification(goToPage = "/settings/settings.zul") public class SettingsModel implements ISettingsModel { @Autowired @@ -146,4 +145,28 @@ public class SettingsModel implements ISettingsModel { } } + @Override + public String getFirstName() { + return user.getFirstName(); + } + + @Override + public void setFirstName(String firstName) { + if (user != null) { + user.setFirstName(firstName); + } + } + + @Override + public String getLastName() { + return user.getLastName(); + } + + @Override + public void setLastName(String lastName) { + if (user != null) { + user.setLastName(lastName); + } + } + } diff --git a/navalplanner-webapp/src/main/webapp/common/layout/template.zul b/navalplanner-webapp/src/main/webapp/common/layout/template.zul index f8206d1cf..04a513590 100644 --- a/navalplanner-webapp/src/main/webapp/common/layout/template.zul +++ b/navalplanner-webapp/src/main/webapp/common/layout/template.zul @@ -114,7 +114,7 @@ signature="java.lang.Boolean isDefaultPasswordsControl()"?> -
+
diff --git a/navalplanner-webapp/src/main/webapp/users/settings.zul b/navalplanner-webapp/src/main/webapp/settings/settings.zul similarity index 78% rename from navalplanner-webapp/src/main/webapp/users/settings.zul rename to navalplanner-webapp/src/main/webapp/settings/settings.zul index de0436524..a36ae5daf 100644 --- a/navalplanner-webapp/src/main/webapp/users/settings.zul +++ b/navalplanner-webapp/src/main/webapp/settings/settings.zul @@ -29,7 +29,7 @@ @@ -40,7 +40,30 @@ + + + + + + + + + + + + + + + + + diff --git a/navalplanner-webapp/src/main/webapp/users/_editUser.zul b/navalplanner-webapp/src/main/webapp/users/_editUser.zul index 60bf1af6a..0b85450fb 100644 --- a/navalplanner-webapp/src/main/webapp/users/_editUser.zul +++ b/navalplanner-webapp/src/main/webapp/users/_editUser.zul @@ -43,6 +43,16 @@ value="@{controller.user.loginName}" width="300px" constraint="no empty:${i18n:_('cannot be null or empty')}"/> + + + +