You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
(39) |
Dec
(10) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(19) |
Feb
(150) |
Mar
(10) |
Apr
|
May
(8) |
Jun
(11) |
Jul
(27) |
Aug
(52) |
Sep
(35) |
Oct
(30) |
Nov
(18) |
Dec
(4) |
2008 |
Jan
(76) |
Feb
(121) |
Mar
(39) |
Apr
(55) |
May
(18) |
Jun
(49) |
Jul
(32) |
Aug
(4) |
Sep
(10) |
Oct
|
Nov
(3) |
Dec
(33) |
2009 |
Jan
(19) |
Feb
(87) |
Mar
(69) |
Apr
(38) |
May
(47) |
Jun
(20) |
Jul
(5) |
Aug
(76) |
Sep
(145) |
Oct
(34) |
Nov
(8) |
Dec
(68) |
2010 |
Jan
(150) |
Feb
(379) |
Mar
(191) |
Apr
(100) |
May
(525) |
Jun
(269) |
Jul
(127) |
Aug
(190) |
Sep
(190) |
Oct
(29) |
Nov
(147) |
Dec
(83) |
2011 |
Jan
(188) |
Feb
(81) |
Mar
(43) |
Apr
(97) |
May
(63) |
Jun
(129) |
Jul
(17) |
Aug
(124) |
Sep
(6) |
Oct
(20) |
Nov
(67) |
Dec
(23) |
2012 |
Jan
(6) |
Feb
(14) |
Mar
(181) |
Apr
(64) |
May
(102) |
Jun
(47) |
Jul
(26) |
Aug
(3) |
Sep
(1) |
Oct
(14) |
Nov
(13) |
Dec
(23) |
2013 |
Jan
(4) |
Feb
(14) |
Mar
(18) |
Apr
(14) |
May
(27) |
Jun
(27) |
Jul
(5) |
Aug
(2) |
Sep
(74) |
Oct
(79) |
Nov
(21) |
Dec
(97) |
2014 |
Jan
(6) |
Feb
(3) |
Mar
(8) |
Apr
|
May
(5) |
Jun
|
Jul
(9) |
Aug
(6) |
Sep
(3) |
Oct
(10) |
Nov
(6) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
(1) |
Apr
(25) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
(5) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
Revision: 4365 http://openutils.svn.sourceforge.net/openutils/?rev=4365&view=rev Author: fgiust Date: 2013-10-10 15:40:29 +0000 (Thu, 10 Oct 2013) Log Message: ----------- init() called automatically during initialization Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/el/ContextMenuElFunctions.java Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/el/ContextMenuElFunctions.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/el/ContextMenuElFunctions.java 2013-10-08 16:16:01 UTC (rev 4364) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/el/ContextMenuElFunctions.java 2013-10-10 15:40:29 UTC (rev 4365) @@ -178,19 +178,22 @@ @SuppressWarnings({"rawtypes" }) public static void init() { - HttpServletRequest request = getRequest(); - List list = (List) request.getAttribute(EDIT_MESSAGE_INFOS_KEY); - if (list == null) + if (MgnlContext.isWebContext()) { - list = new ArrayList(); - request.setAttribute(EDIT_MESSAGE_INFOS_KEY, list); + HttpServletRequest request = getRequest(); + List list = (List) request.getAttribute(EDIT_MESSAGE_INFOS_KEY); + if (list == null) + { + list = new ArrayList(); + request.setAttribute(EDIT_MESSAGE_INFOS_KEY, list); + } + List items = (List) request.getAttribute(SORT_LIST_KEY); + if (items == null) + { + items = new ArrayList(); + request.setAttribute(SORT_LIST_KEY, items); + } } - List items = (List) request.getAttribute(SORT_LIST_KEY); - if (items == null) - { - items = new ArrayList(); - request.setAttribute(SORT_LIST_KEY, items); - } } @SuppressWarnings({"unchecked", "rawtypes" }) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2013-10-08 16:16:08
|
Revision: 4364 http://openutils.svn.sourceforge.net/openutils/?rev=4364&view=rev Author: fgiust Date: 2013-10-08 16:16:01 +0000 (Tue, 08 Oct 2013) Log Message: ----------- [maven-release-plugin] prepare for next development iteration Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlcontextmenu/pom.xml Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/pom.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/pom.xml 2013-10-08 16:15:46 UTC (rev 4363) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/pom.xml 2013-10-08 16:16:01 UTC (rev 4364) @@ -11,7 +11,7 @@ <artifactId>openutils-mgnlcontextmenu</artifactId> <name>ContextMenu Module for Magnolia CMS</name> <description>A magnolia module for editing content via context menu</description> - <version>4.5.3</version> + <version>4.5.4-SNAPSHOT</version> <inceptionYear>2010</inceptionYear> <licenses> <license> @@ -25,9 +25,9 @@ <url>http://jira.openmindlab.com/browse/MENU</url> </issueManagement> <scm> - <connection>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/tags/openutils-mgnlcontextmenu-4.5.3</connection> - <developerConnection>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/tags/openutils-mgnlcontextmenu-4.5.3</developerConnection> - <url>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/tags/openutils-mgnlcontextmenu-4.5.3</url> + <connection>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/magnoliamodules/trunk/openutils-mgnlcontextmenu</connection> + <developerConnection>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/magnoliamodules/trunk/openutils-mgnlcontextmenu</developerConnection> + <url>http://sourceforge.net/p/openutils/code/HEAD/tree/trunk/openutils-mgnlcontextmenu</url> </scm> <build> <plugins> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2013-10-08 16:15:50
|
Revision: 4363 http://openutils.svn.sourceforge.net/openutils/?rev=4363&view=rev Author: fgiust Date: 2013-10-08 16:15:46 +0000 (Tue, 08 Oct 2013) Log Message: ----------- [maven-release-plugin] copy for tag openutils-mgnlcontextmenu-4.5.3 Added Paths: ----------- tags/openutils-mgnlcontextmenu-4.5.3/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2013-10-08 16:15:34
|
Revision: 4362 http://openutils.svn.sourceforge.net/openutils/?rev=4362&view=rev Author: fgiust Date: 2013-10-08 16:15:30 +0000 (Tue, 08 Oct 2013) Log Message: ----------- [maven-release-plugin] prepare release openutils-mgnlcontextmenu-4.5.3 Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlcontextmenu/pom.xml Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/pom.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/pom.xml 2013-10-08 16:07:28 UTC (rev 4361) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/pom.xml 2013-10-08 16:15:30 UTC (rev 4362) @@ -11,7 +11,7 @@ <artifactId>openutils-mgnlcontextmenu</artifactId> <name>ContextMenu Module for Magnolia CMS</name> <description>A magnolia module for editing content via context menu</description> - <version>4.5.3-SNAPSHOT</version> + <version>4.5.3</version> <inceptionYear>2010</inceptionYear> <licenses> <license> @@ -25,9 +25,9 @@ <url>http://jira.openmindlab.com/browse/MENU</url> </issueManagement> <scm> - <connection>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/magnoliamodules/trunk/openutils-mgnlcontextmenu</connection> - <developerConnection>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/magnoliamodules/trunk/openutils-mgnlcontextmenu</developerConnection> - <url>http://sourceforge.net/p/openutils/code/HEAD/tree/trunk/openutils-mgnlcontextmenu</url> + <connection>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/tags/openutils-mgnlcontextmenu-4.5.3</connection> + <developerConnection>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/tags/openutils-mgnlcontextmenu-4.5.3</developerConnection> + <url>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/tags/openutils-mgnlcontextmenu-4.5.3</url> </scm> <build> <plugins> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2013-10-08 16:07:42
|
Revision: 4361 http://openutils.svn.sourceforge.net/openutils/?rev=4361&view=rev Author: fgiust Date: 2013-10-08 16:07:28 +0000 (Tue, 08 Oct 2013) Log Message: ----------- new sample with nested fieldset Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/website.sample-contextmenu.xml magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/paragraph-move-fields.jsp magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/css/jquery.contextMenu.css magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/js/contextmenu-sortList.js Added Paths: ----------- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.move.xml Added: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.move.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.move.xml (rev 0) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.move.xml 2013-10-08 16:07:28 UTC (rev 4361) @@ -0,0 +1,161 @@ +<?xml version="1.0" encoding="UTF-8"?> +<sv:node sv:name="move" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>8f90cf21-7aab-4beb-8a0e-ba93cdcfaac9</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mouseoverClass" sv:type="String"> + <sv:value>contextmenuOver</sv:value> + </sv:property> + <sv:property sv:name="mouseoverIcon" sv:type="String"> + <sv:value>/.resources/contextmenu/img/rightclicktoedit.png</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2010-05-18T18:22:08.296+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-10-08T00:11:15.996+02:00</sv:value> + </sv:property> + </sv:node> + <sv:node sv:name="items"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>66547248-8ed5-4836-90f0-b58d0ee28ea3</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2010-05-18T18:22:40.359+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-10-08T00:11:12.366+02:00</sv:value> + </sv:property> + </sv:node> + <sv:node sv:name="default"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>0a06a2c8-cc8c-4b6c-b147-fd9b9eeb779c</sv:value> + </sv:property> + <sv:property sv:name="controlType" sv:type="String"> + <sv:value>edit</sv:value> + </sv:property> + <sv:property sv:name="icon" sv:type="String"> + <sv:value>/.resources/contextmenu/css/images/menu-text.png</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="text" sv:type="String"> + <sv:value>Edit label</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2010-05-18T18:22:45.406+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-10-08T00:11:12.366+02:00</sv:value> + </sv:property> + </sv:node> + </sv:node> + <sv:node sv:name="move"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>a9c57061-6db0-4a1d-9ab4-6f85cac292b2</sv:value> + </sv:property> + <sv:property sv:name="controlType" sv:type="String"> + <sv:value>move</sv:value> + </sv:property> + <sv:property sv:name="icon" sv:type="String"> + <sv:value>/.resources/contextmenu/css/images/menu-move.gif</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="text" sv:type="String"> + <sv:value>Move field</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2010-05-18T18:22:45.406+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-10-08T00:11:12.367+02:00</sv:value> + </sv:property> + </sv:node> + </sv:node> + </sv:node> +</sv:node> Property changes on: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.move.xml ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/xml \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Author Date Id Revision \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/website.sample-contextmenu.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/website.sample-contextmenu.xml 2013-10-07 17:14:35 UTC (rev 4360) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/website.sample-contextmenu.xml 2013-10-08 16:07:28 UTC (rev 4361) @@ -29,7 +29,7 @@ <sv:value>2010-05-18T14:33:10.812+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2013-09-27T15:38:09.156+02:00</sv:value> + <sv:value>2013-10-07T23:55:31.955+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:template" sv:type="String"> <sv:value>contextmenu:pages/contextmenu-template-jsp</sv:value> @@ -62,7 +62,7 @@ <sv:value>2010-05-18T16:43:29.812+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2013-09-27T15:38:09.155+02:00</sv:value> + <sv:value>2013-10-07T23:55:31.953+02:00</sv:value> </sv:property> </sv:node> <sv:node sv:name="0"> @@ -392,7 +392,7 @@ </sv:property> </sv:node> </sv:node> - <sv:node sv:name="06"> + <sv:node sv:name="07"> <sv:property sv:name="jcr:primaryType" sv:type="Name"> <sv:value>mgnl:component</sv:value> </sv:property> @@ -400,20 +400,17 @@ <sv:value>mix:lockable</sv:value> </sv:property> <sv:property sv:name="jcr:uuid" sv:type="String"> - <sv:value>7992f867-ed72-44bd-bff6-95027a322a2e</sv:value> + <sv:value>3d7f87ad-5783-40ad-a6bc-0cb66c089c99</sv:value> </sv:property> <sv:property sv:name="dummy" sv:type="String"> <sv:value>.</sv:value> </sv:property> - <sv:property sv:name="field2_label" sv:type="String"> - <sv:value>asd</sv:value> - </sv:property> - <sv:property sv:name="fieldList1" sv:type="String"> - <sv:value>1,0</sv:value> - </sv:property> <sv:property sv:name="jcr:createdBy" sv:type="String"> <sv:value>admin</sv:value> </sv:property> + <sv:property sv:name="media" sv:type="String"> + <sv:value>0f076956-3642-48a4-8efd-8cb17f3be49b</sv:value> + </sv:property> <sv:node sv:name="MetaData"> <sv:property sv:name="jcr:primaryType" sv:type="Name"> <sv:value>mgnl:metaData</sv:value> @@ -425,17 +422,17 @@ <sv:value>superuser</sv:value> </sv:property> <sv:property sv:name="mgnl:creationdate" sv:type="Date"> - <sv:value>2013-09-17T00:12:45.279+02:00</sv:value> + <sv:value>2013-09-27T15:28:21.349+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2013-09-27T15:13:31.452+02:00</sv:value> + <sv:value>2013-09-27T15:28:45.099+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:template" sv:type="String"> - <sv:value>contextmenu:components/samples-contextmenu-move-fields</sv:value> + <sv:value>contextmenu:components/samples-contextmenu-media</sv:value> </sv:property> </sv:node> </sv:node> - <sv:node sv:name="07"> + <sv:node sv:name="08"> <sv:property sv:name="jcr:primaryType" sv:type="Name"> <sv:value>mgnl:component</sv:value> </sv:property> @@ -443,39 +440,36 @@ <sv:value>mix:lockable</sv:value> </sv:property> <sv:property sv:name="jcr:uuid" sv:type="String"> - <sv:value>3d7f87ad-5783-40ad-a6bc-0cb66c089c99</sv:value> + <sv:value>613084f9-3b50-429e-82c6-602c4c70d455</sv:value> </sv:property> <sv:property sv:name="dummy" sv:type="String"> <sv:value>.</sv:value> </sv:property> <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>superuser</sv:value> + <sv:value>admin</sv:value> </sv:property> - <sv:property sv:name="media" sv:type="String"> - <sv:value>0f076956-3642-48a4-8efd-8cb17f3be49b</sv:value> - </sv:property> <sv:node sv:name="MetaData"> <sv:property sv:name="jcr:primaryType" sv:type="Name"> <sv:value>mgnl:metaData</sv:value> </sv:property> <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>superuser</sv:value> + <sv:value>admin</sv:value> </sv:property> <sv:property sv:name="mgnl:authorid" sv:type="String"> <sv:value>superuser</sv:value> </sv:property> <sv:property sv:name="mgnl:creationdate" sv:type="Date"> - <sv:value>2013-09-27T15:28:21.349+02:00</sv:value> + <sv:value>2013-09-27T15:32:52.046+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2013-09-27T15:28:45.099+02:00</sv:value> + <sv:value>2013-09-27T15:32:52.047+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:template" sv:type="String"> <sv:value>contextmenu:components/samples-contextmenu-media</sv:value> </sv:property> </sv:node> </sv:node> - <sv:node sv:name="08"> + <sv:node sv:name="06"> <sv:property sv:name="jcr:primaryType" sv:type="Name"> <sv:value>mgnl:component</sv:value> </sv:property> @@ -483,7 +477,7 @@ <sv:value>mix:lockable</sv:value> </sv:property> <sv:property sv:name="jcr:uuid" sv:type="String"> - <sv:value>613084f9-3b50-429e-82c6-602c4c70d455</sv:value> + <sv:value>69fd5ce5-9560-453d-bad6-ef572443f6e1</sv:value> </sv:property> <sv:property sv:name="dummy" sv:type="String"> <sv:value>.</sv:value> @@ -502,13 +496,13 @@ <sv:value>superuser</sv:value> </sv:property> <sv:property sv:name="mgnl:creationdate" sv:type="Date"> - <sv:value>2013-09-27T15:32:52.046+02:00</sv:value> + <sv:value>2013-10-07T23:55:31.953+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2013-09-27T15:32:52.047+02:00</sv:value> + <sv:value>2013-10-07T23:55:31.953+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:template" sv:type="String"> - <sv:value>contextmenu:components/samples-contextmenu-media</sv:value> + <sv:value>contextmenu:components/samples-contextmenu-move-fields</sv:value> </sv:property> </sv:node> </sv:node> Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/paragraph-move-fields.jsp =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/paragraph-move-fields.jsp 2013-10-07 17:14:35 UTC (rev 4360) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/paragraph-move-fields.jsp 2013-10-08 16:07:28 UTC (rev 4361) @@ -23,43 +23,123 @@ </contextmenu:sortList> ]]> </pre> - <div class="testcontent"> - <div id="fieldList1"> - <contextmenu:sortList containerId="fieldList1"> - <contextmenu:sortItem> - <div class="control-group"> - <label class="control-label"> - <contextmenu:element name="field1" menu="formField">Field1:</contextmenu:element> - </label> - <div class="controls"> - <input name="field1" id="field1" type="text" /> - <c:set var="help" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'field1.help')}" /> - <c:if test="${not empty help}"> - <span class="help"> + <div class="testcontent" id="fieldsetlist"> + <contextmenu:sortList containerId="fieldsetlist"> + <contextmenu:sortItem> + <h5 class="control-group"> + <contextmenu:element name="list1" menu="move">List 1</contextmenu:element> + </h5> + <div id="fieldList1"> + <contextmenu:sortList containerId="fieldList1"> + <contextmenu:sortItem> + <div class="control-group"> + <label class="control-label"> + <contextmenu:element name="field1" menu="formField">Field1:</contextmenu:element> + </label> + <div class="controls"> + <input name="field1" id="field1" type="text" /> + <c:set var="help" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'field1.help')}" /> + <c:if test="${not empty help}"> + <span class="help"> <![CDATA[${help}<span class="help-pointer"> </span>]]> - </span> - </c:if> - </div> - </div> - </contextmenu:sortItem> - <contextmenu:sortItem> - <div class="control-group"> - <label class="control-label"> - <contextmenu:element name="field2" menu="formField">Field2:</contextmenu:element> - </label> - <div class="controls"> - <input name="field2" id="field2" type="text" /> - <c:set var="help" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'field2.help')}" /> - <c:if test="${not empty help}"> - <span class="help"> + </span> + </c:if> + </div> + </div> + </contextmenu:sortItem> + <contextmenu:sortItem> + <div class="control-group"> + <label class="control-label"> + <contextmenu:element name="field2" menu="formField">Field2:</contextmenu:element> + </label> + <div class="controls"> + <input name="field2" id="field2" type="text" /> + <c:set var="help" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'field2.help')}" /> + <c:if test="${not empty help}"> + <span class="help"> <![CDATA[${help}<span class="help-pointer"> </span>]]> - </span> - </c:if> - </div> - </div> - </contextmenu:sortItem> - </contextmenu:sortList> - </div> + </span> + </c:if> + </div> + </div> + </contextmenu:sortItem> + <contextmenu:sortItem> + <div class="control-group"> + <label class="control-label"> + <contextmenu:element name="field3" menu="formField">Field3:</contextmenu:element> + </label> + <div class="controls"> + <input name="field3" id="field3" type="text" /> + <c:set var="help" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'field3.help')}" /> + <c:if test="${not empty help}"> + <span class="help"> + <![CDATA[${help}<span class="help-pointer"> </span>]]> + </span> + </c:if> + </div> + </div> + </contextmenu:sortItem> + </contextmenu:sortList> + </div> + </contextmenu:sortItem> + <contextmenu:sortItem> + <h5 class="control-group"> + <contextmenu:element name="list2" menu="move">List 2</contextmenu:element> + </h5> + <div id="fieldList2"> + <contextmenu:sortList containerId="fieldList2"> + <contextmenu:sortItem> + <div class="control-group"> + <label class="control-label"> + <contextmenu:element name="field1b" menu="formField">Field1 #2:</contextmenu:element> + </label> + <div class="controls"> + <input name="field1" id="field1b" type="text" /> + <c:set var="help" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'field1b.help')}" /> + <c:if test="${not empty help}"> + <span class="help"> + <![CDATA[${help}<span class="help-pointer"> </span>]]> + </span> + </c:if> + </div> + </div> + </contextmenu:sortItem> + <contextmenu:sortItem> + <div class="control-group"> + <label class="control-label"> + <contextmenu:element name="field2b" menu="formField">Field2 #2:</contextmenu:element> + </label> + <div class="controls"> + <input name="field2" id="field2b" type="text" /> + <c:set var="help" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'field2b.help')}" /> + <c:if test="${not empty help}"> + <span class="help"> + <![CDATA[${help}<span class="help-pointer"> </span>]]> + </span> + </c:if> + </div> + </div> + </contextmenu:sortItem> + <contextmenu:sortItem> + <div class="control-group"> + <label class="control-label"> + <contextmenu:element name="field4b" menu="formField">Field3 #2:</contextmenu:element> + </label> + <div class="controls"> + <input name="field3b" id="field3b" type="text" /> + <c:set var="help" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'field3b.help')}" /> + <c:if test="${not empty help}"> + <span class="help"> + <![CDATA[${help}<span class="help-pointer"> </span>]]> + </span> + </c:if> + </div> + </div> + </contextmenu:sortItem> + </contextmenu:sortList> + </div> + </contextmenu:sortItem> + </contextmenu:sortList> </div> </section> </jsp:root> \ No newline at end of file Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/css/jquery.contextMenu.css =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/css/jquery.contextMenu.css 2013-10-07 17:14:35 UTC (rev 4360) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/css/jquery.contextMenu.css 2013-10-08 16:07:28 UTC (rev 4361) @@ -99,14 +99,6 @@ padding: 0; } -.move .dropXX { - display: block; - height: 8px; - border: 1px solid #666; - background-color: #CCC; - cursor: pointer; -} - .move .drop { margin: 2px 0; height: 12px; @@ -114,18 +106,31 @@ font-size: 12px; color: #ffffff; text-align: center; - background-color: #5cb85c; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-transition: width 0.6s ease; - transition: width 0.6s ease; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; - cursor: pointer; + height: 23px !important; + line-height: 20px !important; + border-top: 1px solid #bcd56f !important; + border-left: 1px solid #bcd56f !important; + border-bottom: 1px solid #678b0f !important; + border-right: 1px solid #678b0f !important; + background: url("../../magnolia-templating-editor/img/bars/mgnl-bar.component.png") repeat !important; + color: #2f491b !important; + clear: both; } +.move .sort-list .drop { + display: none; + margin: 0; + padding: 0; +} -.edit-content{ +.move .drop.highlighted { + border-top: 1px solid #deeab7 !important; + border-left: 1px solid #deeab7 !important; + border-bottom: 1px solid #b3c587 !important; + border-right: 1px solid #b3c587 !important; + background-image: url("../../magnolia-templating-editor/img/bars/mgnl-bar.component.deemphasized.png") !important; +} + +.edit-content { min-height: 20px; - } \ No newline at end of file +} \ No newline at end of file Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/js/contextmenu-sortList.js =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/js/contextmenu-sortList.js 2013-10-07 17:14:35 UTC (rev 4360) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/js/contextmenu-sortList.js 2013-10-08 16:07:28 UTC (rev 4361) @@ -17,10 +17,12 @@ drops.push(li[0]); } }); + var li = jQuery('<div class="control-group"></div>'); $ol.append(li); drops.push(li[0]); + var order = jQuery.merge([], options.order); for (var i = order.length, j = drags.length; i < j; i++){ order.push(i); @@ -31,13 +33,31 @@ jQuery(drags).bind('drag', function(e){ i1 = originalOrder[drags.indexOf(e.target)]; + + $selected = jQuery(e.target); + + $selected.prev(".control-drop").addClass('highlighted'); + // $selected.next(".control-drop").addClass('highlighted'); + + $ol.addClass('move'); - $ol.find('> .control-group.hide').removeClass('hide') + $ol.closest('.sort-list').find('> .control-group.hide').removeClass('hide'); + + var $divShadow=jQuery('#mgnlMoveDivShadow'); + $divShadow.css({visibility: 'visible'}); + + // globals per gli effetti di magnolia + mgnlMoveNodeCollection =""; + mgnlMoveNode ="02"; + mgnlMove=true; + + mgnlMoveNodeCollection+'__'+mgnlMoveNode }); jQuery(drops).addClass('drop').click(function(e){ e.stopPropagation(); $ol.removeClass('move'); + jQuery('#mgnlMoveDivShadow').css({visibility: 'hidden'}); i2 = drops.indexOf(this); i2 = i2 < drops.length - 1 ? originalOrder[i2] : null; var newOrder = []; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <luc...@us...> - 2013-10-07 17:14:39
|
Revision: 4360 http://openutils.svn.sourceforge.net/openutils/?rev=4360&view=rev Author: lucaboati Date: 2013-10-07 17:14:35 +0000 (Mon, 07 Oct 2013) Log Message: ----------- constant mgnlSortList Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/el/ContextMenuElFunctions.java magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/tags/MenuScripts.java magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/tags/SortListTag.java Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/el/ContextMenuElFunctions.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/el/ContextMenuElFunctions.java 2013-10-07 17:05:11 UTC (rev 4359) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/el/ContextMenuElFunctions.java 2013-10-07 17:14:35 UTC (rev 4360) @@ -58,6 +58,8 @@ */ private static Logger log = LoggerFactory.getLogger(ContextMenuElFunctions.class); + public static final String SORT_LIST_KEY = "mgnlSortLists"; + private static final String EDIT_MESSAGE_INFOS_KEY = "mgnlEditMessageInfos"; /** @@ -183,11 +185,11 @@ list = new ArrayList(); request.setAttribute(EDIT_MESSAGE_INFOS_KEY, list); } - List items = (List) request.getAttribute("mgnlSortLists"); + List items = (List) request.getAttribute(SORT_LIST_KEY); if (items == null) { items = new ArrayList(); - request.setAttribute("mgnlSortLists", items); + request.setAttribute(SORT_LIST_KEY, items); } } Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/tags/MenuScripts.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/tags/MenuScripts.java 2013-10-07 17:05:11 UTC (rev 4359) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/tags/MenuScripts.java 2013-10-07 17:14:35 UTC (rev 4360) @@ -71,7 +71,7 @@ List<Map<String, String>> items = (List<Map<String, String>>) MgnlContext .getWebContext() .getRequest() - .getAttribute("mgnlSortLists"); + .getAttribute(ContextMenuElFunctions.SORT_LIST_KEY); if (items != null) { for (Map<String, String> item : items) Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/tags/SortListTag.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/tags/SortListTag.java 2013-10-07 17:05:11 UTC (rev 4359) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/tags/SortListTag.java 2013-10-07 17:14:35 UTC (rev 4360) @@ -107,11 +107,11 @@ item.put("path", MgnlContext.getAggregationState().getCurrentContent().getHandle()); item.put("name", orderProperty); item.put("order", '[' + order + ']'); - List items = (List) pageContext.getRequest().getAttribute("mgnlSortLists"); + List items = (List) pageContext.getRequest().getAttribute(ContextMenuElFunctions.SORT_LIST_KEY); if (items == null) { items = new ArrayList(); - pageContext.getRequest().setAttribute("mgnlSortLists", items); + pageContext.getRequest().setAttribute(ContextMenuElFunctions.SORT_LIST_KEY, items); } items.add(item); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <luc...@us...> - 2013-10-07 17:05:15
|
Revision: 4359 http://openutils.svn.sourceforge.net/openutils/?rev=4359&view=rev Author: lucaboati Date: 2013-10-07 17:05:11 +0000 (Mon, 07 Oct 2013) Log Message: ----------- fix move for blossom component, initContextMenu now call init Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/el/ContextMenuElFunctions.java magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/META-INF/tld/mgnlcontextmenu.tld Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/el/ContextMenuElFunctions.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/el/ContextMenuElFunctions.java 2013-10-07 16:49:33 UTC (rev 4358) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/el/ContextMenuElFunctions.java 2013-10-07 17:05:11 UTC (rev 4359) @@ -174,7 +174,7 @@ } @SuppressWarnings({"rawtypes" }) - public static void initContextMenu() + public static void init() { HttpServletRequest request = getRequest(); List list = (List) request.getAttribute(EDIT_MESSAGE_INFOS_KEY); @@ -183,6 +183,12 @@ list = new ArrayList(); request.setAttribute(EDIT_MESSAGE_INFOS_KEY, list); } + List items = (List) request.getAttribute("mgnlSortLists"); + if (items == null) + { + items = new ArrayList(); + request.setAttribute("mgnlSortLists", items); + } } @SuppressWarnings({"unchecked", "rawtypes" }) Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/META-INF/tld/mgnlcontextmenu.tld =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/META-INF/tld/mgnlcontextmenu.tld 2013-10-07 16:49:33 UTC (rev 4358) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/META-INF/tld/mgnlcontextmenu.tld 2013-10-07 17:05:11 UTC (rev 4359) @@ -141,7 +141,7 @@ <function> <name>init</name> <function-class>net.sourceforge.openutils.mgnlcontextmenu.el.ContextMenuElFunctions</function-class> - <function-signature>void initContextMenu()</function-signature> + <function-signature>void init()</function-signature> </function> <function> <name>addEditMessageInfo</name> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2013-10-07 16:49:39
|
Revision: 4358 http://openutils.svn.sourceforge.net/openutils/?rev=4358&view=rev Author: fgiust Date: 2013-10-07 16:49:33 +0000 (Mon, 07 Oct 2013) Log Message: ----------- update module versions Modified Paths: -------------- magnoliamodules/trunk/magnolia-test-webapp/pom.xml Modified: magnoliamodules/trunk/magnolia-test-webapp/pom.xml =================================================================== --- magnoliamodules/trunk/magnolia-test-webapp/pom.xml 2013-10-01 15:17:14 UTC (rev 4357) +++ magnoliamodules/trunk/magnolia-test-webapp/pom.xml 2013-10-07 16:49:33 UTC (rev 4358) @@ -206,7 +206,7 @@ <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnlcontextmenu</artifactId> - <version>4.5.1-SNAPSHOT</version> + <version>4.5.3-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <luc...@us...> - 2013-10-01 15:17:16
|
Revision: 4357 http://openutils.svn.sourceforge.net/openutils/?rev=4357&view=rev Author: lucaboati Date: 2013-10-01 15:17:14 +0000 (Tue, 01 Oct 2013) Log Message: ----------- to mgnl 5.1rc-1 Modified Paths: -------------- magnoliamodules/trunk/magnolia5-test-webapp/pom.xml Modified: magnoliamodules/trunk/magnolia5-test-webapp/pom.xml =================================================================== --- magnoliamodules/trunk/magnolia5-test-webapp/pom.xml 2013-09-30 10:08:49 UTC (rev 4356) +++ magnoliamodules/trunk/magnolia5-test-webapp/pom.xml 2013-10-01 15:17:14 UTC (rev 4357) @@ -37,12 +37,12 @@ <dependency> <groupId>info.magnolia</groupId> <artifactId>magnolia-module-legacy-admininterface</artifactId> - <version>5.0.2</version> + <version>${magnolia.version}</version> </dependency> <dependency> <groupId>info.magnolia.dam</groupId> <artifactId>magnolia-dam</artifactId> - <version>1.0.2</version> + <version>1.1-rc1</version> </dependency> <!-- <dependency> --> <!-- <groupId>info.magnolia</groupId> --> @@ -58,7 +58,7 @@ <dependency> <groupId>info.magnolia</groupId> <artifactId>magnolia-module-mail</artifactId> - <version>5.0.1</version> + <version>${magnolia.version}</version> </dependency> <!-- <dependency> --> <!-- <groupId>info.magnolia</groupId> --> @@ -68,7 +68,7 @@ <dependency> <groupId>info.magnolia.activation</groupId> <artifactId>magnolia-module-activation</artifactId> - <version>5.0</version> + <version>5.0.2</version> </dependency> <dependency> <groupId>info.magnolia</groupId> @@ -86,11 +86,6 @@ <version>${magnolia.version}</version> </dependency> <dependency> - <groupId>info.magnolia</groupId> - <artifactId>magnolia-templating-jsp</artifactId> - <version>${magnolia.version}</version> - </dependency> - <dependency> <groupId>info.magnolia.sample</groupId> <artifactId>magnolia-sample-app</artifactId> <version>${magnolia.version}</version> @@ -247,7 +242,7 @@ </dependencies> </dependencyManagement> <properties> - <magnolia.version>5.0.4</magnolia.version> + <magnolia.version>5.1-rc1</magnolia.version> <magnolia.version2>5.0-prev1-rc1</magnolia.version2> <!-- <magnolia.version2>5.0.4</magnolia.version2> --> <stk.version>2.5.3</stk.version> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mol...@us...> - 2013-09-30 10:08:53
|
Revision: 4356 http://openutils.svn.sourceforge.net/openutils/?rev=4356&view=rev Author: molaschi Date: 2013-09-30 10:08:49 +0000 (Mon, 30 Sep 2013) Log Message: ----------- [maven-release-plugin] prepare for next development iteration Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlcontextmenu/pom.xml Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/pom.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/pom.xml 2013-09-30 10:08:36 UTC (rev 4355) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/pom.xml 2013-09-30 10:08:49 UTC (rev 4356) @@ -11,7 +11,7 @@ <artifactId>openutils-mgnlcontextmenu</artifactId> <name>ContextMenu Module for Magnolia CMS</name> <description>A magnolia module for editing content via context menu</description> - <version>4.5.2</version> + <version>4.5.3-SNAPSHOT</version> <inceptionYear>2010</inceptionYear> <licenses> <license> @@ -25,9 +25,9 @@ <url>http://jira.openmindlab.com/browse/MENU</url> </issueManagement> <scm> - <connection>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/tags/openutils-mgnlcontextmenu-4.5.2</connection> - <developerConnection>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/tags/openutils-mgnlcontextmenu-4.5.2</developerConnection> - <url>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/tags/openutils-mgnlcontextmenu-4.5.2</url> + <connection>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/magnoliamodules/trunk/openutils-mgnlcontextmenu</connection> + <developerConnection>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/magnoliamodules/trunk/openutils-mgnlcontextmenu</developerConnection> + <url>http://sourceforge.net/p/openutils/code/HEAD/tree/trunk/openutils-mgnlcontextmenu</url> </scm> <build> <plugins> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mol...@us...> - 2013-09-30 10:08:40
|
Revision: 4355 http://openutils.svn.sourceforge.net/openutils/?rev=4355&view=rev Author: molaschi Date: 2013-09-30 10:08:36 +0000 (Mon, 30 Sep 2013) Log Message: ----------- [maven-release-plugin] copy for tag openutils-mgnlcontextmenu-4.5.2 Added Paths: ----------- tags/openutils-mgnlcontextmenu-4.5.2/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mol...@us...> - 2013-09-30 10:08:25
|
Revision: 4354 http://openutils.svn.sourceforge.net/openutils/?rev=4354&view=rev Author: molaschi Date: 2013-09-30 10:08:22 +0000 (Mon, 30 Sep 2013) Log Message: ----------- [maven-release-plugin] prepare release openutils-mgnlcontextmenu-4.5.2 Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlcontextmenu/pom.xml Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/pom.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/pom.xml 2013-09-30 09:52:13 UTC (rev 4353) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/pom.xml 2013-09-30 10:08:22 UTC (rev 4354) @@ -11,7 +11,7 @@ <artifactId>openutils-mgnlcontextmenu</artifactId> <name>ContextMenu Module for Magnolia CMS</name> <description>A magnolia module for editing content via context menu</description> - <version>4.5.2-SNAPSHOT</version> + <version>4.5.2</version> <inceptionYear>2010</inceptionYear> <licenses> <license> @@ -25,9 +25,9 @@ <url>http://jira.openmindlab.com/browse/MENU</url> </issueManagement> <scm> - <connection>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/magnoliamodules/trunk/openutils-mgnlcontextmenu</connection> - <developerConnection>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/magnoliamodules/trunk/openutils-mgnlcontextmenu</developerConnection> - <url>http://sourceforge.net/p/openutils/code/HEAD/tree/trunk/openutils-mgnlcontextmenu</url> + <connection>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/tags/openutils-mgnlcontextmenu-4.5.2</connection> + <developerConnection>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/tags/openutils-mgnlcontextmenu-4.5.2</developerConnection> + <url>scm:svn:svn+ssh://svn.code.sf.net/p/openutils/code/tags/openutils-mgnlcontextmenu-4.5.2</url> </scm> <build> <plugins> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <luc...@us...> - 2013-09-30 09:52:17
|
Revision: 4353 http://openutils.svn.sourceforge.net/openutils/?rev=4353&view=rev Author: lucaboati Date: 2013-09-30 09:52:13 +0000 (Mon, 30 Sep 2013) Log Message: ----------- add init() function to fix menu in blossom components Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/el/ContextMenuElFunctions.java magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/META-INF/tld/mgnlcontextmenu.tld magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/template-contextmenu.jsp magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/samples-contextmenu/template-contextmenu.ftl Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/el/ContextMenuElFunctions.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/el/ContextMenuElFunctions.java 2013-09-27 16:13:35 UTC (rev 4352) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/el/ContextMenuElFunctions.java 2013-09-30 09:52:13 UTC (rev 4353) @@ -173,6 +173,18 @@ return output; } + @SuppressWarnings({"rawtypes" }) + public static void initContextMenu() + { + HttpServletRequest request = getRequest(); + List list = (List) request.getAttribute(EDIT_MESSAGE_INFOS_KEY); + if (list == null) + { + list = new ArrayList(); + request.setAttribute(EDIT_MESSAGE_INFOS_KEY, list); + } + } + @SuppressWarnings({"unchecked", "rawtypes" }) public static ElementInfo addEditMessageInfo(String key, String path, String elementId) { Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/META-INF/tld/mgnlcontextmenu.tld =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/META-INF/tld/mgnlcontextmenu.tld 2013-09-27 16:13:35 UTC (rev 4352) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/META-INF/tld/mgnlcontextmenu.tld 2013-09-30 09:52:13 UTC (rev 4353) @@ -139,10 +139,15 @@ <function-signature>java.util.List endSortList(java.lang.String)</function-signature> </function> <function> + <name>init</name> + <function-class>net.sourceforge.openutils.mgnlcontextmenu.el.ContextMenuElFunctions</function-class> + <function-signature>void initContextMenu()</function-signature> + </function> + <function> <name>addEditMessageInfo</name> <function-class>net.sourceforge.openutils.mgnlcontextmenu.el.ContextMenuElFunctions</function-class> - <function-signature>net.sourceforge.openutils.mgnlcontextmenu.el.ElementInfo - addEditMessageInfo(java.lang.String, java.lang.String, java.lang.String)</function-signature> + <function-signature>net.sourceforge.openutils.mgnlcontextmenu.el.ElementInfo addEditMessageInfo(java.lang.String, + java.lang.String, java.lang.String)</function-signature> </function> <function> <name>editMessageInfos</name> Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/template-contextmenu.jsp =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/template-contextmenu.jsp 2013-09-27 16:13:35 UTC (rev 4352) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/template-contextmenu.jsp 2013-09-30 09:52:13 UTC (rev 4353) @@ -11,6 +11,7 @@ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>${content.title}</title> <script src="${pageContext.request.contextPath}/.resources/contextmenu/js/jquery-1.4.2.min.js">/**/</script> + ${contextmenu:init()} ${contextmenu:links()} <cms:init /> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/.resources/contextmenu/css/bootstrap.min.css" /> @@ -30,6 +31,14 @@ <ul> <li> add + <code>${'$'}{contextmenu:init()}</code> + if you are using blossom (just before + <code>&lt;/head&gt;</code> + ) + </li> + <li>add the jquery library</li> + <li> + add <code>${'$'}{contextmenu:links()}</code> (just before <code>&lt;/head&gt;</code> @@ -42,28 +51,12 @@ <code>&lt;/body&gt;</code> ) </li> - <li>add the jquery library</li> </ul> </p> </section> <cms:area name="main" /> </div> - <!-- <jsp:include page="/templates/samples-contextmenu/page-editmenu.jsp" /> --> ${contextmenu:scripts()} - <c:if test="${!empty mgnlSortLists}"> - <script type="text/javascript"> - <![CDATA[ jQuery(document).ready( function() {]]> - <c:forEach var="item" items="${mgnlSortLists}"> - <![CDATA[jQuery('#${item.containerId}').sortList({ - url: '${item.url}', - path: '${item.path}', - name: '${item.name}', - order: ${item.order} - });]]> - </c:forEach> - <![CDATA[});]]> - </script> - </c:if> </body> </html> </jsp:root> \ No newline at end of file Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/samples-contextmenu/template-contextmenu.ftl =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/samples-contextmenu/template-contextmenu.ftl 2013-09-27 16:13:35 UTC (rev 4352) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/samples-contextmenu/template-contextmenu.ftl 2013-09-30 09:52:13 UTC (rev 4353) @@ -4,8 +4,9 @@ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>${content.title!}</title> + ${contextmenu.init()} + <script src="${contextPath}/.resources/contextmenu/js/jquery-1.4.2.min.js">/**/</script> - ${contextmenu.links()} [@cms.init /] @@ -25,9 +26,10 @@ <p> <span>Add the following to your template in order to initialize the contextmenu module:</span> <ul> + <li>add <code>${'$'}{contextmenu.init()}</code> if you are using blossom (just before <code></head></code>)</li> + <li>add the jquery library</li> <li>add <code>${'$'}{contextmenu.links()}</code> (just before <code></head></code>)</li> <li>add <code>${'$'}{contextmenu.scripts()}</code> (just before <code></body></code>)</li> - <li>add the jquery library</li> </ul> </p> </section> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <luc...@us...> - 2013-09-27 16:13:38
|
Revision: 4352 http://openutils.svn.sourceforge.net/openutils/?rev=4352&view=rev Author: lucaboati Date: 2013-09-27 16:13:35 +0000 (Fri, 27 Sep 2013) Log Message: ----------- add sortList script js via java Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/tags/MenuScripts.java Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/tags/MenuScripts.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/tags/MenuScripts.java 2013-09-27 13:53:16 UTC (rev 4351) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/tags/MenuScripts.java 2013-09-27 16:13:35 UTC (rev 4352) @@ -24,6 +24,7 @@ import info.magnolia.jcr.util.NodeUtil; import java.util.List; +import java.util.Map; import net.sourceforge.openutils.mgnlcontextmenu.configuration.ContextMenu; import net.sourceforge.openutils.mgnlcontextmenu.configuration.ContextMenuItem; @@ -64,6 +65,29 @@ out.append("</script>\n"); out.append("<!-- end contextmenu:scripts -->\n"); + out.append("<!-- start sortList script -->\n"); + out.append("<script type=\"text/javascript\">\n"); + out.append("jQuery(document).ready(function() {\n"); + List<Map<String, String>> items = (List<Map<String, String>>) MgnlContext + .getWebContext() + .getRequest() + .getAttribute("mgnlSortLists"); + if (items != null) + { + for (Map<String, String> item : items) + { + out.append("jQuery('#" + item.get("containerId") + "').sortList({\n"); + out.append(" url: '" + item.get("url") + "',\n"); + out.append(" path: '" + item.get("path") + "',\n"); + out.append(" name: '" + item.get("name") + "',\n"); + out.append(" order: " + item.get("order") + "\n"); + out.append("});\n"); + } + } + out.append("});\n"); + out.append("</script>\n"); + out.append("<!-- end sortList script -->\n"); + return out.toString(); } return StringUtils.EMPTY; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <luc...@us...> - 2013-09-27 13:53:20
|
Revision: 4351 http://openutils.svn.sourceforge.net/openutils/?rev=4351&view=rev Author: lucaboati Date: 2013-09-27 13:53:16 +0000 (Fri, 27 Sep 2013) Log Message: ----------- fix examples, refactoring addMenu Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/tags/ElementTag.java magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/META-INF/tld/mgnlcontextmenu.tld magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.formField.xml magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.simpleForm.xml magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.dialogs.samples-contextmenu-textmedia.xml magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.templates.pages.contextmenu-template-jsp.xml magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/website.sample-contextmenu.xml magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/paragraph-textmedia.jsp magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/css/jquery.contextMenu.css magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/js/contextmenu-addMenu.js Added Paths: ----------- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.media.xml magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.textmedia.xml magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.dialogs.samples-contextmenu-media.xml magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.templates.components.samples-contextmenu-media.xml magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/paragraph-media.jsp Removed Paths: ------------- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.samples-form-label.xml magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.samples-textmedia.xml Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/tags/ElementTag.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/tags/ElementTag.java 2013-09-26 17:14:07 UTC (rev 4350) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/java/net/sourceforge/openutils/mgnlcontextmenu/tags/ElementTag.java 2013-09-27 13:53:16 UTC (rev 4351) @@ -59,7 +59,18 @@ private String elementId; + private boolean usebody; + /** + * Sets the usebody. + * @param usebody the usebody to set + */ + public void setUsebody(boolean usebody) + { + this.usebody = usebody; + } + + /** * Sets the name. * @param name the name to set */ @@ -129,7 +140,7 @@ } } String value = !StringUtils.isEmpty(name) ? ContextMenuElFunctions.entryValue(node, name) : null; - if (!StringUtils.isEmpty(value)) + if (!StringUtils.isEmpty(value) && !usebody) { try { Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/META-INF/tld/mgnlcontextmenu.tld =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/META-INF/tld/mgnlcontextmenu.tld 2013-09-26 17:14:07 UTC (rev 4350) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/META-INF/tld/mgnlcontextmenu.tld 2013-09-27 13:53:16 UTC (rev 4351) @@ -63,6 +63,14 @@ <rtexprvalue>true</rtexprvalue> <type>boolean</type> </attribute> + <attribute> + <description> + <![CDATA[If true, the body is always rendered. false as default.]]> + </description> + <name>usebody</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> </tag> <tag> <description></description> Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.formField.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.formField.xml 2013-09-26 17:14:07 UTC (rev 4350) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.formField.xml 2013-09-27 13:53:16 UTC (rev 4351) @@ -71,7 +71,7 @@ <sv:value>2013-09-17T13:22:22.646+02:00</sv:value> </sv:property> </sv:node> - <sv:node sv:name="label"> + <sv:node sv:name="default"> <sv:property sv:name="jcr:primaryType" sv:type="Name"> <sv:value>mgnl:contentNode</sv:value> </sv:property> @@ -110,7 +110,7 @@ <sv:value>2010-05-18T18:22:45.406+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2013-09-17T14:14:38.290+02:00</sv:value> + <sv:value>2013-09-27T15:15:52.626+02:00</sv:value> </sv:property> </sv:node> </sv:node> Added: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.media.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.media.xml (rev 0) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.media.xml 2013-09-27 13:53:16 UTC (rev 4351) @@ -0,0 +1,118 @@ +<?xml version="1.0" encoding="UTF-8"?> +<sv:node sv:name="media" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>89494908-6f34-4bfb-85da-bc034b36b7ca</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mouseoverClass" sv:type="String"> + <sv:value>contextmenuOver</sv:value> + </sv:property> + <sv:property sv:name="mouseoverIcon" sv:type="String"> + <sv:value>/.resources/contextmenu/img/rightclicktoedit.png</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2010-05-18T18:22:08.296+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-09-27T15:23:35.343+02:00</sv:value> + </sv:property> + </sv:node> + <sv:node sv:name="items"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>dc341e8f-e651-4d8b-930f-dd8749c83d9d</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2010-05-18T18:22:40.359+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-09-27T15:23:32.245+02:00</sv:value> + </sv:property> + </sv:node> + <sv:node sv:name="default"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>07be96c1-f11c-489e-9441-ac8fc5fbfd0b</sv:value> + </sv:property> + <sv:property sv:name="controlType" sv:type="String"> + <sv:value>media</sv:value> + </sv:property> + <sv:property sv:name="icon" sv:type="String"> + <sv:value>/.resources/contextmenu/css/images/menu-media.png</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="text" sv:type="String"> + <sv:value>Edit media</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2010-05-18T18:22:45.406+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-09-27T15:23:49.307+02:00</sv:value> + </sv:property> + </sv:node> + </sv:node> + </sv:node> +</sv:node> Deleted: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.samples-form-label.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.samples-form-label.xml 2013-09-26 17:14:07 UTC (rev 4350) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.samples-form-label.xml 2013-09-27 13:53:16 UTC (rev 4351) @@ -1,167 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<sv:node sv:name="samples-form-label" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:contentNode</sv:value> - </sv:property> - <sv:property sv:name="jcr:mixinTypes" sv:type="Name"> - <sv:value>mix:lockable</sv:value> - </sv:property> - <sv:property sv:name="jcr:uuid" sv:type="String"> - <sv:value>c875ba96-57c4-4d74-87c7-81e4cc27f9bc</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:property sv:name="mouseoverClass" sv:type="String"> - <sv:value>contextmenuOver</sv:value> - </sv:property> - <sv:property sv:name="mouseoverIcon" sv:type="String"> - <sv:value>/.resources/contextmenu/img/rightclicktoedit.png</sv:value> - </sv:property> - <sv:node sv:name="MetaData"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:metaData</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:property sv:name="mgnl:activated" sv:type="Boolean"> - <sv:value>false</sv:value> - </sv:property> - <sv:property sv:name="mgnl:authorid" sv:type="String"> - <sv:value>superuser</sv:value> - </sv:property> - <sv:property sv:name="mgnl:creationdate" sv:type="Date"> - <sv:value>2010-05-18T18:22:08.296+02:00</sv:value> - </sv:property> - <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2010-05-26T15:35:24.250+02:00</sv:value> - </sv:property> - </sv:node> - <sv:node sv:name="items"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:contentNode</sv:value> - </sv:property> - <sv:property sv:name="jcr:mixinTypes" sv:type="Name"> - <sv:value>mix:lockable</sv:value> - </sv:property> - <sv:property sv:name="jcr:uuid" sv:type="String"> - <sv:value>f7f6a58e-2152-4653-bcc4-273d1dde5861</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:node sv:name="MetaData"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:metaData</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:property sv:name="mgnl:activated" sv:type="Boolean"> - <sv:value>false</sv:value> - </sv:property> - <sv:property sv:name="mgnl:authorid" sv:type="String"> - <sv:value>superuser</sv:value> - </sv:property> - <sv:property sv:name="mgnl:creationdate" sv:type="Date"> - <sv:value>2010-05-18T18:22:40.359+02:00</sv:value> - </sv:property> - <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2010-05-19T09:12:22.953+02:00</sv:value> - </sv:property> - </sv:node> - <sv:node sv:name="default"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:contentNode</sv:value> - </sv:property> - <sv:property sv:name="jcr:mixinTypes" sv:type="Name"> - <sv:value>mix:lockable</sv:value> - </sv:property> - <sv:property sv:name="jcr:uuid" sv:type="String"> - <sv:value>eaba62da-f46b-42a0-9460-822e8db7679c</sv:value> - </sv:property> - <sv:property sv:name="controlType" sv:type="String"> - <sv:value>edit</sv:value> - </sv:property> - <sv:property sv:name="globalEnabled" sv:type="Boolean"> - <sv:value>true</sv:value> - </sv:property> - <sv:property sv:name="icon" sv:type="String"> - <sv:value>/docroot/samples-contextmenu/ico16-form-label.png</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:property sv:name="text" sv:type="String"> - <sv:value>Edit label</sv:value> - </sv:property> - <sv:node sv:name="MetaData"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:metaData</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:property sv:name="mgnl:activated" sv:type="Boolean"> - <sv:value>false</sv:value> - </sv:property> - <sv:property sv:name="mgnl:authorid" sv:type="String"> - <sv:value>superuser</sv:value> - </sv:property> - <sv:property sv:name="mgnl:creationdate" sv:type="Date"> - <sv:value>2010-05-18T18:22:45.406+02:00</sv:value> - </sv:property> - <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2010-05-25T12:06:55.218+02:00</sv:value> - </sv:property> - </sv:node> - </sv:node> - <sv:node sv:name="help"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:contentNode</sv:value> - </sv:property> - <sv:property sv:name="jcr:mixinTypes" sv:type="Name"> - <sv:value>mix:lockable</sv:value> - </sv:property> - <sv:property sv:name="jcr:uuid" sv:type="String"> - <sv:value>e5f1cc52-79d4-4bd5-a8e4-67ed5dc32598</sv:value> - </sv:property> - <sv:property sv:name="controlType" sv:type="String"> - <sv:value>fckEdit</sv:value> - </sv:property> - <sv:property sv:name="globalEnabled" sv:type="Boolean"> - <sv:value>true</sv:value> - </sv:property> - <sv:property sv:name="icon" sv:type="String"> - <sv:value>/docroot/samples-contextmenu/ico16-form-help.png</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:property sv:name="text" sv:type="String"> - <sv:value>Edit help</sv:value> - </sv:property> - <sv:node sv:name="MetaData"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:metaData</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:property sv:name="mgnl:activated" sv:type="Boolean"> - <sv:value>false</sv:value> - </sv:property> - <sv:property sv:name="mgnl:authorid" sv:type="String"> - <sv:value>superuser</sv:value> - </sv:property> - <sv:property sv:name="mgnl:creationdate" sv:type="Date"> - <sv:value>2010-05-18T18:22:45.406+02:00</sv:value> - </sv:property> - <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2010-05-25T12:06:59.656+02:00</sv:value> - </sv:property> - </sv:node> - </sv:node> - </sv:node> -</sv:node> Deleted: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.samples-textmedia.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.samples-textmedia.xml 2013-09-26 17:14:07 UTC (rev 4350) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.samples-textmedia.xml 2013-09-27 13:53:16 UTC (rev 4351) @@ -1,161 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<sv:node sv:name="samples-textmedia" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:contentNode</sv:value> - </sv:property> - <sv:property sv:name="jcr:mixinTypes" sv:type="Name"> - <sv:value>mix:lockable</sv:value> - </sv:property> - <sv:property sv:name="jcr:uuid" sv:type="String"> - <sv:value>64758dc1-3878-4777-90d9-dc497cefff74</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:property sv:name="mouseoverClass" sv:type="String"> - <sv:value>contextmenuOver</sv:value> - </sv:property> - <sv:property sv:name="mouseoverIcon" sv:type="String"> - <sv:value>/.resources/contextmenu/img/rightclicktoedit.png</sv:value> - </sv:property> - <sv:node sv:name="MetaData"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:metaData</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:property sv:name="mgnl:activated" sv:type="Boolean"> - <sv:value>false</sv:value> - </sv:property> - <sv:property sv:name="mgnl:authorid" sv:type="String"> - <sv:value>superuser</sv:value> - </sv:property> - <sv:property sv:name="mgnl:creationdate" sv:type="Date"> - <sv:value>2010-05-18T18:22:08.296+02:00</sv:value> - </sv:property> - <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2010-05-26T15:35:01.234+02:00</sv:value> - </sv:property> - </sv:node> - <sv:node sv:name="items"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:contentNode</sv:value> - </sv:property> - <sv:property sv:name="jcr:mixinTypes" sv:type="Name"> - <sv:value>mix:lockable</sv:value> - </sv:property> - <sv:property sv:name="jcr:uuid" sv:type="String"> - <sv:value>7a2d8ee8-b4e1-4f38-a102-e11558bbee0d</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:node sv:name="MetaData"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:metaData</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:property sv:name="mgnl:activated" sv:type="Boolean"> - <sv:value>false</sv:value> - </sv:property> - <sv:property sv:name="mgnl:authorid" sv:type="String"> - <sv:value>superuser</sv:value> - </sv:property> - <sv:property sv:name="mgnl:creationdate" sv:type="Date"> - <sv:value>2010-05-18T18:22:40.359+02:00</sv:value> - </sv:property> - <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2010-05-20T14:58:48.843+02:00</sv:value> - </sv:property> - </sv:node> - <sv:node sv:name="text"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:contentNode</sv:value> - </sv:property> - <sv:property sv:name="jcr:mixinTypes" sv:type="Name"> - <sv:value>mix:lockable</sv:value> - </sv:property> - <sv:property sv:name="jcr:uuid" sv:type="String"> - <sv:value>670416b0-2b8f-4038-9622-e962fab64743</sv:value> - </sv:property> - <sv:property sv:name="controlType" sv:type="String"> - <sv:value>fckEdit</sv:value> - </sv:property> - <sv:property sv:name="icon" sv:type="String"> - <sv:value>/docroot/samples-contextmenu/ico16-text.png</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:property sv:name="text" sv:type="String"> - <sv:value>Edit text</sv:value> - </sv:property> - <sv:node sv:name="MetaData"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:metaData</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:property sv:name="mgnl:activated" sv:type="Boolean"> - <sv:value>false</sv:value> - </sv:property> - <sv:property sv:name="mgnl:authorid" sv:type="String"> - <sv:value>superuser</sv:value> - </sv:property> - <sv:property sv:name="mgnl:creationdate" sv:type="Date"> - <sv:value>2010-05-18T18:22:45.406+02:00</sv:value> - </sv:property> - <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2010-05-20T16:18:36.406+02:00</sv:value> - </sv:property> - </sv:node> - </sv:node> - <sv:node sv:name="media"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:contentNode</sv:value> - </sv:property> - <sv:property sv:name="jcr:mixinTypes" sv:type="Name"> - <sv:value>mix:lockable</sv:value> - </sv:property> - <sv:property sv:name="jcr:uuid" sv:type="String"> - <sv:value>6ce2923e-5add-4825-a73f-fc563642340e</sv:value> - </sv:property> - <sv:property sv:name="controlType" sv:type="String"> - <sv:value>media</sv:value> - </sv:property> - <sv:property sv:name="icon" sv:type="String"> - <sv:value>/docroot/samples-contextmenu/ico16-media.png</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:property sv:name="text" sv:type="String"> - <sv:value>Edit media</sv:value> - </sv:property> - <sv:node sv:name="MetaData"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:metaData</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:property sv:name="mgnl:activated" sv:type="Boolean"> - <sv:value>false</sv:value> - </sv:property> - <sv:property sv:name="mgnl:authorid" sv:type="String"> - <sv:value>superuser</sv:value> - </sv:property> - <sv:property sv:name="mgnl:creationdate" sv:type="Date"> - <sv:value>2010-05-18T18:22:45.406+02:00</sv:value> - </sv:property> - <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2010-05-20T16:18:41.562+02:00</sv:value> - </sv:property> - </sv:node> - </sv:node> - </sv:node> -</sv:node> Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.simpleForm.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.simpleForm.xml 2013-09-26 17:14:07 UTC (rev 4350) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.simpleForm.xml 2013-09-27 13:53:16 UTC (rev 4351) @@ -71,7 +71,7 @@ <sv:value>2013-09-17T14:16:19.712+02:00</sv:value> </sv:property> </sv:node> - <sv:node sv:name="label"> + <sv:node sv:name="default"> <sv:property sv:name="jcr:primaryType" sv:type="Name"> <sv:value>mgnl:contentNode</sv:value> </sv:property> @@ -110,7 +110,7 @@ <sv:value>2010-05-18T18:22:45.406+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2013-09-17T14:16:19.712+02:00</sv:value> + <sv:value>2013-09-27T14:36:17.882+02:00</sv:value> </sv:property> </sv:node> </sv:node> Added: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.textmedia.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.textmedia.xml (rev 0) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.contextMenus.textmedia.xml 2013-09-27 13:53:16 UTC (rev 4351) @@ -0,0 +1,161 @@ +<?xml version="1.0" encoding="UTF-8"?> +<sv:node sv:name="textmedia" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>0341c8c7-847d-431e-8cef-9a9f65eda64d</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mouseoverClass" sv:type="String"> + <sv:value>contextmenuOver</sv:value> + </sv:property> + <sv:property sv:name="mouseoverIcon" sv:type="String"> + <sv:value>/.resources/contextmenu/img/rightclicktoedit.png</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2010-05-18T18:22:08.296+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-09-23T16:45:29.480+02:00</sv:value> + </sv:property> + </sv:node> + <sv:node sv:name="items"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>83996ba7-d940-4711-a373-570177d83cd9</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2010-05-18T18:22:40.359+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-09-23T16:45:25.624+02:00</sv:value> + </sv:property> + </sv:node> + <sv:node sv:name="default"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>786d7968-fcd9-4a89-be96-b65170596548</sv:value> + </sv:property> + <sv:property sv:name="controlType" sv:type="String"> + <sv:value>edit</sv:value> + </sv:property> + <sv:property sv:name="icon" sv:type="String"> + <sv:value>/.resources/contextmenu/css/images/menu-text.png</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="text" sv:type="String"> + <sv:value>Edit text</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2010-05-18T18:22:45.406+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-09-27T14:37:33.878+02:00</sv:value> + </sv:property> + </sv:node> + </sv:node> + <sv:node sv:name="media"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>1f37dd88-4cc0-42ee-87e1-feb2ff99c491</sv:value> + </sv:property> + <sv:property sv:name="controlType" sv:type="String"> + <sv:value>media</sv:value> + </sv:property> + <sv:property sv:name="icon" sv:type="String"> + <sv:value>/.resources/contextmenu/css/images/menu-media.png</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="text" sv:type="String"> + <sv:value>Edit media</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2010-05-18T18:22:45.406+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-09-27T12:47:34.385+02:00</sv:value> + </sv:property> + </sv:node> + </sv:node> + </sv:node> +</sv:node> Added: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.dialogs.samples-contextmenu-media.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.dialogs.samples-contextmenu-media.xml (rev 0) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.dialogs.samples-contextmenu-media.xml 2013-09-27 13:53:16 UTC (rev 4351) @@ -0,0 +1,191 @@ +<?xml version="1.0" encoding="UTF-8"?> +<sv:node sv:name="samples-contextmenu-media" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>686f9a72-c7cf-4a4d-9539-b64befc65214</sv:value> + </sv:property> + <sv:property sv:name="i18nBasename" sv:type="String"> + <sv:value>net.sourceforge.openutils.mgnltestwebapp.lang.messages</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:Data" sv:type="String"> + <sv:value>MetaData</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activatorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="String"> + <sv:value>2004-11-02T15:34:43.213+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastaction" sv:type="Date"> + <sv:value>2008-04-28T23:43:10.557+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-09-27T15:25:56.791+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:title" sv:type="String"> + <sv:value/> + </sv:property> + </sv:node> + <sv:node sv:name="tabMedia"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>77a20766-9d41-48fb-9e2d-ecf27642dfaa</sv:value> + </sv:property> + <sv:property sv:name="controlType" sv:type="String"> + <sv:value>tab</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="label" sv:type="String"> + <sv:value>Media</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:Data" sv:type="String"> + <sv:value>MetaData</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activatorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="String"> + <sv:value>2004-11-02T15:34:29.217+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastaction" sv:type="Date"> + <sv:value>2008-06-19T14:49:08.436+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-09-27T15:26:20.074+02:00</sv:value> + </sv:property> + </sv:node> + <sv:node sv:name="dummy"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>dce924a0-98db-4993-8f83-5bc0e4a3f851</sv:value> + </sv:property> + <sv:property sv:name="controlType" sv:type="String"> + <sv:value>hidden</sv:value> + </sv:property> + <sv:property sv:name="defaultValue" sv:type="String"> + <sv:value>.</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="type" sv:type="String"> + <sv:value>String</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:Data" sv:type="String"> + <sv:value>MetaData</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activatorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="String"> + <sv:value>2004-11-02T15:34:29.357+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastaction" sv:type="Date"> + <sv:value>2008-07-07T14:56:33.437+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-09-27T15:25:53.582+02:00</sv:value> + </sv:property> + </sv:node> + </sv:node> + <sv:node sv:name="description"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>25c7805e-8223-4945-835e-bc15ba7be191</sv:value> + </sv:property> + <sv:property sv:name="controlType" sv:type="String"> + <sv:value>static</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="type" sv:type="String"> + <sv:value>String</sv:value> + </sv:property> + <sv:property sv:name="value" sv:type="String"> + <sv:value>Media are editable via context menu: just right click on the label</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:Data" sv:type="String"> + <sv:value>MetaData</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activatorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="String"> + <sv:value>2004-11-02T15:34:29.357+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastaction" sv:type="Date"> + <sv:value>2008-07-07T14:56:33.437+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-09-27T15:26:09.153+02:00</sv:value> + </sv:property> + </sv:node> + </sv:node> + </sv:node> +</sv:node> Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.dialogs.samples-contextmenu-textmedia.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.dialogs.samples-contextmenu-textmedia.xml 2013-09-26 17:14:07 UTC (rev 4350) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.dialogs.samples-contextmenu-textmedia.xml 2013-09-27 13:53:16 UTC (rev 4351) @@ -4,7 +4,7 @@ <sv:value>mgnl:contentNode</sv:value> </sv:property> <sv:property sv:name="jcr:uuid" sv:type="String"> - <sv:value>9b45b361-9122-4c4f-a43c-ee48a62b471f</sv:value> + <sv:value>4c541dd6-2577-4b53-99aa-0fe688063b2c</sv:value> </sv:property> <sv:property sv:name="i18nBasename" sv:type="String"> <sv:value>net.sourceforge.openutils.mgnltestwebapp.lang.messages</sv:value> @@ -38,18 +38,18 @@ <sv:value>2008-04-28T23:43:10.557+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2010-05-20T14:45:53.687+02:00</sv:value> + <sv:value>2013-09-27T15:19:52.894+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:title" sv:type="String"> <sv:value/> </sv:property> </sv:node> - <sv:node sv:name="tabText"> + <sv:node sv:name="tabTextMedia"> <sv:property sv:name="jcr:primaryType" sv:type="Name"> <sv:value>mgnl:contentNode</sv:value> </sv:property> <sv:property sv:name="jcr:uuid" sv:type="String"> - <sv:value>ab492338-a560-42e1-856d-f534faff5c7d</sv:value> + <sv:value>9793af28-e024-4eb9-8621-efa34a6455a3</sv:value> </sv:property> <sv:property sv:name="controlType" sv:type="String"> <sv:value>tab</sv:value> @@ -58,7 +58,7 @@ <sv:value>admin</sv:value> </sv:property> <sv:property sv:name="label" sv:type="String"> - <sv:value>Text</sv:value> + <sv:value>TextMedia</sv:value> </sv:property> <sv:node sv:name="MetaData"> <sv:property sv:name="jcr:primaryType" sv:type="Name"> @@ -86,28 +86,25 @@ <sv:value>2008-06-19T14:49:08.436+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2010-05-20T14:46:56.890+02:00</sv:value> + <sv:value>2013-09-27T15:26:34.965+02:00</sv:value> </sv:property> </sv:node> - <sv:node sv:name="text"> + <sv:node sv:name="dummy"> <sv:property sv:name="jcr:primaryType" sv:type="Name"> <sv:value>mgnl:contentNode</sv:value> </sv:property> <sv:property sv:name="jcr:uuid" sv:type="String"> - <sv:value>98d67fa7-2631-4356-8322-820f5ec4e3d3</sv:value> + <sv:value>cd6b9585-db46-42c5-b3af-158d09c82b17</sv:value> </sv:property> <sv:property sv:name="controlType" sv:type="String"> - <sv:value>fckEdit</sv:value> + <sv:value>hidden</sv:value> </sv:property> - <sv:property sv:name="description" sv:type="String"> - <sv:value>The text to display (also editable via context menu).</sv:value> + <sv:property sv:name="defaultValue" sv:type="String"> + <sv:value>.</sv:value> </sv:property> <sv:property sv:name="jcr:createdBy" sv:type="String"> <sv:value>admin</sv:value> </sv:property> - <sv:property sv:name="label" sv:type="String"> - <sv:value>Text</sv:value> - </sv:property> <sv:property sv:name="type" sv:type="String"> <sv:value>String</sv:value> </sv:property> @@ -137,78 +134,29 @@ <sv:value>2008-07-07T14:56:33.437+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2010-05-20T14:48:07.906+02:00</sv:value> + <sv:value>2013-09-27T15:18:50.239+02:00</sv:value> </sv:property> </sv:node> </sv:node> - </sv:node> - <sv:node sv:name="tabMedia"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:contentNode</sv:value> - </sv:property> - <sv:property sv:name="jcr:uuid" sv:type="String"> - <sv:value>8aff74b8-5ca1-48c0-a8df-8ce218e19dff</sv:value> - </sv:property> - <sv:property sv:name="controlType" sv:type="String"> - <sv:value>tab</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:property sv:name="label" sv:type="String"> - <sv:value>Media</sv:value> - </sv:property> - <sv:node sv:name="MetaData"> + <sv:node sv:name="description"> <sv:property sv:name="jcr:primaryType" sv:type="Name"> - <sv:value>mgnl:metaData</sv:value> - </sv:property> - <sv:property sv:name="jcr:createdBy" sv:type="String"> - <sv:value>admin</sv:value> - </sv:property> - <sv:property sv:name="mgnl:Data" sv:type="String"> - <sv:value>MetaData</sv:value> - </sv:property> - <sv:property sv:name="mgnl:activated" sv:type="Boolean"> - <sv:value>false</sv:value> - </sv:property> - <sv:property sv:name="mgnl:activatorid" sv:type="String"> - <sv:value>superuser</sv:value> - </sv:property> - <sv:property sv:name="mgnl:authorid" sv:type="String"> - <sv:value>superuser</sv:value> - </sv:property> - <sv:property sv:name="mgnl:creationdate" sv:type="String"> - <sv:value>2004-11-02T15:34:29.217+01:00</sv:value> - </sv:property> - <sv:property sv:name="mgnl:lastaction" sv:type="Date"> - <sv:value>2008-06-19T14:49:08.436+02:00</sv:value> - </sv:property> - <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2010-05-20T14:48:27.187+02:00</sv:value> - </sv:property> - </sv:node> - <sv:node sv:name="media"> - <sv:property sv:name="jcr:primaryType" sv:type="Name"> <sv:value>mgnl:contentNode</sv:value> </sv:property> <sv:property sv:name="jcr:uuid" sv:type="String"> - <sv:value>0484f652-5433-4cfc-8be7-59cca17b3659</sv:value> + <sv:value>7bac9722-2b8d-4e6f-82d6-3d931d5a8343</sv:value> </sv:property> <sv:property sv:name="controlType" sv:type="String"> - <sv:value>media</sv:value> + <sv:value>static</sv:value> </sv:property> - <sv:property sv:name="description" sv:type="String"> - <sv:value>The media to display (also editable via context menu).</sv:value> - </sv:property> <sv:property sv:name="jcr:createdBy" sv:type="String"> <sv:value>admin</sv:value> </sv:property> - <sv:property sv:name="label" sv:type="String"> - <sv:value>Media</sv:value> - </sv:property> <sv:property sv:name="type" sv:type="String"> <sv:value>String</sv:value> </sv:property> + <sv:property sv:name="value" sv:type="String"> + <sv:value>text and media are editable via context menu: just right click on the label</sv:value> + </sv:property> <sv:node sv:name="MetaData"> <sv:property sv:name="jcr:primaryType" sv:type="Name"> <sv:value>mgnl:metaData</sv:value> @@ -235,7 +183,7 @@ <sv:value>2008-07-07T14:56:33.437+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2010-05-20T14:49:30.203+02:00</sv:value> + <sv:value>2013-09-27T15:19:45.834+02:00</sv:value> </sv:property> </sv:node> </sv:node> Added: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.templates.components.samples-contextmenu-media.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.templates.components.samples-contextmenu-media.xml (rev 0) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.templates.components.samples-contextmenu-media.xml 2013-09-27 13:53:16 UTC (rev 4351) @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<sv:node sv:name="samples-contextmenu-media" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>08ce54f7-9e26-47e2-9908-e88c6db395a1</sv:value> + </sv:property> + <sv:property sv:name="description" sv:type="String"> + <sv:value>Sample paragraph showing media, editable via context menu.</sv:value> + </sv:property> + <sv:property sv:name="dialog" sv:type="String"> + <sv:value>contextmenu:samples-contextmenu-media</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="renderType" sv:type="String"> + <sv:value>jsp</sv:value> + </sv:property> + <sv:property sv:name="templateScript" sv:type="String"> + <sv:value>/templates/samples-contextmenu/paragraph-media.jsp</sv:value> + </sv:property> + <sv:property sv:name="title" sv:type="String"> + <sv:value>Media sample (jsp)</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2008-09-25T12:45:26.721+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-09-27T15:25:33.054+02:00</sv:value> + </sv:property> + </sv:node> +</sv:node> Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.templates.pages.contextmenu-template-jsp.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.templates.pages.contextmenu-template-jsp.xml 2013-09-26 17:14:07 UTC (rev 4350) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/config.modules.contextmenu.templates.pages.contextmenu-template-jsp.xml 2013-09-27 13:53:16 UTC (rev 4351) @@ -331,6 +331,43 @@ </sv:property> </sv:node> </sv:node> + <sv:node sv:name="samples-contextmenu-media"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>63c2c054-1867-4b07-99cd-dfb13537db8d</sv:value> + </sv:property> + <sv:property sv:name="id" sv:type="String"> + <sv:value>contextmenu:components/samples-contextmenu-media</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2012-03-21T07:32:14.200+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2013-09-27T15:27:18.091+02:00</sv:value> + </sv:property> + </sv:node> + </sv:node> </sv:node> </sv:node> </sv:node> Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/website.sample-contextmenu.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/website.sample-contextmenu.xml 2013-09-26 17:14:07 UTC (rev 4350) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-bootstrap-samples/contextmenu/website.sample-contextmenu.xml 2013-09-27 13:53:16 UTC (rev 4351) @@ -29,7 +29,7 @@ <sv:value>2010-05-18T14:33:10.812+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2013-09-18T12:52:41.534+02:00</sv:value> + <sv:value>2013-09-27T15:38:09.156+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:template" sv:type="String"> <sv:value>contextmenu:pages/contextmenu-template-jsp</sv:value> @@ -62,7 +62,7 @@ <sv:value>2010-05-18T16:43:29.812+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2013-09-18T12:52:41.534+02:00</sv:value> + <sv:value>2013-09-27T15:38:09.155+02:00</sv:value> </sv:property> </sv:node> <sv:node sv:name="0"> @@ -306,9 +306,6 @@ <sv:property sv:name="jcr:createdBy" sv:type="String"> <sv:value>admin</sv:value> </sv:property> - <sv:property sv:name="text" sv:type="String"> - <sv:value><p>I'm a text</p></sv:value> - </sv:property> <sv:node sv:name="MetaData"> <sv:property sv:name="jcr:primaryType" sv:type="Name"> <sv:value>mgnl:metaData</sv:value> @@ -323,7 +320,7 @@ <sv:value>2013-09-13T19:18:16.577+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:value>2013-09-13T19:27:55.818+02:00</sv:value> + <sv:value>2013-09-27T15:21:17.754+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:template" sv:type="String"> <sv:value>contextmenu:components/samples-contextmenu-textmedia</sv:value> @@ -365,10 +362,10 @@ <sv:property sv:name="jcr:uuid" sv:type="String"> <sv:value>f9c61bcf-32de-45c2-8ceb-1435e1411060</sv:value> </sv:property> - <sv:property sv:name="firstname" sv:type="String"> - <sv:value>First Name:</sv:value> + <sv:property sv:name="firstname-label" sv:type="String"> + <sv:value>asdad</sv:value> </sv:property> - <sv:property sv:name="firstname.help" sv:type="String"> + <sv:property sv:name="firstname_help" sv:type="String"> <sv:value><p>help!</p></sv:value> </sv:property> <sv:property sv:name="jcr:createdBy" sv:type="String"> @@ -388,7 +385,7 @@ <sv:value>2013-09-13T18:56:07.081+02:00</sv:value> </sv:property> <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> - <sv:val... [truncated message content] |
From: <luc...@us...> - 2013-09-26 17:14:13
|
Revision: 4350 http://openutils.svn.sourceforge.net/openutils/?rev=4350&view=rev Author: lucaboati Date: 2013-09-26 17:14:07 +0000 (Thu, 26 Sep 2013) Log Message: ----------- first mgnl5 empty webapp Added Paths: ----------- magnoliamodules/trunk/magnolia5-test-webapp/ magnoliamodules/trunk/magnolia5-test-webapp/pom.xml magnoliamodules/trunk/magnolia5-test-webapp/src/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/java/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/java/info/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/java/info/magnolia/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/java/info/magnolia/cms/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/java/info/magnolia/module/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/java/info/magnolia/module/delta/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/java/info/magnolia/module/delta/PropertyValuesTask.java magnoliamodules/trunk/magnolia5-test-webapp/src/main/java/info/magnolia/module/development/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/java/info/magnolia/module/development/DevModuleVersionHandler.java magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/META-INF/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/META-INF/magnolia/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/META-INF/magnolia/dev.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-bootstrap/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-bootstrap/adminInterface/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-bootstrap/adminInterface/config.server.i18n.authoringLegacy.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-bootstrap/dev/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-bootstrap/dev/config.modules.dev.dialogs.pages.t-homepage.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-bootstrap/dev/config.modules.dev.templates.pages.t-homepage.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-bootstrap/dev-dev/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-bootstrap/dev-dev/website.home.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-resources/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/net/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/net/sourceforge/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/net/sourceforge/openutils/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/net/sourceforge/openutils/mgnltestwebapp/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/net/sourceforge/openutils/mgnltestwebapp/lang/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/net/sourceforge/openutils/mgnltestwebapp/lang/messages.properties magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/tagcloud_indexing_configuration.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/bootstrap/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/bootstrap/config.modules.samples.templates.pages.samplesCriteria.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/bootstrap/config.modules.samples.templates.pages.samplesMagnoliaUtils.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/bootstrap/media.manyimages.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/bootstrap/userroles.criteria-dogsexcluded.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/bootstrap/userroles.criteria-dogsonly.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/bootstrap/users.admin.criteria-dogsexcluded.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/bootstrap/users.admin.criteria-dogsonly.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/bootstrap/website.Criteria.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/bootstrap/website.Magnolia-Utils.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/bootstrap/website.test-MEDIA-113.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/classes/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/config/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/config/default/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/config/default/log4j.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/config/default/magnolia.properties magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/config/default/repositories.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/config/jaas.config magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/config/repo-conf/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/config/repo-conf/jackrabbit-memory-search.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/jsps/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/jsps/expressions/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/jsps/expressions/evaluate.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/lib/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/lib/taglibs.zip magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/struts-config.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/tags/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/tags/openutils/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/tags/openutils/debug.tag magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/WEB-INF/web.xml magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/docroot/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/docroot/dateutils-test.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/docroot/elfunction-test.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/docroot/favicon.ico magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/docroot/robots.txt magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/docroot/samples-contextmenu/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/docroot/samples-contextmenu/ico16-form-hint.png magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/docroot/samples-contextmenu/ico16-form-label.png magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/docroot/samples-contextmenu/ico16-media.png magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/docroot/samples-contextmenu/ico16-text.png magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/docroot/samples-contextmenu/paragraph-form.css magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/docroot/samples-contextmenu/paragraph-form.js magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/docroot/samples-contextmenu/pointer.gif magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/template_criteria/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/template_criteria/criteria.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/template_magnoliautils/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/template_magnoliautils/magnoliaUtils.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/dev/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/dev/pages/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/dev/pages/t-homepage.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/dms/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/dms/paragraphs/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/dms/paragraphs/dms.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/areas/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/areas/footer.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/areas/list.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/areas/navigation.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/areas/single.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/components/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/components/fields.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/components/flash.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/components/howTo.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/components/link.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/components/linkList.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/components/searchResult.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/components/text.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/includes/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/includes/searchForm.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/macros/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/macros/navigation.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/pages/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/pages/main.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples/pages/virtualURI.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-contextmenu/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-contextmenu/paragraph-form.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-contextmenu/paragraph-message.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-contextmenu/paragraph-textmedia.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-contextmenu/template.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-controls/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-controls/area.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-controls/paragraph-buttonSet.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-controls/paragraph-dependentSelectList.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-controls/paragraph-grid.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-controls/template.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-expressions/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-expressions/paragraph-conditional.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-expressions/paragraph-evaluate.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-expressions/paragraph-grid.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-expressions/paragraph-if-then-else.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-expressions/template.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-lms/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-lms/courses.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-lms/coursesList.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-lms/index.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-media/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-media/area.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-media/paragraph-grid.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-media/paragraph-mediael.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-media/paragraph-mediatag.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-media/paragraph-playlist.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-media/template.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-mobile/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-mobile/index-ipad.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-mobile/index-mobile.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-mobile/index.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-mobile/p-sample-ipad.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-mobile/p-sample-mobile.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-mobile/p-sample.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-stripes/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-stripes/area.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-stripes/paragraph.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-stripes/template.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-struts11/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-struts11/area.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-struts11/paragraph.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-struts11/template.jsp magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-tagcloud/ magnoliamodules/trunk/magnolia5-test-webapp/src/main/webapp/templates/samples-tagcloud/template.jsp magnoliamodules/trunk/magnolia5-test-webapp/tree.txt Added: magnoliamodules/trunk/magnolia5-test-webapp/pom.xml =================================================================== --- magnoliamodules/trunk/magnolia5-test-webapp/pom.xml (rev 0) +++ magnoliamodules/trunk/magnolia5-test-webapp/pom.xml 2013-09-26 17:14:07 UTC (rev 4350) @@ -0,0 +1,309 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <parent> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-parent</artifactId> + <relativePath>../openutils-parent</relativePath> + <version>1.13</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <packaging>war</packaging> + <artifactId>magnolia5-test-webapp</artifactId> + <name>Magnolia test webapp</name> + <description>A basic Magnolia webapp that can be used while developing openutils magnolia modules</description> + <version>0.1-SNAPSHOT</version> + <dependencies> + <dependency> + <groupId>info.magnolia</groupId> + <artifactId>magnolia-core</artifactId> + <version>${magnolia.version}</version> + </dependency> + <dependency> + <groupId>info.magnolia</groupId> + <artifactId>magnolia-rendering</artifactId> + <version>${magnolia.version}</version> + </dependency> + <dependency> + <groupId>info.magnolia.ui</groupId> + <artifactId>magnolia-ui-admincentral</artifactId> + <version>${magnolia.version}</version> + </dependency> + <dependency> + <groupId>info.magnolia.ui</groupId> + <artifactId>magnolia-ui-contentapp</artifactId> + <version>${magnolia.version}</version> + </dependency> + <dependency> + <groupId>info.magnolia</groupId> + <artifactId>magnolia-module-legacy-admininterface</artifactId> + <version>5.0.2</version> + </dependency> + <dependency> + <groupId>info.magnolia.dam</groupId> + <artifactId>magnolia-dam</artifactId> + <version>1.0.2</version> + </dependency> + <!-- <dependency> --> + <!-- <groupId>info.magnolia</groupId> --> + <!-- <artifactId>magnolia-module-cache</artifactId> --> + <!-- <version>${magnolia.version2}</version> --> + <!-- <exclusions> --> + <!-- <exclusion> --> + <!-- <groupId>info.magnolia</groupId> --> + <!-- <artifactId>magnolia-module-admininterface</artifactId> --> + <!-- </exclusion> --> + <!-- </exclusions> --> + <!-- </dependency> --> + <dependency> + <groupId>info.magnolia</groupId> + <artifactId>magnolia-module-mail</artifactId> + <version>5.0.1</version> + </dependency> + <!-- <dependency> --> + <!-- <groupId>info.magnolia</groupId> --> + <!-- <artifactId>magnolia-module-fckeditor</artifactId> --> + <!-- <version>${magnolia.version2}</version> --> + <!-- </dependency> --> + <dependency> + <groupId>info.magnolia.activation</groupId> + <artifactId>magnolia-module-activation</artifactId> + <version>5.0</version> + </dependency> + <dependency> + <groupId>info.magnolia</groupId> + <artifactId>magnolia-templating</artifactId> + <version>${magnolia.version}</version> + </dependency> + <dependency> + <groupId>info.magnolia</groupId> + <artifactId>magnolia-templating-jsp</artifactId> + <version>${magnolia.version}</version> + </dependency> + <dependency> + <groupId>info.magnolia</groupId> + <artifactId>magnolia-jaas</artifactId> + <version>${magnolia.version}</version> + </dependency> + <dependency> + <groupId>info.magnolia</groupId> + <artifactId>magnolia-templating-jsp</artifactId> + <version>${magnolia.version}</version> + </dependency> + <dependency> + <groupId>info.magnolia.sample</groupId> + <artifactId>magnolia-sample-app</artifactId> + <version>${magnolia.version}</version> + </dependency> + <dependency> + <groupId>info.magnolia.security</groupId> + <artifactId>magnolia-security-app</artifactId> + <version>${magnolia.version}</version> + </dependency> + <dependency> + <groupId>info.magnolia.messages</groupId> + <artifactId>magnolia-messages-app</artifactId> + <version>${magnolia.version}</version> + </dependency> + <dependency> + <groupId>info.magnolia.pages</groupId> + <artifactId>magnolia-pages</artifactId> + <version>${magnolia.version}</version> + </dependency> + <!-- <dependency> <groupId>info.magnolia</groupId> <artifactId>magnolia-templating-samples</artifactId> <version>${magnolia.version}</version> + </dependency> <dependency> <groupId>info.magnolia</groupId> <artifactId>magnolia-templating-jsp</artifactId> <version>${magnolia.version}</version> + </dependency> <dependency> <groupId>info.magnolia</groupId> <artifactId>magnolia-module-exchange-simple</artifactId> <version>${magnolia.version}</version> + </dependency> <dependency> <groupId>info.magnolia</groupId> <artifactId>magnolia-gui</artifactId> <version>${magnolia.version}</version> + </dependency> <dependency> <groupId>info.magnolia</groupId> <artifactId>magnolia-module-fckeditor</artifactId> <version>${magnolia.version}</version> + </dependency> <dependency> <groupId>info.magnolia</groupId> <artifactId>magnolia-templating-editor</artifactId> <version>${magnolia.version}</version> + </dependency> --> + <dependency> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-log4j</artifactId> + <version>2.0.5</version> + </dependency> + <!-- <dependency> <groupId>info.magnolia</groupId> <artifactId>magnolia-module-dms</artifactId> <version>1.6</version> + </dependency> --> + <dependency> + <groupId>taglibs</groupId> + <artifactId>standard</artifactId> + <version>1.1.2</version> + </dependency> + <!-- <dependency> --> + <!-- <groupId>info.magnolia</groupId> --> + <!-- <artifactId>magnolia-module-standard-templating-kit</artifactId> --> + <!-- <version>${stk.version}</version> --> + <!-- </dependency> --> + <!-- info.magnolia.module.model.reader.ModuleDependencyException: Module Magnolia Standard Templating Kit Demo Project + (version 2.0.0) is dependent on categorization version null, which was not found. <dependency> <groupId>info.magnolia</groupId> + <artifactId>magnolia-demo-project</artifactId> <version>${stk.version}</version> </dependency> --> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <version>2.5</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>javax.servlet.jsp</groupId> + <artifactId>jsp-api</artifactId> + <version>2.1</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>commons-chain</groupId> + <artifactId>commons-chain</artifactId> + <version>1.2</version> + </dependency> + <dependency> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-elfunctions</artifactId> + <version>1.1.2</version> + </dependency> + <dependency> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-mgnlcriteria</artifactId> + <version>5.0.2-SNAPSHOT</version> + </dependency> +<!-- <dependency> --> +<!-- <groupId>net.sourceforge.openutils</groupId> --> +<!-- <artifactId>openutils-mgnlmedia</artifactId> --> +<!-- <version>5.0.3-SNAPSHOT</version> --> +<!-- </dependency> --> + <dependency> + <groupId>net.sourceforge.openutils</groupId> + <artifactId>openutils-mgnltasks</artifactId> + <version>5.0.1-SNAPSHOT</version> + </dependency> + <!-- <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnlbootstrapsync</artifactId> <version>5.0.0-SNAPSHOT</version> + </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnlcas</artifactId> <version>5.0.0-SNAPSHOT</version> + </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnlcontrols</artifactId> <version>5.0.1-SNAPSHOT</version> + </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnlcache</artifactId> <version>5.0.0-SNAPSHOT</version> + </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnlext</artifactId> <version>5.0.0-SNAPSHOT</version> + </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnlgroovy</artifactId> <version>5.0.1-SNAPSHOT</version> + </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnlmedia</artifactId> <version>5.0.3-SNAPSHOT</version> + </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnlmessages</artifactId> <version>5.0.2-SNAPSHOT</version> + </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnlrepoutils</artifactId> + <version>5.0.0-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnlstripes</artifactId> + <version>5.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnlstruts11</artifactId> + <version>5.0.0-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnltasks</artifactId> + <version>5.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnlutils</artifactId> + <version>5.0.2-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnltagcloud</artifactId> + <version>5.0.2-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnlrules</artifactId> + <version>5.0.0-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnlcontextmenu</artifactId> + <version>5.0.0-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnllms</artifactId> + <version>5.0.0-SNAPSHOT</version> </dependency> --> + <!-- <dependency> <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-mgnlmobile</artifactId> <version>5.0.0-SNAPSHOT</version> + </dependency> --> + </dependencies> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>pdfbox</groupId> + <artifactId>pdfbox</artifactId> + <version>0.7.3</version> + <scope>provided</scope> + <!-- exclude from webapp, org.apache.pdfbox:pdfbox 1.0.0 is needed for thumbnail generation --> + </dependency> + <dependency> + <groupId>org.apache.pdfbox</groupId> + <artifactId>pdfbox</artifactId> + <version>1.4.0</version> + </dependency> + <dependency> + <groupId>org.apache.jackrabbit</groupId> + <artifactId>jackrabbit-core</artifactId> + <version>${jackrabbit.version}</version> + </dependency> + <dependency> + <groupId>org.apache.jackrabbit</groupId> + <artifactId>jackrabbit-api</artifactId> + <version>${jackrabbit.version}</version> + </dependency> + <dependency> + <groupId>javax.jcr</groupId> + <artifactId>jcr</artifactId> + <version>2.0</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>1.6.1</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.6.1</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>jcl-over-slf4j</artifactId> + <version>1.6.1</version> + </dependency> + <dependency> + <groupId>org.devlib.schmidt</groupId> + <artifactId>imageinfo</artifactId> + <version>1.9</version> + </dependency> + </dependencies> + </dependencyManagement> + <properties> + <magnolia.version>5.0.4</magnolia.version> + <magnolia.version2>5.0-prev1-rc1</magnolia.version2> + <!-- <magnolia.version2>5.0.4</magnolia.version2> --> + <stk.version>2.5.3</stk.version> + <jackrabbit.version>2.6.2</jackrabbit.version> + </properties> + <build> + <plugins> + <plugin> + <artifactId>maven-eclipse-plugin</artifactId> + <version>2.9</version> + <configuration> + <wtpContextName>open</wtpContextName> + <classpathContainers> + <classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer> + <classpathContainer><![CDATA[org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0]]></classpathContainer> + </classpathContainers> + </configuration> + </plugin> + </plugins> + </build> + <repositories> + <repository> + <id>magnolia.enterprise</id> + <url>http://repo.magnolia-cms.com/enterprise</url> + <snapshots> + <enabled>false</enabled> + </snapshots> + </repository> + <repository> + <id>repository.magnolia-cms.com</id> + <name>magnolia repository</name> + <url>http://nexus.magnolia-cms.com/content/groups/public</url> + <releases> + <enabled>true</enabled> + </releases> + <snapshots> + <enabled>false</enabled> + </snapshots> + </repository> + <repository> + <id>magnolia.enterprise.releases</id> + <url>http://nexus.magnolia-cms.com/content/repositories/magnolia.enterprise.releases</url> + <snapshots> + <enabled>false</enabled> + </snapshots> + </repository> + <repository> + <id>openutils.sourceforge.net</id> + <name>openutils.sourceforge.net</name> + <url>http://openutils.sourceforge.net/repository/releases</url> + <releases> + <enabled>true</enabled> + </releases> + <snapshots> + <enabled>false</enabled> + </snapshots> + </repository> + </repositories> +</project> \ No newline at end of file Added: magnoliamodules/trunk/magnolia5-test-webapp/src/main/java/info/magnolia/module/delta/PropertyValuesTask.java =================================================================== --- magnoliamodules/trunk/magnolia5-test-webapp/src/main/java/info/magnolia/module/delta/PropertyValuesTask.java (rev 0) +++ magnoliamodules/trunk/magnolia5-test-webapp/src/main/java/info/magnolia/module/delta/PropertyValuesTask.java 2013-09-26 17:14:07 UTC (rev 4350) @@ -0,0 +1,185 @@ +/** + * This file Copyright (c) 2003-2013 Magnolia International + * Ltd. (http://www.magnolia-cms.com). All rights reserved. + * + * + * This file is dual-licensed under both the Magnolia + * Network Agreement and the GNU General Public License. + * You may elect to use one or the other of these licenses. + * + * This file is distributed in the hope that it will be + * useful, but AS-IS and WITHOUT ANY WARRANTY; without even the + * implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE, TITLE, or NONINFRINGEMENT. + * Redistribution, except as permitted by whichever of the GPL + * or MNA you select, is prohibited. + * + * 1. For the GPL license (GPL), you can redistribute and/or + * modify this file under the terms of the GNU General + * Public License, Version 3, as published by the Free Software + * Foundation. You should have received a copy of the GNU + * General Public License, Version 3 along with this program; + * if not, write to the Free Software Foundation, Inc., 51 + * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * 2. For the Magnolia Network Agreement (MNA), this file + * and the accompanying materials are made available under the + * terms of the MNA which accompanies this distribution, and + * is available at http://www.magnolia-cms.com/mna.html + * + * Any modifications to this file must keep this entire header + * intact. + * + */ +package info.magnolia.module.delta; + +import info.magnolia.cms.core.Content; +import info.magnolia.cms.core.NodeData; +import info.magnolia.jcr.util.PropertyUtil; +import info.magnolia.module.InstallContext; + +import java.text.MessageFormat; +import java.util.Arrays; +import java.util.Collection; + +import javax.jcr.Node; +import javax.jcr.Property; +import javax.jcr.RepositoryException; + +import org.apache.commons.lang.StringUtils; + + +/** + * A tasks that offers helper methods to check on certain properties. + * + * @author gjoseph + * @version $Revision: $ ($Author: $) + */ +public abstract class PropertyValuesTask extends AbstractTask { + + public PropertyValuesTask(String name, String description) { + super(name, description); + } + + /** + * Checks that the given String property has the expected value. Changes it if so, logs otherwise. + */ + protected void checkAndModifyPropertyValue(InstallContext ctx, Content node, String propertyName, String expectedCurrentValue, String newValue) throws RepositoryException { + checkAndModifyPropertyValue(ctx, node.getJCRNode(), propertyName, Arrays.asList(expectedCurrentValue), newValue); + } + + /** + * Checks that the given String property has the expected value. Changes it if so, logs otherwise. + */ + protected void checkAndModifyPropertyValue(InstallContext ctx, Node node, String propertyName, String expectedCurrentValue, String newValue) throws RepositoryException { + checkAndModifyPropertyValue(ctx, node, propertyName, Arrays.asList(expectedCurrentValue), newValue); + } + + + /** + * Checks that the given String property has one of the expected values. Changes it if so, logs otherwise. + */ + protected void checkAndModifyPropertyValue(InstallContext ctx, Node node, String propertyName, Collection<String> expectedCurrentValues, String newValue) throws RepositoryException { + if (node.hasProperty(propertyName)) { + final Property prop = node.getProperty(propertyName); + final String currentvalue = prop.getString(); + if (expectedCurrentValues.contains(currentvalue)) { + prop.setValue(newValue); + } else { + String msg; + if (expectedCurrentValues.size() == 1){ + msg = format("Property \"{0}\" was expected to exist at {1} with value \"{2}\" but has the value \"{3}\" instead.", + propertyName, node.getPath(), expectedCurrentValues.iterator().next(), currentvalue); + } else { + msg = format("Property \"{0}\" was expected to exist at {1} with one of values {2} but has the value \"{3}\" instead.", + propertyName, node.getPath(), expectedCurrentValues.toString(), currentvalue); + } + ctx.warn(msg); + } + } else { + String msg; + if (expectedCurrentValues.size() == 1){ + msg = format("Property \"{0}\" was expected to exist at {1} with value \"{2}\" but does not exist.", + propertyName, node.getPath(), expectedCurrentValues.iterator().next()); + } else { + msg = format("Property \"{0}\" was expected to exist at {1} with one of values {2} but does not exist.", + propertyName, node.getPath(), expectedCurrentValues.toString()); + } + ctx.warn(msg); + } + } + + /** + * Checks if property contains concrete string. If contains then change this part of string, logs otherwise. + */ + protected void checkAndModifyPartOfPropertyValue(InstallContext ctx, Node node, String propertyName, String expectedValue, String newValue) throws RepositoryException { + if(node.hasProperty(propertyName)){ + final Property prop = node.getProperty(propertyName); + final String currentvalue = prop.getString(); + if(currentvalue.contains(expectedValue)) { + prop.setValue(StringUtils.replace(currentvalue, expectedValue, newValue)); + } else { + final String msg = format("Property \"{0}\" was expected to exist at {1} with part string \"{2}\" but does not contain this string.", + propertyName, node.getPath(), expectedValue); + ctx.warn(msg); + } + } else { + final String msg = format("Property \"{0}\" was expected to exist at {1} with part string \"{2}\" but does not exist.", + propertyName, node.getPath(), expectedValue); + ctx.warn(msg); + } + } + + protected void checkOrCreateProperty(InstallContext ctx, Content node, String propertyName, String expectedValue) throws RepositoryException { + if (node.hasNodeData(propertyName)) { + final NodeData prop = node.getNodeData(propertyName); + final String currentvalue = prop.getString(); + if (!currentvalue.equals(expectedValue)) { + final String msg = format("Property \"{0}\" was expected to exist at {1} with value \"{2}\" but {3,choice,0#does not exist|1#has the value \"{4}\" instead}.", + propertyName, node.getHandle(), expectedValue, Integer.valueOf(prop.isExist() ? 1 : 0), + currentvalue); + ctx.warn(msg); + } + } else { + node.createNodeData(propertyName, expectedValue); + } + } + + /** + * Checks that the given property does not exist and creates it with the given value, logs otherwise. + */ + @Deprecated + protected void newProperty(InstallContext ctx, Content node, String propertyName, String value) throws RepositoryException { + newProperty(ctx, node.getJCRNode(), propertyName, value); + } + + /** + * Checks that the given property does not exist and creates it with the given value, logs otherwise. + */ + protected void newProperty(InstallContext ctx, Node node, String propertyName, Object value) throws RepositoryException { + + if(node != null ) + { + if (!node.hasProperty(propertyName)) { + PropertyUtil.setProperty(node, propertyName, value); + } else { + final String msg = format("Property \"{0}\" was expected not to exist at {1}, but exists with value \"{2}\" and was going to be created with value \"{3}\".", + propertyName, node.getPath(), node.getProperty(propertyName).getValue().getString(), value); + ctx.warn(msg); + } + } + } + + // TODO move this to the InstallContext interface ? + protected String format(String pattern, Object arg0, Object arg1, Object arg2, Object arg3, Object arg4) { + return MessageFormat.format(pattern, new Object[]{arg0, arg1, arg2, arg3, arg4}); + } + + protected String format(String pattern, Object arg0, Object arg1, Object arg2, Object arg3) { + return format(pattern, arg0, arg1, arg2, arg3, null); + } + + protected String format(String pattern, Object arg0, Object arg1, Object arg2) { + return format(pattern, arg0, arg1, arg2, null); + } +} Added: magnoliamodules/trunk/magnolia5-test-webapp/src/main/java/info/magnolia/module/development/DevModuleVersionHandler.java =================================================================== --- magnoliamodules/trunk/magnolia5-test-webapp/src/main/java/info/magnolia/module/development/DevModuleVersionHandler.java (rev 0) +++ magnoliamodules/trunk/magnolia5-test-webapp/src/main/java/info/magnolia/module/development/DevModuleVersionHandler.java 2013-09-26 17:14:07 UTC (rev 4350) @@ -0,0 +1,46 @@ +package info.magnolia.module.development; + +import info.magnolia.cms.core.SystemProperty; +import info.magnolia.module.DefaultModuleVersionHandler; +import info.magnolia.module.InstallContext; +import info.magnolia.module.delta.SetPropertyTask; +import info.magnolia.module.delta.Task; + +import java.util.ArrayList; +import java.util.List; + + +/** + * A simple version handler used to set up a few config options during development + * @author fgiust + * @version $Revision: 3084 $ ($Author: fgiust $) + */ +public class DevModuleVersionHandler extends DefaultModuleVersionHandler +{ + + /** + * {@inheritDoc} + */ + @Override + protected List<Task> getStartupTasks(InstallContext installContext) + { + List<Task> tasks = new ArrayList<Task>(); + + boolean develop = SystemProperty.getBooleanProperty("magnolia.develop"); + + if (develop) + { + tasks.add(new SetPropertyTask( + "config", + "/server/activation/subscribers/magnoliaPublic8080", + "active", + "false")); + + } + + // I hate spending time in looking through the unsorted list of modules... +// tasks.add(new NodeSortTask(ContentRepository.CONFIG, "/modules")); + + return tasks; + } +} Added: magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/META-INF/magnolia/dev.xml =================================================================== --- magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/META-INF/magnolia/dev.xml (rev 0) +++ magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/META-INF/magnolia/dev.xml 2013-09-26 17:14:07 UTC (rev 4350) @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE module SYSTEM "module.dtd" > +<module> + <name>dev</name> + <displayName>dev</displayName> + <versionHandler>info.magnolia.module.development.DevModuleVersionHandler</versionHandler> + <version>${project.version}</version> + <dependencies> + <dependency> + <name>core</name> + <version>5.0/*</version> + </dependency> + <dependency> + <name>rendering</name> + <version>5.0/*</version> + </dependency> + <dependency> + <name>ui-admincentral</name> + <version>5.0/*</version> + </dependency> + <dependency> + <name>activation</name> + <version>1.0/*</version> + <optional>true</optional> + </dependency> +<!-- <dependency> --> +<!-- <name>cache</name> --> +<!-- <version>5.0/*</version> --> +<!-- </dependency> --> + </dependencies> +</module> \ No newline at end of file Added: magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-bootstrap/adminInterface/config.server.i18n.authoringLegacy.xml =================================================================== --- magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-bootstrap/adminInterface/config.server.i18n.authoringLegacy.xml (rev 0) +++ magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-bootstrap/adminInterface/config.server.i18n.authoringLegacy.xml 2013-09-26 17:14:07 UTC (rev 4350) @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<sv:node sv:name="authoringLegacy" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>2912ce6d-66f5-415a-9be4-9cf02876df14</sv:value> + </sv:property> + <sv:property sv:name="class" sv:type="String"> + <sv:value>info.magnolia.cms.gui.i18n.DefaultI18nAuthoringSupport</sv:value> + </sv:property> + <sv:property sv:name="enabled" sv:type="Boolean"> + <sv:value>true</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:created" sv:type="Date"> + <sv:value>2010-02-09T10:28:52.155+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastModified" sv:type="Date"> + <sv:value>2013-06-28T11:46:43.249+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastModifiedBy" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> +</sv:node> Added: magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-bootstrap/dev/config.modules.dev.dialogs.pages.t-homepage.xml =================================================================== --- magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-bootstrap/dev/config.modules.dev.dialogs.pages.t-homepage.xml (rev 0) +++ magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-bootstrap/dev/config.modules.dev.dialogs.pages.t-homepage.xml 2013-09-26 17:14:07 UTC (rev 4350) @@ -0,0 +1,332 @@ +<?xml version="1.0" encoding="UTF-8"?> +<sv:node sv:name="t-homepage" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>3e7e9b4e-6010-495f-8bae-ccc5b5dbfaa3</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activationStatus" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:created" sv:type="String"> + <sv:value>2004-11-02T15:34:23.417+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastActivated" sv:type="Date"> + <sv:value>2008-04-08T10:00:10.379+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastActivatedBy" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastModified" sv:type="Date"> + <sv:value>2008-11-07T14:23:43.863+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastModifiedBy" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:node sv:name="actions"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>3e23ee11-5a58-433e-b7c8-ad4d6ee9c201</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:node sv:name="commit"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>706e89a9-b507-47a8-9791-e378187b63f6</sv:value> + </sv:property> + <sv:property sv:name="class" sv:type="String"> + <sv:value>info.magnolia.ui.admincentral.dialog.action.SaveDialogActionDefinition</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="label" sv:type="String"> + <sv:value>save changes</sv:value> + </sv:property> + </sv:node> + <sv:node sv:name="cancel"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>f3df5fd0-7455-4923-8404-dd84258bf72b</sv:value> + </sv:property> + <sv:property sv:name="class" sv:type="String"> + <sv:value>info.magnolia.ui.admincentral.dialog.action.CancelDialogActionDefinition</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="label" sv:type="String"> + <sv:value>cancel</sv:value> + </sv:property> + </sv:node> + </sv:node> + <sv:node sv:name="form"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>5a9f04f0-c657-4146-8138-892aaf47b227</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="label" sv:type="String"> + <sv:value>Generic</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastModified" sv:type="Date"> + <sv:value>2013-09-11T16:24:58.035+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastModifiedBy" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:node sv:name="tabs"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>3b750242-6abb-438c-a88a-633583056caf</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:node sv:name="tabMain"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>58cd44ce-bf3f-46ab-9f20-9f488b07e406</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="label" sv:type="String"> + <sv:value>Main</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activationStatus" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:created" sv:type="String"> + <sv:value>2004-11-03T08:47:58.474+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastActivated" sv:type="Date"> + <sv:value>2008-04-08T10:00:10.380+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastActivatedBy" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastModified" sv:type="Date"> + <sv:value>2013-09-11T16:25:10.648+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastModifiedBy" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:node sv:name="fields"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>9487f91c-362d-4ce1-9ca6-6528669a8c67</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:node sv:name="title"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>99a369af-60b0-45f1-85cb-e656a798b368</sv:value> + </sv:property> + <sv:property sv:name="class" sv:type="String"> + <sv:value>info.magnolia.ui.form.field.definition.TextFieldDefinition</sv:value> + </sv:property> + <sv:property sv:name="description" sv:type="String"> + <sv:value>Title</sv:value> + </sv:property> + <sv:property sv:name="i18n" sv:type="Boolean"> + <sv:value>true</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="label" sv:type="String"> + <sv:value>Title</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activationStatus" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:created" sv:type="String"> + <sv:value>2004-11-02T17:20:40.266+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastActivated" sv:type="Date"> + <sv:value>2008-04-08T10:00:10.381+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastActivatedBy" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastModified" sv:type="Date"> + <sv:value>2013-09-11T16:36:53.965+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastModifiedBy" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="required" sv:type="String"> + <sv:value>true</sv:value> + </sv:property> + <sv:property sv:name="type" sv:type="String"> + <sv:value>String</sv:value> + </sv:property> + </sv:node> + <sv:node sv:name="logoImg"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>43ed28d8-7d0f-4567-a1c6-dbb501a4003f</sv:value> + </sv:property> + <sv:property sv:name="appName" sv:type="String"> + <sv:value>assets</sv:value> + </sv:property> + <sv:property sv:name="class" sv:type="String"> + <sv:value>info.magnolia.ui.form.field.definition.LinkFieldDefinition</sv:value> + </sv:property> + <sv:property sv:name="description" sv:type="String"> + <sv:value>Select an asset</sv:value> + </sv:property> + <sv:property sv:name="i18nBasename" sv:type="String"> + <sv:value>info.magnolia.module.templatingkit.messages</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="label" sv:type="String"> + <sv:value>Logo Img</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activationStatus" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:created" sv:type="String"> + <sv:value>2004-11-03T08:48:09.632+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastActivated" sv:type="Date"> + <sv:value>2006-05-01T21:47:58.230+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastActivatedBy" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastModified" sv:type="Date"> + <sv:value>2013-09-11T16:37:14.756+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastModifiedBy" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="targetWorkspace" sv:type="String"> + <sv:value>dam</sv:value> + </sv:property> + <sv:node sv:name="identifierToPathConverter"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>5a533617-ff07-4498-add1-e28fb81d2c3b</sv:value> + </sv:property> + <sv:property sv:name="class" sv:type="String"> + <sv:value>info.magnolia.dam.app.assets.field.translator.AssetCompositeIdKeyTranslator</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + </sv:node> + <sv:node sv:name="contentPreviewDefinition"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>02e799c3-fe52-4372-a45d-82de41a508b3</sv:value> + </sv:property> + <sv:property sv:name="contentPreviewClass" sv:type="String"> + <sv:value>info.magnolia.dam.asset.field.DamFilePreviewComponent</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + </sv:node> + </sv:node> + <sv:node sv:name="hideInNav"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>61dbeeca-b01f-4f06-9d07-ae5ff24f1d45</sv:value> + </sv:property> + <sv:property sv:name="extends" sv:type="String"> + <sv:value>/modules/dev/dialogs/generic/controls/hideInNav</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activationStatus" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:created" sv:type="Date"> + <sv:value>2008-10-08T15:23:21.732+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastModified" sv:type="Date"> + <sv:value>2013-09-11T16:38:32.337+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastModifiedBy" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + </sv:node> + </sv:node> + </sv:node> + <sv:node sv:name="tabMetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>6674e855-9579-4675-a04d-d88a1905d1a4</sv:value> + </sv:property> + <sv:property sv:name="extends" sv:type="String"> + <sv:value>/modules/standard-templating-kit/dialogs/generic/pages/tabMetaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activationStatus" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:created" sv:type="String"> + <sv:value>2004-11-03T08:47:58.474+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastActivated" sv:type="Date"> + <sv:value>2008-04-08T10:00:10.380+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastActivatedBy" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastModified" sv:type="Date"> + <sv:value>2009-01-30T15:12:13.280+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastModifiedBy" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + </sv:node> + </sv:node> + </sv:node> +</sv:node> Added: magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-bootstrap/dev/config.modules.dev.templates.pages.t-homepage.xml =================================================================== --- magnoliamodules/trunk/magnolia5-test-webapp/src/main/resources/mgnl-bootstrap/dev/config.modules.dev.templates.pages.t-home... [truncated message content] |
From: <luc...@us...> - 2013-09-26 16:23:55
|
Revision: 4349 http://openutils.svn.sourceforge.net/openutils/?rev=4349&view=rev Author: lucaboati Date: 2013-09-26 16:23:50 +0000 (Thu, 26 Sep 2013) Log Message: ----------- fix textmedia, refactoring addMenu, e sortList Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/paragraph-form.jsp magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/paragraph-textmedia.jsp magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/js/contextmenu-addMenu.js magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/js/contextmenu-sortList.js Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/paragraph-form.jsp =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/paragraph-form.jsp 2013-09-26 16:10:45 UTC (rev 4348) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/paragraph-form.jsp 2013-09-26 16:23:50 UTC (rev 4349) @@ -21,6 +21,8 @@ </label> <div class="col-lg-4"> <input name="firstname" id="firstname" type="text" /> + <c:set var="desc" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'firstname.description')}" /> + ${desc} <c:set var="help" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'firstname.help')}" /> <c:if test="${not empty help}"> <span class="help"> @@ -35,6 +37,8 @@ </label> <div class="col-lg-4"> <input name="lastname" id="lastname" type="text" /> + <c:set var="desc" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'lastname.description')}" /> + ${desc} <c:set var="help" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'lastname.help')}" /> <c:if test="${not empty help}"> <span class="help"> @@ -49,6 +53,8 @@ </label> <div class="col-lg-4"> <input name="email" id="email" type="text" /> + <c:set var="desc" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'email.description')}" /> + ${desc} <c:set var="help" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'email.help')}" /> <c:if test="${not empty help}"> <span class="help"> @@ -72,6 +78,8 @@ <option value="1942">1942</option> <option value="1999">1999</option> </select> + <c:set var="desc" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'year.description')}" /> + ${desc} <c:set var="help" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'year.help')}" /> <c:if test="${not empty help}"> <span class="help"> @@ -86,6 +94,8 @@ </label> <div class="col-lg-4"> <input name="username" id="username" type="text" /> + <c:set var="desc" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'username.description')}" /> + ${desc} <c:set var="help" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'username.help')}" /> <c:if test="${not empty help}"> <span class="help"> @@ -100,6 +110,8 @@ </label> <div class="col-lg-4"> <input name="password" id="password" type="password" /> + <c:set var="desc" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'password.description')}" /> + ${desc} <c:set var="help" value="${contextmenu:entryValue(cmsfn:asJCRNode(content), 'password.help')}" /> <c:if test="${not empty help}"> <span class="help"> Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/paragraph-textmedia.jsp =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/paragraph-textmedia.jsp 2013-09-26 16:10:45 UTC (rev 4348) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-files/templates/samples-contextmenu/paragraph-textmedia.jsp 2013-09-26 16:23:50 UTC (rev 4349) @@ -7,13 +7,11 @@ <h3>Text/media sample (jsp)</h3> <p>Right click to edit text or media</p> <pre> - <![CDATA[<contextmenu:element menu="textmedia" name="media" >${'$'}{cmsfn:decode(content).text}</contextmenu:element>]]> + <![CDATA[<contextmenu:element menu="textmedia" name="text" >${'$'}{cmsfn:decode(content).text}</contextmenu:element>]]> </pre> <div class="testcontent"> <div style="float: left; margin-right: 10px;"> - <contextmenu:element menu="textmedia" name="media" wrapper="div"> - <media:media item="${content.media}" width="320" height="240" /> - </contextmenu:element> + <media:media item="${node.media}" width="60" height="60" /> </div> <contextmenu:element menu="textmedia" name="text" wrapper="div">${cmsfn:decode(content).text} </contextmenu:element> Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/js/contextmenu-addMenu.js =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/js/contextmenu-addMenu.js 2013-09-26 16:10:45 UTC (rev 4348) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/js/contextmenu-addMenu.js 2013-09-26 16:23:50 UTC (rev 4349) @@ -21,68 +21,53 @@ }); jQuery.each(mgnlEditMessages, function(id, info){ + var menu; + var menuName = info.contextMenu || 'default'; + jQuery.each(mgnlContextMenuInfo.menus, function(){ + if (this.name == menuName) { + menu = this; + } + }); + var initTrigger = function(trigger){ - $(trigger).contextMenu({ + jQuery(trigger).contextMenu({ menu: 'contextmenu-' + (info.contextMenu || 'default'), showCallback: info.showCallback - }, function(action) { - switch (action){ - case 'default': - case 'text': - case 'header': - mgnlOpenDialogEx(info.path,null,null,null,'website','.magnolia/dialogs/contextmenu-edit.html',null,null,null,{ - entryName: info.key - }); - break; - case 'fckText': - mgnlOpenDialogEx(info.path,null,null,null,'website','.magnolia/dialogs/contextmenu-fckEdit.html',null,null,null,{ - entryName: info.key, - enterMode: info.enterMode - }); - break; - case 'label': - mgnlOpenDialogEx(info.path,null,null,null,'website','.magnolia/dialogs/contextmenu-edit.html',null,null,null,{ - entryName: info.key - }); - break; - case 'description': - mgnlOpenDialogEx(info.path,null,null,null,'website','.magnolia/dialogs/contextmenu-edit.html',null,null,null,{ - entryName: info.key + '.description' - }); - break; - case 'media': - mgnlOpenDialogEx(info.path,null,null,null,'website','.magnolia/dialogs/contextmenu-media.html',null,null,null,{ - entryName: info.key - }); - break; - case 'textmedia': - // TO BE FIX - mgnlOpenDialogEx(info.path,null,null,null,'website','.magnolia/dialogs/samples-contextmenu-textmedia.html',null,null,null,{ - entryName: info.key - }); - break; - case 'help': - mgnlOpenDialogEx(info.path,null,null,null,'website','.magnolia/dialogs/contextmenu-fckEdit.html',null,null,null,{ - entryName: info.key + '.help', - enterMode: 'br' - }); - break; - case 'info': - mgnlOpenDialogEx(info.path,null,null,null,'website','.magnolia/dialogs/contextmenu-fckEdit.html',null,null,null,{ - entryName: info.key + '.info', - enterMode: info.enterMode || 'br' - }); - break; + }, function(itemName) { + switch (itemName){ case 'move': el.parents('.control-group:first').trigger('drag'); - break; - + return; } + + var entryName = info.entryName || ''; + if (itemName && itemName != 'default'){ + if (entryName) { + entryName += '.'; + } + entryName += itemName; + } + var menuItem; + jQuery.each(menu.items, function(){ + if (this.name == itemName) + { + menuItem = this; + } + }); + mgnlOpenDialogEx(info.path,null,null,null,'website','.magnolia/dialogs/contextmenu-' + menuItem.controlType + '.html',null,null,null,{ + entryName: entryName, + globalEnabled: menuItem.globalEnabled, + enterMode: info.enterMode + }); + }); }; + var el = jQuery('#' + id); - initTrigger(info.parentTrigger ? el.parents(info.parentTrigger + ':first') : el); + var trigger = info.parentTrigger ? el.parents(info.parentTrigger + ':first') : el; + initTrigger(trigger); el.data("initTrigger", initTrigger); + }); Modified: magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/js/contextmenu-sortList.js =================================================================== --- magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/js/contextmenu-sortList.js 2013-09-26 16:10:45 UTC (rev 4348) +++ magnoliamodules/trunk/openutils-mgnlcontextmenu/src/main/resources/mgnl-resources/contextmenu/js/contextmenu-sortList.js 2013-09-26 16:23:50 UTC (rev 4349) @@ -12,12 +12,12 @@ $ol.find('> .control-group').each(function(i, el){ if (el.nodeType === 1){ drags.push(el); - var li = $('<div class="control-drop"></div>'); - $(el).before(li); + var li = jQuery('<div class="control-drop"></div>'); + jQuery(el).before(li); drops.push(li[0]); } }); - var li = $('<div class="control-group"></div>'); + var li = jQuery('<div class="control-group"></div>'); $ol.append(li); drops.push(li[0]); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fn...@us...> - 2013-09-26 16:10:49
|
Revision: 4348 http://openutils.svn.sourceforge.net/openutils/?rev=4348&view=rev Author: fnecci Date: 2013-09-26 16:10:45 +0000 (Thu, 26 Sep 2013) Log Message: ----------- dependency on commons-net Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlmedia/pom.xml Modified: magnoliamodules/trunk/openutils-mgnlmedia/pom.xml =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/pom.xml 2013-09-26 14:44:11 UTC (rev 4347) +++ magnoliamodules/trunk/openutils-mgnlmedia/pom.xml 2013-09-26 16:10:45 UTC (rev 4348) @@ -268,6 +268,11 @@ <version>2.5</version> <scope>provided</scope> </dependency> + <dependency> + <groupId>commons-net</groupId> + <artifactId>commons-net</artifactId> + <version>2.2</version> + </dependency> </dependencies> <properties> <magnolia.version>4.5.11</magnolia.version> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <luc...@us...> - 2013-09-26 14:44:15
|
Revision: 4347 http://openutils.svn.sourceforge.net/openutils/?rev=4347&view=rev Author: lucaboati Date: 2013-09-26 14:44:11 +0000 (Thu, 26 Sep 2013) Log Message: ----------- remove deprecations, content to node, fix "media is a Node not a Property" Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java 2013-09-26 14:42:24 UTC (rev 4346) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java 2013-09-26 14:44:11 UTC (rev 4347) @@ -284,7 +284,7 @@ Node resolutions = getResolutionsNode(media); String resString = "res-" + ImageUtils.getResolutionPath(resolution); - if (resolutions != null && resolutions.hasProperty(resString)) + if (resolutions != null && resolutions.hasNode(resString)) { String resPath = new FileProperties(ContentUtil.asContent(resolutions), resString) .getProperty(FileProperties.PATH); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <luc...@us...> - 2013-09-26 14:42:36
|
Revision: 4346 http://openutils.svn.sourceforge.net/openutils/?rev=4346&view=rev Author: lucaboati Date: 2013-09-26 14:42:24 +0000 (Thu, 26 Sep 2013) Log Message: ----------- remove deprecations, content to node, fix playlist example Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/resources/mgnl-files/templates/samples-media/paragraph-grid.jsp Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java 2013-09-26 14:20:46 UTC (rev 4345) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java 2013-09-26 14:42:24 UTC (rev 4346) @@ -27,11 +27,10 @@ import info.magnolia.cms.util.ContentUtil; import info.magnolia.cms.util.NodeMapWrapper; import info.magnolia.context.MgnlContext; -import info.magnolia.jcr.util.ContentMap; +import info.magnolia.jcr.util.NodeUtil; import info.magnolia.jcr.util.PropertyUtil; import info.magnolia.module.ModuleRegistry; import info.magnolia.objectfactory.Components; -import it.openutils.mgnlutils.api.NodeUtilsExt; import java.awt.Point; import java.util.ArrayList; @@ -42,10 +41,10 @@ import java.util.Map; import javax.jcr.Node; -import javax.jcr.Property; import javax.jcr.PropertyType; import javax.jcr.RepositoryException; import javax.jcr.Value; +import javax.jcr.nodetype.NodeType; import javax.jcr.query.InvalidQueryException; import javax.servlet.http.HttpServletRequest; @@ -263,8 +262,8 @@ try { - // MEDIA-90 may be simply a url - if (media.getProperty(BaseTypeHandler.ORGINAL_NODEDATA_NAME).getType() == PropertyType.BINARY) + // MEDIA-90 may be simply a url [LB] TEST ME AGAIN + if (NodeUtil.isNodeType(media.getNode(BaseTypeHandler.ORGINAL_NODEDATA_NAME), NodeType.NT_RESOURCE)) { FileProperties prop = new FileProperties( ContentUtil.asContent(media), @@ -548,7 +547,7 @@ * @param obj playlist node or UUID * @return Iterator of media nodes */ - public static Iterator<ContentMap> mediaNodesInPlaylist(Object obj) + public static Iterator<Node> mediaNodesInPlaylist(Object obj) { if (obj == null) { @@ -557,17 +556,17 @@ Node playlistNode = it.openutils.mgnlutils.el.MgnlUtilsElFunctions.node(obj, PlaylistConstants.REPO); - Iterator<ContentMap> iter = Iterators.transform( + Iterator<Node> iter = Iterators.transform( PlaylistIterateUtils.iterate(playlistNode), - new Function<MediaNodeAndEntryPath, ContentMap>() + new Function<MediaNodeAndEntryPath, Node>() { /** * {@inheritDoc} */ - public ContentMap apply(MediaNodeAndEntryPath from) + public Node apply(MediaNodeAndEntryPath from) { - return (ContentMap) from.getMediaNode(); + return (Node) from.getMediaNode(); } }); return Iterators.filter(iter, Predicates.notNull()); Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/resources/mgnl-files/templates/samples-media/paragraph-grid.jsp =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/resources/mgnl-files/templates/samples-media/paragraph-grid.jsp 2013-09-26 14:20:46 UTC (rev 4345) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/resources/mgnl-files/templates/samples-media/paragraph-grid.jsp 2013-09-26 14:42:24 UTC (rev 4346) @@ -11,7 +11,7 @@ </tr> </thead> <tbody> - <c:forEach var="row" items="${mu:splitAndTokenize(node.grid)}"> + <c:forEach var="row" items="${mu:splitAndTokenize(cmsfn:decode(content).grid)}"> <tr> <td> <media:media item="${row[0]}" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fn...@us...> - 2013-09-26 14:20:52
|
Revision: 4345 http://openutils.svn.sourceforge.net/openutils/?rev=4345&view=rev Author: fnecci Date: 2013-09-26 14:20:46 +0000 (Thu, 26 Sep 2013) Log Message: ----------- Included external video provider to integrate with a video service Added Paths: ----------- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/AsyncUploadExternalVideoProvider.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/AsyncUploadThread.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/BaseExternalVideoProvider.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/BaseVideoTypeHandler.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoProvider.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoTypeHandler.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoUtil.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpAccount.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpAsyncUploadExternalVideoProvider.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpUtil.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/TrascodingExternalVideoProvider.java Added: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/AsyncUploadExternalVideoProvider.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/AsyncUploadExternalVideoProvider.java (rev 0) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/AsyncUploadExternalVideoProvider.java 2013-09-26 14:20:46 UTC (rev 4345) @@ -0,0 +1,92 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +import java.io.IOException; + +import javax.jcr.Node; +import javax.jcr.RepositoryException; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * @author molaschi + * @version $Id: $ + */ +public abstract class AsyncUploadExternalVideoProvider extends BaseExternalVideoProvider + +{ + + /** + * Logger. + */ + private Logger log = LoggerFactory.getLogger(AsyncUploadExternalVideoProvider.class); + + public final static String STATUS_TO_UPLOAD = "to_upload"; + + public final static String STATUS_UPLOADING = "uploading"; + + public final static String STATUS_UPLOADED = "uploaded"; + + public static final String ND_PROGRESS = "uploadedBytes"; + + public static final String ND_ASYNC = "processingAsyncVideo"; + + private int numTries = 3; + + /** + * {@inheritDoc} + */ + public void processVideo(Node media) + { + try + { + ExternalVideoUtil.setProperty(media.getIdentifier(), ND_ASYNC, true); + // new AsyncUploadThread(this, media.getUUID()).start(); + uploadedVideo(media.getIdentifier()); + } + catch (RepositoryException re) + { + log.error("Error processing video", re); + } + + } + + public abstract void uploadVideo(String mediaUUID) throws IOException, RepositoryException; + + public abstract void uploadedVideo(String mediaUUID); + + public void endProcess(String mediaUUID) + { + ExternalVideoUtil.removeProperty(mediaUUID, ND_ASYNC); + ExternalVideoUtil.removeProperty(mediaUUID, ExternalVideoUtil.ND_STATUS); + ExternalVideoUtil.removeProperty(mediaUUID, ExternalVideoUtil.ND_STATUS_CHANGE); + ExternalVideoUtil.removeProperty(mediaUUID, ExternalVideoUtil.ND_PROGRESS); + } + + /** + * Returns the nTries. + * @return the nTries + */ + public int getNumTries() + { + return numTries; + } + + /** + * Sets the nTries. + * @param nTries the nTries to set + */ + public void setNumTries(int nTries) + { + this.numTries = nTries; + } + + /** + * {@inheritDoc} + */ + public boolean isAsyncUpload() + { + return true; + } +} Added: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/AsyncUploadThread.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/AsyncUploadThread.java (rev 0) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/AsyncUploadThread.java 2013-09-26 14:20:46 UTC (rev 4345) @@ -0,0 +1,56 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +import java.io.IOException; + +import javax.jcr.RepositoryException; + +import org.apache.commons.lang.StringUtils; + + +/** + * @author molaschi + * @version $Id: $ + */ +public class AsyncUploadThread extends Thread +{ + + private AsyncUploadExternalVideoProvider externalVideoProvider; + + private String mediaUUID; + + public AsyncUploadThread(AsyncUploadExternalVideoProvider externalVideoProvider, String mediaUUID) + { + this.externalVideoProvider = externalVideoProvider; + this.mediaUUID = mediaUUID; + } + + /** + * {@inheritDoc} + */ + @Override + public void run() + { + ExternalVideoUtil.setStatus(mediaUUID, AsyncUploadExternalVideoProvider.STATUS_UPLOADING); + Exception lastException = null; + for (int nTry = 0; nTry < externalVideoProvider.getNumTries(); nTry++) + { + try + { + externalVideoProvider.uploadVideo(mediaUUID); + ExternalVideoUtil.setStatus(mediaUUID, AsyncUploadExternalVideoProvider.STATUS_UPLOADED); + externalVideoProvider.uploadedVideo(mediaUUID); + return; + } + catch (IOException e) + { + lastException = e; + } + catch (RepositoryException e) + { + lastException = e; + } + } + ExternalVideoUtil.setError(mediaUUID, null, lastException != null ? lastException.getMessage() : StringUtils.EMPTY); + } + +} Added: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/BaseExternalVideoProvider.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/BaseExternalVideoProvider.java (rev 0) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/BaseExternalVideoProvider.java 2013-09-26 14:20:46 UTC (rev 4345) @@ -0,0 +1,29 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +/** + * @author molaschi + * @version $Id: $ + */ +public abstract class BaseExternalVideoProvider implements ExternalVideoProvider +{ + + private String name; + + /** + * {@inheritDoc} + */ + public String getName() + { + return this.name; + } + + /** + * Sets the name. + * @param name the name to set + */ + public void setName(String name) + { + this.name = name; + } + +} Added: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/BaseVideoTypeHandler.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/BaseVideoTypeHandler.java (rev 0) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/BaseVideoTypeHandler.java 2013-09-26 14:20:46 UTC (rev 4345) @@ -0,0 +1,57 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +import java.util.Map; + +import javax.jcr.Node; +import javax.jcr.RepositoryException; + +import net.sourceforge.openutils.mgnlmedia.media.types.impl.MediaWithPreviewImageTypeHandler; +import net.sourceforge.openutils.mgnlmedia.media.utils.MediaMetadataFormatUtils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * @author dschivo + */ +public abstract class BaseVideoTypeHandler extends MediaWithPreviewImageTypeHandler +{ + + /** + * Logger. + */ + private Logger log = LoggerFactory.getLogger(BaseVideoTypeHandler.class); + + /** + * {@inheritDoc} + */ + @Override + public Map<String, String> getMediaInfo(Node media) + { + + Map<String, String> info = super.getMediaInfo(media); + + try + { + long duration = media.getProperty(METADATA_DURATION).getLong(); + if (duration > 0) + { + info.put(METADATA_DURATION, MediaMetadataFormatUtils.formatDuration(duration)); + } + + long framerate = media.getProperty(METADATA_FRAMERATE).getLong(); + if (framerate > 0) + { + info.put(METADATA_FRAMERATE, Long.toString(framerate)); + } + } + catch (RepositoryException re) + { + log.error("Error getting external video media infos", re); + } + + return info; + } + +} Added: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoProvider.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoProvider.java (rev 0) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoProvider.java 2013-09-26 14:20:46 UTC (rev 4345) @@ -0,0 +1,39 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +import info.magnolia.cms.beans.runtime.MultipartForm; + +import java.util.Map; + +import javax.jcr.Node; +import javax.servlet.http.HttpServletRequest; + + +/** + * @author molaschi + * @version $Id: $ + */ +public interface ExternalVideoProvider +{ + + void processVideo(Node media); + + boolean isAsyncUpload(); + + String getUrl(Node media, Map<String, String> options); + + String getNewNodeName(MultipartForm form, HttpServletRequest request); + + String getName(); + + String getUploadFileName(Node media); + + String getMediaUUIDFromFileName(String filename); + + void stop(); + + String getThumbnailUrl(Node media); + + String getPreviewUrl(Node media); + + String getFilename(Node media); +} Added: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoTypeHandler.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoTypeHandler.java (rev 0) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoTypeHandler.java 2013-09-26 14:20:46 UTC (rev 4345) @@ -0,0 +1,233 @@ +/** + * + * Magnolia SimpleMedia Module (http://www.openmindlab.com/lab/products/media.html) + * Copyright (C)2008 - 2010, Openmind S.r.l. http://www.openmindonline.it + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +import info.magnolia.cms.beans.runtime.MultipartForm; +import info.magnolia.jcr.util.PropertyUtil; + +import java.io.File; +import java.util.HashMap; +import java.util.Map; + +import javax.jcr.AccessDeniedException; +import javax.jcr.Node; +import javax.jcr.RepositoryException; +import javax.servlet.http.HttpServletRequest; + +import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaConfigurationManager; +import net.sourceforge.openutils.mgnlmedia.media.types.MediaTypeHandler; + + +/* + * + */ +public class ExternalVideoTypeHandler extends BaseVideoTypeHandler +{ + + public static final String ND_PROVIDER = "provider"; + + public static ExternalVideoProvider getExternalVideoProvider(Node media) + { + MediaTypeHandler mth = MediaConfigurationManager + .getInstance() + .getMediaTypeConfigurationFromMedia(media) + .getHandler(); + if (mth.getClass().isAssignableFrom(ExternalVideoTypeHandler.class)) + { + return ((ExternalVideoTypeHandler) mth).getVideoProvider(media); + } + return null; + } + + /** + * External video support, will be made configurable in future versions. + */ + private Map<String, ExternalVideoProvider> videoProviders = new HashMap<String, ExternalVideoProvider>(); + + /** + * {@inheritDoc} + */ + @Override + public void init(Node typeDefinitionNode) + { + super.init(typeDefinitionNode); + } + + /** + * Returns the videoProviders. + * @return the videoProviders + */ + public Map<String, ExternalVideoProvider> getVideoProviders() + { + return videoProviders; + } + + /** + * Sets the videoProviders. + * @param videoProviders the videoProviders to set + */ + public void setVideoProviders(Map<String, ExternalVideoProvider> videoProviders) + { + this.videoProviders = videoProviders; + } + + /** + * Adds a video support handler. + * @param videoSupportHandler ExternalVideoSupport implementation + */ + public void addVideoProvider(String name, ExternalVideoProvider videoProvider) + { + videoProviders.put(name, videoProvider); + } + + public ExternalVideoProvider getVideoProvider(Node media) + { + return videoProviders.get(PropertyUtil.getString(media, ND_PROVIDER)); + } + + @Override + public void saveFromZipFile(Node media, File f, String cleanFileName, String extension) + throws AccessDeniedException, RepositoryException + { + media.setProperty("provider", "weebo"); + ExternalVideoUtil.setStatus(media.getUUID(), AsyncUploadExternalVideoProvider.STATUS_TO_UPLOAD); + super.saveFromZipFile(media, f, cleanFileName, extension); + } + + /** + * {@inheritDoc} + */ + @Override + public String getUrl(Node media, Map<String, String> options) + { + ExternalVideoProvider provider = getVideoProvider(media); + if (provider == null) + { + return null; + } + return provider.getUrl(media, options); + } + + /** + * {@inheritDoc} + */ + @Override + public String getNewNodeName(MultipartForm form, HttpServletRequest request) + { + return videoProviders.get(request.getParameter(ND_PROVIDER)).getNewNodeName(form, request); + } + + /** + * {@inheritDoc} + */ + @Override + public String getUrl(Node media) + { + ExternalVideoProvider provider = getVideoProvider(media); + if (provider == null) + { + return null; + } + return provider.getUrl(media, null); + } + + /** + * {@inheritDoc} + */ + @Override + public boolean onPostSave(Node media) + { + ExternalVideoProvider provider = getVideoProvider(media); + if (provider != null) + { + provider.processVideo(media); + } + + return super.onPostSave(media); + } + + /** + * {@inheritDoc} + */ + public String getFilename(Node media) + { + ExternalVideoProvider provider = getVideoProvider(media); + if (provider != null) + { + return provider.getFilename(media); + } + + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String getThumbnailUrl(Node media) + { + ExternalVideoProvider provider = getVideoProvider(media); + if (provider == null) + { + return null; + } + return provider.getThumbnailUrl(media); + } + + /** + * {@inheritDoc} + */ + @Override + public String getPreviewUrl(Node media) + { + ExternalVideoProvider provider = getVideoProvider(media); + if (provider == null) + { + return null; + } + return provider.getPreviewUrl(media); + } + + /** + * {@inheritDoc} + */ + @Override + public void stop() + { + Map<String, ExternalVideoProvider> providers = this.getVideoProviders(); + if (providers != null) + { + for (ExternalVideoProvider provider : providers.values()) + { + provider.stop(); + } + } + super.stop(); + } + + /** + * {@inheritDoc} + */ + @Override + public String getReplacementThumbnail() + { + return "/.resources/media/icons/thumb-video.png"; + } +} Added: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoUtil.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoUtil.java (rev 0) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoUtil.java 2013-09-26 14:20:46 UTC (rev 4345) @@ -0,0 +1,293 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +import info.magnolia.cms.beans.runtime.Document; +import info.magnolia.cms.core.Content; +import info.magnolia.cms.util.ContentUtil; +import info.magnolia.cms.util.NodeDataUtil; +import info.magnolia.context.MgnlContext; +import info.magnolia.jcr.util.NodeUtil; +import info.magnolia.jcr.util.PropertyUtil; +import info.magnolia.module.admininterface.SaveHandlerImpl; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.Calendar; + +import javax.jcr.Node; +import javax.jcr.RepositoryException; + +import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule; +import net.sourceforge.openutils.mgnlmedia.media.types.impl.MediaWithPreviewImageTypeHandler; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * @author molaschi + * @version $Id: $ + */ +public class ExternalVideoUtil +{ + + public static final String ND_STATUS = "status"; + + public static final String ND_STATUS_CHANGE = "statusLastModified"; + + public static final String ND_ERROR = "error"; + + public static final String ND_ERROR_MESSAGE = "errorMessage"; + + public static final String ND_PROGRESS = "uploadProgress"; + + public static Logger log = LoggerFactory.getLogger(ExternalVideoUtil.class); + + public static boolean setProperty(final String mediaUUID, final String property, final Object value) + { + try + { + return MgnlContext.doInSystemContext(new MgnlContext.Op<Boolean, RepositoryException>() + { + + public Boolean exec() throws RepositoryException + { + Node media = NodeUtil.getNodeByIdentifier(MediaModule.REPO, mediaUUID); + if (media != null) + { + PropertyUtil.setProperty(media, property, value); + media.save(); + return true; + } + return false; + } + }); + } + catch (RepositoryException e) + { + return false; + } + } + + public static boolean removeProperty(final String mediaUUID, final String property) + { + try + { + return MgnlContext.doInSystemContext(new MgnlContext.Op<Boolean, RepositoryException>() + { + + public Boolean exec() throws RepositoryException + { + Node media = NodeUtil.getNodeByIdentifier(MediaModule.REPO, mediaUUID); + if (media != null && media.hasProperty(property)) + { + media.getProperty(property).remove(); + media.save(); + return true; + } + return false; + } + }); + } + catch (RepositoryException e) + { + return false; + } + } + + public static String getStatusProperty(String statusSuffix) + { + return StringUtils.join(new String[]{ND_STATUS, statusSuffix != null ? "-" : null, statusSuffix }); + } + + public static String getErrorProperty(String suffix) + { + return StringUtils.join(new String[]{ND_ERROR, suffix != null ? "-" : null, suffix }); + } + + public static String getStatus(final Content mediaNode, String statusSuffix) + { + return NodeDataUtil.getString(mediaNode, getStatusProperty(statusSuffix)); + } + + public static boolean setStatus(final String mediaUUID, final String statusSuffix, final String status) + { + try + { + return MgnlContext.doInSystemContext(new MgnlContext.Op<Boolean, RepositoryException>() + { + + public Boolean exec() throws RepositoryException + { + Content media = ContentUtil.getContentByUUID(MediaModule.REPO, mediaUUID); + if (media != null) + { + String statusProperty = getStatusProperty(statusSuffix); + if (!media.hasNodeData(statusProperty) + || !StringUtils.equals(NodeDataUtil.getString(media, statusProperty), status)) + { + NodeDataUtil.getOrCreateAndSet(media, statusProperty, status); + NodeDataUtil.getOrCreateAndSet( + media, + statusProperty + "LastModified", + Calendar.getInstance()); + media.save(); + } + return true; + } + return false; + } + }); + } + catch (RepositoryException e) + { + return false; + } + } + + public static boolean hasStatus(final Content mediaNode, final String statusSuffix, final String status) + { + String statusProperty = getStatusProperty(statusSuffix); + return StringUtils.equals(NodeDataUtil.getString(mediaNode, statusProperty), status); + } + + public static boolean hasStatus(final String mediaUUID, final String statusSuffix, final String status) + { + try + { + return MgnlContext.doInSystemContext(new MgnlContext.Op<Boolean, RepositoryException>() + { + + public Boolean exec() throws RepositoryException + { + Content media = ContentUtil.getContentByUUID(MediaModule.REPO, mediaUUID); + return media != null && hasStatus(media, statusSuffix, status); + } + }); + } + catch (RepositoryException e) + { + return false; + } + } + + public static boolean setStatus(final String mediaUUID, final String status) + { + return setStatus(mediaUUID, null, status); + } + + public static boolean setError(final String mediaUUID, final String suffix, final String message) + { + try + { + return MgnlContext.doInSystemContext(new MgnlContext.Op<Boolean, RepositoryException>() + { + + public Boolean exec() throws RepositoryException + { + Content media = ContentUtil.getContentByUUID(MediaModule.REPO, mediaUUID); + if (media != null) + { + NodeDataUtil.getOrCreateAndSet(media, getErrorProperty(suffix), true); + NodeDataUtil.getOrCreateAndSet( + media, + getErrorProperty(suffix) + "-" + ND_ERROR_MESSAGE, + message); + media.save(); + return true; + } + return false; + } + }); + } + catch (RepositoryException e) + { + return false; + } + } + + public static boolean copyPreviewImageToRepository(Node media, final String previewUrl) throws IOException + { + if (StringUtils.isNotBlank(previewUrl)) + { + InputStream is = null; + URL url = new URL(previewUrl); + HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); + httpConn.setConnectTimeout(5000); + if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) + { + is = httpConn.getInputStream(); + File file = File.createTempFile("external-video", "preview"); + FileOutputStream fout = null; + try + { + fout = new FileOutputStream(file); + IOUtils.copy(is, fout); + } + finally + { + IOUtils.closeQuietly(fout); + } + String contentType = httpConn.getContentType(); + Document doc = new Document(file, contentType); + try + { + SaveHandlerImpl.saveDocument( + ContentUtil.asContent(media), + doc, + MediaWithPreviewImageTypeHandler.PREVIEW_NODEDATA_NAME, + "preview", + null); + media.save(); + return true; + } + catch (RepositoryException e) + { + log.error(e.getMessage(), e); + } + finally + { + doc.delete(); + } + } + else + { + log.warn("Problem establishing connection with {}: {}", url, httpConn.getResponseCode()); + } + } + return false; + } + + public static boolean copyPreviewImageToRepository(final String mediaUUID, final String previewUrl) + throws IOException + { + return MgnlContext.doInSystemContext(new MgnlContext.Op<Boolean, IOException>() + { + + public Boolean exec() throws IOException + { + Node media; + try + { + media = NodeUtil.getNodeByIdentifier(MediaModule.REPO, mediaUUID); + if (media != null) + { + return copyPreviewImageToRepository(media, previewUrl); + } + return false; + } + catch (RepositoryException re) + { + throw new IOException(re); + } + + } + }); + + } +} Added: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpAccount.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpAccount.java (rev 0) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpAccount.java 2013-09-26 14:20:46 UTC (rev 4345) @@ -0,0 +1,90 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +/** + * @author molaschi + * @version $Id: $ + */ +public class FtpAccount +{ + + private String username; + + private String password; + + private String url; + + private boolean passive; + + /** + * Returns the username. + * @return the username + */ + public String getUsername() + { + return username; + } + + /** + * Sets the username. + * @param username the username to set + */ + public void setUsername(String username) + { + this.username = username; + } + + /** + * Returns the password. + * @return the password + */ + public String getPassword() + { + return password; + } + + /** + * Sets the password. + * @param password the password to set + */ + public void setPassword(String password) + { + this.password = password; + } + + /** + * Returns the url. + * @return the url + */ + public String getUrl() + { + return url; + } + + /** + * Sets the url. + * @param url the url to set + */ + public void setUrl(String url) + { + this.url = url; + } + + /** + * Returns the passive. + * @return the passive + */ + public boolean isPassive() + { + return passive; + } + + /** + * Sets the passive. + * @param passive the passive to set + */ + public void setPassive(boolean passive) + { + this.passive = passive; + } + +} Added: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpAsyncUploadExternalVideoProvider.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpAsyncUploadExternalVideoProvider.java (rev 0) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpAsyncUploadExternalVideoProvider.java 2013-09-26 14:20:46 UTC (rev 4345) @@ -0,0 +1,74 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +import info.magnolia.cms.beans.runtime.FileProperties; +import info.magnolia.cms.core.Content; +import info.magnolia.cms.core.NodeData; +import info.magnolia.context.MgnlContext; + +import java.io.IOException; + +import javax.jcr.RepositoryException; + +import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule; + +import org.apache.commons.lang.math.NumberUtils; + + +/** + * @author molaschi + * @version $Id: $ + */ +public abstract class FtpAsyncUploadExternalVideoProvider extends AsyncUploadExternalVideoProvider +{ + + private FtpAccount account = new FtpAccount(); + + /** + * {@inheritDoc} + */ + @Override + public void uploadVideo(final String mediaUUID) throws IOException, RepositoryException + { + Content media = MgnlContext + .getSystemContext() + .getHierarchyManager(MediaModule.REPO) + .getContentByUUID(mediaUUID); + NodeData file = media.getNodeData(BaseVideoTypeHandler.ORGINAL_NODEDATA_NAME); + long size = NumberUtils.toLong(file.getAttribute(FileProperties.PROPERTY_SIZE), -1); + FtpUtil.upload( + account, + media.getNodeData(BaseVideoTypeHandler.ORGINAL_NODEDATA_NAME).getStream(), + size, + this.getUploadFileName(media.getJCRNode()), + new FtpUtil.UploadProgress() + { + + public void updateProgress(long totalBytesTransferred) + { + ExternalVideoUtil.setProperty( + mediaUUID, + AsyncUploadExternalVideoProvider.ND_PROGRESS, + totalBytesTransferred); + } + }); + } + + /** + * Returns the account. + * @return the account + */ + public FtpAccount getAccount() + { + return account; + } + + /** + * Sets the account. + * @param account the account to set + */ + public void setAccount(FtpAccount account) + { + this.account = account; + } + +} Added: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpUtil.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpUtil.java (rev 0) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpUtil.java 2013-09-26 14:20:46 UTC (rev 4345) @@ -0,0 +1,106 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.net.ftp.FTP; +import org.apache.commons.net.ftp.FTPClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * @author molaschi + * @version $Id: $ + */ +public class FtpUtil +{ + + /** + * Logger. + */ + private static Logger log = LoggerFactory.getLogger(FtpUtil.class); + + public static void upload(FtpAccount account, InputStream inputStream, long size, final String fileName, + final UploadProgress progress) throws IOException + { + FTPClient f = new FTPClient(); + log.debug("Connection to {}", account.getUrl()); + f.connect(account.getUrl()); + log.debug("Login with {}", account.getUsername()); + if (f.login(account.getUsername(), account.getPassword())) + { + + String paths[] = StringUtils.split(fileName, "/"); + String path = "/"; + for (int i = 0; i < paths.length - 1; i++) + { + path += paths[i] + "/"; + if (f.listNames(path) == null) + { + log.debug("Creating folder {}", path); + f.mkd(path); + } + } + if (!"/".equals(path)) + { + log.debug("Moving to folder {}", path); + f.cwd(path); + } + + String relativeFileName = paths[paths.length - 1]; + + if (account.isPassive()) + { + log.debug("Entering passive mode"); + f.enterLocalPassiveMode(); + } + + log.debug("Storing file {} in {}", new Object[]{relativeFileName, path }); + f.setFileType(FTP.BINARY_FILE_TYPE); + if (progress != null && size > 0) + { + OutputStream os = f.storeFileStream(relativeFileName); + org.apache.commons.net.io.Util.copyStream( + inputStream, + os, + f.getBufferSize(), + size, + new org.apache.commons.net.io.CopyStreamAdapter() + { + + @Override + public void bytesTransferred(long totalBytesTransferred, int bytesTransferred, long streamSize) + { + log.debug("File {} upload: {} / {}", new Object[]{ + fileName, + totalBytesTransferred, + streamSize }); + progress.updateProgress((int) (100 * totalBytesTransferred / streamSize)); + } + }); + os.flush(); + IOUtils.closeQuietly(os); + IOUtils.closeQuietly(inputStream); + + f.completePendingCommand(); + } + else + { + f.storeFile(relativeFileName, inputStream); + } + log.debug("Done, disconnecting"); + } + f.disconnect(); + } + + public interface UploadProgress + { + + void updateProgress(long totalBytesTransferred); + } + +} Added: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/TrascodingExternalVideoProvider.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/TrascodingExternalVideoProvider.java (rev 0) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/TrascodingExternalVideoProvider.java 2013-09-26 14:20:46 UTC (rev 4345) @@ -0,0 +1,21 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +/** + * @author molaschi + * @version $Id: $ + */ +public interface TrascodingExternalVideoProvider extends ExternalVideoProvider +{ + + public final static String STATUS_TO_TRASCODE = "to_trascode"; + + public final static String STATUS_TRASCODING = "trascoding"; + + public final static String STATUS_TRASCODED = "trascoded"; + + void startTrascoding(String mediaUUID); + + void updateTrascodingProgress(String mediaUUID, double progress); + + void trascoded(String mediaUUID); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fn...@us...> - 2013-09-26 14:20:30
|
Revision: 4344 http://openutils.svn.sourceforge.net/openutils/?rev=4344&view=rev Author: fnecci Date: 2013-09-26 14:20:25 +0000 (Thu, 26 Sep 2013) Log Message: ----------- Included external video provider to integrate with a video service Modified Paths: -------------- magnoliamodules/branches/magnolia44/openutils-mgnlmedia/pom.xml Added Paths: ----------- magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/AsyncUploadExternalVideoProvider.java magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/AsyncUploadThread.java magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/BaseExternalVideoProvider.java magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/BaseVideoTypeHandler.java magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoProvider.java magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoTypeHandler.java magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoUtil.java magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpAccount.java magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpAsyncUploadExternalVideoProvider.java magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpUtil.java magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/TrascodingExternalVideoProvider.java Modified: magnoliamodules/branches/magnolia44/openutils-mgnlmedia/pom.xml =================================================================== --- magnoliamodules/branches/magnolia44/openutils-mgnlmedia/pom.xml 2013-09-26 13:23:38 UTC (rev 4343) +++ magnoliamodules/branches/magnolia44/openutils-mgnlmedia/pom.xml 2013-09-26 14:20:25 UTC (rev 4344) @@ -251,6 +251,11 @@ </exclusion> </exclusions> </dependency> + <dependency> + <groupId>commons-net</groupId> + <artifactId>commons-net</artifactId> + <version>2.2</version> + </dependency> </dependencies> <properties> <magnolia.version>4.4.7</magnolia.version> Added: magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/AsyncUploadExternalVideoProvider.java =================================================================== --- magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/AsyncUploadExternalVideoProvider.java (rev 0) +++ magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/AsyncUploadExternalVideoProvider.java 2013-09-26 14:20:25 UTC (rev 4344) @@ -0,0 +1,76 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +import info.magnolia.cms.core.Content; + +import java.io.IOException; + +import javax.jcr.RepositoryException; + + +/** + * @author molaschi + * @version $Id: $ + */ +public abstract class AsyncUploadExternalVideoProvider extends BaseExternalVideoProvider +{ + + public final static String STATUS_TO_UPLOAD = "to_upload"; + + public final static String STATUS_UPLOADING = "uploading"; + + public final static String STATUS_UPLOADED = "uploaded"; + + public static final String ND_PROGRESS = "uploadedBytes"; + + public static final String ND_ASYNC = "processingAsyncVideo"; + + private int numTries = 3; + + /** + * {@inheritDoc} + */ + public void processVideo(Content media) + { + ExternalVideoUtil.setProperty(media.getUUID(), ND_ASYNC, true); + // new AsyncUploadThread(this, media.getUUID()).start(); + uploadedVideo( media.getUUID() ); + } + + public abstract void uploadVideo(String mediaUUID) throws IOException, RepositoryException; + + public abstract void uploadedVideo(String mediaUUID); + + public void endProcess(String mediaUUID) + { + ExternalVideoUtil.removeProperty(mediaUUID, ND_ASYNC); + ExternalVideoUtil.removeProperty(mediaUUID, ExternalVideoUtil.ND_STATUS); + ExternalVideoUtil.removeProperty(mediaUUID, ExternalVideoUtil.ND_STATUS_CHANGE); + ExternalVideoUtil.removeProperty(mediaUUID, ExternalVideoUtil.ND_PROGRESS); + } + + /** + * Returns the nTries. + * @return the nTries + */ + public int getNumTries() + { + return numTries; + } + + /** + * Sets the nTries. + * @param nTries the nTries to set + */ + public void setNumTries(int nTries) + { + this.numTries = nTries; + } + + /** + * {@inheritDoc} + */ + public boolean isAsyncUpload() + { + return true; + } +} Added: magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/AsyncUploadThread.java =================================================================== --- magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/AsyncUploadThread.java (rev 0) +++ magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/AsyncUploadThread.java 2013-09-26 14:20:25 UTC (rev 4344) @@ -0,0 +1,56 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +import java.io.IOException; + +import javax.jcr.RepositoryException; + +import org.apache.commons.lang.StringUtils; + + +/** + * @author molaschi + * @version $Id: $ + */ +public class AsyncUploadThread extends Thread +{ + + private AsyncUploadExternalVideoProvider externalVideoProvider; + + private String mediaUUID; + + public AsyncUploadThread(AsyncUploadExternalVideoProvider externalVideoProvider, String mediaUUID) + { + this.externalVideoProvider = externalVideoProvider; + this.mediaUUID = mediaUUID; + } + + /** + * {@inheritDoc} + */ + @Override + public void run() + { + ExternalVideoUtil.setStatus(mediaUUID, AsyncUploadExternalVideoProvider.STATUS_UPLOADING); + Exception lastException = null; + for (int nTry = 0; nTry < externalVideoProvider.getNumTries(); nTry++) + { + try + { + externalVideoProvider.uploadVideo(mediaUUID); + ExternalVideoUtil.setStatus(mediaUUID, AsyncUploadExternalVideoProvider.STATUS_UPLOADED); + externalVideoProvider.uploadedVideo(mediaUUID); + return; + } + catch (IOException e) + { + lastException = e; + } + catch (RepositoryException e) + { + lastException = e; + } + } + ExternalVideoUtil.setError(mediaUUID, null, lastException != null ? lastException.getMessage() : StringUtils.EMPTY); + } + +} Added: magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/BaseExternalVideoProvider.java =================================================================== --- magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/BaseExternalVideoProvider.java (rev 0) +++ magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/BaseExternalVideoProvider.java 2013-09-26 14:20:25 UTC (rev 4344) @@ -0,0 +1,29 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +/** + * @author molaschi + * @version $Id: $ + */ +public abstract class BaseExternalVideoProvider implements ExternalVideoProvider +{ + + private String name; + + /** + * {@inheritDoc} + */ + public String getName() + { + return this.name; + } + + /** + * Sets the name. + * @param name the name to set + */ + public void setName(String name) + { + this.name = name; + } + +} Added: magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/BaseVideoTypeHandler.java =================================================================== --- magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/BaseVideoTypeHandler.java (rev 0) +++ magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/BaseVideoTypeHandler.java 2013-09-26 14:20:25 UTC (rev 4344) @@ -0,0 +1,41 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +import info.magnolia.cms.core.Content; + +import java.util.Map; + +import net.sourceforge.openutils.mgnlmedia.media.types.impl.MediaWithPreviewImageTypeHandler; +import net.sourceforge.openutils.mgnlmedia.media.utils.MediaMetadataFormatUtils; + + +/** + * @author dschivo + */ +public abstract class BaseVideoTypeHandler extends MediaWithPreviewImageTypeHandler +{ + + /** + * {@inheritDoc} + */ + @Override + public Map<String, String> getMediaInfo(Content media) + { + + Map<String, String> info = super.getMediaInfo(media); + + long duration = media.getNodeData(METADATA_DURATION).getLong(); + if (duration > 0) + { + info.put(METADATA_DURATION, MediaMetadataFormatUtils.formatDuration(duration)); + } + + long framerate = media.getNodeData(METADATA_FRAMERATE).getLong(); + if (framerate > 0) + { + info.put(METADATA_FRAMERATE, Long.toString(framerate)); + } + + return info; + } + +} Added: magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoProvider.java =================================================================== --- magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoProvider.java (rev 0) +++ magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoProvider.java 2013-09-26 14:20:25 UTC (rev 4344) @@ -0,0 +1,39 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +import info.magnolia.cms.beans.runtime.MultipartForm; +import info.magnolia.cms.core.Content; + +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + + +/** + * @author molaschi + * @version $Id: $ + */ +public interface ExternalVideoProvider +{ + + void processVideo(Content media); + + boolean isAsyncUpload(); + + String getUrl(Content media, Map<String, String> options); + + String getNewNodeName(MultipartForm form, HttpServletRequest request); + + String getName(); + + String getUploadFileName(Content media); + + String getMediaUUIDFromFileName(String filename); + + void stop(); + + String getThumbnailUrl(Content media); + + String getPreviewUrl(Content media); + + String getFilename(Content media); +} Added: magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoTypeHandler.java =================================================================== --- magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoTypeHandler.java (rev 0) +++ magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoTypeHandler.java 2013-09-26 14:20:25 UTC (rev 4344) @@ -0,0 +1,233 @@ +/** + * + * Magnolia SimpleMedia Module (http://www.openmindlab.com/lab/products/media.html) + * Copyright (C)2008 - 2010, Openmind S.r.l. http://www.openmindonline.it + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +import info.magnolia.cms.beans.runtime.MultipartForm; +import info.magnolia.cms.core.Content; +import info.magnolia.cms.util.NodeDataUtil; + +import java.io.File; +import java.util.HashMap; +import java.util.Map; + +import javax.jcr.AccessDeniedException; +import javax.jcr.RepositoryException; +import javax.servlet.http.HttpServletRequest; + +import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaConfigurationManager; +import net.sourceforge.openutils.mgnlmedia.media.types.MediaTypeHandler; + + +/* + * + */ +public class ExternalVideoTypeHandler extends BaseVideoTypeHandler +{ + + public static final String ND_PROVIDER = "provider"; + + public static ExternalVideoProvider getExternalVideoProvider(Content media) + { + MediaTypeHandler mth = MediaConfigurationManager + .getInstance() + .getMediaTypeConfigurationFromMedia(media) + .getHandler(); + if (mth.getClass().isAssignableFrom(ExternalVideoTypeHandler.class)) + { + return ((ExternalVideoTypeHandler) mth).getVideoProvider(media); + } + return null; + } + + /** + * External video support, will be made configurable in future versions. + */ + private Map<String, ExternalVideoProvider> videoProviders = new HashMap<String, ExternalVideoProvider>(); + + /** + * {@inheritDoc} + */ + @Override + public void init(Content typeDefinitionNode) + { + super.init(typeDefinitionNode); + } + + /** + * Returns the videoProviders. + * @return the videoProviders + */ + public Map<String, ExternalVideoProvider> getVideoProviders() + { + return videoProviders; + } + + /** + * Sets the videoProviders. + * @param videoProviders the videoProviders to set + */ + public void setVideoProviders(Map<String, ExternalVideoProvider> videoProviders) + { + this.videoProviders = videoProviders; + } + + /** + * Adds a video support handler. + * @param videoSupportHandler ExternalVideoSupport implementation + */ + public void addVideoProvider(String name, ExternalVideoProvider videoProvider) + { + videoProviders.put(name, videoProvider); + } + + public ExternalVideoProvider getVideoProvider(Content media) + { + return videoProviders.get(NodeDataUtil.getString(media, ND_PROVIDER)); + } + + @Override + public void saveFromZipFile(Content media, File f, String cleanFileName, String extension) + throws AccessDeniedException, RepositoryException + { + NodeDataUtil.getOrCreateAndSet(media, "provider", "weebo"); + ExternalVideoUtil.setStatus(media.getUUID(), AsyncUploadExternalVideoProvider.STATUS_TO_UPLOAD); + super.saveFromZipFile(media, f, cleanFileName, extension); + } + + /** + * {@inheritDoc} + */ + @Override + public String getUrl(Content media, Map<String, String> options) + { + ExternalVideoProvider provider = getVideoProvider(media); + if (provider == null) + { + return null; + } + return provider.getUrl(media, options); + } + + /** + * {@inheritDoc} + */ + @Override + public String getNewNodeName(MultipartForm form, HttpServletRequest request) + { + return videoProviders.get(request.getParameter(ND_PROVIDER)).getNewNodeName(form, request); + } + + /** + * {@inheritDoc} + */ + @Override + public String getUrl(Content media) + { + ExternalVideoProvider provider = getVideoProvider(media); + if (provider == null) + { + return null; + } + return provider.getUrl(media, null); + } + + /** + * {@inheritDoc} + */ + @Override + public boolean onPostSave(Content media) + { + ExternalVideoProvider provider = getVideoProvider(media); + if (provider != null) + { + provider.processVideo(media); + } + + return super.onPostSave(media); + } + + /** + * {@inheritDoc} + */ + public String getFilename(Content media) + { + ExternalVideoProvider provider = getVideoProvider(media); + if (provider != null) + { + return provider.getFilename(media); + } + + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String getThumbnailUrl(Content media) + { + ExternalVideoProvider provider = getVideoProvider(media); + if (provider == null) + { + return null; + } + return provider.getThumbnailUrl(media); + } + + /** + * {@inheritDoc} + */ + @Override + public String getPreviewUrl(Content media) + { + ExternalVideoProvider provider = getVideoProvider(media); + if (provider == null) + { + return null; + } + return provider.getPreviewUrl(media); + } + + /** + * {@inheritDoc} + */ + @Override + public void stop() + { + Map<String, ExternalVideoProvider> providers = this.getVideoProviders(); + if (providers != null) + { + for (ExternalVideoProvider provider : providers.values()) + { + provider.stop(); + } + } + super.stop(); + } + + /** + * {@inheritDoc} + */ + @Override + public String getReplacementThumbnail() + { + return "/.resources/media/icons/thumb-video.png"; + } +} Added: magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoUtil.java =================================================================== --- magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoUtil.java (rev 0) +++ magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/ExternalVideoUtil.java 2013-09-26 14:20:25 UTC (rev 4344) @@ -0,0 +1,244 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +import info.magnolia.cms.beans.runtime.Document; +import info.magnolia.cms.core.Content; +import info.magnolia.cms.util.ContentUtil; +import info.magnolia.cms.util.NodeDataUtil; +import info.magnolia.context.MgnlContext; +import info.magnolia.module.admininterface.SaveHandlerImpl; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.Calendar; + +import javax.jcr.RepositoryException; + +import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule; +import net.sourceforge.openutils.mgnlmedia.media.types.impl.MediaWithPreviewImageTypeHandler; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * @author molaschi + * @version $Id: $ + */ +public class ExternalVideoUtil +{ + + public static final String ND_STATUS = "status"; + + public static final String ND_STATUS_CHANGE = "statusLastModified"; + + public static final String ND_ERROR = "error"; + + public static final String ND_ERROR_MESSAGE = "errorMessage"; + + public static final String ND_PROGRESS = "uploadProgress"; + + public static Logger log = LoggerFactory.getLogger(ExternalVideoUtil.class); + + public static boolean setProperty(final String mediaUUID, final String property, final Object value) + { + try + { + return MgnlContext.doInSystemContext(new MgnlContext.Op<Boolean, RepositoryException>() + { + + public Boolean exec() throws RepositoryException + { + Content media = ContentUtil.getContentByUUID(MediaModule.REPO, mediaUUID); + if (media != null) + { + NodeDataUtil.getOrCreateAndSet(media, property, value); + media.save(); + return true; + } + return false; + } + }); + } + catch (RepositoryException e) + { + return false; + } + } + + public static boolean removeProperty(final String mediaUUID, final String property) + { + try + { + return MgnlContext.doInSystemContext(new MgnlContext.Op<Boolean, RepositoryException>() + { + + public Boolean exec() throws RepositoryException + { + Content media = ContentUtil.getContentByUUID(MediaModule.REPO, mediaUUID); + if (media != null) + { + media.deleteNodeData(property); + media.save(); + return true; + } + return false; + } + }); + } + catch (RepositoryException e) + { + return false; + } + } + + public static String getStatusProperty( String statusSuffix ) { + return StringUtils.join(new String[]{ND_STATUS, statusSuffix != null ? "-" : null , statusSuffix}); + } + + public static String getErrorProperty(String suffix) { + return StringUtils.join(new String[]{ND_ERROR, suffix != null ? "-" : null , suffix}); + } + + public static String getStatus( final Content mediaNode, String statusSuffix ) { + return NodeDataUtil.getString(mediaNode, getStatusProperty( statusSuffix ) ); + } + + public static boolean setStatus(final String mediaUUID, final String statusSuffix, final String status) { + try { + return MgnlContext.doInSystemContext(new MgnlContext.Op<Boolean, RepositoryException>() { + public Boolean exec() throws RepositoryException { + Content media = ContentUtil.getContentByUUID(MediaModule.REPO, mediaUUID); + if (media != null) { + String statusProperty = getStatusProperty( statusSuffix ); + if ( ! media.hasNodeData(statusProperty) + || !StringUtils.equals(NodeDataUtil.getString(media, statusProperty), status)) { + NodeDataUtil.getOrCreateAndSet(media, statusProperty, status); + NodeDataUtil.getOrCreateAndSet(media, statusProperty + "LastModified", Calendar.getInstance()); + media.save(); + } + return true; + } + return false; + } + }); + } catch (RepositoryException e) { + return false; + } + } + + public static boolean hasStatus(final Content mediaNode, final String statusSuffix, final String status) { + String statusProperty = getStatusProperty( statusSuffix ); + return StringUtils.equals( NodeDataUtil.getString( mediaNode, statusProperty ), status ); + } + + public static boolean hasStatus(final String mediaUUID, final String statusSuffix, final String status) { + try { + return MgnlContext.doInSystemContext(new MgnlContext.Op<Boolean, RepositoryException>() { + public Boolean exec() throws RepositoryException { + Content media = ContentUtil.getContentByUUID(MediaModule.REPO, mediaUUID); + return media != null && hasStatus( media, statusSuffix, status ); + } + }); + } catch (RepositoryException e) { + return false; + } + } + + public static boolean setStatus(final String mediaUUID, final String status) { + return setStatus(mediaUUID, null, status); + } + + + public static boolean setError(final String mediaUUID, final String suffix, final String message) { + try { + return MgnlContext.doInSystemContext(new MgnlContext.Op<Boolean, RepositoryException>() { + public Boolean exec() throws RepositoryException { + Content media = ContentUtil.getContentByUUID(MediaModule.REPO, mediaUUID); + if (media != null) { + NodeDataUtil.getOrCreateAndSet(media, getErrorProperty(suffix), true); + NodeDataUtil.getOrCreateAndSet(media, getErrorProperty(suffix) + "-" + ND_ERROR_MESSAGE, message); + media.save(); + return true; + } + return false; + } + }); + } catch (RepositoryException e) { + return false; + } + } + + public static boolean copyPreviewImageToRepository(Content media, final String previewUrl) throws IOException { + if ( StringUtils.isNotBlank(previewUrl) ) { + InputStream is = null; + URL url = new URL(previewUrl); + HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); + httpConn.setConnectTimeout(5000); + if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) { + is = httpConn.getInputStream(); + File file = File.createTempFile("external-video", "preview"); + FileOutputStream fout = null; + try + { + fout = new FileOutputStream(file); + IOUtils.copy(is, fout); + } + finally + { + IOUtils.closeQuietly(fout); + } + String contentType = httpConn.getContentType(); + Document doc = new Document(file, contentType); + try + { + SaveHandlerImpl.saveDocument( + media, + doc, + MediaWithPreviewImageTypeHandler.PREVIEW_NODEDATA_NAME, + "preview", + null); + media.save(); + return true; + } + catch (RepositoryException e) + { + log.error(e.getMessage(), e); + } + finally + { + doc.delete(); + } + } + else + { + log.warn("Problem establishing connection with {}: {}", url, httpConn.getResponseCode()); + } + } + return false; + } + + public static boolean copyPreviewImageToRepository(final String mediaUUID, final String previewUrl) + throws IOException + { + return MgnlContext.doInSystemContext(new MgnlContext.Op<Boolean, IOException>() + { + + public Boolean exec() throws IOException + { + Content media = ContentUtil.getContentByUUID(MediaModule.REPO, mediaUUID); + if (media != null) + { + return copyPreviewImageToRepository(media, previewUrl); + } + return false; + } + }); + + } +} Added: magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpAccount.java =================================================================== --- magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpAccount.java (rev 0) +++ magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpAccount.java 2013-09-26 14:20:25 UTC (rev 4344) @@ -0,0 +1,90 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +/** + * @author molaschi + * @version $Id: $ + */ +public class FtpAccount +{ + + private String username; + + private String password; + + private String url; + + private boolean passive; + + /** + * Returns the username. + * @return the username + */ + public String getUsername() + { + return username; + } + + /** + * Sets the username. + * @param username the username to set + */ + public void setUsername(String username) + { + this.username = username; + } + + /** + * Returns the password. + * @return the password + */ + public String getPassword() + { + return password; + } + + /** + * Sets the password. + * @param password the password to set + */ + public void setPassword(String password) + { + this.password = password; + } + + /** + * Returns the url. + * @return the url + */ + public String getUrl() + { + return url; + } + + /** + * Sets the url. + * @param url the url to set + */ + public void setUrl(String url) + { + this.url = url; + } + + /** + * Returns the passive. + * @return the passive + */ + public boolean isPassive() + { + return passive; + } + + /** + * Sets the passive. + * @param passive the passive to set + */ + public void setPassive(boolean passive) + { + this.passive = passive; + } + +} Added: magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpAsyncUploadExternalVideoProvider.java =================================================================== --- magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpAsyncUploadExternalVideoProvider.java (rev 0) +++ magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpAsyncUploadExternalVideoProvider.java 2013-09-26 14:20:25 UTC (rev 4344) @@ -0,0 +1,69 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +import java.io.IOException; + +import javax.jcr.RepositoryException; + +import org.apache.commons.lang.math.NumberUtils; + +import info.magnolia.cms.beans.runtime.FileProperties; +import info.magnolia.cms.core.Content; +import info.magnolia.cms.core.NodeData; +import info.magnolia.context.MgnlContext; +import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule; + + +/** + * @author molaschi + * @version $Id: $ + */ +public abstract class FtpAsyncUploadExternalVideoProvider extends AsyncUploadExternalVideoProvider +{ + + private FtpAccount account = new FtpAccount(); + + /** + * {@inheritDoc} + */ + @Override + public void uploadVideo(final String mediaUUID) throws IOException, RepositoryException + { + Content media = MgnlContext + .getSystemContext() + .getHierarchyManager(MediaModule.REPO) + .getContentByUUID(mediaUUID); + NodeData file = media.getNodeData(BaseVideoTypeHandler.ORGINAL_NODEDATA_NAME); + long size = NumberUtils.toLong(file.getAttribute(FileProperties.PROPERTY_SIZE), -1); + FtpUtil.upload(account, media.getNodeData(BaseVideoTypeHandler.ORGINAL_NODEDATA_NAME).getStream(), size, this + .getUploadFileName(media), new FtpUtil.UploadProgress() + { + + public void updateProgress(long totalBytesTransferred) + { + ExternalVideoUtil.setProperty( + mediaUUID, + AsyncUploadExternalVideoProvider.ND_PROGRESS, + totalBytesTransferred); + } + }); + } + + /** + * Returns the account. + * @return the account + */ + public FtpAccount getAccount() + { + return account; + } + + /** + * Sets the account. + * @param account the account to set + */ + public void setAccount(FtpAccount account) + { + this.account = account; + } + +} Added: magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpUtil.java =================================================================== --- magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpUtil.java (rev 0) +++ magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/FtpUtil.java 2013-09-26 14:20:25 UTC (rev 4344) @@ -0,0 +1,106 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.net.ftp.FTP; +import org.apache.commons.net.ftp.FTPClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * @author molaschi + * @version $Id: $ + */ +public class FtpUtil +{ + + /** + * Logger. + */ + private static Logger log = LoggerFactory.getLogger(FtpUtil.class); + + public static void upload(FtpAccount account, InputStream inputStream, long size, final String fileName, + final UploadProgress progress) throws IOException + { + FTPClient f = new FTPClient(); + log.debug("Connection to {}", account.getUrl()); + f.connect(account.getUrl()); + log.debug("Login with {}", account.getUsername()); + if (f.login(account.getUsername(), account.getPassword())) + { + + String paths[] = StringUtils.split(fileName, "/"); + String path = "/"; + for (int i = 0; i < paths.length - 1; i++) + { + path += paths[i] + "/"; + if (f.listNames(path) == null) + { + log.debug("Creating folder {}", path); + f.mkd(path); + } + } + if (!"/".equals(path)) + { + log.debug("Moving to folder {}", path); + f.cwd(path); + } + + String relativeFileName = paths[paths.length - 1]; + + if (account.isPassive()) + { + log.debug("Entering passive mode"); + f.enterLocalPassiveMode(); + } + + log.debug("Storing file {} in {}", new Object[]{relativeFileName, path }); + f.setFileType(FTP.BINARY_FILE_TYPE); + if (progress != null && size > 0) + { + OutputStream os = f.storeFileStream(relativeFileName); + org.apache.commons.net.io.Util.copyStream( + inputStream, + os, + f.getBufferSize(), + size, + new org.apache.commons.net.io.CopyStreamAdapter() + { + + @Override + public void bytesTransferred(long totalBytesTransferred, int bytesTransferred, long streamSize) + { + log.debug("File {} upload: {} / {}", new Object[]{ + fileName, + totalBytesTransferred, + streamSize }); + progress.updateProgress((int) (100 * totalBytesTransferred / streamSize)); + } + }); + os.flush(); + IOUtils.closeQuietly(os); + IOUtils.closeQuietly(inputStream); + + f.completePendingCommand(); + } + else + { + f.storeFile(relativeFileName, inputStream); + } + log.debug("Done, disconnecting"); + } + f.disconnect(); + } + + public interface UploadProgress + { + + void updateProgress(long totalBytesTransferred); + } + +} Added: magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/TrascodingExternalVideoProvider.java =================================================================== --- magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/TrascodingExternalVideoProvider.java (rev 0) +++ magnoliamodules/branches/magnolia44/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/externalvideo/TrascodingExternalVideoProvider.java 2013-09-26 14:20:25 UTC (rev 4344) @@ -0,0 +1,21 @@ +package net.sourceforge.openutils.mgnlmedia.externalvideo; + +/** + * @author molaschi + * @version $Id: $ + */ +public interface TrascodingExternalVideoProvider extends ExternalVideoProvider +{ + + public final static String STATUS_TO_TRASCODE = "to_trascode"; + + public final static String STATUS_TRASCODING = "trascoding"; + + public final static String STATUS_TRASCODED = "trascoded"; + + void startTrascoding(String mediaUUID); + + void updateTrascodingProgress(String mediaUUID, double progress); + + void trascoded(String mediaUUID); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <luc...@us...> - 2013-09-26 13:23:42
|
Revision: 4343 http://openutils.svn.sourceforge.net/openutils/?rev=4343&view=rev Author: lucaboati Date: 2013-09-26 13:23:38 +0000 (Thu, 26 Sep 2013) Log Message: ----------- remove deprecations, content to node, setAttribute addAttribute removed Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/RenameThumbToImageTask.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/uri/MediaURI2RepositoryMapping.java Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/RenameThumbToImageTask.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/RenameThumbToImageTask.java 2013-09-25 17:22:52 UTC (rev 4342) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/RenameThumbToImageTask.java 2013-09-26 13:23:38 UTC (rev 4343) @@ -19,25 +19,24 @@ package net.sourceforge.openutils.mgnlmedia.media.setup; +import java.io.InputStream; + import info.magnolia.cms.beans.runtime.FileProperties; -import info.magnolia.cms.core.HierarchyManager; -import info.magnolia.cms.core.search.Query; -import info.magnolia.cms.core.search.QueryManager; -import info.magnolia.cms.core.search.QueryResult; +import info.magnolia.cms.core.MgnlNodeType; +import info.magnolia.jcr.util.NodeUtil; +import info.magnolia.jcr.util.PropertyUtil; import info.magnolia.module.InstallContext; import info.magnolia.module.delta.AbstractTask; import info.magnolia.module.delta.TaskExecutionException; import it.openutils.mgnlutils.api.NodeUtilsExt; -import java.util.Collection; - -import javax.jcr.Binary; import javax.jcr.Node; -import javax.jcr.Property; -import javax.jcr.PropertyType; import javax.jcr.RepositoryException; import javax.jcr.Session; +import javax.jcr.nodetype.NodeType; +import org.apache.jackrabbit.value.BinaryValue; + import net.sourceforge.openutils.mgnlcriteria.jcr.query.AdvancedResult; import net.sourceforge.openutils.mgnlcriteria.jcr.query.AdvancedResultItem; import net.sourceforge.openutils.mgnlcriteria.jcr.query.Criteria; @@ -70,7 +69,7 @@ { try { - // [LB] FIXME + // [LB] FIXME? Session hm = installContext.getJCRSession(MediaModule.REPO); Criteria criteria = JCRCriteriaFactory .createCriteria() @@ -81,42 +80,37 @@ AdvancedResult result = criteria.execute(); for (AdvancedResultItem node : result.getItems()) { - if (node.hasProperty("thumbnail")) + if (node.hasNode("thumbnail")) { - Property thumbnail = node.getProperty("thumbnail"); - if (thumbnail.getType() == PropertyType.BINARY) + Node thumbnail = node.getNode("thumbnail"); + if (NodeUtil.isNodeType(thumbnail, NodeType.NT_RESOURCE)) { - // [LB] FIXME - NodeUtilsExt.setAttribute( - thumbnail, - "image", + Node image = node.addNode("image", NodeType.NT_RESOURCE); + InputStream stream = node.getProperty(MgnlNodeType.JCR_DATA).getValue().getBinary().getStream(); + try + { + image.setProperty(MgnlNodeType.JCR_DATA, new BinaryValue(stream)); + } + catch (RepositoryException e) + { + log.error(e.getMessage(), e); + } + + image.setProperty( FileProperties.PROPERTY_EXTENSION, - NodeUtilsExt.getAttribute(thumbnail, FileProperties.PROPERTY_EXTENSION)); - NodeUtilsExt.setAttribute( - thumbnail, - "image", + PropertyUtil.getString(thumbnail, FileProperties.PROPERTY_EXTENSION)); + image.setProperty( FileProperties.PROPERTY_FILENAME, - NodeUtilsExt.getAttribute(thumbnail, FileProperties.PROPERTY_FILENAME)); - NodeUtilsExt.setAttribute( - thumbnail, - "image", - FileProperties.PROPERTY_CONTENTTYPE, - NodeUtilsExt.getAttribute(thumbnail, FileProperties.PROPERTY_CONTENTTYPE)); - NodeUtilsExt.setAttribute( - thumbnail, - "image", + PropertyUtil.getString(thumbnail, FileProperties.PROPERTY_FILENAME)); + image.setProperty( FileProperties.PROPERTY_LASTMODIFIED, - NodeUtilsExt.getAttribute(thumbnail, FileProperties.PROPERTY_LASTMODIFIED)); - NodeUtilsExt.setAttribute( - thumbnail, - "image", + PropertyUtil.getString(thumbnail, FileProperties.PROPERTY_LASTMODIFIED)); + image.setProperty( FileProperties.PROPERTY_WIDTH, - NodeUtilsExt.getAttribute(thumbnail, FileProperties.PROPERTY_WIDTH)); - NodeUtilsExt.setAttribute( - thumbnail, - "image", + PropertyUtil.getString(thumbnail, FileProperties.PROPERTY_WIDTH)); + image.setProperty( FileProperties.PROPERTY_HEIGHT, - NodeUtilsExt.getAttribute(thumbnail, FileProperties.PROPERTY_HEIGHT)); + PropertyUtil.getString(thumbnail, FileProperties.PROPERTY_HEIGHT)); thumbnail.remove(); } Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java 2013-09-25 17:22:52 UTC (rev 4342) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java 2013-09-26 13:23:38 UTC (rev 4343) @@ -314,52 +314,53 @@ if (media != null) { - - Property res = null; - if ("original".equals(resolution)) + try { - res = PropertyUtil.getPropertyOrNull(media, "original"); - } - else - { - Node resolutions = getResolutionsNode(media); - if (resolutions != null) + Node res = null; + if ("original".equals(resolution)) { - try + res = media.getNode("original"); + } + else + { + Node resolutions = getResolutionsNode(media); + if (resolutions != null) { - if (resolutions.hasProperty(ImageUtils.getResolutionPath("res-" + resolution))) + + if (resolutions.hasNode(ImageUtils.getResolutionPath("res-" + resolution))) { - res = resolutions.getProperty(ImageUtils.getResolutionPath("res-" + resolution)); + res = resolutions.getNode(ImageUtils.getResolutionPath("res-" + resolution)); } + } - catch (RepositoryException e) - { - // do nothing - } } - } - if (res != null) - { - return new int[]{ - NumberUtils.toInt(NodeUtilsExt.getAttribute(res, FileProperties.PROPERTY_WIDTH)), - NumberUtils.toInt(NodeUtilsExt.getAttribute(res, FileProperties.PROPERTY_HEIGHT)) }; - } - else - { - // MEDIA-231 - res = PropertyUtil.getPropertyOrNull(media, "original"); if (res != null) { - Point size = ImageUtils.parseForSize(resolution); - if (NumberUtils.toInt(NodeUtilsExt.getAttribute(res, FileProperties.PROPERTY_WIDTH)) == size.x - && NumberUtils.toInt(NodeUtilsExt.getAttribute(res, FileProperties.PROPERTY_HEIGHT)) == size.y) + return new int[]{ + NumberUtils.toInt(PropertyUtil.getString(res, FileProperties.PROPERTY_WIDTH)), + NumberUtils.toInt(PropertyUtil.getString(res, FileProperties.PROPERTY_HEIGHT)) }; + } + else + { + // MEDIA-231 + res = media.getNode("original"); + if (res != null) { - return new int[]{size.x, size.y }; + Point size = ImageUtils.parseForSize(resolution); + if (NumberUtils.toInt(PropertyUtil.getString(res, FileProperties.PROPERTY_WIDTH)) == size.x + && NumberUtils.toInt(PropertyUtil.getString(res, FileProperties.PROPERTY_HEIGHT)) == size.y) + { + return new int[]{size.x, size.y }; + } } + } - } + catch (RepositoryException e) + { + // do nothing + } } return new int[]{-1, -1 }; Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/uri/MediaURI2RepositoryMapping.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/uri/MediaURI2RepositoryMapping.java 2013-09-25 17:22:52 UTC (rev 4342) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/uri/MediaURI2RepositoryMapping.java 2013-09-26 13:23:38 UTC (rev 4343) @@ -21,12 +21,12 @@ import info.magnolia.cms.beans.config.URI2RepositoryMapping; import info.magnolia.context.MgnlContext; +import info.magnolia.jcr.util.PropertyUtil; import info.magnolia.link.Link; import it.openutils.mgnlutils.api.NodeUtilsExt; import javax.jcr.Node; import javax.jcr.PathNotFoundException; -import javax.jcr.Property; import javax.jcr.RepositoryException; import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule; @@ -127,8 +127,8 @@ String ndName = StringUtils.substringBefore(handle.substring(p + search.length()), "/"); if (resolutionsNode != null && !StringUtils.isEmpty(ndName)) { - Property nd = resolutionsNode.getProperty(ndName); - String resolution = NodeUtilsExt.getAttribute(nd, "resolutionNotYetCreated"); + Node nd = resolutionsNode.getNode(ndName); + String resolution = PropertyUtil.getString(nd, "resolutionNotYetCreated"); if (!StringUtils.isEmpty(resolution)) { ImageUtils.checkOrCreateResolution(mediaNode, resolution, null); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <luc...@us...> - 2013-09-25 17:22:58
|
Revision: 4342 http://openutils.svn.sourceforge.net/openutils/?rev=4342&view=rev Author: lucaboati Date: 2013-09-25 17:22:52 +0000 (Wed, 25 Sep 2013) Log Message: ----------- remove deprecations, content to node, simplemedia back to work! Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/dialog/DialogSelectMedia.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/dialog/LayerDialogMVC.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaBeanBuilder.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaBrowserPage.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaSearchPage.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/save/MediaCustomSaveHandler.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/AddExtensionToType.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/ConditionallySubscribeMediaRepositoriesTask.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/RenameThumbToImageTask.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseTypeHandler.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseVideoTypeHandler.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/DocumentTypeHandler.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/ExternalVideoTypeHandler.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/ImageTypeHandler.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/MediaWithPreviewImageTypeHandler.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/VideoTypeHandler.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/uri/MediaURI2RepositoryMapping.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/IcoUtils.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtils.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/JpegUtils.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/MediaLoadUtils.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/playlist/dialog/PlaylistEntryDialogMVC.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/playlist/pages/DefaultPlaylistTrackExtensionContributor.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView.java magnoliamodules/trunk/openutils-mgnlmedia/src/test/java/net/sourceforge/openutils/mgnlmedia/media/repotests/MediaTests.java magnoliamodules/trunk/openutils-mgnlmedia/src/test/java/net/sourceforge/openutils/mgnlmedia/media/utils/FileNodeData.java magnoliamodules/trunk/openutils-mgnlmedia/src/test/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtilsTest.java Added Paths: ----------- magnoliamodules/trunk/openutils-mgnlmedia/src/test/java/net/sourceforge/openutils/mgnlmedia/media/utils/FileNode.java Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/dialog/DialogSelectMedia.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/dialog/DialogSelectMedia.java 2013-09-24 17:06:28 UTC (rev 4341) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/dialog/DialogSelectMedia.java 2013-09-25 17:22:52 UTC (rev 4342) @@ -21,7 +21,6 @@ import info.magnolia.cms.beans.runtime.FileProperties; import info.magnolia.cms.core.Content; -import info.magnolia.cms.core.HierarchyManager; import info.magnolia.cms.core.NodeData; import info.magnolia.cms.i18n.Messages; import info.magnolia.cms.i18n.MessagesUtil; @@ -33,9 +32,11 @@ import java.util.Map; import javax.jcr.ItemNotFoundException; +import javax.jcr.Node; import javax.jcr.PathNotFoundException; import javax.jcr.PropertyType; import javax.jcr.RepositoryException; +import javax.jcr.Session; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -121,7 +122,7 @@ @Override protected void addToParameters(Map<String, Object> parameters) { - Content media = null; + Node media = null; NodeData nd = null; if (getStorageNode() != null) @@ -139,8 +140,8 @@ { try { - HierarchyManager hm = MgnlContext.getHierarchyManager(MediaModule.REPO); - media = hm.getContentByUUID(this.getValue()); + Session hm = MgnlContext.getJCRSession(MediaModule.REPO); + media = hm.getNodeByIdentifier(this.getValue()); } catch (ItemNotFoundException ex) { @@ -156,8 +157,16 @@ parameters.put("thumbnailUrl", this.getThumbnailUrl(media, nd)); parameters.put("msgs", this.getMessages()); parameters.put("filename", this.getFilename(media, nd)); - parameters.put("handle", media != null ? media.getHandle() : null); + try + { + parameters.put("handle", media != null ? media.getPath() : null); + } + catch (RepositoryException e) + { + log.error("RepositoryException {}", e); + } + if ("true".equals(this.getConfigValue("resizing"))) { parameters.put("width", this.getWidth()); @@ -185,12 +194,12 @@ * @return media content * @throws RepositoryException exception retrieving media */ - protected Content getMedia() throws RepositoryException + protected Node getMedia() throws RepositoryException { if (this.getValue() != null && this.getValue().length() > 0) { - HierarchyManager hm = MgnlContext.getHierarchyManager(MediaModule.REPO); - return hm.getContentByUUID(this.getValue()); + Session hm = MgnlContext.getJCRSession(MediaModule.REPO); + return hm.getNodeByIdentifier(this.getValue()); } return null; } @@ -201,7 +210,7 @@ * @param nd * @return thumbnail url */ - public String getThumbnailUrl(Content media, NodeData nd) + public String getThumbnailUrl(Node media, NodeData nd) { if (nd != null && nd.getType() == PropertyType.BINARY) @@ -252,7 +261,7 @@ * @param media2 * @return filename */ - public String getFilename(Content media, NodeData nd) + public String getFilename(Node media, NodeData nd) { if (nd != null && nd.getType() == PropertyType.BINARY) Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/dialog/LayerDialogMVC.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/dialog/LayerDialogMVC.java 2013-09-24 17:06:28 UTC (rev 4341) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/dialog/LayerDialogMVC.java 2013-09-25 17:22:52 UTC (rev 4342) @@ -150,7 +150,7 @@ // TODO rename dei nodi in base al filename? - return MediaConfigurationManager.getInstance().getTypes().get(type).getHandler().onPostSave(node); + return MediaConfigurationManager.getInstance().getTypes().get(type).getHandler().onPostSave(node.getJCRNode()); } /** Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java 2013-09-24 17:06:28 UTC (rev 4341) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java 2013-09-25 17:22:52 UTC (rev 4342) @@ -19,7 +19,6 @@ package net.sourceforge.openutils.mgnlmedia.media.pages; - import info.magnolia.context.MgnlContext; import info.magnolia.freemarker.FreemarkerUtil; @@ -227,7 +226,7 @@ { try { - return MgnlContext.getHierarchyManager(MediaModule.REPO).getContentByUUID(from.getUUID()); + return MgnlContext.getJCRSession(MediaModule.REPO).getNodeByIdentifier(from.getUUID()); } catch (RepositoryException e) { Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaBeanBuilder.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaBeanBuilder.java 2013-09-24 17:06:28 UTC (rev 4341) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaBeanBuilder.java 2013-09-25 17:22:52 UTC (rev 4342) @@ -22,7 +22,9 @@ import info.magnolia.cms.beans.config.URI2RepositoryManager; import info.magnolia.cms.exchange.ActivationManagerFactory; import info.magnolia.cms.security.Permission; -import info.magnolia.cms.util.NodeDataUtil; +import info.magnolia.jcr.util.MetaDataUtil; +import info.magnolia.jcr.util.NodeUtil; +import info.magnolia.jcr.util.PropertyUtil; import info.magnolia.repository.RepositoryConstants; import java.util.List; @@ -62,44 +64,44 @@ public MediaBean apply(Node media) { - String mediatype = media.getNodeData("type").getString(); + String mediatype = PropertyUtil.getString(media, "type"); MediaTypeConfiguration mtc = MediaConfigurationManager.getInstance().getTypes().get(mediatype); - - if (mtc == null) - { - log.warn("Skipping media {} with invalid media type \"{}\"", media.getHandle(), mediatype); - return null; - } - MediaBean mb = new MediaBean(); - mb.setContent(media); - mb.setMetaData(media.getMetaData()); - mb.setHandle(media.getHandle()); - mb.setName(NodeDataUtil.getString(media, MediaTypeHandler.METADATA_NAME)); - mb.setFilename(mtc.getHandler().getFilename(media)); - // backward compatibility - if (StringUtils.isEmpty(mb.getName()) && !StringUtils.isEmpty(mb.getFilename())) + try { - int p = StringUtils.lastIndexOf(mb.getFilename(), '/'); - mb.setName(p != -1 ? mb.getFilename().substring(p + 1) : mb.getFilename()); - } - mb.setTitle(mtc.getHandler().getTitle(media)); - mb.setThumbnailUrl(mtc.getHandler().getThumbnailUrl(media)); - mb.setPreviewUrl(mtc.getHandler().getPreviewUrl(media)); - mb.setDescription(mtc.getHandler().getDescription(media)); - mb.setDialog(mtc.getDialog()); - mb.setUuid(media.getUUID()); - mb.setType(mediatype); - mb.setIcon(mtc.getMenuIcon()); + if (mtc == null) + { + log.warn("Skipping media {} with invalid media type \"{}\"", media.getPath(), mediatype); + return null; + } - try - { - mb.setWritable(media.getParent().isGranted(Permission.WRITE)); + mb.setContent(media); + mb.setMetaData(MetaDataUtil.getMetaData(media)); + mb.setHandle(media.getPath()); + mb.setName(PropertyUtil.getString(media, MediaTypeHandler.METADATA_NAME)); + mb.setFilename(mtc.getHandler().getFilename(media)); + // backward compatibility + if (StringUtils.isEmpty(mb.getName()) && !StringUtils.isEmpty(mb.getFilename())) + { + int p = StringUtils.lastIndexOf(mb.getFilename(), '/'); + mb.setName(p != -1 ? mb.getFilename().substring(p + 1) : mb.getFilename()); + } + mb.setTitle(mtc.getHandler().getTitle(media)); + mb.setThumbnailUrl(mtc.getHandler().getThumbnailUrl(media)); + mb.setPreviewUrl(mtc.getHandler().getPreviewUrl(media)); + mb.setDescription(mtc.getHandler().getDescription(media)); + mb.setDialog(mtc.getDialog()); + mb.setUuid(media.getIdentifier()); + mb.setType(mediatype); + mb.setIcon(mtc.getMenuIcon()); + + mb.setWritable(NodeUtil.isGranted(media.getParent(), Permission.SET)); mb.setCanPublish(!MediaEl.module().isSingleinstance() && mb.isWritable() && ActivationManagerFactory.getActivationManager().hasAnyActiveSubscriber()); - Map<String, List<String>> workspacePaths = MediaUsedInManager.getInstance().getUsedInPaths(media.getUUID()); + Map<String, List<String>> workspacePaths = MediaUsedInManager.getInstance().getUsedInPaths( + media.getIdentifier()); mb.getUsedInWebPages().addAll(workspacePaths.get(RepositoryConstants.WEBSITE)); for (Map.Entry<String, List<String>> entry : workspacePaths.entrySet()) { @@ -115,11 +117,9 @@ { log.error("Exception caught", ex); } - mb.setMediaInfo(mtc.getHandler().getMediaInfo(media)); mb.setExternal(mtc.getHandler().isExternal(media)); return mb; } - } Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaBrowserPage.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaBrowserPage.java 2013-09-24 17:06:28 UTC (rev 4341) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaBrowserPage.java 2013-09-25 17:22:52 UTC (rev 4342) @@ -20,12 +20,13 @@ package net.sourceforge.openutils.mgnlmedia.media.pages; import info.magnolia.cms.beans.runtime.Document; -import info.magnolia.cms.core.HierarchyManager; +import info.magnolia.cms.core.MgnlNodeType; import info.magnolia.cms.i18n.Messages; import info.magnolia.cms.util.AlertUtil; -import info.magnolia.cms.util.ContentUtil; -import info.magnolia.cms.util.NodeDataUtil; import info.magnolia.context.MgnlContext; +import info.magnolia.jcr.util.NodeUtil; +import info.magnolia.jcr.util.PropertyUtil; +import it.openutils.mgnlutils.api.NodeUtilsExt; import java.io.File; import java.io.FileOutputStream; @@ -40,6 +41,7 @@ import javax.jcr.Node; import javax.jcr.RepositoryException; +import javax.jcr.Session; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -113,12 +115,12 @@ super.init(); if (StringUtils.isNotBlank(actMedia)) { - HierarchyManager mgr = MgnlContext.getHierarchyManager(MediaModule.REPO); try { - Node media = mgr.getContentByUUID(actMedia); - openPath = media.getParent().getHandle(); - actMediaHandle = media.getHandle(); + Session mgr = MgnlContext.getJCRSession(MediaModule.REPO); + Node media = mgr.getNodeByIdentifier(actMedia); + openPath = media.getParent().getPath(); + actMediaHandle = media.getPath(); } catch (RepositoryException ex) { @@ -127,16 +129,18 @@ } if (!StringUtils.isEmpty(playlistHandle)) { - Node playlistContent = ContentUtil.getContent(PlaylistConstants.REPO, playlistHandle); + Node playlistContent = NodeUtilsExt.getNodeByIdOrPath(PlaylistConstants.REPO, playlistHandle); try { - if (playlistContent.hasContent("search")) + if (playlistContent.hasNode("search")) { List<String> params = new ArrayList<String>(); - for (Node content : playlistContent.getContent("search").getChildren()) + Node search = playlistContent.getNode("search"); + Iterable<Node> nodes = NodeUtil.getNodes(search, MgnlNodeType.NT_CONTENTNODE); + for (Node content : nodes) { - String paramName = NodeDataUtil.getString(content, "name"); - String paramValue = NodeDataUtil.getString(content, "value"); + String paramName = PropertyUtil.getString(content, "name"); + String paramValue = PropertyUtil.getString(content, "value"); params.add(paramName + "=" + paramValue); } playlistSearch = StringUtils.join(params, '&'); Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java 2013-09-24 17:06:28 UTC (rev 4341) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java 2013-09-25 17:22:52 UTC (rev 4342) @@ -19,6 +19,7 @@ package net.sourceforge.openutils.mgnlmedia.media.pages; +import info.magnolia.cms.core.Content; import info.magnolia.cms.core.HierarchyManager; import info.magnolia.cms.core.ItemType; import info.magnolia.cms.core.Path; @@ -26,7 +27,6 @@ import info.magnolia.cms.exchange.ExchangeException; import info.magnolia.cms.security.Permission; import info.magnolia.cms.util.AlertUtil; -import info.magnolia.cms.util.ContentUtil; import info.magnolia.commands.CommandsManager; import info.magnolia.context.Context; import info.magnolia.context.MgnlContext; @@ -65,7 +65,6 @@ import org.apache.commons.lang.StringUtils; import com.google.common.collect.Iterators; -import com.sun.xml.internal.ws.util.MetadataUtil; /** @@ -226,7 +225,8 @@ { return null; } - writable = folder.isGranted(Permission.WRITE); + + writable = NodeUtil.isGranted(folder, Permission.SET); canPublish = writable && ActivationManagerFactory.getActivationManager().hasAnyActiveSubscriber(); MediaModule module = MediaEl.module(); Integer itemsPerPage = module.getFolderViewPageSizes().get(pagesizeSelector); @@ -417,11 +417,11 @@ // copy hm.copyTo(source, goTo); } - Node newContent = hm.getNode(destination); + Content newContent = hm.getContent(destination); try { - MetaDataUtil.updateMetaData(newContent); - MetaDataUtil.getMetaData(newContent).setUnActivated(); + MetaDataUtil.updateMetaData(newContent.getJCRNode()); + MetaDataUtil.getMetaData(newContent.getJCRNode()).setUnActivated(); } catch (Exception e) { @@ -431,7 +431,7 @@ } } newContent.save(); - return newContent; + return newContent.getJCRNode(); } /** Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaSearchPage.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaSearchPage.java 2013-09-24 17:06:28 UTC (rev 4341) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaSearchPage.java 2013-09-25 17:22:52 UTC (rev 4342) @@ -19,17 +19,16 @@ package net.sourceforge.openutils.mgnlmedia.media.pages; - -import info.magnolia.cms.core.HierarchyManager; import info.magnolia.context.MgnlContext; +import info.magnolia.jcr.util.NodeUtil; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import java.util.Map; import javax.jcr.Node; import javax.jcr.RepositoryException; +import javax.jcr.Session; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -93,12 +92,14 @@ mtc.add(entry.getValue()); } - HierarchyManager mgr = MgnlContext.getHierarchyManager(MediaModule.REPO); try { - Collection<Node> contents = mgr.getRoot().getChildren(MediaConfigurationManager.FOLDER); + Session session = MgnlContext.getJCRSession(MediaModule.REPO); + Iterable<Node> nodes = NodeUtil.getNodes( + session.getRootNode(), + MediaConfigurationManager.FOLDER.getSystemName()); List<String> tmpPaths = new ArrayList<String>(); - for (Node c : contents) + for (Node c : nodes) { tmpPaths.add(c.getName()); } Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/save/MediaCustomSaveHandler.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/save/MediaCustomSaveHandler.java 2013-09-24 17:06:28 UTC (rev 4341) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/save/MediaCustomSaveHandler.java 2013-09-25 17:22:52 UTC (rev 4342) @@ -21,15 +21,16 @@ import info.magnolia.cms.beans.runtime.MultipartForm; import info.magnolia.cms.core.Content; -import info.magnolia.cms.core.HierarchyManager; import info.magnolia.cms.security.AccessDeniedException; import info.magnolia.cms.util.NodeDataUtil; import info.magnolia.context.MgnlContext; import info.magnolia.module.admininterface.FieldSaveHandler; import javax.jcr.ItemNotFoundException; +import javax.jcr.Node; import javax.jcr.PropertyType; import javax.jcr.RepositoryException; +import javax.jcr.Session; import javax.servlet.http.HttpServletRequest; import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaConfigurationManager; @@ -83,19 +84,19 @@ else { - HierarchyManager hm = MgnlContext.getHierarchyManager(MediaModule.REPO); + Session hm = MgnlContext.getJCRSession(MediaModule.REPO); try { - Content media = hm.getContentByUUID(value); + Node media = hm.getNodeByIdentifier(value); MediaTypeConfiguration mtc = MediaConfigurationManager .getInstance() .getMediaTypeConfigurationFromMedia(media); mtc.getHandler().onSavingPropertyMedia( media, - parentNode, - configNode, + parentNode.getJCRNode(), + configNode.getJCRNode(), name, request, form, Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/AddExtensionToType.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/AddExtensionToType.java 2013-09-24 17:06:28 UTC (rev 4341) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/AddExtensionToType.java 2013-09-25 17:22:52 UTC (rev 4342) @@ -19,15 +19,18 @@ package net.sourceforge.openutils.mgnlmedia.media.setup; - -import info.magnolia.cms.core.HierarchyManager; +import info.magnolia.jcr.util.PropertyUtil; import info.magnolia.module.InstallContext; import info.magnolia.module.delta.AbstractRepositoryTask; import info.magnolia.module.delta.TaskExecutionException; -import info.magnolia.repository.RepositoryConstants; import javax.jcr.Node; import javax.jcr.RepositoryException; +import javax.jcr.Session; +import javax.jcr.ValueFormatException; +import javax.jcr.lock.LockException; +import javax.jcr.nodetype.ConstraintViolationException; +import javax.jcr.version.VersionException; import org.apache.commons.lang.StringUtils; @@ -67,17 +70,13 @@ protected void doExecute(InstallContext ctx) throws RepositoryException, TaskExecutionException { - final HierarchyManager hm = ctx.getHierarchyManager(RepositoryConstants.CONFIG); + final Session hm = ctx.getConfigJCRSession(); String nodePath = "/modules/media/mediatypes/" + this.mediatype; try { - final Node mediatypenode = hm.getContent(nodePath); - String extensions = mediatypenode.getNodeData("extensions").getString(); - if (!StringUtils.contains(extensions, this.extension)) - { - mediatypenode.setNodeData("extensions", extensions + "," + this.extension); - } + final Node mediatypenode = hm.getNode(nodePath); + setExtensions(mediatypenode); } catch (RepositoryException e) { @@ -86,12 +85,8 @@ try { - final Node mediatypenode = hm.getContent(control); - String extensions = mediatypenode.getNodeData("extensions").getString(); - if (!StringUtils.contains(extensions, this.extension)) - { - mediatypenode.setNodeData("extensions", extensions + "," + this.extension); - } + final Node mediatypenode = hm.getNode(control); + setExtensions(mediatypenode); } catch (RepositoryException e) { @@ -100,4 +95,22 @@ } + /** + * @param mediatypenode + * @throws ValueFormatException + * @throws VersionException + * @throws LockException + * @throws ConstraintViolationException + * @throws RepositoryException + */ + private void setExtensions(final Node mediatypenode) throws ValueFormatException, VersionException, LockException, + ConstraintViolationException, RepositoryException + { + String extensions = PropertyUtil.getString(mediatypenode, "extensions"); + if (!StringUtils.contains(extensions, this.extension)) + { + mediatypenode.setProperty("extensions", extensions + "," + this.extension); + } + } + } Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/ConditionallySubscribeMediaRepositoriesTask.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/ConditionallySubscribeMediaRepositoriesTask.java 2013-09-24 17:06:28 UTC (rev 4341) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/ConditionallySubscribeMediaRepositoriesTask.java 2013-09-25 17:22:52 UTC (rev 4342) @@ -19,12 +19,14 @@ package net.sourceforge.openutils.mgnlmedia.media.setup; - import info.magnolia.cms.core.ItemType; +import info.magnolia.cms.core.MgnlNodeType; import info.magnolia.cms.exchange.ActivationManager; import info.magnolia.cms.exchange.ActivationManagerFactory; import info.magnolia.cms.exchange.Subscriber; import info.magnolia.cms.util.ContentUtil; +import info.magnolia.context.MgnlContext; +import info.magnolia.jcr.util.PropertyUtil; import info.magnolia.module.InstallContext; import info.magnolia.module.delta.AbstractTask; import info.magnolia.module.delta.TaskExecutionException; @@ -60,27 +62,34 @@ // check for the sigleinstance flag directly in jcr, the module is not started yet boolean singleinstance = false; - Node moduleConfigNode = ContentUtil.getContent(RepositoryConstants.CONFIG, "/modules/media/config"); - if (moduleConfigNode != null) + try { - singleinstance = moduleConfigNode.getNodeData("singleinstance").getBoolean(); - } - if (singleinstance) - { - return; - } + Node moduleConfigNode = ctx.getConfigJCRSession().getNode("/modules/media/config"); + if (moduleConfigNode != null) + { + singleinstance = PropertyUtil.getBoolean(moduleConfigNode, "singleinstance", false); + } + if (singleinstance) + { + return; + } - final ModuleDefinition def = ctx.getCurrentModuleDefinition(); + final ModuleDefinition def = ctx.getCurrentModuleDefinition(); - Collection<RepositoryDefinition> repositories = def.getRepositories(); - for (RepositoryDefinition repDef : repositories) - { - List<String> workspaces = repDef.getWorkspaces(); - for (final String workspace : workspaces) + Collection<RepositoryDefinition> repositories = def.getRepositories(); + for (RepositoryDefinition repDef : repositories) { - subscribeRepository(workspace); + List<String> workspaces = repDef.getWorkspaces(); + for (final String workspace : workspaces) + { + subscribeRepository(workspace); + } } } + catch (RepositoryException re) + { + throw new TaskExecutionException("wasn't able to config singleinstance", re); + } } @@ -96,16 +105,15 @@ { if (!subscriber.isSubscribed("/", repository)) { - Node subscriptionsNode = ContentUtil.getContent(RepositoryConstants.CONFIG, sManager.getConfigPath() - + "/" - + subscriber.getName() - + "/subscriptions"); try { - Node newSubscription = subscriptionsNode.createContent(repository, ItemType.CONTENTNODE); - newSubscription.createNodeData("toURI").setValue("/"); - newSubscription.createNodeData("repository").setValue(repository); - newSubscription.createNodeData("fromURI").setValue("/"); + Node subscriptionsNode = MgnlContext.getJCRSession(RepositoryConstants.CONFIG).getNode( + sManager.getConfigPath() + "/" + subscriber.getName() + "/subscriptions"); + + Node newSubscription = subscriptionsNode.addNode(repository, MgnlNodeType.NT_CONTENTNODE); + newSubscription.setProperty("toURI", "/"); + newSubscription.setProperty("repository", repository); + newSubscription.setProperty("fromURI", "/"); // subscriptionsNode.save(); } catch (RepositoryException re) Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/RenameThumbToImageTask.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/RenameThumbToImageTask.java 2013-09-24 17:06:28 UTC (rev 4341) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/RenameThumbToImageTask.java 2013-09-25 17:22:52 UTC (rev 4342) @@ -21,20 +21,28 @@ import info.magnolia.cms.beans.runtime.FileProperties; import info.magnolia.cms.core.HierarchyManager; -import info.magnolia.cms.core.NodeData; import info.magnolia.cms.core.search.Query; import info.magnolia.cms.core.search.QueryManager; import info.magnolia.cms.core.search.QueryResult; import info.magnolia.module.InstallContext; import info.magnolia.module.delta.AbstractTask; import info.magnolia.module.delta.TaskExecutionException; +import it.openutils.mgnlutils.api.NodeUtilsExt; import java.util.Collection; +import javax.jcr.Binary; import javax.jcr.Node; +import javax.jcr.Property; import javax.jcr.PropertyType; import javax.jcr.RepositoryException; +import javax.jcr.Session; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.AdvancedResult; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.AdvancedResultItem; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.Criteria; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.JCRCriteriaFactory; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.criterion.Order; import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaConfigurationManager; import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule; @@ -60,43 +68,57 @@ @SuppressWarnings("unchecked") public void execute(InstallContext installContext) throws TaskExecutionException { - HierarchyManager hm = installContext.getHierarchyManager(MediaModule.REPO); - QueryManager mgr = hm.getQueryManager(); try { - Query query = mgr.createQuery("//*", Query.XPATH); - QueryResult result = query.execute(); - Collection<Node> medias = result.getContent(MediaConfigurationManager.MEDIA.getSystemName()); - for (Node node : medias) + // [LB] FIXME + Session hm = installContext.getJCRSession(MediaModule.REPO); + Criteria criteria = JCRCriteriaFactory + .createCriteria() + .setWorkspace(MediaConfigurationManager.MEDIA.getSystemName()) + .setBasePath("//*") + // .add(Restrictions.eq("jcr:primaryType", "mgnl:contentNode")) + .addOrder(Order.desc("@jcr:score")); + AdvancedResult result = criteria.execute(); + for (AdvancedResultItem node : result.getItems()) { - if (node.hasNodeData("thumbnail")) + if (node.hasProperty("thumbnail")) { - NodeData thumbnail = node.getNodeData("thumbnail"); + Property thumbnail = node.getProperty("thumbnail"); if (thumbnail.getType() == PropertyType.BINARY) { - NodeData image = node.createNodeData("image", PropertyType.BINARY); - image.setValue(thumbnail.getStream()); - - image.setAttribute( + // [LB] FIXME + NodeUtilsExt.setAttribute( + thumbnail, + "image", FileProperties.PROPERTY_EXTENSION, - thumbnail.getAttribute(FileProperties.PROPERTY_EXTENSION)); - image.setAttribute( + NodeUtilsExt.getAttribute(thumbnail, FileProperties.PROPERTY_EXTENSION)); + NodeUtilsExt.setAttribute( + thumbnail, + "image", FileProperties.PROPERTY_FILENAME, - thumbnail.getAttribute(FileProperties.PROPERTY_FILENAME)); - image.setAttribute( + NodeUtilsExt.getAttribute(thumbnail, FileProperties.PROPERTY_FILENAME)); + NodeUtilsExt.setAttribute( + thumbnail, + "image", FileProperties.PROPERTY_CONTENTTYPE, - thumbnail.getAttribute(FileProperties.PROPERTY_CONTENTTYPE)); - image.setAttribute( + NodeUtilsExt.getAttribute(thumbnail, FileProperties.PROPERTY_CONTENTTYPE)); + NodeUtilsExt.setAttribute( + thumbnail, + "image", FileProperties.PROPERTY_LASTMODIFIED, - thumbnail.getAttribute(FileProperties.PROPERTY_LASTMODIFIED)); - image.setAttribute( + NodeUtilsExt.getAttribute(thumbnail, FileProperties.PROPERTY_LASTMODIFIED)); + NodeUtilsExt.setAttribute( + thumbnail, + "image", FileProperties.PROPERTY_WIDTH, - thumbnail.getAttribute(FileProperties.PROPERTY_WIDTH)); - image.setAttribute( + NodeUtilsExt.getAttribute(thumbnail, FileProperties.PROPERTY_WIDTH)); + NodeUtilsExt.setAttribute( + thumbnail, + "image", FileProperties.PROPERTY_HEIGHT, - thumbnail.getAttribute(FileProperties.PROPERTY_HEIGHT)); + NodeUtilsExt.getAttribute(thumbnail, FileProperties.PROPERTY_HEIGHT)); - thumbnail.delete(); + thumbnail.remove(); } } } Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java 2013-09-24 17:06:28 UTC (rev 4341) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java 2013-09-25 17:22:52 UTC (rev 4342) @@ -20,13 +20,18 @@ package net.sourceforge.openutils.mgnlmedia.media.tags.el; import info.magnolia.cms.beans.runtime.FileProperties; +import info.magnolia.cms.core.Content; +import info.magnolia.cms.core.DefaultContent; import info.magnolia.cms.core.NodeData; +import info.magnolia.cms.i18n.I18nContentWrapper; +import info.magnolia.cms.util.ContentUtil; +import info.magnolia.cms.util.NodeMapWrapper; import info.magnolia.context.MgnlContext; import info.magnolia.jcr.util.ContentMap; import info.magnolia.jcr.util.PropertyUtil; -import info.magnolia.jcr.wrapper.NodeWrapperFactory; import info.magnolia.module.ModuleRegistry; import info.magnolia.objectfactory.Components; +import it.openutils.mgnlutils.api.NodeUtilsExt; import java.awt.Point; import java.util.ArrayList; @@ -37,11 +42,10 @@ import java.util.Map; import javax.jcr.Node; -import javax.jcr.PathNotFoundException; +import javax.jcr.Property; import javax.jcr.PropertyType; import javax.jcr.RepositoryException; import javax.jcr.Value; -import javax.jcr.ValueFormatException; import javax.jcr.query.InvalidQueryException; import javax.servlet.http.HttpServletRequest; @@ -113,7 +117,27 @@ if (node != null) { - return Components.getComponent(NodeWrapperFactory.class).wrapNode(node); + // return Components.getComponent(NodeWrapperFactory.class).wrapNode(node); + // GRAVE: Servlet.service() for servlet default threw exception + // info.magnolia.objectfactory.NoSuchComponentException: No component configuration for type + // [info.magnolia.jcr.wrapper.NodeWrapperFactory] found. Please add a configuration to your module + // descriptor. + Content currentpage = null; + + if (MgnlContext.isWebContext()) + { + currentpage = MgnlContext.getAggregationState().getMainContent(); + } + + if (currentpage == null) + { + currentpage = new DefaultContent(node); + } + + Content content = new NodeMapWrapper( + new I18nContentWrapper(new DefaultContent(node)), + currentpage.getHandle()); + return content.getJCRNode(); } return null; @@ -198,7 +222,7 @@ List<String> res = new ArrayList<String>(); - Node resolutions = getResolutionsNode(media); + Content resolutions = ContentUtil.asContent(getResolutionsNode(media)); Collection<NodeData> nodeDataCollection = resolutions.getNodeDataCollection(); @@ -237,32 +261,34 @@ return null; } - // MEDIA-90 may be simply a url - if (media.getNodeData(BaseTypeHandler.ORGINAL_NODEDATA_NAME).getType() == PropertyType.BINARY) + try { - FileProperties prop = new FileProperties(media, BaseTypeHandler.ORGINAL_NODEDATA_NAME); - Integer width = NumberUtils.toInt(prop.getProperty(FileProperties.PROPERTY_WIDTH)); - Integer height = NumberUtils.toInt(prop.getProperty(FileProperties.PROPERTY_HEIGHT)); - Point size = ImageUtils.parseForSize(resolution); - if (width == size.x && height == size.y) + // MEDIA-90 may be simply a url + if (media.getProperty(BaseTypeHandler.ORGINAL_NODEDATA_NAME).getType() == PropertyType.BINARY) { - return appendBaseUrl(mcm.getURIMappingPrefix() + prop.getProperty(FileProperties.PATH)); + FileProperties prop = new FileProperties( + ContentUtil.asContent(media), + BaseTypeHandler.ORGINAL_NODEDATA_NAME); + Integer width = NumberUtils.toInt(prop.getProperty(FileProperties.PROPERTY_WIDTH)); + Integer height = NumberUtils.toInt(prop.getProperty(FileProperties.PROPERTY_HEIGHT)); + Point size = ImageUtils.parseForSize(resolution); + if (width == size.x && height == size.y) + { + return appendBaseUrl(mcm.getURIMappingPrefix() + prop.getProperty(FileProperties.PATH)); + } } - } - if (!ImageUtils.checkOrCreateResolution(media, resolution, null, module().isLazyResolutionCreation())) - { - return null; - } + if (!ImageUtils.checkOrCreateResolution(media, resolution, null, module().isLazyResolutionCreation())) + { + return null; + } - Node resolutions = getResolutionsNode(media); - - try - { + Node resolutions = getResolutionsNode(media); String resString = "res-" + ImageUtils.getResolutionPath(resolution); - if (resolutions != null && resolutions.hasNodeData(resString)) + if (resolutions != null && resolutions.hasProperty(resString)) { - String resPath = new FileProperties(resolutions, resString).getProperty(FileProperties.PATH); + String resPath = new FileProperties(ContentUtil.asContent(resolutions), resString) + .getProperty(FileProperties.PATH); return appendBaseUrl(mcm.getURIMappingPrefix() + resPath); @@ -289,10 +315,10 @@ if (media != null) { - NodeData res = null; + Property res = null; if ("original".equals(resolution)) { - res = media.getNodeData("original"); + res = PropertyUtil.getPropertyOrNull(media, "original"); } else { @@ -301,9 +327,9 @@ { try { - if (resolutions.hasNodeData(ImageUtils.getResolutionPath("res-" + resolution))) + if (resolutions.hasProperty(ImageUtils.getResolutionPath("res-" + resolution))) { - res = resolutions.getNodeData(ImageUtils.getResolutionPath("res-" + resolution)); + res = resolutions.getProperty(ImageUtils.getResolutionPath("res-" + resolution)); } } catch (RepositoryException e) @@ -316,18 +342,21 @@ if (res != null) { return new int[]{ - NumberUtils.toInt(res.getAttribute(FileProperties.PROPERTY_WIDTH)), - NumberUtils.toInt(res.getAttribute(FileProperties.PROPERTY_HEIGHT)) }; + NumberUtils.toInt(NodeUtilsExt.getAttribute(res, FileProperties.PROPERTY_WIDTH)), + NumberUtils.toInt(NodeUtilsExt.getAttribute(res, FileProperties.PROPERTY_HEIGHT)) }; } else { // MEDIA-231 - res = media.getNodeData("original"); - Point size = ImageUtils.parseForSize(resolution); - if (NumberUtils.toInt(res.getAttribute(FileProperties.PROPERTY_WIDTH)) == size.x - && NumberUtils.toInt(res.getAttribute(FileProperties.PROPERTY_HEIGHT)) == size.y) + res = PropertyUtil.getPropertyOrNull(media, "original"); + if (res != null) { - return new int[]{size.x, size.y }; + Point size = ImageUtils.parseForSize(resolution); + if (NumberUtils.toInt(NodeUtilsExt.getAttribute(res, FileProperties.PROPERTY_WIDTH)) == size.x + && NumberUtils.toInt(NodeUtilsExt.getAttribute(res, FileProperties.PROPERTY_HEIGHT)) == size.y) + { + return new int[]{size.x, size.y }; + } } } Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseTypeHandler.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseTypeHandler.java 2013-09-24 17:06:28 UTC (rev 4341) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseTypeHandler.java 2013-09-25 17:22:52 UTC (rev 4342) @@ -25,7 +25,7 @@ import info.magnolia.cms.core.NodeData; import info.magnolia.cms.i18n.I18nContentSupportFactory; import info.magnolia.cms.security.AccessDeniedException; -import info.magnolia.cms.util.NodeDataUtil; +import info.magnolia.cms.util.ContentUtil; import info.magnolia.jcr.util.MetaDataUtil; import info.magnolia.jcr.util.NodeUtil; import info.magnolia.jcr.util.PropertyUtil; @@ -39,8 +39,12 @@ import java.util.Map; import javax.jcr.Node; +import javax.jcr.PathNotFoundException; +import javax.jcr.Property; import javax.jcr.PropertyType; import javax.jcr.RepositoryException; +import javax.jcr.ValueFormatException; +import javax.jcr.nodetype.NodeType; import javax.servlet.http.HttpServletRequest; import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaConfigurationManager; @@ -78,7 +82,14 @@ */ public void init(Node typeDefinitionNode) { - type = typeDefinitionNode.getName(); + try + { + type = typeDefinitionNode.getName(); + } + catch (RepositoryException e) + { + // do nothing + } } /** @@ -103,19 +114,19 @@ { String uuid = request.getParameter(name); - NodeData nd; + Property nd; - if (!parentNode.hasNodeData(name)) + if (!parentNode.hasProperty(name)) { - nd = parentNode.createNodeData(name, uuid); + nd = parentNode.setProperty(name, uuid); } else { - nd = parentNode.getNodeData(name); + nd = parentNode.getProperty(name); if (nd.getType() == PropertyType.BINARY) { - nd.delete(); - nd = parentNode.createNodeData(name, uuid); + nd.remove(); + nd = parentNode.setProperty(name, uuid); } else { @@ -134,7 +145,7 @@ { Document doc = new Document(f, type + extension); doc.setExtention(extension); - SaveHandlerImpl.saveDocument(media, doc, ORGINAL_NODEDATA_NAME, cleanFileName, null); + SaveHandlerImpl.saveDocument(ContentUtil.asContent(media), doc, ORGINAL_NODEDATA_NAME, cleanFileName, null); this.onPostSave(media); } @@ -152,13 +163,15 @@ name = StringUtils.lowerCase(name); if (!StringUtils.equals(name, PropertyUtil.getString(media, METADATA_NAME))) { - NodeDataUtil.getOrCreateAndSet(media, METADATA_NAME, name); + media.setProperty(METADATA_NAME, name); media.save(); } if (media.hasNode("resolutions")) { - Collection<NodeData> nodedatas = media.getNode("resolutions").getNodeDataCollection(); + Collection<NodeData> nodedatas = ContentUtil + .asContent(media.getNode("resolutions")) + .getNodeDataCollection(); for (NodeData nd : nodedatas) { nd.delete(); @@ -185,16 +198,27 @@ * @param media media * @return default nodedata */ - protected NodeData getOriginalFileNodeData(Node media) + protected Node getOriginalFileNodeData(Node media) { - return media.getNodeData(ORGINAL_NODEDATA_NAME); + try + { + return media.getNode(ORGINAL_NODEDATA_NAME); + } + catch (PathNotFoundException e) + { + return null; + } + catch (RepositoryException e) + { + return null; + } } public boolean isExternal(Node media) { try { - return !media.hasNodeData(ORGINAL_NODEDATA_NAME); + return !media.hasProperty(ORGINAL_NODEDATA_NAME); } catch (RepositoryException e) { @@ -208,7 +232,7 @@ */ public String getExtension(Node media) { - return getOriginalFileNodeData(media).getAttribute(FileProperties.PROPERTY_EXTENSION); + return PropertyUtil.getString(getOriginalFileNodeData(media), FileProperties.PROPERTY_EXTENSION); } /** @@ -216,7 +240,7 @@ */ public String getFilename(Node media) { - return getOriginalFileNodeData(media).getAttribute(FileProperties.PROPERTY_FILENAME); + return PropertyUtil.getString(getOriginalFileNodeData(media), FileProperties.PROPERTY_FILENAME); } /** @@ -271,7 +295,18 @@ */ public String getTitle(Node media) { - return I18nContentSupportFactory.getI18nSupport().getNodeData(media, "title").getString(); + try + { + return I18nContentSupportFactory.getI18nSupport().getProperty(media, "title").getString(); + } + catch (ValueFormatException e) + { + return StringUtils.EMPTY; + } + catch (RepositoryException e) + { + return StringUtils.EMPTY; + } } /** @@ -279,7 +314,18 @@ */ public String getTags(Node media) { - return I18nContentSupportFactory.getI18nSupport().getNodeData(media, "tags").getString(); + try + { + return I18nContentSupportFactory.getI18nSupport().getProperty(media, "tags").getString(); + } + catch (ValueFormatException e) + { + return StringUtils.EMPTY; + } + catch (RepositoryException e) + { + return StringUtils.EMPTY; + } } /** @@ -287,7 +333,18 @@ */ public String getDescription(Node media) { - return I18nContentSupportFactory.getI18nSupport().getNodeData(media, "description").getString(); + try + { + return I18nContentSupportFactory.getI18nSupport().getProperty(media, "description").getString(); + } + catch (ValueFormatException e) + { + return StringUtils.EMPTY; + } + catch (RepositoryException e) + { + return StringUtils.EMPTY; + } } /** @@ -295,7 +352,18 @@ */ public String getAbstract(Node media) { - return I18nContentSupportFactory.getI18nSupport().getNodeData(media, "abstract").getString(); + try + { + return I18nContentSupportFactory.getI18nSupport().getProperty(media, "abstract").getString(); + } + catch (ValueFormatException e) + { + return StringUtils.EMPTY; + } + catch (RepositoryException e) + { + return StringUtils.EMPTY; + } } /** @@ -306,44 +374,52 @@ Map<String, String> info = new LinkedHashMap<String, String>(); - NodeData originalFileNodeData = getOriginalFileNodeData(media); - if (originalFileNodeData.getType() == PropertyType.BINARY) + try { + Node originalFileNodeData = getOriginalFileNodeData(media); - FileProperties fp = new FileProperties(media, ORGINAL_NODEDATA_NAME); + if (NodeUtil.isNodeType(originalFileNodeData, NodeType.NT_RESOURCE)) + { - String extension = fp.getProperty(FileProperties.PROPERTY_EXTENSION); - info.put(METADATA_EXTENSION, extension); + FileProperties fp = new FileProperties(ContentUtil.asContent(media), ORGINAL_NODEDATA_NAME); - String size = StringUtils.EMPTY; + String extension = fp.getProperty(FileProperties.PROPERTY_EXTENSION); + info.put(METADATA_EXTENSION, extension); - try - { - size = fp.getProperty(FileProperties.PROPERTY_SIZE); - } - catch (NumberFormatException nfe) - { - // just ignore, no file size info - } - info.put(METADATA_SIZE, size); + String size = StringUtils.EMPTY; - int width = NumberUtils.toInt(fp.getProperty(FileProperties.PROPERTY_WIDTH)); - if (width > 0) - { - info.put(METADATA_WIDTH, Integer.toString(width)); + try + { + size = fp.getProperty(FileProperties.PROPERTY_SIZE); + } + catch (NumberFormatException nfe) + { + // just ignore, no file size info + } + info.put(METADATA_SIZE, size); + + int width = NumberUtils.toInt(fp.getProperty(FileProperties.PROPERTY_WIDTH)); + if (width > 0) + { + info.put(METADATA_WIDTH, Integer.toString(width)); + } + + int height = NumberUtils.toInt(fp.getProperty(FileProperties.PROPERTY_HEIGHT)); + if (height > 0) + { + info.put(METADATA_HEIGHT, Integer.toString(height)); + } } - int height = NumberUtils.toInt(fp.getProperty(FileProperties.PROPERTY_HEIGHT)); - if (height > 0) + Collection<NodeData> propertyList = ContentUtil.asContent(media).getNodeDataCollection("media_*"); + for (NodeData property : propertyList) { - info.put(METADATA_HEIGHT, Integer.toString(height)); + addToInfo(media, info, property.getName()); } } - - Collection<NodeData> propertyList = media.getNodeDataCollection("media_*"); - for (NodeData property : propertyList) + catch (Exception e) { - addToInfo(media, info, property.getName()); + // TODO: handle exception } return info; @@ -357,27 +433,42 @@ */ protected void addToInfo(Node media, Map<String, String> info, String key) { - NodeData data = media.getNodeData(key); + try + { + Property data = media.getProperty(key); - String string = null; - if (data.getType() == PropertyType.LONG || data.getType() == PropertyType.DOUBLE) - { - int numeric = (int) data.getLong(); - if (numeric > 0) + String string = null; + if (data.getType() == PropertyType.LONG || data.getType() == PropertyType.DOUBLE) { - string = String.valueOf(numeric); + int numeric = (int) data.getLong(); + + if (numeric > 0) + { + string = String.valueOf(numeric); + } } + else + { + string = data.getString(); + } + + if (StringUtils.isNotEmpty(string)) + { + info.put(key, string); + } } - else + catch (ValueFormatException e) { - string = data.getString(); + // do nothing } - - if (StringUtils.isNotEmpty(string)) + catch (PathNotFoundException e) { - info.put(key, string); + // do nothing } - + catch (RepositoryException e) + { + // do nothing + } } /** Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseVideoTypeHandler.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseVideoTypeHandler.java 2013-09-24 17:06:28 UTC (rev 4341) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseVideoTypeHandler.java 2013-09-25 17:22:52 UTC (rev 4342) @@ -19,11 +19,12 @@ package net.sourceforge.openutils.mgnlmedia.media.types.impl; -import info.magnolia.cms.util.NodeDataUtil; - import java.util.Map; import javax.jcr.Node; +import javax.jcr.PathNotFoundException; +import javax.jcr.RepositoryException; +import javax.jcr.ValueFormatException; import net.sourceforge.openutils.mgnlmedia.media.utils.MediaMetadataFormatUtils; import net.sourceforge.openutils.mgnlmedia.media.utils.VideoMedataUtils.VideoMetaData; @@ -58,7 +59,7 @@ catch (Throwable e) { log.warn("Error parsing video file " - + getOriginalFileNodeData(media).getHandle() + + getOriginalFileNodeData(media).getPath() + " " + e.getClass().getName() + " " @@ -68,11 +69,11 @@ if (flvMetaData != null) { - NodeDataUtil.g... [truncated message content] |
From: <luc...@us...> - 2013-09-24 17:06:31
|
Revision: 4341 http://openutils.svn.sourceforge.net/openutils/?rev=4341&view=rev Author: lucaboati Date: 2013-09-24 17:06:28 +0000 (Tue, 24 Sep 2013) Log Message: ----------- remove deprecations, content to node Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/SearchFilterOptionProvider.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/commands/MediaDeactivationCommand.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/ImageProcessorsManager.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaUsedInManager.java magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/PzcServlet.java Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/SearchFilterOptionProvider.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/SearchFilterOptionProvider.java 2013-09-20 15:54:59 UTC (rev 4340) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/SearchFilterOptionProvider.java 2013-09-24 17:06:28 UTC (rev 4341) @@ -19,15 +19,17 @@ package net.sourceforge.openutils.mgnlmedia.media.advancedsearch; - +import info.magnolia.cms.core.MgnlNodeType; import info.magnolia.context.MgnlContext; +import info.magnolia.jcr.util.NodeUtil; +import info.magnolia.repository.RepositoryConstants; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import javax.jcr.Node; import javax.jcr.RepositoryException; +import javax.jcr.Session; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.builder.ToStringBuilder; @@ -113,10 +115,9 @@ { try { - Collection<Node> referenceOptions = MgnlContext - .getHierarchyManager("config") - .getContent(reference) - .getChildren(); + Session session = MgnlContext.getJCRSession(RepositoryConstants.CONFIG); + Node node = session.getNode(reference); + Iterable<Node> referenceOptions = NodeUtil.getNodes(node, MgnlNodeType.NT_CONTENTNODE); Option opt = new Option(); @@ -127,11 +128,11 @@ addOptions(opt); } - for (Node content : referenceOptions) + for (Node option : referenceOptions) { opt = new Option(); - opt.setLabel(content.getNodeData("label").getString()); - opt.setValue(content.getNodeData("value").getString()); + opt.setLabel(option.getProperty("label").getString()); + opt.setValue(option.getProperty("value").getString()); addOptions(opt); } } Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/commands/MediaDeactivationCommand.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/commands/MediaDeactivationCommand.java 2013-09-20 15:54:59 UTC (rev 4340) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/commands/MediaDeactivationCommand.java 2013-09-24 17:06:28 UTC (rev 4341) @@ -22,6 +22,7 @@ import info.magnolia.commands.CommandsManager; import info.magnolia.context.Context; import info.magnolia.module.admininterface.commands.BaseRepositoryCommand; +import info.magnolia.objectfactory.Components; import net.sourceforge.openutils.mgnlmedia.media.tags.el.MediaEl; import org.apache.commons.chain.Command; @@ -42,7 +43,9 @@ { if (!MediaEl.module().isSingleinstance()) { - Command cmd = CommandsManager.getInstance().getCommand(CommandsManager.DEFAULT_CATALOG, "deactivate"); + Command cmd = Components.getSingleton(CommandsManager.class).getCommand( + CommandsManager.DEFAULT_CATALOG, + "deactivate"); return cmd.execute(context); } return true; Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/ImageProcessorsManager.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/ImageProcessorsManager.java 2013-09-20 15:54:59 UTC (rev 4340) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/ImageProcessorsManager.java 2013-09-24 17:06:28 UTC (rev 4341) @@ -22,8 +22,8 @@ import info.magnolia.cms.beans.config.ObservedManager; import info.magnolia.cms.core.Content; import info.magnolia.cms.util.ContentUtil; -import info.magnolia.cms.util.FactoryUtil; import info.magnolia.cms.util.NodeDataUtil; +import info.magnolia.objectfactory.Components; import java.util.Collection; import java.util.HashMap; @@ -97,7 +97,7 @@ */ public static ImageProcessorsManager getInstance() { - return (ImageProcessorsManager) FactoryUtil.getSingleton(ImageProcessorsManager.class); + return Components.getSingleton(ImageProcessorsManager.class); } /** Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java 2013-09-20 15:54:59 UTC (rev 4340) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java 2013-09-24 17:06:28 UTC (rev 4341) @@ -115,39 +115,48 @@ Node node = content.getJCRNode(); - for (Iterator iter = ContentUtil.getAllChildren(node).iterator(); iter.hasNext();) + try { - Node typeNode = iter.next(); - - if (!NodeDataUtil.getBoolean(typeNode, "enabled", true)) + for (Iterator<Node> iter = NodeUtil.getNodes(node, NodeUtil.EXCLUDE_META_DATA_FILTER).iterator(); iter + .hasNext();) { - continue; - } + Node typeNode = iter.next(); - try - { - MediaTypeConfiguration conf = (MediaTypeConfiguration) Content2BeanUtil.toBean( - typeNode, - true, - MediaTypeConfiguration.class); + if (!PropertyUtil.getBoolean(typeNode, "enabled", true)) + { + continue; + } - if (conf.getHandler() != null) + try { - conf.getHandler().init(typeNode); + Content typeContent = ContentUtil.asContent(typeNode); + MediaTypeConfiguration conf = (MediaTypeConfiguration) Content2BeanUtil.toBean( + typeContent, + true, + MediaTypeConfiguration.class); + + if (conf.getHandler() != null) + { + conf.getHandler().init(typeNode); + } + else + { + log.error("Missing handler for media type {}", typeNode.getName()); + continue; + } + + types.put(typeNode.getName(), conf); } - else + catch (Throwable e) { - log.error("Missing handler for media type {}", typeNode.getName()); - continue; + log.error("Error getting media type configuration for {}", NodeUtil.getPathIfPossible(typeNode), e); } - - types.put(typeNode.getName(), conf); } - catch (Throwable e) - { - log.error("Error getting media type configuration for {}", NodeUtil.getPathIfPossible(typeNode), e); - } } + catch (RepositoryException e) + { + log.error("Error getting nodes for {}", NodeUtil.getPathIfPossible(node), e); + } } /** Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaUsedInManager.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaUsedInManager.java 2013-09-20 15:54:59 UTC (rev 4340) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaUsedInManager.java 2013-09-24 17:06:28 UTC (rev 4341) @@ -22,9 +22,9 @@ import info.magnolia.cms.beans.config.ObservedManager; import info.magnolia.cms.core.Content; import info.magnolia.cms.core.ItemType; -import info.magnolia.cms.util.FactoryUtil; import info.magnolia.content2bean.Content2BeanException; import info.magnolia.content2bean.Content2BeanUtil; +import info.magnolia.objectfactory.Components; import info.magnolia.repository.RepositoryConstants; import java.util.ArrayList; @@ -62,7 +62,7 @@ public static MediaUsedInManager getInstance() { - return (MediaUsedInManager) FactoryUtil.getSingleton(MediaUsedInManager.class); + return Components.getSingleton(MediaUsedInManager.class); } private static Logger log = LoggerFactory.getLogger(MediaUsedInManager.class); Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/PzcServlet.java =================================================================== --- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/PzcServlet.java 2013-09-20 15:54:59 UTC (rev 4340) +++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/PzcServlet.java 2013-09-24 17:06:28 UTC (rev 4341) @@ -19,7 +19,6 @@ package net.sourceforge.openutils.mgnlmedia.media.crop; - import info.magnolia.cms.core.HierarchyManager; import info.magnolia.cms.core.NodeData; import info.magnolia.cms.util.NodeDataUtil; @@ -30,6 +29,7 @@ import javax.jcr.Node; import javax.jcr.RepositoryException; +import javax.jcr.Session; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; @@ -70,19 +70,17 @@ repository = RepositoryConstants.WEBSITE; } - HierarchyManager hm = MgnlContext.getHierarchyManager(repository); - try { - final Node node = hm.getContent(handle); + Session hm = MgnlContext.getJCRSession(repository); + final Node node = hm.getNode(handle); if ("delete".equals(command)) { - NodeData nd = node.getNodeData(id); - if (nd != null) + if (node != null && node.hasProperty(id)) { - nd.delete(); - node.save(); + node.getProperty(id).remove(); } + hm.save(); resp.getWriter().println("true"); } else @@ -93,11 +91,11 @@ public Void exec() throws RepositoryException { - HierarchyManager hm = MgnlContext.getHierarchyManager(systemRepository); + Session session = MgnlContext.getJCRSession(systemRepository); try { - Node systemNode = hm.getContent(node.getHandle()); - NodeDataUtil.getOrCreateAndSet(systemNode, id, new StringBuffer() + Node systemNode = session.getNode(node.getPath()); + systemNode.setProperty(id, new StringBuffer() .append(zoom) .append("|") .append(x) @@ -111,7 +109,8 @@ } return null; } - }, true); + }, + true); resp.getWriter().println("true"); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |