| <%-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --%> |
| |
| <%@ page import="org.apache.wiki.api.core.*" %> |
| <%@ page import="org.apache.wiki.auth.*" %> |
| <%@ page import="org.apache.wiki.auth.user.*" %> |
| <%@ page errorPage="/Error.jsp" %> |
| <%@ taglib uri="http://jspwiki.apache.org/tags" prefix="wiki" %> |
| <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> |
| <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> |
| <%@ page import="javax.servlet.jsp.jstl.fmt.*" %> |
| <fmt:setLocale value="${prefs.Language}" /> |
| <fmt:setBundle basename="templates.default"/> |
| <% |
| /* dateformatting not yet supported by wiki:UserProfile tag - diy */ |
| Context wikiContext = Context.findContext(pageContext); |
| UserManager manager = wikiContext.getEngine().getManager( UserManager.class ); |
| UserProfile profile = manager.getUserProfile( wikiContext.getWikiSession() ); |
| %> |
| <form method="post" accept-charset="UTF-8" |
| action="<wiki:CheckRequestContext |
| context='login'><wiki:Link jsp='Login.jsp' format='url'><wiki:Param name='tab' |
| value='profile'/></wiki:Link></wiki:CheckRequestContext><wiki:CheckRequestContext |
| context='!login'><wiki:Link jsp='UserPreferences.jsp' format='url'><wiki:Param name='tab' |
| value='profile'/></wiki:Link></wiki:CheckRequestContext>" |
| class="" |
| id="editProfile"> |
| |
| <input type="hidden" name="redirect" value="<wiki:Variable var='redirect' default='' />" /> |
| |
| <div class="form-group"> |
| <span class="form-col-20 control-label"></span> |
| <span class="dropdown" style="display:inline-block" > |
| <button class="btn btn-success" type="submit" name="action" value="saveProfile"> |
| <wiki:UserProfile property="exists"><fmt:message key="prefs.oldprofile"/></wiki:UserProfile> |
| <wiki:UserProfile property="new"><fmt:message key='prefs.newprofile' /></wiki:UserProfile> <%-- prefs.save.submit??--%> |
| </button> |
| <wiki:UserCheck status="assertionsAllowed"> |
| <ul class="dropdown-menu" data-hover-parent=".dropdown"> |
| <li class="dropdown-header"><fmt:message key="prefs.cookie.info"/></li> |
| </ul> |
| </wiki:UserCheck> |
| </span> |
| |
| </div> |
| |
| <c:if test="${param.tab eq 'profile'}" > |
| <div class=""> |
| <span class="form-col-20 control-label"></span> |
| <fmt:message key="prefs.errorprefix.profile" var="msg"/> |
| <wiki:Messages div="alert alert-danger form-col-50" topic="profile" prefix="${msg}" /> |
| <%-- seems not to work .? |
| <wiki:Messages div="error form-col-50" prefix="<fmt:message key='prefs.errorprefix.profile' />" topic="profile" /> |
| this is ok.. |
| <wiki:Messages div="error form-col-50" topic="profile" > |
| <jsp:attribute name="prefix" ><fmt:message key="prefs.errorprefix.profile"/></jsp:attribute> |
| </wiki:Messages> |
| --%> |
| </div> |
| </c:if> |
| |
| <!-- Login name --> |
| <div class="form-group"> |
| <label class="control-label form-col-20" for="loginname"><fmt:message key="prefs.loginname"/></label> |
| |
| <wiki:UserProfile property="canChangeLoginName"> |
| <input class="form-control form-col-50" type="text" name="loginname" id="loginname" required |
| size="20" value="<wiki:UserProfile property='loginname' />" /> |
| </wiki:UserProfile> |
| <wiki:UserProfile property="!canChangeLoginName"> |
| <!-- If user can't change their login name, it's because the container manages the login --> |
| <wiki:UserProfile property="new"> |
| <div class="warning"><fmt:message key="prefs.loginname.cannotset.new"/></div> |
| </wiki:UserProfile> |
| <wiki:UserProfile property="exists"> |
| <span class="form-control-static"><wiki:UserProfile property="loginname"/></span> |
| <div class="warning"><fmt:message key="prefs.loginname.cannotset.exists"/></div> |
| </wiki:UserProfile> |
| </wiki:UserProfile> |
| </div> |
| |
| <!-- Password field; not displayed if container auth used --> |
| <wiki:UserProfile property="canChangePassword"> |
| <div class="form-group"> |
| <label class="control-label form-col-20" for="password"><fmt:message key="prefs.password"/></label> |
| <%--FIXME Enter Old PW to validate change flow, not yet treated by JSPWiki |
| <label class="control-label form-col-20" for="password0">Old</label> |
| <input type="password" name="password0" id="password0" size="20" value="" /> |
| --%> |
| <input class="form-control form-col-50" type="password" name="password" id="password" size="20" value="" required/> |
| </div> |
| <div class="form-group"> |
| <label class="control-label form-col-20" for="password2"><fmt:message key="prefs.password2"/></label> |
| <input class="form-control form-col-50" type="password" name="password2" id="password2" size="20" value="" required/> |
| <%-- extra validation ? min size, allowed chars? password-strength js routing --%> |
| </div> |
| </wiki:UserProfile> |
| |
| <!-- Full name --> |
| <div class="form-group"> |
| <label class="control-label form-col-20" for="fullname"><fmt:message key="prefs.fullname"/></label> |
| <span class="dropdown form-col-50"> |
| <input class="form-control" type="text" name="fullname" id="fullname" size="20" required |
| value="<wiki:UserProfile property='fullname' />" /> |
| <ul class="dropdown-menu" data-hover-parent=".dropdown"> |
| <li class="dropdown-header"><fmt:message key="prefs.fullname.description"/></li> |
| </ul> |
| </span> |
| </div> |
| |
| <!-- E-mail --> |
| <div class="form-group"> |
| <label class="control-label form-col-20" for="email"><fmt:message key="prefs.email"/></label> |
| <span class="dropdown form-col-50"> |
| <input class="form-control" type="email" name="email" id="email" size="20" |
| value="<wiki:UserProfile property='email' />" /> |
| <ul class="dropdown-menu" data-hover-parent=".dropdown"> |
| <li class="dropdown-header"><fmt:message key="prefs.email.description"/></li> |
| </ul> |
| </span> |
| </div> |
| |
| <wiki:UserProfile property="exists"> |
| <div class="xinformation form-group"> |
| <div class="xform-group"> |
| <label class="control-label form-col-20"><fmt:message key="prefs.roles"/></label> |
| <div class="form-control-static form-col-50"><wiki:UserProfile property="roles" /></div> |
| </div> |
| <div class="xform-group"> |
| <label class="control-label form-col-20"><fmt:message key="prefs.groups"/></label> |
| |
| <span class="dropdown form-col-50"> |
| <%-- TODO this should become clickable group links so you can immediately go and look at them if you want --%> |
| <div class="form-control-static"><wiki:UserProfile property="groups" /></div> |
| <ul class="dropdown-menu" data-hover-parent=".dropdown"> |
| <li class="dropdown-header"><fmt:message key="prefs.acl.info" /></li> |
| </ul> |
| </span> |
| </div> |
| <div class="xform-group"> |
| <label class="control-label form-col-20"><fmt:message key="prefs.creationdate"/></label> |
| <div class="form-control-static form-col-50"> |
| <fmt:formatDate value="<%= profile.getCreated() %>" pattern="${prefs.DateFormat}" timeZone="${prefs.TimeZone}" /> |
| </div> |
| </div> |
| <div class="xform-group"> |
| <label class="control-label form-col-20"><fmt:message key="prefs.profile.lastmodified"/></label> |
| <div class="form-control-static form-col-50"> |
| <%--<wiki:UserProfile property="modified"/>--%> |
| <fmt:formatDate value="<%= profile.getLastModified() %>" pattern="${prefs.DateFormat}" timeZone="${prefs.TimeZone}" /> |
| </div> |
| </div> |
| </div> |
| </wiki:UserProfile> |
| |
| </form> |