join-cvs Mailing List for Join Integration Management System
Brought to you by:
lbroudoux
You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(68) |
Aug
(146) |
Sep
(35) |
Oct
(30) |
Nov
(56) |
Dec
(45) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
|
Feb
(48) |
Mar
(56) |
Apr
(13) |
May
(15) |
Jun
(37) |
Jul
(113) |
Aug
(41) |
Sep
(24) |
Oct
(44) |
Nov
(52) |
Dec
|
| 2005 |
Jan
(73) |
Feb
(14) |
Mar
(19) |
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(90) |
Sep
(51) |
Oct
(5) |
Nov
(24) |
Dec
(1) |
| 2006 |
Jan
(26) |
Feb
(6) |
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
(165) |
Aug
(4) |
Sep
(5) |
Oct
(48) |
Nov
(3) |
Dec
(10) |
| 2007 |
Jan
(38) |
Feb
(48) |
Mar
(3) |
Apr
(31) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(10) |
Nov
(9) |
Dec
|
| 2008 |
Jan
(21) |
Feb
(41) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(12) |
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
| 2009 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Laurent B. <lbr...@us...> - 2009-01-20 22:47:49
|
Update of /cvsroot/join/join1 In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv1074/join1 Added Files: build.xml Log Message: Add Ant build file --- NEW FILE: build.xml --- <?xml version="1.0" encoding="UTF-8"?> <!-- =========================================================================== Build file for Join project - for use with the Jakarta Ant build tool Setup instructions: Before running an Ant build, you must - set the JAVA_HOME environment variable to the JDK root directory - To build javadocs: use JDK 1.4.x or higher Build Instructions: To build, run build.bat (win32) or build.sh (unix) in the directory where this file is located. The batch/shell file sets up your classpath and calls java org.apache.tools.ant.Main Build targets This build file supports the following targets: - full : generate configuration files, compile and package - distrib : compile and package If you build a target that depends on other targets, those other targets are created in the correct order. Author: Laurent Broudoux $Revision: 1.1 $ ============================================================================ --> <project name="join" basedir="." default="full"> <!-- ==================================================================== --> <!-- General properties definition --> <!-- ==================================================================== --> <property name="Name" value="Join" /> <property name="version" value="1.0" /> <property name="year" value="2005" /> <!-- ==================================================================== --> <!-- Path properties definition --> <!-- ==================================================================== --> <property name="lib.dir" value="${basedir}/lib" /> <property name="tools.dir" value="${basedir}/tools" /> <property name="src.dir" value="${basedir}/src/main" /> <property name="src.web.dir" value="${basedir}/src/web" /> <property name="src.res.dir" value="${basedir}/src/resources" /> <property name="test.dir" value="${basedir}/src/test" /> <property name="build.dir" value="${basedir}/build" /> <property name="build.web.dir" value="${basedir}/build/WEB-INF" /> <property name="build.lib.dir" value="${basedir}/build/WEB-INF/lib" /> <property name="build.classes.dir" value="${basedir}/build/WEB-INF/classes" /> <!-- ==================================================================== --> <!-- Declaration of different classpaths --> <!-- ==================================================================== --> <path id="tools.class.path"> <fileset dir="${lib.dir}" includes="*.jar"/> <fileset dir="${tools.dir}" includes="*.jar"/> </path> <path id="compile.class.path"> <fileset dir="${lib.dir}" includes="*.jar"/> <fileset dir="${tools.dir}" includes="jsp-api.jar,servlet-api.jar,ant-*.jar"/> </path> <path id="test.class.path"> <fileset dir="${lib.dir}/test" includes="*.jar"/> <path refid="compile.class.path"/> </path> <!-- ==================================================================== --> <!-- Declaration of Taskdef --> <!-- ==================================================================== --> <target name="init"> <echo>Init ${Name}</echo> <taskdef name="hbndoclet" classname="xdoclet.modules.hibernate.HibernateDocletTask" classpathref="tools.class.path"/> <taskdef name="webdoclet" classname="xdoclet.modules.web.WebDocletTask" classpathref="tools.class.path"/> <mkdir dir="${build.dir}" /> <mkdir dir="${build.web.dir}" /> <mkdir dir="${build.lib.dir}" /> <mkdir dir="${build.classes.dir}" /> </target> <target name="clean"> <delete failonerror="false"> <fileset dir="${build.dir}" includes="**/*.*" excludes="/META-INF/context.xml"/> </delete> </target> <!-- ==================================================================== --> <!-- Generate Hibernate descriptors --> <!-- ==================================================================== --> <target name="hbndoclet" depends="init"> <hbndoclet destdir="${build.classes.dir}" verbose="true"> <fileset dir="${src.dir}" includes="**/core/messaging/*Info.java" /> <fileset dir="${src.dir}" includes="**/services/*/*Info.java" /> <fileset dir="${src.dir}" includes="**/businessobjects/**/*.java" /> <hibernate version="2.0" templateFile="${src.res.dir}/xdoclet/hibernate.xdt"/> </hbndoclet> </target> <!-- ==================================================================== --> <!-- Generate WEB and deployment descriptors --> <!-- ==================================================================== --> <target name="webdoclet" depends="init"> <webdoclet destdir="${build.web.dir}"> <fileset dir="${src.dir}" includes="**/control/**/*.java" /> <strutsconfigxml version="1.2" destdir="${build.web.dir}" mergeDir="${src.res.dir}/struts" /> </webdoclet> </target> <!-- ==================================================================== --> <!-- Compile the sources tree --> <!-- ==================================================================== --> <target name="compile" depends="init"> <javac destdir="${build.classes.dir}" debug="on" debuglevel="lines" deprecation="${deprecation}"> <src path="${src.dir}"/> <classpath refid="compile.class.path"/> </javac> </target> <!-- ==================================================================== --> <!-- Create the web context --> <!-- ==================================================================== --> <target name="distrib" depends="init"> <!-- Copy pages and resources --> <copy todir="${build.dir}"> <fileset dir="${src.web.dir}" excludes="**/.*"/> </copy> <!-- Copy all tlds, libs and classes --> <copy todir="${build.web.dir}"> <fileset dir="${lib.dir}/tlds" includes="*.tld"/> <fileset dir="${src.res.dir}/WEB-INF" includes="*.tld"/> <fileset dir="${src.res.dir}/WEB-INF" includes="*.xml"/> </copy> <copy todir="${build.lib.dir}"> <fileset dir="${lib.dir}" includes="*.jar"/> <fileset dir="${tools.dir}" includes="ant-1.6.5.jar,ant-launcher-1.6.5.jar"/> </copy> <copy todir="${build.classes.dir}"> <fileset dir="${src.dir}" includes="**/*.properties"/> <fileset dir="${src.res.dir}/spring" includes="*.xml"/> <fileset dir="${src.res.dir}/properties" includes="*.properties,*.xml"/> </copy> </target> <!-- ==================================================================== --> <!-- Compile & run the JUnit tests --> <!-- ==================================================================== --> <target name="test" depends="compile"> <javac destdir="${build.classes.dir}" debug="on" debuglevel="lines" deprecation="${deprecation}"> <src path="${test.dir}"/> <classpath> <path refid="test.class.path"/> <pathelement location="${build.classes.dir}"/> </classpath> </javac> <!-- Copy tests resources --> <copy todir="${build.classes.dir}"> <fileset dir="${test.dir}" includes="**/*.xml,**/*.groovy,**/*.js"/> </copy> <!-- Run JUnit tests --> <junit fork="${fork}" printsummary="yes"> <jvmarg value="-Dlog4j.configuration=${lib.dir}/test/log4j.properties"/> <classpath> <pathelement location="${build.web.dir}/coverage"/> <pathelement location="${build.classes.dir}"/> <path refid="test.class.path"/> </classpath> <formatter type="xml"/> <batchtest todir="${build.dir}"> <fileset dir="${test.dir}"> <include name="**/*Test.java"/> </fileset> </batchtest> </junit> </target> <!-- ==================================================================== --> <!-- Create the release packages --> <!-- ==================================================================== --> <target name="release"> <!-- Produce archives --> <zip destfile="${basedir}/join-${release.version}.zip"> <zipfileset dir="${build.dir}" prefix="join-${release.version}" excludes="installer/**"/> </zip> <tar tarfile="${basedir}/join-${release.version}.tar"> <tarfileset dir="${build.dir}" prefix="join-${release.version}" excludes="installer/**"/> </tar> <gzip zipfile="${basedir}/join-${release.version}.tar.gz" src="${basedir}/join-${release.version}.tar"/> <!-- Produce windows installer --> <mkdir dir="${build.dir}/installer"/> <copy todir="${build.dir}/installer"> <fileset dir="${basedir}" includes="LICENSE.txt"/> <fileset dir="${src.res.dir}/installer" includes="*.nsi"/> <filterset> <filter token="join.version" value="${release.version}"/> </filterset> </copy> <copy todir="${build.dir}/installer/tomcat" includeEmptyDirs="false"> <fileset dir="${tomcat.home}" excludes="conf/Catalina/localhost/*.xml,webapps/**"/> </copy> <!-- <copy todir="${build.dir}/installer/tomcat/conf" file="${src.res.dir}/installer/server.xml" overwrite="true"/> --> <copy tofile="${build.dir}/installer/tomcat/conf/server.xml" file="${src.res.dir}/installer/server-5.5.xml" overwrite="true"/> <copy todir="${build.dir}/installer/join"> <fileset dir="${build.dir}" excludes="installer/**"/> </copy> <mkdir dir="${build.dir}/installer/home"/> <touch file="${build.dir}/installer/home/join-${release.version}"/> <!-- Produce archives --> <zip destfile="${basedir}/join-standalone-${release.version}.zip"> <zipfileset dir="${build.dir}/installer" prefix="join-${release.version}" excludes="installer/**"/> </zip> <tar tarfile="${basedir}/join-standalone-${release.version}.tar"> <tarfileset dir="${build.dir}/installer" prefix="join-${release.version}" excludes="installer/**"/> </tar> <gzip zipfile="${basedir}/join-standalone-${release.version}.tar.gz" src="${basedir}/join-standalone-${release.version}.tar"/> </target> <!-- ==================================================================== --> <!-- Tag all Java sources with Copyright notice --> <!-- ==================================================================== --> <target name="tag"> <mkdir dir="${basedir}/tag" /> <copy todir="${basedir}/tag" overwrite="true"> <fileset dir="${basedir}" includes="**/*.java,**/*.xml,**/*.jsp,**/*.groovy,**/*.properties"> <exclude name="build/**"/> <exclude name="lib/**"/> <exclude name="tag/**"/> <exclude name="tools/**"/> </fileset> <!-- <filterchain> <headfilter lines="-1" skip="5" /> <concatfilter prepend="${basedir}/COPYRIGHT.txt" /> </filterchain> --> </copy> <fixcrlf srcdir="${basedir}/tag" eol="unix" /> </target> <!-- ==================================================================== --> <!-- Convenient default target --> <!-- ==================================================================== --> <target name="full" depends="clean,hbndoclet,webdoclet,compile,distrib"> <echo>${Name} has been built successfully. Have a nice day !</echo> </target> </project> |
|
From: Laurent B. <lbr...@us...> - 2008-11-01 00:44:10
|
Update of /cvsroot/join/join1/src/main/org/figure8/join/control/action In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv2725/control/action Modified Files: LogicalEnvironmentActions.java Log Message: Fix for issues #2101967 and #2101959 : use the 'active' status when creating new logical environment and refresh correclty the environment cache when updating status Index: LogicalEnvironmentActions.java =================================================================== RCS file: /cvsroot/join/join1/src/main/org/figure8/join/control/action/LogicalEnvironmentActions.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** LogicalEnvironmentActions.java 7 Jul 2006 22:20:46 -0000 1.1 --- LogicalEnvironmentActions.java 1 Nov 2008 00:44:05 -0000 1.2 *************** *** 142,146 **** * @throws Exception such as InfraStructureExceptions ... */ ! public ActionForward doExecute(String operation, ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{ // Trace operation to execute. log.debug("doExecute() called for '" + operation + "' operation"); --- 142,147 ---- * @throws Exception such as InfraStructureExceptions ... */ ! public ActionForward doExecute(String operation, ActionMapping mapping, ActionForm form, ! HttpServletRequest request, HttpServletResponse response) throws Exception{ // Trace operation to execute. log.debug("doExecute() called for '" + operation + "' operation"); *************** *** 170,175 **** * @return A forward to the next view to render and display */ ! protected ActionForward loadEnvironment(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) ! throws Exception{ if (form instanceof LogicalEnvironmentForm){ --- 171,176 ---- * @return A forward to the next view to render and display */ ! protected ActionForward loadEnvironment(ActionMapping mapping, ActionForm form, ! HttpServletRequest request, HttpServletResponse response) throws Exception{ if (form instanceof LogicalEnvironmentForm){ *************** *** 200,205 **** * @return A forward to the next view to render and display */ ! protected ActionForward saveEnvironment(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) ! throws Exception{ if (form instanceof LogicalEnvironmentForm){ --- 201,206 ---- * @return A forward to the next view to render and display */ ! protected ActionForward saveEnvironment(ActionMapping mapping, ActionForm form, ! HttpServletRequest request, HttpServletResponse response) throws Exception{ if (form instanceof LogicalEnvironmentForm){ *************** *** 217,221 **** if (environment == null){ log.info("Creation of a new LogicalEnvironment with key: " + envForm.getKey()); ! environment = new LogicalEnvironment(envForm.getKey(), envForm.getLabel(), envForm.getDescription(), envForm.getManagerId(), step, release); } else{ --- 218,224 ---- if (environment == null){ log.info("Creation of a new LogicalEnvironment with key: " + envForm.getKey()); ! environment = new LogicalEnvironment(envForm.getKey(), envForm.getLabel(), envForm.getDescription(), ! envForm.getManagerId(), step, release); ! environment.setActive(envForm.isActive()); } else{ *************** *** 234,239 **** } // Update environment in cache. ! EnvironmentView view = environmentManager.getEnvironmentView(environment); ! environmentViews.put(environment.getKey(), view); // Remove form and session attribute if present. --- 237,243 ---- } // Update environment in cache. ! LogicalEnvironment refreshedEnvironment = environmentManager.getLogicalEnvironment(environment.getId()); ! EnvironmentView view = environmentManager.getEnvironmentView(refreshedEnvironment); ! environmentViews.put(refreshedEnvironment.getKey(), view); // Remove form and session attribute if present. |
|
From: Laurent B. <lbr...@us...> - 2008-11-01 00:39:32
|
Update of /cvsroot/join/join1/src/web/jsp/environment In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv1983/jsp/environment Modified Files: deploymentform.jsp Log Message: Enhancement for issue #2101946 : adding a filter on assemblies for only showing those having a 'OK' status. Index: deploymentform.jsp =================================================================== RCS file: /cvsroot/join/join1/src/web/jsp/environment/deploymentform.jsp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** deploymentform.jsp 14 Jan 2007 18:13:15 -0000 1.2 --- deploymentform.jsp 1 Nov 2008 00:39:27 -0000 1.3 *************** *** 81,85 **** <td align="left"> <html:select property="assemblyKey"> ! <html:optionsCollection name="assemblies" value="key" label="key"/> </html:select> </td> --- 81,91 ---- <td align="left"> <html:select property="assemblyKey"> ! <logic:iterate id="assembly" name="assemblies"> ! <logic:notEmpty name="assembly" property="status"> ! <logic:equal value="true" name="assembly" property="status.terminal"> ! <option value='<bean:write name="assembly" property="key"/>'><bean:write name="assembly" property="key"/></option> ! </logic:equal> ! </logic:notEmpty> ! </logic:iterate> </html:select> </td> |
|
From: Laurent B. <lbr...@us...> - 2008-11-01 00:35:22
|
Update of /cvsroot/join/join1/src/web/jsp/artifact In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv1669/jsp/artifact Modified Files: assemblies.jsp Log Message: Fix for issue #2101946 : column with deploy link was not added when first assembly of list has no status yet Index: assemblies.jsp =================================================================== RCS file: /cvsroot/join/join1/src/web/jsp/artifact/assemblies.jsp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** assemblies.jsp 21 Oct 2007 18:56:55 -0000 1.4 --- assemblies.jsp 1 Nov 2008 00:35:17 -0000 1.5 *************** *** 68,79 **** <join:authorize role="manager"> <logic:present name="row"> ! <logic:notEmpty name="row" property="status"> ! <logic:equal value="true" name="row" property="status.terminal"> ! <display:column headerClass="empty" media="html" url="/action/deployment?op=form" paramId="assemblyKey" paramProperty="key"> <html:img page="/images/16x16/reload.gif" alt="Deploy this assembly"/> ! </display:column> ! </logic:equal> ! </logic:notEmpty> </logic:present> </join:authorize> --- 68,79 ---- <join:authorize role="manager"> <logic:present name="row"> ! <display:column headerClass="empty" media="html" url="/action/deployment?op=form" paramId="assemblyKey" paramProperty="key"> + <logic:notEmpty name="row" property="status"> + <logic:equal value="true" name="row" property="status.terminal"> <html:img page="/images/16x16/reload.gif" alt="Deploy this assembly"/> ! </logic:equal> ! </logic:notEmpty> ! </display:column> </logic:present> </join:authorize> |
|
From: Laurent B. <lbr...@us...> - 2008-07-25 00:11:58
|
Update of /cvsroot/join/join1/src/web/jsp In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv14235/jsp Modified Files: quartzcrons.jsp Log Message: Fix for issue #2026206 : change JS function declaration Index: quartzcrons.jsp =================================================================== RCS file: /cvsroot/join/join1/src/web/jsp/quartzcrons.jsp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** quartzcrons.jsp 30 Jul 2006 19:16:26 -0000 1.1 --- quartzcrons.jsp 25 Jul 2008 00:11:55 -0000 1.2 *************** *** 10,14 **** <script language="Javascript" type="text/javascript"> // Add the enterred property and its value into the user text area ! function addProperty(name, value){ // Check if the property name is not null or empty if (name.value==null || name.value==""){ --- 10,14 ---- <script language="Javascript" type="text/javascript"> // Add the enterred property and its value into the user text area ! addProperty = function(name, value){ // Check if the property name is not null or empty if (name.value==null || name.value==""){ *************** *** 22,26 **** value.value=""; } ! function changeJobImpl(){ if (document.getElementById("jobImpl")){ var index = document.forms['quartzCronForm'].elements['jobImpl'].selectedIndex; --- 22,26 ---- value.value=""; } ! changeJobImpl = function(){ if (document.getElementById("jobImpl")){ var index = document.forms['quartzCronForm'].elements['jobImpl'].selectedIndex; *************** *** 62,66 **** <% boolean update = false; %> <div class="h4"> ! <h4><bean:message bundle="gui" key="title.cron.edit"/></h4> <logic:present name="duplicate" scope="request"> <span class="warn"> --- 62,69 ---- <% boolean update = false; %> <div class="h4"> ! <h4> ! <logic:present name="quartzCron" scope="session"><bean:message bundle="gui" key="title.cron.update"/><% update = true; %></logic:present> ! <logic:notPresent name="quartzCron" scope="session"><bean:message bundle="gui" key="title.cron.creation"/></logic:notPresent> ! </h4> <logic:present name="duplicate" scope="request"> <span class="warn"> *************** *** 73,77 **** <tr> <td width="100"> ! <logic:present name="quartzCron" scope="session">"<bean:write name="quartzCron" scope="session" property="name"/>"<% update = true; %></logic:present> <logic:notPresent name="quartzCron" scope="session"><bean:message bundle="gui" key="title.cron.new"/></logic:notPresent> </td> --- 76,80 ---- <tr> <td width="100"> ! <logic:present name="quartzCron" scope="session">"<bean:write name="quartzCron" scope="session" property="name"/>"</logic:present> <logic:notPresent name="quartzCron" scope="session"><bean:message bundle="gui" key="title.cron.new"/></logic:notPresent> </td> *************** *** 122,126 **** <tr> <td colspan="2" align="center"> ! <html:textarea property="userProperties" cols="40" rows="8"/> </td> </tr> --- 125,129 ---- <tr> <td colspan="2" align="center"> ! <html:textarea property="userProperties" cols="40" rows="8" readonly="true"/> </td> </tr> |
|
From: Laurent B. <lbr...@us...> - 2008-07-25 00:09:23
|
Update of /cvsroot/join/join1/src/web/jsp/environment In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv13186/jsp/environment Modified Files: deployments.jsp Log Message: Fix for issue #1996229 : add "start deployment" link Index: deployments.jsp =================================================================== RCS file: /cvsroot/join/join1/src/web/jsp/environment/deployments.jsp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** deployments.jsp 14 Jan 2007 18:13:15 -0000 1.2 --- deployments.jsp 25 Jul 2008 00:09:19 -0000 1.3 *************** *** 18,22 **** <h4> <bean:message bundle="gui" key="title.deployment" arg0="<%= (String)assemblyKey %>" arg1="<%= (String)environmentLabel %>"/> ! <html:link action="/deployment?op=details" paramId="idStr" paramName="deployment" paramProperty="id"> <html:img page="/images/22x22/details.gif" alt="Details" align="absmiddle"/></html:link> </h4> --- 18,22 ---- <h4> <bean:message bundle="gui" key="title.deployment" arg0="<%= (String)assemblyKey %>" arg1="<%= (String)environmentLabel %>"/> ! <html:link action="/deployment?op=load" paramId="idStr" paramName="deployment" paramProperty="id"> <html:img page="/images/22x22/details.gif" alt="Details" align="absmiddle"/></html:link> </h4> *************** *** 65,76 **** <legend><html:img page="/images/16x16/exec.gif" alt="Process" align="absmiddle"/> <bean:message bundle="gui" key="label.deployment.control"/></legend> <br/> ! <logic:empty name="deployment" property="status"> <html:link action="/deployment?op=prepare" paramId="idStr" paramName="deployment" paramProperty="id"> <html:img page="/images/redo.gif" alt="Prepare" align="absmiddle"/> <bean:message bundle="gui" key="label.deployment.control.prepare"/></html:link><br/> ! </logic:empty> ! <logic:equal name="screen" scope="request" value="preparation"> <html:link action="/deployment?op=realize" paramId="idStr" paramName="deployment" paramProperty="id"> <html:img page="/images/16x16/play.gif" alt="Start" align="absmiddle"/> <bean:message bundle="gui" key="label.deployment.control.start"/></html:link><br/> - </logic:equal> <logic:equal name="screen" scope="request" value="realization"> <html:link action="/deployment?op=end" paramId="idStr" paramName="deployment" paramProperty="id"> --- 65,74 ---- <legend><html:img page="/images/16x16/exec.gif" alt="Process" align="absmiddle"/> <bean:message bundle="gui" key="label.deployment.control"/></legend> <br/> ! <logic:equal name="screen" scope="request" value="preparation"> <html:link action="/deployment?op=prepare" paramId="idStr" paramName="deployment" paramProperty="id"> <html:img page="/images/redo.gif" alt="Prepare" align="absmiddle"/> <bean:message bundle="gui" key="label.deployment.control.prepare"/></html:link><br/> ! </logic:equal> <html:link action="/deployment?op=realize" paramId="idStr" paramName="deployment" paramProperty="id"> <html:img page="/images/16x16/play.gif" alt="Start" align="absmiddle"/> <bean:message bundle="gui" key="label.deployment.control.start"/></html:link><br/> <logic:equal name="screen" scope="request" value="realization"> <html:link action="/deployment?op=end" paramId="idStr" paramName="deployment" paramProperty="id"> |
|
From: Laurent B. <lbr...@us...> - 2008-07-25 00:05:22
|
Update of /cvsroot/join/join1/src/resources/spring In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv11490 Modified Files: remotingContext.xml Log Message: Fix for issue #1995255 : review interface, implementations and clients Index: remotingContext.xml =================================================================== RCS file: /cvsroot/join/join1/src/resources/spring/remotingContext.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** remotingContext.xml 3 Feb 2008 22:53:45 -0000 1.4 --- remotingContext.xml 25 Jul 2008 00:05:18 -0000 1.5 *************** *** 47,50 **** --- 47,53 ---- <ref bean="assemblyManager"/> </property> + <property name="environmentManager"> + <ref bean="environmentManager"/> + </property> <property name="processManager"> <ref bean="processManager"/> |
|
From: Laurent B. <lbr...@us...> - 2008-07-25 00:04:18
|
Update of /cvsroot/join/join1/src/resources/properties In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv11022 Modified Files: gui_en_US.properties gui_es_ES.properties gui_fr_FR.properties Log Message: Fix some UI labels Index: gui_es_ES.properties =================================================================== RCS file: /cvsroot/join/join1/src/resources/properties/gui_es_ES.properties,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** gui_es_ES.properties 8 Apr 2007 19:42:15 -0000 1.5 --- gui_es_ES.properties 25 Jul 2008 00:04:13 -0000 1.6 *************** *** 376,383 **** title.consumer.details=Consumer details title.consumer.parameters=Consumer parameters ! title.consumer.scriptinfos=Execution logs title.cron=Scheduled jobs title.cron.new=New job title.cron.managed=Managed jobs title.cron.edit=Edit a job --- 376,384 ---- title.consumer.details=Consumer details title.consumer.parameters=Consumer parameters ! title.consumer.scriptinfos=Execution reports title.cron=Scheduled jobs title.cron.new=New job + title.cron.creation=Job creation title.cron.managed=Managed jobs title.cron.edit=Edit a job *************** *** 551,555 **** label.logicalenv.step=Etapa del Ciclo label.logicalenv.release=Lote ! label.logicalenv.version=Versión corriente label.logicalenv.manager=Manager label.logicalenv.managerid=Manager identificador --- 552,557 ---- label.logicalenv.step=Etapa del Ciclo label.logicalenv.release=Lote ! label.logicalenv.assembly=Versión corriente ! label.logicalenv.noassembly=Non usable for the moment... label.logicalenv.manager=Manager label.logicalenv.managerid=Manager identificador *************** *** 558,561 **** --- 560,564 ---- label.logicalenv.mapping=Mapping label.logicalenv.mapping.management=Gestión del entorno físico + label.logicalenv.usage=Utilisación label.logicalenv.history=Reseñas Históricas label.logicalenv.history.currents=Puestas al día del lote corriente Index: gui_fr_FR.properties =================================================================== RCS file: /cvsroot/join/join1/src/resources/properties/gui_fr_FR.properties,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** gui_fr_FR.properties 28 Jan 2008 00:32:37 -0000 1.7 --- gui_fr_FR.properties 25 Jul 2008 00:04:13 -0000 1.8 *************** *** 384,387 **** --- 384,388 ---- title.cron=Traitements plannifiés title.cron.new=Nouveau traitement + title.cron.creation=Création d'un traitement title.cron.managed=Liste des traitements title.cron.edit=Editer un traitement Index: gui_en_US.properties =================================================================== RCS file: /cvsroot/join/join1/src/resources/properties/gui_en_US.properties,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** gui_en_US.properties 8 Apr 2007 19:42:15 -0000 1.6 --- gui_en_US.properties 25 Jul 2008 00:04:13 -0000 1.7 *************** *** 378,384 **** --- 378,387 ---- title.consumer.creation=Consumer creation title.consumer.managed=Managed event consumers + title.consumer.parameters=Consumer parameters + title.consumer.scriptinfos=Execution reports title.cron=Scheduled jobs title.cron.new=New job + title.cron.creation=Job creation title.cron.managed=Managed jobs title.cron.edit=Edit a job *************** *** 555,559 **** label.logicalenv.step=Cycle Step label.logicalenv.release=Release ! label.logicalenv.version=CUrrent version label.logicalenv.manager=Manager label.logicalenv.managerid=Manager Id. --- 558,563 ---- label.logicalenv.step=Cycle Step label.logicalenv.release=Release ! label.logicalenv.assembly=Currently deployed assembly ! label.logicalenv.noassembly=Non usable for the moment... label.logicalenv.manager=Manager label.logicalenv.managerid=Manager Id. *************** *** 562,565 **** --- 566,570 ---- label.logicalenv.mapping=Mapping label.logicalenv.mapping.management=Management of physical environment mapping + label.logicalenv.usage=Usage label.logicalenv.history=History label.logicalenv.history.currents=Updates for current release *************** *** 668,671 **** --- 673,678 ---- label.consumer.threadSafe=Allows concurrent access label.consumer.consumerBeanClass=Consumer implementation + label.consumer.parameters.name=Name + label.consumer.parameters.value=Value label.cron.name=Name |
|
From: Laurent B. <lbr...@us...> - 2008-07-25 00:02:41
|
Update of /cvsroot/join/join1/src/main/org/figure8/join/services/scripting/ant/tasks In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv10235/services/scripting/ant/tasks Modified Files: LogStatusTask.java Log Message: Fix for issue #1995255 : review interface, implementations and clients Index: LogStatusTask.java =================================================================== RCS file: /cvsroot/join/join1/src/main/org/figure8/join/services/scripting/ant/tasks/LogStatusTask.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** LogStatusTask.java 11 Jan 2007 21:06:19 -0000 1.2 --- LogStatusTask.java 25 Jul 2008 00:02:37 -0000 1.3 *************** *** 161,165 **** } else if (JoinTask.DEPLOYMENT_PROCESS.equals(process)){ ! service.setDeploymentStatus(token, statusKey, Long.valueOf(ref).longValue()); } } --- 161,165 ---- } else if (JoinTask.DEPLOYMENT_PROCESS.equals(process)){ ! service.setDeploymentStatus(token, statusKey, Long.valueOf(ref)); } } |
|
From: Laurent B. <lbr...@us...> - 2008-07-25 00:01:45
|
Update of /cvsroot/join/join1/src/main/org/figure8/join/services/remoting/xmlrpc In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv9818/services/remoting/xmlrpc Modified Files: DefaultXmlRpcHandler.java Log Message: Fix for issue #1995255 : review interface, implementations and clients Index: DefaultXmlRpcHandler.java =================================================================== RCS file: /cvsroot/join/join1/src/main/org/figure8/join/services/remoting/xmlrpc/DefaultXmlRpcHandler.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** DefaultXmlRpcHandler.java 3 Feb 2008 22:48:04 -0000 1.3 --- DefaultXmlRpcHandler.java 25 Jul 2008 00:01:42 -0000 1.4 *************** *** 264,268 **** throws InvalidSessionException, NumberFormatException, RemoteException{ // Cast and delegate. ! long deploymentIdL = Long.valueOf(deploymentId).longValue(); controlService.setDeploymentStatus(token, statusKey, deploymentIdL); return true; --- 264,268 ---- throws InvalidSessionException, NumberFormatException, RemoteException{ // Cast and delegate. ! Long deploymentIdL = Long.valueOf(deploymentId); controlService.setDeploymentStatus(token, statusKey, deploymentIdL); return true; |
|
From: Laurent B. <lbr...@us...> - 2008-07-25 00:00:46
|
Update of /cvsroot/join/join1/src/main/org/figure8/join/services/remoting/services In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv9181/services/remoting/services Modified Files: ProcessControlServiceImpl.java Log Message: Fix for issue #1995255 : review interface, implementations and clients Index: ProcessControlServiceImpl.java =================================================================== RCS file: /cvsroot/join/join1/src/main/org/figure8/join/services/remoting/services/ProcessControlServiceImpl.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ProcessControlServiceImpl.java 9 Oct 2006 20:27:22 -0000 1.2 --- ProcessControlServiceImpl.java 25 Jul 2008 00:00:43 -0000 1.3 *************** *** 15,19 **** package org.figure8.join.services.remoting.services; - import org.figure8.join.core.DuplicateEntityException; import org.figure8.join.services.remoting.ProcessControlService; import org.figure8.join.services.remoting.InvalidSessionException; --- 15,18 ---- *************** *** 121,125 **** * @throws RemoteException if an exception occurs during the remote conversation */ ! public void setBuildStatus(String token, String statusKey, String buildKey) throws InvalidSessionException, RemoteException{ // Ensure token is still valid and get user view. UserView user = getAuthenticatedUser(token); --- 120,125 ---- * @throws RemoteException if an exception occurs during the remote conversation */ ! public void setBuildStatus(String token, String statusKey, String buildKey) ! throws InvalidSessionException, RemoteException{ // Ensure token is still valid and get user view. UserView user = getAuthenticatedUser(token); *************** *** 127,136 **** if (user.hasPermission(joinRole)){ ! Status status = processManager.getStatus(statusKey); ! Build build = assemblyManager.getBuild(buildKey); ! ! if (status != null && build != null){ ! build.setStatus(status); ! //assemblyManager.saveBuild(build, build.getComponents()); } } --- 127,144 ---- if (user.hasPermission(joinRole)){ ! try{ ! Status status = processManager.getStatus(statusKey); ! Build build = assemblyManager.getBuild(buildKey); ! ! if (status != null && build != null){ ! build.setStatus(status); ! assemblyManager.saveBuild(build, null, null); ! } ! } ! catch (Exception e){ ! // Log and wrap exception into Remote one. ! log.warn("Caught an Exception while updating the status of build: " + buildKey); ! log.warn("Here's the detailed message: " + e.getMessage()); ! throw new RemoteException("Exception while invoking status update on build"); } } *************** *** 146,150 **** * @throws RemoteException if an exception occurs during the remote conversation */ ! public RemoteStatus getAssemblyStatus(String token, String key) throws InvalidSessionException, RemoteException{ // Ensure token is still valid. getAuthenticatedUser(token); --- 154,159 ---- * @throws RemoteException if an exception occurs during the remote conversation */ ! public RemoteStatus getAssemblyStatus(String token, String key) ! throws InvalidSessionException, RemoteException{ // Ensure token is still valid. getAuthenticatedUser(token); *************** *** 164,168 **** * @throws RemoteException if an exception occurs during the remote conversation */ ! public void setAssemblyStatus(String token, String statusKey, String assemblyKey) throws InvalidSessionException, RemoteException{ // Ensure token is still valid and get user view. UserView user = getAuthenticatedUser(token); --- 173,178 ---- * @throws RemoteException if an exception occurs during the remote conversation */ ! public void setAssemblyStatus(String token, String statusKey, String assemblyKey) ! throws InvalidSessionException, RemoteException{ // Ensure token is still valid and get user view. UserView user = getAuthenticatedUser(token); *************** *** 170,190 **** if (user.hasPermission(joinRole)){ ! Status status = processManager.getStatus(statusKey); ! Assembly assembly = assemblyManager.getAssembly(assemblyKey); ! ! if (status != null && assembly != null){ ! assembly.setStatus(status); ! try {assemblyManager.saveAssembly(assembly, null);} ! catch (Exception e){ ! // Log and wrap exception into Remote one. ! log.warn("Caught an Exception while updating the status of assembly: " + assemblyKey); ! log.warn("Here's the detailed message: " + e.getMessage()); ! throw new RemoteException("Exception while invoking status update on assembly"); } } } else throw new InvalidSessionException("Integrator security role is required !"); } ! /** * Retrieve the status of a specified {@link Deployment}. --- 180,202 ---- if (user.hasPermission(joinRole)){ ! try{ ! Status status = processManager.getStatus(statusKey); ! Assembly assembly = assemblyManager.getAssembly(assemblyKey); ! ! if (status != null && assembly != null){ ! assembly.setStatus(status); ! assemblyManager.saveAssembly(assembly, null); } } + catch (Exception e){ + // Log and wrap exception into Remote one. + log.warn("Caught an Exception while updating the status of assembly: " + assemblyKey); + log.warn("Here's the detailed message: " + e.getMessage()); + throw new RemoteException("Exception while invoking status update on assembly"); + } } else throw new InvalidSessionException("Integrator security role is required !"); } ! /** * Retrieve the status of a specified {@link Deployment}. *************** *** 195,207 **** * @throws RemoteException if an exception occurs during the remote conversation */ ! public RemoteStatus getDeploymentStatus(String token, long deploymentId) throws InvalidSessionException, RemoteException{ // Ensure token is still valid. getAuthenticatedUser(token); ! Deployment deployment = environmentManager.getDeployment(deploymentId); ! /* if (deployment != null) ! return BeansHelper.getRemoteObject(deployment); ! */ return null; } --- 207,218 ---- * @throws RemoteException if an exception occurs during the remote conversation */ ! public RemoteStatus getDeploymentStatus(String token, Long deploymentId) ! throws InvalidSessionException, RemoteException{ // Ensure token is still valid. getAuthenticatedUser(token); ! Deployment deployment = environmentManager.getDeployment(deploymentId.longValue()); if (deployment != null) ! return BeansHelper.getRemoteObject(deployment.getStatus()); return null; } *************** *** 215,233 **** * @throws RemoteException if an exception occurs during the remote conversation */ ! public void setDeploymentStatus(String token, String statusKey, long deploymentId) throws InvalidSessionException, RemoteException{ // Ensure token is still valid and get user view. UserView user = getAuthenticatedUser(token); Role joinRole = permissionManager.getRole(Role.DEFAULT_JOINER_ROLE); ! if (user.hasPermission(joinRole)){ ! Status status = processManager.getStatus(statusKey); ! Deployment deployment = environmentManager.getDeployment(deploymentId); ! if (status != null && deployment != null){ ! deployment.setStatus(status); ! environmentManager.saveDeployment(deployment); } } ! throw new InvalidSessionException("Integrator security role is required !"); } } --- 226,253 ---- * @throws RemoteException if an exception occurs during the remote conversation */ ! public void setDeploymentStatus(String token, String statusKey, Long deploymentId) ! throws InvalidSessionException, RemoteException{ // Ensure token is still valid and get user view. UserView user = getAuthenticatedUser(token); Role joinRole = permissionManager.getRole(Role.DEFAULT_JOINER_ROLE); ! if (user.hasPermission(joinRole)){ ! try{ ! Status status = processManager.getStatus(statusKey); ! Deployment deployment = environmentManager.getDeployment(deploymentId.longValue()); ! if (status != null && deployment != null){ ! deployment.setStatus(status); ! environmentManager.saveDeployment(deployment); ! } ! } ! catch (Exception e){ ! // Log and wrap exception into Remote one. ! log.warn("Caught an Exception while updating the status of deployment: " + deploymentId); ! log.warn("Here's the detailed message: " + e.getMessage()); ! throw new RemoteException("Exception while invoking status update on deployment"); } } ! else throw new InvalidSessionException("Integrator security role is required !"); } } |
|
From: Laurent B. <lbr...@us...> - 2008-07-24 23:59:50
|
Update of /cvsroot/join/join1/src/main/org/figure8/join/services/remoting In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv8669/services/remoting Modified Files: ProcessControlService.java Log Message: Fix for issue #1995255 : review interface, implementations and clients Index: ProcessControlService.java =================================================================== RCS file: /cvsroot/join/join1/src/main/org/figure8/join/services/remoting/ProcessControlService.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ProcessControlService.java 4 Jul 2006 20:22:07 -0000 1.1 --- ProcessControlService.java 24 Jul 2008 23:59:46 -0000 1.2 *************** *** 1,98 **** ! /** ! * Copyright 2005-2006 the original author or authors. ! * ! * Licensed under the Gnu General Pubic 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.opensource.org/licenses/gpl-license.php ! * ! * 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. ! */ ! package org.figure8.join.services.remoting; ! ! import org.figure8.join.services.remoting.beans.RemoteStatus; ! ! import java.rmi.RemoteException; ! /** ! * Remote service interface definition. This service allows you to monitor and ! * control the different process managed by the Join application. Such process ! * are : the construction of an <code>Assembly</code>, the deployments on integration ! * environments and the construction of a <code>Build</code>. Typically, this service ! * is called by scripts executing these process and reporting success/failures ! * by setting <code>Status</code> upon this artifacts and process. ! * <br/> ! * All this service methods require authentication through the usage of the ! * <code>login()</code> method. The security token returned by this method should ! * then be used as a parameter of every service call. ! * ! * @author <a href="mailto:lau...@fr...">Laurent Broudoux</a> ! * @version $Revision$ ! */ ! public interface ProcessControlService extends AuthenticatedService{ ! ! // Public ------------------------------------------------------------------- ! ! /** ! * Retrieve the status of a specified <code>Build</code>. ! * @param token Authentication token provided earlier by login() method ! * @param key The unique key identifier of Build to retrieve status for ! * @return A {@link RemoteStatus} corresponding to status of build identified by <b>key</b> ! * @throws InvalidSessionException if user has no valid session on server-side ! * @throws RemoteException if an exception occurs during the remote conversation ! */ ! public abstract RemoteStatus getBuildStatus(String token, String key) throws InvalidSessionException, RemoteException; ! ! /** ! * Set the specified status to a specified <code>Build</code>. ! * @param token Authentication token provided earlier by login() method ! * @param statusKey Unique key idenitifer of the status to set to build ! * @param buildKey The unique key idenitifer of Build to update status ! * @throws InvalidSessionException if user has no valid session on server-side ! * @throws RemoteException if an exception occurs during the remote conversation ! */ ! public abstract void setBuildStatus(String token, String statusKey, String buildKey) throws InvalidSessionException, RemoteException; ! ! /** ! * Retrieve the status of a specified <code>Assembly</code>. ! * @param token Authentication token provided earlier by login() method ! * @param key The unique key identifier of Assembly to retrieve status for ! * @return A {@link RemoteStatus} corresponding to status of assembly identified by <b>key</b> ! * @throws InvalidSessionException if user has no valid session on server-side ! * @throws RemoteException if an exception occurs during the remote conversation ! */ ! public abstract RemoteStatus getAssemblyStatus(String token, String key) throws InvalidSessionException, RemoteException; ! ! /** ! * Set the specified status to a specified <code>Assembly</code>. ! * @param token Authentication token provided earlier by login() method ! * @param statusKey Unique key idenitifer of the status to set to assembly ! * @param assemblyKey The unique key idenitifer of Assembly to update status ! * @throws InvalidSessionException if user has no valid session on server-side ! * @throws RemoteException if an exception occurs during the remote conversation ! */ ! public abstract void setAssemblyStatus(String token, String statusKey, String assemblyKey) throws InvalidSessionException, RemoteException; ! ! /** ! * Retrieve the status of a specified <code>Deployment</code>. ! * @param token Authentication token provided earlier by login() method ! * @param deploymentId The unique identifier of Deployment to retrieve status for ! * @return A {@link RemoteStatus} corresponding to status of deployment identified by <b>deploymentId</b> ! * @throws InvalidSessionException if user has no valid session on server-side ! * @throws RemoteException if an exception occurs during the remote conversation ! */ ! public RemoteStatus getDeploymentStatus(String token, long deploymentId) throws InvalidSessionException, RemoteException; ! ! /** ! * Set the specified status to a specified <code>Deployment</code>. ! * @param token Authentication token provided earlier by login() method ! * @param statusKey Unique key idenitifer of the status to set to deployment ! * @param deploymentId The unique identifier of Deployment to retrieve status for ! * @throws InvalidSessionException if user has no valid session on server-side ! * @throws RemoteException if an exception occurs during the remote conversation ! */ ! public abstract void setDeploymentStatus(String token, String statusKey, long deploymentId) throws InvalidSessionException, RemoteException; ! } --- 1,98 ---- ! /** ! * Copyright 2005-2006 the original author or authors. ! * ! * Licensed under the Gnu General Pubic 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.opensource.org/licenses/gpl-license.php ! * ! * 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. ! */ ! package org.figure8.join.services.remoting; ! ! import org.figure8.join.services.remoting.beans.RemoteStatus; ! ! import java.rmi.RemoteException; ! /** ! * Remote service interface definition. This service allows you to monitor and ! * control the different process managed by the Join application. Such process ! * are : the construction of an <code>Assembly</code>, the deployments on integration ! * environments and the construction of a <code>Build</code>. Typically, this service ! * is called by scripts executing these process and reporting success/failures ! * by setting <code>Status</code> upon this artifacts and process. ! * <br/> ! * All this service methods require authentication through the usage of the ! * <code>login()</code> method. The security token returned by this method should ! * then be used as a parameter of every service call. ! * ! * @author <a href="mailto:lau...@fr...">Laurent Broudoux</a> ! * @version $Revision$ ! */ ! public interface ProcessControlService extends AuthenticatedService{ ! ! // Public ------------------------------------------------------------------- ! ! /** ! * Retrieve the status of a specified <code>Build</code>. ! * @param token Authentication token provided earlier by login() method ! * @param key The unique key identifier of Build to retrieve status for ! * @return A {@link RemoteStatus} corresponding to status of build identified by <b>key</b> ! * @throws InvalidSessionException if user has no valid session on server-side ! * @throws RemoteException if an exception occurs during the remote conversation ! */ ! public abstract RemoteStatus getBuildStatus(String token, String key) throws InvalidSessionException, RemoteException; ! ! /** ! * Set the specified status to a specified <code>Build</code>. ! * @param token Authentication token provided earlier by login() method ! * @param statusKey Unique key idenitifer of the status to set to build ! * @param buildKey The unique key idenitifer of Build to update status ! * @throws InvalidSessionException if user has no valid session on server-side ! * @throws RemoteException if an exception occurs during the remote conversation ! */ ! public abstract void setBuildStatus(String token, String statusKey, String buildKey) throws InvalidSessionException, RemoteException; ! ! /** ! * Retrieve the status of a specified <code>Assembly</code>. ! * @param token Authentication token provided earlier by login() method ! * @param key The unique key identifier of Assembly to retrieve status for ! * @return A {@link RemoteStatus} corresponding to status of assembly identified by <b>key</b> ! * @throws InvalidSessionException if user has no valid session on server-side ! * @throws RemoteException if an exception occurs during the remote conversation ! */ ! public abstract RemoteStatus getAssemblyStatus(String token, String key) throws InvalidSessionException, RemoteException; ! ! /** ! * Set the specified status to a specified <code>Assembly</code>. ! * @param token Authentication token provided earlier by login() method ! * @param statusKey Unique key idenitifer of the status to set to assembly ! * @param assemblyKey The unique key idenitifer of Assembly to update status ! * @throws InvalidSessionException if user has no valid session on server-side ! * @throws RemoteException if an exception occurs during the remote conversation ! */ ! public abstract void setAssemblyStatus(String token, String statusKey, String assemblyKey) throws InvalidSessionException, RemoteException; ! ! /** ! * Retrieve the status of a specified <code>Deployment</code>. ! * @param token Authentication token provided earlier by login() method ! * @param deploymentId The unique identifier of Deployment to retrieve status for ! * @return A {@link RemoteStatus} corresponding to status of deployment identified by <b>deploymentId</b> ! * @throws InvalidSessionException if user has no valid session on server-side ! * @throws RemoteException if an exception occurs during the remote conversation ! */ ! public RemoteStatus getDeploymentStatus(String token, Long deploymentId) throws InvalidSessionException, RemoteException; ! ! /** ! * Set the specified status to a specified <code>Deployment</code>. ! * @param token Authentication token provided earlier by login() method ! * @param statusKey Unique key idenitifer of the status to set to deployment ! * @param deploymentId The unique identifier of Deployment to retrieve status for ! * @throws InvalidSessionException if user has no valid session on server-side ! * @throws RemoteException if an exception occurs during the remote conversation ! */ ! public abstract void setDeploymentStatus(String token, String statusKey, Long deploymentId) throws InvalidSessionException, RemoteException; ! } |
|
From: Laurent B. <lbr...@us...> - 2008-07-24 23:56:26
|
Update of /cvsroot/join/join1/src/main/org/figure8/join/control/action In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv7324/control/action Modified Files: CreateUserAction.java Log Message: Fix for issue #1991610 : add the optional fieds when creating a user Index: CreateUserAction.java =================================================================== RCS file: /cvsroot/join/join1/src/main/org/figure8/join/control/action/CreateUserAction.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CreateUserAction.java 7 Jul 2006 22:20:46 -0000 1.1 --- CreateUserAction.java 24 Jul 2008 23:56:19 -0000 1.2 *************** *** 87,90 **** --- 87,97 ---- User user = new User(uForm.getLogin(), uForm.getPassword(), uForm.getLastname(), uForm.getFirstname()); + if (uForm.getMail() != null && uForm.getMail().length() > 0) + user.setMail(uForm.getMail()); + if (uForm.getTeam() != null && uForm.getTeam().length() > 0) + user.setTeam(uForm.getTeam()); + if (uForm.getPhone() != null && uForm.getPhone().length() > 0) + user.setPhone(uForm.getPhone()); + // Save user using manager. try {userManager.saveUser(user);} |
|
From: Laurent B. <lbr...@us...> - 2008-07-24 23:52:26
|
Update of /cvsroot/join/join1/src/main/org/figure8/join/control/action In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv5625/control/action Modified Files: AssemblyActions.java BuildActions.java DeliverableActions.java Log Message: Fix for issue #1996222 : modify navigation on duplicate exception Index: DeliverableActions.java =================================================================== RCS file: /cvsroot/join/join1/src/main/org/figure8/join/control/action/DeliverableActions.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** DeliverableActions.java 8 Apr 2007 18:40:38 -0000 1.2 --- DeliverableActions.java 24 Jul 2008 23:52:23 -0000 1.3 *************** *** 258,262 **** // Store exception within request. request.setAttribute(DUPLICATE_DELIVERABLE_KEY, dee.getOriginalEntity()); ! return mapping.findForward("Delivery"); } --- 258,262 ---- // Store exception within request. request.setAttribute(DUPLICATE_DELIVERABLE_KEY, dee.getOriginalEntity()); ! return showDeliverableForm(mapping, form, request, response); } Index: BuildActions.java =================================================================== RCS file: /cvsroot/join/join1/src/main/org/figure8/join/control/action/BuildActions.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** BuildActions.java 14 Jan 2007 14:00:37 -0000 1.1 --- BuildActions.java 24 Jul 2008 23:52:23 -0000 1.2 *************** *** 227,231 **** // Store exception within request. request.setAttribute(DUPLICATE_BUILD_KEY, dee.getOriginalEntity()); ! return mapping.findForward("Form"); } // Forward to list of builds for release. --- 227,231 ---- // Store exception within request. request.setAttribute(DUPLICATE_BUILD_KEY, dee.getOriginalEntity()); ! return showBuildForm(mapping, form, request, response); } // Forward to list of builds for release. Index: AssemblyActions.java =================================================================== RCS file: /cvsroot/join/join1/src/main/org/figure8/join/control/action/AssemblyActions.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** AssemblyActions.java 14 Jan 2007 14:15:05 -0000 1.2 --- AssemblyActions.java 24 Jul 2008 23:52:23 -0000 1.3 *************** *** 246,250 **** // Store exception within request. request.setAttribute(DUPLICATE_ASSEMBLY_KEY, dee.getOriginalEntity()); ! return mapping.findForward("Form"); } --- 246,250 ---- // Store exception within request. request.setAttribute(DUPLICATE_ASSEMBLY_KEY, dee.getOriginalEntity()); ! return showAssemblyForm(mapping, form, request, response); } |
|
From: Laurent B. <lbr...@us...> - 2008-07-24 23:49:30
|
Update of /cvsroot/join/join1/src/main/org/figure8/join/businessobjects/artifact In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv4372/businessobjects/artifact Modified Files: DeliverableType.java Log Message: Fix for issue #1991593 : add a check on class emptiness Index: DeliverableType.java =================================================================== RCS file: /cvsroot/join/join1/src/main/org/figure8/join/businessobjects/artifact/DeliverableType.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** DeliverableType.java 3 Jul 2006 18:34:16 -0000 1.3 --- DeliverableType.java 24 Jul 2008 23:49:22 -0000 1.4 *************** *** 1,352 **** ! /** ! * Copyright 2005-2006 the original author or authors. ! * ! * Licensed under the Gnu General Pubic 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.opensource.org/licenses/gpl-license.php ! * ! * 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. ! */ ! package org.figure8.join.businessobjects.artifact; ! ! import org.figure8.join.core.SortableEntityObject; ! import org.figure8.join.core.InvalidParameterException; ! import org.figure8.join.services.vcs.VCSAccessor; ! import org.figure8.join.util.LogUtil; ! ! import org.apache.commons.logging.Log; ! ! import java.text.MessageFormat; ! /** ! * Entity object representing a deliverable type. Such a type helps ! * categorizing work deliveries done and managed through Join application. ! * <br/> ! * A deliverable type will help by knowing how to generate unique keys for ! * deliverable artifacts. (see the <code>generateDeliverableKey()</code> method) ! * <br/> ! * It is also a handler for all the connection informations to the ! * underlying Versionning and Configuration System ; in the case such a ! * system is used for retrieving deliverables. (see the <code>getVCSAccessor()</code> ! * method) ! * @author <a href="mailto:lau...@fr...">Laurent Broudoux</a> ! * @version $Revision$ ! * ! * @see org.figure8.join.services.vcs.VCSAccessor ! * ! * @hibernate.class table="join_deltypes" ! * @hibernate.cache usage="read-write" ! * ! * @hibernate.query name="join.deltype_findByKey" query="from DeliverableType type where type.key = :typeKey" ! */ ! public class DeliverableType extends SortableEntityObject{ ! ! // Static ------------------------------------------------------------------- ! ! /** Get a commons logger. */ ! private static final Log log = LogUtil.getLog(DeliverableType.class); ! ! ! // Attributes --------------------------------------------------------------- ! ! /** The deliverable type key */ ! private String key; ! /** The deliverable type label */ ! private String label; ! /** The deliverable type keyTemplate */ ! private String keyTemplate; ! /** The deliverable type is versionnable */ ! private boolean versionable; ! /** The deliverable type is mandatory */ ! private boolean mandatory; ! /** The deliverable type use version and configuration system */ ! private boolean vcsDeliverable = false; ! ! /** User for connecting to the version and configuration system */ ! private String vcsUser; ! /** Password for connecting to the version and configuration system */ ! private String vcsPassword; ! /** The root of the version and configuration system */ ! private String vcsRoot; ! /** The module of the version and configuration system */ ! private String vcsModule; ! /** The accessor class name for the version and configuration system */ ! private String vcsAccessorClass; ! ! /** The template object for generating deliverable keys */ ! private MessageFormat template = null; ! /** The VCS accessor instance of type <b>vcsAccessorClass</b> */ ! private VCSAccessor vcsAccessor = null; ! ! ! // Constructors ------------------------------------------------------------- ! ! /** Creates a new instance of DeliverableType */ ! public DeliverableType(){ ! } ! ! /** ! * Creates a new instance of DeliverableType with mandatory attributes ! * @param key The instance unique key ! * @param label The type instance label ! * @param keyTemplate The deliverable type template for key generation ! * @param versionable Wether deliverables should appear in versions ! * @param mandatory Wether deliverables are mandatory in version composition ! * @see org.figure8.join.businessobjects.artifact.Assembly ! */ ! public DeliverableType(String key, String label, String keyTemplate, boolean versionable, boolean mandatory){ ! this.key = key; ! this.label = label; ! this.keyTemplate = keyTemplate; ! this.versionable = versionable; ! this.mandatory = mandatory; ! } ! ! ! // Public ------------------------------------------------------------------- ! ! /** ! * @hibernate.property column="s_key" ! * length="10" not-null="true" ! * unique="true" update="false" ! * @return This deliverable type key ! */ ! public String getKey(){ ! return key; ! } ! /** @param key This type unique key */ ! public void setKey(String key){ ! this.key = key; ! } ! ! /** ! * @hibernate.property column="s_label" ! * length="40" not-null="true" ! * unique="true" ! * @return This type label for display ! */ ! public String getLabel(){ ! return label; ! } ! /** @param label This deliverable type label */ ! public void setLabel(String label){ ! this.label = label; ! } ! ! /** ! * @hibernate.property column="s_keytemplate" ! * length="40" not-null="true" ! * unique="true" ! * @return The template used for generating deliverable keys ! */ ! public String getKeyTemplate(){ ! return keyTemplate; ! } ! /** ! * The template used for deliverables key generation. This template ! * should be a string representing a <code>MessageFormat</code> with ! * 2 arguments. (ex: myDeliverable_r{0}_v{1}) ! * @param keyTemplate MessageFormat template ! * @see java.text.MessageFormat ! */ ! public void setKeyTemplate(String keyTemplate){ ! this.keyTemplate = keyTemplate; ! } ! ! /** ! * @hibernate.property column="b_versionable" ! * type="boolean" not-null="true" ! * @return true if deliverables of this type should be used for ! * composing a <code>Assembly</code> ! * @see org.figure8.join.businessobjects.artifact.Assembly ! */ ! public boolean getVersionable(){ ! return versionable; ! } ! /** @param versionable Wether deliverables are used for composing <code>Versions</code> */ ! public void setVersionable(boolean versionable){ ! this.versionable = versionable; ! } ! ! /** ! * @hibernate.property column="b_mandatory" ! * type="boolean" not-null="true" ! * @return true if deliverables of this type are mandatory when ! * used for composing a <code>Assembly</code> ! * @see org.figure8.join.businessobjects.artifact.Assembly ! */ ! public boolean getMandatory(){ ! return mandatory; ! } ! /** @param mandatory Wether deliverables are mandatory whe composing <code>Versions</code> */ ! public void setMandatory(boolean mandatory){ ! this.mandatory = mandatory; ! } ! ! /** ! * @hibernate.property column="b_vcsdeliverable" ! * type="boolean" not-null="true" ! * @return true if deliverables of this type are retrieved using ! * a version and configuration system (such as CVS, Subversion, ...) ! */ ! public boolean getVcsDeliverable(){ ! return vcsDeliverable; ! } ! /** @param vcsDeliverable Wether deliverables are retrieved using a version and configuration system */ ! public void setVcsDeliverable(boolean vcsDeliverable){ ! this.vcsDeliverable = vcsDeliverable; ! } ! ! /** ! * @hibernate.property column="s_vcsuser" length="30" ! * @return The user for connecting to version and configuration system ! */ ! public String getVcsUser(){ ! return vcsUser; ! } ! /** @param vcsUser The user for connecting to VCS */ ! public void setVcsUser(String vcsUser){ ! this.vcsUser = vcsUser; ! } ! ! /** ! * @hibernate.property column="s_vcspassword" length="30" ! * @return The password for connecting to version and configuration system ! */ ! public String getVcsPassword(){ ! return vcsPassword; ! } ! /** @param vcsPassword The password for connection to VCS */ ! public void setVcsPassword(String vcsPassword){ ! this.vcsPassword = vcsPassword; ! } ! ! /** ! * @hibernate.property column="s_vcsroot" length="100" ! * @return The root of version and configuration system used (might be a CVS root, a Subversion Url, etc ...) ! */ ! public String getVcsRoot(){ ! return vcsRoot; ! } ! /** @param vcsRoot The root of VCS used (CVS root, SVN Url, ...) */ ! public void setVcsRoot(String vcsRoot){ ! this.vcsRoot = vcsRoot; ! } ! ! /** ! * @hibernate.property column="s_vcsmodule" length="40" ! * @return Name of module corresponding to deliverables in VCS (CVS module, "trunk" for Subversion, etc ..) ! */ ! public String getVcsModule(){ ! return vcsModule; ! } ! /** @param vcsModule Name of module corresponding to deliverables in VCS */ ! public void setVcsModule(String vcsModule){ ! this.vcsModule = vcsModule; ! } ! ! /** ! * @hibernate.property column="s_vcsaccessorclass" length="200" ! * @return The FQN of the Java class used for connecting version and ! * configuration system corresponding to this type ! */ ! public String getVcsAccessorClass(){ ! return vcsAccessorClass; ! } ! /** ! * Assign a VCS implementation to this deliverable type. ie : an helper object that allows ! * to connect to the version and configuration system used for retrieving deliverables of ! * this type. This parameter must be the name of the Java class that implements ! * <code>org.figure8.join.services.vcs.VCSAccessor</code> ! * @param vcsAccessorClass FQN of Java class ! * @throws org.figure8.join.core.InvalidParameterException if the <b>vcsImplementationClass</b> is not valid ! */ ! public void setVcsAccessorClass(String vcsAccessorClass) throws InvalidParameterException{ ! this.vcsAccessorClass = vcsAccessorClass; ! // Try instantiating VCS accessor now. ! instantiateVCSAccessor(); ! } ! ! /** ! * Get the <code>VCSAccessor</code> associated to this type (if any). The returned accessor ! * is "ready to use" : it has been initialized with corret properties. ! * @throws InvalidParameterException if the <b>vcsAccessorClass</b> inner field is not valid ! * @return The accessor instance or null if no accessor is associated to this role ! */ ! public VCSAccessor getVCSAccessor() throws InvalidParameterException{ ! // Only available if deliverable trough VCS and if there's a accessor defined. ! if (vcsDeliverable && vcsAccessorClass != null){ ! // Instantiate if not already done. ! if (vcsAccessor == null) ! instantiateVCSAccessor(); ! // Set vcs accessor fields. ! vcsAccessor.setUser(vcsUser); ! vcsAccessor.setPassword(vcsPassword); ! vcsAccessor.setModule(vcsModule); ! vcsAccessor.setRootRepository(vcsRoot); ! // Ok. ! return vcsAccessor; ! } ! return null; ! } ! ! /** ! * Generate a unique key for a deliverable. Such a key has to be unique as ! * specified by the <code>Artifact</code>. So this implementation is using ! * the given <b>keyTemplate</b> as a java.text.MessageFormat using 2 arguments ! * that are the deliverable release name (unique for a relase) and the deliverable ! * version infos (unique for a deliverable within a release). ! * @param deliverable Deliverable for whom a key should be generated ! * @return A unique key corresponding to this deliverable. The key is not ! * assigned to deliverable. ! * @see java.text.MessageFormat ! * @see org.figure8.join.businessobjects.artifact.Artifact ! */ ! public String generateDeliverableKey(Deliverable deliverable){ ! // Instantiate a message format if not already done. ! if (template == null) ! template = new MessageFormat(keyTemplate); ! // Prepare and format arguments array. ! Object[] args = new Object[]{deliverable.getRelease().getName(), deliverable.getVersionInfo()}; ! return template.format(args); ! } ! ! ! // Protected ---------------------------------------------------------------- ! ! /** ! * Try to instantiate the <code>VCSAccessor</code> associated with this type (if any ...) ! * @throws InvalidParameterException if the <b>vcsAccessorClass</b> inner field is not valid ! */ ! protected void instantiateVCSAccessor() throws InvalidParameterException{ ! if (vcsAccessorClass != null && vcsAccessor == null){ ! try{ ! // Load class from context class loader and retrieve new instance. ! Class clazz = Thread.currentThread().getContextClassLoader().loadClass(vcsAccessorClass); ! vcsAccessor = (VCSAccessor)clazz.newInstance(); ! } ! catch (Exception e){ ! // Log and wrap within an InvalidParameterException. ! log.error("Exception while trying to instantiate vcsAccessor for deliverable type '" + key + "'"); ! log.error("Here's the exception message : " + e.getMessage()); ! throw new InvalidParameterException("'" + vcsAccessorClass + ! "' cannot be found or does not extend VCSAccessor", e); ! } ! } ! } ! ! ! // Implementation of SortableEntityObect ------------------------------------ ! ! /** ! * Get the comparision criterion as a string. Display label here. ! * @return The string representation of comparison and sort cirterion ! */ ! public String getStringForComparison(){ ! return getLabel(); ! } } \ No newline at end of file --- 1,352 ---- ! /** ! * Copyright 2005-2006 the original author or authors. ! * ! * Licensed under the Gnu General Pubic 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.opensource.org/licenses/gpl-license.php ! * ! * 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. ! */ ! package org.figure8.join.businessobjects.artifact; ! ! import org.figure8.join.core.SortableEntityObject; ! import org.figure8.join.core.InvalidParameterException; ! import org.figure8.join.services.vcs.VCSAccessor; ! import org.figure8.join.util.LogUtil; ! ! import org.apache.commons.logging.Log; ! ! import java.text.MessageFormat; ! /** ! * Entity object representing a deliverable type. Such a type helps ! * categorizing work deliveries done and managed through Join application. ! * <br/> ! * A deliverable type will help by knowing how to generate unique keys for ! * deliverable artifacts. (see the <code>generateDeliverableKey()</code> method) ! * <br/> ! * It is also a handler for all the connection informations to the ! * underlying Versionning and Configuration System ; in the case such a ! * system is used for retrieving deliverables. (see the <code>getVCSAccessor()</code> ! * method) ! * @author <a href="mailto:lau...@fr...">Laurent Broudoux</a> ! * @version $Revision$ ! * ! * @see org.figure8.join.services.vcs.VCSAccessor ! * ! * @hibernate.class table="join_deltypes" ! * @hibernate.cache usage="read-write" ! * ! * @hibernate.query name="join.deltype_findByKey" query="from DeliverableType type where type.key = :typeKey" ! */ ! public class DeliverableType extends SortableEntityObject{ ! ! // Static ------------------------------------------------------------------- ! ! /** Get a commons logger. */ ! private static final Log log = LogUtil.getLog(DeliverableType.class); ! ! ! // Attributes --------------------------------------------------------------- ! ! /** The deliverable type key */ ! private String key; ! /** The deliverable type label */ ! private String label; ! /** The deliverable type keyTemplate */ ! private String keyTemplate; ! /** The deliverable type is versionnable */ ! private boolean versionable; ! /** The deliverable type is mandatory */ ! private boolean mandatory; ! /** The deliverable type use version and configuration system */ ! private boolean vcsDeliverable = false; ! ! /** User for connecting to the version and configuration system */ ! private String vcsUser; ! /** Password for connecting to the version and configuration system */ ! private String vcsPassword; ! /** The root of the version and configuration system */ ! private String vcsRoot; ! /** The module of the version and configuration system */ ! private String vcsModule; ! /** The accessor class name for the version and configuration system */ ! private String vcsAccessorClass; ! ! /** The template object for generating deliverable keys */ ! private MessageFormat template = null; ! /** The VCS accessor instance of type <b>vcsAccessorClass</b> */ ! private VCSAccessor vcsAccessor = null; ! ! ! // Constructors ------------------------------------------------------------- ! ! /** Creates a new instance of DeliverableType */ ! public DeliverableType(){ ! } ! ! /** ! * Creates a new instance of DeliverableType with mandatory attributes ! * @param key The instance unique key ! * @param label The type instance label ! * @param keyTemplate The deliverable type template for key generation ! * @param versionable Wether deliverables should appear in versions ! * @param mandatory Wether deliverables are mandatory in version composition ! * @see org.figure8.join.businessobjects.artifact.Assembly ! */ ! public DeliverableType(String key, String label, String keyTemplate, boolean versionable, boolean mandatory){ ! this.key = key; ! this.label = label; ! this.keyTemplate = keyTemplate; ! this.versionable = versionable; ! this.mandatory = mandatory; ! } ! ! ! // Public ------------------------------------------------------------------- ! ! /** ! * @hibernate.property column="s_key" ! * length="10" not-null="true" ! * unique="true" update="false" ! * @return This deliverable type key ! */ ! public String getKey(){ ! return key; ! } ! /** @param key This type unique key */ ! public void setKey(String key){ ! this.key = key; ! } ! ! /** ! * @hibernate.property column="s_label" ! * length="40" not-null="true" ! * unique="true" ! * @return This type label for display ! */ ! public String getLabel(){ ! return label; ! } ! /** @param label This deliverable type label */ ! public void setLabel(String label){ ! this.label = label; ! } ! ! /** ! * @hibernate.property column="s_keytemplate" ! * length="40" not-null="true" ! * unique="true" ! * @return The template used for generating deliverable keys ! */ ! public String getKeyTemplate(){ ! return keyTemplate; ! } ! /** ! * The template used for deliverables key generation. This template ! * should be a string representing a <code>MessageFormat</code> with ! * 2 arguments. (ex: myDeliverable_r{0}_v{1}) ! * @param keyTemplate MessageFormat template ! * @see java.text.MessageFormat ! */ ! public void setKeyTemplate(String keyTemplate){ ! this.keyTemplate = keyTemplate; ! } ! ! /** ! * @hibernate.property column="b_versionable" ! * type="boolean" not-null="true" ! * @return true if deliverables of this type should be used for ! * composing a <code>Assembly</code> ! * @see org.figure8.join.businessobjects.artifact.Assembly ! */ ! public boolean getVersionable(){ ! return versionable; ! } ! /** @param versionable Wether deliverables are used for composing <code>Versions</code> */ ! public void setVersionable(boolean versionable){ ! this.versionable = versionable; ! } ! ! /** ! * @hibernate.property column="b_mandatory" ! * type="boolean" not-null="true" ! * @return true if deliverables of this type are mandatory when ! * used for composing a <code>Assembly</code> ! * @see org.figure8.join.businessobjects.artifact.Assembly ! */ ! public boolean getMandatory(){ ! return mandatory; ! } ! /** @param mandatory Wether deliverables are mandatory whe composing <code>Versions</code> */ ! public void setMandatory(boolean mandatory){ ! this.mandatory = mandatory; ! } ! ! /** ! * @hibernate.property column="b_vcsdeliverable" ! * type="boolean" not-null="true" ! * @return true if deliverables of this type are retrieved using ! * a version and configuration system (such as CVS, Subversion, ...) ! */ ! public boolean getVcsDeliverable(){ ! return vcsDeliverable; ! } ! /** @param vcsDeliverable Wether deliverables are retrieved using a version and configuration system */ ! public void setVcsDeliverable(boolean vcsDeliverable){ ! this.vcsDeliverable = vcsDeliverable; ! } ! ! /** ! * @hibernate.property column="s_vcsuser" length="30" ! * @return The user for connecting to version and configuration system ! */ ! public String getVcsUser(){ ! return vcsUser; ! } ! /** @param vcsUser The user for connecting to VCS */ ! public void setVcsUser(String vcsUser){ ! this.vcsUser = vcsUser; ! } ! ! /** ! * @hibernate.property column="s_vcspassword" length="30" ! * @return The password for connecting to version and configuration system ! */ ! public String getVcsPassword(){ ! return vcsPassword; ! } ! /** @param vcsPassword The password for connection to VCS */ ! public void setVcsPassword(String vcsPassword){ ! this.vcsPassword = vcsPassword; ! } ! ! /** ! * @hibernate.property column="s_vcsroot" length="100" ! * @return The root of version and configuration system used (might be a CVS root, a Subversion Url, etc ...) ! */ ! public String getVcsRoot(){ ! return vcsRoot; ! } ! /** @param vcsRoot The root of VCS used (CVS root, SVN Url, ...) */ ! public void setVcsRoot(String vcsRoot){ ! this.vcsRoot = vcsRoot; ! } ! ! /** ! * @hibernate.property column="s_vcsmodule" length="40" ! * @return Name of module corresponding to deliverables in VCS (CVS module, "trunk" for Subversion, etc ..) ! */ ! public String getVcsModule(){ ! return vcsModule; ! } ! /** @param vcsModule Name of module corresponding to deliverables in VCS */ ! public void setVcsModule(String vcsModule){ ! this.vcsModule = vcsModule; ! } ! ! /** ! * @hibernate.property column="s_vcsaccessorclass" length="200" ! * @return The FQN of the Java class used for connecting version and ! * configuration system corresponding to this type ! */ ! public String getVcsAccessorClass(){ ! return vcsAccessorClass; ! } ! /** ! * Assign a VCS implementation to this deliverable type. ie : an helper object that allows ! * to connect to the version and configuration system used for retrieving deliverables of ! * this type. This parameter must be the name of the Java class that implements ! * <code>org.figure8.join.services.vcs.VCSAccessor</code> ! * @param vcsAccessorClass FQN of Java class ! * @throws org.figure8.join.core.InvalidParameterException if the <b>vcsImplementationClass</b> is not valid ! */ ! public void setVcsAccessorClass(String vcsAccessorClass) throws InvalidParameterException{ ! this.vcsAccessorClass = vcsAccessorClass; ! // Try instantiating VCS accessor now. ! instantiateVCSAccessor(); ! } ! ! /** ! * Get the <code>VCSAccessor</code> associated to this type (if any). The returned accessor ! * is "ready to use" : it has been initialized with corret properties. ! * @throws InvalidParameterException if the <b>vcsAccessorClass</b> inner field is not valid ! * @return The accessor instance or null if no accessor is associated to this role ! */ ! public VCSAccessor getVCSAccessor() throws InvalidParameterException{ ! // Only available if deliverable trough VCS and if there's a accessor defined. ! if (vcsDeliverable && vcsAccessorClass != null){ ! // Instantiate if not already done. ! if (vcsAccessor == null) ! instantiateVCSAccessor(); ! // Set vcs accessor fields. ! vcsAccessor.setUser(vcsUser); ! vcsAccessor.setPassword(vcsPassword); ! vcsAccessor.setModule(vcsModule); ! vcsAccessor.setRootRepository(vcsRoot); ! // Ok. ! return vcsAccessor; ! } ! return null; ! } ! ! /** ! * Generate a unique key for a deliverable. Such a key has to be unique as ! * specified by the <code>Artifact</code>. So this implementation is using ! * the given <b>keyTemplate</b> as a java.text.MessageFormat using 2 arguments ! * that are the deliverable release name (unique for a relase) and the deliverable ! * version infos (unique for a deliverable within a release). ! * @param deliverable Deliverable for whom a key should be generated ! * @return A unique key corresponding to this deliverable. The key is not ! * assigned to deliverable. ! * @see java.text.MessageFormat ! * @see org.figure8.join.businessobjects.artifact.Artifact ! */ ! public String generateDeliverableKey(Deliverable deliverable){ ! // Instantiate a message format if not already done. ! if (template == null) ! template = new MessageFormat(keyTemplate); ! // Prepare and format arguments array. ! Object[] args = new Object[]{deliverable.getRelease().getName(), deliverable.getVersionInfo()}; ! return template.format(args); ! } ! ! ! // Protected ---------------------------------------------------------------- ! ! /** ! * Try to instantiate the <code>VCSAccessor</code> associated with this type (if any ...) ! * @throws InvalidParameterException if the <b>vcsAccessorClass</b> inner field is not valid ! */ ! protected void instantiateVCSAccessor() throws InvalidParameterException{ ! if (vcsAccessorClass != null && vcsAccessorClass.length() > 0 && vcsAccessor == null){ ! try{ ! // Load class from context class loader and retrieve new instance. ! Class clazz = Thread.currentThread().getContextClassLoader().loadClass(vcsAccessorClass); ! vcsAccessor = (VCSAccessor)clazz.newInstance(); ! } ! catch (Exception e){ ! // Log and wrap within an InvalidParameterException. ! log.error("Exception while trying to instantiate vcsAccessor for deliverable type '" + key + "'"); ! log.error("Here's the exception message : " + e.getMessage()); ! throw new InvalidParameterException("'" + vcsAccessorClass + ! "' cannot be found or does not extend VCSAccessor", e); ! } ! } ! } ! ! ! // Implementation of SortableEntityObect ------------------------------------ ! ! /** ! * Get the comparision criterion as a string. Display label here. ! * @return The string representation of comparison and sort cirterion ! */ ! public String getStringForComparison(){ ! return getLabel(); ! } } \ No newline at end of file |
|
From: Laurent B. <lbr...@us...> - 2008-07-24 23:45:08
|
Update of /cvsroot/join/join1/src/main/org/figure8/join/businessfacades/environment In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv2273/businessfacades/environment Modified Files: DefaultEnvironmentManager.java Log Message: Remove log on assembly : it may be not initialized Index: DefaultEnvironmentManager.java =================================================================== RCS file: /cvsroot/join/join1/src/main/org/figure8/join/businessfacades/environment/DefaultEnvironmentManager.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** DefaultEnvironmentManager.java 28 Jan 2008 00:18:51 -0000 1.6 --- DefaultEnvironmentManager.java 24 Jul 2008 23:44:43 -0000 1.7 *************** *** 394,399 **** public void saveDeployment(Deployment deployment){ if (log.isInfoEnabled()) ! log.info("Saving the Deployment '" + deployment.getId() + ! "' for assembly " + deployment.getAssembly().getKey()); // Just call save() on dao. deploymentDao.save(deployment); --- 394,398 ---- public void saveDeployment(Deployment deployment){ if (log.isInfoEnabled()) ! log.info("Saving the Deployment '" + deployment.getId()); // Just call save() on dao. deploymentDao.save(deployment); |
|
From: Laurent B. <lbr...@us...> - 2008-02-03 23:10:11
|
Update of /cvsroot/join/join1/src/web/scripts/editor/themes/complete/jscripts In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv13350/scripts/editor/themes/complete/jscripts Added Files: color_picker.js image.js link.js Log Message: Add a rich text editor for messages --- NEW FILE: image.js --- var url = tinyMCE.getParam("external_image_list_url"); if (url != null) { // Fix relative if (url.charAt(0) != '/' && url.indexOf('://') == -1) url = tinyMCE.documentBasePath + "/" + url; document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>'); } function insertImage() { var src = document.forms[0].src.value; var alt = document.forms[0].alt.value; var border = document.forms[0].border.value; var vspace = document.forms[0].vspace.value; var hspace = document.forms[0].hspace.value; var width = document.forms[0].width.value; var height = document.forms[0].height.value; var align = document.forms[0].align.options[document.forms[0].align.selectedIndex].value; tinyMCEPopup.restoreSelection(); tinyMCE.themes['advanced']._insertImage(src, alt, border, hspace, vspace, width, height, align); tinyMCEPopup.close(); } function init() { tinyMCEPopup.resizeToInnerSize(); document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image'); var formObj = document.forms[0]; for (var i=0; i<document.forms[0].align.options.length; i++) { if (document.forms[0].align.options[i].value == tinyMCE.getWindowArg('align')) document.forms[0].align.options.selectedIndex = i; } formObj.src.value = tinyMCE.getWindowArg('src'); formObj.alt.value = tinyMCE.getWindowArg('alt'); formObj.border.value = tinyMCE.getWindowArg('border'); formObj.vspace.value = tinyMCE.getWindowArg('vspace'); formObj.hspace.value = tinyMCE.getWindowArg('hspace'); formObj.width.value = tinyMCE.getWindowArg('width'); formObj.height.value = tinyMCE.getWindowArg('height'); formObj.insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true); // Handle file browser if (isVisible('srcbrowser')) document.getElementById('src').style.width = '180px'; // Auto select image in list if (typeof(tinyMCEImageList) != "undefined" && tinyMCEImageList.length > 0) { for (var i=0; i<formObj.image_list.length; i++) { if (formObj.image_list.options[i].value == tinyMCE.getWindowArg('src')) formObj.image_list.options[i].selected = true; } } } var preloadImg = new Image(); function resetImageData() { var formObj = document.forms[0]; formObj.width.value = formObj.height.value = ""; } function updateImageData() { var formObj = document.forms[0]; if (formObj.width.value == "") formObj.width.value = preloadImg.width; if (formObj.height.value == "") formObj.height.value = preloadImg.height; } function getImageData() { preloadImg = new Image(); tinyMCE.addEvent(preloadImg, "load", updateImageData); tinyMCE.addEvent(preloadImg, "error", function () {var formObj = document.forms[0];formObj.width.value = formObj.height.value = "";}); preloadImg.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], document.forms[0].src.value); } --- NEW FILE: link.js --- var url = tinyMCE.getParam("external_link_list_url"); if (url != null) { // Fix relative if (url.charAt(0) != '/' && url.indexOf('://') == -1) url = tinyMCE.documentBasePath + "/" + url; document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>'); } function init() { tinyMCEPopup.resizeToInnerSize(); document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser','href','file','theme_advanced_link'); // Handle file browser if (isVisible('hrefbrowser')) document.getElementById('href').style.width = '180px'; var formObj = document.forms[0]; for (var i=0; i<document.forms[0].target.options.length; i++) { var option = document.forms[0].target.options[i]; if (option.value == tinyMCE.getWindowArg('target')) option.selected = true; } document.forms[0].href.value = tinyMCE.getWindowArg('href'); document.forms[0].linktitle.value = tinyMCE.getWindowArg('title'); document.forms[0].insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true); addClassesToList('styleSelect', 'theme_advanced_link_styles'); selectByValue(formObj, 'styleSelect', tinyMCE.getWindowArg('className'), true); // Hide css select row if no CSS classes if (formObj.styleSelect && formObj.styleSelect.options.length <= 1) { var sr = document.getElementById('styleSelectRow'); sr.style.display = 'none'; sr.parentNode.removeChild(sr); } // Auto select link in list if (typeof(tinyMCELinkList) != "undefined" && tinyMCELinkList.length > 0) { var formObj = document.forms[0]; for (var i=0; i<formObj.link_list.length; i++) { if (formObj.link_list.options[i].value == tinyMCE.getWindowArg('href')) formObj.link_list.options[i].selected = true; } } } function checkPrefix(n) { if (Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCE.getLang('lang_is_email'))) n.value = 'mailto:' + n.value; if (/^\s*www./i.test(n.value) && confirm(tinyMCE.getLang('lang_is_external'))) n.value = 'http://' + n.value; } function insertLink() { var href = document.forms[0].href.value; var target = document.forms[0].target.options[document.forms[0].target.selectedIndex].value; var title = document.forms[0].linktitle.value; var style_class = document.forms[0].styleSelect ? document.forms[0].styleSelect.value : ""; var dummy; if (target == '_self') target = ''; tinyMCEPopup.restoreSelection(); tinyMCE.themes['advanced']._insertLink(href, target, title, dummy, style_class); tinyMCEPopup.close(); } --- NEW FILE: color_picker.js --- var detail = 50, strhex = "0123456789abcdef", i, isMouseDown = false, isMouseOver = false; var colors = new Array( "#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033", "#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099", "#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff", "#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033", "#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399", "#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff", "#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333", "#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399", "#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff", "#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633", "#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699", "#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff", "#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633", "#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999", "#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff", "#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933", "#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999", "#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff", "#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33", "#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99", "#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff", "#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33", "#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99", "#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff", "#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33", "#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99", "#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff" ); var named = { '#F0F8FF':'AliceBlue','#FAEBD7':'AntiqueWhite','#00FFFF':'Aqua','#7FFFD4':'Aquamarine','#F0FFFF':'Azure','#F5F5DC':'Beige', '#FFE4C4':'Bisque','#000000':'Black','#FFEBCD':'BlanchedAlmond','#0000FF':'Blue','#8A2BE2':'BlueViolet','#A52A2A':'Brown', '#DEB887':'BurlyWood','#5F9EA0':'CadetBlue','#7FFF00':'Chartreuse','#D2691E':'Chocolate','#FF7F50':'Coral','#6495ED':'CornflowerBlue', '#FFF8DC':'Cornsilk','#DC143C':'Crimson','#00FFFF':'Cyan','#00008B':'DarkBlue','#008B8B':'DarkCyan','#B8860B':'DarkGoldenRod', '#A9A9A9':'DarkGray','#A9A9A9':'DarkGrey','#006400':'DarkGreen','#BDB76B':'DarkKhaki','#8B008B':'DarkMagenta','#556B2F':'DarkOliveGreen', '#FF8C00':'Darkorange','#9932CC':'DarkOrchid','#8B0000':'DarkRed','#E9967A':'DarkSalmon','#8FBC8F':'DarkSeaGreen','#483D8B':'DarkSlateBlue', '#2F4F4F':'DarkSlateGray','#2F4F4F':'DarkSlateGrey','#00CED1':'DarkTurquoise','#9400D3':'DarkViolet','#FF1493':'DeepPink','#00BFFF':'DeepSkyBlue', '#696969':'DimGray','#696969':'DimGrey','#1E90FF':'DodgerBlue','#B22222':'FireBrick','#FFFAF0':'FloralWhite','#228B22':'ForestGreen', '#FF00FF':'Fuchsia','#DCDCDC':'Gainsboro','#F8F8FF':'GhostWhite','#FFD700':'Gold','#DAA520':'GoldenRod','#808080':'Gray','#808080':'Grey', '#008000':'Green','#ADFF2F':'GreenYellow','#F0FFF0':'HoneyDew','#FF69B4':'HotPink','#CD5C5C':'IndianRed','#4B0082':'Indigo','#FFFFF0':'Ivory', '#F0E68C':'Khaki','#E6E6FA':'Lavender','#FFF0F5':'LavenderBlush','#7CFC00':'LawnGreen','#FFFACD':'LemonChiffon','#ADD8E6':'LightBlue', '#F08080':'LightCoral','#E0FFFF':'LightCyan','#FAFAD2':'LightGoldenRodYellow','#D3D3D3':'LightGray','#D3D3D3':'LightGrey','#90EE90':'LightGreen', '#FFB6C1':'LightPink','#FFA07A':'LightSalmon','#20B2AA':'LightSeaGreen','#87CEFA':'LightSkyBlue','#778899':'LightSlateGray','#778899':'LightSlateGrey', '#B0C4DE':'LightSteelBlue','#FFFFE0':'LightYellow','#00FF00':'Lime','#32CD32':'LimeGreen','#FAF0E6':'Linen','#FF00FF':'Magenta','#800000':'Maroon', '#66CDAA':'MediumAquaMarine','#0000CD':'MediumBlue','#BA55D3':'MediumOrchid','#9370D8':'MediumPurple','#3CB371':'MediumSeaGreen','#7B68EE':'MediumSlateBlue', '#00FA9A':'MediumSpringGreen','#48D1CC':'MediumTurquoise','#C71585':'MediumVioletRed','#191970':'MidnightBlue','#F5FFFA':'MintCream','#FFE4E1':'MistyRose','#FFE4B5':'Moccasin', '#FFDEAD':'NavajoWhite','#000080':'Navy','#FDF5E6':'OldLace','#808000':'Olive','#6B8E23':'OliveDrab','#FFA500':'Orange','#FF4500':'OrangeRed','#DA70D6':'Orchid', '#EEE8AA':'PaleGoldenRod','#98FB98':'PaleGreen','#AFEEEE':'PaleTurquoise','#D87093':'PaleVioletRed','#FFEFD5':'PapayaWhip','#FFDAB9':'PeachPuff', '#CD853F':'Peru','#FFC0CB':'Pink','#DDA0DD':'Plum','#B0E0E6':'PowderBlue','#800080':'Purple','#FF0000':'Red','#BC8F8F':'RosyBrown','#4169E1':'RoyalBlue', '#8B4513':'SaddleBrown','#FA8072':'Salmon','#F4A460':'SandyBrown','#2E8B57':'SeaGreen','#FFF5EE':'SeaShell','#A0522D':'Sienna','#C0C0C0':'Silver', '#87CEEB':'SkyBlue','#6A5ACD':'SlateBlue','#708090':'SlateGray','#708090':'SlateGrey','#FFFAFA':'Snow','#00FF7F':'SpringGreen', '#4682B4':'SteelBlue','#D2B48C':'Tan','#008080':'Teal','#D8BFD8':'Thistle','#FF6347':'Tomato','#40E0D0':'Turquoise','#EE82EE':'Violet', '#F5DEB3':'Wheat','#FFFFFF':'White','#F5F5F5':'WhiteSmoke','#FFFF00':'Yellow','#9ACD32':'YellowGreen' }; function init() { var inputColor = convertRGBToHex(tinyMCE.getWindowArg('input_color')); if (tinyMCE.isMSIE) tinyMCEPopup.resizeToInnerSize(); generatePicker(); if (inputColor) { changeFinalColor(inputColor); col = convertHexToRGB(inputColor); if (col) updateLight(col.r, col.g, col.b); } } function insertAction() { var color = document.getElementById("color").value; tinyMCEPopup.execCommand(tinyMCE.getWindowArg('command'), false, color); tinyMCEPopup.close(); } function showColor(color, name) { if (name) document.getElementById("colorname").innerHTML = name; document.getElementById("preview").style.backgroundColor = color; document.getElementById("color").value = color; } function convertRGBToHex(col) { var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi"); if (!col) return col; var rgb = col.replace(re, "$1,$2,$3").split(','); if (rgb.length == 3) { r = parseInt(rgb[0]).toString(16); g = parseInt(rgb[1]).toString(16); b = parseInt(rgb[2]).toString(16); r = r.length == 1 ? '0' + r : r; g = g.length == 1 ? '0' + g : g; b = b.length == 1 ? '0' + b : b; return "#" + r + g + b; } return col; } function convertHexToRGB(col) { if (col.indexOf('#') != -1) { col = col.replace(new RegExp('[^0-9A-F]', 'gi'), ''); r = parseInt(col.substring(0, 2), 16); g = parseInt(col.substring(2, 4), 16); b = parseInt(col.substring(4, 6), 16); return {r : r, g : g, b : b}; } return null; } function generatePicker() { var el = document.getElementById('light'), h = '', i; for (i = 0; i < detail; i++){ h += '<div id="gs'+i+'" style="background-color:#000000; width:15px; height:3px; border-style:none; border-width:0px;"' + ' onclick="changeFinalColor(this.style.backgroundColor)"' + ' onmousedown="isMouseDown = true; return false;"' + ' onmouseup="isMouseDown = false;"' + ' onmousemove="if (isMouseDown && isMouseOver) changeFinalColor(this.style.backgroundColor); return false;"' + ' onmouseover="isMouseOver = true;"' + ' onmouseout="isMouseOver = false;"' + '></div>'; } el.innerHTML = h; } function generateWebColors() { var el = document.getElementById('webcolors'), h = '', i; if (el.className == 'generated') return; h += '<table border="0" cellspacing="1" cellpadding="0">' + '<tr>'; for (i=0; i<colors.length; i++) { h += '<td bgcolor="' + colors[i] + '">' + '<a href="javascript:insertAction();" onfocus="showColor(\'' + colors[i] + '\');" onmouseover="showColor(\'' + colors[i] + '\');">' + '<img border="0" src="images/spacer.gif" width="10" height="10" title="' + colors[i] + '" alt="' + colors[i] + '" /></a></td>'; if ((i+1) % 18 == 0) h += '</tr><tr>'; } h += '</table>'; el.innerHTML = h; el.className = 'generated'; } function generateNamedColors() { var el = document.getElementById('namedcolors'), h = '', n, v, i = 0; if (el.className == 'generated') return; for (n in named) { v = named[n]; h += '<a href="javascript:insertAction();" onmouseover="showColor(\'' + n + '\',\'' + v + '\');" style="background-color: ' + n + '"><!-- IE --></a>' } el.innerHTML = h; el.className = 'generated'; } function dechex(n) { return strhex.charAt(Math.floor(n / 16)) + strhex.charAt(n % 16); } function computeColor(e) { var x, y, partWidth, partDetail, imHeight, r, g, b, coef, i, finalCoef, finalR, finalG, finalB; x = e.offsetX ? e.offsetX : (e.target ? e.clientX - e.target.x : 0); y = e.offsetY ? e.offsetY : (e.target ? e.clientY - e.target.y : 0); partWidth = document.getElementById('colorpicker').width / 6; partDetail = detail / 2; imHeight = document.getElementById('colorpicker').height; r = (x >= 0)*(x < partWidth)*255 + (x >= partWidth)*(x < 2*partWidth)*(2*255 - x * 255 / partWidth) + (x >= 4*partWidth)*(x < 5*partWidth)*(-4*255 + x * 255 / partWidth) + (x >= 5*partWidth)*(x < 6*partWidth)*255; g = (x >= 0)*(x < partWidth)*(x * 255 / partWidth) + (x >= partWidth)*(x < 3*partWidth)*255 + (x >= 3*partWidth)*(x < 4*partWidth)*(4*255 - x * 255 / partWidth); b = (x >= 2*partWidth)*(x < 3*partWidth)*(-2*255 + x * 255 / partWidth) + (x >= 3*partWidth)*(x < 5*partWidth)*255 + (x >= 5*partWidth)*(x < 6*partWidth)*(6*255 - x * 255 / partWidth); coef = (imHeight - y) / imHeight; r = 128 + (r - 128) * coef; g = 128 + (g - 128) * coef; b = 128 + (b - 128) * coef; changeFinalColor('#' + dechex(r) + dechex(g) + dechex(b)); updateLight(r, g, b); } function updateLight(r, g, b) { var i, partDetail = detail / 2, finalCoef, finalR, finalG, finalB, color; for (i=0; i<detail; i++) { if ((i>=0) && (i<partDetail)) { finalCoef = i / partDetail; finalR = dechex(255 - (255 - r) * finalCoef); finalG = dechex(255 - (255 - g) * finalCoef); finalB = dechex(255 - (255 - b) * finalCoef); } else { finalCoef = 2 - i / partDetail; finalR = dechex(r * finalCoef); finalG = dechex(g * finalCoef); finalB = dechex(b * finalCoef); } color = finalR + finalG + finalB; document.getElementById('gs' + i).style.backgroundColor = '#'+color; } } function changeFinalColor(color) { if (color.indexOf('#') == -1) color = convertRGBToHex(color); document.getElementById('preview').style.backgroundColor = color; document.getElementById('color').value = color; } window.focus(); |
|
From: Laurent B. <lbr...@us...> - 2008-02-03 23:10:11
|
Update of /cvsroot/join/join1/src/web/scripts/editor/themes/complete/langs In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv13350/scripts/editor/themes/complete/langs Added Files: en.js Log Message: Add a rich text editor for messages --- NEW FILE: en.js --- // UK lang variables tinyMCE.addToLang('',{ theme_style_select : '-- Styles --', theme_code_desc : 'Edit HTML Source', theme_code_title : 'HTML Source Editor', theme_code_wordwrap : 'Word wrap', theme_sub_desc : 'Subscript', theme_sup_desc : 'Superscript', theme_hr_desc : 'Insert horizontal ruler', theme_removeformat_desc : 'Remove formatting', theme_custom1_desc : 'Your custom description here', insert_image_border : 'Border', insert_image_dimensions : 'Dimensions', insert_image_vspace : 'Vertical space', insert_image_hspace : 'Horizontal space', insert_image_align : 'Alignment', insert_image_align_default : '-- Not set --', insert_image_align_baseline : 'Baseline', insert_image_align_top : 'Top', insert_image_align_middle : 'Middle', insert_image_align_bottom : 'Bottom', insert_image_align_texttop : 'TextTop', insert_image_align_absmiddle : 'Absolute Middle', insert_image_align_absbottom : 'Absolute Bottom', insert_image_align_left : 'Left', insert_image_align_right : 'Right', theme_font_size : '-- Font size --', theme_fontdefault : '-- Font family --', theme_block : '-- Format --', theme_paragraph : 'Paragraph', theme_div : 'Div', theme_address : 'Address', theme_pre : 'Preformatted', theme_h1 : 'Heading 1', theme_h2 : 'Heading 2', theme_h3 : 'Heading 3', theme_h4 : 'Heading 4', theme_h5 : 'Heading 5', theme_h6 : 'Heading 6', theme_blockquote : 'Blockquote', theme_code : 'Code', theme_samp : 'Code sample', theme_dt : 'Definition term ', theme_dd : 'Definition description', theme_colorpicker_title : 'Select a color', theme_colorpicker_apply : 'Apply', theme_forecolor_desc : 'Select text color', theme_backcolor_desc : 'Select background color', theme_charmap_title : 'Select custom character', theme_charmap_desc : 'Insert custom character', theme_visualaid_desc : 'Toggle guidelines/invisible elements', insert_anchor_title : 'Insert/edit anchor', insert_anchor_name : 'Anchor name', theme_anchor_desc : 'Insert/edit anchor', theme_insert_link_titlefield : 'Title', theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?', theme_path : 'Path', cut_desc : 'Cut', copy_desc : 'Copy', paste_desc : 'Paste', link_list : 'Link list', image_list : 'Image list', browse : 'Browse', image_props_desc : 'Image properties', newdocument_desc : 'New document', class_name : 'Class', newdocument : 'Are you sure you want clear all contents?', about_title : 'About TinyMCE', about : 'About', license : 'License', plugins : 'Plugins', plugin : 'Plugin', author : 'Author', version : 'Version', loaded_plugins : 'Loaded plugins', help : 'Help', not_set : '-- Not set --', close : 'Close', toolbar_focus : 'Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X', invalid_data : 'Error: Invalid values entered, these are marked in red.', more_colors : 'More colors', color_picker_tab : 'Picker', color_picker : 'Color picker', web_colors_tab : 'Palette', web_colors : 'Palette colors', named_colors_tab : 'Named', named_colors : 'Named colors', color : 'Color:', color_name : 'Name:', is_email : 'The URL you entered seems to be an email address, do you want to add the required mailto: prefix?', is_external : 'The URL you entered seems to external link, do you want to add the required http:// prefix?' }); |
|
From: Laurent B. <lbr...@us...> - 2008-02-03 23:10:11
|
Update of /cvsroot/join/join1/src/web/scripts/editor/utils In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv13350/scripts/editor/utils Added Files: editable_selects.js form_utils.js mclayer.js mctabs.js validate.js Log Message: Add a rich text editor for messages --- NEW FILE: editable_selects.js --- /** * $Id: editable_selects.js,v 1.1 2008/02/03 23:10:03 lbroudoux Exp $ * * Makes select boxes editable. * * @author Moxiecode * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved. */ var TinyMCE_EditableSelects = { editSelectElm : null, init : function() { var nl = document.getElementsByTagName("select"), i, d = document, o; for (i=0; i<nl.length; i++) { if (nl[i].className.indexOf('mceEditableSelect') != -1) { o = new Option('(value)', '__mce_add_custom__'); o.className = 'mceAddSelectValue'; nl[i].options[nl[i].options.length] = o; nl[i].setAttribute('onchange', 'TinyMCE_EditableSelects.onChangeEditableSelect(this);'); } } }, onChangeEditableSelect : function(se) { var d = document, ne; if (se.options[se.selectedIndex].value == '__mce_add_custom__') { ne = d.createElement("input"); ne.id = se.id + "_custom"; ne.name = se.name + "_custom"; ne.type = "text"; ne.style.width = se.clientWidth; se.parentNode.insertBefore(ne, se); se.style.display = 'none'; ne.focus(); ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput; TinyMCE_EditableSelects.editSelectElm = se; } }, onBlurEditableSelectInput : function() { var se = TinyMCE_EditableSelects.editSelectElm; if (se) { if (se.previousSibling.value != '') { addSelectValue(document.forms[0], se.id, se.previousSibling.value, se.previousSibling.value); selectByValue(document.forms[0], se.id, se.previousSibling.value); } else selectByValue(document.forms[0], se.id, ''); se.style.display = 'inline'; se.parentNode.removeChild(se.previousSibling); TinyMCE_EditableSelects.editSelectElm = null; } } }; --- NEW FILE: mctabs.js --- /** * $Id: mctabs.js,v 1.1 2008/02/03 23:10:03 lbroudoux Exp $ * * Moxiecode DHTML Tabs script. * * @author Moxiecode * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved. */ function MCTabs() { this.settings = new Array(); }; MCTabs.prototype.init = function(settings) { this.settings = settings; }; MCTabs.prototype.getParam = function(name, default_value) { var value = null; value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name]; // Fix bool values if (value == "true" || value == "false") return (value == "true"); return value; }; MCTabs.prototype.displayTab = function(tab_id, panel_id) { var panelElm = document.getElementById(panel_id); var panelContainerElm = panelElm ? panelElm.parentNode : null; var tabElm = document.getElementById(tab_id); var tabContainerElm = tabElm ? tabElm.parentNode : null; var selectionClass = this.getParam('selection_class', 'current'); if (tabElm && tabContainerElm) { var nodes = tabContainerElm.childNodes; // Hide all other tabs for (var i=0; i<nodes.length; i++) { if (nodes[i].nodeName == "LI") nodes[i].className = ''; } // Show selected tab tabElm.className = 'current'; } if (panelElm && panelContainerElm) { var nodes = panelContainerElm.childNodes; // Hide all other panels for (var i=0; i<nodes.length; i++) { if (nodes[i].nodeName == "DIV") nodes[i].className = 'panel'; } // Show selected panel panelElm.className = 'current'; } }; MCTabs.prototype.getAnchor = function() { var pos, url = document.location.href; if ((pos = url.lastIndexOf('#')) != -1) return url.substring(pos + 1); return ""; }; // Global instance var mcTabs = new MCTabs(); --- NEW FILE: mclayer.js --- /** * $Id: mclayer.js,v 1.1 2008/02/03 23:10:03 lbroudoux Exp $ * * Moxiecode floating layer script. * * @author Moxiecode * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved. */ function MCLayer(id) { this.id = id; this.settings = new Array(); this.blockerElement = null; this.isMSIE = navigator.appName == "Microsoft Internet Explorer"; this.events = false; this.autoHideCallback = null; } MCLayer.prototype = { moveRelativeTo : function(re, p, a) { var rep = this.getAbsPosition(re); var w = parseInt(re.offsetWidth); var h = parseInt(re.offsetHeight); var x, y; switch (p) { case "tl": break; case "tr": x = rep.absLeft + w; y = rep.absTop; break; case "bl": break; case "br": break; } this.moveTo(x, y); }, moveBy : function(dx, dy) { var e = this.getElement(); var x = parseInt(e.style.left); var y = parseInt(e.style.top); e.style.left = (x + dx) + "px"; e.style.top = (y + dy) + "px"; this.updateBlocker(); }, moveTo : function(x, y) { var e = this.getElement(); e.style.left = x + "px"; e.style.top = y + "px"; this.updateBlocker(); }, show : function() { MCLayer.visibleLayer = this; this.getElement().style.display = 'block'; this.updateBlocker(); }, hide : function() { this.getElement().style.display = 'none'; this.updateBlocker(); }, setAutoHide : function(s, cb) { this.autoHideCallback = cb; this.registerEventHandlers(); }, getElement : function() { return document.getElementById(this.id); }, updateBlocker : function() { if (!this.isMSIE) return; var e = this.getElement(); var b = this.getBlocker(); var x = this.parseInt(e.style.left); var y = this.parseInt(e.style.top); var w = this.parseInt(e.offsetWidth); var h = this.parseInt(e.offsetHeight); b.style.left = x + 'px'; b.style.top = y + 'px'; b.style.width = w + 'px'; b.style.height = h + 'px'; b.style.display = e.style.display; }, getBlocker : function() { if (!this.blockerElement) { var d = document, b = d.createElement("iframe"); b.style.cssText = 'display: none; left: 0px; position: absolute; top: 0'; b.src = 'javascript:false;'; b.frameBorder = '0'; b.scrolling = 'no'; d.body.appendChild(b); this.blockerElement = b; } return this.blockerElement; }, getAbsPosition : function(n) { var p = {absLeft : 0, absTop : 0}; while (n) { p.absLeft += n.offsetLeft; p.absTop += n.offsetTop; n = n.offsetParent; } return p; }, registerEventHandlers : function() { if (!this.events) { var d = document; this.addEvent(d, 'mousedown', MCLayer.prototype.onMouseDown); this.events = true; } }, addEvent : function(o, n, h) { if (o.attachEvent) o.attachEvent("on" + n, h); else o.addEventListener(n, h, false); }, onMouseDown : function(e) { e = typeof(e) == "undefined" ? window.event : e; var b = document.body; var l = MCLayer.visibleLayer; if (l) { var mx = l.isMSIE ? e.clientX + b.scrollLeft : e.pageX; var my = l.isMSIE ? e.clientY + b.scrollTop : e.pageY; var el = l.getElement(); var x = parseInt(el.style.left); var y = parseInt(el.style.top); var w = parseInt(el.offsetWidth); var h = parseInt(el.offsetHeight); if (!(mx > x && mx < x + w && my > y && my < y + h)) { MCLayer.visibleLayer = null; if (l.autoHideCallback && l.autoHideCallback(l, e, mx, my)) return true; l.hide(); } } }, addCSSClass : function(e, c) { this.removeCSSClass(e, c); var a = this.explode(' ', e.className); a[a.length] = c; e.className = a.join(' '); }, removeCSSClass : function(e, c) { var a = this.explode(' ', e.className), i; for (i=0; i<a.length; i++) { if (a[i] == c) a[i] = ''; } e.className = a.join(' '); }, explode : function(d, s) { var ar = s.split(d); var oar = new Array(); for (var i = 0; i<ar.length; i++) { if (ar[i] != "") oar[oar.length] = ar[i]; } return oar; }, parseInt : function(s) { if (s == null || s == '') return 0; return parseInt(s); } } --- NEW FILE: form_utils.js --- /** * $Id: form_utils.js,v 1.1 2008/02/03 23:10:03 lbroudoux Exp $ * * Various form utilitiy functions. * * @author Moxiecode * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved. */ var themeBaseURL = tinyMCE.baseURL + '/themes/' + tinyMCE.getParam("theme"); function getColorPickerHTML(id, target_form_element) { var h = ""; h += '<a id="' + id + '_link" href="javascript:void(0);" onkeydown="pickColor(event,\'' + target_form_element +'\');" onmousedown="pickColor(event,\'' + target_form_element +'\');return false;">'; h += '<img id="' + id + '" src="' + themeBaseURL + '/images/color.gif"'; h += ' onmouseover="this.className=\'mceButtonOver\'"'; h += ' onmouseout="this.className=\'mceButtonNormal\'"'; h += ' onmousedown="this.className=\'mceButtonDown\'"'; h += ' width="20" height="16" border="0" title="' + tinyMCE.getLang('lang_browse') + '"'; h += ' class="mceButtonNormal" alt="' + tinyMCE.getLang('lang_browse') + '" /></a>'; return h; } function pickColor(e, target_form_element) { if ((e.keyCode == 32 || e.keyCode == 13) || e.type == "mousedown") tinyMCEPopup.pickColor(e, target_form_element); } function updateColor(img_id, form_element_id) { document.getElementById(img_id).style.backgroundColor = document.forms[0].elements[form_element_id].value; } function setBrowserDisabled(id, state) { var img = document.getElementById(id); var lnk = document.getElementById(id + "_link"); if (lnk) { if (state) { lnk.setAttribute("realhref", lnk.getAttribute("href")); lnk.removeAttribute("href"); tinyMCE.switchClass(img, 'mceButtonDisabled', true); } else { lnk.setAttribute("href", lnk.getAttribute("realhref")); tinyMCE.switchClass(img, 'mceButtonNormal', false); } } } function getBrowserHTML(id, target_form_element, type, prefix) { var option = prefix + "_" + type + "_browser_callback"; var cb = tinyMCE.getParam(option, tinyMCE.getParam("file_browser_callback")); if (cb == null) return ""; var html = ""; html += '<a id="' + id + '_link" href="javascript:openBrower(\'' + id + '\',\'' + target_form_element + '\', \'' + type + '\',\'' + option + '\');" onmousedown="return false;">'; html += '<img id="' + id + '" src="' + themeBaseURL + '/images/browse.gif"'; html += ' onmouseover="this.className=\'mceButtonOver\';"'; html += ' onmouseout="this.className=\'mceButtonNormal\';"'; html += ' onmousedown="this.className=\'mceButtonDown\';"'; html += ' width="20" height="18" border="0" title="' + tinyMCE.getLang('lang_browse') + '"'; html += ' class="mceButtonNormal" alt="' + tinyMCE.getLang('lang_browse') + '" /></a>'; return html; } function openBrower(img_id, target_form_element, type, option) { var img = document.getElementById(img_id); if (img.className != "mceButtonDisabled") tinyMCEPopup.openBrowser(target_form_element, type, option); } function selectByValue(form_obj, field_name, value, add_custom, ignore_case) { if (!form_obj || !form_obj.elements[field_name]) return; var sel = form_obj.elements[field_name]; var found = false; for (var i=0; i<sel.options.length; i++) { var option = sel.options[i]; if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) { option.selected = true; found = true; } else option.selected = false; } if (!found && add_custom && value != '') { var option = new Option(value, value); option.selected = true; sel.options[sel.options.length] = option; sel.selectedIndex = sel.options.length - 1; } return found; } function getSelectValue(form_obj, field_name) { var elm = form_obj.elements[field_name]; if (elm == null || elm.options == null) return ""; return elm.options[elm.selectedIndex].value; } function addSelectValue(form_obj, field_name, name, value) { var s = form_obj.elements[field_name]; var o = new Option(name, value); s.options[s.options.length] = o; } function addClassesToList(list_id, specific_option) { // Setup class droplist var styleSelectElm = document.getElementById(list_id); var styles = tinyMCE.getParam('theme_advanced_styles', false); styles = tinyMCE.getParam(specific_option, styles); if (styles) { var stylesAr = styles.split(';'); for (var i=0; i<stylesAr.length; i++) { if (stylesAr != "") { var key, value; key = stylesAr[i].split('=')[0]; value = stylesAr[i].split('=')[1]; styleSelectElm.options[styleSelectElm.length] = new Option(key, value); } } } else { // Use auto impored classes var csses = tinyMCE.getCSSClasses(tinyMCE.getWindowArg('editor_id')); for (var i=0; i<csses.length; i++) styleSelectElm.options[styleSelectElm.length] = new Option(csses[i], csses[i]); } } function isVisible(element_id) { var elm = document.getElementById(element_id); return elm && elm.style.display != "none"; } function convertRGBToHex(col) { var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi"); var rgb = col.replace(re, "$1,$2,$3").split(','); if (rgb.length == 3) { r = parseInt(rgb[0]).toString(16); g = parseInt(rgb[1]).toString(16); b = parseInt(rgb[2]).toString(16); r = r.length == 1 ? '0' + r : r; g = g.length == 1 ? '0' + g : g; b = b.length == 1 ? '0' + b : b; return "#" + r + g + b; } return col; } function convertHexToRGB(col) { if (col.indexOf('#') != -1) { col = col.replace(new RegExp('[^0-9A-F]', 'gi'), ''); r = parseInt(col.substring(0, 2), 16); g = parseInt(col.substring(2, 4), 16); b = parseInt(col.substring(4, 6), 16); return "rgb(" + r + "," + g + "," + b + ")"; } return col; } function trimSize(size) { return size.replace(new RegExp('[^0-9%]', 'gi'), ''); } function getCSSSize(size) { size = trimSize(size); if (size == "") return ""; return size.indexOf('%') != -1 ? size : size + "px"; } function getStyle(elm, attrib, style) { var val = tinyMCE.getAttrib(elm, attrib); if (val != '') return '' + val; if (typeof(style) == 'undefined') style = attrib; val = eval('elm.style.' + style); return val == null ? '' : '' + val; } --- NEW FILE: validate.js --- /** * $Id: validate.js,v 1.1 2008/02/03 23:10:03 lbroudoux Exp $ * * Various form validation methods. * * @author Moxiecode * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved. */ /** // String validation: if (!Validator.isEmail('myemail')) alert('Invalid email.'); // Form validation: var f = document.forms['myform']; if (!Validator.isEmail(f.myemail)) alert('Invalid email.'); */ var Validator = { isEmail : function(s) { return this.test(s, '^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$'); }, isAbsUrl : function(s) { return this.test(s, '^(news|telnet|nttp|file|http|ftp|https)://[-A-Za-z0-9\\.]+\\/?.*$'); }, isSize : function(s) { return this.test(s, '^[0-9]+(px|%)?$'); }, isId : function(s) { return this.test(s, '^[A-Za-z_]([A-Za-z0-9_])*$'); }, isEmpty : function(s) { var nl, i; if (s.nodeName == 'SELECT' && s.selectedIndex < 1) return true; if (s.type == 'checkbox' && !s.checked) return true; if (s.type == 'radio') { for (i=0, nl = s.form.elements; i<nl.length; i++) { if (nl[i].type == "radio" && nl[i].name == s.name && nl[i].checked) return false; } return true; } return new RegExp('^\\s*$').test(s.nodeType == 1 ? s.value : s); }, isNumber : function(s, d) { return !isNaN(s.nodeType == 1 ? s.value : s) && (!d || !this.test(s, '^-?[0-9]*\\.[0-9]*$')); }, test : function(s, p) { s = s.nodeType == 1 ? s.value : s; return s == '' || new RegExp(p).test(s); } }; var AutoValidator = { settings : { id_cls : 'id', int_cls : 'int', url_cls : 'url', number_cls : 'number', email_cls : 'email', size_cls : 'size', required_cls : 'required', invalid_cls : 'invalid', min_cls : 'min', max_cls : 'max' }, init : function(s) { var n; for (n in s) this.settings[n] = s[n]; }, validate : function(f) { var i, nl, s = this.settings, c = 0; nl = this.tags(f, 'label'); for (i=0; i<nl.length; i++) this.removeClass(nl[i], s.invalid_cls); c += this.validateElms(f, 'input'); c += this.validateElms(f, 'select'); c += this.validateElms(f, 'textarea'); return c == 3; }, invalidate : function(n) { this.mark(n.form, n); }, reset : function(e) { var t = new Array('label', 'input', 'select', 'textarea'); var i, j, nl, s = this.settings; if (e == null) return; for (i=0; i<t.length; i++) { nl = this.tags(e.form ? e.form : e, t[i]); for (j=0; j<nl.length; j++) this.removeClass(nl[j], s.invalid_cls); } }, validateElms : function(f, e) { var nl, i, n, s = this.settings, st = true, va = Validator, v; nl = this.tags(f, e); for (i=0; i<nl.length; i++) { n = nl[i]; this.removeClass(n, s.invalid_cls); if (this.hasClass(n, s.required_cls) && va.isEmpty(n)) st = this.mark(f, n); if (this.hasClass(n, s.number_cls) && !va.isNumber(n)) st = this.mark(f, n); if (this.hasClass(n, s.int_cls) && !va.isNumber(n, true)) st = this.mark(f, n); if (this.hasClass(n, s.url_cls) && !va.isAbsUrl(n)) st = this.mark(f, n); if (this.hasClass(n, s.email_cls) && !va.isEmail(n)) st = this.mark(f, n); if (this.hasClass(n, s.size_cls) && !va.isSize(n)) st = this.mark(f, n); if (this.hasClass(n, s.id_cls) && !va.isId(n)) st = this.mark(f, n); if (this.hasClass(n, s.min_cls, true)) { v = this.getNum(n, s.min_cls); if (isNaN(v) || parseInt(n.value) < parseInt(v)) st = this.mark(f, n); } if (this.hasClass(n, s.max_cls, true)) { v = this.getNum(n, s.max_cls); if (isNaN(v) || parseInt(n.value) > parseInt(v)) st = this.mark(f, n); } } return st; }, hasClass : function(n, c, d) { return new RegExp('\\b' + c + (d ? '[0-9]+' : '') + '\\b', 'g').test(n.className); }, getNum : function(n, c) { c = n.className.match(new RegExp('\\b' + c + '([0-9]+)\\b', 'g'))[0]; c = c.replace(/[^0-9]/g, ''); return c; }, addClass : function(n, c, b) { var o = this.removeClass(n, c); n.className = b ? c + (o != '' ? (' ' + o) : '') : (o != '' ? (o + ' ') : '') + c; }, removeClass : function(n, c) { c = n.className.replace(new RegExp("(^|\\s+)" + c + "(\\s+|$)"), ' '); return n.className = c != ' ' ? c : ''; }, tags : function(f, s) { return f.getElementsByTagName(s); }, mark : function(f, n) { var s = this.settings; this.addClass(n, s.invalid_cls); this.markLabels(f, n, s.invalid_cls); return false; }, markLabels : function(f, n, ic) { var nl, i; nl = this.tags(f, "label"); for (i=0; i<nl.length; i++) { if (nl[i].getAttribute("for") == n.id || nl[i].htmlFor == n.id) this.addClass(nl[i], ic); } return null; } }; |
Update of /cvsroot/join/join1/src/web/scripts/editor/themes/complete/images In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv13350/scripts/editor/themes/complete/images Added Files: backcolor.gif bold.gif bold_de_se.gif bold_fr.gif bold_ru.gif bold_tw.gif bullist.gif button_menu.gif buttons.gif cleanup.gif forecolor.gif image.gif italic.gif italic_de_se.gif italic_ru.gif italic_tw.gif link.gif numlist.gif redo.gif separator.gif spacer.gif statusbar_resize.gif strikethrough.gif underline.gif underline_fr.gif underline_ru.gif underline_tw.gif undo.gif unlink.gif Log Message: Add a rich text editor for messages --- NEW FILE: cleanup.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: redo.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: unlink.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: numlist.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: button_menu.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: buttons.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: italic_tw.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: underline_tw.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: separator.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: bold_fr.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: bold.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: bold_ru.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: bold_tw.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: italic_de_se.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: backcolor.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: image.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: undo.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: underline_fr.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: italic.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: bold_de_se.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: spacer.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: underline.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: underline_ru.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: bullist.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: strikethrough.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: link.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: italic_ru.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: statusbar_resize.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: forecolor.gif --- (This appears to be a binary file; contents omitted.) |
|
From: Laurent B. <lbr...@us...> - 2008-02-03 23:10:06
|
Update of /cvsroot/join/join1/src/web/scripts/editor/themes/complete In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv13350/scripts/editor/themes/complete Added Files: color_picker.htm editor_template.js editor_template_comp.js image.htm link.htm Log Message: Add a rich text editor for messages --- NEW FILE: image.htm --- <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>{$lang_insert_image_title}</title> <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script> <script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script> <script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script> <script language="javascript" type="text/javascript" src="jscripts/image.js"></script> <base target="_self" /> </head> <body id="image" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none"> <form onsubmit="insertImage();return false;" action="#"> <div class="tabs"> <ul> <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_insert_image_title}</a></span></li> </ul> </div> <div class="panel_wrapper"> <div id="general_panel" class="panel current"> <table border="0" cellpadding="4" cellspacing="0"> <tr> <td nowrap="nowrap"><label for="src">{$lang_insert_image_src}</label></td> <td><table border="0" cellspacing="0" cellpadding="0"> <tr> <td><input id="src" name="src" type="text" value="" style="width: 200px" onchange="getImageData();" /></td> <td id="srcbrowsercontainer"> </td> </tr> </table></td> </tr> <!-- Image list --> <script language="javascript"> if (typeof(tinyMCEImageList) != "undefined" && tinyMCEImageList.length > 0) { var html = ""; html += '<tr><td><label for="image_list">{$lang_image_list}</label></td>'; html += '<td><select id="image_list" name="image_list" style="width: 200px" onchange="this.form.src.value=this.options[this.selectedIndex].value;resetImageData();getImageData();">'; html += '<option value="">---</option>'; for (var i=0; i<tinyMCEImageList.length; i++) html += '<option value="' + tinyMCEImageList[i][1] + '">' + tinyMCEImageList[i][0] + '</option>'; html += '</select></td></tr>'; document.write(html); } </script> <!-- /Image list --> <tr> <td nowrap="nowrap"><label for="alt">{$lang_insert_image_alt}</label></td> <td><input id="alt" name="alt" type="text" value="" style="width: 200px" /></td> </tr> <tr> <td nowrap="nowrap"><label for="align">{$lang_insert_image_align}</label></td> <td><select id="align" name="align"> <option value="">{$lang_insert_image_align_default}</option> <option value="baseline">{$lang_insert_image_align_baseline}</option> <option value="top">{$lang_insert_image_align_top}</option> <option value="middle">{$lang_insert_image_align_middle}</option> <option value="bottom">{$lang_insert_image_align_bottom}</option> <option value="texttop">{$lang_insert_image_align_texttop}</option> <option value="absmiddle">{$lang_insert_image_align_absmiddle}</option> <option value="absbottom">{$lang_insert_image_align_absbottom}</option> <option value="left">{$lang_insert_image_align_left}</option> <option value="right">{$lang_insert_image_align_right}</option> </select></td> </tr> <tr> <td nowrap="nowrap"><label for="width">{$lang_insert_image_dimensions}</label></td> <td><input id="width" name="width" type="text" value="" size="3" maxlength="5" /> x <input id="height" name="height" type="text" value="" size="3" maxlength="5" /></td> </tr> <tr> <td nowrap="nowrap"><label for="border">{$lang_insert_image_border}</label></td> <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" /></td> </tr> <tr> <td nowrap="nowrap"><label for="vspace">{$lang_insert_image_vspace}</label></td> <td><input id="vspace" name="vspace" type="text" value="" size="3" maxlength="3" /></td> </tr> <tr> <td nowrap="nowrap"><label for="hspace">{$lang_insert_image_hspace}</label></td> <td><input id="hspace" name="hspace" type="text" value="" size="3" maxlength="3" /></td> </tr> </table> </div> </div> <div class="mceActionPanel"> <div style="float: left"> <input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertImage();" /> </div> <div style="float: right"> <input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" /> </div> </div> </form> </body> </html> --- NEW FILE: editor_template_comp.js --- var TinyMCE_SimpleTheme={_buttonMap:'bold,bullist,cleanup,italic,numlist,redo,strikethrough,underline,undo',getEditorTemplate:function(){var html='';html+='<table class="mceEditor" border="0" cellpadding="0" cellspacing="0" width="{$width}" height="{$height}">';html+='<tr><td align="center">';html+='<span id="{$editor_id}">IFRAME</span>';html+='</td></tr>';html+='<tr><td class="mceToolbar" align="center" height="1">';html+=tinyMCE.getButtonHTML('bold','lang_bold_desc','{$themeurl}/images/{$lang_bold_img}','Bold');html+=tinyMCE.getButtonHTML('italic','lang_italic_desc','{$themeurl}/images/{$lang_italic_img}','Italic');html+=tinyMCE.getButtonHTML('underline','lang_underline_desc','{$themeurl}/images/{$lang_underline_img}','Underline');html+=tinyMCE.getButtonHTML('strikethrough','lang_striketrough_desc','{$themeurl}/images/strikethrough.gif','Strikethrough');html+='<img src="{$themeurl}/images/separator.gif" width="2" height="20" class="mceSeparatorLine" />';html+=tinyMCE.getButtonHTML('undo','lang_undo_desc','{$themeurl}/images/undo.gif','Undo');html+=tinyMCE.getButtonHTML('redo','lang_redo_desc','{$themeurl}/images/redo.gif','Redo');html+='<img src="{$themeurl}/images/separator.gif" width="2" height="20" class="mceSeparatorLine" />';html+=tinyMCE.getButtonHTML('cleanup','lang_cleanup_desc','{$themeurl}/images/cleanup.gif','mceCleanup');html+='<img src="{$themeurl}/images/separator.gif" width="2" height="20" class="mceSeparatorLine" />';html+=tinyMCE.getButtonHTML('bullist','lang_bullist_desc','{$themeurl}/images/bullist.gif','InsertUnorderedList');html+=tinyMCE.getButtonHTML('numlist','lang_numlist_desc','{$themeurl}/images/numlist.gif','InsertOrderedList');html+='</td></tr></table>';return{delta_width:0,delta_height:20,html:html}},handleNodeChange:function(editor_id,node){tinyMCE.switchClass(editor_id+'_bold','mceButtonNormal');tinyMCE.switchClass(editor_id+'_italic','mceButtonNormal');tinyMCE.switchClass(editor_id+'_underline','mceButtonNormal');tinyMCE.switchClass(editor_id+'_strikethrough','mceButtonNormal');tinyMCE.switchClass(editor_id+'_bullist','mceButtonNormal');tinyMCE.switchClass(editor_id+'_numlist','mceButtonNormal');do{switch(node.nodeName.toLowerCase()){case"b":case"strong":tinyMCE.switchClass(editor_id+'_bold','mceButtonSelected');break;case"i":case"em":tinyMCE.switchClass(editor_id+'_italic','mceButtonSelected');break;case"u":tinyMCE.switchClass(editor_id+'_underline','mceButtonSelected');break;case"strike":tinyMCE.switchClass(editor_id+'_strikethrough','mceButtonSelected');break;case"ul":tinyMCE.switchClass(editor_id+'_bullist','mceButtonSelected');break;case"ol":tinyMCE.switchClass(editor_id+'_numlist','mceButtonSelected');break}}while((node=node.parentNode)!=null)}};tinyMCE.addTheme("simple",TinyMCE_SimpleTheme);tinyMCE.addButtonMap(TinyMCE_SimpleTheme._buttonMap); --- NEW FILE: link.htm --- <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>{$lang_insert_link_title}</title> <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script> <script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script> <script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script> <script language="javascript" type="text/javascript" src="../../utils/validate.js"></script> <script language="javascript" type="text/javascript" src="jscripts/link.js"></script> <base target="_self" /> </head> <body id="link" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none"> <form onsubmit="insertLink();return false;" action="#"> <div class="tabs"> <ul> <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_insert_link_title}</a></span></li> </ul> </div> <div class="panel_wrapper"> <div id="general_panel" class="panel current"> <table border="0" cellpadding="4" cellspacing="0"> <tr> <td nowrap="nowrap"><label for="href">{$lang_insert_link_url}</label></td> <td><table border="0" cellspacing="0" cellpadding="0"> <tr> <td><input id="href" name="href" type="text" value="" style="width: 200px" onchange="checkPrefix(this);" /></td> <td id="hrefbrowsercontainer"> </td> </tr> </table></td> </tr> <!-- Link list --> <script language="javascript"> if (typeof(tinyMCELinkList) != "undefined" && tinyMCELinkList.length > 0) { var html = ""; html += '<tr><td><label for="link_list">{$lang_link_list}</label></td>'; html += '<td><select id="link_list" name="link_list" style="width: 200px" onchange="this.form.href.value=this.options[this.selectedIndex].value;">'; html += '<option value="">---</option>'; for (var i=0; i<tinyMCELinkList.length; i++) html += '<option value="' + tinyMCELinkList[i][1] + '">' + tinyMCELinkList[i][0] + '</option>'; html += '</select></td></tr>'; document.write(html); } </script> <!-- /Link list --> <tr> <td nowrap="nowrap"><label for="target">{$lang_insert_link_target}</label></td> <td><select id="target" name="target" style="width: 200px"> <option value="_self">{$lang_insert_link_target_same}</option> <option value="_blank">{$lang_insert_link_target_blank}</option> <script language="javascript"> var html = ""; var targets = tinyMCE.getParam('theme_advanced_link_targets', '').split(';'); for (var i=0; i<targets.length; i++) { var key, value; if (targets[i] == "") continue; key = targets[i].split('=')[0]; value = targets[i].split('=')[1]; html += '<option value="' + value + '">' + key + '</option>'; } document.write(html); </script> </select></td> </tr> <tr> <td nowrap="nowrap"><label for="linktitle">{$lang_theme_insert_link_titlefield}</label></td> <td><input id="linktitle" name="linktitle" type="text" value="" style="width: 200px"></td> </tr> <tr id="styleSelectRow"> <td><label for="styleSelect">{$lang_class_name}</label></td> <td> <select id="styleSelect" name="styleSelect"> <option value="" selected>{$lang_theme_style_select}</option> </select></td> </tr> </table> </div> </div> <div class="mceActionPanel"> <div style="float: left"> <input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertLink();" /> </div> <div style="float: right"> <input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" /> </div> </div> </form> </body> </html> --- NEW FILE: editor_template.js --- (This appears to be a binary file; contents omitted.) --- NEW FILE: color_picker.htm --- <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>{$lang_theme_colorpicker_title}</title> <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script> <script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script> <script language="javascript" type="text/javascript" src="jscripts/color_picker.js"></script> <link href="css/colorpicker.css" rel="stylesheet" type="text/css" /> <base target="_self" /> </head> <body onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none"> <div class="tabs"> <ul> <li id="picker_tab" class="current"><span><a href="javascript:mcTabs.displayTab('picker_tab','picker_panel');" onmousedown="return false;">{$lang_color_picker_tab}</a></span></li> <li id="rgb_tab"><span><a href="#" onclick="generateWebColors();mcTabs.displayTab('rgb_tab','rgb_panel');" onmousedown="return false;">{$lang_web_colors_tab}</a></span></li> <li id="named_tab"><span><a href="#" onclick="generateNamedColors();javascript:mcTabs.displayTab('named_tab','named_panel');" onmousedown="return false;">{$lang_named_colors_tab}</a></span></li> </ul> </div> <div class="panel_wrapper"> <div id="picker_panel" class="panel current"> <fieldset> <legend>{$lang_color_picker}</legend> <div id="picker"> <img id="colorpicker" src="images/colors.jpg" onclick="computeColor(event)" onmousedown="isMouseDown = true;return false;" onmouseup="isMouseDown = false;" onmousemove="if (isMouseDown && isMouseOver) computeColor(event); return false;" onmouseover="isMouseOver=true;" onmouseout="isMouseOver=false;" /> <div id="light"> <!-- Will be filled with divs --> </div> <br style="clear: both" /> </div> </fieldset> </div> <div id="rgb_panel" class="panel"> <fieldset> <legend>{$lang_web_colors}</legend> <div id="webcolors"> <!-- Gets filled with web safe colors--> </div> <br style="clear: both" /> </fieldset> </div> <div id="named_panel" class="panel"> <fieldset> <legend>{$lang_named_colors}</legend> <div id="namedcolors"> <!-- Gets filled with named colors--> </div> <br style="clear: both" /> <div id="colornamecontainer"> {$lang_color_name} <span id="colorname"></span> </div> </fieldset> </div> </div> <div class="mceActionPanel"> <div style="float: left"> <input type="button" id="insert" name="insert" value="{$lang_theme_colorpicker_apply}" onclick="insertAction();" /> </div> <div id="preview"></div> <div id="previewblock"> <label for="color">{$lang_color}</label> <input id="color" type="text" size="8" maxlength="8" class="text" /> </div> </div> </body> </html> |
|
From: Laurent B. <lbr...@us...> - 2008-02-03 23:10:05
|
Update of /cvsroot/join/join1/src/web/scripts/editor/langs In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv13350/scripts/editor/langs Added Files: en.js Log Message: Add a rich text editor for messages --- NEW FILE: en.js --- // UK lang variables tinyMCE.addToLang('',{ bold_img : "bold.gif", italic_img : "italic.gif", underline_img : "underline.gif", insert : 'Insert', update : 'Update', cancel : 'Cancel', theme_style_select : '-- Styles --', theme_code_desc : 'Edit HTML Source', theme_code_title : 'HTML Source Editor', theme_code_wordwrap : 'Word wrap', theme_sub_desc : 'Subscript', theme_sup_desc : 'Superscript', theme_hr_desc : 'Insert horizontal ruler', theme_removeformat_desc : 'Remove formatting', theme_custom1_desc : 'Your custom description here', insert_link_title : 'Insert/edit link', insert_link_url : 'Link URL', insert_link_target : 'Target', insert_link_target_same : 'Open link in the same window', insert_link_target_blank : 'Open link in a new window', insert_image_title : 'Insert/edit image', insert_image_src : 'Image URL', insert_image_alt : 'Image description', insert_image_border : 'Border', insert_image_dimensions : 'Dimensions', insert_image_vspace : 'Vertical space', insert_image_hspace : 'Horizontal space', insert_image_align : 'Alignment', insert_image_align_default : '-- Not set --', insert_image_align_baseline : 'Baseline', insert_image_align_top : 'Top', insert_image_align_middle : 'Middle', insert_image_align_bottom : 'Bottom', insert_image_align_texttop : 'TextTop', insert_image_align_absmiddle : 'Absolute Middle', insert_image_align_absbottom : 'Absolute Bottom', insert_image_align_left : 'Left', insert_image_align_right : 'Right', theme_font_size : '-- Font size --', theme_fontdefault : '-- Font family --', theme_block : '-- Format --', theme_paragraph : 'Paragraph', theme_div : 'Div', theme_address : 'Address', theme_pre : 'Preformatted', theme_h1 : 'Heading 1', theme_h2 : 'Heading 2', theme_h3 : 'Heading 3', theme_h4 : 'Heading 4', theme_h5 : 'Heading 5', theme_h6 : 'Heading 6', theme_blockquote : 'Blockquote', theme_code : 'Code', theme_samp : 'Code sample', theme_dt : 'Definition term ', theme_dd : 'Definition description', theme_colorpicker_title : 'Select a color', theme_colorpicker_apply : 'Apply', theme_forecolor_desc : 'Select text color', theme_backcolor_desc : 'Select background color', theme_charmap_title : 'Select custom character', theme_charmap_desc : 'Insert custom character', theme_visualaid_desc : 'Toggle guidelines/invisible elements', insert_anchor_title : 'Insert/edit anchor', insert_anchor_name : 'Anchor name', theme_anchor_desc : 'Insert/edit anchor', theme_insert_link_titlefield : 'Title', theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?', theme_path : 'Path', cut_desc : 'Cut', copy_desc : 'Copy', paste_desc : 'Paste', link_list : 'Link list', image_list : 'Image list', browse : 'Browse', image_props_desc : 'Image properties', newdocument_desc : 'New document', class_name : 'Class', newdocument : 'Are you sure you want clear all contents?', about_title : 'About TinyMCE', about : 'About', license : 'License', plugins : 'Plugins', plugin : 'Plugin', author : 'Author', version : 'Version', loaded_plugins : 'Loaded plugins', help : 'Help', not_set : '-- Not set --', close : 'Close', toolbar_focus : 'Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X', invalid_data : 'Error: Invalid values entered, these are marked in red.', more_colors : 'More colors', color_picker_tab : 'Picker', color_picker : 'Color picker', web_colors_tab : 'Palette', web_colors : 'Palette colors', named_colors_tab : 'Named', named_colors : 'Named colors', color : 'Color:', color_name : 'Name:', is_email : 'The URL you entered seems to be an email address, do you want to add the required mailto: prefix?', is_external : 'The URL you entered seems to external link, do you want to add the required http:// prefix?' }); |
|
From: Laurent B. <lbr...@us...> - 2008-02-03 23:10:04
|
Update of /cvsroot/join/join1/src/web/scripts/editor/themes/complete/css In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv13350/scripts/editor/themes/complete/css Added Files: colorpicker.css editor_content.css editor_popup.css editor_ui.css Log Message: Add a rich text editor for messages --- NEW FILE: editor_ui.css --- /* This file contains the CSS data for the editor UI of TinyMCE instances */ .mceToolbarTop a, .mceToolbarTop a:visited, .mceToolbarTop a:hover, .mceToolbarBottom a, .mceToolbarBottom a:visited, .mceToolbarBottom a:hover {border: 0; margin: 0; padding: 0; background: transparent;} .mceSeparatorLine {border: 0; padding: 0; margin-left: 4px; margin-right: 2px;} .mceSelectList {font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 7pt !important; font-weight: normal; margin-top: 3px; padding: 0; display: inline; vertical-align: top; background-color: #F0F0EE;} .mceLabel, .mceLabelDisabled {font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 9pt;} .mceLabel {color: #000000;} .mceLabelDisabled {cursor: text; color: #999999;} .mceEditor {background: #F0F0EE; border: 1px solid #cccccc; padding: 0; margin: 0;} .mceEditorArea { font-family: Verdana, Arial; background: #FFFFFF; padding: 0; margin: 0; } .mceToolbar { background: #F0F0EE; border-bottom: 1px solid #cccccc; line-height: 1px; font-size: 1px; padding-bottom: 1px; } .mceToolbarTop, .mceToolbarBottom {background: #F0F0EE; line-height: 1px; font-size: 1px;} .mceToolbarTop {border-bottom: 1px solid #cccccc; padding-bottom: 1px;} .mceToolbarBottom {border-top: 1px solid #cccccc;} .mceToolbarContainer {display: block; position: relative; left: 0; top: 0; width: 100%;} .mceStatusbarTop, .mceStatusbarBottom, .mceStatusbar {height: 20px;} .mceStatusbarTop .mceStatusbarPathText, .mceStatusbarBottom .mceStatusbarPathText, .mceStatusbar .mceStatusbarPathText {font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 9pt; padding: 2px; line-height: 16px; overflow: visible;} .mceStatusbarTop {border-bottom: 1px solid #cccccc;} .mceStatusbarBottom {border-top: 1px solid #cccccc;} .mceStatusbar {border-bottom: 1px solid #cccccc;} .mcePathItem, .mcePathItem:link, .mcePathItem:visited, .mcePathItem:hover {text-decoration: none; font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 9pt; color: #000000;} .mcePathItem:hover {text-decoration: underline;} .mceStatusbarPathText {float: left;} .mceStatusbarResize {float: right; background-image: url('../images/statusbar_resize.gif'); background-repeat: no-repeat; width: 11px; height: 20px; cursor: se-resize;} .mceResizeBox {width: 10px; height: 10px; display: none; border: 1px dotted gray; margin: 0; padding: 0;} .mceEditorIframe {border: 0;} /* Button CSS rules */ a.mceButtonDisabled img, a.mceButtonNormal img, a.mceButtonSelected img {width: 20px; height: 20px; cursor: default; margin-top: 1px; margin-left: 1px;} a.mceButtonDisabled img {border: 0 !important;} a.mceButtonNormal img, a.mceButtonSelected img {border: 1px solid #F0F0EE !important;} a.mceButtonSelected img {border: 1px solid #6779AA !important; background-color: #D4D5D8;} a.mceButtonNormal img:hover, a.mceButtonSelected img:hover {border: 1px solid #0A246A !important; cursor: default; background-color: #B6BDD2;} a.mceButtonDisabled img {-moz-opacity:0.3; opacity: 0.3; border: 1px solid #F0F0EE !important; cursor: default;} a.mceTiledButton img {background-image: url('../images/buttons.gif'); background-repeat: no-repeat;} /* Menu button CSS rules */ span.mceMenuButton img, span.mceMenuButtonSelected img {border: 1px solid #F0F0EE; margin-left: 1px;} span.mceMenuButtonSelected img {border: 1px solid #6779AA; background-color: #B6BDD2;} span.mceMenuButtonSelected img.mceMenuButton {border: 1px solid #F0F0EE; background-color: transparent;} span.mceMenuButton img.mceMenuButton, span.mceMenuButtonSelected img.mceMenuButton {border-left: 0; margin-left: 0;} span.mceMenuButton:hover img, span.mceMenuButtonSelected:hover img {border: 1px solid #0A246A; background-color: #B6BDD2;} span.mceMenuButton:hover img.mceMenuButton, span.mceMenuButtonSelected:hover img.mceMenuButton {border-left: 0;} span.mceMenuButtonFocus img {border: 1px solid gray; border-right: 0; margin-left: 1px; background-color: #F5F4F2;} span.mceMenuButtonFocus img.mceMenuButton {border: 1px solid gray; border-left: 1px solid #F5F4F2; margin-left: 0;} span.mceMenuHover img {border: 1px solid #0A246A; background-color: #B6BDD2;} span.mceMenuButtonSelected.mceMenuHover img.mceMenuButton {border: 1px solid #0A246A; background-color: #B6BDD2; border-left: 0;} /* Menu */ .mceMenu {position: absolute; left: 0; top: 0; display: none; z-index: 1000; background-color: white; border: 1px solid gray; font-weight: normal;} .mceMenu a, .mceMenuTitle, .mceMenuDisabled {display: block; width: 100%; text-decoration: none; background-color: white; font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px; line-height: 20px; color: black;} .mceMenu a:hover {background-color: #B6BDD2; color: black; text-decoration: none !important;} .mceMenu span {padding-left: 10px; padding-right: 10px; display: block; line-height: 20px;} .mceMenuSeparator {border-bottom: 1px solid gray; background-color: gray; height: 1px;} .mceMenuTitle span {padding-left: 5px;} .mceMenuTitle {background-color: #DDDDDD; font-weight: bold;} .mceMenuDisabled {color: gray;} span.mceMenuSelectedItem {background-image: url('../images/menu_check.gif'); background-repeat: no-repeat; background-position: 5px 8px; padding-left: 20px;} span.mceMenuCheckItem {padding-left: 20px;} span.mceMenuLine {display: block; position: absolute; left: 0; top: -1px; background-color: #F5F4F2; width: 30px; height: 1px; overflow: hidden; padding-left: 0; padding-right: 0;} .mceColors table, .mceColors td {margin: 0; padding: 2px;} a.mceMoreColors {width: auto; padding: 0; margin: 0 3px 3px 3px; text-align: center; border: 1px solid white; text-decoration: none !important;} .mceColorPreview {position: absolute; overflow:hidden; left: 0; top: 0; margin-left: 3px; margin-top: 15px; width: 16px; height: 4px; background-color: red;} a.mceMoreColors:hover {border: 1px solid #0A246A;} .mceColors td a {width: 9px; height: 9px; overflow: hidden; border: 1px solid #808080;} /* MSIE 6 specific rules */ * html a.mceButtonNormal img, * html a.mceButtonSelected img, * html a.mceButtonDisabled img {border: 0 !important; margin-top: 2px; margin-bottom: 1px;} * html a.mceButtonDisabled img {filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30); border: 0 !important;} * html a.mceButtonDisabled {border: 1px solid #F0F0EE !important;} * html a.mceButtonNormal, * html a.mceButtonSelected {border: 1px solid #F0F0EE !important; cursor: default;} * html a.mceButtonSelected {border: 1px solid #6779AA !important; background-color: #D4D5D8;} * html a.mceButtonNormal:hover, * html a.mceButtonSelected:hover {border: 1px solid #0A246A !important; background-color: #B6BDD2; cursor: default;} * html .mceSelectList {margin-top: 2px;} * html span.mceMenuButton, * html span.mceMenuButtonFocus {position: relative; left: 0; top: 0;} * html span.mceMenuButton img, * html span.mceMenuButtonSelected img, * html span.mceMenuButtonFocus img {position: relative; top: 1px;} * html a.mceMoreColors {width: auto;} * html .mceColors td a {width: 10px; height: 10px;} * html .mceColorPreview {margin-left: 2px; margin-top: 14px;} /* MSIE 7 specific rules */ *:first-child+html a.mceButtonNormal img, *:first-child+html a.mceButtonSelected img, *:first-child+html a.mceButtonDisabled img {border: 0 !important; margin-top: 2px; margin-bottom: 1px;} *:first-child+html a.mceButtonDisabled img {filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30); border: 0 !important;} *:first-child+html a.mceButtonDisabled {border: 1px solid #F0F0EE !important;} *:first-child+html a.mceButtonNormal, *:first-child+html a.mceButtonSelected {border: 1px solid #F0F0EE !important; cursor: default;} *:first-child+html a.mceButtonSelected {border: 1px solid #6779AA !important; background-color: #D4D5D8;} *:first-child+html a.mceButtonNormal:hover, *:first-child+html a.mceButtonSelected:hover {border: 1px solid #0A246A !important; background-color: #B6BDD2; cursor: default;} *:first-child+html .mceSelectList {margin-top: 2px;} *:first-child+html span.mceMenuButton, *:first-child+html span.mceMenuButtonFocus {position: relative; left: 0; top: 0;} *:first-child+html span.mceMenuButton img, *:first-child+html span.mceMenuButtonSelected img, *:first-child+html span.mceMenuButtonFocus img {position: relative; top: 1px;} *:first-child+html a.mceMoreColors {width: 137px;} *:first-child+html .mceColors td a {width: 10px; height: 10px;} *:first-child+html .mceColorPreview {margin: 0; padding-left: 4px; margin-top: 14px; width: 14px;} --- NEW FILE: colorpicker.css --- /* Colorpicker dialog specific CSS */ #preview { float: right; width: 50px; height: 14px; line-height: 1px; border: 1px solid black; margin-left: 5px; } #colorpicker { float: left; cursor: crosshair; } #light { border: 1px solid gray; margin-left: 5px; float: left; width: 15px; cursor: crosshair; } #light div { overflow: hidden; } #previewblock { float: right; padding-left: 10px; height: 20px; } .panel_wrapper div.current { height: 175px; } #namedcolors { width: 150px; } #namedcolors a { display: block; float: left; width: 10px; height: 10px; margin: 1px 1px 0 0; overflow: hidden; } #colornamecontainer { margin-top: 5px; } --- NEW FILE: editor_content.css --- /* This file contains the CSS data for the editable area(iframe) of TinyMCE */ /* You can extend this CSS by adding your own CSS file with the the content_css option */ body, td, pre { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; } body { background-color: #FFFFFF; } .mceVisualAid { border: 1px dashed #BBBBBB !important; } div.mceVisualAid { background-image:url('../images/spacer.gif'); visibility: visible !important; } .mceItemAnchor { width: 12px; line-height: 6px; overflow: hidden; padding-left: 12px; background-image: url('../images/anchor_symbol.gif'); background-position: bottom; background-repeat: no-repeat; } /* Important is needed in Gecko browsers inorder to style links */ /* a { color: green !important; } */ /* Style selection range colors in Gecko browsers */ /* ::-moz-selection { background-color: red; color: green; } */ /* MSIE specific */ * html body { scrollbar-3dlight-color: #F0F0EE; scrollbar-arrow-color: #676662; scrollbar-base-color: #F0F0EE; scrollbar-darkshadow-color: #DDDDDD; scrollbar-face-color: #E0E0DD; scrollbar-highlight-color: #F0F0EE; scrollbar-shadow-color: #F0F0EE; scrollbar-track-color: #F5F5F5; } body, td, pre { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; } body { background-color: #FFFFFF; } .mceVisualAid { border: 1px dashed #BBBBBB; } /* MSIE specific */ * html body { scrollbar-3dlight-color: #F0F0EE; scrollbar-arrow-color: #676662; scrollbar-base-color: #F0F0EE; scrollbar-darkshadow-color: #DDDDDD; scrollbar-face-color: #E0E0DD; scrollbar-highlight-color: #F0F0EE; scrollbar-shadow-color: #F0F0EE; scrollbar-track-color: #F5F5F5; } --- NEW FILE: editor_popup.css --- /* This file contains the CSS data for all popups in TinyMCE */ body { background-color: #F0F0EE; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; scrollbar-3dlight-color: #F0F0EE; scrollbar-arrow-color: #676662; scrollbar-base-color: #F0F0EE; scrollbar-darkshadow-color: #DDDDDD; scrollbar-face-color: #E0E0DD; scrollbar-highlight-color: #F0F0EE; scrollbar-shadow-color: #F0F0EE; scrollbar-track-color: #F5F5F5; margin: 8px; } td { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; } input { background: #FFFFFF; border: 1px solid #cccccc; } td, input, select, textarea { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; } input, select, textarea { border: 1px solid #808080; } .input_noborder { border: 0; } #insert, .updateButton { font-weight: bold; width: 90px; height: 21px; border: 0; background-image: url('../images/insert_button_bg.gif'); cursor: pointer; } #cancel { font-weight: bold; width: 90px; height: 21px; border: 0; background-image: url('../images/cancel_button_bg.gif'); cursor: pointer; } /* Mozilla only style */ html>body #insert, html>body #cancel { padding-bottom: 2px; } .title { font-size: 12px; font-weight: bold; color: #2B6FB6; } table.charmap { border-style: solid; border-width: 1px; border-color: #AAAAAA; } td.charmap, td.charmapOver { color: #000000; border-color: #AAAAAA; border-style: solid; border-width: 1px; text-align: center; font-size: 12px; } td.charmapOver { background-color: #CCCCCC; cursor: default; } a.charmap { color: #000000; text-decoration: none } .wordWrapCode { vertical-align: middle; border: 1px none #000000; background-color: transparent; } input.radio { border: 1px none #000000; background-color: transparent; vertical-align: middle; } input.checkbox { border: 1px none #000000; background-color: transparent; vertical-align: middle; } .mceButtonNormal, .mceButtonOver, .mceButtonDown, .mceSeparator, .mceButtonDisabled, .mceButtonSelected { margin-left: 1px; } .mceButtonNormal { border-top: 1px solid; border-left: 1px solid; border-bottom: 1px solid; border-right: 1px solid; border-color: #F0F0EE; cursor: default; } .mceButtonOver { border: 1px solid #0A246A; cursor: default; background-color: #B6BDD2; } .mceButtonDown { cursor: default; border: 1px solid #0A246A; background-color: #8592B5; } .mceButtonDisabled { filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30); -moz-opacity:0.3; opacity: 0.3; border-top: 1px solid; border-left: 1px solid; border-bottom: 1px solid; border-right: 1px solid; border-color: #F0F0EE; cursor: default; } .mceActionPanel { margin-top: 5px; } /* Tabs classes */ .tabs { float: left; width: 100%; line-height: normal; background-image: url("../images/xp/tabs_bg.gif"); } .tabs ul { margin: 0; padding: 0 0 0; list-style: none; } .tabs li { float: left; background: url("../images/xp/tab_bg.gif") no-repeat left top; margin: 0; margin-left: 0; margin-right: 2px; padding: 0 0 0 10px; line-height: 18px; } .tabs li.current { background: url("../images/xp/tab_sel_bg.gif") no-repeat left top; margin-right: 2px; } .tabs span { float: left; display: block; background: url("../images/xp/tab_end.gif") no-repeat right top; padding: 0px 10px 0 0; } .tabs .current span { background: url("../images/xp/tab_sel_end.gif") no-repeat right top; } .tabs a { text-decoration: none; font-family: Verdana, Arial; font-size: 10px; } .tabs a:link, .tabs a:visited, .tabs a:hover { color: black; } .tabs a:hover { } .tabs .current { } .tabs .current a, .tabs .current a:link, .tabs .current a:visited { } .panel_wrapper div.panel { display: none; } .panel_wrapper div.current { display: block; width: 100%; height: 300px; overflow: visible; /* Should be auto but that breaks Safari */ } .panel_wrapper { border: 1px solid #919B9C; border-top: 0px; padding: 10px; padding-top: 5px; clear: both; background-color: white; } fieldset { border: 1px solid #919B9C; font-family: Verdana, Arial; font-size: 10px; padding: 0; margin: 0; padding: 4px; } legend { color: #2B6FB6; font-weight: bold; } .properties { width: 100%; } .properties .column1 { } .properties .column2 { text-align: left; } a:link, a:visited { color: black; } a:hover { color: #2B6FB6; } #plugintable thead { font-weight: bold; background-color: #DDDDDD; } #plugintable, #about #plugintable td { border: 1px solid #919B9C; } #plugintable { width: 99%; margin-top: 10px; } #pluginscontainer { height: 290px; overflow: auto; } /* MSIE Specific styles */ * html .panel_wrapper { width: 100%; } .column { float: left; } h1, h2, h3, h4 { color: #2B6FB6; margin: 0; padding: 0; padding-top: 5px; } h3 { font-size: 14px; } #link .panel_wrapper, #link div.current { height: 125px; } #image .panel_wrapper, #image div.current { height: 190px; } label.msg { display: none; } label.invalid { color: #EE0000; display: inline; } input.invalid { border: 1px solid #EE0000; } /* Disables the advanced tab in the table plugin. */ /* #table #advanced_tab { display: none; } */ /* Disables the border input field and label in the table plugin. */ /* #table #border, #table #borderlabel { display: none; } */ |
|
From: Laurent B. <lbr...@us...> - 2008-02-03 23:08:20
|
Update of /cvsroot/join/join1/src/web/scripts/editor/themes/complete/css In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv12898/css Log Message: Directory /cvsroot/join/join1/src/web/scripts/editor/themes/complete/css added to the repository |
|
From: Laurent B. <lbr...@us...> - 2008-02-03 23:08:18
|
Update of /cvsroot/join/join1/src/web/scripts/editor/themes/complete/images In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv12898/images Log Message: Directory /cvsroot/join/join1/src/web/scripts/editor/themes/complete/images added to the repository |