As we transition to the new Hyland Community, some post links may be temporarily disrupted as we finalize redirects. We apologize for the inconvenience and are working to resolve this as quickly as possible. Details.
<?xml version="1.0" encoding="UTF-8"?> <project name="SomeCo Client Extensions ch2" default="deploy" basedir="."> <property file="build.properties" /> <property name="label" value="ch2" /> <property name="project.dir" value="." /> <property name="build.dir" value="${project.dir}/build" /> <property name="bin.dir" value="${project.dir}/bin" /> <property name="project.name" value="someco-client-extensions" /> <property name="package.file.zip" value="${build.dir}/${project.name}.zip" /> <property name="package.file.jar" value="${build.dir}/${project.name}.jar" /> <property name="project.file.zip" value="${build.dir}/${project.name}-project-${label}.zip" /> <property name="package.file.amp" value="${build.dir}/${project.name}.amp" /> <property name="module.id" value="com.someco.module.extensions.Core" /> <property name="module.dir" value="/alfresco/module" /> <property name="source.dir" value="${project.dir}/src" /> <property name="config.dir" value="${project.dir}/config" /> <property name="data.dir" value="${project.dir}/data" /> <property name="web.dir" value="${source.dir}/web" /> <property name="extension.dir" value="/alfresco/extension" /> <path id="classpath.server"> <fileset dir="${alfresco.sdk.dir}/server" includes="**/*.jar" /> </path> <path id="classpath.remote"> <fileset dir="${alfresco.sdk.dir}/remote" includes="**/*.jar" /> </path> <path id="classpath.build"> <fileset dir="${build.dir}" includes="**/*.jar" /> </path> <target name="clean" description="Removes all generated files"> <delete dir="${build.dir}" /> <delete dir="${bin.dir}" /> </target> <target name="clean-tomcat" description="Removes deployed extension directory, lib/someco*.jar, and someco/" > <delete dir="${alfresco.web.dir}/WEB-INF/classes/alfresco/extension" /> <delete dir="${alfresco.web.dir}/WEB-INF/classes/alfresco/module" /> <delete dir="${alfresco.web.dir}/jsp/extension" /> <delete dir="${alfresco.web.dir}/someco" /> <delete file="${alfresco.web.dir}/WEB-INF/lib/someco-alfresco.jar" /> </target> <target name="setup" description="Creates the ${build.dir} and ${bin.dir} directories"> <mkdir dir="${build.dir}" /> <mkdir dir="${bin.dir}" /> </target> <target name="package-extension" depends="setup, package-jar" description="Creates a zip called ${package.file.zip} which can be unzipped on top of an exploded Alfresco web app"> <delete file="${package.file.zip}" /> <zip destfile="${package.file.zip}" update="true"> <zipfileset dir="${config.dir}${extension.dir}" prefix="WEB-INF/classes${extension.dir}" /> <zipfileset file="${package.file.jar}" prefix="WEB-INF/lib" /> <zipfileset dir="${web.dir}" excludes="META-INF/**" /> </zip> </target> <target name="package-amp" depends="setup, package-jar" description="Packages the customizations as an Alfresco module in ${package.file.amp}"> <delete file="${package.file.amp}" /> <zip destfile="${package.file.amp}"> <zipfileset file="${package.file.jar}" prefix="lib" /> <zipfileset dir="${web.dir}" prefix="web" /> <zipfileset file="${config.dir}${module.dir}/${module.id}/module.properties" /> <zipfileset file="${config.dir}${module.dir}/${module.id}/file-mapping.properties" /> <zipfileset file="${config.dir}${module.dir}/${module.id}/module-context.xml" prefix="config${module.dir}/${module.id}" /> <zipfileset file="${config.dir}${module.dir}/${module.id}/someco-core.properties" prefix="config${module.dir}/${module.id}" /> <zipfileset dir="${data.dir}" prefix="config${module.dir}/${module.id}/bootstrap" /> <zipfileset dir="${config.dir}${extension.dir}/model" prefix="config${module.dir}/${module.id}/model" /> <!–<zipfileset file="${config.dir}${extension.dir}/someco-model-context.xml" prefix="config${module.dir}/${module.id}" />–> <zipfileset file="${config.dir}${extension.dir}/web-client-config-custom.xml" prefix="config${module.dir}/${module.id}/ui" /> </zip> </target> <target name="install-amp" depends="package-amp" description="Uses the Alfresco MMT to install the AMP into ${alfresco.war.path}"> <java dir="." fork="true" classname="org.alfresco.repo.module.tool.ModuleManagementTool"> <classpath refid="classpath.server"/> <arg line="install ${package.file.amp} ${alfresco.war.path} -force -verbose"/> </java> </target> <target name="deploy-amp" depends="install-amp" description="Unzips the AMP'd WAR file into ${alfresco.web.dir}"> <unzip src="${alfresco.war.path}" dest="${alfresco.web.dir}" /> </target> <target name="deploy" depends="package-extension" description="Unzips the ${package.file.zip} into ${alfresco.web.dir}"> <unzip src="${package.file.zip}" dest="${alfresco.web.dir}" /> </target> <target name="zip-project" depends="setup" description="Zips the entire Eclipse project as-is into ${project.file.zip}"> <delete file="${project.file.zip}" /> <zip destfile="${project.file.zip}"> <zipfileset dir="${project.dir}" excludes="build/** bin/**" prefix="${project.name}-${label}" /> </zip> </target> <target name="compile" description="Compiles src to ${bin.dir}"> <mkdir dir="${bin.dir}" /> <javac srcdir="${source.dir}/java" destdir="${bin.dir}" source="1.5" target="1.5" debug="on" fork="yes" deprecation="on"> <classpath refid="classpath.server"/> <classpath refid="classpath.remote"/> </javac> <!– copy in non-compiled files like props if needed –> <copy todir="${bin.dir}"> <fileset dir="${source.dir}/java" excludes="**/*.java"/> </copy> </target> <target name="package-jar" depends="setup, compile" description="Jars up the compiled classes and ${web.dir}/META-INF into ${package.file.jar}"> <delete file="${package.file.jar}" /> <jar destfile="${package.file.jar}"> <fileset dir="${bin.dir}" includes="com/**" /> <zipfileset dir="${web.dir}/META-INF" excludes="*.zip" prefix="META-INF" /> </jar> </target> <target name="data-creator" depends="package-jar" > <java dir="./bin" fork="true" classname="com.someco.examples.SomeCoDataCreator"> <classpath refid="classpath.build"/> <classpath refid="classpath.remote"/> <arg line="admin admin /app:company_home/cm:Someco/cm:Marketing/cm:Whitepapers whitepaper whitepaper"/> </java> </target> <target name="data-relater" depends="package-jar" description="Run the Someco web services examples"> <java dir="./bin" fork="true" classname="com.someco.examples.SomeCoDataRelater"> <classpath refid="classpath.build"/> <classpath refid="classpath.remote"/> <arg line="admin admin ${sourceId} ${targetId}"/> </java> </target> <target name="data-queries" depends="package-jar" description="Run the Someco web services examples"> <java dir="./bin" fork="true" classname="com.someco.examples.SomeCoDataQueries"> <classpath refid="classpath.build"/> <classpath refid="classpath.remote"/> <arg line="admin admin /app:company_home/cm:Someco/cm:Marketing/cm:Whitepapers"/> </java> </target> <target name="data-cleaner" depends="package-jar" description="Run the Someco web services examples"> <java dir="./bin" fork="true" classname="com.someco.examples.SomeCoDataCleaner"> <classpath refid="classpath.build"/> <classpath refid="classpath.remote"/> <arg line="admin admin /app:company_home/cm:Someco/cm:Marketing/cm:Whitepapers whitepaper"/> </java> </target> </project>
alfresco.sdk.dir=C:/Alfresco/sdk/lib alfresco.web.dir=C:/Alfresco/tomcat/webapps/alfresco
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd"> <faces-config> <!– *************************************************************** –> <!– Empty JSF config file to prevent errors being thrown during JSF –> <!– initialisation. Overwrite this file with your custom version. –> <!– *************************************************************** –> <navigation-rule> <description> The decision rule used by the NavigationHandler to determine which view must be displayed after the current view, login.jsp is processed. </description> <from-view-id>/jsp/extension/login.jsp</from-view-id> <navigation-case> <description> Indicates to the NavigationHandler that the browse.jsp view must be displayed if the Action referenced by a UICommand component on the login.jsp view returns the outcome "success". </description> <from-outcome>success</from-outcome> <to-view-id>/jsp/browse/browse.jsp</to-view-id> </navigation-case> </navigation-rule> <!– rule to get back to the login page from anywhere –> <navigation-rule> <from-view-id>/jsp/*</from-view-id> <navigation-case> <from-outcome>logout</from-outcome> <to-view-id>/jsp/extension/login.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>relogin</from-outcome> <to-view-id>/jsp/extension/relogin.jsp</to-view-id> </navigation-case> </navigation-rule> </faces-config>
<%– * Copyright (C) 2005-2007 Alfresco Software Limited. * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * As a special exception to the terms and conditions of version 2.0 of * the GPL, you may redistribute this Program in connection with Free/Libre * and Open Source Software ("FLOSS") applications as described in Alfresco's * FLOSS exception. You should have recieved a copy of the text describing * the FLOSS exception, and it is also available here: * http://www.alfresco.com/legal/licensing" –%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="/WEB-INF/alfresco.tld" prefix="a" %> <%@ taglib uri="/WEB-INF/repo.tld" prefix="r" %> <%@ page import="org.alfresco.web.app.servlet.AuthenticationHelper" %> <%@ page import="org.alfresco.web.ui.common.PanelGenerator" %> <%@ page import="javax.servlet.http.Cookie" %> <%@ page buffer="16kb" contentType="text/html;charset=UTF-8" %> <%@ page isELIgnored="false" %> <% Cookie authCookie = AuthenticationHelper.getAuthCookie(request); // remove the username cookie value if explicit logout was requested by the user if (session.getAttribute(AuthenticationHelper.SESSION_INVALIDATED) != null) { if (authCookie != null) { authCookie.setMaxAge(0); response.addCookie(authCookie); } } else { // setup value used by JSF bean state ready for login page if we find the cookie if (authCookie != null && authCookie.getValue() != null) { session.setAttribute(AuthenticationHelper.SESSION_USERNAME, authCookie.getValue()); } } %> <body bgcolor="#ffffff" style="background-image: url(<%=request.getContextPath()%>/images/logo/AlfrescoFadedBG.png); background-repeat: no-repeat; background-attachment: fixed"> <r:page titleId="title_login"> <f:view> <%– load a bundle of properties I18N strings here –%> <f:loadBundle basename="alfresco.messages.webclient" var="msg"/> <h:form acceptcharset="UTF-8" id="loginForm" > <table width=100% height=98% align=center> <tr width=100% align=center> <td valign=middle align=center width=100%> <table cellspacing=0 cellpadding=0 border=0> <tr><td width=7><img src='<%=request.getContextPath()%>/images/parts/white_01.gif' width=7 height=7 alt=''></td> <td background='<%=request.getContextPath()%>/images/parts/white_02.gif'> <img src='<%=request.getContextPath()%>/images/parts/white_02.gif' width=7 height=7 alt=''></td> <td width=7><img src='<%=request.getContextPath()%>/images/parts/white_03.gif' width=7 height=7 alt=''></td> </tr> <tr><td background='<%=request.getContextPath()%>/images/parts/white_04.gif'> <img src='<%=request.getContextPath()%>/images/parts/white_04.gif' width=7 height=7 alt=''></td><td bgcolor='white'> <table border=0 cellspacing=4 cellpadding=2> <tr> <td colspan=2> <img src='<%=request.getContextPath()%>/someco/images/someco-logo.png' width=202 height=58 alt="SomeCo" title="SomeCo"> </td> </tr> <tr> <td colspan=2> <span class='mainSubTitle'><h:outputText value="#{msg.login_details}" />:</span> </td> </tr> <tr> <td> <h:outputText value="#{msg.username}"/>: </td> <td> <%– input text field, with an example of a nested validator tag –%> <h:inputText id="user-name" value="#{LoginBean.username}" validator="#{LoginBean.validateUsername}" style="width:150px" /> </td> </tr> <tr> <td> <h:outputText value="#{msg.password}"/>: </td> <td> <%– password text field, with an example of a validation bean method –%> <%– the validation method adds a faces message to be displayed by a message tag –%> <h:inputSecret id="user-password" value="#{LoginBean.password}" validator="#{LoginBean.validatePassword}" style="width:150px" /> </td> </tr> <tr> <td> <h:outputText value="#{msg.language}"/>: </td> <td> <%– language selection drop-down –%> <h:selectOneMenu id="language" value="#{UserPreferencesBean.language}" style="width:150px" onchange="document.forms['loginForm'].submit(); return true;"> <f:selectItems value="#{UserPreferencesBean.languages}" /> </h:selectOneMenu> </td> </tr> <tr> <td colspan="2" align=right> <h:outputText value="#{AboutBean.version}"/> <h:commandButton id="submit" action="#{LoginBean.login}" value="#{msg.login}" /> </td> </tr> <tr> <td colspan=2> <%– messages tag to show messages not handled by other specific message tags –%> <h:messages style="padding-top:8px; color:red; font-size:10px" layout="table" /> </td> </tr> </table> </td><td background='<%=request.getContextPath()%>/images/parts/white_06.gif'> <img src='<%=request.getContextPath()%>/images/parts/white_06.gif' width=7 height=7 alt=''></td></tr> <tr><td width=7><img src='<%=request.getContextPath()%>/images/parts/white_07.gif' width=7 height=7 alt=''></td> <td background='<%=request.getContextPath()%>/images/parts/white_08.gif'> <img src='<%=request.getContextPath()%>/images/parts/white_08.gif' width=7 height=7 alt=''></td> <td width=7><img src='<%=request.getContextPath()%>/images/parts/white_09.gif' width=7 height=7 alt=''></td></tr> </table> <div id="no-cookies" style="display:none"> <table cellpadding="0" cellspacing="0" border="0" style="padding-top:16px;"> <tr> <td> <% PanelGenerator.generatePanelStart(out, request.getContextPath(), "yellowInner", "#ffffcc"); %> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td valign=top style="padding-top:2px" width=20><h:graphicImage url="/images/icons/info_icon.gif" width="16" height="16"/></td> <td class="mainSubText"> <h:outputText value="#{msg.no_cookies}" /> </td> </tr> </table> <% PanelGenerator.generatePanelEnd(out, request.getContextPath(), "yellowInner"); %> </td> </tr> </table> </div> <script> document.cookie="_alfTest=_alfTest" var cookieEnabled = (document.cookie.indexOf("_alfTest") != -1); if (cookieEnabled == false) { document.getElementById("no-cookies").style.display = 'inline'; } </script> </td> </tr> </table> </h:form> </f:view> <script> if (document.getElementById("loginForm:user-name").value.length == 0) { document.getElementById("loginForm:user-name").focus(); } else { document.getElementById("loginForm:user-password").focus(); } </script> </r:page> </body>
<%– * Copyright (C) 2005-2007 Alfresco Software Limited. * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * As a special exception to the terms and conditions of version 2.0 of * the GPL, you may redistribute this Program in connection with Free/Libre * and Open Source Software ("FLOSS") applications as described in Alfresco's * FLOSS exception. You should have recieved a copy of the text describing * the FLOSS exception, and it is also available here: * http://www.alfresco.com/legal/licensing" –%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="/WEB-INF/alfresco.tld" prefix="a" %> <%@ taglib uri="/WEB-INF/repo.tld" prefix="r" %> <%@ page import="org.alfresco.web.app.servlet.AuthenticationHelper" %> <%@ page import="javax.servlet.http.Cookie" %> <%@ page buffer="16kb" contentType="text/html;charset=UTF-8" %> <%@ page isELIgnored="false" %> <% // remove the username cookie value if explicit logout was requested by the user if (session.getAttribute(AuthenticationHelper.SESSION_INVALIDATED) != null) { Cookie authCookie = AuthenticationHelper.getAuthCookie(request); if (authCookie != null) { authCookie.setMaxAge(0); response.addCookie(authCookie); } } %> <body bgcolor="#ffffff" style="background-image: url(<%=request.getContextPath()%>/images/logo/AlfrescoFadedBG.png); background-repeat: no-repeat; background-attachment: fixed"> <r:page titleId="title_relogin"> <f:view> <%– load a bundle of properties I18N strings here –%> <f:loadBundle basename="alfresco.messages.webclient" var="msg"/> <h:form acceptcharset="UTF-8" id="loggedOutForm" > <table width=100% height=90% align=center> <tr width=100% align=center> <td valign=middle align=center width=100%> <table cellspacing=0 cellpadding=0 border=0> <tr><td width=7><img src='<%=request.getContextPath()%>/images/parts/white_01.gif' width=7 height=7 alt=''></td> <td background='<%=request.getContextPath()%>/images/parts/white_02.gif'> <img src='<%=request.getContextPath()%>/images/parts/white_02.gif' width=7 height=7 alt=''></td> <td width=7><img src='<%=request.getContextPath()%>/images/parts/white_03.gif' width=7 height=7 alt=''></td> </tr> <tr><td background='<%=request.getContextPath()%>/images/parts/white_04.gif'> <img src='<%=request.getContextPath()%>/images/parts/white_04.gif' width=7 height=7 alt=''></td><td bgcolor='white'> <table border=0 cellspacing=4 cellpadding=2> <tr> <td align=center> <img src='<%=request.getContextPath()%>/someco/images/someco-logo.png' width=202 height=58 alt="SomeCo" title="SomeCo"> </td> </tr> <tr> <td align=center> <span class='mainSubTitle'><h:outputText value="#{msg.loggedout_details}" /></span> </td> </tr> <tr> <td align=center> <a:actionLink href="/faces/jsp/browse/browse.jsp" value="#{msg.relogin}" /> </td> </tr> </table> <%– messages tag to show messages not handled by other specific message tags –%> <h:messages style="padding-top:8px; color:red; font-size:10px" layout="table" /> </td><td background='<%=request.getContextPath()%>/images/parts/white_06.gif'> <img src='<%=request.getContextPath()%>/images/parts/white_06.gif' width=7 height=7 alt=''></td></tr> <tr><td width=7><img src='<%=request.getContextPath()%>/images/parts/white_07.gif' width=7 height=7 alt=''></td> <td background='<%=request.getContextPath()%>/images/parts/white_08.gif'> <img src='<%=request.getContextPath()%>/images/parts/white_08.gif' width=7 height=7 alt=''></td> <td width=7><img src='<%=request.getContextPath()%>/images/parts/white_09.gif' width=7 height=7 alt=''></td></tr> </table> </td> </tr> </table> </h:form> </f:view> </r:page> </body>
<?xml version="1.0" encoding="UTF-8"?> <!– Definition of new Model –> <model name="sc:somecomodel" xmlns="http://www.alfresco.org/model/dictionary/1.0"> <!– Optional meta-data about the model –> <description>Someco Model</description> <author>Optaros</author> <version>1.0</version> <!– Imports are required to allow references to definitions in other models –> <imports> <!– Import Alfresco Dictionary Definitions –> <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d" /> <!– Import Alfresco Content Domain Model Definitions –> <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm" /> <import uri="http://www.alfresco.org/model/system/1.0" prefix="sys" /> </imports> <!– Introduction of new namespaces defined by this model –> <namespaces> <namespace uri="http://www.someco.com/model/content/1.0" prefix="sc" /> </namespaces> <types> <!– Enterprise-wide generic document type –> <type name="sc:doc"> <title>Someco Document</title> <parent>cm:content</parent> </type> <type name="sc:marketingDoc"> <title>Someco Marketing Document</title> <parent>sc:doc</parent> </type> <type name="sc:whitepaper"> <title>Someco Whitepaper</title> <parent>sc:marketingDoc</parent> </type> </types> </model>
<alfresco-config> <config> <client> <!– the login page the client will use –> <login-page>/jsp/extension/login.jsp</login-page> </client> </config> <!– show related documents association on doc property sheet –> <config evaluator="node-type" condition="sc:doc"> <property-sheet> <show-association name="sc:relatedDocuments" /> </property-sheet> </config> <!– add someco types to add content list –> <config evaluator="string-compare" condition="Content Wizards"> <content-types> <type name="sc:doc" /> <type name="sc:whitepaper" /> </content-types> </config> <config evaluator="string-compare" condition="Action Wizards"> <!– The list of types shown in the is-subtype condition –> <subtypes> <type name="sc:doc" /> <type name="sc:whitepaper" /> </subtypes> <!– The list of content and/or folder types shown in the specialise-type action –> <specialise-types> <type name="sc:doc" /> <type name="sc:whitepaper" /> </specialise-types> </config> <config evaluator="string-compare" condition="Advanced Search"> <advanced-search> <content-types> <type name="sc:doc" /> <type name="sc:whitepaper" /> </content-types> </advanced-search> </config> </alfresco-config>