r1541 - in trunk: img img/webtemplate src/main/java/cc/kune src/main/java/cc/kune/client src/main/java/cc/kune/core/client/rpcservices src/main/java/cc/kune/core/server src/main/java/cc/kune/core/server/rpc src/main/java/cc/kune/core/server/stats src/main/java/cc/kune/core/shared/dto src/main/java/cc/kune/domain/finders src/main/java/cc/kune/hspace src/main/java/cc/kune/hspace/client src/main/resources src/test/java/cc/kune/core/server/integration
Author: vjrj_ Date: 2011-10-03 14:31:04 +0200 (Mon, 03 Oct 2011) New Revision: 1541 Added: trunk/src/main/java/cc/kune/core/server/rpc/StatsRPC.java trunk/src/main/java/cc/kune/core/server/stats/ trunk/src/main/java/cc/kune/core/server/stats/HomeStats.java trunk/src/main/java/cc/kune/core/server/stats/StatsService.java trunk/src/main/java/cc/kune/core/server/stats/StatsServiceDefault.java trunk/src/main/java/cc/kune/core/shared/dto/HomeStatsDTO.java trunk/src/main/java/cc/kune/hspace/ trunk/src/main/java/cc/kune/hspace/HSpace.gwt.xml trunk/src/main/java/cc/kune/hspace/client/ trunk/src/main/java/cc/kune/hspace/client/ClientStatsService.java trunk/src/main/java/cc/kune/hspace/client/ClientStatsServiceAsync.java trunk/src/main/java/cc/kune/hspace/client/HSpaceGinModule.java trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.java trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.ui.xml trunk/src/main/java/cc/kune/hspace/client/HSpaceParts.java trunk/src/main/java/cc/kune/hspace/client/HSpacePresenter.java trunk/src/test/java/cc/kune/core/server/integration/StatsServiceTest.java Modified: trunk/img/icons-base.svg trunk/img/webtemplate/theme-palettes.svg trunk/img/webtemplate/web_template-2011.svg trunk/src/main/java/cc/kune/Kune.gwt.xml trunk/src/main/java/cc/kune/client/KuneEntryPoint.java trunk/src/main/java/cc/kune/client/KuneGinjector.java trunk/src/main/java/cc/kune/core/client/rpcservices/SiteService.java trunk/src/main/java/cc/kune/core/client/rpcservices/SiteServiceAsync.java trunk/src/main/java/cc/kune/core/server/KuneRackModule.java trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java trunk/src/main/java/cc/kune/core/server/rpc/SiteRPC.java trunk/src/main/java/cc/kune/domain/finders/ContentFinder.java trunk/src/main/java/cc/kune/domain/finders/GroupFinder.java trunk/src/main/java/cc/kune/domain/finders/UserFinder.java trunk/src/main/resources/dozerBeanMapping.xml Log: NEW - # 132: Global public stats functions http://kune.ourproject.org/issues/ticket/132 Modified: trunk/img/icons-base.svg =================================================================== --- trunk/img/icons-base.svg 2011-09-28 14:04:57 UTC (rev 1540) +++ trunk/img/icons-base.svg 2011-10-03 12:31:04 UTC (rev 1541) @@ -28,16 +28,16 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="5.4453125" + inkscape:zoom="1" inkscape:cx="303.02471" - inkscape:cy="213.02648" + inkscape:cy="775.23021" inkscape:document-units="px" inkscape:current-layer="layer1" inkscape:window-width="1078" inkscape:window-height="897" inkscape:window-x="0" inkscape:window-y="947" - showgrid="true" + showgrid="false" showguides="true" inkscape:guide-bbox="true" inkscape:grid-points="true" @@ -1914,7 +1914,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -4695,11 +4695,11 @@ <image sodipodi:absref="/home/vjrj/proyectos/dev/kune/trunk/img/icons/lock_break.png" xlink:href="icons/lock_break.png" - y="450.82797" - x="330.84604" - id="image2972" + width="16" height="16" - width="16" /> + id="image2972" + x="330.84604" + y="450.82797" /> <use x="0" y="0" @@ -4790,12 +4790,12 @@ <image sodipodi:absref="/home/vjrj/proyectos/dev/kune/trunk/img/icons/lock_break.png" xlink:href="icons/lock_break.png" - y="432.36218" - x="-371" - id="image3958" - height="16" + transform="scale(-1,1)" width="16" - transform="scale(-1,1)" /> + height="16" + id="image3958" + x="-371" + y="432.36218" /> <g id="g3962" transform="translate(-43.509019,-21.462476)"> @@ -5541,62 +5541,28 @@ y="761.23108" x="235.11862" id="image3658" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAXpJREFU -OI2Nk7GOGjEQhn9veAbSXMRV0FEQcdfQ8BQ810lQ8EQooqOkIykQ27CIBS/rmflTsOuw5CAZaSR7 -rP/7x2PZkYRz7gXAVwBf8DxSAD9JWqyQBIDvRVFkIQQVEX6WRVFwOp1+AHgFkJC8aivAWwhB8zzn -6XSKeTgcuN/vudvtKCLcbreczWYNCAA4AG8iQu89L5cLvff03vN4PDLLMqZpShHh+Xxmnuecz+cf -AF5JwlWAoYj8UFUsFguUZYmyLBFCiDmZTBrDaLVa7wCWrdtikiQYjUZxNqoKVYWIIMsymBlEBO12 -+w/oFuCcw3K5RAgBIoKyLCEiEWRmGI/HzU7u32k4HDb2dSdmBlWth/4YsFqtICIN51poZvGKDwH9 -fv++FMX1+ilgvV7HwZlZbB0AzAyDweA5oNvtNpzuHe/jL8Bms4nOdd5Cer3eQwABuE6n89SxCqu6 -Y8Ir3lTV1wf/EqvqGYACgKu+8zdcv3PyP/aVOCX56zfInVxa8Hj31gAAAABJRU5ErkJggg== -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAXpJREFU OI2Nk7GOGjEQhn9veAbSXMRV0FEQcdfQ8BQ810lQ8EQooqOkIykQ27CIBS/rmflTsOuw5CAZaSR7 rP/7x2PZkYRz7gXAVwBf8DxSAD9JWqyQBIDvRVFkIQQVEX6WRVFwOp1+AHgFkJC8aivAWwhB8zzn 6XSKeTgcuN/vudvtKCLcbreczWYNCAA4AG8iQu89L5cLvff03vN4PDLLMqZpShHh+Xxmnuecz+cf AF5JwlWAoYj8UFUsFguUZYmyLBFCiDmZTBrDaLVa7wCWrdtikiQYjUZxNqoKVYWIIMsymBlEBO12 +w/oFuCcw3K5RAgBIoKyLCEiEWRmGI/HzU7u32k4HDb2dSdmBlWth/4YsFqtICIN51poZvGKDwH9 fv++FMX1+ilgvV7HwZlZbB0AzAyDweA5oNvtNpzuHe/jL8Bms4nOdd5Cer3eQwABuE6n89SxCqu6 Y8Ir3lTV1wf/EqvqGYACgKu+8zdcv3PyP/aVOCX56zfInVxa8Hj31gAAAABJRU5ErkJggg== " height="16" width="16" /> <image y="747.60388" x="265.6059" id="image3628" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAhVJREFU -OI3Fk7tuE1EQhr85e7xeO15fSBxDHCfCSBEtz8ADUPMEtLwAPTUtHRIF6ZBAiqAIEikAQZ8iSAk2 -MVlfkniztvd6KGzCpU3BSKOZKebX/DP/iDGGq5i6UjegHz39uOsU3TsDP166mCUqM5BhSDNDZgyp -MWTZvF64QdI4npwPOvsHB7peq7Qe3Nsqh7ERJ2/9hS7/5jKP0zCxpmG6dv9xOFPeOGlHSSbPd3t0 -BhFBaDgaZnRGGd2zjN55hucbBoEhTqE7jHjyqsdpECq33rqlgjCVfE7RvFHmzRePs4uYRlnIWWBb -gq0FW0O1IAzHEdt7J1SvlVmu5gFETWYJAO3rJdYbZXY+e5z6MSslha3BtqDiCCM/YnvPY2W5TLtZ -QhbHU8EsnW/TgvZaiXqtyIt3HUZ+RMURXEcY+hHP3naoVIq010oU9B9nDKbzCUQgiRMcnbHRrPL6 -k0d3MKM7mPHyg0erWcW1U5RJsPXvzepJmGKAKEo4Gfm0Gi62naM3cni/P0YBW60ajeUCwSyiN/BZ -qbkYAxhBT8LEpJkRb+jTqrsUnBwYuLlaZGO1iACy0IYu2uhVl+P+mGm1ACYzOhh9PwyjZPP2ekFK -BSWiUtSCkohcauCXDkCzWXOzwx9+NO53j3V00T+6+3CnlneXlnTeEq0tlCVYCpQSlF4AyCVtkyZR -ND0/Hfa/dr7Jf3+mKwP8BP1J+XtVAGrrAAAAAElFTkSuQmCC -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAhVJREFU OI3Fk7tuE1EQhr85e7xeO15fSBxDHCfCSBEtz8ADUPMEtLwAPTUtHRIF6ZBAiqAIEikAQZ8iSAk2 MVlfkniztvd6KGzCpU3BSKOZKebX/DP/iDGGq5i6UjegHz39uOsU3TsDP166mCUqM5BhSDNDZgyp MWTZvF64QdI4npwPOvsHB7peq7Qe3Nsqh7ERJ2/9hS7/5jKP0zCxpmG6dv9xOFPeOGlHSSbPd3t0 BhFBaDgaZnRGGd2zjN55hucbBoEhTqE7jHjyqsdpECq33rqlgjCVfE7RvFHmzRePs4uYRlnIWWBb gq0FW0O1IAzHEdt7J1SvlVmu5gFETWYJAO3rJdYbZXY+e5z6MSslha3BtqDiCCM/YnvPY2W5TLtZ QhbHU8EsnW/TgvZaiXqtyIt3HUZ+RMURXEcY+hHP3naoVIq010oU9B9nDKbzCUQgiRMcnbHRrPL6 k0d3MKM7mPHyg0erWcW1U5RJsPXvzepJmGKAKEo4Gfm0Gi62naM3cni/P0YBW60ajeUCwSyiN/BZ qbkYAxhBT8LEpJkRb+jTqrsUnBwYuLlaZGO1iACy0IYu2uhVl+P+mGm1ACYzOhh9PwyjZPP2ekFK BSWiUtSCkohcauCXDkCzWXOzwx9+NO53j3V00T+6+3CnlneXlnTeEq0tlCVYCpQSlF4AyCVtkyZR ND0/Hfa/dr7Jf3+mKwP8BP1J+XtVAGrrAAAAAElFTkSuQmCC " height="16" width="16" /> <image y="749.65729" x="265.74442" id="image3725" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAVRJREFU -OI2Vk7FqAkEQhr+5XbQULLQLSZvGKuZ9xOIqXyWIFlelVPIcgpAyT2CSRmIhCAHN7ZhJEU9Os8Zk -YdiF2f3/b2Z3BbgAmoDwcyyAVzP7jOT24ybP8w9VtSJCCLZer20wGPSBK8CZGbEQoK2qjyEEZrMZ -8/mcEAK1Wo0QAqPR6CHLsjHwdIqmraq22WxsMplYnuf2HxpfqCRJsp9jNK1Wq5emaTPLsrGIHNC0 -C6fpdGq/0RS54XDYBy6BxJdrEZEojaqiqoQQqNfrdDqdnveeNE3vkti1iAjOuYO1c25vUKlU6Ha7 -PaARFSjTOOdIkgTnHNVqldVqxXK53O87KMHMztKICKoaFyhcT4kU+fI+Dyy897d8P+VrVb2P0RTu -ZSEAb2bPIvLC0V+I0ZT7clCCfduZiLydozkWPm7in2m22+07sJVY53eHLoFGNLnTABZfqoEJ24bE -i/YAAAAASUVORK5CYII= -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAVRJREFU OI2Vk7FqAkEQhr+5XbQULLQLSZvGKuZ9xOIqXyWIFlelVPIcgpAyT2CSRmIhCAHN7ZhJEU9Os8Zk YdiF2f3/b2Z3BbgAmoDwcyyAVzP7jOT24ybP8w9VtSJCCLZer20wGPSBK8CZGbEQoK2qjyEEZrMZ 8/mcEAK1Wo0QAqPR6CHLsjHwdIqmraq22WxsMplYnuf2HxpfqCRJsp9jNK1Wq5emaTPLsrGIHNC0 C6fpdGq/0RS54XDYBy6BxJdrEZEojaqiqoQQqNfrdDqdnveeNE3vkti1iAjOuYO1c25vUKlU6Ha7 PaARFSjTOOdIkgTnHNVqldVqxXK53O87KMHMztKICKoaFyhcT4kU+fI+Dyy897d8P+VrVb2P0RTu ZSEAb2bPIvLC0V+I0ZT7clCCfduZiLydozkWPm7in2m22+07sJVY53eHLoFGNLnTABZfqoEJ24bE i/YAAAAASUVORK5CYII= " height="16" width="16" /> <image y="-787.57947" x="-342.35602" id="image3857" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAUNJREFU -OI2lk89qAjEQh79klZ56EuylB0+CXgutz+ET+ADSx+i1CILP1BcQvHr0tIfgrskk00Ob7XaxtX8C -w8yEzG8+ZohRVf5z7L+qgV47McaYSwXaQTbALXADFD9segD2qpryxV1d12UIIYqIfmd1Xet6vV4B -I8CqKj2gKIri2ntvY4yoKv1+n0wqIqSU8N4zGAyYz+ePAMvl8tkYswe4z+pVVWlVVXo6nZrYOadl -WerhcFAR0ePxqM453Ww2K2Bk3gVeYozsdjtCCFhr88BQVWKMeO+ZzWafN9DrPTRbsNYynU67EyfG -2FhZlqSUEBGGw+GbSLMOY9hut+fWRoyRlFLjx+PxB0X7cZegLZIF8qDPCpwjyCel1AhNJpPfEWSK -tv2JIAu1G10k6P7Wbm4Wi8WTc+5KRPjKQgiNz7GIoKqnV4ZMMuP74A8FAAAAAElFTkSuQmCC -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAUNJREFU OI2lk89qAjEQh79klZ56EuylB0+CXgutz+ET+ADSx+i1CILP1BcQvHr0tIfgrskk00Ob7XaxtX8C w8yEzG8+ZohRVf5z7L+qgV47McaYSwXaQTbALXADFD9segD2qpryxV1d12UIIYqIfmd1Xet6vV4B I8CqKj2gKIri2ntvY4yoKv1+n0wqIqSU8N4zGAyYz+ePAMvl8tkYswe4z+pVVWlVVXo6nZrYOadl WerhcFAR0ePxqM453Ww2K2Bk3gVeYozsdjtCCFhr88BQVWKMeO+ZzWafN9DrPTRbsNYynU67EyfG 2FhZlqSUEBGGw+GbSLMOY9hut+fWRoyRlFLjx+PxB0X7cZegLZIF8qDPCpwjyCel1AhNJpPfEWSK tv2JIAu1G10k6P7Wbm4Wi8WTc+5KRPjKQgiNz7GIoKqnV4ZMMuP74A8FAAAAAElFTkSuQmCC " height="16" width="16" transform="scale(-1,-1)" /> @@ -5604,29 +5570,13 @@ y="771.07178" x="267.13602" id="image3790" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAVZJREFU -OI2FkbFuwjAQhr9zLNgYGNqtYu5e+j6IgamvUlViYOqz8BLsbScUJBBQhTS+9DqUpE6IykmWLfvu -8/3/CXAH3ALCZaTAh5l9d7zV8VAUxZeqWrzyPLf5fP4CjABnZnQtgLGq2ul0suPxaLvdztI0NVW1 -LMtssVi8AKOrgDzPLcsyOxwOttls6k5CCAY8Au4sU2KAr3QkSVLv/X6f1WrFer1mMBgA3J/TDEBE -Gt6M49+qTpbLpRVFYde8qTs4k+tOnHM45wghoKqoKiEEhsMhk8nkyXvPbDZ7du2RiAgignOuAU2S -BJHfSfd6PabT6RNwcwGIIZUnzrnam/1+z3a7rXMbEqqxVJC2rAqsqt2AqqjrHEuI3zyQeu8f2yqA -e1V9bcuKQQDezN5E5L0DcBGxLw0JFov/S6zvurxpAK5FuwigLMtPoJTW53HRCLj5h1sC6Q9MlgFW -OwAOYwAAAABJRU5ErkJggg== -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAVZJREFU OI2FkbFuwjAQhr9zLNgYGNqtYu5e+j6IgamvUlViYOqz8BLsbScUJBBQhTS+9DqUpE6IykmWLfvu 8/3/CXAH3ALCZaTAh5l9d7zV8VAUxZeqWrzyPLf5fP4CjABnZnQtgLGq2ul0suPxaLvdztI0NVW1 LMtssVi8AKOrgDzPLcsyOxwOttls6k5CCAY8Au4sU2KAr3QkSVLv/X6f1WrFer1mMBgA3J/TDEBE Gt6M49+qTpbLpRVFYde8qTs4k+tOnHM45wghoKqoKiEEhsMhk8nkyXvPbDZ7du2RiAgignOuAU2S BJHfSfd6PabT6RNwcwGIIZUnzrnam/1+z3a7rXMbEqqxVJC2rAqsqt2AqqjrHEuI3zyQeu8f2yqA e1V9bcuKQQDezN5E5L0DcBGxLw0JFov/S6zvurxpAK5FuwigLMtPoJTW53HRCLj5h1sC6Q9MlgFW OwAOYwAAAABJRU5ErkJggg== " height="16" width="16" /> <image width="16" height="16" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAXpJREFU -OI2Nk7GOGjEQhn9veAbSXMRV0FEQcdfQ8BQ810lQ8EQooqOkIykQ27CIBS/rmflTsOuw5CAZaSR7 -rP/7x2PZkYRz7gXAVwBf8DxSAD9JWqyQBIDvRVFkIQQVEX6WRVFwOp1+AHgFkJC8aivAWwhB8zzn -6XSKeTgcuN/vudvtKCLcbreczWYNCAA4AG8iQu89L5cLvff03vN4PDLLMqZpShHh+Xxmnuecz+cf -AF5JwlWAoYj8UFUsFguUZYmyLBFCiDmZTBrDaLVa7wCWrdtikiQYjUZxNqoKVYWIIMsymBlEBO12 -+w/oFuCcw3K5RAgBIoKyLCEiEWRmGI/HzU7u32k4HDb2dSdmBlWth/4YsFqtICIN51poZvGKDwH9 -fv++FMX1+ilgvV7HwZlZbB0AzAyDweA5oNvtNpzuHe/jL8Bms4nOdd5Cer3eQwABuE6n89SxCqu6 -Y8Ir3lTV1wf/EqvqGYACgKu+8zdcv3PyP/aVOCX56zfInVxa8Hj31gAAAABJRU5ErkJggg== -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAXpJREFU OI2Nk7GOGjEQhn9veAbSXMRV0FEQcdfQ8BQ810lQ8EQooqOkIykQ27CIBS/rmflTsOuw5CAZaSR7 rP/7x2PZkYRz7gXAVwBf8DxSAD9JWqyQBIDvRVFkIQQVEX6WRVFwOp1+AHgFkJC8aivAWwhB8zzn 6XSKeTgcuN/vudvtKCLcbreczWYNCAA4AG8iQu89L5cLvff03vN4PDLLMqZpShHh+Xxmnuecz+cf AF5JwlWAoYj8UFUsFguUZYmyLBFCiDmZTBrDaLVa7wCWrdtikiQYjUZxNqoKVYWIIMsymBlEBO12 +w/oFuCcw3K5RAgBIoKyLCEiEWRmGI/HzU7u32k4HDb2dSdmBlWth/4YsFqtICIN51poZvGKDwH9 fv++FMX1+ilgvV7HwZlZbB0AzAyDweA5oNvtNpzuHe/jL8Bms4nOdd5Cer3eQwABuE6n89SxCqu6 Y8Ir3lTV1wf/EqvqGYACgKu+8zdcv3PyP/aVOCX56zfInVxa8Hj31gAAAABJRU5ErkJggg== " id="image3860" x="281" y="-814.36218" @@ -5634,15 +5584,7 @@ <image width="16" height="16" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAVRJREFU -OI2Vk7FqAkEQhr+5XbQULLQLSZvGKuZ9xOIqXyWIFlelVPIcgpAyT2CSRmIhCAHN7ZhJEU9Os8Zk -YdiF2f3/b2Z3BbgAmoDwcyyAVzP7jOT24ybP8w9VtSJCCLZer20wGPSBK8CZGbEQoK2qjyEEZrMZ -8/mcEAK1Wo0QAqPR6CHLsjHwdIqmraq22WxsMplYnuf2HxpfqCRJsp9jNK1Wq5emaTPLsrGIHNC0 -C6fpdGq/0RS54XDYBy6BxJdrEZEojaqiqoQQqNfrdDqdnveeNE3vkti1iAjOuYO1c25vUKlU6Ha7 -PaARFSjTOOdIkgTnHNVqldVqxXK53O87KMHMztKICKoaFyhcT4kU+fI+Dyy897d8P+VrVb2P0RTu -ZSEAb2bPIvLC0V+I0ZT7clCCfduZiLydozkWPm7in2m22+07sJVY53eHLoFGNLnTABZfqoEJ24bE -i/YAAAAASUVORK5CYII= -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAVRJREFU OI2Vk7FqAkEQhr+5XbQULLQLSZvGKuZ9xOIqXyWIFlelVPIcgpAyT2CSRmIhCAHN7ZhJEU9Os8Zk YdiF2f3/b2Z3BbgAmoDwcyyAVzP7jOT24ybP8w9VtSJCCLZer20wGPSBK8CZGbEQoK2qjyEEZrMZ 8/mcEAK1Wo0QAqPR6CHLsjHwdIqmraq22WxsMplYnuf2HxpfqCRJsp9jNK1Wq5emaTPLsrGIHNC0 C6fpdGq/0RS54XDYBy6BxJdrEZEojaqiqoQQqNfrdDqdnveeNE3vkti1iAjOuYO1c25vUKlU6Ha7 PaARFSjTOOdIkgTnHNVqldVqxXK53O87KMHMztKICKoaFyhcT4kU+fI+Dyy897d8P+VrVb2P0RTu ZSEAb2bPIvLC0V+I0ZT7clCCfduZiLydozkWPm7in2m22+07sJVY53eHLoFGNLnTABZfqoEJ24bE i/YAAAAASUVORK5CYII= " id="image3862" x="253.74442" y="789.65729" /> @@ -5661,30 +5603,14 @@ <image width="16" height="11" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAABHNCSVQICAgIfAhkiAAAAgNJREFU -KJFdkrtuE1EQhr85e7zedby+kDiGOCbCSBEtz8ADUPMEtDwAD0BNSYlEQTokkCIogkSKCEGfIkgJ -NjFZX5J4s7b3eihsEsRIo/mnGc3365fnrw72nJL3cBgkK1fzVOUGcgxZbsiNITOGPF/syzZIliTT -y2H38OhIN+rV9tPH25UoMeIULf4t+V/LYs6i1JpF2caTF9Fc+ZO0E6e5vNnr0x3GhJHhZJTTHef0 -LnL6lzl+YBiGhiSD3ijm5fs+52GkvEb7vgqjTIoFRetOhY/ffS6uEpoVoWCBbQm2FmwNNVcYTWJ2 -9s+o3aqwWisCiJrOUwA6t8tsNivsfvM5DxLWygpbg21B1RHGQczOvs/aaoVOq4yYBZoK5xkA2oLO -RplGvcTbz13GQUzVETxHGAUxrz91qVZLdDbKuPrGGxXOFh+IQJqkODrnbqvGh68+veGc3nDOuwOf -dquGZ2cok2LrG2f1NMowQBynnI0D2k0P2y7QHzt8OZyggO12neaqSziP6Q8D1uoexgBG0NMoNVlu -xB8FtBserlMAA/fWS9xdLyGALLOhSzZ63eN0MGFWc8HkRofjX8dRnG492HSl7CoRlaGWSCJynYG/ -OQDNVt3Lj38H8WTQO9Xx1eDk0bPdetFbWdFFS7S2UJZgKVBKUHp5QK6xTZbG8ezyfDT40f35B/6e -83OfcJ+mAAAAAElFTkSuQmCC -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAABHNCSVQICAgIfAhkiAAAAgNJREFU KJFdkrtuE1EQhr85e7zedby+kDiGOCbCSBEtz8ADUPMEtDwAD0BNSYlEQTokkCIogkSKCEGfIkgJ NjFZX5J4s7b3eihsEsRIo/mnGc3365fnrw72nJL3cBgkK1fzVOUGcgxZbsiNITOGPF/syzZIliTT y2H38OhIN+rV9tPH25UoMeIULf4t+V/LYs6i1JpF2caTF9Fc+ZO0E6e5vNnr0x3GhJHhZJTTHef0 LnL6lzl+YBiGhiSD3ijm5fs+52GkvEb7vgqjTIoFRetOhY/ffS6uEpoVoWCBbQm2FmwNNVcYTWJ2 9s+o3aqwWisCiJrOUwA6t8tsNivsfvM5DxLWygpbg21B1RHGQczOvs/aaoVOq4yYBZoK5xkA2oLO RplGvcTbz13GQUzVETxHGAUxrz91qVZLdDbKuPrGGxXOFh+IQJqkODrnbqvGh68+veGc3nDOuwOf dquGZ2cok2LrG2f1NMowQBynnI0D2k0P2y7QHzt8OZyggO12neaqSziP6Q8D1uoexgBG0NMoNVlu xB8FtBserlMAA/fWS9xdLyGALLOhSzZ63eN0MGFWc8HkRofjX8dRnG492HSl7CoRlaGWSCJynYG/ OQDNVt3Lj38H8WTQO9Xx1eDk0bPdetFbWdFFS7S2UJZgKVBKUHp5QK6xTZbG8ezyfDT40f35B/6e 83OfcJ+mAAAAAElFTkSuQmCC " id="image4023" x="301" y="799.36218" /> <image width="16" height="9" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAYAAAA7KqwyAAAABHNCSVQICAgIfAhkiAAAAMZJREFU -KJGNkr2Kg2AQRc/niC5h+7BFsNPOwtoib553sLST7fYBsgjfHVP4g2sg2QsDw8A9d2AmMOsCfPF/ -CfgBvtNlcB7H8WZmH0DyxuyS7nmeX1dAABIzOwF0XUeMkRgjkraapgl3p23bJMuyT8CAkB7xdV0/ -Ra7mtd/rCdD3PZKIMeLuuDuS5t3daZrmNaAsyz9Jx8Sj9oAJCMMwbMlr7SFVVQH46kkXo0v6NbNT -URQvEwEk3ZlPSVhmF+DM+xNuDJY/eACnnm1bpLVzVgAAAABJRU5ErkJggg== -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAYAAAA7KqwyAAAABHNCSVQICAgIfAhkiAAAAMZJREFU KJGNkr2Kg2AQRc/niC5h+7BFsNPOwtoib553sLST7fYBsgjfHVP4g2sg2QsDw8A9d2AmMOsCfPF/ CfgBvtNlcB7H8WZmH0DyxuyS7nmeX1dAABIzOwF0XUeMkRgjkraapgl3p23bJMuyT8CAkB7xdV0/ Ra7mtd/rCdD3PZKIMeLuuDuS5t3daZrmNaAsyz9Jx8Sj9oAJCMMwbMlr7SFVVQH46kkXo0v6NbNT URQvEwEk3ZlPSVhmF+DM+xNuDJY/eACnnm1bpLVzVgAAAABJRU5ErkJggg== " id="image3993" x="301" y="805.36218" /> @@ -5706,30 +5632,14 @@ y="799.36218" x="301" id="image4035" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAABHNCSVQICAgIfAhkiAAAAgNJREFU -KJFdkrtuE1EQhr85e7zedby+kDiGOCbCSBEtz8ADUPMEtDwAD0BNSYlEQTokkCIogkSKCEGfIkgJ -NjFZX5J4s7b3eihsEsRIo/mnGc3365fnrw72nJL3cBgkK1fzVOUGcgxZbsiNITOGPF/syzZIliTT -y2H38OhIN+rV9tPH25UoMeIULf4t+V/LYs6i1JpF2caTF9Fc+ZO0E6e5vNnr0x3GhJHhZJTTHef0 -LnL6lzl+YBiGhiSD3ijm5fs+52GkvEb7vgqjTIoFRetOhY/ffS6uEpoVoWCBbQm2FmwNNVcYTWJ2 -9s+o3aqwWisCiJrOUwA6t8tsNivsfvM5DxLWygpbg21B1RHGQczOvs/aaoVOq4yYBZoK5xkA2oLO -RplGvcTbz13GQUzVETxHGAUxrz91qVZLdDbKuPrGGxXOFh+IQJqkODrnbqvGh68+veGc3nDOuwOf -dquGZ2cok2LrG2f1NMowQBynnI0D2k0P2y7QHzt8OZyggO12neaqSziP6Q8D1uoexgBG0NMoNVlu -xB8FtBserlMAA/fWS9xdLyGALLOhSzZ63eN0MGFWc8HkRofjX8dRnG492HSl7CoRlaGWSCJynYG/ -OQDNVt3Lj38H8WTQO9Xx1eDk0bPdetFbWdFFS7S2UJZgKVBKUHp5QK6xTZbG8ezyfDT40f35B/6e -83OfcJ+mAAAAAElFTkSuQmCC -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAABHNCSVQICAgIfAhkiAAAAgNJREFU KJFdkrtuE1EQhr85e7zedby+kDiGOCbCSBEtz8ADUPMEtDwAD0BNSYlEQTokkCIogkSKCEGfIkgJ NjFZX5J4s7b3eihsEsRIo/mnGc3365fnrw72nJL3cBgkK1fzVOUGcgxZbsiNITOGPF/syzZIliTT y2H38OhIN+rV9tPH25UoMeIULf4t+V/LYs6i1JpF2caTF9Fc+ZO0E6e5vNnr0x3GhJHhZJTTHef0 LnL6lzl+YBiGhiSD3ijm5fs+52GkvEb7vgqjTIoFRetOhY/ffS6uEpoVoWCBbQm2FmwNNVcYTWJ2 9s+o3aqwWisCiJrOUwA6t8tsNivsfvM5DxLWygpbg21B1RHGQczOvs/aaoVOq4yYBZoK5xkA2oLO RplGvcTbz13GQUzVETxHGAUxrz91qVZLdDbKuPrGGxXOFh+IQJqkODrnbqvGh68+veGc3nDOuwOf dquGZ2cok2LrG2f1NMowQBynnI0D2k0P2y7QHzt8OZyggO12neaqSziP6Q8D1uoexgBG0NMoNVlu xB8FtBserlMAA/fWS9xdLyGALLOhSzZ63eN0MGFWc8HkRofjX8dRnG492HSl7CoRlaGWSCJynYG/ OQDNVt3Lj38H8WTQO9Xx1eDk0bPdetFbWdFFS7S2UJZgKVBKUHp5QK6xTZbG8ezyfDT40f35B/6e 83OfcJ+mAAAAAElFTkSuQmCC " height="11" width="16" /> <image y="805.36218" x="301" id="image4037" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAYAAAA7KqwyAAAABHNCSVQICAgIfAhkiAAAAMZJREFU -KJGNkr2Kg2AQRc/niC5h+7BFsNPOwtoib553sLST7fYBsgjfHVP4g2sg2QsDw8A9d2AmMOsCfPF/ -CfgBvtNlcB7H8WZmH0DyxuyS7nmeX1dAABIzOwF0XUeMkRgjkraapgl3p23bJMuyT8CAkB7xdV0/ -Ra7mtd/rCdD3PZKIMeLuuDuS5t3daZrmNaAsyz9Jx8Sj9oAJCMMwbMlr7SFVVQH46kkXo0v6NbNT -URQvEwEk3ZlPSVhmF+DM+xNuDJY/eACnnm1bpLVzVgAAAABJRU5ErkJggg== -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAYAAAA7KqwyAAAABHNCSVQICAgIfAhkiAAAAMZJREFU KJGNkr2Kg2AQRc/niC5h+7BFsNPOwtoib553sLST7fYBsgjfHVP4g2sg2QsDw8A9d2AmMOsCfPF/ CfgBvtNlcB7H8WZmH0DyxuyS7nmeX1dAABIzOwF0XUeMkRgjkraapgl3p23bJMuyT8CAkB7xdV0/ Ra7mtd/rCdD3PZKIMeLuuDuS5t3daZrmNaAsyz9Jx8Sj9oAJCMMwbMlr7SFVVQH46kkXo0v6NbNT URQvEwEk3ZlPSVhmF+DM+xNuDJY/eACnnm1bpLVzVgAAAABJRU5ErkJggg== " height="9" width="16" /> </g> @@ -5744,21 +5654,7 @@ y="836.36218" x="300" id="image4103" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAqNJREFU -OI2FkU9oXGUUxX/3e997M5PM2LQlatJMps3CFrqorioUxFKXQkERcas7NxZcqMuKFZRsXNisrBux -lKBFNCIq6qIbDf5BKKaWtEkmRpMxkzj/3sx73/uui0mCQwNeuJvDufeec66oKvvVe1+tnbWh/SYQ -IUndC88/MXZlX6Kq3tNvzS5emr2xrkvrXV2r93Ru/m99e/bO1f249wCvf3j7u8/nN7QRe+051dSp -dlOvN27W9eIHt+9OX18Z/y9fdi28O1d92Ih8f/r4SPTQkWEQodnNADhQMFgDy7UuX/+yxXbHPfXa -05PXgf6Cdz5ZefnwgWj65t3ari+8glfFOU/iPIdKIa3YocDpkxMsrMYzF5+rvMjlz6rZ3Pym/rnt -9NUrv+r/1YWZH7URe/3y5y1949pyZtO4VT13arzSSxXv+3ZmfhsMeqGWstrI+OjJPF5BNCPutPj2 -px9W7EbDTSbOc+nqrb2BZycSREAVXOaJDzlasQPyVNfbvPL+Ai+dn6Q0Wq6Ydi+TXGg480gZkb4C -ERAgMBAGhnwUkI8CVKE4FHHyeJnDIzkAMZ2uA2DqwSJnTh3j8qeLCICAiBAEQhQGDOUsb177nbOP -nmDqSJGdW9j2zqtsAFPjRXJByvTHdwgDGcghccr5x44SZ+EAbtux25PtUkeSKs88fgwbDhJdmnJr -tcHY6H3Y0PZBAdPpZSiQJI71epPyAyWiaHAYwIYhR8dK1LebeOdQBVSwnZ7TzKtsbDYpj5Yo5ENQ -UCDrH0EUPIodirD3l1irNYhHCqBebbv+x1IvcZUTEwUpFoyIyTC7nxDZVboXLFgqB0t+6a9m0qit -rtmkVVs+d+GLg7nS8LDNBWJtgAmEwIAxgrE7C2TPtmYuSeJ/tjZri9WVfwH1K4zAd92YdQAAAABJ -RU5ErkJggg== -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAqNJREFU OI2FkU9oXGUUxX/3e997M5PM2LQlatJMps3CFrqorioUxFKXQkERcas7NxZcqMuKFZRsXNisrBux lKBFNCIq6qIbDf5BKKaWtEkmRpMxkzj/3sx73/uui0mCQwNeuJvDufeec66oKvvVe1+tnbWh/SYQ IUndC88/MXZlX6Kq3tNvzS5emr2xrkvrXV2r93Ru/m99e/bO1f249wCvf3j7u8/nN7QRe+051dSp dlOvN27W9eIHt+9OX18Z/y9fdi28O1d92Ih8f/r4SPTQkWEQodnNADhQMFgDy7UuX/+yxXbHPfXa 05PXgf6Cdz5ZefnwgWj65t3ari+8glfFOU/iPIdKIa3YocDpkxMsrMYzF5+rvMjlz6rZ3Pym/rnt 9NUrv+r/1YWZH7URe/3y5y1949pyZtO4VT13arzSSxXv+3ZmfhsMeqGWstrI+OjJPF5BNCPutPj2 px9W7EbDTSbOc+nqrb2BZycSREAVXOaJDzlasQPyVNfbvPL+Ai+dn6Q0Wq6Ydi+TXGg480gZkb4C ERAgMBAGhnwUkI8CVKE4FHHyeJnDIzkAMZ2uA2DqwSJnTh3j8qeLCICAiBAEQhQGDOUsb177nbOP nmDqSJGdW9j2zqtsAFPjRXJByvTHdwgDGcghccr5x44SZ+EAbtux25PtUkeSKs88fgwbDhJdmnJr tcHY6H3Y0PZBAdPpZSiQJI71epPyAyWiaHAYwIYhR8dK1LebeOdQBVSwnZ7TzKtsbDYpj5Yo5ENQ UCDrH0EUPIodirD3l1irNYhHCqBebbv+x1IvcZUTEwUpFoyIyTC7nxDZVboXLFgqB0t+6a9m0qit rtmkVVs+d+GLg7nS8LDNBWJtgAmEwIAxgrE7C2TPtmYuSeJ/tjZri9WVfwH1K4zAd92YdQAAAABJ RU5ErkJggg== " height="16" width="16" inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/src/main/java/cc/kune/core/client/resources/nav/email.png" @@ -5767,21 +5663,7 @@ <image width="16" height="16" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAqNJREFU -OI2FkU9oXGUUxX/3e997M5PM2LQlatJMps3CFrqorioUxFKXQkERcas7NxZcqMuKFZRsXNisrBux -lKBFNCIq6qIbDf5BKKaWtEkmRpMxkzj/3sx73/uui0mCQwNeuJvDufeec66oKvvVe1+tnbWh/SYQ -IUndC88/MXZlX6Kq3tNvzS5emr2xrkvrXV2r93Ru/m99e/bO1f249wCvf3j7u8/nN7QRe+051dSp -dlOvN27W9eIHt+9OX18Z/y9fdi28O1d92Ih8f/r4SPTQkWEQodnNADhQMFgDy7UuX/+yxXbHPfXa -05PXgf6Cdz5ZefnwgWj65t3ari+8glfFOU/iPIdKIa3YocDpkxMsrMYzF5+rvMjlz6rZ3Pym/rnt -9NUrv+r/1YWZH7URe/3y5y1949pyZtO4VT13arzSSxXv+3ZmfhsMeqGWstrI+OjJPF5BNCPutPj2 -px9W7EbDTSbOc+nqrb2BZycSREAVXOaJDzlasQPyVNfbvPL+Ai+dn6Q0Wq6Ydi+TXGg480gZkb4C -ERAgMBAGhnwUkI8CVKE4FHHyeJnDIzkAMZ2uA2DqwSJnTh3j8qeLCICAiBAEQhQGDOUsb177nbOP -nmDqSJGdW9j2zqtsAFPjRXJByvTHdwgDGcghccr5x44SZ+EAbtux25PtUkeSKs88fgwbDhJdmnJr -tcHY6H3Y0PZBAdPpZSiQJI71epPyAyWiaHAYwIYhR8dK1LebeOdQBVSwnZ7TzKtsbDYpj5Yo5ENQ -UCDrH0EUPIodirD3l1irNYhHCqBebbv+x1IvcZUTEwUpFoyIyTC7nxDZVboXLFgqB0t+6a9m0qit -rtmkVVs+d+GLg7nS8LDNBWJtgAmEwIAxgrE7C2TPtmYuSeJ/tjZri9WVfwH1K4zAd92YdQAAAABJ -RU5ErkJggg== -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAqNJREFU OI2FkU9oXGUUxX/3e997M5PM2LQlatJMps3CFrqorioUxFKXQkERcas7NxZcqMuKFZRsXNisrBux lKBFNCIq6qIbDf5BKKaWtEkmRpMxkzj/3sx73/uui0mCQwNeuJvDufeec66oKvvVe1+tnbWh/SYQ IUndC88/MXZlX6Kq3tNvzS5emr2xrkvrXV2r93Ru/m99e/bO1f249wCvf3j7u8/nN7QRe+051dSp dlOvN27W9eIHt+9OX18Z/y9fdi28O1d92Ih8f/r4SPTQkWEQodnNADhQMFgDy7UuX/+yxXbHPfXa 05PXgf6Cdz5ZefnwgWj65t3ari+8glfFOU/iPIdKIa3YocDpkxMsrMYzF5+rvMjlz6rZ3Pym/rnt 9NUrv+r/1YWZH7URe/3y5y1949pyZtO4VT13arzSSxXv+3ZmfhsMeqGWstrI+OjJPF5BNCPutPj2 px9W7EbDTSbOc+nqrb2BZycSREAVXOaJDzlasQPyVNfbvPL+Ai+dn6Q0Wq6Ydi+TXGg480gZkb4C ERAgMBAGhnwUkI8CVKE4FHHyeJnDIzkAMZ2uA2DqwSJnTh3j8qeLCICAiBAEQhQGDOUsb177nbOP nmDqSJGdW9j2zqtsAFPjRXJByvTHdwgDGcghccr5x44SZ+EAbtux25PtUkeSKs88fgwbDhJdmnJr tcHY6H3Y0PZBAdPpZSiQJI71epPyAyWiaHAYwIYhR8dK1LebeOdQBVSwnZ7TzKtsbDYpj5Yo5ENQ UCDrH0EUPIodirD3l1irNYhHCqBebbv+x1IvcZUTEwUpFoyIyTC7nxDZVboXLFgqB0t+6a9m0qit rtmkVVs+d+GLg7nS8LDNBWJtgAmEwIAxgrE7C2TPtmYuSeJ/tjZri9WVfwH1K4zAd92YdQAAAABJ RU5ErkJggg== " id="image4106" x="300" y="856.36218" @@ -5809,30 +5691,14 @@ y="799.36218" x="301" id="image4114" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAABHNCSVQICAgIfAhkiAAAAgNJREFU -KJFdkrtuE1EQhr85e7zedby+kDiGOCbCSBEtz8ADUPMEtDwAD0BNSYlEQTokkCIogkSKCEGfIkgJ -NjFZX5J4s7b3eihsEsRIo/mnGc3365fnrw72nJL3cBgkK1fzVOUGcgxZbsiNITOGPF/syzZIliTT -y2H38OhIN+rV9tPH25UoMeIULf4t+V/LYs6i1JpF2caTF9Fc+ZO0E6e5vNnr0x3GhJHhZJTTHef0 -LnL6lzl+YBiGhiSD3ijm5fs+52GkvEb7vgqjTIoFRetOhY/ffS6uEpoVoWCBbQm2FmwNNVcYTWJ2 -9s+o3aqwWisCiJrOUwA6t8tsNivsfvM5DxLWygpbg21B1RHGQczOvs/aaoVOq4yYBZoK5xkA2oLO -RplGvcTbz13GQUzVETxHGAUxrz91qVZLdDbKuPrGGxXOFh+IQJqkODrnbqvGh68+veGc3nDOuwOf -dquGZ2cok2LrG2f1NMowQBynnI0D2k0P2y7QHzt8OZyggO12neaqSziP6Q8D1uoexgBG0NMoNVlu -xB8FtBserlMAA/fWS9xdLyGALLOhSzZ63eN0MGFWc8HkRofjX8dRnG492HSl7CoRlaGWSCJynYG/ -OQDNVt3Lj38H8WTQO9Xx1eDk0bPdetFbWdFFS7S2UJZgKVBKUHp5QK6xTZbG8ezyfDT40f35B/6e -83OfcJ+mAAAAAElFTkSuQmCC -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAABHNCSVQICAgIfAhkiAAAAgNJREFU KJFdkrtuE1EQhr85e7zedby+kDiGOCbCSBEtz8ADUPMEtDwAD0BNSYlEQTokkCIogkSKCEGfIkgJ NjFZX5J4s7b3eihsEsRIo/mnGc3365fnrw72nJL3cBgkK1fzVOUGcgxZbsiNITOGPF/syzZIliTT y2H38OhIN+rV9tPH25UoMeIULf4t+V/LYs6i1JpF2caTF9Fc+ZO0E6e5vNnr0x3GhJHhZJTTHef0 LnL6lzl+YBiGhiSD3ijm5fs+52GkvEb7vgqjTIoFRetOhY/ffS6uEpoVoWCBbQm2FmwNNVcYTWJ2 9s+o3aqwWisCiJrOUwA6t8tsNivsfvM5DxLWygpbg21B1RHGQczOvs/aaoVOq4yYBZoK5xkA2oLO RplGvcTbz13GQUzVETxHGAUxrz91qVZLdDbKuPrGGxXOFh+IQJqkODrnbqvGh68+veGc3nDOuwOf dquGZ2cok2LrG2f1NMowQBynnI0D2k0P2y7QHzt8OZyggO12neaqSziP6Q8D1uoexgBG0NMoNVlu xB8FtBserlMAA/fWS9xdLyGALLOhSzZ63eN0MGFWc8HkRofjX8dRnG492HSl7CoRlaGWSCJynYG/ OQDNVt3Lj38H8WTQO9Xx1eDk0bPdetFbWdFFS7S2UJZgKVBKUHp5QK6xTZbG8ezyfDT40f35B/6e 83OfcJ+mAAAAAElFTkSuQmCC " height="11" width="16" /> <image y="805.36218" x="301" id="image4116" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAYAAAA7KqwyAAAABHNCSVQICAgIfAhkiAAAAMZJREFU -KJGNkr2Kg2AQRc/niC5h+7BFsNPOwtoib553sLST7fYBsgjfHVP4g2sg2QsDw8A9d2AmMOsCfPF/ -CfgBvtNlcB7H8WZmH0DyxuyS7nmeX1dAABIzOwF0XUeMkRgjkraapgl3p23bJMuyT8CAkB7xdV0/ -Ra7mtd/rCdD3PZKIMeLuuDuS5t3daZrmNaAsyz9Jx8Sj9oAJCMMwbMlr7SFVVQH46kkXo0v6NbNT -URQvEwEk3ZlPSVhmF+DM+xNuDJY/eACnnm1bpLVzVgAAAABJRU5ErkJggg== -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAYAAAA7KqwyAAAABHNCSVQICAgIfAhkiAAAAMZJREFU KJGNkr2Kg2AQRc/niC5h+7BFsNPOwtoib553sLST7fYBsgjfHVP4g2sg2QsDw8A9d2AmMOsCfPF/ CfgBvtNlcB7H8WZmH0DyxuyS7nmeX1dAABIzOwF0XUeMkRgjkraapgl3p23bJMuyT8CAkB7xdV0/ Ra7mtd/rCdD3PZKIMeLuuDuS5t3daZrmNaAsyz9Jx8Sj9oAJCMMwbMlr7SFVVQH46kkXo0v6NbNT URQvEwEk3ZlPSVhmF+DM+xNuDJY/eACnnm1bpLVzVgAAAABJRU5ErkJggg== " height="9" width="16" /> </g> Modified: trunk/img/webtemplate/theme-palettes.svg =================================================================== --- trunk/img/webtemplate/theme-palettes.svg 2011-09-28 14:04:57 UTC (rev 1540) +++ trunk/img/webtemplate/theme-palettes.svg 2011-10-03 12:31:04 UTC (rev 1541) @@ -27,7 +27,7 @@ inkscape:pageshadow="2" inkscape:zoom="1" inkscape:cx="346.17698" - inkscape:cy="-246.02205" + inkscape:cy="-314.02205" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" @@ -2319,5 +2319,152 @@ x="560.34814" id="tspan4233" sodipodi:role="line">lorem </tspan></text> + <rect + style="color:#000000;fill:#b8d0e1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.73427980999999998;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect7236" + width="150" + height="40" + x="24" + y="1205.3622" /> + <rect + y="1245.3622" + x="24" + height="40" + width="150" + id="rect7238" + style="color:#000000;fill:#dfe9f1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.73427980999999998;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <rect + style="color:#000000;fill:#181870;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.73427980999999998;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect7240" + width="150" + height="40" + x="24" + y="1285.3622" /> + <rect + y="1325.3622" + x="24" + height="40" + width="150" + id="rect7242" + style="color:#000000;fill:#e0eaf2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.73427980999999998;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#181870;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.40678155000000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu" + x="38" + y="1230.3622" + id="text7244" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan7246" + x="38" + y="1230.3622">lorem </tspan></text> + <text + sodipodi:linespacing="125%" + id="text7248" + y="1270.3622" + x="38" + style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#181870;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.40678155000000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu" + xml:space="preserve"><tspan + y="1270.3622" + x="38" + id="tspan7250" + sodipodi:role="line">lorem </tspan></text> + <text + xml:space="preserve" + style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ffffff;fill-opacity:0.94901961;fill-rule:nonzero;stroke:none;stroke-width:1.40678155;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu" + x="38" + y="1310.3622" + id="text7252" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan7254" + x="38" + y="1310.3622"><tspan + style="font-weight:bold;-inkscape-font-specification:Ubuntu Bold" + id="tspan7256">lorem </tspan></tspan></text> + <text + sodipodi:linespacing="125%" + id="text7258" + y="1350.3622" + x="38" + style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#181870;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.40678155000000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu" + xml:space="preserve"><tspan + y="1350.3622" + x="38" + id="tspan7260" + sodipodi:role="line" + style="font-weight:bold;-inkscape-font-specification:Ubuntu Bold;fill:#181870;fill-opacity:1">lorem </tspan></text> + <rect + y="1205.3622" + x="177" + height="40" + width="150" + id="rect7262" + style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.73427980999999998;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <rect + style="color:#000000;fill:#b8d0e1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.73427980999999998;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect7264" + width="150" + height="40" + x="177" + y="1245.3622" /> + <rect + y="1285.3622" + x="177" + height="40" + width="150" + id="rect7266" + style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.73427981;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <rect + style="color:#000000;fill:#dfe9f1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.73427980999999998;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect7268" + width="150" + height="40" + x="177" + y="1325.3622" /> + <text + xml:space="preserve" + style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#181870;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.40678155000000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold" + x="191" + y="1270.3622" + id="text7270" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan7272" + x="191" + y="1270.3622">lorem </tspan></text> + <text + sodipodi:linespacing="125%" + id="text7274" + y="1312.3622" + x="190" + style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#181870;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.40678155000000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu" + xml:space="preserve"><tspan + y="1312.3622" + x="190" + id="tspan7276" + sodipodi:role="line">lorem </tspan></text> + <text + xml:space="preserve" + style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#181870;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.40678155000000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu" + x="191" + y="1350.3622" + id="text7278" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan7280" + x="191" + y="1350.3622">lorem </tspan></text> + <text + sodipodi:linespacing="125%" + id="text7282" + y="1234.3622" + x="189" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#181870;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.40678155000000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold" + xml:space="preserve"><tspan + y="1234.3622" + x="189" + id="tspan7284" + sodipodi:role="line">lorem </tspan></text> </g> </svg> Modified: trunk/img/webtemplate/web_template-2011.svg =================================================================== --- trunk/img/webtemplate/web_template-2011.svg 2011-09-28 14:04:57 UTC (rev 1540) +++ trunk/img/webtemplate/web_template-2011.svg 2011-10-03 12:31:04 UTC (rev 1541) @@ -78,17 +78,17 @@ borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:zoom="2" - inkscape:cx="509.97457" - inkscape:cy="579.66806" + inkscape:zoom="0.16135477" + inkscape:cx="512" + inkscape:cy="384" inkscape:current-layer="g8450" inkscape:document-units="px" showgrid="false" - inkscape:window-width="1920" - inkscape:window-height="984" + inkscape:window-width="1078" + inkscape:window-height="897" inkscape:window-x="0" - inkscape:window-y="21" - inkscape:window-maximized="1" + inkscape:window-y="947" + inkscape:window-maximized="0" inkscape:snap-bbox="false" inkscape:bbox-paths="true" inkscape:bbox-nodes="true" @@ -123,7 +123,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -258,7 +258,7 @@ id="g5365"> <path transform="matrix(0.102065,0,0,0.102065,387.7515,-17.05636)" - d="m 277.35793,332.62314 c 0,14.81376 -12.00893,26.82268 -26.82268,26.82268 -14.81376,0 -26.82268,-12.00892 -26.82268,-26.82268 0,-14.81376 12.00892,-26.82268 26.82268,-26.82268 14.81375,0 26.82268,12.00892 26.82268,26.82268 z" + d="m 277.35793,332.62314 a 26.82268,26.82268 0 1 1 -53.64536,0 26.82268,26.82268 0 1 1 53.64536,0 z" sodipodi:ry="26.82268" sodipodi:rx="26.82268" sodipodi:cy="332.62314" @@ -268,7 +268,7 @@ sodipodi:type="arc" /> <path transform="matrix(0.05245387,0,0,0.05245387,400.1808,-0.554549)" - d="m 277.35793,332.62314 c 0,14.81376 -12.00893,26.82268 -26.82268,26.82268 -14.81376,0 -26.82268,-12.00892 -26.82268,-26.82268 0,-14.81376 12.00892,-26.82268 26.82268,-26.82268 14.81375,0 26.82268,12.00892 26.82268,26.82268 z" + d="m 277.35793,332.62314 a 26.82268,26.82268 0 1 1 -53.64536,0 26.82268,26.82268 0 1 1 53.64536,0 z" sodipodi:ry="26.82268" sodipodi:rx="26.82268" sodipodi:cy="332.62314" @@ -546,7 +546,7 @@ transform="translate(-751,-12)"> <path transform="translate(0,-3)" - d="m 333,232 c 0,6.07513 -4.92487,11 -11,11 -6.07513,0 -11,-4.92487 -11,-11 0,-6.07513 4.92487,-11 11,-11 6.07513,0 11,4.92487 11,11 z" + d="m 333,232 a 11,11 0 1 1 -22,0 11,11 0 1 1 22,0 z" sodipodi:ry="11" sodipodi:rx="11" sodipodi:cy="232" @@ -2177,7 +2177,7 @@ inkscape:export-xdpi="90" inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/icons/from-private-to-public.png" transform="matrix(0.475,0,0,0.95,-21.570622,377.21335)" - d="m 110,32.362183 c 0,5.522847 -8.95431,10 -20,10 -11.045695,0 -20,-4.477153 -20,-10 0,-5.522848 8.954305,-10 20,-10 11.04569,0 20,4.477152 20,10 z" + d="m 110,32.362183 a 20,10 0 1 1 -40,0 20,10 0 1 1 40,0 z" sodipodi:ry="10" sodipodi:rx="20" sodipodi:cy="32.362183" @@ -2190,7 +2190,7 @@ inkscape:export-xdpi="90" inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/icons/from-private-to-public.png" transform="matrix(1.8840121,0.6711918,-0.6711918,1.8840121,8.0842525,364.37023)" - d="m 16,16.362183 c 0,0.552284 -0.447715,1 -1,1 -0.552285,0 -1,-0.447716 -1,-1 0,-0.552285 0.447715,-1 1,-1 0.552285,0 1,0.447715 1,1 z" + d="m 16,16.362183 a 1,1 0 1 1 -2,0 1,1 0 1 1 2,0 z" sodipodi:ry="1" sodipodi:rx="1" sodipodi:cy="16.362183" @@ -2209,14 +2209,14 @@ sodipodi:cy="16.362183" sodipodi:rx="1" sodipodi:ry="1" - d="m 16,16.362183 c 0,0.552284 -0.447715,1 -1,1 -0.552285,0 -1,-0.447716 -1,-1 0,-0.552285 0.447715,-1 1,-1 0.552285,0 1,0.447715 1,1 z" + d="m 16,16.362183 a 1,1 0 1 1 -2,0 1,1 0 1 1 2,0 z" transform="matrix(1.8840121,0.6711918,-0.6711918,1.8840121,2.7154875,362.20909)" /> <path inkscape:export-ydpi="90" inkscape:export-xdpi="90" inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/icons/from-private-to-public.png" transform="matrix(1.8840121,0.6711918,-0.6711918,1.8840121,7.7663825,370.24449)" - d="m 16,16.362183 c 0,0.552284 -0.447715,1 -1,1 -0.552285,0 -1,-0.447716 -1,-1 0,-0.552285 0.447715,-1 1,-1 0.552285,0 1,0.447715 1,1 z" + d="m 16,16.362183 a 1,1 0 1 1 -2,0 1,1 0 1 1 2,0 z" sodipodi:ry="1" sodipodi:rx="1" sodipodi:cy="16.362183" @@ -2235,14 +2235,14 @@ sodipodi:cy="16.362183" sodipodi:rx="1" sodipodi:ry="1" - d="m 16,16.362183 c 0,0.552284 -0.447715,1 -1,1 -0.552285,0 -1,-0.447716 -1,-1 0,-0.552285 0.447715,-1 1,-1 0.552285,0 1,0.447715 1,1 z" + d="m 16,16.362183 a 1,1 0 1 1 -2,0 1,1 0 1 1 2,0 z" transform="matrix(1.8840121,0.6711918,-0.6711918,1.8840121,2.2467045,371.75097)" /> <path inkscape:export-ydpi="90" inkscape:export-xdpi="90" inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/icons/from-private-to-public.png" transform="matrix(1.8840121,0.6711918,-0.6711918,1.8840121,-0.8112855,366.96948)" - d="m 16,16.362183 c 0,0.552284 -0.447715,1 -1,1 -0.552285,0 -1,-0.447716 -1,-1 0,-0.552285 0.447715,-1 1,-1 0.552285,0 1,0.447715 1,1 z" + d="m 16,16.362183 a 1,1 0 1 1 -2,0 1,1 0 1 1 2,0 z" sodipodi:ry="1" sodipodi:rx="1" sodipodi:cy="16.362183" @@ -3688,7 +3688,7 @@ id="text6270" y="-1168.2301" x="244.21739" - style="font-size:22px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.82999997999999997;color:#000000;fill:#b3b3b3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52077561999999999px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Italic" + style="font-size:22px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.82999998;color:#000000;fill:#b3b3b3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52077562px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Italic" xml:space="preserve" inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/chat-revisited.png" inkscape:export-xdpi="90" @@ -3897,6 +3897,144 @@ id="tspan6481" x="676.19073" y="-1096.9503">wave this!</tspan></text> + <rect + style="opacity:0.97800024;color:#000000;fill:#ececec;fill-opacity:1;fill-rule:nonzero;stroke:#cccccc;stroke-width:1.70832396;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect5346" + width="212.09114" + height="34.230644" + x="-506.99774" + y="-13.367081" + ry="0" /> + <text + xml:space="preserve" + style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.82999998;color:#000000;fill:#782121;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52077562px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold" + x="-498.22992" + y="10.527695" + id="text6256-6" + sodipodi:linespacing="100%" + inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/chat-revisited.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><tspan + sodipodi:role="line" + id="tspan6258-9" + x="-498.22992" + y="10.527695" + style="font-weight:normal">item 2</tspan></text> + <rect + ry="0" + y="-47.367081" + x="-506.99774" + height="34.230644" + width="212.09114" + id="rect5350" + style="opacity:0.97800024;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#cccccc;stroke-width:1.70832396;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/chat-revisited.png" + sodipodi:linespacing="100%" + id="text5356" + y="-25.472305" + x="-498.22992" + style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.82999998;color:#000000;fill:#782121;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52077562px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold" + xml:space="preserve"><tspan + style="font-weight:normal" + y="-25.472305" + x="-498.22992" + id="tspan5358" + sodipodi:role="line">item 1</tspan></text> + <rect + style="opacity:0.97800024;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#aa4400;stroke-width:1.99479878;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect3983" + width="212.56139" + height="29.070845" + x="-506.18716" + y="28.154282" + ry="3.5237386" /> + <text + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/chat-revisited.png" + sodipodi:linespacing="100%" + id="text5368" + y="48.527695" + x="-498.22992" + style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.82999998;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52077562px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold" + xml:space="preserve"><tspan + style="font-weight:normal;fill:#000000" + y="48.527695" + x="-498.22992" + id="tspan5370" + sodipodi:role="line">item 2</tspan></text> + <rect + ry="3.5237386" + y="29.154282" + x="-505.18716" + height="29.070845" + width="212.56139" + id="rect5384" + style="opacity:0.97800024;color:#000000;fill:none;stroke:#f2f2f2;stroke-width:1.99479878;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/chat-revisited.png" + sodipodi:linespacing="100%" + id="text5388" + y="145.52769" + x="-420.22992" + style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.82999998;color:#000000;fill:#782121;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52077562px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold" + xml:space="preserve"><tspan + style="font-weight:normal" + y="145.52769" + x="-420.22992" + id="tspan5390" + sodipodi:role="line">item 2</tspan></text> + <text + xml:space="preserve" + style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.82999998;color:#000000;fill:#782121;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52077562px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold" + x="-506.22992" + y="145.52769" + id="text5394" + sodipodi:linespacing="100%" + inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/chat-revisited.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><tspan + sodipodi:role="line" + id="tspan5396" + x="-506.22992" + y="145.52769" + style="font-weight:normal">item 1</tspan></text> + <rect + ry="3.5237386" + y="158.15428" + x="-506.18716" + height="29.070845" + width="212.56139" + id="rect5398" + style="opacity:0.97800024;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#aa4400;stroke-width:1.99479878;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.82999998;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52077562px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold" + x="-498.22992" + y="178.52769" + id="text5400" + sodipodi:linespacing="100%" + inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/chat-revisited.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><tspan + sodipodi:role="line" + id="tspan5402" + x="-498.22992" + y="178.52769" + style="font-weight:normal;fill:#000000">item 2</tspan></text> + <rect + style="opacity:0.97800024;color:#000000;fill:none;stroke:#f2f2f2;stroke-width:1.99479878;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect5404" + width="212.56139" + height="29.070845" + x="-505.18716" + y="159.15428" + ry="3.5237386" /> </g> <g inkscape:groupmode="layer" @@ -4485,7 +4623,7 @@ height="205.09827" width="476.85486" id="rect8452" - style="opacity:1;color:#000000;fill:#653616;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="color:#000000;fill:#653616;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/confirmation.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90" /> @@ -4605,19 +4743,20 @@ inkscape:transform-center-x="-5.9580116" style="color:#000000;fill:#6c5353;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> <path - style="color:#000000;fill:#a05a2c;fill-opacity:0.94901961000000001;fill-rule:nonzero;stroke:none;stroke-width:1.40678155000000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 738 124 C 736.338 124 735 125.338 735 127 L 735 142 C 735 143.662 736.338 145 738 145 L 751 145 C 752.662 145 754 143.662 754 142 L 754 127 C 754 125.338 752.662 124 751 124 L 738 124 z " + style="color:#000000;fill:#a05a2c;fill-opacity:0.94901961;fill-rule:nonzero;stroke:none;stroke-width:1.40678155;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 738,124 c -1.662,0 -3,1.338 -3,3 l 0,15 c 0,1.662 1.338,3 3,3 l 13,0 c 1.662,0 3,-1.338 3,-3 l 0,-15 c 0,-1.662 -1.338,-3 -3,-3 l -13,0 z" id="rect4000" inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/confirmation.png" inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> + inkscape:export-ydpi="90" + inkscape:connector-curvature="0" /> <rect y="124" x="742.76031" height="21" width="11.239679" id="rect4002" - style="color:#000000;fill:#a05a2c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.40678155000000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="color:#000000;fill:#a05a2c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.40678155;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/confirmation.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90" /> @@ -4625,30 +4764,60 @@ y="-71.70166" x="737.84711" id="image6818" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAoFJREFU -OI2lkstPE3EQx+e3rtACTVrA0NKWAlKLbAjYQkMfQFYU8FWQQBoR43/hxZjwL3j1qCiUJkKitKUN -oWjwFcSLB6Pd4gMjPjBd7G4X9vHzQNq0PA7GSebynZlPJvMdhDGG/wlir+AemDrl7JsyH9TcNRhs -6hwKnDgU0Hkx6OjrbQh5usxLHecfmvJrXt8kZXdWz7e0VEe7hx9YszqZo/sC9jP99Y8ou16/S8VL -7p5g17OFka9e3yTldNWEWzvMJkXBgAHHPJcDPcszfia3gaqs6Farw6DnBAnYjAhe2lLv7NYvdVwI -nnW5LGG722zmRQUECYCyG4zFJHkDAABlj0jTcbKqKRP2X23uYQUJKRhDmYqEdSbFVdVqSzlBBgAE -6bQgR2ffBebvDYxhDBjlu0DTcVJPCZGRUeo0K8hIUQBIAsGOjGFbVIBlBelJ6P10dGJwDGPABRvk -Q441ZhavXGv2/uYl4LYl+MmKQCoyXo4kZmL3B4ezwwfaKGq+2RqsunpelOHTLx6YDQ5SvAgigZCu -Qm1r750qcKcA4PZNNno8tRHzycrq1WQKOEECQ7kKEACk0jLUtZkoi1UXzv+THKD93ITNYTdGKm1a -E/M9DYhAUFl8RHr++EOiooRQEALY4mWobTNRNVZtKAvJATQa9e1GR5XlB7sNBIFAryalp2FmlvmT -oV7Or0V0KqQghHabEVKBohwtAGwJm0PxueQLo1YNhtIiaTGUmA0ff+N/Oz2yk/msGViJJaPlxaCs -vV5PfGQ2+l/FRpP7XGjz3SmpM5oWMrz8Ze7uJX/+tWk6TirlmxNcJn1zJXSdyQ1hjAvS5ZpWw/g4 -sVc/LPf9wb/GX4vjPAuggBABAAAAAElFTkSuQmCC -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAoFJREFU OI2lkstPE3EQx+e3rtACTVrA0NKWAlKLbAjYQkMfQFYU8FWQQBoR43/hxZjwL3j1qCiUJkKitKUN oWjwFcSLB6Pd4gMjPjBd7G4X9vHzQNq0PA7GSebynZlPJvMdhDGG/wlir+AemDrl7JsyH9TcNRhs 6hwKnDgU0Hkx6OjrbQh5usxLHecfmvJrXt8kZXdWz7e0VEe7hx9YszqZo/sC9jP99Y8ou16/S8VL 7p5g17OFka9e3yTldNWEWzvMJkXBgAHHPJcDPcszfia3gaqs6Farw6DnBAnYjAhe2lLv7NYvdVwI nnW5LGG722zmRQUECYCyG4zFJHkDAABlj0jTcbKqKRP2X23uYQUJKRhDmYqEdSbFVdVqSzlBBgAE 6bQgR2ffBebvDYxhDBjlu0DTcVJPCZGRUeo0K8hIUQBIAsGOjGFbVIBlBelJ6P10dGJwDGPABRvk Q441ZhavXGv2/uYl4LYl+MmKQCoyXo4kZmL3B4ezwwfaKGq+2RqsunpelOHTLx6YDQ5SvAgigZCu Qm1r750qcKcA4PZNNno8tRHzycrq1WQKOEECQ7kKEACk0jLUtZkoi1UXzv+THKD93ITNYTdGKm1a E/M9DYhAUFl8RHr++EOiooRQEALY4mWobTNRNVZtKAvJATQa9e1GR5XlB7sNBIFAryalp2FmlvmT oV7Or0V0KqQghHabEVKBohwtAGwJm0PxueQLo1YNhtIiaTGUmA0ff+N/Oz2yk/msGViJJaPlxaCs vV5PfGQ2+l/FRpP7XGjz3SmpM5oWMrz8Ze7uJX/+tWk6TirlmxNcJn1zJXSdyQ1hjAvS5ZpWw/g4 sVc/LPf9wb/GX4vjPAuggBABAAAAAElFTkSuQmCC " height="16" width="16" style="fill:#ffffff;stroke:#ffffff" /> <path - style="color:#000000;fill:#181817;fill-opacity:1;fill-rule:nonzero;stroke:#181817;stroke-width:1.40678155000000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 741.5625 129.375 L 740.5 130.4375 L 744.125 134.0625 L 740.5 137.6875 L 741.5625 138.75 L 745.1875 135.125 L 748.8125 138.75 L 749.84375 137.6875 L 746.21875 134.0625 L 749.84375 130.4375 L 748.8125 129.375 L 745.1875 133 L 741.5625 129.375 z " + style="color:#000000;fill:#181817;fill-opacity:1;fill-rule:nonzero;stroke:#181817;stroke-width:1.40678155;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 741.5625,129.375 -1.0625,1.0625 3.625,3.625 -3.625,3.625 1.0625,1.0625 3.625,-3.625 3.625,3.625 1.03125,-1.0625 -3.625,-3.625 3.625,-3.625 -1.03125,-1.0625 -3.625,3.625 -3.625,-3.625 z" id="rect6837" inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/confirmation.png" inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> + inkscape:export-ydpi="90" + inkscape:connector-curvature="0" /> + <image + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJvSURBVDjLpZPrS5NhGIf9W7YvBYOkhlko qCklWChv2WyKik7blnNris72bi6dus0DLZ0TDxW1odtopDs4D8MDZuLU0kXq61CijSIIasOvv94V TUfLiB74fXngup7nvrnvJABJ/5PfLnTTdcwOj4RsdYmo5glBWP6iOtzwvIKSWstI0Wgx80SBblpK tE9KQs/We7EaWoT/8wbWP61gMmCH0lMDvokT4j25TiQU/ITFkek9Ow6+7WH2gwsmahCPdwyw75uw 9HEO2gUZSkfyI9zBPCJOoJ2SMmg46N61YO/rNoa39Xi41oFuXysMfh36/Fp0b7bAfWAH6RGi0Hgl WNCbzYgJaFjRv6zGuy+b9It96N3SQvNKiV9HvSaDfFEIxXItnPs23BzJQd6DDEVM0OKsoVwBG/1V MzpXVWhbkUM2K4oJBDYuGmbKIJ0qxsAbHfRLzbjcnUbFBIpx/qH3vQv9b3U03IQ/HfFkERTzfFj8 w8jSpR7GBE123uFEYAzaDRIqX/2JAtJbDat/COkd7CNBva2cMvq0MGxp0PRSCPF8BXjWG3FgNHc9 XPT71Ojy3sMFdfJRCeKxEsVtKwFHwALZfCUk3tIfNR8XiJwc1LmL4dg141JPKtj3WUdNFJqLGFVP C4OkR4BxajTWsChY64wmCnMxsWPCHcutKBxMVp5mxA1S+aMComToaqTRUQknLTH62kHOVEE+VQnj ahscNCy0cMBWsSI0TCQcZc5ALkEYckL5A5noWSBhfm2AecMAjbcRWV0pUTh0HE64TNf0mczcnnQy u/MilaFJCae1nw2fbz1DnVOxyGTlKeZft/Ff8x1BRssfACjTwQAAAABJRU5ErkJggg== " + width="16" + height="16" + id="image2770" + x="-322.46912" + y="34.81517" /> + <image + y="-5.1848292" + x="-322.46912" + id="image5348" + height="16" + width="16" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJvSURBVDjLpZPrS5NhGIf9W7YvBYOkhlko qCklWChv2WyKik7blnNris72bi6dus0DLZ0TDxW1odtopDs4D8MDZuLU0kXq61CijSIIasOvv94V TUfLiB74fXngup7nvrnvJABJ/5PfLnTTdcwOj4RsdYmo5glBWP6iOtzwvIKSWstI0Wgx80SBblpK tE9KQs/We7EaWoT/8wbWP61gMmCH0lMDvokT4j25TiQU/ITFkek9Ow6+7WH2gwsmahCPdwyw75uw 9HEO2gUZSkfyI9zBPCJOoJ2SMmg46N61YO/rNoa39Xi41oFuXysMfh36/Fp0b7bAfWAH6RGi0Hgl WNCbzYgJaFjRv6zGuy+b9It96N3SQvNKiV9HvSaDfFEIxXItnPs23BzJQd6DDEVM0OKsoVwBG/1V MzpXVWhbkUM2K4oJBDYuGmbKIJ0qxsAbHfRLzbjcnUbFBIpx/qH3vQv9b3U03IQ/HfFkERTzfFj8 w8jSpR7GBE123uFEYAzaDRIqX/2JAtJbDat/COkd7CNBva2cMvq0MGxp0PRSCPF8BXjWG3FgNHc9 XPT71Ojy3sMFdfJRCeKxEsVtKwFHwALZfCUk3tIfNR8XiJwc1LmL4dg141JPKtj3WUdNFJqLGFVP C4OkR4BxajTWsChY64wmCnMxsWPCHcutKBxMVp5mxA1S+aMComToaqTRUQknLTH62kHOVEE+VQnj ahscNCy0cMBWsSI0TCQcZc5ALkEYckL5A5noWSBhfm2AecMAjbcRWV0pUTh0HE64TNf0mczcnnQy u/MilaFJCae1nw2fbz1DnVOxyGTlKeZft/Ff8x1BRssfACjTwQAAAABJRU5ErkJggg== " /> + <image + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJvSURBVDjLpZPrS5NhGIf9W7YvBYOkhlko qCklWChv2WyKik7blnNris72bi6dus0DLZ0TDxW1odtopDs4D8MDZuLU0kXq61CijSIIasOvv94V TUfLiB74fXngup7nvrnvJABJ/5PfLnTTdcwOj4RsdYmo5glBWP6iOtzwvIKSWstI0Wgx80SBblpK tE9KQs/We7EaWoT/8wbWP61gMmCH0lMDvokT4j25TiQU/ITFkek9Ow6+7WH2gwsmahCPdwyw75uw 9HEO2gUZSkfyI9zBPCJOoJ2SMmg46N61YO/rNoa39Xi41oFuXysMfh36/Fp0b7bAfWAH6RGi0Hgl WNCbzYgJaFjRv6zGuy+b9It96N3SQvNKiV9HvSaDfFEIxXItnPs23BzJQd6DDEVM0OKsoVwBG/1V MzpXVWhbkUM2K4oJBDYuGmbKIJ0qxsAbHfRLzbjcnUbFBIpx/qH3vQv9b3U03IQ/HfFkERTzfFj8 w8jSpR7GBE123uFEYAzaDRIqX/2JAtJbDat/COkd7CNBva2cMvq0MGxp0PRSCPF8BXjWG3FgNHc9 XPT71Ojy3sMFdfJRCeKxEsVtKwFHwALZfCUk3tIfNR8XiJwc1LmL4dg141JPKtj3WUdNFJqLGFVP C4OkR4BxajTWsChY64wmCnMxsWPCHcutKBxMVp5mxA1S+aMComToaqTRUQknLTH62kHOVEE+VQnj ahscNCy0cMBWsSI0TCQcZc5ALkEYckL5A5noWSBhfm2AecMAjbcRWV0pUTh0HE64TNf0mczcnnQy u/MilaFJCae1nw2fbz1DnVOxyGTlKeZft/Ff8x1BRssfACjTwQAAAABJRU5ErkJggg== " + width="16" + height="16" + id="image5360" + x="-322.46912" + y="-39.18483" /> + <image + y="164.81517" + x="-322.46912" + id="image5406" + height="16" + width="16" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJvSURBVDjLpZPrS5NhGIf9W7YvBYOkhlko qCklWChv2WyKik7blnNris72bi6dus0DLZ0TDxW1odtopDs4D8MDZuLU0kXq61CijSIIasOvv94V TUfLiB74fXngup7nvrnvJABJ/5PfLnTTdcwOj4RsdYmo5glBWP6iOtzwvIKSWstI0Wgx80SBblpK tE9KQs/We7EaWoT/8wbWP61gMmCH0lMDvokT4j25TiQU/ITFkek9Ow6+7WH2gwsmahCPdwyw75uw 9HEO2gUZSkfyI9zBPCJOoJ2SMmg46N61YO/rNoa39Xi41oFuXysMfh36/Fp0b7bAfWAH6RGi0Hgl WNCbzYgJaFjRv6zGuy+b9It96N3SQvNKiV9HvSaDfFEIxXItnPs23BzJQd6DDEVM0OKsoVwBG/1V MzpXVWhbkUM2K4oJBDYuGmbKIJ0qxsAbHfRLzbjcnUbFBIpx/qH3vQv9b3U03IQ/HfFkERTzfFj8 w8jSpR7GBE123uFEYAzaDRIqX/2JAtJbDat/COkd7CNBva2cMvq0MGxp0PRSCPF8BXjWG3FgNHc9 XPT71Ojy3sMFdfJRCeKxEsVtKwFHwALZfCUk3tIfNR8XiJwc1LmL4dg141JPKtj3WUdNFJqLGFVP C4OkR4BxajTWsChY64wmCnMxsWPCHcutKBxMVp5mxA1S+aMComToaqTRUQknLTH62kHOVEE+VQnj ahscNCy0cMBWsSI0TCQcZc5ALkEYckL5A5noWSBhfm2AecMAjbcRWV0pUTh0HE64TNf0mczcnnQy u/MilaFJCae1nw2fbz1DnVOxyGTlKeZft/Ff8x1BRssfACjTwQAAAABJRU5ErkJggg== " /> + <image + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJvSURBVDjLpZPrS5NhGIf9W7YvBYOkhlko qCklWChv2WyKik7blnNris72bi6dus0DLZ0TDxW1odtopDs4D8MDZuLU0kXq61CijSIIasOvv94V TUfLiB74fXngup7nvrnvJABJ/5PfLnTTdcwOj4RsdYmo5glBWP6iOtzwvIKSWstI0Wgx80SBblpK tE9KQs/We7EaWoT/8wbWP61gMmCH0lMDvokT4j25TiQU/ITFkek9Ow6+7WH2gwsmahCPdwyw75uw 9HEO2gUZSkfyI9zBPCJOoJ2SMmg46N61YO/rNoa39Xi41oFuXysMfh36/Fp0b7bAfWAH6RGi0Hgl WNCbzYgJaFjRv6zGuy+b9It96N3SQvNKiV9HvSaDfFEIxXItnPs23BzJQd6DDEVM0OKsoVwBG/1V MzpXVWhbkUM2K4oJBDYuGmbKIJ0qxsAbHfRLzbjcnUbFBIpx/qH3vQv9b3U03IQ/HfFkERTzfFj8 w8jSpR7GBE123uFEYAzaDRIqX/2JAtJbDat/COkd7CNBva2cMvq0MGxp0PRSCPF8BXjWG3FgNHc9 XPT71Ojy3sMFdfJRCeKxEsVtKwFHwALZfCUk3tIfNR8XiJwc1LmL4dg141JPKtj3WUdNFJqLGFVP C4OkR4BxajTWsChY64wmCnMxsWPCHcutKBxMVp5mxA1S+aMComToaqTRUQknLTH62kHOVEE+VQnj ahscNCy0cMBWsSI0TCQcZc5ALkEYckL5A5noWSBhfm2AecMAjbcRWV0pUTh0HE64TNf0mczcnnQy u/MilaFJCae1nw2fbz1DnVOxyGTlKeZft/Ff8x1BRssfACjTwQAAAABJRU5ErkJggg== " + width="16" + height="16" + id="image5408" + x="-365.46912" + y="121.81517" /> + <image + y="126.81517" + x="-450.46909" + id="image5410" + height="16" + width="16" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJvSURBVDjLpZPrS5NhGIf9W7YvBYOkhlko qCklWChv2WyKik7blnNris72bi6dus0DLZ0TDxW1odtopDs4D8MDZuLU0kXq61CijSIIasOvv94V TUfLiB74fXngup7nvrnvJABJ/5PfLnTTdcwOj4RsdYmo5glBWP6iOtzwvIKSWstI0Wgx80SBblpK tE9KQs/We7EaWoT/8wbWP61gMmCH0lMDvokT4j25TiQU/ITFkek9Ow6+7WH2gwsmahCPdwyw75uw 9HEO2gUZSkfyI9zBPCJOoJ2SMmg46N61YO/rNoa39Xi41oFuXysMfh36/Fp0b7bAfWAH6RGi0Hgl WNCbzYgJaFjRv6zGuy+b9It96N3SQvNKiV9HvSaDfFEIxXItnPs23BzJQd6DDEVM0OKsoVwBG/1V MzpXVWhbkUM2K4oJBDYuGmbKIJ0qxsAbHfRLzbjcnUbFBIpx/qH3vQv9b3U03IQ/HfFkERTzfFj8 w8jSpR7GBE123uFEYAzaDRIqX/2JAtJbDat/COkd7CNBva2cMvq0MGxp0PRSCPF8BXjWG3FgNHc9 XPT71Ojy3sMFdfJRCeKxEsVtKwFHwALZfCUk3tIfNR8XiJwc1LmL4dg141JPKtj3WUdNFJqLGFVP C4OkR4BxajTWsChY64wmCnMxsWPCHcutKBxMVp5mxA1S+aMComToaqTRUQknLTH62kHOVEE+VQnj ahscNCy0cMBWsSI0TCQcZc5ALkEYckL5A5noWSBhfm2AecMAjbcRWV0pUTh0HE64TNf0mczcnnQy u/MilaFJCae1nw2fbz1DnVOxyGTlKeZft/Ff8x1BRssfACjTwQAAAABJRU5ErkJggg== " /> </g> <g inkscape:groupmode="layer" Modified: trunk/src/main/java/cc/kune/Kune.gwt.xml =================================================================== --- trunk/src/main/java/cc/kune/Kune.gwt.xml 2011-09-28 14:04:57 UTC (rev 1540) +++ trunk/src/main/java/cc/kune/Kune.gwt.xml 2011-10-03 12:31:04 UTC (rev 1541) @@ -15,6 +15,7 @@ <inherits name="cc.kune.tasks.KuneTasks" /> <inherits name="cc.kune.lists.KuneLists" /> <inherits name="cc.kune.pspace.PSpace" /> + <inherits name="cc.kune.hspace.HSpace" /> <inherits name="com.calclab.suco.Suco" /> <inherits name="org.adamtacy.GWTEffects"></inherits> <source path='client' Modified: trunk/src/main/java/cc/kune/client/KuneEntryPoint.java =================================================================== --- trunk/src/main/java/cc/kune/client/KuneEntryPoint.java 2011-09-28 14:04:57 UTC (rev 1540) +++ trunk/src/main/java/cc/kune/client/KuneEntryPoint.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -93,6 +93,7 @@ ginjector.getCoreParts(); ginjector.getGSpaceParts(); ginjector.getPSpaceParts(); + ginjector.getHSpaceParts(); ginjector.getXmlActionsParser(); ginjector.getContentViewerSelector().init(); } Modified: trunk/src/main/java/cc/kune/client/KuneGinjector.java =================================================================== --- trunk/src/main/java/cc/kune/client/KuneGinjector.java 2011-09-28 14:04:57 UTC (rev 1540) +++ trunk/src/main/java/cc/kune/client/KuneGinjector.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -59,6 +59,9 @@ import cc.kune.events.client.EventsGinjector; import cc.kune.gspace.client.GSpaceGinModule; import cc.kune.gspace.client.GSpaceGinjector; +import cc.kune.hspace.client.HSpaceGinModule; +import cc.kune.hspace.client.HSpaceParts; +import cc.kune.hspace.client.HSpacePresenter; import cc.kune.lists.client.ListsGinModule; import cc.kune.lists.client.ListsGinjector; import cc.kune.pspace.client.PSpaceGinModule; @@ -79,9 +82,9 @@ import com.gwtplatform.mvp.client.proxy.ProxyFailureHandler; @GinModules({ KuneGinModule.class, CoreGinModule.class, WaveGinModule.class, PSpaceGinModule.class, - GSpaceGinModule.class, DocsGinModule.class, BlogsGinModule.class, ChatGinModule.class, - WikiGinModule.class, BartersGinModule.class, EventsGinModule.class, TasksGinModule.class, - ListsGinModule.class }) + HSpaceGinModule.class, GSpaceGinModule.class, DocsGinModule.class, BlogsGinModule.class, + ChatGinModule.class, WikiGinModule.class, BartersGinModule.class, EventsGinModule.class, + TasksGinModule.class, ListsGinModule.class }) public interface KuneGinjector extends Ginjector, GSpaceGinjector, DocsGinjector, BlogsGinjector, WikiGinjector, BartersGinjector, EventsGinjector, ChatGinjector, TasksGinjector, ListsGinjector { @@ -116,6 +119,10 @@ GxtGuiProvider getGxtGuiProvider(); + HSpaceParts getHSpaceParts(); + + AsyncProvider<HSpacePresenter> getHSpacePresenter(); + I18nTranslationService getI18n(); AsyncProvider<NewGroupPresenter> getNewGroupPresenter(); Modified: trunk/src/main/java/cc/kune/core/client/rpcservices/SiteService.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/rpcservices/SiteService.java 2011-09-28 14:04:57 UTC (rev 1540) +++ trunk/src/main/java/cc/kune/core/client/rpcservices/SiteService.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -28,6 +28,6 @@ @RemoteServiceRelativePath("SiteService") public interface SiteService extends RemoteService { - InitDataDTO getInitData(String userHash) throws DefaultException; + InitDataDTO getInitData(String userHash) throws DefaultException; } Modified: trunk/src/main/java/cc/kune/core/client/rpcservices/SiteServiceAsync.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/rpcservices/SiteServiceAsync.java 2011-09-28 14:04:57 UTC (rev 1540) +++ trunk/src/main/java/cc/kune/core/client/rpcservices/SiteServiceAsync.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -19,13 +19,12 @@ */ package cc.kune.core.client.rpcservices; - import cc.kune.core.shared.dto.InitDataDTO; import com.google.gwt.user.client.rpc.AsyncCallback; public interface SiteServiceAsync { - void getInitData(String userHash, AsyncCallback<InitDataDTO> callback); + void getInitData(String userHash, AsyncCallback<InitDataDTO> callback); } Modified: trunk/src/main/java/cc/kune/core/server/KuneRackModule.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2011-09-28 14:04:57 UTC (rev 1540) +++ trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -56,6 +56,7 @@ import cc.kune.core.server.rest.UserJSONService; import cc.kune.docs.server.DocumentServerModule; import cc.kune.events.server.EventsServerModule; +import cc.kune.hspace.client.ClientStatsService; import cc.kune.lists.client.rpc.ListsService; import cc.kune.lists.server.ListsServerModule; import cc.kune.tasks.server.TaskServerModule; @@ -145,7 +146,7 @@ builder.installGWTServices("^" + suffix + "/", SiteService.class, GroupService.class, ContentService.class, UserService.class, SocialNetworkService.class, I18nService.class, - ListsService.class); + ListsService.class, ClientStatsService.class); builder.installRESTServices("^" + suffix + "/json/", TestJSONService.class, GroupJSONService.class, UserJSONService.class, I18nTranslationJSONService.class, ContentJSONService.class); builder.installServlet("^" + suffix + "/servlets/", FileUploadManager.class, Modified: trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2011-09-28 14:04:57 UTC (rev 1540) +++ trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -92,9 +92,12 @@ import cc.kune.core.server.rpc.I18nRPC; import cc.kune.core.server.rpc.SiteRPC; import cc.kune.core.server.rpc.SocialNetworkRPC; +import cc.kune.core.server.rpc.StatsRPC; import cc.kune.core.server.rpc.UserRPC; import cc.kune.core.server.state.StateService; import cc.kune.core.server.state.StateServiceDefault; +import cc.kune.core.server.stats.StatsService; +import cc.kune.core.server.stats.StatsServiceDefault; import cc.kune.core.server.tool.ServerToolRegistry; import cc.kune.core.server.users.UserInfoService; import cc.kune.core.server.users.UserInfoServiceDefault; @@ -102,6 +105,7 @@ import cc.kune.core.server.xmpp.XmppManagerDefault; import cc.kune.core.shared.i18n.I18nTranslationService; import cc.kune.domain.SocialNetwork; +import cc.kune.hspace.client.ClientStatsService; import cc.kune.lists.client.rpc.ListsService; import cc.kune.lists.server.rpc.ListsRPC; import cc.kune.wave.server.KuneWaveService; @@ -149,6 +153,7 @@ bind(SocialNetworkService.class).to(SocialNetworkRPC.class); bind(I18nService.class).to(I18nRPC.class); bind(ListsService.class).to(ListsRPC.class); + bind(ClientStatsService.class).to(StatsRPC.class); } private void bindServices() { @@ -162,6 +167,7 @@ bind(KuneWaveService.class).to(KuneWaveServiceDefault.class); bind(MailService.class).to(MailServiceDefault.class); bind(XMLActionReader.class); + bind(StatsService.class).to(StatsServiceDefault.class); } @Override Modified: trunk/src/main/java/cc/kune/core/server/rpc/SiteRPC.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/rpc/SiteRPC.java 2011-09-28 14:04:57 UTC (rev 1540) +++ trunk/src/main/java/cc/kune/core/server/rpc/SiteRPC.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -150,4 +150,5 @@ data.setSiteShortName(kuneProperties.get(KuneProperties.SITE_SHORTNAME)); return data; } + } Added: trunk/src/main/java/cc/kune/core/server/rpc/StatsRPC.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/rpc/StatsRPC.java (rev 0) +++ trunk/src/main/java/cc/kune/core/server/rpc/StatsRPC.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -0,0 +1,38 @@ +package cc.kune.core.server.rpc; + +import cc.kune.core.server.UserSessionManager; +import cc.kune.core.server.auth.Authenticated; +import cc.kune.core.server.mapper.Mapper; +import cc.kune.core.server.stats.StatsService; +import cc.kune.core.shared.dto.HomeStatsDTO; +import cc.kune.hspace.client.ClientStatsService; + +import com.google.inject.Inject; + +public class StatsRPC implements RPC, ClientStatsService { + + private final Mapper mapper; + private final StatsService statsService; + private final UserSessionManager userSessionManager; + + @Inject + public StatsRPC(final StatsService statsService, final UserSessionManager userSessionManager, + final Mapper mapper) { + this.statsService = statsService; + this.userSessionManager = userSessionManager; + this.mapper = mapper; + } + + @Override + public HomeStatsDTO getHomeStats() { + return mapper.map(statsService.getHomeStats(), HomeStatsDTO.class); + } + + @Override + @Authenticated + public HomeStatsDTO getHomeStats(final String userHash) { + return mapper.map(statsService.getHomeStats(userSessionManager.getUser().getUserGroup()), + HomeStatsDTO.class); + } + +} Added: trunk/src/main/java/cc/kune/core/server/stats/HomeStats.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/stats/HomeStats.java (rev 0) +++ trunk/src/main/java/cc/kune/core/server/stats/HomeStats.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -0,0 +1,59 @@ +package cc.kune.core.server.stats; + +import java.util.List; + +import cc.kune.domain.Content; +import cc.kune.domain.Group; + +public class HomeStats { + + private List<Content> lastContentsOfMyGroups; + private List<Group> lastGroups; + private List<Content> lastPublishedContents; + private Long totalGroups; + private Long totalUsers; + + public HomeStats() { + } + + public List<Content> getLastContentsOfMyGroups() { + return lastContentsOfMyGroups; + } + + public List<Group> getLastGroups() { + return lastGroups; + } + + public List<Content> getLastPublishedContents() { + return lastPublishedContents; + } + + public Long getTotalGroups() { + return totalGroups; + } + + public Long getTotalUsers() { + return totalUsers; + } + + public void setLastContentsOfMyGroups(final List<Content> lastContentsOfMyGroups) { + this.lastContentsOfMyGroups = lastContentsOfMyGroups; + } + + public void setLastGroups(final List<Group> lastGroups) { + this.lastGroups = lastGroups; + } + + public void setLastPublishedContents(final List<Content> lastPublishedContents) { + this.lastPublishedContents = lastPublishedContents; + } + + public void setTotalGroups(final Long totalGroups) { + this.totalGroups = totalGroups; + } + + public void setTotalUsers(final Long totalUsers) { + this.totalUsers = totalUsers; + } + +} Added: trunk/src/main/java/cc/kune/core/server/stats/StatsService.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/stats/StatsService.java (rev 0) +++ trunk/src/main/java/cc/kune/core/server/stats/StatsService.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -0,0 +1,11 @@ +package cc.kune.core.server.stats; + +import cc.kune.domain.Group; + +public interface StatsService { + + HomeStats getHomeStats(); + + HomeStats getHomeStats(Group userGroup); + +} Added: trunk/src/main/java/cc/kune/core/server/stats/StatsServiceDefault.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/stats/StatsServiceDefault.java (rev 0) +++ trunk/src/main/java/cc/kune/core/server/stats/StatsServiceDefault.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -0,0 +1,46 @@ +package cc.kune.core.server.stats; + +import cc.kune.core.shared.domain.ContentStatus; +import cc.kune.core.shared.dto.GroupType; +import cc.kune.domain.Group; +import cc.kune.domain.finders.ContentFinder; +import cc.kune.domain.finders.GroupFinder; +import cc.kune.domain.finders.UserFinder; + +import com.google.inject.Inject; + +public class StatsServiceDefault implements StatsService { + + private static final int LIMIT = 20; + private final ContentFinder contentFinder; + private final GroupFinder groupFinder; + private final UserFinder userFinder; + + @Inject + public StatsServiceDefault(final UserFinder userFinder, final GroupFinder groupFinder, + final ContentFinder contentFinder) { + this.userFinder = userFinder; + this.groupFinder = groupFinder; + this.contentFinder = contentFinder; + } + + @Override + public HomeStats getHomeStats() { + return getHomeStats(Group.NO_GROUP); + } + + @Override + public HomeStats getHomeStats(final Group userGroup) { + final HomeStats stats = new HomeStats(); + stats.setLastGroups(groupFinder.lastGroups(LIMIT, GroupType.CLOSED, GroupType.PERSONAL)); + stats.setTotalGroups(groupFinder.count()); + stats.setTotalUsers(userFinder.count()); + stats.setLastPublishedContents(contentFinder.lastModifiedContents(LIMIT, + ContentStatus.publishedOnline)); + if (userGroup != Group.NO_GROUP) { + stats.setLastContentsOfMyGroups(contentFinder.lastModifiedContentsInUserGroup(LIMIT, + userGroup.getId())); + } + return stats; + } +} Added: trunk/src/main/java/cc/kune/core/shared/dto/HomeStatsDTO.java =================================================================== --- trunk/src/main/java/cc/kune/core/shared/dto/HomeStatsDTO.java (rev 0) +++ trunk/src/main/java/cc/kune/core/shared/dto/HomeStatsDTO.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -0,0 +1,58 @@ +package cc.kune.core.shared.dto; + +import java.util.List; + +import com.google.gwt.user.client.rpc.IsSerializable; + +public class HomeStatsDTO implements IsSerializable { + + private List<ContentSimpleDTO> lastContentsOfMyGroups; + private List<GroupDTO> lastGroups; + private List<ContentSimpleDTO> lastPublishedContents; + private Long totalGroups; + private Long totalUsers; + + public HomeStatsDTO() { + } + + public List<ContentSimpleDTO> getLastContentsOfMyGroups() { + return lastContentsOfMyGroups; + } + + public List<GroupDTO> getLastGroups() { + return lastGroups; + } + + public List<ContentSimpleDTO> getLastPublishedContents() { + return lastPublishedContents; + } + + public Long getTotalGroups() { + return totalGroups; + } + + public Long getTotalUsers() { + return totalUsers; + } + + public void setLastContentsOfMyGroups(final List<ContentSimpleDTO> lastContentsOfMyGroups) { + this.lastContentsOfMyGroups = lastContentsOfMyGroups; + } + + public void setLastGroups(final List<GroupDTO> lastGroups) { + this.lastGroups = lastGroups; + } + + public void setLastPublishedContents(final List<ContentSimpleDTO> lastPublishedContents) { + this.lastPublishedContents = lastPublishedContents; + } + + public void setTotalGroups(final Long totalGroups) { + this.totalGroups = totalGroups; + } + + public void setTotalUsers(final Long totalUsers) { + this.totalUsers = totalUsers; + } + +} Modified: trunk/src/main/java/cc/kune/domain/finders/ContentFinder.java =================================================================== --- trunk/src/main/java/cc/kune/domain/finders/ContentFinder.java 2011-09-28 14:04:57 UTC (rev 1540) +++ trunk/src/main/java/cc/kune/domain/finders/ContentFinder.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.List; +import cc.kune.core.shared.domain.ContentStatus; import cc.kune.domain.Container; import cc.kune.domain.Content; @@ -35,23 +36,39 @@ import com.google.inject.persist.finder.MaxResults; public interface ContentFinder { - @Finder(query = "FROM Content WHERE lastRevision.title LIKE :title AND (mimeType.mimetype=:mimetype OR mimeType.mimetype=:mimetype2) AND container.owner.shortName=:group AND deletedOn=null ORDER BY lastRevision.title ASC", returnAs = ArrayList.class) - public List<Content> find2Mime(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title, - @Named(MIMETYPE) final String mimetype, @Named("mimetype2") final String mimetype2, - @FirstResult final int offset, @MaxResults final int limit); + @Finder(query = "FROM Content WHERE lastRevision.title LIKE :title AND (mimeType.mimetype=:mimetype OR mimeType.mimetype=:mimetype2) AND container.owner.shortName=:group AND deletedOn=null ORDER BY lastRevision.title ASC", returnAs = ArrayList.class) + public List<Content> find2Mime(@Named(GROUP) final String groupShortName, + @Named(TITLE) final String title, @Named(MIMETYPE) final String mimetype, + @Named("mimetype2") final String mimetype2, @FirstResult final int offset, + @MaxResults final int limit); - @Finder(query = "SELECT count(id) FROM Content WHERE lastRevision.title LIKE :title AND (mimeType.mimetype=:mimetype OR mimeType.mimetype=:mimetype2) AND container.owner.shortName=:group AND deletedOn=null") - public Long find2MimeCount(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title, - @Named(MIMETYPE) final String mimetype, @Named("mimetype2") final String mimetype2); + @Finder(query = "SELECT count(id) FROM Content WHERE lastRevision.title LIKE :title AND (mimeType.mimetype=:mimetype OR mimeType.mimetype=:mimetype2) AND container.owner.shortName=:group AND deletedOn=null") + public Long find2MimeCount(@Named(GROUP) final String groupShortName, + @Named(TITLE) final String title, @Named(MIMETYPE) final String mimetype, + @Named("mimetype2") final String mimetype2); - @Finder(query = "SELECT count(*) from Container ctx, Content ctn where ctn.container.id = ctx.id and ctx = :container and ctn.lastRevision.title LIKE :title") - public Long findIfExistsTitle(@Named("container") final Container container, @Named(TITLE) final String title); + @Finder(query = "SELECT count(*) from Container ctx, Content ctn where ctn.container.id = ctx.id and ctx = :container and ctn.lastRevision.title LIKE :title") + public Long findIfExistsTitle(@Named("container") final Container container, + @Named(TITLE) final String title); - @Finder(query = "FROM Content WHERE lastRevision.title LIKE :title AND mimeType.mimetype=:mimetype AND container.owner.shortName=:group AND deletedOn=null ORDER BY lastRevision.title ASC", returnAs = ArrayList.class) - public List<Content> findMime(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title, - @Named(MIMETYPE) final String mimetype, @FirstResult final int offset, @MaxResults final int limit); + @Finder(query = "FROM Content WHERE lastRevision.title LIKE :title AND mimeType.mimetype=:mimetype AND container.owner.shortName=:group AND deletedOn=null ORDER BY lastRevision.title ASC", returnAs = ArrayList.class) + public List<Content> findMime(@Named(GROUP) final String groupShortName, + @Named(TITLE) final String title, @Named(MIMETYPE) final String mimetype, + @FirstResult final int offset, @MaxResults final int limit); - @Finder(query = "SELECT count(id) FROM Content WHERE lastRevision.title LIKE :title AND mimeType.mimetype=:mimetype AND container.owner.shortName=:group AND deletedOn=null") - public Long findMimeCount(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title, - @Named(MIMETYPE) final String mimetype); + @Finder(query = "SELECT count(id) FROM Content WHERE lastRevision.title LIKE :title AND mimeType.mimetype=:mimetype AND container.owner.shortName=:group AND deletedOn=null") + public Long findMimeCount(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title, + @Named(MIMETYPE) final String mimetype); + + @Finder(query = "FROM Content c WHERE c.status = :status ORDER BY c.modifiedOn DESC", returnAs = ArrayList.class) + public List<Content> lastModifiedContents(@MaxResults final int limit, + @Named("status") final ContentStatus status); + + @Finder(query = "FROM Content c WHERE " + "((c.container.owner.id IN (SELECT ed.id FROM " + + "c.container.owner.socialNetwork.accessLists.editors.list AS ed WHERE ed.id = :groupid)) OR" + + "(c.container.owner.id IN (SELECT ad.id FROM " + + "c.container.owner.socialNetwork.accessLists.admins.list AS ad WHERE ad.id = :groupid)))" + + "ORDER BY c.modifiedOn DESC", returnAs = ArrayList.class) + public List<Content> lastModifiedContentsInUserGroup(@MaxResults final int limit, + @Named("groupid") Long groupId); } Modified: trunk/src/main/java/cc/kune/domain/finders/GroupFinder.java =================================================================== --- trunk/src/main/java/cc/kune/domain/finders/GroupFinder.java 2011-09-28 14:04:57 UTC (rev 1540) +++ trunk/src/main/java/cc/kune/domain/finders/GroupFinder.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -24,13 +24,18 @@ import java.util.List; import java.util.Set; +import cc.kune.core.shared.dto.GroupType; import cc.kune.domain.Group; import com.google.inject.name.Named; import com.google.inject.persist.finder.Finder; +import com.google.inject.persist.finder.MaxResults; public interface GroupFinder { + @Finder(query = "SELECT count(*) FROM Group g") + public Long count(); + @Finder(query = "SELECT count(*) FROM Group g WHERE g.longName = :longName") public Long countByLongName(@Named("longName") final String longName); @@ -57,4 +62,11 @@ @Finder(query = "FROM Group", returnAs = ArrayList.class) public List<Group> getAll(); + + @Finder(query = "FROM Group g " + + " WHERE (g.groupType != :notgrouptype1 AND g.groupType != :notgrouptype2)" + + " ORDER BY createdOn DESC", returnAs = ArrayList.class) + public List<Group> lastGroups(@MaxResults final int limit, + @Named("notgrouptype1") final GroupType excludedGroupType1, + @Named("notgrouptype2") final GroupType excludedGroupType2); } Modified: trunk/src/main/java/cc/kune/domain/finders/UserFinder.java =================================================================== --- trunk/src/main/java/cc/kune/domain/finders/UserFinder.java 2011-09-28 14:04:57 UTC (rev 1540) +++ trunk/src/main/java/cc/kune/domain/finders/UserFinder.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -29,6 +29,9 @@ public interface UserFinder { + @Finder(query = "SELECT count(*) FROM User u") + public Long count(); + @Finder(query = "select count (*) from User where email = :email") public Long countByEmail(@Named("email") final String email); Added: trunk/src/main/java/cc/kune/hspace/HSpace.gwt.xml =================================================================== --- trunk/src/main/java/cc/kune/hspace/HSpace.gwt.xml (rev 0) +++ trunk/src/main/java/cc/kune/hspace/HSpace.gwt.xml 2011-10-03 12:31:04 UTC (rev 1541) @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.1.1//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.1.1/distro-source/core/src/gwt-module.dtd"> +<module> + <inherits name="com.google.gwt.user.User" /> +<!-- <source path="client"/> --> +</module> \ No newline at end of file Added: trunk/src/main/java/cc/kune/hspace/client/ClientStatsService.java =================================================================== --- trunk/src/main/java/cc/kune/hspace/client/ClientStatsService.java (rev 0) +++ trunk/src/main/java/cc/kune/hspace/client/ClientStatsService.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -0,0 +1,34 @@ +/* + * + * Copyright (C) 2007-2009 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.hspace.client; + +import cc.kune.core.shared.dto.HomeStatsDTO; + +import com.google.gwt.user.client.rpc.RemoteService; +import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; + +@RemoteServiceRelativePath("ClientStatsService") +public interface ClientStatsService extends RemoteService { + + HomeStatsDTO getHomeStats(); + + HomeStatsDTO getHomeStats(String userHash); + +} Added: trunk/src/main/java/cc/kune/hspace/client/ClientStatsServiceAsync.java =================================================================== --- trunk/src/main/java/cc/kune/hspace/client/ClientStatsServiceAsync.java (rev 0) +++ trunk/src/main/java/cc/kune/hspace/client/ClientStatsServiceAsync.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -0,0 +1,31 @@ +/* + * + * Copyright (C) 2007-2009 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.hspace.client; + +import cc.kune.core.shared.dto.HomeStatsDTO; + +import com.google.gwt.user.client.rpc.AsyncCallback; + +public interface ClientStatsServiceAsync { + + void getHomeStats(AsyncCallback<HomeStatsDTO> callback); + + void getHomeStats(String userHash, AsyncCallback<HomeStatsDTO> callback); +} Added: trunk/src/main/java/cc/kune/hspace/client/HSpaceGinModule.java =================================================================== --- trunk/src/main/java/cc/kune/hspace/client/HSpaceGinModule.java (rev 0) +++ trunk/src/main/java/cc/kune/hspace/client/HSpaceGinModule.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -0,0 +1,38 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.hspace.client; + +import com.gwtplatform.mvp.client.gin.AbstractPresenterModule; + +public class HSpaceGinModule extends AbstractPresenterModule { + + /* + * (non-Javadoc) + * + * @see com.google.gwt.inject.client.AbstractGinModule#configure() + */ + @Override + protected void configure() { + bindPresenter(HSpacePresenter.class, HSpacePresenter.HSpaceView.class, HSpacePanel.class, + HSpacePresenter.HSpaceProxy.class); + bind(HSpaceParts.class).asEagerSingleton(); + } + +} \ No newline at end of file Added: trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.java =================================================================== --- trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.java (rev 0) +++ trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -0,0 +1,28 @@ +package cc.kune.hspace.client; + +import cc.kune.hspace.client.HSpacePresenter.HSpaceView; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.user.client.ui.Widget; +import com.gwtplatform.mvp.client.ViewImpl; + +public class HSpacePanel extends ViewImpl implements HSpaceView { + + interface HSpacePanelUiBinder extends UiBinder<Widget, HSpacePanel> { + } + + private static HSpacePanelUiBinder uiBinder = GWT.create(HSpacePanelUiBinder.class); + + private final Widget widget; + + public HSpacePanel() { + widget = uiBinder.createAndBindUi(this); + } + + @Override + public Widget asWidget() { + return widget; + } + +} Added: trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.ui.xml =================================================================== --- trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.ui.xml (rev 0) +++ trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.ui.xml 2011-10-03 12:31:04 UTC (rev 1541) @@ -0,0 +1,13 @@ +<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> +<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" + xmlns:g="urn:import:com.google.gwt.user.client.ui"> + <ui:style> + .important { + font-weight: bold; + } + </ui:style> + <g:HTMLPanel> + Hello, + <g:Button styleName="{style.important}" ui:field="button"/> + </g:HTMLPanel> +</ui:UiBinder> \ No newline at end of file Added: trunk/src/main/java/cc/kune/hspace/client/HSpaceParts.java =================================================================== --- trunk/src/main/java/cc/kune/hspace/client/HSpaceParts.java (rev 0) +++ trunk/src/main/java/cc/kune/hspace/client/HSpaceParts.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -0,0 +1,40 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.hspace.client; + +import cc.kune.core.client.init.AppStartEvent; +import cc.kune.core.client.init.AppStartEvent.AppStartHandler; +import cc.kune.core.client.state.Session; + +import com.google.inject.Inject; +import com.google.inject.Provider; + +public class HSpaceParts { + + @Inject + public HSpaceParts(final Session session, final Provider<HSpacePresenter> hSpacePresenter) { + session.onAppStart(true, new AppStartHandler() { + @Override + public void onAppStart(final AppStartEvent event) { + hSpacePresenter.get(); + } + }); + } +} Copied: trunk/src/main/java/cc/kune/hspace/client/HSpacePresenter.java (from rev 1538, trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java) =================================================================== --- trunk/src/main/java/cc/kune/hspace/client/HSpacePresenter.java (rev 0) +++ trunk/src/main/java/cc/kune/hspace/client/HSpacePresenter.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -0,0 +1,77 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.hspace.client; + +import cc.kune.common.client.notify.NotifyUser; +import cc.kune.core.client.rpcservices.AsyncCallbackSimple; +import cc.kune.core.client.state.Session; +import cc.kune.core.shared.dto.HomeStatsDTO; +import cc.kune.core.shared.i18n.I18nTranslationService; + +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; +import com.google.inject.Provider; +import com.gwtplatform.mvp.client.Presenter; +import com.gwtplatform.mvp.client.View; +import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit; +import com.gwtplatform.mvp.client.proxy.Proxy; +import com.gwtplatform.mvp.client.proxy.RevealRootContentEvent; + +public class HSpacePresenter extends Presenter<HSpacePresenter.HSpaceView, HSpacePresenter.HSpaceProxy> { + + @ProxyCodeSplit + public interface HSpaceProxy extends Proxy<HSpacePresenter> { + } + public interface HSpaceView extends View { + } + + private final I18nTranslationService i18n; + + @Inject + public HSpacePresenter(final Session session, final EventBus eventBus, final HSpaceView view, + final HSpaceProxy proxy, final I18nTranslationService i18n, + final Provider<ClientStatsServiceAsync> statsService) { + super(eventBus, view, proxy); + this.i18n = i18n; + final AsyncCallbackSimple<HomeStatsDTO> callback = new AsyncCallbackSimple<HomeStatsDTO>() { + @Override + public void onSuccess(final HomeStatsDTO result) { + NotifyUser.info( + "Total groups: " + result.getTotalGroups() + " total users: " + result.getTotalUsers(), true); + } + }; + if (session.isLogged()) { + statsService.get().getHomeStats(session.getUserHash(), callback); + } else { + statsService.get().getHomeStats(callback); + } + } + + @Override + protected void onReveal() { + super.onReveal(); + } + + @Override + protected void revealInParent() { + RevealRootContentEvent.fire(this, this); + } + +} Modified: trunk/src/main/resources/dozerBeanMapping.xml =================================================================== --- trunk/src/main/resources/dozerBeanMapping.xml 2011-09-28 14:04:57 UTC (rev 1540) +++ trunk/src/main/resources/dozerBeanMapping.xml 2011-10-03 12:31:04 UTC (rev 1541) @@ -237,4 +237,20 @@ <class-a> cc.kune.core.shared.dto.SocialNetworkDataDTO </class-a> <class-b> cc.kune.domain.utils.SocialNetworkData </class-b> </mapping> + <mapping> + <class-a> cc.kune.core.shared.dto.HomeStatsDTO </class-a> + <class-b> cc.kune.core.server.stats.HomeStats </class-b> + <field> + <a>lastPublishedContents</a> + <b>lastPublishedContents</b> + <a-hint> cc.kune.core.shared.dto.ContentSimpleDTO </a-hint> + <b-hint> cc.kune.domain.Content </b-hint> + </field> + <field> + <a>lastContentsOfMyGroups</a> + <b>lastContentsOfMyGroups</b> + <a-hint> cc.kune.core.shared.dto.ContentSimpleDTO </a-hint> + <b-hint> cc.kune.domain.Content </b-hint> + </field> + </mapping> </mappings> \ No newline at end of file Added: trunk/src/test/java/cc/kune/core/server/integration/StatsServiceTest.java =================================================================== --- trunk/src/test/java/cc/kune/core/server/integration/StatsServiceTest.java (rev 0) +++ trunk/src/test/java/cc/kune/core/server/integration/StatsServiceTest.java 2011-10-03 12:31:04 UTC (rev 1541) @@ -0,0 +1,59 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.core.server.integration; + +import static org.junit.Assert.assertTrue; + +import org.junit.Before; +import org.junit.Test; + +import cc.kune.core.server.stats.HomeStats; +import cc.kune.core.server.stats.StatsService; +import cc.kune.domain.finders.GroupFinder; + +import com.google.inject.Inject; +import com.google.inject.persist.Transactional; + +public class StatsServiceTest extends IntegrationTest { + @Inject + GroupFinder groupFinder; + @Inject + StatsService statsService; + + private void checkStats(final HomeStats homeStats) { + assertTrue(homeStats.getTotalGroups() > 0); + assertTrue(homeStats.getTotalUsers() > 0); + } + + @Transactional + @Before + public void init() { + new IntegrationTestHelper(this); + } + + @Test + public void testBasicStats() { + HomeStats homeStats = statsService.getHomeStats(); + checkStats(homeStats); + homeStats = statsService.getHomeStats(groupFinder.findByShortName(getDefSiteShortName())); + checkStats(homeStats); + } + +}
participants (1)
-
Vicente J. Ruiz Jurado