Commit 65f483c0 authored by Ralph Soika's avatar Ralph Soika

Merge remote-tracking branch 'origin/master' into archive-feature

Conflicts:
	imixs-office-workflow-ejb/src/main/resources/imixs.properties
	pom.xml
parents eb716cfc 844e43d9
FROM imixs/wildfly:1.1.0
FROM imixs/wildfly:1.2.0
# Setup configuration
COPY ./src/docker/configuration/imixsrealm.properties ${WILDFLY_CONFIG}/
......
## Migration Guide
This is a migration guide to migrate a existing Imixs-Office-Workflow instance from version 2.x to 3.x
1. Undeploy Application (with Imixs-Office-Workflow 2.x)
2. Shutdown server, remove Fulltextindex from Filesystem, and remove old artifacts
3. Extend FieldListNoAnalyse (txtemail, datdate, datfrom, datto, numsequencenumber, txtUsername)
3a. update lucene version to 6.3.0
remove lucene adapter project
3b. java compiler plugin version 1.7
3c. change ejb-jar.xml - class 'org.imixs.workflow.engine.WorkflowService',
remove PropertyService and LucenService Refs
change interceptor Binding tu DocumentService
3d. change persistenc.xml - persistence-unit=org.imixs.workflow.jpa
3e. Update web module resource bundle app with entry:
workflowversion_system=system-de-1.0.0
3f. Check pom.xm. build instructions if web module
4. Restart Server and deploy new Application (with Imixs-Workflow 4.x)
5. Start Migration Job from Imixs-Admin Interface
6. Upload new Models
After deplyoment and migration, the system model need to be updated.
Delete the old system model file via admin client
Upload the new model file via rest api
curl --user admin:adminadmin --request POST -Tsystem-de.bpmn http://localhost:8080/office-rest/model/bpmn
Redeploy the application to reset the model store
#Messure results
**EntityService**
22:17:14,173 FINE [org.imixs.workflow.jee.ejb.EntityService] (default task-26) [EntityService] findAllEntities - Query=SELECT DISTINCT wi FROM Entity AS wi JOIN wi.textItems as pref JOIN wi.textItems as groups JOIN wi.integerItems as processid WHERE wi.type IN('workitem') AND pref.itemName = '$uniqueidref' AND pref.itemValue IN ('14c1454c28f-1cb3e6dd' ) AND groups.itemName = 'txtworkflowgroup' and groups.itemValue IN ('Angebot' ) AND processid.itemName = '$processid' AND processid.itemValue IN (1700) ORDER BY wi.created desc
22:17:14,174 FINE [org.imixs.workflow.jee.ejb.EntityService] (default task-26) [EntityService] findAllEntities - Startpos=0 maxcount=10
22:17:16,401 FINE [org.imixs.workflow.jee.ejb.EntityService] (default task-26) [EntityService] findAllEntities - getResultList in 2227 ms
...
.....
22:17:47,754 FINE [org.imixs.workflow.jee.ejb.EntityService] (default task-34) [EntityService] findAllEntities - Query=SELECT DISTINCT wi FROM Entity AS wi JOIN wi.textItems as pref JOIN wi.textItems as groups JOIN wi.integerItems as processid WHERE wi.type IN('workitem') AND pref.itemName = '$uniqueidref' AND pref.itemValue IN ('14c1454c28f-1cb3e6dd' ) AND groups.itemName = 'txtworkflowgroup' and groups.itemValue IN ('Angebot' ) AND processid.itemName = '$processid' AND processid.itemValue IN (1700) ORDER BY wi.created desc
22:17:47,755 FINE [org.imixs.workflow.jee.ejb.EntityService] (default task-34) [EntityService] findAllEntities - Startpos=0 maxcount=10
22:17:50,269 FINE [org.imixs.workflow.jee.ejb.EntityService] (default task-34) [EntityService] findAllEntities - getResultList in 2512 ms
-----------------------------------
**DocumentService**
18:30:22,849 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene search: pageNumber=0 pageSize=10
18:30:22,850 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene createIndexSearcher...
18:30:22,850 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene createIndexDirectory...
18:30:22,855 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene DefaultOperator: AND
18:30:22,856 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene final searchTerm=(type:"workitem") AND ($uniqueidref:"14c1454c28f-1cb3e6dd" ) AND (txtworkflowgroup:"Angebot" ) AND ($processid:"1700" )
18:30:22,857 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene result sorted by score
18:30:22,868 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene returned 10 documents in 12 ms - total hits=20644
18:30:22,868 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene lookup $uniqueid=15673b96c3e-6be2821
18:30:22,874 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene lookup $uniqueid=15673c2b95c-1d400a23
18:30:22,882 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene lookup $uniqueid=15673c1e7be-243dbb36
18:30:22,890 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene lookup $uniqueid=15673c2dbfe-104f3fc3
18:30:22,894 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene lookup $uniqueid=15673c1522b-447b93
18:30:22,899 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene lookup $uniqueid=15673c510d6-123c072d
18:30:22,904 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene lookup $uniqueid=15673c62b41-2e7ac8c5
18:30:22,908 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene lookup $uniqueid=15673c5e30b-19126e51
18:30:22,913 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene lookup $uniqueid=15673c30993-bb0f9e6
18:30:22,921 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene lookup $uniqueid=15673c4f3b8-158c14a2
18:30:22,929 FINE [org.imixs.workflow.engine.lucene.LuceneSearchService] (default task-36) lucene search result computed in 79 ms
# Gregorian Calendar Bug
Search for entity type 'Kernprozess' and remove
\ No newline at end of file
# Migration
The following section contains migration notes for Imixs-Office-Workflow.
## Imixs-Office-Workflow 3.2.1
* Update properties _lucence.indexFieldListAnalyze_ - txtusername - moved from properties _lucence.indexFieldListNoAnalyze_
* Update Fulltextindex for type=profile
## General Migration Guide for Imixs-Workflow Version 4.x
This is a migration guide to migrate a existing Imixs-Office-Workflow instance from Imixs-Workflow Version 3.x to 4.x
1. Undeploy Application (with Imixs-Office-Workflow with Imixs-Workflow version 3.x)
2. Update imixs.properties equal to the current master release of Imixs-Office-Workflow (See extend properties _lucence.indexFieldListAnalyze_ and _lucence.indexFieldListNoAnalyse_)
3a. update lucene version to 6.6.0
remove lucene adapter project
3b. java compiler plugin version 1.7
3c. change ejb-jar.xml - class 'org.imixs.workflow.engine.WorkflowService',
remove PropertyService and LucenService Refs
change interceptor Binding tu DocumentService
3d. change persistenc.xml - persistence-unit=org.imixs.workflow.jpa
3e. Update web module resource bundle app with entry:
workflowversion_system=system-de-1.0.0
4. Restart Server and deploy new Application (with Imixs-Workflow 4.x)
5. Start Migration Job from Imixs-Admin Interface
6. Upload new Models
7. Call SystemCheck form Web UI
To upload a model file manually via rest api:
curl --user admin:adminadmin --request POST -Tsystem-de.bpmn http://localhost:8080/office-rest/model/bpmn
# Gregorian Calendar Bug
Search for entity type 'Kernprozess' and remove
\ No newline at end of file
......@@ -7,7 +7,10 @@ The goal of this project is to provide a powerfull and simple to use business pr
You can find further information on the web site [Imixs-Office-Workflow](http://www.office-workflow.de).
Technical information can be found on the [marty project home](http://www.imixs.org/marty).
* **Technical information** can be found on the [marty project home](http://www.imixs.org/marty).
* **Migration notes** can be found [here](MIGRATION-NOTES.md)
## Deployment
Imixs-Office-Workflow is based on the Java EE stack and can be deployed on JBoss/Wildfly server.
......
postgresoffice:
image: postgres:9.6.1
environment:
POSTGRES_PASSWORD: adminadmin
POSTGRES_DB: office
version: "3"
services:
postgresoffice:
image: postgres:9.6.1
environment:
POSTGRES_PASSWORD: adminadmin
POSTGRES_DB: office
imixsofficeworkflow:
image: imixs/imixs-office-workflow
environment:
WILDFLY_PASS: adminadmin
DEBUG: "true"
POSTGRES_USER: "postgres"
POSTGRES_PASSWORD: "adminadmin"
POSTGRES_CONNECTION: "jdbc:postgresql://postgresoffice/office"
ports:
- "8080:8080"
- "9990:9990"
- "8787:8787"
volumes:
- ~/git/imixs-office-workflow/src/docker/.deployments:/opt/wildfly/standalone/deployments/
imixsofficeworkflow:
image: imixs/imixs-office-workflow
environment:
WILDFLY_PASS: adminadmin
DEBUG: "true"
POSTGRES_USER: "postgres"
POSTGRES_PASSWORD: "adminadmin"
POSTGRES_CONNECTION: "jdbc:postgresql://postgres/office"
ports:
- "8080:8080"
- "9990:9990"
- "8787:8787"
links:
- postgresoffice:postgres
volumes:
- ~/git/imixs-office-workflow/src/docker/.deployments:/opt/wildfly/standalone/deployments/
\ No newline at end of file
......@@ -3,7 +3,7 @@
<parent>
<artifactId>imixs-office-workflow</artifactId>
<groupId>com.imixs.workflow</groupId>
<version>3.1.1-SNAPSHOT</version>
<version>3.1.3-SNAPSHOT</version>
</parent>
<artifactId>imixs-office-workflow-ear</artifactId>
<packaging>ear</packaging>
......@@ -11,6 +11,127 @@
<description> </description>
<profiles>
<profile>
<id>docker-build</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>install</phase>
<configuration>
<target>
<exec executable="docker">
<arg value="build" />
<arg value="-t" />
<arg value="imixs/${imixs-office.applicationname}:${project.version}" />
<arg value="../." />
</exec>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>docker-push</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>install</phase>
<configuration>
<target>
<exec executable="docker">
<arg value="build" />
<arg value="-t" />
<arg value="imixs/${imixs-office.applicationname}:${project.version}" />
<arg value="../." />
</exec>
<exec executable="docker">
<arg value="tag" />
<arg value="imixs/${imixs-office.applicationname}:${project.version}" />
<arg value="${org.imixs.docker.registry}/imixs/${imixs-office.applicationname}:${project.version}" />
</exec>
<exec executable="docker">
<arg value="push" />
<arg value="${org.imixs.docker.registry}/imixs/${imixs-office.applicationname}:${project.version}" />
</exec>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>docker-hub</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>install</phase>
<configuration>
<target>
<exec executable="docker">
<arg value="build" />
<arg value="-t" />
<arg value="imixs/${imixs-office.applicationname}:${project.version}" />
<arg value="../." />
</exec>
<exec executable="docker">
<arg value="push" />
<arg value="imixs/${imixs-office.applicationname}:${project.version}" />
</exec>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<build>
<plugins>
<plugin>
......
......@@ -3,7 +3,7 @@
<parent>
<artifactId>imixs-office-workflow</artifactId>
<groupId>com.imixs.workflow</groupId>
<version>3.1.1-SNAPSHOT</version>
<version>3.1.3-SNAPSHOT</version>
</parent>
<artifactId>imixs-office-workflow-ejb</artifactId>
<name>Imixs Office Workflow EJB</name>
......
......@@ -35,12 +35,11 @@ image.maxWidth=2048
# Search Index Direcotry
lucence.indexDir=${imixs-office.IndexDir}
# Fields to be added into the searchindex
lucence.fulltextFieldList=txtsearchstring,txtSubject,txtname,txtEmail,txtUserName,namCreator,txtworkflowgroup,txtworkflowstatus,txtWorkflowAbstract,txtWorkflowSummary,txtworkflowhistory,_subject,_description,_name,_projectnumber,_projectname,_ordernumber,_contractnumber,datDueDate,txtcommentlog,htmldescription,htmldocumentation,dms,dms_names
lucence.indexFieldListAnalyze=
lucence.indexFieldListNoAnalyze=type,$UniqueIDRef,$created,$modified,$ModelVersion,namCreator,$ProcessID,datDate,txtWorkflowGroup,txtemail, datdate, datfrom, datto, numsequencenumber, txtUsername,dms_count,
lucence.fulltextFieldList=txtsearchstring,txtSubject,txtname,txtEmail,txtUserName,namCreator,txtworkflowgroup,txtworkflowstatus,txtWorkflowAbstract,txtWorkflowSummary,txtworkflowhistory,_subject,_description,_name,_projectnumber,_projectname,_ordernumber,_contractnumber,datDueDate,txtcommentlog,htmldescription,htmldocumentation,dms_names
lucence.indexFieldListAnalyze=txtUsername
lucence.indexFieldListNoAnalyze=type,$UniqueIDRef,$created,$modified,$ModelVersion,namCreator,$ProcessID,datDate,txtWorkflowGroup,txtemail, datdate, datfrom, datto, numsequencenumber,dms_count,
dms.search=true
dms.parse=true
# Imixs Ldap Lookup Configuration
......
......@@ -3,7 +3,7 @@
<parent>
<artifactId>imixs-office-workflow</artifactId>
<groupId>com.imixs.workflow</groupId>
<version>3.1.1-SNAPSHOT</version>
<version>3.1.3-SNAPSHOT</version>
</parent>
<artifactId>imixs-office-workflow-rest</artifactId>
<packaging>war</packaging>
......
......@@ -3,7 +3,7 @@
<parent>
<artifactId>imixs-office-workflow</artifactId>
<groupId>com.imixs.workflow</groupId>
<version>3.1.1-SNAPSHOT</version>
<version>3.1.3-SNAPSHOT</version>
</parent>
<artifactId>imixs-office-workflow-web</artifactId>
<packaging>war</packaging>
......
......@@ -28,6 +28,7 @@ error_title=Leider konnten Ihre Eingaben nicht verarbeitet werden.
error_message=Bitte berprfen Sie Ihre Eingaben und korrigieren Sie ggf. die mit einem * markierten Eingabefelder.
error_message_general_title=Leider ist ein Fehler aufgetreten.
error_message_general=Es tut uns leid. Es trat unerwartet ein Fehler auf. Bitte versuchen Sie es noch einmal.
error_message_mce_image_size=Die Daten sind zu gro um eingefgt zu werden. Bitte verwenden Sie statdessen einen Link.
javax.faces.component.UIInput.REQUIRED=*
javax.faces.component.UIInput.REQUIRED_detail=Bitte geben Sie einen Wert an
search_error_title=Ungltiger Suchbegriff!
......@@ -392,6 +393,7 @@ form.timesheet.status=Status
form.minutes.date=Datum
form.minutes.team=Teilnehmer
form.minutes.present=Anwesend
form.minutes.space=Bereich
form.minutes.subject=Thema
form.minutes.help_datdate=Whlen Sie hier ein Datum fr das Protokoll aus.
form.minutes.help_team=Tragen Sie hier die Namen der Teilnehmer ein, oder deren Emailadresse um diese automatisch zu benachrichtigen.
......
......@@ -28,6 +28,7 @@ error_title=Input Errors!
error_message=Please verify your input and correct input fields marked with a *
error_message_general_title=Sorry, an error has occurred!
error_message_general=We are sorry, unfortunately an unexpected error occurred. Please try again.
error_message_mce_image_size=This data is to large, to be inserted. Please use a link instead!
javax.faces.component.UIInput.REQUIRED=*
javax.faces.component.UIInput.REQUIRED_detail=please enter the required value
search_error_title=Invalid search term!
......@@ -114,6 +115,7 @@ versions=Versions
progress=Progress
description=Description
administration=Administration
form.minutes.space=Bereich
searchresult=Searchresult
serachphrase=Serachphrase
please_choose= - please choose -
......@@ -244,7 +246,7 @@ myprofile.locale=Language
# space
##################################################
space.title=Section
space.view=Sectionss
space.view=Sections
space.sub_general=General
space.sub_team=Team
space.help_general=Enter a name and description.
......@@ -301,6 +303,7 @@ process.help1=Enter multiple entries into separate lines
##################################################
textblock.view=Text Blocks
textblock.title=Text Block
form.minutes.space=Bereich
##################################################
# Forms
......@@ -389,6 +392,7 @@ form.timesheet.status=Status
form.minutes.date=Date
form.minutes.team=Team
form.minutes.present=Present
form.minutes.space=Space
form.minutes.subject=Subject
form.minutes.help_datdate=Select a date for the minutes.
form.minutes.help_team=Enter the names of the participants or their email address to automatically notify them.
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
The MIT License (MIT)
Copyright (c) 2013-2016 Nick Downie
Copyright (c) 2013-2017 Nick Downie
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
......
##########
TinyMCE
##########
Version 4.3.3
Removed Plugins:
- charmap
- table
- anchor
- insertdatetime
- media
- print
- save
- visualblocks
- visualchars
!function(a){function b(){function b(a){"remove"===a&&this.each(function(a,b){var c=e(b);c&&c.remove()}),this.find("span.mceEditor,div.mceEditor").each(function(a,b){var c=tinymce.get(b.id.replace(/_parent$/,""));c&&c.remove()})}function d(a){var c,d=this;if(null!=a)b.call(d),d.each(function(b,c){var d;(d=tinymce.get(c.id))&&d.setContent(a)});else if(d.length>0&&(c=tinymce.get(d[0].id)))return c.getContent()}function e(a){var b=null;return a&&a.id&&g.tinymce&&(b=tinymce.get(a.id)),b}function f(a){return!!(a&&a.length&&g.tinymce&&a.is(":tinymce"))}var h={};a.each(["text","html","val"],function(b,g){var i=h[g]=a.fn[g],j="text"===g;a.fn[g]=function(b){var g=this;if(!f(g))return i.apply(g,arguments);if(b!==c)return d.call(g.filter(":tinymce"),b),i.apply(g.not(":tinymce"),arguments),g;var h="",k=arguments;return(j?g:g.eq(0)).each(function(b,c){var d=e(c);h+=d?j?d.getContent().replace(/<(?:"[^"]*"|'[^']*'|[^'">])*>/g,""):d.getContent({save:!0}):i.apply(a(c),k)}),h}}),a.each(["append","prepend"],function(b,d){var g=h[d]=a.fn[d],i="prepend"===d;a.fn[d]=function(a){var b=this;return f(b)?a!==c?("string"==typeof a&&b.filter(":tinymce").each(function(b,c){var d=e(c);d&&d.setContent(i?a+d.getContent():d.getContent()+a)}),g.apply(b.not(":tinymce"),arguments),b):void 0:g.apply(b,arguments)}}),a.each(["remove","replaceWith","replaceAll","empty"],function(c,d){var e=h[d]=a.fn[d];a.fn[d]=function(){return b.call(this,d),e.apply(this,arguments)}}),h.attr=a.fn.attr,a.fn.attr=function(b,g){var i=this,j=arguments;if(!b||"value"!==b||!f(i))return g!==c?h.attr.apply(i,j):h.attr.apply(i,j);if(g!==c)return d.call(i.filter(":tinymce"),g),h.attr.apply(i.not(":tinymce"),j),i;var k=i[0],l=e(k);return l?l.getContent({save:!0}):h.attr.apply(a(k),j)}}var c,d,e,f=[],g=window;a.fn.tinymce=function(c){function h(){var d=[],f=0;e||(b(),e=!0),l.each(function(a,b){var e,g=b.id,h=c.oninit;g||(b.id=g=tinymce.DOM.uniqueId()),tinymce.get(g)||(e=new tinymce.Editor(g,c,tinymce.EditorManager),d.push(e),e.on("init",function(){var a,b=h;l.css("visibility",""),h&&++f==d.length&&("string"==typeof b&&(a=-1===b.indexOf(".")?null:tinymce.resolve(b.replace(/\.\w+$/,"")),b=tinymce.resolve(b)),b.apply(a||tinymce,d))}))}),a.each(d,function(a,b){b.render()})}var i,j,k,l=this,m="";if(!l.length)return l;if(!c)return window.tinymce?tinymce.get(l[0].id):null;if(l.css("visibility","hidden"),g.tinymce||d||!(i=c.script_url))1===d?f.push(h):h();else{d=1,j=i.substring(0,i.lastIndexOf("/")),-1!=i.indexOf(".min")&&(m=".min"),g.tinymce=g.tinyMCEPreInit||{base:j,suffix:m},-1!=i.indexOf("gzip")&&(k=c.language||"en",i=i+(/\?/.test(i)?"&":"?")+"js=true&core=true&suffix="+escape(m)+"&themes="+escape(c.theme||"modern")+"&plugins="+escape(c.plugins||"")+"&languages="+(k||""),g.tinyMCE_GZ||(g.tinyMCE_GZ={start:function(){function b(a){tinymce.ScriptLoader.markDone(tinymce.baseURI.toAbsolute(a))}b("langs/"+k+".js"),b("themes/"+c.theme+"/theme"+m+".js"),b("themes/"+c.theme+"/langs/"+k+".js"),a.each(c.plugins.split(","),function(a,c){c&&(b("plugins/"+c+"/plugin"+m+".js"),b("plugins/"+c+"/langs/"+k+".js"))})},end:function(){}}));var n=document.createElement("script");n.type="text/javascript",n.onload=n.onreadystatechange=function(b){b=b||window.event,2===d||"load"!=b.type&&!/complete|loaded/.test(n.readyState)||(tinymce.dom.Event.domLoaded=1,d=2,c.script_loaded&&c.script_loaded(),h(),a.each(f,function(a,b){b()}))},n.src=i,document.body.appendChild(n)}return l},a.extend(a.expr[":"],{tinymce:function(a){var b;return a.id&&"tinymce"in window&&(b=tinymce.get(a.id),b&&b.editorManager===tinymce)?!0:!1}})}(jQuery);
\ No newline at end of file
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
......@@ -10,7 +10,7 @@
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
......@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
......@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
......@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
......
tinymce.PluginManager.add("advlist",function(a){function b(a,b){var c=[];return tinymce.each(b.split(/[ ,]/),function(a){c.push({text:a.replace(/\-/g," ").replace(/\b\w/g,function(a){return a.toUpperCase()}),data:"default"==a?"":a})}),c}function c(b,c){a.undoManager.transact(function(){var d,e=a.dom,f=a.selection;d=e.getParent(f.getNode(),"ol,ul"),d&&d.nodeName==b&&c!==!1||a.execCommand("UL"==b?"InsertUnorderedList":"InsertOrderedList"),c=c===!1?g[b]:c,g[b]=c,d=e.getParent(f.getNode(),"ol,ul"),d&&(e.setStyle(d,"listStyleType",c?c:null),d.removeAttribute("data-mce-style")),a.focus()})}function d(b){var c=a.dom.getStyle(a.dom.getParent(a.selection.getNode(),"ol,ul"),"listStyleType")||"";b.control.items().each(function(a){a.active(a.settings.data===c)})}var e,f,g={};e=b("OL",a.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman")),f=b("UL",a.getParam("advlist_bullet_styles","default,circle,disc,square")),a.addButton("numlist",{type:"splitbutton",tooltip:"Numbered list",menu:e,onshow:d,onselect:function(a){c("OL",a.control.settings.data)},onclick:function(){c("OL",!1)}}),a.addButton("bullist",{type:"splitbutton",tooltip:"Bullet list",menu:f,onshow:d,onselect:function(a){c("UL",a.control.settings.data)},onclick:function(){c("UL",!1)}})});
\ No newline at end of file
!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e[f]=d(a[f]);b.apply(null,e)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("5",tinymce.util.Tools.resolve),g("1",["5"],function(a){return a("tinymce.PluginManager")}),g("2",["5"],function(a){return a("tinymce.util.Tools")}),g("6",[],function(){var a=function(a,b,c){var d="UL"===b?"InsertUnorderedList":"InsertOrderedList";a.execCommand(d,!1,c===!1?null:{"list-style-type":c})};return{applyListFormat:a}}),g("3",["6"],function(a){var b=function(b){b.addCommand("ApplyUnorderedListStyle",function(c,d){a.applyListFormat(b,"UL",d["list-style-type"])}),b.addCommand("ApplyOrderedListStyle",function(c,d){a.applyListFormat(b,"OL",d["list-style-type"])})};return{register:b}}),g("7",[],function(){var a=function(a){var b=a.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman");return b?b.split(/[ ,]/):[]},b=function(a){var b=a.getParam("advlist_bullet_styles","default,circle,disc,square");return b?b.split(/[ ,]/):[]};return{getNumberStyles:a,getBulletStyles:b}}),g("8",[],function(){var a=function(a,b){return a.$.contains(a.getBody(),b)},b=function(a){return a&&/^(TH|TD)$/.test(a.nodeName)},c=function(b){return function(c){return c&&/^(OL|UL|DL)$/.test(c.nodeName)&&a(b,c)}},d=function(a){var b=a.dom.getParent(a.selection.getNode(),"ol,ul");return a.dom.getStyle(b,"listStyleType")||""};return{isTableCellNode:b,isListNode:c,getSelectedStyleType:d}}),g("9",["2"],function(a){var b=function(a){return a.replace(/\-/g," ").replace(/\b\w/g,function(a){return a.toUpperCase()})},c=function(c){return a.map(c,function(a){var c=b(a),d="default"===a?"":a;return{text:c,data:d}})};return{toMenuItems:c}}),g("4",["2","7","6","8","9"],function(a,b,c,d,e){var f=function(a,b){for(var c=0;c<a.length;c++){var d=a[c];if(b(d))return c}return-1},g=function(b,c){return function(e){var g=e.control;b.on("NodeChange",function(e){var h=f(e.parents,d.isTableCellNode),i=h!==-1?e.parents.slice(0,h):e.parents,j=a.grep(i,d.isListNode(b));g.active(j.length>0&&j[0].nodeName===c)})}},h=function(a){return function(b){var c=d.getSelectedStyleType(a);b.control.items().each(function(a){a.active(a.settings.data===c)})}},i=function(a,b,d,f,i,j){a.addButton(b,{active:!1,type:"splitbutton",tooltip:d,menu:e.toMenuItems(j),onPostRender:g(a,i),onshow:h(a),onselect:function(b){c.applyListFormat(a,i,b.control.settings.data)},onclick:function(){a.execCommand(f)}})},j=function(a,b,c,d,e,f){a.addButton(b,{active:!1,type:"button",tooltip:c,onPostRender:g(a,e),onclick:function(){a.execCommand(d)}})},k=function(a,b,c,d,e,f){f.length>0?i(a,b,c,d,e,f):j(a,b,c,d,e,f)},l=function(a){k(a,"numlist","Numbered list","InsertOrderedList","OL",b.getNumberStyles(a)),k(a,"bullist","Bullet list","InsertUnorderedList","UL",b.getBulletStyles(a))};return{register:l}}),g("0",["1","2","3","4"],function(a,b,c,d){return a.add("advlist",function(a){var e=function(a,c){var d=a.settings.plugins?a.settings.plugins:"";return b.inArray(d.split(/[ ,]/),c)!==-1};e(a,"lists")&&(d.register(a),c.register(a))}),function(){}}),d("0")()}();
\ No newline at end of file
!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e[f]=d(a[f]);b.apply(null,e)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("5",tinymce.util.Tools.resolve),g("1",["5"],function(a){return a("tinymce.PluginManager")}),g("7",[],function(){var a=function(a){return/^[A-Za-z][A-Za-z0-9\-:._]*$/.test(a)},b=function(a){var b=a.selection.getNode(),c="A"===b.tagName&&""===a.dom.getAttrib(b,"href");return c?b.id||b.name:""},c=function(a,b){var c=a.selection.getNode(),d="A"===c.tagName&&""===a.dom.getAttrib(c,"href");d?(c.removeAttribute("name"),c.id=b):(a.focus(),a.selection.collapse(!0),a.execCommand("mceInsertContent",!1,a.dom.createHTML("a",{id:b})))};return{isValidId:a,getId:b,insert:c}}),g("6",["7"],function(a){var b=function(b,c){return a.isValidId(c)?(a.insert(b,c),!1):(b.windowManager.alert("Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores."),!0)},c=function(c){var d=a.getId(c);c.windowManager.open({title:"Anchor",body:{type:"textbox",name:"id",size:40,label:"Id",value:d},onsubmit:function(a){var d=a.data.id;b(c,d)&&a.preventDefault()}})};return{open:c}}),g("2",["6"],function(a){var b=function(b){b.addCommand("mceAnchor",function(){a.open(b)})};return{register:b}}),g("3",[],function(){var a=function(a){return!a.attr("href")&&(a.attr("id")||a.attr("name"))&&!a.firstChild},b=function(b){return function(c){for(var d=0;d<c.length;d++)a(c[d])&&c[d].attr("contenteditable",b)}},c=function(a){a.on("PreInit",function(){a.parser.addNodeFilter("a",b("false")),a.serializer.addNodeFilter("a",b(null))})};return{setup:c}}),g("4",[],function(){var a=function(a){a.addButton("anchor",{icon:"anchor",tooltip:"Anchor",cmd:"mceAnchor",stateSelector:"a:not([href])"}),a.addMenuItem("anchor",{icon:"anchor",text:"Anchor",context:"insert",cmd:"mceAnchor"})};return{register:a}}),g("0",["1","2","3","4"],function(a,b,c,d){return a.add("anchor",function(a){c.setup(a),b.register