kune-commits
Threads by month
- ----- 2026 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
October 2008
- 1 participants
- 40 discussions
Author: vjrj
Date: 2008-10-30 18:13:18 +0100 (Thu, 30 Oct 2008)
New Revision: 937
Added:
trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/RateResultDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeStateChangeCollection.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeStateChangeListener.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/RateResult.java
Removed:
trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContextPanel.java
trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContextView.java
trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/ui/AdminContextPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/component/
Modified:
trunk/src/main/java/org/ourproject/kune/app/public/Kune.html
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatContentPresenter.java
trunk/src/main/java/org/ourproject/kune/chat/client/ctx/ChatContextPresenter.java
trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdmin.java
trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdminPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContent.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContext.java
trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContextPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContext.java
trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextView.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateContentDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePresenter.java
trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java
trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigator.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SimpleToolbar.java
trunk/src/main/resources/dozerBeanMapping.xml
trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManagerTest.java
trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java
Log:
Complete - task TextEditor intercepts token change and ask for save before closing the editor
Complete - task Implementation of beforeStateChange to take conditional control of stateChange
Complete - task SetRate don't Reload state ...
Incomplete - task setContext/Content
Modified: trunk/src/main/java/org/ourproject/kune/app/public/Kune.html
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/Kune.html 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/app/public/Kune.html 2008-10-30 17:13:18 UTC (rev 937)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
@@ -54,6 +55,8 @@
<body>
<script type="text/javascript" language="javascript"
src="org.ourproject.kune.app.Kune.nocache.js"></script>
+
+ <!-- Ext localization javascript -->
<script type="text/javascript" id="extlocale"></script>
<script type="text/javascript">
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-10-30 17:13:18 UTC (rev 937)
@@ -35,4 +35,10 @@
}
*/.kune-NavigationBar .topBar .gwt-Image{margin:0 2px 0 5px;}.kune-NavigationBar .Items{margin:2px 0;}.kune-NavigationBar .Items .gwt-Image{margin:2px 0;vertical-align:middle;}.kune-NavigationBar .Items .gwt-Hyperlink a{color:green;/* FIXME: other color */}.kune-NavigationBar .topBar .topBar-margin{margin-left:5px;}.kune-NavigationBar .pathMenu{vertical-align:middle;}.kune-NavigationBar .pathMenu .gwt-MenuItem{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;white-space:nowrap;padding:3px 6px;}.kune-NavigationBar .pathMenu .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#000;}.kune-NavigationBar .kune-IconHyperlink{vertical-align:middle;margin-left:5px;}.kune-NavigationBar .kune-IconHyperlink a{color:green;text-decoration:none;}.kune-NavigationBar .kune-IconHyperlink .gwt-Image{margin-right:3px;vertical-align:middle;}/* Social Network */.kune-StackedDropDownPanel{}.kune-StackedDropDownPanel .gwt-StackPanelItem{border-top:1px solid #CCC;border-bottom:1px solid #CCC;background-color:#EFA;cursor:pointer;padding:1px 3px 0 6px;overflow:hidden;}.kune-StackedDropDownPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-StackedDropDownPanel .kune-DropDownInner table{width:100%;}.kune-StackedDropDownPanel .gwt-StackPanelItem-selected{}.kune-StackedDropDownPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-StackedDropDownPanel .kune-DropDownInner{padding:0;}/* StackedDropDownPanel Members */.kune-StackSubItemLabel{overflow:hidden;}.kune-StackSubItemLabel .gwt-MenuItem{white-space:nowrap;cursor:pointer;border-bottom:1px solid #F2F2F2;}.kune-StackSubItemLabel table{width:100%;}.kune-StackSubItemLabel .gwt-MenuItem img{vertical-align:middle;margin-top:1px;margin-bottom:1px;margin-left:5px;margin-right:3px;}.kune-StackSubItemLabel .gwt-MenuItem-selected{background-color:#FFE6D5;}.kune-StackSubItemActions{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;margin-left:-120px;margin-top:-2px;}.kune-StackSubItemActions .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.kune-StackSubItemActions .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.kune-StackSubItemActions .gwt-MenuItem-selected{background-color:#FFB958;}/* AccessList */.kune-AccessListSubLabel{font-style:italic;}.kune-AccessList{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel-open{width:100%;}.kune-AccessList .gwt-DisclosurePanel-closed{width:100%;}.kune-AccessList .header{margin:0 0 3px;text-decoration:none;width:100%;background-color:#8DD35F;}.kune-AccessList .header table{margin:0 5px 0 0;width:100%;color:#FFF;}.kune-AccessList .header img{margin:0 3px 0 0;}.kune-AccessList .content{margin:0 0 0 7px;width:100%;}.kune-AccessList .content table{margin-bottom:5px;width:100%;}/* Rate */.kune-RatePanel-Label{white-space:nowrap;vertical-align:middle;}.kune-RatePanel-Stars{margin-left:5px;vertical-align:middle;}.kune-RatePanel-Stars-RateIt{cursor:pointer;}/* Licenses */.kune-License-CC-Header{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}.kune-License-CC-Header .gwt-Label{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}/* Theme */.kune-IconBottomPanel .gwt-MenuItem{cursor:pointer;background-color:#FFF;margin:2px 2px 2px 5px;}.kune-IconBottomPanel .gwt-MenuItem-selected{background-color:#F2F2F2;}.gwt-MenuBar-bottomMenu{margin-left:-60px;margin-top:-120px;}/* i18n */.kune-I18nTranslatorCell{white-space:normal;}.kune-i18nTranslator-recommend{margin:10px;}.kune-i18nTranslator-recommend h1{font-size:131%;font-weight:700;}.kune-i18nTranslator-recommend h2{font-size:116%;font-weight:700;}.kune-i18nTranslator-recommend h3{font-size:108%;font-weight:700;font-style:italic;}.kune-i18nTranslator-recommend em{font-weight:700;}.kune-i18nTranslator-recommend strong{font-weight:700;}/* Admin Context */.kune-AdminContextPanel{margin:6px;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem{background:transparent url(img/arrow-right-white.gif) no-repeat scroll 3px 2px;cursor:pointer;padding:3px 10px 1px 20px;overflow:hidden;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-AdminContextPanel .gwt-StackPanelItem-selected{background:transparent url(img/arrow-down-white.gif) no-repeat scroll 3px 2px;background-color:#DEE3DB;}.kune-AdminContextPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-AdminContextPanel-inner{background-color:#FFF;}.kune-AdminContextPanel-inner-wrap{margin:5px;}.kune-EditableLabel{}.kune-EditableLabel .kune-EditableLabel-editable{}.kune-EditableLabel-high{background-color:#FFFBC1;cursor:pointer;}.kune-EditableLabel-high span{background-color:#FFFBC1;}.kune-EditableLabel a{margin-left:5px;}.kune-EditableLabel a:link{color:green;}.kune-EditableLabel a:hover{text-decoration:underline;}.kune-EditableLabel a:visited{color:olive;}.kune-EditableLabel img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable span{margin:3px;}.kune-EditableLabel span{margin:3px;}.kune-BottomIconsTrayPanel{width:165px;height:21px;vertical-align:middle;background-color:#EFEFEF;}.kune-TagsPanel-tag{float:left;margin-right:5px;cursor:pointer;}.kune-Content-Main{margin:5px;}/* Yahoo ui base.css */.kune-Content-Main h1{font-size:138.5%;}.kune-Content-Main h2{font-size:123.099998%;}.kune-Content-Main h3{font-size:108%;}.kune-Content-Main h1{margin:1em 0;}.kune-Content-Main h2{margin:1em 0;}.kune-Content-Main h3{margin:1em 0;}.kune-Content-Main h1{font-weight:700;}.kune-Content-Main h2{font-weight:700;}.kune-Content-Main h3{font-weight:700;}.kune-Content-Main h4{font-weight:700;}.kune-Content-Main h5{font-weight:700;}.kune-Content-Main h6{font-weight:700;}.kune-Content-Main strong{font-weight:700;}.kune-Content-Main abbr{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main acronym{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main em{font-style:italic;}.kune-Content-Main blockquote{margin:1em;}.kune-Content-Main ul{margin:1em;}.kune-Content-Main ol{margin:1em;}.kune-Content-Main dl{margin:1em;}.kune-Content-Main ol{margin-left:2em;}.kune-Content-Main ul{margin-left:2em;}.kune-Content-Main dl{margin-left:2em;}.kune-Content-Main ol{list-style:decimal outside;}.kune-Content-Main li{list-style:decimal outside;}.kune-Content-Main li{list-style:disc outside;}.kune-Content-Main ul{list-style:disc outside;}.kune-Content-Main dl{margin-left:1em;}.kune-Content-Main dd{margin-left:1em;}.kune-Content-Main th{border:1px solid #000;padding:.5em;font-weight:700;text-align:center;}.kune-Content-Main td{border:1px solid #000;padding:.5em;}.kune-Content-Main caption{margin-bottom:.5em;text-align:center;}.kune-Content-Main p{margin-bottom:1em;}.kune-Content-Main fieldset{margin-bottom:1em;}.kune-Content-Main table{margin-bottom:1em;}.kune-Content-Main pre{margin-bottom:1em;}.kune-Content-Main input[type=text]{width:12.25em;width:11.9em;}.kune-Content-Main input[type=password]{width:12.25em;width:11.9em;}.kune-Content-Main textarea{width:12.25em;width:11.9em;}.search-icon{background-image:url(img/search.gif)!important;}.i18n-icon{background-image:url(img/language.gif)!important;}/* RTE Text editor */.kune-TexEditorPanel-TextArea{margin:3px;}.gwt-RichTextArea{/* border: 1px solid #000;
background-color: #FFF; */border:1px solid #4D4D4D;background-color:#FFF;margin:5px 0 5px 10px;}.gwt-RichTextToolbar{/* background-color: #F2F2F2;
- padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-down-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entitylicensepanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-bottom div{line-height:2em;color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others */.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}
\ No newline at end of file
+ padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-down-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entitylicensepanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-bottom div{line-height:24px;color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others *//*
+.x-tree-node a span, .x-dd-drag-ghost a span {
+ color:#000000;
+ padding: 1px 0px 1px 1px;
+ text-decoration:none;
+}
+*/.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-10-30 17:13:18 UTC (rev 937)
@@ -416,7 +416,7 @@
}
.k-entity-bottom div {
- line-height: 2em;
+ line-height: 24px;
color: #FFF;
}
@@ -693,6 +693,15 @@
}
/* others */
+
+/*
+.x-tree-node a span, .x-dd-drag-ghost a span {
+ color:#000000;
+ padding: 1px 0px 1px 1px;
+ text-decoration:none;
+}
+*/
+
.k-textlinethrough {
text-decoration: line-through;
color: red;
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -40,7 +40,6 @@
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.tool.ToolSelector;
-import org.ourproject.kune.workspace.client.component.WorkspaceDeckPanel;
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
@@ -78,8 +77,7 @@
register(Singleton.class, new Factory<ChatContent>(ChatContent.class) {
@Override
public ChatContent create() {
- final WorkspaceDeckPanel panel = new WorkspaceDeckPanel();
- final ChatContentPresenter presenter = new ChatContentPresenter($(EmiteUIDialog.class), panel,
+ final ChatContentPresenter presenter = new ChatContentPresenter($(EmiteUIDialog.class),
$$(ChatInfo.class), $$(ChatRoom.class));
return presenter;
}
@@ -88,8 +86,7 @@
register(Singleton.class, new Factory<ChatContext>(ChatContext.class) {
@Override
public ChatContext create() {
- final WorkspaceDeckPanel panel = new WorkspaceDeckPanel();
- final ChatContextPresenter presenter = new ChatContextPresenter(panel, $$(RoomsAdmin.class));
+ final ChatContextPresenter presenter = new ChatContextPresenter($$(RoomsAdmin.class));
return presenter;
}
});
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatContentPresenter.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatContentPresenter.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -22,9 +22,7 @@
import org.ourproject.kune.chat.client.ChatClientTool;
import org.ourproject.kune.chat.client.cnt.info.ChatInfo;
import org.ourproject.kune.chat.client.cnt.room.ChatRoom;
-import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.StateContainerDTO;
-import org.ourproject.kune.workspace.client.component.WorkspaceDeckView;
import com.allen_sauer.gwt.log.client.Log;
import com.calclab.emite.core.client.xmpp.stanzas.XmppURI;
@@ -33,24 +31,18 @@
public class ChatContentPresenter implements ChatContent {
- private final WorkspaceDeckView view;
private StateContainerDTO state;
private final EmiteUIDialog emiteUIDialog;
private final Provider<ChatInfo> chatInfoProvider;
private final Provider<ChatRoom> chatRoomProvider;
- public ChatContentPresenter(final EmiteUIDialog emiteUIDialog, final WorkspaceDeckView view,
- final Provider<ChatInfo> chatInfoProvider, final Provider<ChatRoom> chatRoomProvider) {
+ public ChatContentPresenter(final EmiteUIDialog emiteUIDialog, final Provider<ChatInfo> chatInfoProvider,
+ final Provider<ChatRoom> chatRoomProvider) {
this.emiteUIDialog = emiteUIDialog;
- this.view = view;
this.chatInfoProvider = chatInfoProvider;
this.chatRoomProvider = chatRoomProvider;
}
- public View getView() {
- return view;
- }
-
public void onEnterRoom() {
final String roomName = state.getContainer().getName();
emiteUIDialog.joinRoom(XmppURI.uri(roomName));
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ctx/ChatContextPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ctx/ChatContextPresenter.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ctx/ChatContextPresenter.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -20,29 +20,20 @@
package org.ourproject.kune.chat.client.ctx;
import org.ourproject.kune.chat.client.ctx.rooms.RoomsAdmin;
-import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.StateContainerDTO;
-import org.ourproject.kune.workspace.client.component.WorkspaceDeckView;
import com.calclab.suco.client.ioc.Provider;
public class ChatContextPresenter implements ChatContext {
- private final WorkspaceDeckView view;
private final Provider<RoomsAdmin> roomAdminsProvider;
- public ChatContextPresenter(final WorkspaceDeckView view, final Provider<RoomsAdmin> roomAdminsProvider) {
- this.view = view;
+ public ChatContextPresenter(final Provider<RoomsAdmin> roomAdminsProvider) {
this.roomAdminsProvider = roomAdminsProvider;
}
- public View getView() {
- return view;
- }
-
public void setState(final StateContainerDTO state) {
final RoomsAdmin rooms = roomAdminsProvider.get();
rooms.showRoom(state.getStateToken(), state.getContainer(), state.getContainerRights());
- view.show(rooms.getView());
}
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdmin.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdmin.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdmin.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -19,13 +19,10 @@
*/
package org.ourproject.kune.chat.client.ctx.rooms;
-import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
import org.ourproject.kune.platf.client.dto.ContainerDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
public interface RoomsAdmin {
- View getView();
-
void showRoom(final StateToken token, final ContainerDTO container, final AccessRightsDTO rights);
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdminPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdminPresenter.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdminPresenter.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -19,7 +19,6 @@
*/
package org.ourproject.kune.chat.client.ctx.rooms;
-import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
import org.ourproject.kune.platf.client.dto.ContainerDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
@@ -67,10 +66,6 @@
// });
}
- public View getView() {
- return contextNavigator.getView();
- }
-
public void showRoom(final StateToken token, final ContainerDTO container, final AccessRightsDTO rights) {
// contextNavigator.showContainer(token, container, rights);
// final String type = container.getTypeId();
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -29,6 +29,7 @@
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_WIKIPAGE;
import org.ourproject.kune.docs.client.cnt.DocumentContent;
+import org.ourproject.kune.docs.client.ctx.admin.AdminContext;
import org.ourproject.kune.platf.client.actions.ActionEnableCondition;
import org.ourproject.kune.platf.client.actions.ActionMenuItemDescriptor;
import org.ourproject.kune.platf.client.actions.ActionToolbarButtonAndItemDescriptor;
@@ -66,6 +67,8 @@
import com.calclab.suco.client.ioc.Provider;
import com.calclab.suco.client.listener.Listener;
import com.calclab.suco.client.listener.Listener0;
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.DeferredCommand;
import com.google.gwt.user.client.rpc.AsyncCallback;
public class DocumentClientActions {
@@ -84,6 +87,7 @@
private final Provider<TextEditor> textEditorProvider;
private final KuneErrorHandler errorHandler;
private final DocumentContent documentContent;
+ private final Provider<AdminContext> adminContextProvider;
public DocumentClientActions(final I18nUITranslationService i18n, final ContextNavigator contextNavigator,
final Session session, final StateManager stateManager,
@@ -92,7 +96,7 @@
final ContentActionRegistry contentActionRegistry, final ContextActionRegistry contextActionRegistry,
final Provider<FileDownloadUtils> fileDownloadProvider, final EntityLogo entityLogo,
final Provider<TextEditor> textEditorProvider, final KuneErrorHandler errorHandler,
- final DocumentContent documentContent) {
+ final DocumentContent documentContent, final Provider<AdminContext> adminContextProvider) {
this.i18n = i18n;
this.contextNavigator = contextNavigator;
this.session = session;
@@ -107,6 +111,7 @@
this.textEditorProvider = textEditorProvider;
this.errorHandler = errorHandler;
this.documentContent = documentContent;
+ this.adminContextProvider = adminContextProvider;
createActions();
}
@@ -333,6 +338,8 @@
public void onSuccess(final Object result) {
final TextEditor editor = textEditorProvider.get();
documentContent.detach();
+ contextNavigator.detach();
+ adminContextProvider.get().attach();
editor.editContent(session.getContentState().getContent(), new Listener<String>() {
public void onEvent(final String html) {
Site.showProgressSaving();
@@ -361,9 +368,16 @@
}, new Listener0() {
public void onEvent() {
// onClose
- if (session.getCurrentStateToken().equals(stateToken)) {
- documentContent.refreshState();
- }
+ DeferredCommand.addCommand(new Command() {
+ public void execute() {
+ documentContent.attach();
+ adminContextProvider.get().detach();
+ contextNavigator.attach();
+ if (session.getCurrentStateToken().equals(stateToken)) {
+ documentContent.refreshState();
+ }
+ }
+ });
}
});
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -30,12 +30,11 @@
import org.ourproject.kune.docs.client.cnt.reader.DocumentReaderView;
import org.ourproject.kune.docs.client.cnt.reader.ui.DocumentReaderPanel;
import org.ourproject.kune.docs.client.ctx.DocumentContext;
-import org.ourproject.kune.docs.client.ctx.DocumentContextPanel;
import org.ourproject.kune.docs.client.ctx.DocumentContextPresenter;
import org.ourproject.kune.docs.client.ctx.admin.AdminContext;
+import org.ourproject.kune.docs.client.ctx.admin.AdminContextPanel;
import org.ourproject.kune.docs.client.ctx.admin.AdminContextPresenter;
import org.ourproject.kune.docs.client.ctx.admin.AdminContextView;
-import org.ourproject.kune.docs.client.ctx.admin.ui.AdminContextPanel;
import org.ourproject.kune.platf.client.actions.ActionManager;
import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
import org.ourproject.kune.platf.client.actions.ContentIconsRegistry;
@@ -82,9 +81,8 @@
public DocumentClientTool create() {
$(DocumentClientActions.class);
return new DocumentClientTool($(I18nUITranslationService.class), $(ToolSelector.class),
- $(WsThemePresenter.class), $(WorkspaceSkeleton.class), $$(DocumentContext.class),
- $$(ContentServiceAsync.class), $(ContentActionRegistry.class),
- $(DragDropContentRegistry.class), $(ContentIconsRegistry.class));
+ $(WsThemePresenter.class), $(WorkspaceSkeleton.class), $(DragDropContentRegistry.class),
+ $(ContentIconsRegistry.class));
}
});
@@ -95,7 +93,8 @@
$(Session.class), $(StateManager.class), $$(ContentServiceAsync.class),
$$(GroupServiceAsync.class), $$(FileUploader.class), $(ContentActionRegistry.class),
$(ContextActionRegistry.class), $$(FileDownloadUtils.class), $(EntityLogo.class),
- $$(TextEditor.class), $(KuneErrorHandler.class), $(DocumentContent.class));
+ $$(TextEditor.class), $(KuneErrorHandler.class), $(DocumentContent.class),
+ $$(AdminContext.class));
}
});
@@ -122,7 +121,8 @@
final AdminContextPresenter presenter = new AdminContextPresenter($(Session.class),
$(StateManager.class), $$(TagsSummary.class), $$(ContentServiceAsync.class),
$(EntityTitle.class), $(EntitySubTitle.class));
- final AdminContextView view = new AdminContextPanel(presenter, $(I18nUITranslationService.class));
+ final AdminContextView view = new AdminContextPanel(presenter, $(I18nUITranslationService.class),
+ $(WorkspaceSkeleton.class));
presenter.init(view);
return presenter;
}
@@ -133,8 +133,6 @@
public DocumentContext create() {
final DocumentContextPresenter presenter = new DocumentContextPresenter($(StateManager.class),
$$(ContextNavigator.class), $$(AdminContext.class));
- final DocumentContextPanel panel = new DocumentContextPanel($(WorkspaceSkeleton.class));
- presenter.init(panel);
return presenter;
}
});
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -19,19 +19,15 @@
*/
package org.ourproject.kune.docs.client;
-import org.ourproject.kune.docs.client.ctx.DocumentContext;
-import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
import org.ourproject.kune.platf.client.actions.ContentIconsRegistry;
import org.ourproject.kune.platf.client.actions.DragDropContentRegistry;
import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO;
-import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
import org.ourproject.kune.platf.client.tool.AbstractClientTool;
import org.ourproject.kune.platf.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
-import com.calclab.suco.client.ioc.Provider;
public class DocumentClientTool extends AbstractClientTool {
public static final String TYPE_ROOT = "docs.root";
@@ -46,18 +42,14 @@
public static final String NAME = "docs";
- private final Provider<DocumentContext> documentContextProvider;
private final DragDropContentRegistry dragDropContentRegistry;
private final ContentIconsRegistry contentIconsRegistry;
public DocumentClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
- final Provider<DocumentContext> documentContextProvider,
- final Provider<ContentServiceAsync> contentServiceProvider,
- final ContentActionRegistry contentActionRegistry, final DragDropContentRegistry dragDropContentRegistry,
+ final DragDropContentRegistry dragDropContentRegistry,
final ContentIconsRegistry contentIconsRegistry) {
super(NAME, i18n.t("documents"), toolSelector, wsThemePresenter, ws);
- this.documentContextProvider = documentContextProvider;
this.dragDropContentRegistry = dragDropContentRegistry;
this.contentIconsRegistry = contentIconsRegistry;
registerDragDropTypes();
@@ -68,16 +60,6 @@
return NAME;
}
- @Deprecated
- public void onCancel() {
- documentContextProvider.get().showFolders();
- }
-
- @Deprecated
- public void onEdit() {
- documentContextProvider.get().showAdmin();
- }
-
private void registerDragDropTypes() {
dragDropContentRegistry.registerDraggableType(TYPE_DOCUMENT);
dragDropContentRegistry.registerDraggableType(TYPE_FOLDER);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContent.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContent.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContent.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -21,6 +21,8 @@
public interface DocumentContent {
+ void attach();
+
void detach();
void refreshState();
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -70,6 +70,10 @@
});
}
+ public void attach() {
+ toolbar.attach();
+ }
+
public void detach() {
toolbar.detach();
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContext.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContext.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContext.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -21,7 +21,4 @@
public interface DocumentContext {
- void showAdmin();
-
- void showFolders();
}
Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContextPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContextPanel.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContextPanel.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -1,34 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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 org.ourproject.kune.docs.client.ctx;
-
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-
-public class DocumentContextPanel implements DocumentContextView {
-
- public DocumentContextPanel(final WorkspaceSkeleton ws) {
- }
-
- @Deprecated
- public void setContainer(final View view) {
- // ws.getEntityWorkspace().setContext((Widget) view);
- }
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContextPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContextPresenter.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContextPresenter.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -31,7 +31,6 @@
import com.calclab.suco.client.listener.Listener;
public class DocumentContextPresenter implements DocumentContext {
- private DocumentContextView view;
private final Provider<ContextNavigator> contextNavigatorProvider;
private final Provider<AdminContext> adminContextProvider;
@@ -45,9 +44,11 @@
StateContainerDTO stateCntCtx = (StateContainerDTO) state;
if (DocumentClientTool.NAME.equals(stateCntCtx.getToolName())) {
setState(stateCntCtx);
+ contextNavigatorProvider.get().attach();
}
} else {
- // TODO detach
+ contextNavigatorProvider.get().detach();
+ adminContextProvider.get().detach();
contextNavigatorProvider.get().clear();
adminContextProvider.get().clear();
}
@@ -55,24 +56,10 @@
});
}
- public void init(final DocumentContextView view) {
- this.view = view;
- }
-
- public void showAdmin() {
- final AdminContext adminContext = adminContextProvider.get();
- view.setContainer(adminContext.getView());
- }
-
- public void showFolders() {
- view.setContainer(contextNavigatorProvider.get().getView());
- }
-
private void setState(final StateContainerDTO state) {
contextNavigatorProvider.get().setState(state, true);
if (state instanceof StateContentDTO) {
adminContextProvider.get().setState((StateContentDTO) state);
}
- showFolders();
}
}
Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContextView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContextView.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContextView.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -1,28 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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 org.ourproject.kune.docs.client.ctx;
-
-import org.ourproject.kune.platf.client.View;
-
-public interface DocumentContextView {
-
- @Deprecated
- void setContainer(View view);
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContext.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContext.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContext.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -19,13 +19,14 @@
*/
package org.ourproject.kune.docs.client.ctx.admin;
-import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.StateContentDTO;
public interface AdminContext {
+ void attach();
+
void clear();
- View getView();
+ void detach();
void setState(StateContentDTO content);
}
Copied: trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPanel.java (from rev 934, trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/ui/AdminContextPanel.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/ui/AdminContextPanel.java 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPanel.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -0,0 +1,277 @@
+/*
+ *
+ * Copyright (C) 2007-2008 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 org.ourproject.kune.docs.client.ctx.admin;
+
+import java.util.Date;
+import java.util.List;
+
+import org.ourproject.kune.platf.client.dto.AccessListsDTO;
+import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
+import org.ourproject.kune.platf.client.dto.UserSimpleDTO;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.VerticalPanel;
+
+public class AdminContextPanel extends VerticalPanel implements AdminContextView {
+ // private static final Images IMG = Images.App.getInstance();
+
+ // private static final int FORMS_WIDTH = 145;
+
+ // private final IndexedStackPanelWithSubItems options;
+ // private final AdminContextPresenter presenter;
+ //
+ // private AccessListsPanel accessListsPanel;
+ // private DateField publishedOnField;
+ // private TextArea tagsField;
+ // private VerticalPanel tagsComponent;
+ // private VerticalPanel publishedOnComponent;
+ // private LanguageSelectorComponent langPresenter;
+ // private VerticalPanel authorsComponent;
+ // private VerticalPanel langComponent;
+ // private IconLabel addAuthorLabel;
+ // private final I18nTranslationService i18n;
+ // private final String authors_item;
+ // private final String publication_item;
+ // private final String perms_item;
+ // private final String language_item;
+ // private final String tags_item;
+
+ private final WorkspaceSkeleton ws;
+ private final Label testLabel;
+
+ public AdminContextPanel(final AdminContextPresenter presenter, final I18nTranslationService i18n,
+ WorkspaceSkeleton ws) {
+ this.ws = ws;
+ testLabel = new Label("Admin ctx");
+ // this.presenter = presenter;
+ // this.i18n = i18n;
+ // options = new IndexedStackPanelWithSubItems();
+ // //options.addStyleName("kune-AdminContextPanel");
+ //
+ // //add(options);
+ // //setCellWidth(options, "100%");
+ // setWidth("100%");
+ // authors_item = i18n.t("Authors");
+ // publication_item = i18n.t("Publication");
+ // perms_item = i18n.t("Permissions");
+ // language_item = i18n.t("Language");
+ // tags_item = i18n.t("Tags");
+ }
+
+ public void attach() {
+ if (!testLabel.isAttached()) {
+ ws.getEntityWorkspace().setContext(testLabel);
+ }
+ }
+
+ public void detach() {
+ if (testLabel.isAttached()) {
+ testLabel.removeFromParent();
+ }
+ }
+
+ public void removeAccessListComponent() {
+ // if (options.containsItem(perms_item)) {
+ // removeComponent(perms_item);
+ // }
+ }
+
+ public void removeAuthorsComponent() {
+ // if (options.containsItem(authors_item)) {
+ // removeComponent(authors_item);
+ // }
+ }
+
+ public void removeLangComponent() {
+ // if (options.containsItem(language_item)) {
+ // removeComponent(language_item);
+ // }
+ }
+
+ public void removePublishedOnComponent() {
+ // if (options.containsItem(publication_item)) {
+ // removeComponent(publication_item);
+ // }
+ }
+
+ public void removeTagsComponent() {
+ // if (options.containsItem(tags_item)) {
+ // removeComponent(tags_item);
+ // }
+ }
+
+ public void reset() {
+ // options.clear();
+ }
+
+ public void setAccessLists(final AccessListsDTO accessLists) {
+ // if (accessListsPanel == null) {
+ // accessListsPanel = new AccessListsPanel(i18n);
+ // }
+ // if (!options.containsItem(perms_item)) {
+ // addComponent(perms_item, i18n.t("Who can admin/edit/view this work"),
+ // accessListsPanel);
+ // }
+ // accessListsPanel.setAccessLists(accessLists);
+ }
+
+ public void setAuthors(final List<UserSimpleDTO> authors) {
+ // if (authorsComponent == null) {
+ // authorsComponent = new VerticalPanel();
+ // addAuthorLabel = new IconLabel(IMG.addGreen(), i18n.t("Add author"));
+ // addAuthorLabel.addClickListener(new ClickListener() {
+ // public void onClick(final Widget sender) {
+ // presenter.doAction(DocsEvents.ADD_AUTHOR, null);
+ // }
+ // });
+ // } else {
+ // if (options.containsItem(authors_item)) {
+ // options.removeStackItem(authors_item);
+ // }
+ // authorsComponent.clear();
+ // }
+ // if (!options.containsItem(authors_item)) {
+ // addComponent(authors_item, i18n.t("Authors of this work"),
+ // authorsComponent);
+ // }
+ // for (final Iterator<UserSimpleDTO> iterator = authors.iterator();
+ // iterator.hasNext();) {
+ // final UserSimpleDTO author = iterator.next();
+ // final StackSubItemAction[] authorActions = { new
+ // StackSubItemAction(IMG.del(), i18n.t("Remove author"),
+ // DocsEvents.REMOVE_AUTHOR) };
+ // options.addStackSubItem(authors_item, IMG.personDef(),
+ // author.getShortName(), author.getName(),
+ // authorActions, presenter);
+ // }
+ // authorsComponent.add(addAuthorLabel);
+ }
+
+ public void setLanguage(final I18nLanguageDTO language) {
+ // if (langComponent == null) {
+ // langPresenter = WorkspaceFactory.createLanguageSelectorComponent();
+ // langComponent = new VerticalPanel();
+ // final LanguageSelectorPanel view = (LanguageSelectorPanel)
+ // langPresenter.getView();
+ // view.setWidth("" + FORMS_WIDTH);
+ // langComponent.add(view);
+ // view.addChangeListener(new ComboBoxListenerAdapter() {
+ // public void onSelect(final ComboBox comboBox, final Record record,
+ // final int index) {
+ // presenter.doChangeLanguage(record.getAsString(LanguageSelectorPanel.LANG_ID));
+ // }
+ // });
+ // }
+ // if (!options.containsItem(language_item)) {
+ // addComponent(language_item, i18n.t("The language of this work"),
+ // langComponent);
+ // }
+ // langPresenter.setLanguage(language);
+ }
+
+ public void setPublishedOn(final Date publishedOn) {
+ // if (publishedOnField == null) {
+ // publishedOnComponent = createPublicationComponent();
+ // }
+ // if (!options.containsItem(publication_item)) {
+ // addComponent(publication_item, i18n.t("Date of publication of this
+ // work"), publishedOnComponent);
+ // }
+ // // publishedOnField.setValue(publishedOn);
+ }
+
+ public void setTags(final String tags) {
+ // if (tagsComponent == null) {
+ // tagsComponent = createTagsComponent();
+ // }
+ // if (!options.containsItem(tags_item)) {
+ // addComponent(tags_item,
+ // i18n.t("Keywords or terms associated with this work"),
+ // tagsComponent);
+ // }
+ // tagsField.setValue(tags);
+ // }
+ //
+ // private void addComponent(final String header, final String
+ // headerTitle,
+ // final VerticalPanel panel) {
+ // panel.addStyleName("kune-AdminContextPanel-inner-wrap");
+ // final VerticalPanel vp = options.addStackItem(header, headerTitle,
+ // false);
+ // vp.setStyleName("kune-AdminContextPanel-inner");
+ // vp.add(panel);
+ // vp.setCellWidth(panel, "100%");
+ // vp.setWidth("100%");
+ }
+
+ // private FormPanel createDefaultForm() {
+ // final FormPanel form = new FormPanel();
+ // form.setHideLabels(true);
+ // form.setWidth(FORMS_WIDTH);
+ // form.setBorder(false);
+ // return form;
+ // }
+
+ // private VerticalPanel createPublicationComponent() {
+ // // final FormPanel form = createDefaultForm();
+ // //
+ // // publishedOnField = new DateField();
+ // // publishedOnField.setWidth("140");
+ // // publishedOnField.setFormat("Y-m-d");
+ // //
+ // // publishedOnField.addListener(new FieldListenerAdapter() {
+ // // public void onChange(final Field field, final Object newVal, final
+ // // Object oldVal) {
+ // // presenter.setPublishedOn((Date) newVal);
+ // // }
+ // // });
+ // //
+ // // form.add(publishedOnField);
+ // //
+ // // final VerticalPanel vp = new VerticalPanel();
+ // // vp.add(form);
+ // // return vp;
+ // //// }
+ //
+ // private VerticalPanel createTagsComponent() {
+ // final FormPanel form = createDefaultForm();
+ // tagsField = new TextArea();
+ // tagsField.setWidth("" + FORMS_WIDTH);
+ // tagsField.setHeight("3em");
+ // tagsField.addListener(new FieldListenerAdapter() {
+ // public void onChange(final Field field, final Object newVal, final
+ // Object oldVal) {
+ // presenter.setTags((String) newVal);
+ // }
+ // });
+ //
+ // form.add(tagsField);
+ // final VerticalPanel vp = new VerticalPanel();
+ // vp.add(form);
+ // return vp;
+ // }
+
+ // private void removeComponent(final String header) {
+ // options.removeStackItem(header);
+ // }
+
+}
Property changes on: trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPanel.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPresenter.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPresenter.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -22,7 +22,6 @@
import java.util.Date;
import java.util.List;
-import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.AccessListsDTO;
import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
import org.ourproject.kune.platf.client.dto.StateContainerDTO;
@@ -74,8 +73,12 @@
});
}
+ public void attach() {
+ view.attach();
+ }
+
public void clear() {
- // TODO Auto-generated method stub
+ view.reset();
}
public void delAuthor(final String authorShortName) {
@@ -90,6 +93,10 @@
});
}
+ public void detach() {
+ view.detach();
+ }
+
public void doChangeLanguage(final String langCode) {
Site.showProgressProcessing();
final StateContainerDTO currentState = session.getContentState();
@@ -102,10 +109,6 @@
});
}
- public View getView() {
- return view;
- }
-
public void init(final AdminContextView view) {
this.view = view;
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextView.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextView.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -29,24 +29,30 @@
public interface AdminContextView extends View {
- void setAccessLists(AccessListsDTO accessLists);
+ void attach();
- void setTags(String tags);
+ void detach();
- void setLanguage(I18nLanguageDTO language);
+ void removeAccessListComponent();
- void setAuthors(List<UserSimpleDTO> authors);
+ void removeAuthorsComponent();
- void setPublishedOn(Date publishedOn);
-
void removeLangComponent();
- void removeAccessListComponent();
-
void removePublishedOnComponent();
void removeTagsComponent();
- void removeAuthorsComponent();
+ void reset();
+ void setAccessLists(AccessListsDTO accessLists);
+
+ void setAuthors(List<UserSimpleDTO> authors);
+
+ void setLanguage(I18nLanguageDTO language);
+
+ void setPublishedOn(Date publishedOn);
+
+ void setTags(String tags);
+
}
Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/ui/AdminContextPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/ui/AdminContextPanel.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/ui/AdminContextPanel.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -1,257 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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 org.ourproject.kune.docs.client.ctx.admin.ui;
-
-import java.util.Date;
-import java.util.List;
-
-import org.ourproject.kune.docs.client.ctx.admin.AdminContextPresenter;
-import org.ourproject.kune.docs.client.ctx.admin.AdminContextView;
-import org.ourproject.kune.platf.client.dto.AccessListsDTO;
-import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
-import org.ourproject.kune.platf.client.dto.UserSimpleDTO;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-
-import com.google.gwt.user.client.ui.VerticalPanel;
-
-public class AdminContextPanel extends VerticalPanel implements AdminContextView {
- // private static final Images IMG = Images.App.getInstance();
-
- // private static final int FORMS_WIDTH = 145;
-
- // private final IndexedStackPanelWithSubItems options;
- // private final AdminContextPresenter presenter;
- //
- // private AccessListsPanel accessListsPanel;
- // private DateField publishedOnField;
- // private TextArea tagsField;
- // private VerticalPanel tagsComponent;
- // private VerticalPanel publishedOnComponent;
- // private LanguageSelectorComponent langPresenter;
- // private VerticalPanel authorsComponent;
- // private VerticalPanel langComponent;
- // private IconLabel addAuthorLabel;
- // private final I18nTranslationService i18n;
- // private final String authors_item;
- // private final String publication_item;
- // private final String perms_item;
- // private final String language_item;
- // private final String tags_item;
-
- public AdminContextPanel(final AdminContextPresenter presenter, final I18nTranslationService i18n) {
- // this.presenter = presenter;
- // this.i18n = i18n;
- // //options = new IndexedStackPanelWithSubItems();
- // //options.addStyleName("kune-AdminContextPanel");
- //
- // //add(options);
- // //setCellWidth(options, "100%");
- // setWidth("100%");
- // authors_item = i18n.t("Authors");
- // publication_item = i18n.t("Publication");
- // perms_item = i18n.t("Permissions");
- // language_item = i18n.t("Language");
- // tags_item = i18n.t("Tags");
- }
-
- public void removeAccessListComponent() {
- // if (options.containsItem(perms_item)) {
- // removeComponent(perms_item);
- // }
- }
-
- public void removeAuthorsComponent() {
- // if (options.containsItem(authors_item)) {
- // removeComponent(authors_item);
- // }
- }
-
- public void removeLangComponent() {
- // if (options.containsItem(language_item)) {
- // removeComponent(language_item);
- // }
- }
-
- public void removePublishedOnComponent() {
- // if (options.containsItem(publication_item)) {
- // removeComponent(publication_item);
- // }
- }
-
- public void removeTagsComponent() {
- // if (options.containsItem(tags_item)) {
- // removeComponent(tags_item);
- // }
- }
-
- public void reset() {
- // options.clear();
- }
-
- public void setAccessLists(final AccessListsDTO accessLists) {
- // if (accessListsPanel == null) {
- // accessListsPanel = new AccessListsPanel(i18n);
- // }
- // if (!options.containsItem(perms_item)) {
- // addComponent(perms_item, i18n.t("Who can admin/edit/view this work"),
- // accessListsPanel);
- // }
- // accessListsPanel.setAccessLists(accessLists);
- }
-
- public void setAuthors(final List<UserSimpleDTO> authors) {
- // if (authorsComponent == null) {
- // authorsComponent = new VerticalPanel();
- // addAuthorLabel = new IconLabel(IMG.addGreen(), i18n.t("Add author"));
- // addAuthorLabel.addClickListener(new ClickListener() {
- // public void onClick(final Widget sender) {
- // presenter.doAction(DocsEvents.ADD_AUTHOR, null);
- // }
- // });
- // } else {
- // if (options.containsItem(authors_item)) {
- // options.removeStackItem(authors_item);
- // }
- // authorsComponent.clear();
- // }
- // if (!options.containsItem(authors_item)) {
- // addComponent(authors_item, i18n.t("Authors of this work"),
- // authorsComponent);
- // }
- // for (final Iterator<UserSimpleDTO> iterator = authors.iterator();
- // iterator.hasNext();) {
- // final UserSimpleDTO author = iterator.next();
- // final StackSubItemAction[] authorActions = { new
- // StackSubItemAction(IMG.del(), i18n.t("Remove author"),
- // DocsEvents.REMOVE_AUTHOR) };
- // options.addStackSubItem(authors_item, IMG.personDef(),
- // author.getShortName(), author.getName(),
- // authorActions, presenter);
- // }
- // authorsComponent.add(addAuthorLabel);
- }
-
- public void setLanguage(final I18nLanguageDTO language) {
- // if (langComponent == null) {
- // langPresenter = WorkspaceFactory.createLanguageSelectorComponent();
- // langComponent = new VerticalPanel();
- // final LanguageSelectorPanel view = (LanguageSelectorPanel)
- // langPresenter.getView();
- // view.setWidth("" + FORMS_WIDTH);
- // langComponent.add(view);
- // view.addChangeListener(new ComboBoxListenerAdapter() {
- // public void onSelect(final ComboBox comboBox, final Record record,
- // final int index) {
- // presenter.doChangeLanguage(record.getAsString(LanguageSelectorPanel.LANG_ID));
- // }
- // });
- // }
- // if (!options.containsItem(language_item)) {
- // addComponent(language_item, i18n.t("The language of this work"),
- // langComponent);
- // }
- // langPresenter.setLanguage(language);
- }
-
- public void setPublishedOn(final Date publishedOn) {
- // if (publishedOnField == null) {
- // publishedOnComponent = createPublicationComponent();
- // }
- // if (!options.containsItem(publication_item)) {
- // addComponent(publication_item, i18n.t("Date of publication of this
- // work"), publishedOnComponent);
- // }
- // // publishedOnField.setValue(publishedOn);
- }
-
- public void setTags(final String tags) {
- // if (tagsComponent == null) {
- // tagsComponent = createTagsComponent();
- // }
- // if (!options.containsItem(tags_item)) {
- // addComponent(tags_item, i18n.t("Keywords or terms associated with
- // this work"), tagsComponent);
- // }
- // tagsField.setValue(tags);
- }
-
- // private void addComponent(final String header, final String headerTitle,
- // final VerticalPanel panel) {
- // panel.addStyleName("kune-AdminContextPanel-inner-wrap");
- // final VerticalPanel vp = options.addStackItem(header, headerTitle,
- // false);
- // vp.setStyleName("kune-AdminContextPanel-inner");
- // vp.add(panel);
- // vp.setCellWidth(panel, "100%");
- // vp.setWidth("100%");
- // }
-
- // private FormPanel createDefaultForm() {
- // final FormPanel form = new FormPanel();
- // form.setHideLabels(true);
- // form.setWidth(FORMS_WIDTH);
- // form.setBorder(false);
- // return form;
- // }
-
- // private VerticalPanel createPublicationComponent() {
- // // final FormPanel form = createDefaultForm();
- // //
- // // publishedOnField = new DateField();
- // // publishedOnField.setWidth("140");
- // // publishedOnField.setFormat("Y-m-d");
- // //
- // // publishedOnField.addListener(new FieldListenerAdapter() {
- // // public void onChange(final Field field, final Object newVal, final
- // // Object oldVal) {
- // // presenter.setPublishedOn((Date) newVal);
- // // }
- // // });
- // //
- // // form.add(publishedOnField);
- // //
- // // final VerticalPanel vp = new VerticalPanel();
- // // vp.add(form);
- // // return vp;
- // //// }
- //
- // private VerticalPanel createTagsComponent() {
- // final FormPanel form = createDefaultForm();
- // tagsField = new TextArea();
- // tagsField.setWidth("" + FORMS_WIDTH);
- // tagsField.setHeight("3em");
- // tagsField.addListener(new FieldListenerAdapter() {
- // public void onChange(final Field field, final Object newVal, final
- // Object oldVal) {
- // presenter.setTags((String) newVal);
- // }
- // });
- //
- // form.add(tagsField);
- // final VerticalPanel vp = new VerticalPanel();
- // vp.add(form);
- // return vp;
- // }
-
- // private void removeComponent(final String header) {
- // options.removeStackItem(header);
- // }
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -23,26 +23,59 @@
import com.calclab.suco.client.listener.Listener;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ActionDescriptor.
+ */
public abstract class ActionDescriptor<T> {
+ /** The icon url. */
private String iconUrl;
+
+ /** The icon descriptor. */
private ImageDescriptor iconDescriptor;
+
+ /** The text description. */
private String textDescription;
+
+ /** The tool tip. */
private String toolTip;
+ /** The must be confirmed. */
private boolean mustBeConfirmed;
+
+ /** The confirmation title. */
private String confirmationTitle;
+
+ /** The confirmation text. */
private String confirmationText;
+ /** The on perform call. */
private final Listener<T> onPerformCall;
+
+ /** The on not confirmed. */
private final Listener<T> onNotConfirmed;
+ /** The must be authenticated. */
private boolean mustBeAuthenticated;
+ /** The access rol. */
private AccessRolDTO accessRol;
+ /** The enable condition. */
private ActionEnableCondition<T> enableCondition;
+ /** The id. */
+ private String id;
+
+ /**
+ * Instantiates a new action descriptor.
+ *
+ * @param accessRolDTO
+ * the access rol dto
+ * @param onPerformCall
+ * the on perform call
+ */
public ActionDescriptor(final AccessRolDTO accessRolDTO, final Listener<T> onPerformCall) {
this.accessRol = accessRolDTO;
this.onPerformCall = onPerformCall;
@@ -51,12 +84,28 @@
this.mustBeAuthenticated = true;
}
+ /**
+ * Instantiates a new action descriptor.
+ *
+ * @param accessRolDTO
+ * the access rol dto
+ * @param onPerformCall
+ * the on perform call
+ * @param enableCondition
+ * the enable condition
+ */
public ActionDescriptor(final AccessRolDTO accessRolDTO, final Listener<T> onPerformCall,
final ActionEnableCondition<T> enableCondition) {
this(accessRolDTO, onPerformCall);
this.enableCondition = enableCondition;
}
+ /**
+ * Fire on not confirmed.
+ *
+ * @param parameter
+ * the parameter
+ */
@SuppressWarnings("unchecked")
public void fireOnNotConfirmed(final Object parameter) {
if (onNotConfirmed != null) {
@@ -64,87 +113,222 @@
}
}
+ /**
+ * Fire on perform call.
+ *
+ * @param parameter
+ * the parameter
+ */
@SuppressWarnings("unchecked")
public void fireOnPerformCall(final Object parameter) {
onPerformCall.onEvent((T) parameter);
}
+ /**
+ * Gets the access rol.
+ *
+ * @return the access rol
+ */
public AccessRolDTO getAccessRol() {
return accessRol;
}
+ /**
+ * Gets the confirmation text.
+ *
+ * @return the confirmation text
+ */
public String getConfirmationText() {
return confirmationText;
}
+ /**
+ * Gets the confirmation title.
+ *
+ * @return the confirmation title
+ */
public String getConfirmationTitle() {
return confirmationTitle;
}
+ /**
+ * Gets the enable condition.
+ *
+ * @return the enable condition
+ */
public ActionEnableCondition<T> getEnableCondition() {
return enableCondition;
}
+ /**
+ * Gets the icon descriptor.
+ *
+ * @return the icon descriptor
+ */
public ImageDescriptor getIconDescriptor() {
return iconDescriptor;
}
+ /**
+ * Gets the icon url.
+ *
+ * @return the icon url
+ */
public String getIconUrl() {
return iconUrl;
}
+ /**
+ * Gets the DOM unique id (used for debug)
+ *
+ * @return the id
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Gets the text.
+ *
+ * @return the text
+ */
public String getText() {
return textDescription;
}
+ /**
+ * Gets the tool tip.
+ *
+ * @return the tool tip
+ */
public String getToolTip() {
return toolTip;
}
+ /**
+ * Checks if is must be confirmed.
+ *
+ * @return true, if is must be confirmed
+ */
public boolean isMustBeConfirmed() {
return mustBeConfirmed;
}
+ /**
+ * Must be authenticated.
+ *
+ * @return true, if successful
+ */
public boolean mustBeAuthenticated() {
return mustBeAuthenticated;
}
+ /**
+ * Sets the access rol.
+ *
+ * @param accessRol
+ * the new access rol
+ */
public void setAccessRol(final AccessRolDTO accessRol) {
this.accessRol = accessRol;
}
+ /**
+ * Sets the confirmation text.
+ *
+ * @param confirmationText
+ * the new confirmation text
+ */
public void setConfirmationText(final String confirmationText) {
this.confirmationText = confirmationText;
}
+ /**
+ * Sets the confirmation title.
+ *
+ * @param confirmationTitle
+ * the new confirmation title
+ */
public void setConfirmationTitle(final String confirmationTitle) {
this.confirmationTitle = confirmationTitle;
}
+ /**
+ * Sets the enable condition.
+ *
+ * @param enableCondition
+ * the new enable condition
+ */
public void setEnableCondition(final ActionEnableCondition<T> enableCondition) {
this.enableCondition = enableCondition;
}
+ /**
+ * Sets the icon descriptor.
+ *
+ * @param iconDescriptor
+ * the new icon descriptor
+ */
public void setIconDescriptor(final ImageDescriptor iconDescriptor) {
this.iconDescriptor = iconDescriptor;
}
+ /**
+ * Sets the icon url.
+ *
+ * @param iconUrl
+ * the new icon url
+ */
public void setIconUrl(final String iconUrl) {
this.iconUrl = iconUrl;
}
+ /**
+ * Sets the DOM unique id (used for debug)
+ *
+ * @param id
+ * the new id
+ */
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ /**
+ * Sets the must be authenticated.
+ *
+ * @param mustBeAuthenticated
+ * the new must be authenticated
+ */
public void setMustBeAuthenticated(final boolean mustBeAuthenticated) {
this.mustBeAuthenticated = mustBeAuthenticated;
}
+ /**
+ * Sets the must be confirmed.
+ *
+ * @param mustBeConfirmed
+ * the new must be confirmed
+ */
public void setMustBeConfirmed(final boolean mustBeConfirmed) {
this.mustBeConfirmed = mustBeConfirmed;
}
+ /**
+ * Sets the text description.
+ *
+ * @param textDescription
+ * the new text description
+ */
public void setTextDescription(final String textDescription) {
this.textDescription = textDescription;
}
+ /**
+ * Sets the tool tip.
+ *
+ * @param toolTip
+ * the new tool tip
+ */
public void setToolTip(final String toolTip) {
this.toolTip = toolTip;
}
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -1,296 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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 org.ourproject.kune.platf.client.actions.toolbar;
-
-import java.util.HashMap;
-
-import org.ourproject.kune.platf.client.actions.ActionDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionItem;
-import org.ourproject.kune.platf.client.actions.ActionManager;
-import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionToolbarButtonSeparator;
-import org.ourproject.kune.platf.client.actions.ActionToolbarDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionToolbarPosition;
-import org.ourproject.kune.workspace.client.skel.SimpleToolbar;
-import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-
-import com.allen_sauer.gwt.log.client.Log;
-import com.calclab.suco.client.ioc.Provider;
-import com.google.gwt.user.client.ui.Widget;
-import com.gwtext.client.core.EventObject;
-import com.gwtext.client.widgets.Button;
-import com.gwtext.client.widgets.ToolbarButton;
-import com.gwtext.client.widgets.event.ButtonListenerAdapter;
-import com.gwtext.client.widgets.menu.BaseItem;
-import com.gwtext.client.widgets.menu.Item;
-import com.gwtext.client.widgets.menu.Menu;
-import com.gwtext.client.widgets.menu.MenuItem;
-import com.gwtext.client.widgets.menu.event.BaseItemListenerAdapter;
-
-public class ActionToolbarPanel<T> implements ActionToolbarView<T> {
-
- public enum Position {
- content, context
- }
-
- private final HashMap<String, Menu> toolbarMenus;
- private final HashMap<String, ToolbarButton> toolbarButtons;
- private final HashMap<String, Item> menuItems;
- private final Provider<ActionManager> actionManagerProvider;
- private final Position position;
- private final SimpleToolbar topbar;
- private final SimpleToolbar bottombar;
- private final WorkspaceSkeleton ws;
-
- public ActionToolbarPanel(final Position position, final Provider<ActionManager> actionManagerProvider,
- final WorkspaceSkeleton ws) {
- this.ws = ws;
- topbar = new SimpleToolbar();
- bottombar = new SimpleToolbar();
- this.position = position;
- this.actionManagerProvider = actionManagerProvider;
-
- toolbarMenus = new HashMap<String, Menu>();
- toolbarButtons = new HashMap<String, ToolbarButton>();
- menuItems = new HashMap<String, Item>();
- }
-
- public void addButtonAction(final ActionItem<T> actionItem, final boolean enable) {
- final ActionToolbarButtonDescriptor<T> action = (ActionToolbarButtonDescriptor<T>) actionItem.getAction();
- final ActionToolbarPosition pos = action.getActionPosition();
- final ToolbarButton button = new ToolbarButton();
- final String text = action.getText();
- final String iconUrl = action.getIconUrl();
- if (text != null) {
- button.setText(text);
- }
- button.addListener(new ButtonListenerAdapter() {
- @Override
- public void onClick(final Button button, final EventObject e) {
- actionManagerProvider.get().doAction(actionItem);
- }
- });
- if (iconUrl != null) {
- button.setIcon(iconUrl);
- }
- button.setTooltip(action.getToolTip());
-
- setEnableButton(button, enable);
- final SimpleToolbar toolbar = getToolbar(pos);
- if (action.hasLeftSeparator()) {
- add(toolbar, action.getLeftSeparator());
- }
- toolbar.add(button);
- if (action.hasRightSeparator()) {
- add(toolbar, action.getRightSeparator());
- }
- toolbarButtons.put(genButtonKey(pos, text), button);
- }
-
- public void addMenuAction(final ActionItem<T> actionItem, final boolean enable) {
- final ActionToolbarMenuDescriptor<T> action = (ActionToolbarMenuDescriptor<T>) actionItem.getAction();
- final String menuTitle = action.getParentMenuTitle();
- final String menuSubTitle = action.getParentSubMenuTitle();
- final ActionToolbarPosition pos = action.getActionPosition();
- final String itemKey = genMenuKey(pos, menuTitle, menuSubTitle, action.getText());
- Item item = menuItems.get(itemKey);
- if (item == null) {
- item = createToolbarMenu(pos, menuTitle, menuSubTitle, actionItem);
- menuItems.put(itemKey, item);
- }
- setEnableMenuItem(item, enable);
- }
-
- public void attach() {
- if (!topbar.isAttached()) {
- switch (position) {
- case content:
- ws.getEntityWorkspace().getContentTopBar().add(topbar);
- ws.getEntityWorkspace().getContentBottomBar().add(bottombar);
- break;
- case context:
- default:
- ws.getEntityWorkspace().getContextTopBar().add(topbar);
- ws.getEntityWorkspace().getContextBottomBar().add(bottombar);
- }
- }
- }
-
- public void clear() {
- toolbarMenus.clear();
- menuItems.clear();
- toolbarButtons.clear();
- topbar.removeAll();
- bottombar.removeAll();
- getToolbar(ActionToolbarPosition.topbar).removeAll();
- getToolbar(ActionToolbarPosition.bottombar).removeAll();
- }
-
- public void detach() {
- if (topbar.isAttached()) {
- switch (position) {
- case content:
- ws.getEntityWorkspace().getContentTopBar().remove(topbar);
- ws.getEntityWorkspace().getContentBottomBar().remove(bottombar);
- break;
- case context:
- default:
- ws.getEntityWorkspace().getContextTopBar().remove(topbar);
- ws.getEntityWorkspace().getContextBottomBar().remove(bottombar);
- }
- }
- }
-
- public void disableAllMenuItems() {
- for (final Item item : menuItems.values()) {
- item.disable();
- }
- }
-
- public void setButtonEnable(final ActionDescriptor<T> action, final boolean enable) {
- final ActionToolbarPosition pos = ((ActionToolbarDescriptor<T>) action).getActionPosition();
- final ToolbarButton button = toolbarButtons.get(genButtonKey(pos, action.getText()));
- if (button != null) {
- setEnableButton(button, enable);
- } else {
- Log.error("Tryng to enable/disable a non existent toolbar button");
- }
- }
-
- public void setMenuEnable(final ActionDescriptor<T> action, final boolean enable) {
- final Item item = menuItems.get(genMenuKey((ActionToolbarMenuDescriptor<T>) action));
- if (item != null) {
- setEnableMenuItem(item, enable);
- } else {
- Log.error("Tryng to enable/disable a non existent toolbar menu item");
- }
- }
-
- private void add(final ActionToolbarPosition toolbar, final Widget widget) {
- getToolbar(toolbar).add(widget);
- }
-
- private Widget add(final SimpleToolbar toolbar, final ActionToolbarButtonSeparator separator) {
- switch (separator) {
- case fill:
- return toolbar.addFill();
- case separator:
- return toolbar.addSeparator();
- case spacer:
- default:
- return toolbar.addSpacer();
- }
- }
-
- private Item createToolbarMenu(final ActionToolbarPosition toolBarPos, final String menuTitle,
- final String menuSubTitle, final ActionItem<T> actionItem) {
- final ActionToolbarMenuDescriptor<T> action = (ActionToolbarMenuDescriptor<T>) actionItem.getAction();
- final Item item = new Item(action.getText(), new BaseItemListenerAdapter() {
- @Override
- public void onClick(BaseItem item, EventObject e) {
- actionManagerProvider.get().doAction(actionItem);
- }
- });
- item.setIcon(action.getIconUrl());
-
- final String menuKey = genMenuKey(toolBarPos, menuTitle, null, null);
- final String subMenuKey = genMenuKey(toolBarPos, menuTitle, menuSubTitle, null);
- Menu menu = toolbarMenus.get(menuKey);
- Menu subMenu = toolbarMenus.get(subMenuKey);
- if (menuSubTitle != null) {
- if (subMenu == null) {
- subMenu = new Menu();
- final MenuItem subMenuItem = new MenuItem(menuSubTitle, subMenu);
- if (menu == null) {
- menu = createToolbarMenu(toolBarPos, action.getParentMenuIconUrl(), menuTitle, menuKey);
- }
- menu.addItem(subMenuItem);
- toolbarMenus.put(subMenuKey, subMenu);
- }
- subMenu.addItem(item);
-
- } else {
- // Menu action without submenu
- if (menu == null) {
- menu = createToolbarMenu(toolBarPos, action.getParentMenuIconUrl(), menuTitle, menuKey);
- }
- menu.addItem(item);
- }
- return item;
- }
-
- private Menu createToolbarMenu(final ActionToolbarPosition barPosition, final String iconUrl,
- final String menuTitle, final String menuKey) {
- final Menu menu = new Menu();
- final ToolbarButton toolbarMenu = new ToolbarButton(menuTitle);
- toolbarMenu.setMenu(menu);
- if (iconUrl != null) {
- toolbarMenu.setIcon(iconUrl);
- }
- toolbarMenus.put(menuKey, menu);
- add(barPosition, toolbarMenu);
- return menu;
- }
-
- private String genButtonKey(final ActionToolbarPosition pos, final String actionText) {
- final String basePart = "km-ctx-btn-" + pos.toString().substring(0, 2) + "-" + actionText;
- return basePart;
- }
-
- private String genMenuKey(final ActionToolbarMenuDescriptor<T> action) {
- return genMenuKey(action.getActionPosition(), action.getParentMenuTitle(), action.getParentSubMenuTitle(),
- action.getText());
- }
-
- private String genMenuKey(final ActionToolbarPosition pos, final String menuTitle, final String menuSubTitle,
- final String actionText) {
-
- final String basePart = "km-ctx-menu-" + pos.toString().substring(0, 2) + "-" + menuTitle;
- final String subMenuPart = menuSubTitle != null ? "-subm-" + menuSubTitle : "";
- final String itemPart = actionText != null ? "-item-" + actionText : "";
- return basePart + subMenuPart + itemPart;
- }
-
- private SimpleToolbar getToolbar(final ActionToolbarPosition pos) {
- switch (pos) {
- case bottombar:
- return bottombar;
- case topbar:
- default:
- return topbar;
- }
- }
-
- private void setEnableButton(final ToolbarButton button, final boolean enable) {
- if (enable) {
- button.enable();
- } else {
- button.disable();
- }
- }
-
- private void setEnableMenuItem(final Item item, final boolean enable) {
- if (enable) {
- item.enable();
- } else {
- item.disable();
- }
- }
-}
Copied: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java (from rev 934, trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -0,0 +1,303 @@
+/*
+ *
+ * Copyright (C) 2007-2008 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 org.ourproject.kune.platf.client.actions.toolbar;
+
+import java.util.HashMap;
+
+import org.ourproject.kune.platf.client.actions.ActionDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionItem;
+import org.ourproject.kune.platf.client.actions.ActionManager;
+import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarButtonSeparator;
+import org.ourproject.kune.platf.client.actions.ActionToolbarDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarPosition;
+import org.ourproject.kune.workspace.client.skel.SimpleToolbar;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.calclab.suco.client.ioc.Provider;
+import com.google.gwt.user.client.ui.Widget;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.widgets.Button;
+import com.gwtext.client.widgets.ToolbarButton;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
+import com.gwtext.client.widgets.menu.BaseItem;
+import com.gwtext.client.widgets.menu.Item;
+import com.gwtext.client.widgets.menu.Menu;
+import com.gwtext.client.widgets.menu.MenuItem;
+import com.gwtext.client.widgets.menu.event.BaseItemListenerAdapter;
+
+public class ActionToolbarPanel<T> implements ActionToolbarView<T> {
+
+ public enum Position {
+ content, context
+ }
+
+ private final HashMap<String, Menu> toolbarMenus;
+ private final HashMap<String, ToolbarButton> toolbarButtons;
+ private final HashMap<String, Item> menuItems;
+ private final Provider<ActionManager> actionManagerProvider;
+ private final Position position;
+ private final SimpleToolbar topbar;
+ private final SimpleToolbar bottombar;
+ private final WorkspaceSkeleton ws;
+
+ public ActionToolbarPanel(final Position position, final Provider<ActionManager> actionManagerProvider,
+ final WorkspaceSkeleton ws) {
+ this.ws = ws;
+ topbar = new SimpleToolbar();
+ bottombar = new SimpleToolbar();
+ this.position = position;
+ this.actionManagerProvider = actionManagerProvider;
+
+ toolbarMenus = new HashMap<String, Menu>();
+ toolbarButtons = new HashMap<String, ToolbarButton>();
+ menuItems = new HashMap<String, Item>();
+ }
+
+ public void addButtonAction(final ActionItem<T> actionItem, final boolean enable) {
+ final ActionToolbarButtonDescriptor<T> action = (ActionToolbarButtonDescriptor<T>) actionItem.getAction();
+ final ActionToolbarPosition pos = action.getActionPosition();
+ final ToolbarButton button = new ToolbarButton();
+ final String text = action.getText();
+ final String iconUrl = action.getIconUrl();
+ if (text != null) {
+ button.setText(text);
+ }
+ final String id = action.getId();
+ if (id != null) {
+ button.setId(id);
+ }
+ button.addListener(new ButtonListenerAdapter() {
+ @Override
+ public void onClick(final Button button, final EventObject e) {
+ actionManagerProvider.get().doAction(actionItem);
+ }
+ });
+ if (iconUrl != null) {
+ button.setIcon(iconUrl);
+ }
+ button.setTooltip(action.getToolTip());
+
+ setEnableButton(button, enable);
+ final SimpleToolbar toolbar = getToolbar(pos);
+ if (action.hasLeftSeparator()) {
+ add(toolbar, action.getLeftSeparator());
+ }
+ toolbar.add(button);
+ if (action.hasRightSeparator()) {
+ add(toolbar, action.getRightSeparator());
+ }
+ toolbarButtons.put(genButtonKey(pos, text), button);
+ }
+
+ public void addMenuAction(final ActionItem<T> actionItem, final boolean enable) {
+ final ActionToolbarMenuDescriptor<T> action = (ActionToolbarMenuDescriptor<T>) actionItem.getAction();
+ final String menuTitle = action.getParentMenuTitle();
+ final String menuSubTitle = action.getParentSubMenuTitle();
+ final ActionToolbarPosition pos = action.getActionPosition();
+ final String itemKey = genMenuKey(pos, menuTitle, menuSubTitle, action.getText());
+ Item item = menuItems.get(itemKey);
+ if (item == null) {
+ item = createToolbarMenu(pos, menuTitle, menuSubTitle, actionItem, action.getId());
+ menuItems.put(itemKey, item);
+ }
+ setEnableMenuItem(item, enable);
+ }
+
+ public void attach() {
+ if (!topbar.isAttached()) {
+ switch (position) {
+ case content:
+ ws.getEntityWorkspace().getContentTopBar().add(topbar);
+ ws.getEntityWorkspace().getContentBottomBar().add(bottombar);
+ break;
+ case context:
+ default:
+ ws.getEntityWorkspace().getContextTopBar().add(topbar);
+ ws.getEntityWorkspace().getContextBottomBar().add(bottombar);
+ }
+ }
+ }
+
+ public void clear() {
+ toolbarMenus.clear();
+ menuItems.clear();
+ toolbarButtons.clear();
+ topbar.removeAll();
+ bottombar.removeAll();
+ getToolbar(ActionToolbarPosition.topbar).removeAll();
+ getToolbar(ActionToolbarPosition.bottombar).removeAll();
+ }
+
+ public void detach() {
+ if (topbar.isAttached()) {
+ switch (position) {
+ case content:
+ ws.getEntityWorkspace().getContentTopBar().remove(topbar);
+ ws.getEntityWorkspace().getContentBottomBar().remove(bottombar);
+ break;
+ case context:
+ default:
+ ws.getEntityWorkspace().getContextTopBar().remove(topbar);
+ ws.getEntityWorkspace().getContextBottomBar().remove(bottombar);
+ }
+ }
+ }
+
+ public void disableAllMenuItems() {
+ for (final Item item : menuItems.values()) {
+ item.disable();
+ }
+ }
+
+ public void setButtonEnable(final ActionDescriptor<T> action, final boolean enable) {
+ final ActionToolbarPosition pos = ((ActionToolbarDescriptor<T>) action).getActionPosition();
+ final ToolbarButton button = toolbarButtons.get(genButtonKey(pos, action.getText()));
+ if (button != null) {
+ setEnableButton(button, enable);
+ } else {
+ Log.error("Tryng to enable/disable a non existent toolbar button");
+ }
+ }
+
+ public void setMenuEnable(final ActionDescriptor<T> action, final boolean enable) {
+ final Item item = menuItems.get(genMenuKey((ActionToolbarMenuDescriptor<T>) action));
+ if (item != null) {
+ setEnableMenuItem(item, enable);
+ } else {
+ Log.error("Tryng to enable/disable a non existent toolbar menu item");
+ }
+ }
+
+ private void add(final ActionToolbarPosition toolbar, final Widget widget) {
+ getToolbar(toolbar).add(widget);
+ }
+
+ private Widget add(final SimpleToolbar toolbar, final ActionToolbarButtonSeparator separator) {
+ switch (separator) {
+ case fill:
+ return toolbar.addFill();
+ case separator:
+ return toolbar.addSeparator();
+ case spacer:
+ default:
+ return toolbar.addSpacer();
+ }
+ }
+
+ private Item createToolbarMenu(final ActionToolbarPosition toolBarPos, final String menuTitle,
+ final String menuSubTitle, final ActionItem<T> actionItem, String id) {
+ final ActionToolbarMenuDescriptor<T> action = (ActionToolbarMenuDescriptor<T>) actionItem.getAction();
+ final Item item = new Item(action.getText(), new BaseItemListenerAdapter() {
+ @Override
+ public void onClick(BaseItem item, EventObject e) {
+ actionManagerProvider.get().doAction(actionItem);
+ }
+ });
+ item.setIcon(action.getIconUrl());
+ if (id != null) {
+ item.setId(id);
+ }
+
+ final String menuKey = genMenuKey(toolBarPos, menuTitle, null, null);
+ final String subMenuKey = genMenuKey(toolBarPos, menuTitle, menuSubTitle, null);
+ Menu menu = toolbarMenus.get(menuKey);
+ Menu subMenu = toolbarMenus.get(subMenuKey);
+ if (menuSubTitle != null) {
+ if (subMenu == null) {
+ subMenu = new Menu();
+ final MenuItem subMenuItem = new MenuItem(menuSubTitle, subMenu);
+ if (menu == null) {
+ menu = createToolbarMenu(toolBarPos, action.getParentMenuIconUrl(), menuTitle, menuKey);
+ }
+ menu.addItem(subMenuItem);
+ toolbarMenus.put(subMenuKey, subMenu);
+ }
+ subMenu.addItem(item);
+
+ } else {
+ // Menu action without submenu
+ if (menu == null) {
+ menu = createToolbarMenu(toolBarPos, action.getParentMenuIconUrl(), menuTitle, menuKey);
+ }
+ menu.addItem(item);
+ }
+ return item;
+ }
+
+ private Menu createToolbarMenu(final ActionToolbarPosition barPosition, final String iconUrl,
+ final String menuTitle, final String menuKey) {
+ final Menu menu = new Menu();
+ final ToolbarButton toolbarMenu = new ToolbarButton(menuTitle);
+ toolbarMenu.setMenu(menu);
+ if (iconUrl != null) {
+ toolbarMenu.setIcon(iconUrl);
+ }
+ toolbarMenus.put(menuKey, menu);
+ add(barPosition, toolbarMenu);
+ return menu;
+ }
+
+ private String genButtonKey(final ActionToolbarPosition pos, final String actionText) {
+ final String basePart = "km-ctx-btn-" + pos.toString().substring(0, 2) + "-" + actionText;
+ return basePart;
+ }
+
+ private String genMenuKey(final ActionToolbarMenuDescriptor<T> action) {
+ return genMenuKey(action.getActionPosition(), action.getParentMenuTitle(), action.getParentSubMenuTitle(),
+ action.getText());
+ }
+
+ private String genMenuKey(final ActionToolbarPosition pos, final String menuTitle, final String menuSubTitle,
+ final String actionText) {
+
+ final String basePart = "km-ctx-menu-" + pos.toString().substring(0, 2) + "-" + menuTitle;
+ final String subMenuPart = menuSubTitle != null ? "-subm-" + menuSubTitle : "";
+ final String itemPart = actionText != null ? "-item-" + actionText : "";
+ return basePart + subMenuPart + itemPart;
+ }
+
+ private SimpleToolbar getToolbar(final ActionToolbarPosition pos) {
+ switch (pos) {
+ case bottombar:
+ return bottombar;
+ case topbar:
+ default:
+ return topbar;
+ }
+ }
+
+ private void setEnableButton(final ToolbarButton button, final boolean enable) {
+ if (enable) {
+ button.enable();
+ } else {
+ button.disable();
+ }
+ }
+
+ private void setEnableMenuItem(final Item item, final boolean enable) {
+ if (enable) {
+ item.enable();
+ } else {
+ item.disable();
+ }
+ }
+}
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
___________________________________________________________________
Name: svn:mergeinfo
+
Added: trunk/src/main/java/org/ourproject/kune/platf/client/dto/RateResultDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/RateResultDTO.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/RateResultDTO.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -0,0 +1,43 @@
+package org.ourproject.kune.platf.client.dto;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+public class RateResultDTO implements IsSerializable {
+ private Double rate;
+ private Integer rateByUsers;
+ private Double currentUserRate;
+
+ public RateResultDTO() {
+ this(null, null, null);
+ }
+
+ public RateResultDTO(Double rate, Integer rateByUsers, Double currentUserRate) {
+ this.rate = rate;
+ this.rateByUsers = rateByUsers;
+ this.currentUserRate = currentUserRate;
+ }
+
+ public Double getCurrentUserRate() {
+ return currentUserRate;
+ }
+
+ public Double getRate() {
+ return rate;
+ }
+
+ public Integer getRateByUsers() {
+ return rateByUsers;
+ }
+
+ public void setCurrentUserRate(Double currentUserRate) {
+ this.currentUserRate = currentUserRate;
+ }
+
+ public void setRate(Double rate) {
+ this.rate = rate;
+ }
+
+ public void setRateByUsers(Integer rateByUsers) {
+ this.rateByUsers = rateByUsers;
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateContentDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateContentDTO.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateContentDTO.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -127,6 +127,12 @@
this.rate = rate;
}
+ public void setRate(RateResultDTO result) {
+ setRate(result.getRate());
+ setRateByUsers(result.getRateByUsers());
+ setCurrentUserRate(result.getCurrentUserRate());
+ }
+
public void setRateable(boolean isRateable) {
this.isRateable = isRateable;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -26,6 +26,7 @@
import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
+import org.ourproject.kune.platf.client.dto.RateResultDTO;
import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
import org.ourproject.kune.platf.client.dto.StateContainerDTO;
import org.ourproject.kune.platf.client.dto.StateContentDTO;
@@ -59,7 +60,7 @@
CommentDTO markCommentAsAbuse(String userHash, StateToken token, Long commentId) throws DefaultException;
- void rateContent(String userHash, StateToken token, Double value) throws DefaultException;
+ RateResultDTO rateContent(String userHash, StateToken token, Double value) throws DefaultException;
void removeAuthor(String userHash, StateToken token, String authorShortName) throws DefaultException;
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -26,6 +26,7 @@
import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
+import org.ourproject.kune.platf.client.dto.RateResultDTO;
import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
import org.ourproject.kune.platf.client.dto.StateContainerDTO;
import org.ourproject.kune.platf.client.dto.StateContentDTO;
@@ -59,7 +60,7 @@
void markCommentAsAbuse(String userHash, StateToken token, Long commentId, AsyncCallback<CommentDTO> asyncCallback);
- void rateContent(String userHash, StateToken token, Double value, AsyncCallback<?> asyncCallback);
+ void rateContent(String userHash, StateToken token, Double value, AsyncCallback<RateResultDTO> asyncCallback);
void removeAuthor(String userHash, StateToken token, String authorShortName, AsyncCallback<?> asyncCallback);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -349,7 +349,7 @@
contentNavigatorToolbar);
final TextEditorPresenter presenter = new TextEditorPresenter(true, toolbar,
- $(I18nUITranslationService.class));
+ $(I18nUITranslationService.class), $(StateManager.class));
final TextEditorPanel panel = new TextEditorPanel(presenter, $(I18nTranslationService.class),
$(WorkspaceSkeleton.class), $(ColorWebSafePalette.class));
presenter.init(panel);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -309,7 +309,7 @@
@Override
public RateIt create() {
final RateItPresenter presenter = new RateItPresenter($(I18nUITranslationService.class),
- $(Session.class), $$(ContentServiceAsync.class), $(StateManager.class));
+ $(Session.class), $$(ContentServiceAsync.class), $(StateManager.class), $$(RatePresenter.class));
final RateItPanel panel = new RateItPanel(presenter, $(I18nUITranslationService.class),
$(WorkspaceSkeleton.class), $(Images.class));
presenter.init(panel);
Added: trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeStateChangeCollection.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeStateChangeCollection.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeStateChangeCollection.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -0,0 +1,9 @@
+package org.ourproject.kune.platf.client.state;
+
+import java.util.ArrayList;
+
+public class BeforeStateChangeCollection extends ArrayList<BeforeStateChangeListener> {
+
+ private static final long serialVersionUID = 1L;
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeStateChangeListener.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeStateChangeListener.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeStateChangeListener.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -0,0 +1,8 @@
+package org.ourproject.kune.platf.client.state;
+
+
+public interface BeforeStateChangeListener {
+
+ boolean beforeChange(String newToken);
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -30,11 +30,13 @@
public interface StateManager extends HistoryListener {
+ void addBeforeStateChangeListener(BeforeStateChangeListener listener);
+
void addSiteToken(String token, Listener<StateToken> whenToken);
- void gotoToken(StateToken state);
+ void gotoToken(StateToken newToken);
- void gotoToken(String token);
+ void gotoToken(String newToken);
void onGroupChanged(Listener2<GroupDTO, GroupDTO> listener);
@@ -46,6 +48,8 @@
void reload();
+ void removeBeforeStateChangeListener(BeforeStateChangeListener listener);
+
void removeSiteToken(String token);
void restorePreviousState();
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -51,6 +51,7 @@
private final Event<StateAbstractDTO> onSocialNetworkChanged;
private final Event2<String, String> onToolChanged;
private final Event2<GroupDTO, GroupDTO> onGroupChanged;
+ private final BeforeStateChangeCollection beforeStateChangeCollection;
public StateManagerDefault(final ContentProvider contentProvider, final Session session,
final HistoryWrapper history) {
@@ -77,15 +78,21 @@
}
});
siteTokens = new HashMap<String, Listener<StateToken>>();
+ beforeStateChangeCollection = new BeforeStateChangeCollection();
}
+ public void addBeforeStateChangeListener(BeforeStateChangeListener listener) {
+ beforeStateChangeCollection.add(listener);
+ }
+
public void addSiteToken(final String token, final Listener<StateToken> listener) {
siteTokens.put(token, listener);
}
- public void gotoToken(final StateToken state) {
- Log.debug("StateManager: history goto-token newItem (" + state + ")");
- history.newItem(state.getEncoded());
+ public void gotoToken(final StateToken newToken) {
+ Log.debug("StateManager: history goto-token newItem (" + newToken + ")");
+
+ history.newItem(newToken.getEncoded());
}
public void gotoToken(final String token) {
@@ -97,20 +104,23 @@
}
public void onHistoryChanged(final String historyToken) {
- final Listener<StateToken> tokenListener = siteTokens.get(historyToken);
- Log.debug("StateManager: history token changed (" + historyToken + ")");
- if (tokenListener == null) {
- onHistoryChanged(new StateToken(historyToken));
- } else {
- StateToken stateToken;
- if (oldState == null) {
- // Starting with some token like "signin": load defContent also
- stateToken = new StateToken();
- onHistoryChanged(stateToken);
+ if (beforeStateListenersAllowChange(historyToken)) {
+ final Listener<StateToken> tokenListener = siteTokens.get(historyToken);
+ Log.debug("StateManager: history token changed (" + historyToken + ")");
+ if (tokenListener == null) {
+ onHistoryChanged(new StateToken(historyToken));
} else {
- stateToken = oldState.getStateToken();
+ StateToken stateToken;
+ if (oldState == null) {
+ // Starting with some token like "signin": load defContent
+ // also
+ stateToken = new StateToken();
+ onHistoryChanged(stateToken);
+ } else {
+ stateToken = oldState.getStateToken();
+ }
+ tokenListener.onEvent(stateToken);
}
- tokenListener.onEvent(stateToken);
}
}
@@ -135,6 +145,10 @@
onHistoryChanged(history.getToken());
}
+ public void removeBeforeStateChangeListener(BeforeStateChangeListener listener) {
+ beforeStateChangeCollection.remove(listener);
+ }
+
public void removeSiteToken(final String token) {
siteTokens.remove(token);
}
@@ -170,6 +184,15 @@
}
}
+ private boolean beforeStateListenersAllowChange(String newToken) {
+ for (BeforeStateChangeListener listener : beforeStateChangeCollection) {
+ if (!listener.beforeChange(newToken)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
private void checkGroupAndToolChange(final StateAbstractDTO oldState, final StateAbstractDTO newState) {
final GroupDTO oldGroup = oldState != null ? oldState.getGroup() : null;
final GroupDTO newGroup = newState.getGroup();
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPresenter.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPresenter.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -19,6 +19,7 @@
*/
package org.ourproject.kune.platf.client.ui.rate;
+import org.ourproject.kune.platf.client.dto.RateResultDTO;
import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
import org.ourproject.kune.platf.client.dto.StateContentDTO;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
@@ -40,18 +41,20 @@
private final I18nTranslationService i18n;
private final Provider<ContentServiceAsync> contentServiceProvider;
private final Session session;
- private final StateManager stateManager;
+ private final Provider<RatePresenter> ratePresenterProv;
public RateItPresenter(final I18nTranslationService i18n, final Session session,
- final Provider<ContentServiceAsync> contentServiceProvider, final StateManager stateManager) {
+ final Provider<ContentServiceAsync> contentServiceProvider, final StateManager stateManager,
+ Provider<RatePresenter> ratePresenterProvider) {
this.i18n = i18n;
this.session = session;
this.contentServiceProvider = contentServiceProvider;
- this.stateManager = stateManager;
+ this.ratePresenterProv = ratePresenterProvider;
stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
public void onEvent(final StateAbstractDTO state) {
if (state instanceof StateContentDTO) {
- setState((StateContentDTO) state);
+ StateContentDTO stateContentDTO = (StateContentDTO) state;
+ setState(stateContentDTO.isRateable(), stateContentDTO.getCurrentUserRate());
} else {
view.setVisible(false);
}
@@ -91,11 +94,15 @@
Site.showProgressProcessing();
final StateAbstractDTO currentState = session.getCurrentState();
contentServiceProvider.get().rateContent(session.getUserHash(), currentState.getStateToken(), newValue,
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
+ new AsyncCallbackSimple<RateResultDTO>() {
+ public void onSuccess(final RateResultDTO result) {
Site.hideProgress();
Site.info(i18n.t("Content rated"));
- stateManager.reload();
+ if (currentState.getStateToken().equals(session.getCurrentStateToken())) {
+ session.getContentState().setRate(result);
+ setState(true, result.getCurrentUserRate());
+ ratePresenterProv.get().setRate(result);
+ }
}
});
}
@@ -138,14 +145,16 @@
}
}
- private void setState(final StateContentDTO state) {
- if (state.isRateable()) {
+ private void setState(boolean isRateable, Double currentUserRate) {
+ if (isRateable) {
if (session.isLogged()) {
- setRate(state.getCurrentUserRate());
+ setRate(currentUserRate);
view.setVisible(true);
} else {
view.setVisible(false);
}
+ } else {
+ view.setVisible(false);
}
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePresenter.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePresenter.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -18,6 +18,7 @@
*
*/package org.ourproject.kune.platf.client.ui.rate;
+import org.ourproject.kune.platf.client.dto.RateResultDTO;
import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
import org.ourproject.kune.platf.client.dto.StateContentDTO;
import org.ourproject.kune.platf.client.state.StateManager;
@@ -44,15 +45,25 @@
this.view = view;
}
+ public void setRate(RateResultDTO result) {
+ setRate(result.getRateByUsers(), result.getRate());
+ }
+
public void setVisible(final boolean visible) {
view.setVisible(visible);
}
+ private void setRate(Integer rateByUsers, Double rate) {
+ view.setVisible(true);
+ view.setRate(rate);
+ view.setByUsers(rateByUsers);
+ }
+
private void setState(final StateContentDTO state) {
+ Integer rateByUsers = state.getRateByUsers();
+ Double rate = state.getRate();
if (state.isRateable()) {
- view.setVisible(true);
- view.setRate(state.getRate());
- view.setByUsers(state.getRateByUsers());
+ setRate(rateByUsers, rate);
}
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManager.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManager.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -26,6 +26,7 @@
import org.ourproject.kune.platf.server.domain.Content;
import org.ourproject.kune.platf.server.domain.ContentStatus;
import org.ourproject.kune.platf.server.domain.I18nLanguage;
+import org.ourproject.kune.platf.server.domain.RateResult;
import org.ourproject.kune.platf.server.domain.User;
import org.ourproject.kune.platf.server.manager.Manager;
import org.ourproject.kune.platf.server.manager.impl.SearchResult;
@@ -44,7 +45,7 @@
Double getRateContent(User user, Content content);
- void rateContent(User rater, Long contentId, Double value) throws DefaultException;
+ RateResult rateContent(User rater, Long contentId, Double value) throws DefaultException;
void removeAuthor(User user, Long contentId, String authorShortName) throws DefaultException;
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -41,6 +41,7 @@
import org.ourproject.kune.platf.server.domain.ContentStatus;
import org.ourproject.kune.platf.server.domain.I18nLanguage;
import org.ourproject.kune.platf.server.domain.Rate;
+import org.ourproject.kune.platf.server.domain.RateResult;
import org.ourproject.kune.platf.server.domain.Revision;
import org.ourproject.kune.platf.server.domain.Tag;
import org.ourproject.kune.platf.server.domain.User;
@@ -121,7 +122,7 @@
}
}
- public void rateContent(final User rater, final Long contentId, final Double value) throws DefaultException {
+ public RateResult rateContent(final User rater, final Long contentId, final Double value) throws DefaultException {
final Content content = finder.getContent(contentId);
final Rate oldRate = finder.getRate(rater, content);
if (oldRate == null) {
@@ -131,6 +132,9 @@
oldRate.setValue(value);
super.persist(oldRate, Rate.class);
}
+ Double rateAvg = getRateAvg(content);
+ Long rateByUsers = getRateByUsers(content);
+ return new RateResult(rateAvg != null ? rateAvg : 0D, rateByUsers != null ? rateByUsers.intValue() : 0, value);
}
public void removeAuthor(final User user, final Long contentId, final String authorShortName)
Added: trunk/src/main/java/org/ourproject/kune/platf/server/domain/RateResult.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/RateResult.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/RateResult.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -0,0 +1,42 @@
+package org.ourproject.kune.platf.server.domain;
+
+public class RateResult {
+ private Double rate;
+ private Integer rateByUsers;
+ private Double currentUserRate;
+
+ public RateResult() {
+ this(null, null, null);
+ }
+
+ public RateResult(Double rate, Integer rateByUsers, Double currentUserRate) {
+ this.rate = rate;
+ this.rateByUsers = rateByUsers;
+ this.currentUserRate = currentUserRate;
+ }
+
+ public Double getCurrentUserRate() {
+ return currentUserRate;
+ }
+
+ public Double getRate() {
+ return rate;
+ }
+
+ public Integer getRateByUsers() {
+ return rateByUsers;
+ }
+
+ public void setCurrentUserRate(Double currentUserRate) {
+ this.currentUserRate = currentUserRate;
+ }
+
+ public void setRate(Double rate) {
+ this.rate = rate;
+ }
+
+ public void setRateByUsers(Integer rateByUsers) {
+ this.rateByUsers = rateByUsers;
+ }
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -32,6 +32,7 @@
import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
+import org.ourproject.kune.platf.client.dto.RateResultDTO;
import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
import org.ourproject.kune.platf.client.dto.StateContainerDTO;
import org.ourproject.kune.platf.client.dto.StateContentDTO;
@@ -64,6 +65,7 @@
import org.ourproject.kune.platf.server.domain.Content;
import org.ourproject.kune.platf.server.domain.ContentStatus;
import org.ourproject.kune.platf.server.domain.Group;
+import org.ourproject.kune.platf.server.domain.RateResult;
import org.ourproject.kune.platf.server.domain.User;
import org.ourproject.kune.platf.server.manager.GroupManager;
import org.ourproject.kune.platf.server.manager.TagManager;
@@ -272,13 +274,15 @@
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Viewer)
@Transactional(type = TransactionType.READ_WRITE)
- public void rateContent(final String userHash, final StateToken token, final Double value) throws DefaultException {
+ public RateResultDTO rateContent(final String userHash, final StateToken token, final Double value)
+ throws DefaultException {
final UserSession userSession = getUserSession();
final User rater = userSession.getUser();
final Long contentId = ContentUtils.parseId(token.getDocument());
if (userSession.isUserLoggedIn()) {
- contentManager.rateContent(rater, contentId, value);
+ RateResult result = contentManager.rateContent(rater, contentId, value);
+ return mapper.map(result, RateResultDTO.class);
} else {
throw new AccessViolationException();
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -103,6 +103,7 @@
if (userLogged != User.UNKNOWN_USER) {
state.setCurrentUserRate(contentManager.getRateContent(userLogged, content));
}
+ // FIXME: user RateResult
Double rateAvg = contentManager.getRateAvg(content);
state.setRate(rateAvg != null ? rateAvg : 0D);
Long rateByUsers = contentManager.getRateByUsers(content);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigator.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigator.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigator.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -19,19 +19,20 @@
*/
package org.ourproject.kune.workspace.client.ctxnav;
-import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
import org.ourproject.kune.platf.client.dto.StateContainerDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
public interface ContextNavigator {
+ void attach();
+
void clear();
+ void detach();
+
void editItem(StateToken stateToken);
- View getView();
-
boolean isSelected(StateToken stateToken);
void refresh(StateToken stateToken);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -60,6 +60,8 @@
private final ContextNavigatorPresenter presenter;
private final MenuItemsContainer<StateToken> menuItemsContainer;
+ // private final Panel generalPanel;
+
public ContextNavigatorPanel(final ContextNavigatorPresenter presenter, final I18nTranslationService i18n,
final WorkspaceSkeleton ws, final ActionManager actionManager) {
this.presenter = presenter;
@@ -69,6 +71,10 @@
fireOnTextChange = true;
isEditable = false;
menuItemsContainer = new MenuItemsContainer<StateToken>();
+ // generalPanel = new Panel();
+ // generalPanel.setLayout(new FitLayout());
+ // generalPanel.setAutoScroll(false);
+ // generalPanel.setBorder(false);
}
public void addItem(final ContextNavigatorItem item) {
@@ -144,6 +150,31 @@
menuItemsContainer.clear();
}
+ // public void attach() {
+ // if (!generalPanel.isRendered()) {
+ // Site.info("attach");
+ // ws.getEntityWorkspace().setContext(generalPanel);
+ // generalPanel.doLayout();
+ // }
+ // if (!treePanel.isRendered()) {
+ // Site.info("added");
+ // generalPanel.add(treePanel);
+ // generalPanel.doLayout();
+ // treePanel.doLayout();
+ // }
+ // }
+
+ public void detach() {
+ clear();
+ }
+
+ // public void detach() {
+ // if (generalPanel.isRendered()) {
+ // Site.info("detach");
+ // generalPanel.removeFromParent();
+ // }
+ // }
+
public void editItem(final String id) {
treeEditor.startEdit(getNode(id));
}
@@ -261,16 +292,16 @@
treePanel.doLayout(false);
}
});
-
- ws.getEntityWorkspace().addContextListener(new ContainerListenerAdapter() {
- @Override
- public void onResize(final BoxComponent component, final int adjWidth, final int adjHeight,
- final int rawWidth, final int rawHeight) {
- // Log.debug("-------w: " + adjWidth + " h: " + adjHeight);
- // Log.debug("---r---w: " + rawWidth + " h: " + rawHeight);
- }
- });
-
+ // ws.getEntityWorkspace().addContextListener(new
+ // ContainerListenerAdapter() {
+ // @Override
+ // public void onResize(final BoxComponent component, final int
+ // adjWidth, final int adjHeight,
+ // final int rawWidth, final int rawHeight) {
+ // // Log.debug("-------w: " + adjWidth + " h: " + adjHeight);
+ // // Log.debug("---r---w: " + rawWidth + " h: " + rawHeight);
+ // }
+ // });
ws.getEntityWorkspace().setContext(treePanel);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -23,7 +23,6 @@
import java.util.HashMap;
-import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.actions.ActionItemCollection;
import org.ourproject.kune.platf.client.actions.ActionRegistry;
import org.ourproject.kune.platf.client.actions.ContentIconsRegistry;
@@ -94,20 +93,29 @@
editOnNextStateChange = false;
}
+ public void attach() {
+ // FIXME At the moment detach (removeFromParent) destroy the gwt-eext
+ // TreePanel and the widget must be recreated (cannot be attached again
+ // like in gwt)
+ setState(session.getCurrentState(), true);
+ toolbar.attach();
+ }
+
public void clear() {
toolbar.clear();
view.clear();
actionsByItem.clear();
}
+ public void detach() {
+ view.detach();
+ toolbar.detach();
+ }
+
public void editItem(final StateToken stateToken) {
view.editItem(genId(stateToken));
}
- public View getView() {
- return view;
- }
-
public void gotoToken(final String token) {
stateManager.gotoToken(token);
}
@@ -167,9 +175,7 @@
contentServiceProvider.get().getContent(session.getUserHash(), stateToken,
new AsyncCallbackSimple<StateAbstractDTO>() {
public void onSuccess(final StateAbstractDTO state) {
- if (state instanceof StateContainerDTO) {
- setState((StateContainerDTO) state, false);
- }
+ setState(state, false);
}
});
}
@@ -334,4 +340,10 @@
}
}
+ private void setState(final StateAbstractDTO state, boolean select) {
+ if (state instanceof StateContainerDTO) {
+ setState((StateContainerDTO) state, select);
+ }
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorView.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorView.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -29,6 +29,8 @@
void clear();
+ void detach();
+
void editItem(String id);
boolean isSelected(String id);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -127,15 +127,16 @@
}
public void showSaveBeforeDialog() {
- MessageBox.confirm(i18n.t("Save confirmation"), i18n.t("Save before close?"), new MessageBox.ConfirmCallback() {
- public void execute(final String btnID) {
- if (btnID.equals("yes")) {
- presenter.onSaveAndClose();
- } else {
- presenter.onCancelConfirmed();
- }
- }
- });
+ MessageBox.confirm(i18n.t("Save confirmation"), i18n.t("Save before closing the editor?"),
+ new MessageBox.ConfirmCallback() {
+ public void execute(final String btnID) {
+ if (btnID.equals("yes")) {
+ presenter.onSaveAndClose();
+ } else {
+ presenter.onCancelConfirmed();
+ }
+ }
+ });
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -27,12 +27,18 @@
import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbar;
import org.ourproject.kune.platf.client.dto.AccessRolDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.state.BeforeStateChangeListener;
+import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import com.calclab.suco.client.listener.Listener;
import com.calclab.suco.client.listener.Listener0;
public class TextEditorPresenter implements TextEditor {
+ public static final int AUTOSAVE_AFTER_FAILS_IN_MILLISECONS = 20000;
+ public static final int AUTOSAVE_IN_MILLISECONDS = 10000;
+ public static final String CLOSE_ID = "k-teditc-close";
+ public static final String SAVE_ID = "k-teditp-save";
private boolean editingHtml;
private TextEditorView view;
private boolean savePending;
@@ -44,16 +50,26 @@
private ActionToolbarButtonDescriptor<StateToken> save;
private ActionToolbarButtonDescriptor<StateToken> close;
private final I18nUITranslationService i18n;
+ private final BeforeStateChangeListener beforeStateChangeListener;
+ private String newTokenAfterSave;
+ private final StateManager stateManager;
public TextEditorPresenter(final boolean isAutoSave, final ActionToolbar<StateToken> toolbar,
- final I18nUITranslationService i18n) {
+ final I18nUITranslationService i18n, StateManager stateManager) {
this.toolbar = toolbar;
autoSave = isAutoSave;
this.i18n = i18n;
+ this.stateManager = stateManager;
savePending = false;
editingHtml = false;
saveAndCloseConfirmed = false;
createActions();
+
+ beforeStateChangeListener = new BeforeStateChangeListener() {
+ public boolean beforeChange(String newToken) {
+ return beforeTokenChange(newToken);
+ }
+ };
}
public void editContent(final String content, final Listener<String> onSave, final Listener0 onEditCancelled) {
@@ -62,6 +78,8 @@
toolbar.attach();
view.attach();
setContent(content);
+ stateManager.addBeforeStateChangeListener(beforeStateChangeListener);
+ newTokenAfterSave = null;
}
public String getContent() {
@@ -83,7 +101,7 @@
savePending = true;
toolbar.setEnableAction(save, true);
if (autoSave) {
- view.scheduleSave(10000);
+ view.scheduleSave(AUTOSAVE_IN_MILLISECONDS);
}
}
}
@@ -102,7 +120,7 @@
}
public void onSaveFailed() {
- view.scheduleSave(20000);
+ view.scheduleSave(AUTOSAVE_AFTER_FAILS_IN_MILLISECONS);
if (saveAndCloseConfirmed) {
saveAndCloseConfirmed = false;
}
@@ -113,6 +131,7 @@
savePending = false;
saveAndCloseConfirmed = false;
toolbar.setEnableAction(save, false);
+ newTokenAfterSave = null;
}
protected void onCancel() {
@@ -125,6 +144,8 @@
}
protected void onCancelConfirmed() {
+ stateManager.removeBeforeStateChangeListener(beforeStateChangeListener);
+ gotoNewTokenIfNecessary();
reset();
view.detach();
toolbar.detach();
@@ -151,6 +172,17 @@
onSave.onEvent(view.getHTML());
}
+ boolean beforeTokenChange(String newToken) {
+ if (savePending) {
+ newTokenAfterSave = newToken;
+ onCancel();
+ return false;
+ } else {
+ onCancelConfirmed();
+ return true;
+ }
+ }
+
private void createActions() {
save = new ActionToolbarButtonDescriptor<StateToken>(AccessRolDTO.Viewer, ActionToolbarPosition.topbar,
new Listener<StateToken>() {
@@ -159,6 +191,7 @@
}
});
save.setTextDescription(i18n.tWithNT("Save", "used in button"));
+ save.setId(SAVE_ID);
// save.setIconUrl("images/");
close = new ActionToolbarButtonDescriptor<StateToken>(AccessRolDTO.Viewer, ActionToolbarPosition.topbar,
@@ -168,6 +201,7 @@
}
});
close.setTextDescription(i18n.tWithNT("Close", "used in button"));
+ close.setId(CLOSE_ID);
// close.setIconUrl("images/");
final ActionItemCollection<StateToken> collection = new ActionItemCollection<StateToken>();
@@ -176,6 +210,13 @@
toolbar.setActions(collection);
}
+ private void gotoNewTokenIfNecessary() {
+ if (newTokenAfterSave != null) {
+ stateManager.reload();
+ stateManager.gotoToken(newTokenAfterSave);
+ }
+ }
+
private void setContent(final String html) {
this.view.setHTML(html);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -32,8 +32,8 @@
public class EntityLicensePanel implements EntityLicenseView {
private final Label copyright;
- private final Image image;
- private final Label license;
+ private final Image licenseImage;
+ private final Label licenseLabel;
private final I18nTranslationService i18n;
private final SimpleToolbar licenseBar;
private final WorkspaceSkeleton ws;
@@ -43,15 +43,15 @@
this.i18n = i18n;
this.ws = ws;
copyright = new Label();
- image = new Image();
- license = new Label();
+ licenseImage = new Image();
+ licenseLabel = new Label();
licenseBar = new SimpleToolbar();
licenseBar.add(copyright);
- licenseBar.add(license);
+ licenseBar.add(licenseLabel);
licenseBar.addSpacer();
licenseBar.addSpacer();
- licenseBar.add(image);
+ licenseBar.add(licenseImage);
final ClickListener clickListener = new ClickListener() {
public void onClick(Widget arg0) {
@@ -59,14 +59,14 @@
}
};
- license.addClickListener(clickListener);
- image.addClickListener(clickListener);
+ licenseLabel.addClickListener(clickListener);
+ licenseImage.addClickListener(clickListener);
copyright.setVisible(false);
- license.setVisible(false);
- image.setVisible(false);
+ licenseLabel.setVisible(false);
+ licenseImage.setVisible(false);
copyright.addStyleName("kune-Margin-Large-l");
- license.setStyleName("k-entitylicensepanel-licensetext");
+ licenseLabel.setStyleName("k-entitylicensepanel-licensetext");
}
public void attach() {
@@ -87,10 +87,10 @@
public void showLicense(final String groupName, final LicenseDTO licenseDTO) {
copyright.setText(i18n.t("© [%s], under license: ", groupName));
- license.setText(licenseDTO.getLongName());
+ licenseLabel.setText(licenseDTO.getLongName());
copyright.setVisible(true);
- license.setVisible(true);
- image.setVisible(true);
- image.setUrl(licenseDTO.getImageUrl());
+ licenseLabel.setVisible(true);
+ licenseImage.setVisible(true);
+ licenseImage.setUrl(licenseDTO.getImageUrl());
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -32,11 +32,11 @@
import com.gwtext.client.widgets.layout.FitLayout;
public class EntityWorkspace {
- private static final String ENTITY_TITLE = "k-entity-title";
- private static final String ENTITY_SUBTITLE = "k-entity-subtitle";
- private static final String ENTITY_BOTTOM = "k-entity-bottom";
- private static final String ENTITY_CONTENT = "k-entity-content";
- private static final String ENTITY_CONTEXT = "k-entity-context";
+ public static final String ENTITY_TITLE = "k-entity-title";
+ public static final String ENTITY_SUBTITLE = "k-entity-subtitle";
+ public static final String ENTITY_BOTTOM = "k-entity-bottom";
+ public static final String ENTITY_CONTENT = "k-entity-content";
+ public static final String ENTITY_CONTEXT = "k-entity-context";
private final Panel content;
private final Panel context;
private final SimpleToolbar title;
@@ -71,14 +71,14 @@
bottomPanel.setLayout(new AnchorLayout());
title = new SimpleToolbar();
- title.setHeight("" + (WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT - 2));
+ title.setHeight(WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT - 2);
title.setStylePrimaryName(ENTITY_TITLE);
// title.ensureDebugId(ENTITY_TITLE);
subTitle = new SimpleToolbar();
subTitle.setStylePrimaryName(ENTITY_SUBTITLE);
// subTitle.ensureDebugId(ENTITY_SUBTITLE);
bottom = new SimpleToolbar();
- bottom.setHeight("" + (WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT - 2));
+ bottom.setHeight(WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT - 2);
bottom.setStylePrimaryName(ENTITY_BOTTOM);
bottom.ensureDebugId(ENTITY_BOTTOM);
@@ -89,7 +89,6 @@
titles.add(subTitle, new AnchorLayoutData("100% -" + WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT));
bottomPanel.add(roundedBottom, new AnchorLayoutData("100% -" + WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT));
titles.setHeight(WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT * 2);
- bottomPanel.setHeight(WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT + 2);
final Panel contentWrap = new Panel();
final Panel contextWrap = new Panel();
@@ -136,7 +135,7 @@
mainAnchorLayout.add(titles, new AnchorLayoutData("100%"));
mainAnchorLayout.add(cntCtxBorderLayout, new AnchorLayoutData("100% -"
- + ((WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT * 3) + 2)));
+ + ((WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT * 3))));
mainAnchorLayout.add(bottomPanel, new AnchorLayoutData("100%"));
mainFitPanel.add(mainAnchorLayout);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SimpleToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SimpleToolbar.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SimpleToolbar.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -71,4 +71,9 @@
public void removeAll() {
childPanel.clear();
}
+
+ public void setHeight(int height) {
+ mainPanel.setHeight("" + height);
+ mainPanel.setCellHeight(childPanel, "" + height);
+ }
}
\ No newline at end of file
Modified: trunk/src/main/resources/dozerBeanMapping.xml
===================================================================
--- trunk/src/main/resources/dozerBeanMapping.xml 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/main/resources/dozerBeanMapping.xml 2008-10-30 17:13:18 UTC (rev 937)
@@ -366,6 +366,15 @@
<mapping>
<class-a>
+ org.ourproject.kune.platf.client.dto.RateResultDTO
+ </class-a>
+ <class-b>
+ org.ourproject.kune.platf.server.domain.RateResult
+ </class-b>
+ </mapping>
+
+ <mapping>
+ <class-a>
org.ourproject.kune.platf.server.domain.Comment
</class-a>
<class-b>
Modified: trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -73,6 +73,54 @@
@SuppressWarnings("unchecked")
@Test
+ public void oneBeforeStateChangeListenerAddAndRemove() {
+ BeforeStateChangeListener listener1 = Mockito.mock(BeforeStateChangeListener.class);
+ BeforeStateChangeListener listener2 = Mockito.mock(BeforeStateChangeListener.class);
+ String newToken = "something";
+ Mockito.stub(listener1.beforeChange(newToken)).toReturn(false);
+ Mockito.stub(listener2.beforeChange(newToken)).toReturn(false);
+ stateManager.addBeforeStateChangeListener(listener1);
+ stateManager.addBeforeStateChangeListener(listener2);
+ stateManager.removeBeforeStateChangeListener(listener1);
+ stateManager.removeBeforeStateChangeListener(listener2);
+ stateManager.onHistoryChanged(newToken);
+ Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(),
+ (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
+
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void oneBeforeStateChangeListenerReturnFalse() {
+ BeforeStateChangeListener listener1 = Mockito.mock(BeforeStateChangeListener.class);
+ BeforeStateChangeListener listener2 = Mockito.mock(BeforeStateChangeListener.class);
+ String newToken = "something";
+ Mockito.stub(listener1.beforeChange(newToken)).toReturn(true);
+ Mockito.stub(listener2.beforeChange(newToken)).toReturn(false);
+ stateManager.addBeforeStateChangeListener(listener1);
+ stateManager.addBeforeStateChangeListener(listener2);
+ stateManager.onHistoryChanged(newToken);
+ Mockito.verify(contentProvider, Mockito.never()).getContent(Mockito.anyString(),
+ (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void oneBeforeStateChangeListenerReturnTrue() {
+ BeforeStateChangeListener listener1 = Mockito.mock(BeforeStateChangeListener.class);
+ BeforeStateChangeListener listener2 = Mockito.mock(BeforeStateChangeListener.class);
+ String newToken = "something";
+ Mockito.stub(listener1.beforeChange(newToken)).toReturn(true);
+ Mockito.stub(listener2.beforeChange(newToken)).toReturn(true);
+ stateManager.addBeforeStateChangeListener(listener1);
+ stateManager.addBeforeStateChangeListener(listener2);
+ stateManager.onHistoryChanged(newToken);
+ Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(),
+ (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
public void siteTokenFirstLoadDefContentAndFireListener() {
final Listener listener = Mockito.mock(Listener.class);
final String token = SiteToken.signin.toString();
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -12,7 +12,6 @@
@Test
public void testEntityLogoUpload() throws Exception {
- setMustStopFinally(false);
openDefPage();
signIn();
setLogo("kune-logo-400px.png");
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManagerTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManagerTest.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManagerTest.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -4,8 +4,6 @@
import java.io.File;
-import net.sf.json.JSONObject;
-
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
@@ -14,7 +12,6 @@
import org.ourproject.kune.platf.client.errors.UserMustBeLoggedException;
import org.ourproject.kune.platf.integration.IntegrationTestHelper;
import org.ourproject.kune.platf.integration.content.ContentServiceIntegrationTest;
-import org.ourproject.kune.workspace.client.entitylogo.EntityLogoView;
import com.google.inject.Inject;
@@ -38,8 +35,9 @@
@Ignore
public void testErrorResponse() {
- JSONObject expected = JSONObject.fromObject("{\"success\":false,\"errors\":[{\"id\":\""
- + EntityLogoView.LOGO_FORM_FIELD + "\",\"msg\":\"Some message\"}]}");
+ // JSONObject expected =
+ // JSONObject.fromObject("{\"success\":false,\"errors\":[{\"id\":\""
+ // + EntityLogoView.LOGO_FORM_FIELD + "\",\"msg\":\"Some message\"}]}");
// assertEquals(expected, manager.createJsonResponse(false,
// "Some message"));
}
@@ -51,7 +49,8 @@
@Ignore
public void testSuccessResponse() {
- JSONObject expected = JSONObject.fromObject("{\"success\":true,\"errors\":[{}]}");
+ // JSONObject expected =
+ // JSONObject.fromObject("{\"success\":true,\"errors\":[{}]}");
// assertEquals(expected, manager.createJsonResponse(true, null));
}
Modified: trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java 2008-10-30 01:18:32 UTC (rev 936)
+++ trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java 2008-10-30 17:13:18 UTC (rev 937)
@@ -1,110 +1,127 @@
package org.ourproject.kune.workspace.client.editor;
-import org.easymock.EasyMock;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
import org.junit.Before;
-import org.junit.Ignore;
+import org.junit.Test;
import org.mockito.Mockito;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbar;
+import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import com.calclab.suco.testing.listener.MockListener;
+import com.calclab.suco.testing.listener.MockListener0;
+
public class TextEditorPresenterTest {
private TextEditorPresenter presenter;
private TextEditorView view;
+ private MockListener<String> saveListener;
+ private MockListener0 cancelListener;
+ @SuppressWarnings("unchecked")
+ private ActionToolbar toolbar;
+ private StateManager stateManager;
+ @SuppressWarnings("unchecked")
@Before
public void createObjects() {
I18nUITranslationService i18n = Mockito.mock(I18nUITranslationService.class);
- // ActionToolbar toolbar = Mockito.mock(ActionToolbar.class);
- presenter = new TextEditorPresenter(true, null, i18n);
- view = EasyMock.createStrictMock(TextEditorView.class);
+ stateManager = Mockito.mock(StateManager.class);
+ toolbar = Mockito.mock(ActionToolbar.class);
+ presenter = new TextEditorPresenter(true, toolbar, i18n, stateManager);
+ view = Mockito.mock(TextEditorView.class);
+ presenter.init(view);
+ saveListener = new MockListener<String>();
+ cancelListener = new MockListener0();
}
- @Ignore
- public void testSave() {
- viewInit();
- // view.setEnabledSaveButton(true);
- view.scheduleSave(10000);
- EasyMock.expect(view.getHTML()).andReturn("foo");
- viewReset();
- EasyMock.replay(view);
- // listener.onSave("foo");
- // EasyMock.replay(listener);
- presenter.init(view);
- presenter.onEdit();
- presenter.onSave();
+ @Test
+ public void historyChangeWithoutPendingMustAccept() {
+ presenter.editContent("Text to edit", saveListener, cancelListener);
+ boolean change = presenter.beforeTokenChange("somegroup");
+ assertTrue(change);
+ Mockito.verify(view, Mockito.never()).showSaveBeforeDialog();
+ Mockito.verify(toolbar, Mockito.times(1)).detach();
+ }
+
+ @Test
+ public void historyChangeWithPendingSaveAndCancelMustPosponeIt() {
+ String newToken = editAndChangeHistoryToken();
+ presenter.onCancelConfirmed();
+ assertTrue(saveListener.isNotCalled());
+ Mockito.verify(stateManager, Mockito.times(1)).gotoToken(newToken);
+ }
+
+ @Test
+ public void historyChangeWithPendingSaveMustPosponeIt() {
+ String newToken = editAndChangeHistoryToken();
+ presenter.onSaveAndClose();
presenter.onSaved();
- EasyMock.verify(view);
- // EasyMock.verify(listener);
+ assertTrue(saveListener.isCalledOnce());
+ Mockito.verify(stateManager, Mockito.times(1)).gotoToken(newToken);
}
- @Ignore
- public void testSavePending() {
- viewInit();
- // view.setEnabledSaveButton(true);
- view.scheduleSave(10000);
- EasyMock.replay(view);
- presenter.init(view);
+ @Test
+ public void initialEditWithCancel() {
+ presenter.editContent("Text to edit", saveListener, cancelListener);
+ presenter.onCancel();
+ assertTrue(saveListener.isNotCalled());
+ assertTrue(cancelListener.isCalledOnce());
+ }
+
+ @Test
+ public void initialEditWithEditionAndSave() {
+ presenter.editContent("Text to edit", saveListener, cancelListener);
+ String textModified = "Text modified";
+ Mockito.stub(view.getHTML()).toReturn(textModified);
presenter.onEdit();
- EasyMock.verify(view);
+ presenter.onSave();
+ assertTrue(saveListener.isCalledWithEquals(textModified));
+ assertTrue(cancelListener.isNotCalled());
}
- @Ignore
- public void testSavePendingCancel() {
- viewInit();
- // view.setEnabledSaveButton(true);
- view.scheduleSave(10000);
- view.saveTimerCancel();
- view.showSaveBeforeDialog();
- EasyMock.expect(view.getHTML()).andReturn("foo");
- viewReset();
- EasyMock.replay(view);
- // listener.onSave("foo");
- // listener.onEditCancelled();
- // EasyMock.replay(listener);
- presenter.init(view);
+ @Test
+ public void initialEditWithSave() {
+ presenter.editContent("Text to edit", saveListener, cancelListener);
+ presenter.onSave();
+ assertTrue(saveListener.isCalledOnce());
+ assertTrue(cancelListener.isNotCalled());
+ }
+
+ @Test
+ public void testSavePendingAndCancel() {
+ presenter.editContent("Text to edit", saveListener, cancelListener);
+ String textModified = "Text modified";
+ Mockito.stub(view.getHTML()).toReturn(textModified);
presenter.onEdit();
presenter.onCancel();
- presenter.onSaveAndClose();
- presenter.onSaved();
- EasyMock.verify(view);
- // EasyMock.verify(listener);
+ presenter.onCancelConfirmed();
+ assertTrue(saveListener.isNotCalled());
+ assertTrue(cancelListener.isCalledOnce());
}
- @Ignore
- public void testSavePendingCancelSaveFails() {
- viewInit();
- // view.setEnabledSaveButton(true);
- view.scheduleSave(10000);
- view.saveTimerCancel();
- view.showSaveBeforeDialog();
- EasyMock.expect(view.getHTML()).andReturn("foo");
- view.scheduleSave(20000);
- EasyMock.replay(view);
- // listener.onSave("foo");
- // EasyMock.replay(listener);
- presenter.init(view);
+ @Test
+ public void testSavePendingAndSaveFails() {
+ presenter.editContent("Text to edit", saveListener, cancelListener);
+ String textModified = "Text modified";
+ Mockito.stub(view.getHTML()).toReturn(textModified);
presenter.onEdit();
- presenter.onCancel();
- presenter.onSaveAndClose();
+ presenter.onSave();
presenter.onSaveFailed();
- EasyMock.verify(view);
- // EasyMock.verify(listener);
+ presenter.onSave();
+ Mockito.verify(view, Mockito.times(1)).scheduleSave(TextEditorPresenter.AUTOSAVE_IN_MILLISECONDS);
+ Mockito.verify(view, Mockito.times(1)).scheduleSave(TextEditorPresenter.AUTOSAVE_AFTER_FAILS_IN_MILLISECONS);
+ assertTrue(saveListener.isCalled(2));
}
- @Ignore
- public void testViewInitialization() {
- viewInit();
- EasyMock.replay(view);
- presenter.init(view);
- EasyMock.verify(view);
+ private String editAndChangeHistoryToken() {
+ presenter.editContent("Text to edit", saveListener, cancelListener);
+ presenter.onEdit();
+ String newToken = "somegroup";
+ boolean change = presenter.beforeTokenChange(newToken);
+ assertFalse(change);
+ Mockito.verify(view, Mockito.times(1)).showSaveBeforeDialog();
+ return newToken;
}
- private void viewInit() {
- // view.setEnabledSaveButton(false);
- view.setEnabled(true);
- }
-
- private void viewReset() {
- view.saveTimerCancel();
- // view.setEnabledSaveButton(false);
- }
}
1
0
Author: vjrj
Date: 2008-10-30 02:18:32 +0100 (Thu, 30 Oct 2008)
New Revision: 936
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/ColorWebSafePaletteView.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java
Removed:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/WebSafePaletteView.java
Modified:
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialogExtended.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/ColorWebSafePalettePanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/ColorWebSafePalettePresenter.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileJsonUploadManagerAbstract.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerAbstract.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogo.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/SiteToastMessagePanel.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManagerTest.java
Log:
Complete - task Concurrent toast messages
Complete - task SignIn and Register tabIndex and login on enter
Complete - task Set group logo bugs (stateToken change, and wrong response)
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -109,6 +109,7 @@
import org.ourproject.kune.workspace.client.title.EntityTitlePanel;
import org.ourproject.kune.workspace.client.title.EntityTitlePresenter;
+import com.calclab.suco.client.ioc.decorator.NoDecoration;
import com.calclab.suco.client.ioc.module.AbstractModule;
import com.calclab.suco.client.ioc.module.Factory;
@@ -158,7 +159,7 @@
}
});
- register(ApplicationComponentGroup.class, new Factory<SiteToastMessage>(SiteToastMessage.class) {
+ register(NoDecoration.class, new Factory<SiteToastMessage>(SiteToastMessage.class) {
@Override
public SiteToastMessage create() {
final SiteToastMessagePresenter presenter = new SiteToastMessagePresenter();
@@ -250,7 +251,7 @@
@Override
public EntityLogo create() {
final EntityLogoPresenter presenter = new EntityLogoPresenter($(StateManager.class),
- $(WsThemePresenter.class), $(Session.class), $$(GroupServiceAsync.class));
+ $(WsThemePresenter.class), $(Session.class));
final EntityLogoPanel panel = new EntityLogoPanel($(I18nUITranslationService.class),
$(WorkspaceSkeleton.class), $$(FileDownloadUtils.class), $$(EntityLogoSelector.class));
presenter.init(panel);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialogExtended.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialogExtended.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialogExtended.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -34,15 +34,15 @@
public BasicDialogExtended(final String title, final boolean modal, final boolean autoscroll, final int width,
final int heigth, final String icon, final String firstButtonTitle, final String cancelButtonTitle,
- final Listener0 onFirstButtonClick, Listener0 onCancelButtonClick) {
+ final Listener0 onFirstButtonClick, Listener0 onCancelButtonClick, int tabIndexStart) {
this(title, modal, autoscroll, width, heigth, icon, firstButtonTitle, Ext.generateId(), cancelButtonTitle,
- Ext.generateId(), onFirstButtonClick, onCancelButtonClick);
+ Ext.generateId(), onFirstButtonClick, onCancelButtonClick, tabIndexStart);
}
public BasicDialogExtended(final String title, final boolean modal, final boolean autoscroll, final int width,
final int heigth, final String icon, final String firstButtonTitle, final String firstButtonId,
final String cancelButtonTitle, final String cancelButtonId, final Listener0 onFirstButtonClick,
- final Listener0 onCancelButtonClick) {
+ final Listener0 onCancelButtonClick, int tabIndexStart) {
super(title, modal, autoscroll, width, heigth);
setLayout(new FitLayout());
setCollapsible(false);
@@ -50,6 +50,7 @@
setIconCls(icon);
firstButton = new Button(firstButtonTitle);
+ firstButton.setId(firstButtonId);
firstButton.addListener(new ButtonListenerAdapter() {
@Override
public void onClick(final Button button, final EventObject e) {
@@ -57,18 +58,17 @@
}
});
- firstButton.setTabIndex(3);
- firstButton.setId(firstButtonId);
+ firstButton.setTabIndex(tabIndexStart);
cancel = new Button(cancelButtonTitle);
+ cancel.setId(cancelButtonId);
cancel.addListener(new ButtonListenerAdapter() {
@Override
public void onClick(final Button button, final EventObject e) {
onCancelButtonClick.onEvent();
}
});
- cancel.setTabIndex(4);
- cancel.setId(cancelButtonId);
+ cancel.setTabIndex(tabIndexStart + 1);
addButton(firstButton);
addButton(cancel);
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/ColorWebSafePalettePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/ColorWebSafePalettePanel.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/ColorWebSafePalettePanel.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -31,7 +31,7 @@
* http://en.wikipedia.org/wiki/Web_colors#Web-safe_colors
*
*/
-public class ColorWebSafePalettePanel implements WebSafePaletteView {
+public class ColorWebSafePalettePanel implements ColorWebSafePaletteView {
Grid paletteGrid;
private final ColorWebSafePalettePresenter presenter;
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/ColorWebSafePalettePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/ColorWebSafePalettePresenter.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/ColorWebSafePalettePresenter.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -24,7 +24,7 @@
public class ColorWebSafePalettePresenter implements ColorWebSafePalette {
private Listener<String> onColorSelected;
- private WebSafePaletteView view;
+ private ColorWebSafePaletteView view;
public ColorWebSafePalettePresenter() {
}
@@ -33,7 +33,7 @@
this.view.hide();
}
- public void init(final WebSafePaletteView view) {
+ public void init(final ColorWebSafePaletteView view) {
this.view = view;
}
@@ -49,7 +49,7 @@
private String getColor(final int row, final int col) {
String color = null;
- final int pd = row * WebSafePaletteView.COLS + col;
+ final int pd = row * ColorWebSafePaletteView.COLS + col;
final int da = pd / 6;
final int ra = pd % 6;
final int aa = da - ra / 6;
Copied: trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/ColorWebSafePaletteView.java (from rev 934, trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/WebSafePaletteView.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/WebSafePaletteView.java 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/ColorWebSafePaletteView.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (C) 2007-2008 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 org.ourproject.kune.platf.client.ui.palette;
+
+public interface ColorWebSafePaletteView {
+
+ int ROWS = 18;
+
+ int COLS = 12;
+
+ String COLORS[] = { "0", "3", "6", "9", "C", "F" };
+
+ void hide();
+
+ void show(int left, int top);
+
+}
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/ColorWebSafePaletteView.java
___________________________________________________________________
Name: svn:mergeinfo
+
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/WebSafePaletteView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/WebSafePaletteView.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/palette/WebSafePaletteView.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -1,34 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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 org.ourproject.kune.platf.client.ui.palette;
-
-public interface WebSafePaletteView {
-
- int ROWS = 18;
-
- int COLS = 12;
-
- String COLORS[] = { "0", "3", "6", "9", "C", "F" };
-
- void hide();
-
- void show(int left, int top);
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -21,12 +21,15 @@
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
+import java.io.Writer;
+import javax.servlet.http.HttpServletResponse;
+
import magick.MagickException;
-import net.sf.json.JSONObject;
import org.apache.commons.fileupload.FileItem;
import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.server.access.AccessRol;
import org.ourproject.kune.platf.server.auth.ActionLevel;
import org.ourproject.kune.platf.server.auth.Authenticated;
@@ -40,36 +43,21 @@
import com.wideplay.warp.persist.TransactionType;
import com.wideplay.warp.persist.Transactional;
-public class EntityLogoUploadManager extends FileJsonUploadManagerAbstract {
+public class EntityLogoUploadManager extends FileUploadManagerAbstract {
private static final long serialVersionUID = 1L;
@Inject
GroupManager groupManager;
+ @Inject
+ I18nTranslationService i18n;
+
@Override
- protected JSONObject createJsonResponse(final boolean success, final String message) {
- /**
- * Expect result with this format:
- * {"success":false,"errors":[{"id":"email","msg":"Already exists"},
- * {"id":"username","msg":"Already taken"}]}
- */
-
- JSONObject response = null;
- try {
- response = new JSONObject();
- JSONObject[] jsonError = new JSONObject[1];
- jsonError[0] = new JSONObject();
- if (!success) {
- jsonError[0].put("id", EntityLogoView.LOGO_FORM_FIELD);
- jsonError[0].put("msg", message);
- }
- response.put("errors", jsonError);
- response.put("success", success);
- } catch (final Exception e) {
- log.error("Error building response");
- }
- return response;
+ protected void beforeRespond(HttpServletResponse response, Writer w) throws IOException {
+ super.beforeRespond(response, w);
+ response.setCharacterEncoding("utf-8");
+ response.setContentType("text/xml");
}
protected void createUploadedFile(StateToken stateToken, String mimeTypeS, File origFile) throws Exception,
@@ -111,4 +99,56 @@
tmpOrigFile.delete();
}
+ /**
+ * Expect result with this format:
+ *
+ * <pre>
+ * <?xml version="1.0" encoding="UTF-8"?>
+ * <response success="false">
+ * <errors>
+ * <field>
+ * <id>first</id>
+ * <msg><![CDATA[
+ * Invalid name. <br /><i>This is a test validation message from the server </i>
+ * ]]></msg>
+ * </field>
+ * <field>
+ * <id>dob</id>
+ * <msg><![CDATA[
+ * Invalid Date of Birth. <br /><i>This is a test validation message from the server </i>
+ * ]]></msg>
+ * </field>
+ * </errors>
+ * </response>
+ * </pre>
+ **/
+ protected String createXmlResponse(final boolean success, final String message) {
+ String error = "";
+ if (!success) {
+ error = "<errors><field><id>" + EntityLogoView.LOGO_FORM_FIELD + "</id><msg><![CDATA[" + message
+ + "]]></msg></field></errors>";
+ }
+ return "<response success=\"" + success + "\">" + error + "</response>";
+ }
+
+ @Override
+ protected void onFileUploadException(HttpServletResponse response) throws IOException {
+ doResponse(response, createXmlResponse(false, i18n.t("Error: File too large")).toString(),
+ HttpServletResponse.SC_BAD_REQUEST);
+ }
+
+ @Override
+ protected void onOtherException(HttpServletResponse response, Exception e) throws IOException {
+ super.onOtherException(response, e);
+ log.info("Exception: " + e.getCause());
+ // e.printStackTrace();
+ doResponse(response, createXmlResponse(false, i18n.t("Error uploading file")).toString(),
+ HttpServletResponse.SC_BAD_REQUEST);
+ }
+
+ @Override
+ protected void onSuccess(HttpServletResponse response) throws IOException {
+ doResponse(response, createXmlResponse(true, i18n.t("Success uploading")).toString());
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileJsonUploadManagerAbstract.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileJsonUploadManagerAbstract.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileJsonUploadManagerAbstract.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -56,7 +56,7 @@
protected void onOtherException(HttpServletResponse response, Exception e) throws IOException {
super.onOtherException(response, e);
log.info("Exception: " + e.getCause());
- e.printStackTrace();
+ // e.printStackTrace();
doResponse(response, createJsonResponse(false, i18n.t("Error uploading file")).toString());
}
@@ -64,5 +64,4 @@
protected void onSuccess(HttpServletResponse response) throws IOException {
doResponse(response, createJsonResponse(true, i18n.t("Success uploading")).toString());
}
-
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerAbstract.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerAbstract.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerAbstract.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -118,12 +118,17 @@
}
protected void doResponse(final HttpServletResponse response, String additionalResponse) throws IOException {
+ doResponse(response, additionalResponse, HttpServletResponse.SC_OK);
+ }
+
+ protected void doResponse(final HttpServletResponse response, String additionalResponse, int responseCode)
+ throws IOException {
final Writer w = new OutputStreamWriter(response.getOutputStream());
if (additionalResponse != null) {
w.write(additionalResponse);
}
w.close();
- response.setStatus(HttpServletResponse.SC_OK);
+ response.setStatus(responseCode);
}
protected void onFileUploadException(final HttpServletResponse response) throws IOException {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogo.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogo.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogo.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -28,6 +28,6 @@
/**
* Reload the logo from the group reloaded from the server
*/
- void reloadGroupLogo();
+ void reloadGroupLogoImage();
}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -113,6 +113,7 @@
}
public void setLogoImage(final String url) {
+ Image.prefetch(url);
logoImage.setUrl(url);
}
@@ -167,7 +168,7 @@
}
public void reloadImage(GroupDTO group) {
- entityTextLogo.setLogoImage(downloadProvider.get().getLogoImageUrl(group.getStateToken()) + "?nocache="
+ entityTextLogo.setLogoImage(downloadProvider.get().getLogoImageUrl(group.getStateToken()) + "&nocache="
+ new Date().getTime());
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPresenter.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPresenter.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -21,15 +21,11 @@
import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
-import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.themes.WsTheme;
import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
-import com.calclab.suco.client.ioc.Provider;
import com.calclab.suco.client.listener.Listener;
import com.calclab.suco.client.listener.Listener2;
@@ -39,12 +35,9 @@
private EntityLogoView view;
private final Session session;
- private final Provider<GroupServiceAsync> groupServiceProvider;
- public EntityLogoPresenter(final StateManager stateManager, final WsThemePresenter theme, final Session session,
- Provider<GroupServiceAsync> groupServiceProvider) {
+ public EntityLogoPresenter(final StateManager stateManager, final WsThemePresenter theme, final Session session) {
this.session = session;
- this.groupServiceProvider = groupServiceProvider;
stateManager.onGroupChanged(new Listener2<GroupDTO, GroupDTO>() {
public void onEvent(final GroupDTO oldGroup, final GroupDTO newGroup) {
@@ -78,25 +71,10 @@
setGroupLogo(session.getCurrentState().getGroup());
}
- public void reloadGroupLogo() {
- reloadGroupLogo(session.getCurrentStateToken());
+ public void reloadGroupLogoImage() {
+ view.reloadImage(session.getCurrentState().getGroup());
}
- public void reloadGroupLogo(StateToken groupToken) {
- groupServiceProvider.get().getGroup(session.getUserHash(), groupToken, new AsyncCallbackSimple<GroupDTO>() {
- public void onSuccess(GroupDTO group) {
- StateAbstractDTO currentState = session.getCurrentState();
- if (currentState.getGroup().getShortName().equals(group.getShortName())) {
- // only if we are in the
- // same group
- view.reloadImage(group);
- currentState.setGroup(group);
- setGroupLogo(group);
- }
- }
- });
- }
-
private void setGroupLogo(final GroupDTO group) {
final ContentSimpleDTO groupFullLogo = group.getGroupFullLogo();
if (groupFullLogo != null) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -39,9 +39,11 @@
public class EntityLogoSelectorPanel implements EntityLogoSelectorView {
- private static final String ICON_UPLOAD_SERVLET = "/kune/servlets/EntityLogoUploadManager";
- private static final String SUBID = "k-elogoselp-subb";
- private static final String CANCELID = "k-elogoselp-canb";
+ public static final String TITLE = "Select a logo for your group";
+ public static final String ICON_UPLOAD_SERVLET = "/kune/servlets/EntityLogoUploadManager";
+ public static final String SUBID = "k-elogoselp-subb";
+ public static final String CANCELID = "k-elogoselp-canb";
+ public static final String DIALOG_ID = "k-elogoselp";
private final BasicDialogExtended dialog;
private final FormPanel formPanel;
private final Hidden userhashField;
@@ -50,8 +52,8 @@
public EntityLogoSelectorPanel(final EntityLogoSelectorPresenter presenter, final WorkspaceSkeleton ws,
I18nTranslationService i18n) {
- dialog = new BasicDialogExtended(i18n.t("Select a logo for your group"), true, true, 400, 200, "",
- i18n.t("Select"), SUBID, i18n.tWithNT("Cancel", "used in button"), CANCELID, new Listener0() {
+ dialog = new BasicDialogExtended(i18n.t(TITLE), true, true, 400, 200, "", i18n.t("Select"), SUBID,
+ i18n.tWithNT("Cancel", "used in button"), CANCELID, new Listener0() {
public void onEvent() {
String filename = file.getValueAsString();
if (filename != null && filename.length() > 0) {
@@ -62,7 +64,8 @@
public void onEvent() {
presenter.onCancel();
}
- });
+ }, 2);
+ dialog.setId(DIALOG_ID);
dialog.setCollapsible(false);
dialog.setBorder(false);
// dialog.getFirstButton().disable();
@@ -84,7 +87,6 @@
}
public void onActionComplete(Form form, int httpStatus, String responseText) {
- Site.important(responseText);
presenter.onSubmitComplete(httpStatus, responseText);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPresenter.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPresenter.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -19,6 +19,7 @@
*/package org.ourproject.kune.workspace.client.entitylogo;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.workspace.client.site.Site;
@@ -47,7 +48,7 @@
public void onSubmitComplete(int httpStatus, String responseText) {
view.hide();
- entityLogo.reloadGroupLogo();
+ entityLogo.reloadGroupLogoImage();
}
public void onSubmitFailed(int httpStatus, String responseText) {
@@ -55,7 +56,11 @@
}
public void show() {
- view.setUploadParams(session.getUserHash(), session.getCurrentStateToken().toString());
- view.show();
+ session.check(new AsyncCallbackSimple<Object>() {
+ public void onSuccess(Object result) {
+ view.setUploadParams(session.getUserHash(), session.getCurrentStateToken().toString());
+ view.show();
+ }
+ });
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -226,6 +226,7 @@
form.setButtonAlign(Position.RIGHT);
shortNameField = new TextField();
+ shortNameField.setTabIndex(1);
shortNameField.setFieldLabel(i18n.t("Short name"));
shortNameField.setName(SHORTNAME_FIELD);
shortNameField.setWidth(175);
@@ -241,17 +242,18 @@
form.add(shortNameField);
longNameField = new TextField();
+ longNameField.setTabIndex(2);
longNameField.setFieldLabel(i18n.t("Long name"));
longNameField.setName(LONGNAME_FIELD);
longNameField.setWidth(BIG_FIELD_WIDTH);
longNameField.setAllowBlank(false);
-
longNameField.setMinLength(3);
longNameField.setMaxLength(50);
longNameField.setValidationDelay(1000);
form.add(longNameField);
publicDescField = new TextArea();
+ publicDescField.setTabIndex(3);
publicDescField.setFieldLabel(i18n.t("Public description"));
publicDescField.setName(PUBLICDESC_FIELD);
publicDescField.setWidth(BIG_FIELD_WIDTH);
@@ -262,6 +264,7 @@
form.add(publicDescField);
tags = new TextField();
+ tags.setTabIndex(4);
tags.setFieldLabel(i18n.t("Group tags"));
tags.setName(TAGS_FIELD);
tags.setWidth(BIG_FIELD_WIDTH);
@@ -278,6 +281,7 @@
form.add(groupTypeFieldSet);
projectRadio = new Radio();
+ projectRadio.setTabIndex(5);
createRadio(groupTypeFieldSet, projectRadio, "Project",
"A project is a kind of group in which new members inclusion "
+ "is moderated by the project administrators. "
@@ -286,10 +290,12 @@
projectRadio.setChecked(true);
orgRadio = new Radio();
+ orgRadio.setTabIndex(6);
createRadio(groupTypeFieldSet, orgRadio, "Organization", "An organization is like a project, "
+ "but organizations must be a legal entity.", ORG_GROUP_TYPE_ID);
communityRadio = new Radio();
+ communityRadio.setTabIndex(7);
createRadio(groupTypeFieldSet, communityRadio, "Community", "Communities are social group of persons "
+ "with shared interests and they are open to new members "
+ "(for instance the environmental community or the LGBT community). "
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -65,6 +65,7 @@
super.addStyleName("kune-Margin-Large-l");
shortNameRegField = new TextField();
+ shortNameRegField.setTabIndex(1);
shortNameRegField.setFieldLabel(i18n.t("Nickname"));
shortNameRegField.setName(NICK_FIELD);
shortNameRegField.setWidth(DEF_SMALL_FIELD_WIDTH);
@@ -79,6 +80,7 @@
add(shortNameRegField);
longNameRegField = new TextField();
+ longNameRegField.setTabIndex(2);
longNameRegField.setFieldLabel(i18n.t("Full Name"));
longNameRegField.setName(LONGNAME_FIELD);
longNameRegField.setWidth(DEF_FIELD_WIDTH);
@@ -90,6 +92,7 @@
add(longNameRegField);
passwdRegField = new TextField();
+ passwdRegField.setTabIndex(3);
passwdRegField.setFieldLabel(i18n.t("Password"));
passwdRegField.setName(PASSWORD_FIELD);
passwdRegField.setPassword(true);
@@ -101,6 +104,7 @@
add(passwdRegField);
passwdRegFieldDup = new TextField();
+ passwdRegFieldDup.setTabIndex(4);
passwdRegFieldDup.setFieldLabel(i18n.t("Retype password"));
passwdRegFieldDup.setName(PASSWORD_FIELD_DUP);
passwdRegFieldDup.setPassword(true);
@@ -119,6 +123,7 @@
add(passwdRegFieldDup);
emailRegField = new TextField();
+ emailRegField.setTabIndex(5);
emailRegField.setFieldLabel(i18n.t("Email"));
emailRegField.setName(EMAIL_FIELD);
emailRegField.setVtype(VType.EMAIL);
@@ -132,6 +137,7 @@
langStore.load();
languageCombo = new ComboBox();
+ languageCombo.setTabIndex(6);
languageCombo.setLazyRender(true);
languageCombo.setName(LANG_FIELD);
languageCombo.setMinChars(1);
@@ -159,6 +165,7 @@
countryStore.load();
countryCombo = new ComboBox();
+ countryCombo.setTabIndex(7);
countryCombo.setLazyRender(true);
countryCombo.setName(COUNTRY_FIELD);
countryCombo.setMinChars(1);
@@ -185,6 +192,7 @@
timezoneStore.load();
timezoneCombo = new ComboBox();
+ timezoneCombo.setTabIndex(8);
timezoneCombo.setLazyRender(true);
timezoneCombo.setName(TIMEZONE_FIELD);
timezoneCombo.setMinChars(1);
@@ -210,7 +218,9 @@
final FieldSet personalSpaceFieldSet = new FieldSet(i18n.t("Do you want a personal homepage?"));
personalSpaceFieldSet.setWidth(DEF_FIELD_WIDTH + DEF_FIELD_LABEL_WITH);
wantPersonalHomePage = new Radio();
+ wantPersonalHomePage.setTabIndex(9);
noPersonalHomePage = new Radio();
+ noPersonalHomePage.setTabIndex(10);
personalSpaceFieldSet.setCollapsible(false);
createRadio(personalSpaceFieldSet, wantPersonalHomePage,
i18n.t("Yes, I want a homepage for publish my contents."), WANNAPERSONALHOMEPAGE_ID);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -39,7 +39,7 @@
public void onEvent() {
presenter.onCancel();
}
- }, images, ERRMSG);
+ }, images, ERRMSG, 11);
Panel panel = new Panel();
panel.setBorder(false);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -22,18 +22,20 @@
public SignInAbstractPanel(I18nUITranslationService i18n, String title, boolean modal, boolean autoscroll,
int width, int heigth, String icon, String firstButtonTitle, String cancelButtonTitle,
- Listener0 onFirstButtonClick, Listener0 onCancelButtonClick, Images images, String errorLabelId) {
+ Listener0 onFirstButtonClick, Listener0 onCancelButtonClick, Images images, String errorLabelId,
+ int tabIndexStart) {
this(i18n, title, modal, autoscroll, width, heigth, icon, firstButtonTitle, Ext.generateId(),
- cancelButtonTitle, Ext.generateId(), onFirstButtonClick, onCancelButtonClick, images, errorLabelId);
+ cancelButtonTitle, Ext.generateId(), onFirstButtonClick, onCancelButtonClick, images, errorLabelId,
+ tabIndexStart);
}
public SignInAbstractPanel(I18nUITranslationService i18n, final String title, final boolean modal,
final boolean autoscroll, final int width, final int heigth, final String icon,
final String firstButtonTitle, final String firstButtonId, final String cancelButtonTitle,
final String cancelButtonId, final Listener0 onFirstButtonClick, final Listener0 onCancelButtonClick,
- Images images, String errorLabelId) {
+ Images images, String errorLabelId, int tabIndexStart) {
super(title, modal, autoscroll, width, heigth, icon, firstButtonTitle, firstButtonId, cancelButtonTitle,
- cancelButtonId, onFirstButtonClick, onCancelButtonClick);
+ cancelButtonId, onFirstButtonClick, onCancelButtonClick, tabIndexStart);
this.i18n = i18n;
messageErrorBar = new MessageToolbar(images, errorLabelId);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInForm.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInForm.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -21,7 +21,10 @@
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.ui.dialogs.DefaultForm;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.widgets.form.Field;
import com.gwtext.client.widgets.form.TextField;
+import com.gwtext.client.widgets.form.event.FieldListenerAdapter;
public class SignInForm extends DefaultForm {
public static final String NICKOREMAIL_FIELD = "kune-sif-nkf";
@@ -30,7 +33,7 @@
private final TextField loginNickOrEmailField;
private final TextField loginPassField;
- public SignInForm(final I18nTranslationService i18n) {
+ public SignInForm(final SignInPresenter presenter, final I18nTranslationService i18n) {
super.addStyleName("kune-Margin-Large-trbl");
loginNickOrEmailField = new TextField();
@@ -40,6 +43,7 @@
loginNickOrEmailField.setAllowBlank(false);
loginNickOrEmailField.setValidationEvent(false);
loginNickOrEmailField.setId(NICKOREMAIL_FIELD);
+ loginNickOrEmailField.setTabIndex(1);
super.add(loginNickOrEmailField);
loginPassField = new TextField();
@@ -50,6 +54,16 @@
loginPassField.setAllowBlank(false);
loginPassField.setValidationEvent(false);
loginPassField.setId(PASSWORD_FIELD);
+ loginPassField.setTabIndex(2);
+ loginPassField.addListener(new FieldListenerAdapter() {
+ @Override
+ public void onSpecialKey(final Field field, final EventObject e) {
+ if (e.getKey() == 13) {
+ presenter.onFormSignIn();
+ }
+ }
+ });
+
super.add(loginPassField);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -37,7 +37,7 @@
public void onEvent() {
presenter.onCancel();
}
- }, images, ERROR_MSG);
+ }, images, ERROR_MSG, 3);
this.presenter = presenter;
super.addListener(new WindowListenerAdapter() {
@@ -49,13 +49,17 @@
Panel panel = new Panel();
panel.setBorder(false);
- signInForm = new SignInForm(i18n);
+ signInForm = new SignInForm(presenter, i18n);
signInForm.setWidth(310);
panel.add(signInForm.getForm());
panel.add(createNoAccountRegister());
add(panel);
}
+ public void focusOnNickname() {
+ signInForm.focusLogin();
+ }
+
public String getLoginPassword() {
return signInForm.getLoginPassword();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -39,6 +39,7 @@
view.show();
view.center();
Site.hideProgress();
+ view.focusOnNickname();
} else {
stateManager.gotoToken(previousStateToken);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInView.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInView.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -6,6 +6,8 @@
void center();
+ void focusOnNickname();
+
String getLoginPassword();
String getNickOrEmail();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/SiteToastMessagePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/SiteToastMessagePanel.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/SiteToastMessagePanel.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -6,14 +6,11 @@
public class SiteToastMessagePanel implements SiteToastMessageView {
- public static final String MESSAGE = "k-stmess-m";
-
public SiteToastMessagePanel() {
}
public void showMessage(String title, String message, SiteErrorType type) {
ToastWindow toastWindow = new ToastWindow(title, message);
- toastWindow.setId(MESSAGE);
String iconCls = "";
switch (type) {
case info:
Added: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -0,0 +1,30 @@
+package org.ourproject.kune.platf.integration.selenium;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.junit.Test;
+import org.ourproject.kune.workspace.client.entitylogo.EntityLogoPanel;
+import org.ourproject.kune.workspace.client.entitylogo.EntityLogoSelectorPanel;
+import org.ourproject.kune.workspace.client.entitylogo.EntityLogoView;
+
+public class EntityLogoSeleniumTest extends KuneSeleniumTestHelper {
+
+ @Test
+ public void testEntityLogoUpload() throws Exception {
+ setMustStopFinally(false);
+ openDefPage();
+ signIn();
+ setLogo("kune-logo-400px.png");
+ setLogo("kune-logo-without-text.png");
+ }
+
+ private void setLogo(String filename) throws Exception, IOException {
+ click(gid(EntityLogoPanel.PUT_YOUR_LOGO_LINK));
+ waitForTextInside(EntityLogoSelectorPanel.DIALOG_ID, EntityLogoSelectorPanel.TITLE);
+ File dir = new File(".");
+ type(EntityLogoView.LOGO_FORM_FIELD, dir.getCanonicalPath() + File.separator + "img" + File.separator
+ + filename);
+ click(EntityLogoSelectorPanel.SUBID);
+ }
+}
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -1,6 +1,7 @@
package org.ourproject.kune.platf.integration.selenium;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import org.junit.Test;
import org.ourproject.kune.platf.client.dto.GroupType;
@@ -8,7 +9,6 @@
import org.ourproject.kune.workspace.client.newgroup.NewGroupPanel;
import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
import org.ourproject.kune.workspace.client.site.SiteToken;
-import org.ourproject.kune.workspace.client.site.msg.SiteToastMessagePanel;
public class NewGroupSeleniumTest extends KuneSeleniumTestHelper {
@@ -24,9 +24,12 @@
@Test
public void newGroupNotLogged() throws Exception {
+ openDefPage();
assertFalse(selenium.isTextPresent(NewGroupPanel.NEWGROUP_WIZARD));
+ assertFalse(selenium.isTextPresent(NewGroupPresenter.REGISTER_TO_CREATE_A_GROUP));
open(SiteToken.newgroup);
- waitForTextInside(SiteToastMessagePanel.MESSAGE, NewGroupPresenter.REGISTER_TO_CREATE_A_GROUP);
+ wait(1000);
+ assertTrue(selenium.isTextPresent(NewGroupPresenter.REGISTER_TO_CREATE_A_GROUP));
}
@Test
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -8,10 +8,12 @@
import org.ourproject.kune.workspace.client.nohomepage.NoHomePagePanel;
import org.ourproject.kune.workspace.client.signin.RegisterPanel;
import org.ourproject.kune.workspace.client.signin.RegisterPresenter;
+import org.ourproject.kune.workspace.client.signin.SignInForm;
import org.ourproject.kune.workspace.client.signin.SignInPanel;
import org.ourproject.kune.workspace.client.signin.SignInPresenter;
import org.ourproject.kune.workspace.client.site.Site;
import org.ourproject.kune.workspace.client.site.SiteToken;
+import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignInLinkPanel;
import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserMenuPanel;
import org.ourproject.kune.workspace.client.title.EntityTitlePanel;
@@ -63,6 +65,20 @@
}
@Test
+ public void testFocusOnNickAndSignInWithIntro() throws Exception {
+ openDefPage();
+ click(gid(SiteSignInLinkPanel.SITE_SIGN_IN));
+ selenium.keyPress(SignInForm.NICKOREMAIL_FIELD, "\\97");
+ selenium.keyPress(SignInForm.NICKOREMAIL_FIELD, "\\100");
+ selenium.keyPress(SignInForm.NICKOREMAIL_FIELD, "\\109");
+ selenium.keyPress(SignInForm.NICKOREMAIL_FIELD, "\\105");
+ selenium.keyPress(SignInForm.NICKOREMAIL_FIELD, "\\110");
+ type(SignInForm.PASSWORD_FIELD, "easyeasy");
+ selenium.keyPress(SignInForm.PASSWORD_FIELD, "\\13");
+ verifyLoggedUserShorName("admin");
+ }
+
+ @Test
public void testRegisterToken() throws Exception {
open(SiteToken.register);
assertFalse(selenium.isTextPresent(RegisterPanel.REGISTER_TITLE));
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManagerTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManagerTest.java 2008-10-29 14:25:29 UTC (rev 935)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManagerTest.java 2008-10-30 01:18:32 UTC (rev 936)
@@ -1,6 +1,5 @@
package org.ourproject.kune.platf.server.manager.file;
-import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.File;
@@ -8,6 +7,7 @@
import net.sf.json.JSONObject;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.ourproject.kune.platf.client.dto.StateContainerDTO;
import org.ourproject.kune.platf.client.errors.SessionExpiredException;
@@ -36,11 +36,12 @@
assertTrue(defaultContent.getGroup().hasLogo());
}
- @Test
+ @Ignore
public void testErrorResponse() {
JSONObject expected = JSONObject.fromObject("{\"success\":false,\"errors\":[{\"id\":\""
+ EntityLogoView.LOGO_FORM_FIELD + "\",\"msg\":\"Some message\"}]}");
- assertEquals(expected, manager.createJsonResponse(false, "Some message"));
+ // assertEquals(expected, manager.createJsonResponse(false,
+ // "Some message"));
}
@Test(expected = SessionExpiredException.class)
@@ -48,10 +49,10 @@
manager.createUploadedFile("otherhash", null, null, null);
}
- @Test
+ @Ignore
public void testSuccessResponse() {
JSONObject expected = JSONObject.fromObject("{\"success\":true,\"errors\":[{}]}");
- assertEquals(expected, manager.createJsonResponse(true, null));
+ // assertEquals(expected, manager.createJsonResponse(true, null));
}
@Test(expected = UserMustBeLoggedException.class)
1
0
Author: vjrj
Date: 2008-10-29 15:25:29 +0100 (Wed, 29 Oct 2008)
New Revision: 935
Added:
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-af.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-bg.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ca.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-cs.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-da.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-de.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-el_GR.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-en.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-en_UK.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-es.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fa.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fr.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fr_CA.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-gr.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-he.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-hr.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-hu.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-id.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-it.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ja.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ko.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-lt.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-lv.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-mk.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-nl.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-no_NB.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-no_NN.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pl.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pt.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pt_BR.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ro.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ru.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sk.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sl.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sr.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sr_RS.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sv_SE.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-th.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-tr.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ukr.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-vn.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-zh_CN.js
trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-zh_TW.js
Modified:
trunk/
trunk/debian/TODO
trunk/img/
trunk/src/main/java/org/ourproject/kune/app/public/Kune.html
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
trunk/src/main/java/org/ourproject/kune/platf/server/access/FinderServiceDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/access/FinderTest.java
Log:
Complete - task I18n in ext
Complete - task NPE in Content.accessLists
Complete - task NPE finding a non existent content
Incomplete - task New Group dialog refactorization
Added captures to selenium tests
Property changes on: trunk
___________________________________________________________________
Name: svn:ignore
- bin
client
public
target
Main-compile
bin
.settings
.gwt-cache
repository
derby.log
star-yellow-grey.png
run.sh
tomcat
.classpath
gwt-out
synccss.sh
.externalToolBuilders
.project
.wtpmodules
www
testRepository
kune-OLD-jcr
KuneApp.launch
KuneApp NOSERVER.launch
old_src
org.ourproject.kune.app.Kune
org.ourproject.kune.iml
org.ourproject.kune.ipr
org.ourproject.kune.iws
nbproject
hibernate.reveng.xml
.gwt-tmp
target-eclipse
.checkstyle
+ screenlog.0
bin
client
public
target
Main-compile
bin
.settings
.gwt-cache
repository
derby.log
star-yellow-grey.png
run.sh
tomcat
.classpath
gwt-out
synccss.sh
.externalToolBuilders
.project
.wtpmodules
www
testRepository
kune-OLD-jcr
KuneApp.launch
KuneApp NOSERVER.launch
old_src
org.ourproject.kune.app.Kune
org.ourproject.kune.iml
org.ourproject.kune.ipr
org.ourproject.kune.iws
nbproject
hibernate.reveng.xml
.gwt-tmp
target-eclipse
.checkstyle
Modified: trunk/debian/TODO
===================================================================
--- trunk/debian/TODO 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/debian/TODO 2008-10-29 14:25:29 UTC (rev 935)
@@ -2,3 +2,5 @@
- create /var/lib/kune/uploads and give permissions
- create /var/lib/kune/lucene
- deps: libjmagick6-jni
+- cp -a $EXTSRC/source/locale/ src/main/java/org/ourproject/kune/app/public/js/ext/source/
+
Property changes on: trunk/img
___________________________________________________________________
Name: svn:ignore
- .dolphinview
+ .dolphinview
captures
Modified: trunk/src/main/java/org/ourproject/kune/app/public/Kune.html
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/Kune.html 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/Kune.html 2008-10-29 14:25:29 UTC (rev 935)
@@ -54,6 +54,20 @@
<body>
<script type="text/javascript" language="javascript"
src="org.ourproject.kune.app.Kune.nocache.js"></script>
+<script type="text/javascript" id="extlocale"></script>
+<script type="text/javascript">
+
+ // decode language passed in url
+ var locale = window.location.search
+ ? Ext.urlDecode(window.location.search.substring(1)).locale
+ : ''
+ ;
+ // append locale script to the head
+ var head = Ext.fly(document.getElementsByTagName('head')[0]);
+ if(locale) {
+ Ext.fly('extlocale').set({src:'js/ext/source/locale/ext-lang-' + locale + '.js'});
+ }
+</script>
<iframe id="__gwt_historyFrame" style="width: 0; height: 0; border: 0"></iframe>
<iframe src="" id="__download" style="width:0;height:0;border:0"></iframe>
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-10-29 14:25:29 UTC (rev 935)
@@ -35,4 +35,4 @@
}
*/.kune-NavigationBar .topBar .gwt-Image{margin:0 2px 0 5px;}.kune-NavigationBar .Items{margin:2px 0;}.kune-NavigationBar .Items .gwt-Image{margin:2px 0;vertical-align:middle;}.kune-NavigationBar .Items .gwt-Hyperlink a{color:green;/* FIXME: other color */}.kune-NavigationBar .topBar .topBar-margin{margin-left:5px;}.kune-NavigationBar .pathMenu{vertical-align:middle;}.kune-NavigationBar .pathMenu .gwt-MenuItem{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;white-space:nowrap;padding:3px 6px;}.kune-NavigationBar .pathMenu .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#000;}.kune-NavigationBar .kune-IconHyperlink{vertical-align:middle;margin-left:5px;}.kune-NavigationBar .kune-IconHyperlink a{color:green;text-decoration:none;}.kune-NavigationBar .kune-IconHyperlink .gwt-Image{margin-right:3px;vertical-align:middle;}/* Social Network */.kune-StackedDropDownPanel{}.kune-StackedDropDownPanel .gwt-StackPanelItem{border-top:1px solid #CCC;border-bottom:1px solid #CCC;background-color:#EFA;cursor:pointer;padding:1px 3px 0 6px;overflow:hidden;}.kune-StackedDropDownPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-StackedDropDownPanel .kune-DropDownInner table{width:100%;}.kune-StackedDropDownPanel .gwt-StackPanelItem-selected{}.kune-StackedDropDownPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-StackedDropDownPanel .kune-DropDownInner{padding:0;}/* StackedDropDownPanel Members */.kune-StackSubItemLabel{overflow:hidden;}.kune-StackSubItemLabel .gwt-MenuItem{white-space:nowrap;cursor:pointer;border-bottom:1px solid #F2F2F2;}.kune-StackSubItemLabel table{width:100%;}.kune-StackSubItemLabel .gwt-MenuItem img{vertical-align:middle;margin-top:1px;margin-bottom:1px;margin-left:5px;margin-right:3px;}.kune-StackSubItemLabel .gwt-MenuItem-selected{background-color:#FFE6D5;}.kune-StackSubItemActions{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;margin-left:-120px;margin-top:-2px;}.kune-StackSubItemActions .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.kune-StackSubItemActions .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.kune-StackSubItemActions .gwt-MenuItem-selected{background-color:#FFB958;}/* AccessList */.kune-AccessListSubLabel{font-style:italic;}.kune-AccessList{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel-open{width:100%;}.kune-AccessList .gwt-DisclosurePanel-closed{width:100%;}.kune-AccessList .header{margin:0 0 3px;text-decoration:none;width:100%;background-color:#8DD35F;}.kune-AccessList .header table{margin:0 5px 0 0;width:100%;color:#FFF;}.kune-AccessList .header img{margin:0 3px 0 0;}.kune-AccessList .content{margin:0 0 0 7px;width:100%;}.kune-AccessList .content table{margin-bottom:5px;width:100%;}/* Rate */.kune-RatePanel-Label{white-space:nowrap;vertical-align:middle;}.kune-RatePanel-Stars{margin-left:5px;vertical-align:middle;}.kune-RatePanel-Stars-RateIt{cursor:pointer;}/* Licenses */.kune-License-CC-Header{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}.kune-License-CC-Header .gwt-Label{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}/* Theme */.kune-IconBottomPanel .gwt-MenuItem{cursor:pointer;background-color:#FFF;margin:2px 2px 2px 5px;}.kune-IconBottomPanel .gwt-MenuItem-selected{background-color:#F2F2F2;}.gwt-MenuBar-bottomMenu{margin-left:-60px;margin-top:-120px;}/* i18n */.kune-I18nTranslatorCell{white-space:normal;}.kune-i18nTranslator-recommend{margin:10px;}.kune-i18nTranslator-recommend h1{font-size:131%;font-weight:700;}.kune-i18nTranslator-recommend h2{font-size:116%;font-weight:700;}.kune-i18nTranslator-recommend h3{font-size:108%;font-weight:700;font-style:italic;}.kune-i18nTranslator-recommend em{font-weight:700;}.kune-i18nTranslator-recommend strong{font-weight:700;}/* Admin Context */.kune-AdminContextPanel{margin:6px;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem{background:transparent url(img/arrow-right-white.gif) no-repeat scroll 3px 2px;cursor:pointer;padding:3px 10px 1px 20px;overflow:hidden;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-AdminContextPanel .gwt-StackPanelItem-selected{background:transparent url(img/arrow-down-white.gif) no-repeat scroll 3px 2px;background-color:#DEE3DB;}.kune-AdminContextPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-AdminContextPanel-inner{background-color:#FFF;}.kune-AdminContextPanel-inner-wrap{margin:5px;}.kune-EditableLabel{}.kune-EditableLabel .kune-EditableLabel-editable{}.kune-EditableLabel-high{background-color:#FFFBC1;cursor:pointer;}.kune-EditableLabel-high span{background-color:#FFFBC1;}.kune-EditableLabel a{margin-left:5px;}.kune-EditableLabel a:link{color:green;}.kune-EditableLabel a:hover{text-decoration:underline;}.kune-EditableLabel a:visited{color:olive;}.kune-EditableLabel img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable span{margin:3px;}.kune-EditableLabel span{margin:3px;}.kune-BottomIconsTrayPanel{width:165px;height:21px;vertical-align:middle;background-color:#EFEFEF;}.kune-TagsPanel-tag{float:left;margin-right:5px;cursor:pointer;}.kune-Content-Main{margin:5px;}/* Yahoo ui base.css */.kune-Content-Main h1{font-size:138.5%;}.kune-Content-Main h2{font-size:123.099998%;}.kune-Content-Main h3{font-size:108%;}.kune-Content-Main h1{margin:1em 0;}.kune-Content-Main h2{margin:1em 0;}.kune-Content-Main h3{margin:1em 0;}.kune-Content-Main h1{font-weight:700;}.kune-Content-Main h2{font-weight:700;}.kune-Content-Main h3{font-weight:700;}.kune-Content-Main h4{font-weight:700;}.kune-Content-Main h5{font-weight:700;}.kune-Content-Main h6{font-weight:700;}.kune-Content-Main strong{font-weight:700;}.kune-Content-Main abbr{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main acronym{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main em{font-style:italic;}.kune-Content-Main blockquote{margin:1em;}.kune-Content-Main ul{margin:1em;}.kune-Content-Main ol{margin:1em;}.kune-Content-Main dl{margin:1em;}.kune-Content-Main ol{margin-left:2em;}.kune-Content-Main ul{margin-left:2em;}.kune-Content-Main dl{margin-left:2em;}.kune-Content-Main ol{list-style:decimal outside;}.kune-Content-Main li{list-style:decimal outside;}.kune-Content-Main li{list-style:disc outside;}.kune-Content-Main ul{list-style:disc outside;}.kune-Content-Main dl{margin-left:1em;}.kune-Content-Main dd{margin-left:1em;}.kune-Content-Main th{border:1px solid #000;padding:.5em;font-weight:700;text-align:center;}.kune-Content-Main td{border:1px solid #000;padding:.5em;}.kune-Content-Main caption{margin-bottom:.5em;text-align:center;}.kune-Content-Main p{margin-bottom:1em;}.kune-Content-Main fieldset{margin-bottom:1em;}.kune-Content-Main table{margin-bottom:1em;}.kune-Content-Main pre{margin-bottom:1em;}.kune-Content-Main input[type=text]{width:12.25em;width:11.9em;}.kune-Content-Main input[type=password]{width:12.25em;width:11.9em;}.kune-Content-Main textarea{width:12.25em;width:11.9em;}.search-icon{background-image:url(img/search.gif)!important;}.i18n-icon{background-image:url(img/language.gif)!important;}/* RTE Text editor */.kune-TexEditorPanel-TextArea{margin:3px;}.gwt-RichTextArea{/* border: 1px solid #000;
background-color: #FFF; */border:1px solid #4D4D4D;background-color:#FFF;margin:5px 0 5px 10px;}.gwt-RichTextToolbar{/* background-color: #F2F2F2;
- padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-down-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-entitytextlogo .gwt-Hyperlink a{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entitylicensepanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-bottom div{line-height:2em;color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others */.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}
\ No newline at end of file
+ padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-down-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entitylicensepanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-bottom div{line-height:2em;color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others */.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-10-29 14:25:29 UTC (rev 935)
@@ -129,7 +129,7 @@
color: #800000;
}
-.k-entitytextlogo .gwt-Hyperlink a {
+.k-elogo-plink {
color: #CCC;
font-size: 85%;
margin: 5px;
@@ -142,8 +142,7 @@
background-color: transparent;
}
-.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed
- {
+.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed {
background: #DD8A3D none repeat scroll 0% 50%;
}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-af.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-af.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-af.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,179 @@
+/*
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * Afrikaans Translations
+ * by Thys Meintjes (20 July 2007)
+ */
+
+/* Ext Core translations */
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Besig om te laai...</div>';
+
+/* Ext single string translations */
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} geselekteerde ry(e)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Maak die oortjie toe";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Die waarde in hierdie veld is foutief";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Besig om te laai...";
+}
+
+/* Javascript month and days translations */
+Date.monthNames = [
+ "Januarie",
+ "Februarie",
+ "Maart",
+ "April",
+ "Mei",
+ "Junie",
+ "Julie",
+ "Augustus",
+ "September",
+ "Oktober",
+ "November",
+ "Desember"
+];
+
+Date.dayNames = [
+ "Sondag",
+ "Maandag",
+ "Dinsdag",
+ "Woensdag",
+ "Donderdag",
+ "Vrydag",
+ "Saterdag"
+];
+
+/* Ext components translations */
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Kanselleer",
+ yes : "Ja",
+ no : "Nee"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d-m-y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Vandag",
+ minText : "Hierdie datum is vroër as die minimum datum",
+ maxText : "Hierdie dataum is later as die maximum datum",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Volgende Maand (Beheer+Regs)',
+ prevText : 'Vorige Maand (Beheer+Links)',
+ monthYearText : "Kies 'n maand (Beheer+Op/Af volgende/vorige jaar)",
+ todayTip : "{0} (Spasie)",
+ format : "d-m-y",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Bladsy",
+ afterPageText : "van {0}",
+ firstText : "Eerste Bladsy",
+ prevText : "Vorige Bladsy",
+ nextText : "Volgende Bladsy",
+ lastText : "Laatste Bladsy",
+ refreshText : "Verfris",
+ displayMsg : "Wys {0} - {1} van {2}",
+ emptyMsg : 'Geen data om te wys nie'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Die minimum lengte van die veld is {0}",
+ maxLengthText : "Die maximum lengte van die veld is {0}",
+ blankText : "Die veld is verpligtend",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Die minimum waarde vir die veld is {0}",
+ maxText : "Die maximum waarde vir die veld is {0}",
+ nanText : "{0} is nie 'n geldige waarde nie"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Afgeskakel",
+ disabledDatesText : "Afgeskakel",
+ minText : "Die datum in hierdie veld moet na {0} wees",
+ maxText : "Die datum in hierdie veld moet voor {0} wees",
+ invalidText : "{0} is nie 'n geldige datum nie - datumformaat is {1}",
+ format : "d/m/y",
+ altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Besig om te laai...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : "Hierdie veld moet 'n e-pos adres wees met die formaat 'gebruiker(a)domein.za'",
+ urlText : "Hierdie veld moet 'n URL wees me die formaat 'http:/'+'/www.domein.za'",
+ alphaText : 'Die veld mag alleenlik letters en _ bevat',
+ alphanumText : 'Die veld mag alleenlik letters, syfers en _ bevat'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sorteer Oplopend",
+ sortDescText : "Sorteer Aflopend",
+ lockText : "Vries Kolom",
+ unlockText : "Ontvries Kolom",
+ columnsText : "Kolomme"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Naam",
+ valueText : "Waarde",
+ dateFormat : "Y-m-j"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Trek om grootte aan te pas.",
+ collapsibleSplitTip : "Trek om grootte aan te pas. Dubbel-klik om weg te steek."
+ });
+}
+
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-bg.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-bg.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-bg.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,272 @@
+/**
+ * Bulgarian Translation
+ *
+ * By Георги Костадинов, Калгари, Канада
+ * 10 October 2007
+ * By Nedko Penev
+ * 26 October 2007
+ *
+ * (utf-8 encoding)
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Зареждане...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} избрани колони";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Затвори таб";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Невалидна стойност на полето";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Зареждане...";
+}
+
+Date.monthNames = [
+ "Януари",
+ "Февруари",
+ "Март",
+ "Април",
+ "Май",
+ "Юни",
+ "Юли",
+ "Август",
+ "Септември",
+ "Октомври",
+ "Ноември",
+ "Декември"
+];
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.dayNames = [
+ "Неделя",
+ "Понеделник",
+ "Вторник",
+ "Сряда",
+ "Четвъртък",
+ "Петък",
+ "Събота"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Отмени",
+ yes : "Да",
+ no : "Не"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Днес",
+ minText : "Тази дата е преди минималната",
+ maxText : "Тази дата е след максималната",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Следващ месец (Control+Right)',
+ prevText : 'Предишен месец (Control+Left)',
+ monthYearText : 'Избери месец (Control+Up/Down за преместване по години)',
+ todayTip : "{0} (Spacebar)",
+ format : "d.m.y",
+ okText : " OK ",
+ cancelText : "Отмени",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Страница",
+ afterPageText : "от {0}",
+ firstText : "Първа страница",
+ prevText : "Предишна страница",
+ nextText : "Следваща страница",
+ lastText : "Последна страница",
+ refreshText : "Презареди",
+ displayMsg : "Показвайки {0} - {1} от {2}",
+ emptyMsg : 'Няма данни за показване'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Минималната дължина на това поле е {0}",
+ maxLengthText : "Максималната дължина на това поле е {0}",
+ blankText : "Това поле е задължително",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Минималната стойност за това поле е {0}",
+ maxText : "Максималната стойност за това поле е {0}",
+ nanText : "{0} не е валидно число"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Недостъпен",
+ disabledDatesText : "Недостъпен",
+ minText : "Датата в това поле трябва да е след {0}",
+ maxText : "Датата в това поле трябва да е преди {0}",
+ invalidText : "{0} не е валидна дата - трябва да бъде във формат {1}",
+ format : "d.m.y",
+ altFormats : "d.m.y|d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Зареждане...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Това поле трябва да бъде емейл във формат "user(a)domain.com"',
+ urlText : 'Това поле трябва да бъде URL във формат "http:/'+'/www.domain.com"',
+ alphaText : 'Това поле трябва да съдържа само букви и _',
+ alphanumText : 'Това поле трябва да съдържа само букви, цифри и _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Моля, въведете URL за връзката:',
+ buttonTips : {
+ bold : {
+ title: 'Bold (Ctrl+B)',
+ text: 'Удебелява избрания текст.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Italic (Ctrl+I)',
+ text: 'Прави избрания текст курсив.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Underline (Ctrl+U)',
+ text: 'Подчертава избрания текст.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Уголеми текста',
+ text: 'Уголемява размера на шрифта.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Намали текста',
+ text: 'Намалява размера на шрифта.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Цвят на маркирания текст',
+ text: 'Променя фоновия цвят на избрания текст.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Цвят на шрифта',
+ text: 'Променя цвета на избрания текст.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Ляво подравняване',
+ text: 'Подравнява текста на ляво.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Центриране',
+ text: 'Центрира текста.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Дясно подравняване',
+ text: 'Подравнява текста на дясно.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Неномериран списък',
+ text: 'Започва неномериран списък.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Номериран списък',
+ text: 'Започва номериран списък.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Хипервръзка',
+ text: 'Превръща избрания текст в хипервръзка.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Редактиране на кода',
+ text: 'Преминаване в режим на редактиране на кода.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Подреди в нарастващ ред",
+ sortDescText : "Подреди в намаляващ ред",
+ lockText : "Заключи колона",
+ unlockText : "Отключи колона",
+ columnsText : "Колони"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Име",
+ valueText : "Стойност",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Влачете с мишката за да промените размера.",
+ collapsibleSplitTip : "Влачете с мишката за да промените размера. Чукнете два пъти за да скриете."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ca.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ca.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ca.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,286 @@
+/**
+ * Catalonian Translation by halkon_polako 6-12-2007
+ * December correction halkon_polako 11-12-2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Carregant...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} fila(es) seleccionada(es)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Tancar aquesta pestanya";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "El valor d'aquest camp és invàlid";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Carregant...";
+}
+
+Date.monthNames = [
+ "Gener",
+ "Febrer",
+ "Març",
+ "Abril",
+ "Maig",
+ "Juny",
+ "Juliol",
+ "Agost",
+ "Setembre",
+ "Octubre",
+ "Novembre",
+ "Desembre"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Gen : 0,
+ Feb : 1,
+ Mar : 2,
+ Abr : 3,
+ Mai : 4,
+ Jun : 5,
+ Jul : 6,
+ Ago : 7,
+ Set : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Diumenge",
+ "Dilluns",
+ "Dimarts",
+ "Dimecres",
+ "Dijous",
+ "Divendres",
+ "Dissabte"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "Acceptar",
+ cancel : "Cancel·lar",
+ yes : "Sí",
+ no : "No"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Avui",
+ minText : "Aquesta data és anterior a la data mínima",
+ maxText : "Aquesta data és posterior a la data màxima",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Mes Següent (Control+Fletxa Dreta)',
+ prevText : 'Mes Anterior (Control+Fletxa Esquerra)',
+ monthYearText : 'Seleccioni un mes (Control+Fletxa a Dalt o Abaix per canviar els anys)',
+ todayTip : "{0} (Barra d'espai)",
+ format : "d/m/Y",
+ okText : " Acceptar ",
+ cancelText : "Cancel·lar",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Pàgina",
+ afterPageText : "de {0}",
+ firstText : "Primera Pàgina",
+ prevText : "Pàgina Anterior",
+ nextText : "Pàgina Següent",
+ lastText : "Darrera Pàgina",
+ refreshText : "Refrescar",
+ displayMsg : "Mostrant {0} - {1} de {2}",
+ emptyMsg : 'Sense dades per mostrar'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "El tamany mínim per aquest camp és {0}",
+ maxLengthText : "El tamany màxim per aquest camp és {0}",
+ blankText : "Aquest camp és obligatori",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "El valor mínim per aquest camp és {0}",
+ maxText : "El valor màxim per aquest camp és {0}",
+ nanText : "{0} no és un nombre vàlid"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Deshabilitat",
+ disabledDatesText : "Deshabilitat",
+ minText : "La data en aquest camp ha de ser posterior a {0}",
+ maxText : "La data en aquest camp ha de ser inferior a {0}",
+ invalidText : "{0} no és una data vàlida - ha de tenir el format {1}",
+ format : "d/m/Y",
+ altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Carregant...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Aquest camp ha de ser una adreça de e-mail amb el format "user(a)domain.com"',
+ urlText : 'Aquest camp ha de ser una URL amb el format "http:/'+'/www.domain.com"',
+ alphaText : 'Aquest camp només pot contenir lletres i _',
+ alphanumText : 'Aquest camp només por contenir lletres, nombres i _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Si us plau, tecleixi la URL per l\'enllaç:',
+ buttonTips : {
+ bold : {
+ title: 'Negreta (Ctrl+B)',
+ text: 'Posa el text seleccionat en negreta.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Itàlica (Ctrl+I)',
+ text: 'Posa el text seleccionat en itàlica.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Subratllat (Ctrl+U)',
+ text: 'Subratlla el text seleccionat.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Augmentar Text',
+ text: 'Augmenta el tamany de la font de text.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Disminuir Text',
+ text: 'Disminueix el tamany de la font de text.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Color de fons',
+ text: 'Canvia el color de fons del text seleccionat.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Color de la font de text',
+ text: 'Canvia el color del text seleccionat.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Alinear a la esquerra',
+ text: 'Alinea el text a la esquerra.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centrar el text',
+ text: 'Centra el text a l\'editor',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Alinear a la dreta',
+ text: 'Alinea el text a la dreta.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Llista amb vinyetes',
+ text: 'Comença una llista amb vinyetes.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Llista numerada',
+ text: 'Comença una llista numerada.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Enllaç',
+ text: 'Transforma el text seleccionat en un enllaç.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Editar Codi',
+ text: 'Canvia al mode d\'edició de codi.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Ordenació Ascendent",
+ sortDescText : "Ordenació Descendent",
+ lockText : "Bloquejar Columna",
+ unlockText : "Desbloquejar Columna",
+ columnsText : "Columnes"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Buit)',
+ groupByText : 'Agrupar Per Aquest Camp',
+ showGroupsText : 'Mostrar en Grups'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nom",
+ valueText : "Valor",
+ dateFormat : "d/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Cliqueu i arrossegueu per canviar el tamany del panell.",
+ collapsibleSplitTip : "Cliqueu i arrossegueu per canviar el tamany del panell. Doble clic per ocultar-ho."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-cs.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-cs.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-cs.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,287 @@
+/**
+ * Czech Translations
+ * Translated by Tomáš Korčák (72)
+ * 2008/02/08 18:02, Ext-2.0.1
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Prosím čekejte...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} vybraných řádků";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Zavřít záložku";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Hodnota v tomto poli je neplatná";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Prosím čekejte...";
+}
+
+Date.monthNames = [
+ "Leden",
+ "Únor",
+ "Březen",
+ "Duben",
+ "Květen",
+ "Červen",
+ "Červenec",
+ "Srpen",
+ "Září",
+ "Říjen",
+ "Listopad",
+ "Prosinec"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Neděle",
+ "Pondělí",
+ "Úterý",
+ "Středa",
+ "Čtvrtek",
+ "Pátek",
+ "Sobota"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Storno",
+ yes : "Ano",
+ no : "Ne"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Dnes",
+ minText : "Datum nesmí být starší než je minimální",
+ maxText : "Datum nesmí být dřívější než je maximální",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Následující měsíc (Control+Right)',
+ prevText : 'Předcházející měsíc (Control+Left)',
+ monthYearText : 'Zvolte měsíc (ke změně let použijte Control+Up/Down)',
+ todayTip : "{0} (Spacebar)",
+ format : "d.m.Y",
+ okText : " OK ",
+ cancelText : "Storno",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Strana",
+ afterPageText : "z {0}",
+ firstText : "První strana",
+ prevText : "Přecházející strana",
+ nextText : "Následující strana",
+ lastText : "Poslední strana",
+ refreshText : "Aktualizovat",
+ displayMsg : "Zobrazeno {0} - {1} z celkových {2}",
+ emptyMsg : 'Žádné záznamy nebyly nalezeny'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Pole nesmí mít méně {0} znaků",
+ maxLengthText : "Pole nesmí být delší než {0} znaků",
+ blankText : "This field is required",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Hodnota v tomto poli nesmí být menší než {0}",
+ maxText : "Hodnota v tomto poli nesmí být větší než {0}",
+ nanText : "{0} není platné číslo"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Neaktivní",
+ disabledDatesText : "Neaktivní",
+ minText : "Datum v tomto poli nesmí být starší než {0}",
+ maxText : "Datum v tomto poli nesmí být novější než {0}",
+ invalidText : "{0} není platným datem - zkontrolujte zda-li je ve formátu {1}",
+ format : "d.m.Y",
+ altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Prosím čekejte...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'V tomto poli může být vyplněna pouze emailová adresa ve formátu "uživatel(a)xn--domna-dsa.cz"',
+ urlText : 'V tomto poli může být vyplněna pouze URL (adresa internetové stránky) ve formátu "http:/'+'/www.doména.cz"',
+ alphaText : 'Toto pole může obsahovat pouze písmena abecedy a znak _',
+ alphanumText : 'Toto pole může obsahovat pouze písmena abecedy, čísla a znak _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Zadejte URL adresu odkazu:',
+ buttonTips : {
+ bold : {
+ title: 'Tučné (Ctrl+B)',
+ text: 'Označí vybraný text tučně.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Kurzíva (Ctrl+I)',
+ text: 'Označí vybraný text kurzívou.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Podtržení (Ctrl+U)',
+ text: 'Podtrhne vybraný text.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Zvětšit písmo',
+ text: 'Zvětší velikost písma.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Zúžit písmo',
+ text: 'Zmenší velikost písma.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Barva zvýraznění textu',
+ text: 'Označí vybraný text tak, aby vypadal jako označený zvýrazňovačem.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Barva písma',
+ text: 'Změní barvu textu.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Zarovnat text vlevo',
+ text: 'Zarovná text doleva.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Zarovnat na střed',
+ text: 'Zarovná text na střed.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Zarovnat text vpravo',
+ text: 'Zarovná text doprava.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Odrážky',
+ text: 'Začne seznam s odrážkami.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Číslování',
+ text: 'Začne číslovaný seznam.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Internetový odkaz',
+ text: 'Z vybraného textu vytvoří internetový odkaz.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Zdrojový kód',
+ text: 'Přepne do módu úpravy zdrojového kódu.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Řadit vzestupně",
+ sortDescText : "Řadit sestupně",
+ lockText : "Ukotvit sloupec",
+ unlockText : "Uvolnit sloupec",
+ columnsText : "Sloupce"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Žádná data)',
+ groupByText : 'Seskupit dle tohoto pole',
+ showGroupsText : 'Zobrazit ve skupině'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Název",
+ valueText : "Hodnota",
+ dateFormat : "j.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Tahem změnit velikost.",
+ collapsibleSplitTip : "Tahem změnit velikost. Dvojklikem skrýt."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-da.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-da.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-da.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,290 @@
+/*
+ * Danish translation
+ * By JohnF
+ * 04-09-2007, 05:28 AM
+ *
+ * Extended and modified by Karl Krukow,
+ * December, 2007.
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Henter...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} markerede rækker";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Luk denne fane";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Værdien i dette felt er ugyldig";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Henter...";
+}
+
+Date.monthNames = [
+ "januar",
+ "februar",
+ "marts",
+ "april",
+ "maj",
+ "juni",
+ "juli",
+ "august",
+ "september",
+ "oktober",
+ "november",
+ "december"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "søndag",
+ "mandag",
+ "tirsdag",
+ "onsdag",
+ "torsdag",
+ "fredag",
+ "lørdag"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Fortryd",
+ yes : "Ja",
+ no : "Nej"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "I dag",
+ minText : "Denne dato er før den tidligst tilladte",
+ maxText : "Denne dato er senere end den senest tilladte",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Næste måned (Ctrl + højre piltast)',
+ prevText : 'Forrige måned (Ctrl + venstre piltast)',
+ monthYearText : 'Vælg en måned (Ctrl + op/ned pil for at ændre årstal)',
+ todayTip : "{0} (mellemrum)",
+ format : "d/m/y",
+ okText : " OK ",
+ cancelText : "Cancel",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Side",
+ afterPageText : "af {0}",
+ firstText : "Første side",
+ prevText : "Forrige side",
+ nextText : "Næste side",
+ lastText : "Sidste side",
+ refreshText : "Opfrisk",
+ displayMsg : "Viser {0} - {1} af {2}",
+ emptyMsg : 'Der er ingen data at vise'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minimum længden for dette felt er {0}",
+ maxLengthText : "Maksimum længden for dette felt er {0}",
+ blankText : "Dette felt skal udfyldes",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Mindste-værdien for dette felt er {0}",
+ maxText : "Maksimum-værdien for dette felt er {0}",
+ nanText : "{0} er ikke et tilladt nummer"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Inaktiveret",
+ disabledDatesText : "Inaktiveret",
+ minText : "Datoen i dette felt skal være efter {0}",
+ maxText : "Datoen i dette felt skal være før {0}",
+ invalidText : "{0} er ikke en tilladt dato - datoer skal angives i formatet {1}",
+ format : "d/m/y",
+ altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Henter...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Dette felt skal være en email adresse i formatet "xxx(a)yyy.zzz"',
+ urlText : 'Dette felt skal være en URL i formatet "http:/'+'/xxx.yyy"',
+ alphaText : 'Dette felt kan kun indeholde bogstaver og "_" (understregning)',
+ alphanumText : 'Dette felt kan kun indeholde bogstaver, tal og "_" (understregning)'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Indtast URL:',
+ buttonTips : {
+ bold : {
+ title: 'Fed (Ctrl+B)', //Can I change this to Ctrl+F?
+ text: 'Formater det markerede tekst med fed.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Kursiv (Ctrl+I)',//Ctrl+K
+ text: 'Formater det markerede tekst med kursiv.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Understreg (Ctrl+U)',
+ text: 'Understreg det markerede tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Forstør tekst',
+ text: 'Forøg fontstørrelsen.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Formindsk tekst',
+ text: 'Formindsk fontstørrelsen.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Farve for tekstfremhævelse',
+ text: 'Skift baggrundsfarve for det markerede tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Skriftfarve',
+ text: 'Skift skriftfarve for det markerede tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Juster venstre',
+ text: 'Venstrestil tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centreret',
+ text: 'Centrer tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Juster højre',
+ text: 'Højrestil tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Punktopstilling',
+ text: 'Påbegynd punktopstilling.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Nummereret opstilling',
+ text: 'Påbegynd nummereret opstilling.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hyperlink',
+ text: 'Lav det markerede test til et hyperlink.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Kildetekstredigering',
+ text: 'Skift til redigering af kildetekst.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sortér stigende",
+ sortDescText : "Sortér faldende",
+ lockText : "Lås kolonne",
+ unlockText : "Fjern lås fra kolonne",
+ columnsText : "Kolonner"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Ingen)',
+ groupByText : 'Gruppér efter dette felt',
+ showGroupsText : 'Vis i grupper' //should this be sort in groups?
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Navn",
+ valueText : "Værdi",
+ dateFormat : "j/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Træk for at ændre størrelsen.",
+ collapsibleSplitTip : "Træk for at ændre størrelsen. Dobbelt-klik for at skjule."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-de.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-de.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-de.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,301 @@
+/*
+ * German translation
+ * By schmidetzki and humpdi
+ * 04-07-2007
+ * Updated by wm003 10-31-2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Übertrage Daten ...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} Zeile(n) ausgewählt";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Diesen Tab schließen";
+}
+
+if(Ext.form.BasicForm){
+ Ext.form.BasicForm.prototype.waitTitle = "Bitte warten...";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Der Wert des Feldes ist nicht korrekt";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Übertrage Daten...";
+}
+
+Date.monthNames = [
+ "Januar",
+ "Februar",
+ "März",
+ "April",
+ "Mai",
+ "Juni",
+ "Juli",
+ "August",
+ "September",
+ "Oktober",
+ "November",
+ "Dezember"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Sonntag",
+ "Montag",
+ "Dienstag",
+ "Mittwoch",
+ "Donnerstag",
+ "Freitag",
+ "Samstag"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Abbrechen",
+ yes : "Ja",
+ no : "Nein"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Heute",
+ minText : "Dieses Datum liegt von dem erstmöglichen Datum",
+ maxText : "Dieses Datum liegt nach dem letztmöglichen Datum",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : "Nächster Monat (Strg/Control + Rechts)",
+ prevText : "Vorheriger Monat (Strg/Control + Links)",
+ monthYearText : "Monat auswählen (Strg/Control + Hoch/Runter, um ein Jahr auszuwählen)",
+ todayTip : "Heute ({0}) (Leertaste)",
+ format : "d.m.Y",
+ okText : " OK ",
+ cancelText : "Abbrechen",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Seite",
+ afterPageText : "von {0}",
+ firstText : "Erste Seite",
+ prevText : "vorherige Seite",
+ nextText : "nächste Seite",
+ lastText : "letzte Seite",
+ refreshText : "Aktualisieren",
+ displayMsg : "Anzeige Eintrag {0} - {1} von {2}",
+ emptyMsg : "Keine Daten vorhanden"
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Bitte geben Sie mindestens {0} Zeichen ein",
+ maxLengthText : "Bitte geben Sie maximal {0} Zeichen ein",
+ blankText : "Dieses Feld darf nicht leer sein",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Der Mindestwert für dieses Feld ist {0}",
+ maxText : "Der Maximalwert für dieses Feld ist {0}",
+ nanText : "{0} ist keine Zahl"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "nicht erlaubt",
+ disabledDatesText : "nicht erlaubt",
+ minText : "Das Datum in diesem Feld muß nach dem {0} liegen",
+ maxText : "Das Datum in diesem Feld muß vor dem {0} liegen",
+ invalidText : "{0} ist kein valides Datum - es muß im Format {1} eingegeben werden",
+ format : "d.m.Y",
+ altFormats : "d.m.Y|d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Lade Daten ...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Dieses Feld sollte eine E-Mail-Adresse enthalten. Format: "user(a)domain.com"',
+ urlText : 'Dieses Feld sollte eine URL enthalten. Format: "http:/'+'/www.domain.com"',
+ alphaText : 'Dieses Feld darf nur Buchstaben enthalten und _',
+ alphanumText : 'Dieses Feld darf nur Buchstaben und Zahlen enthalten und _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Bitte geben Sie die URL für den Link ein:',
+ buttonTips : {
+ bold : {
+ title: 'Fett (Ctrl+B)',
+ text: 'Erstellt den ausgewählten Text in Fettschrift.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Kursiv (Ctrl+I)',
+ text: 'Erstellt den ausgewählten Text in Schrägschrift.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Unterstrichen (Ctrl+U)',
+ text: 'Unterstreicht den ausgewählten Text.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Text vergößern',
+ text: 'Erhöht die Schriftgröße.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Text verkleinern',
+ text: 'Verringert die Schriftgröße.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Text farblich hervorheben',
+ text: 'Hintergrundfarbe des ausgewählten Textes ändern.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Schriftfarbe',
+ text: 'Farbe des ausgewählten Textes ändern.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Linksbündig',
+ text: 'Setzt den Text linksbündig.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Zentrieren',
+ text: 'Zentriert den Text in Editor.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Rechtsbündig',
+ text: 'Setzt den Text rechtsbündig.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Aufzählungsliste',
+ text: 'Beginnt eine Aufzählungsliste mit Spiegelstrichen.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Numerierte Liste',
+ text: 'Beginnt eine numerierte Liste.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hyperlink',
+ text: 'Erstellt einen Hyperlink aus dem ausgewählten text.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Source bearbeiten',
+ text: 'Zur Bearbeitung des Quelltextes wechseln.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Aufsteigend sortieren",
+ sortDescText : "Absteigend sortieren",
+ lockText : "Spalte sperren",
+ unlockText : "Spalte freigeben (entsperren)",
+ columnsText : "Spalten"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Keine)',
+ groupByText : 'Dieses Feld gruppieren',
+ showGroupsText : 'In Gruppen anzeigen'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Name",
+ valueText : "Wert",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Ziehen, um Größe zu ändern.",
+ collapsibleSplitTip : "Ziehen, um Größe zu ändern. Doppelklick um Panel auszublenden."
+ });
+}
+
+if(Ext.form.TimeField){
+ Ext.apply(Ext.form.TimeField.prototype, {
+ minText : "Die Zeit muss gleich oder nach {0} liegen",
+ maxText : "Die Zeit muss gleich oder vor {0} liegen",
+ invalidText : "{0} ist keine gültige Zeit",
+ format : "H:i"
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-el_GR.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-el_GR.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-el_GR.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,254 @@
+/**
+ * Greek translation
+ * By thesilentman (utf8 encoding)
+ * 22 Sep 2007
+ *
+ * Changes since previous (first) Version:
+ * - HTMLEditor Translation
+ * - some minor corrections
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Μεταφόρτωση δεδομένων...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} Επιλεγμένες σειρές";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Κλείστε το tab";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Το περιεχόμενο του πεδίου δεν είναι αποδεκτό";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Μεταφόρτωση δεδομένων...";
+}
+
+Date.monthNames = [
+ "Ιανουάριος",
+ "Φεβρουάριος",
+ "Μάρτιος",
+ "Απρίλιος",
+ "Μάιος",
+ "Ιούνιος",
+ "Ιούλιος",
+ "Αύγουστος",
+ "Σεπτέμβριος",
+ "Οκτώβριος",
+ "Νοέμβριος",
+ "Δεκέμβριος"
+];
+
+Date.dayNames = [
+ "Κυριακή",
+ "Δευτέρα",
+ "Τρίτη",
+ "Τετάρτη",
+ "Πέμπτη",
+ "Παρασκευή",
+ "Σάββατο"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Άκυρο",
+ yes : "Ναι",
+ no : "Όχι"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Σήμερα",
+ minText : "Η Ημερομηνία είναι προγενέστερη από την παλαιότερη αποδεκτή",
+ maxText : "Η Ημερομηνία είναι μεταγενέστερη από την νεότερη αποδεκτή",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Επόμενος Μήνας (Control+Δεξί Βέλος)',
+ prevText : 'Προηγούμενος Μήνας (Control + Αριστερό Βέλος)',
+ monthYearText : 'Επιλογή Μηνός (Control + Επάνω/Κάτω Βέλος για μεταβολή ετών)',
+ todayTip : "{0} (ΠΛήκτρο Διαστήματος)",
+ format : "d/m/y"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Σελίδα",
+ afterPageText : "από {0}",
+ firstText : "Πρώτη Σελίδα",
+ prevText : "Προηγούμενη Σελίδα",
+ nextText : "Επόμενη Σελίδα",
+ lastText : "Τελευταία Σελίδα",
+ refreshText : "Ανανέωση",
+ displayMsg : "Εμφάνιση {0} - {1} από {2}",
+ emptyMsg : 'Δεν υπάρχουν δεδομένα'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Το μικρότερο αποδεκτό μήκος για το πεδίο είναι {0}",
+ maxLengthText : "Το μεγαλύτερο αποδεκτό μήκος για το πεδίο είναι {0}",
+ blankText : "Το πεδίο είναι υποχρεωτικό",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Η μικρότερη τιμή του πεδίου είναι {0}",
+ maxText : "Η μεγαλύτερη τιμή του πεδίου είναι {0}",
+ nanText : "{0} δεν είναι αποδεκτός αριθμός"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Ανενεργό",
+ disabledDatesText : "Ανενεργό",
+ minText : "Η ημερομηνία αυτού του πεδίου πρέπει να είναι μετά την {0}",
+ maxText : "Η ημερομηνία αυτού του πεδίου πρέπει να είναι πριν την {0}",
+ invalidText : "{0} δεν είναι έγκυρη ημερομηνία - πρέπει να είναι στη μορφή {1}",
+ format : "d/m/y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Μεταφόρτωση δεδομένων...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Το πεδίο δέχεται μόνο διευθύνσεις Email σε μορφή "user(a)domain.com"',
+ urlText : 'Το πεδίο δέχεται μόνο URL σε μορφή "http:/'+'/www.domain.com"',
+ alphaText : 'Το πεδίο δέχεται μόνο χαρακτήρες και _',
+ alphanumText : 'Το πεδίο δέχεται μόνο χαρακτήρες, αριθμούς και _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Δώστε τη διεύθυνση (URL) για το σύνδεσμο (link):',
+ buttonTips : {
+ bold : {
+ title: 'Έντονα (Ctrl+B)',
+ text: 'Κάνετε το προεπιλεγμένο κείμενο έντονο.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Πλάγια (Ctrl+I)',
+ text: 'Κάνετε το προεπιλεγμένο κείμενο πλάγιο.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Υπογράμμιση (Ctrl+U)',
+ text: 'Υπογραμμίζετε το προεπιλεγμένο κείμενο.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Μεγέθυνση κειμένου',
+ text: 'Μεγαλώνετε τη γραμματοσειρά.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Σμίκρυνση κειμένου',
+ text: 'Μικραίνετε τη γραμματοσειρά.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Χρώμα Φόντου Κειμένου',
+ text: 'Αλλάζετε το χρώμα στο φόντο του προεπιλεγμένου κειμένου.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Χρώμα Γραμματοσειράς',
+ text: 'Αλλάζετε το χρώμα στη γραμματοσειρά του προεπιλεγμένου κειμένου.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Αριστερή Στοίχιση Κειμένου',
+ text: 'Στοιχίζετε το κείμενο στα αριστερά.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Κεντράρισμα Κειμένου',
+ text: 'Στοιχίζετε το κείμενο στο κέντρο.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Δεξιά Στοίχιση Κειμένου',
+ text: 'Στοιχίζετε το κείμενο στα δεξιά.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Εισαγωγή Λίστας Κουκίδων',
+ text: 'Ξεκινήστε μια λίστα με κουκίδες.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Εισαγωγή Λίστας Αρίθμησης',
+ text: 'Ξεκινήστε μια λίστα με αρίθμηση.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hyperlink',
+ text: 'Μετατρέπετε το προεπιλεγμένο κείμενο σε Link.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Επεξεργασία Κώδικα',
+ text: 'Μεταβαίνετε στη λειτουργία επεξεργασίας κώδικα.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Αύξουσα ταξινόμηση",
+ sortDescText : "Φθίνουσα ταξινόμηση",
+ lockText : "Κλείδωμα στήλης",
+ unlockText : "Ξεκλείδωμα στήλης",
+ columnsText : "Στήλες"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Όνομα",
+ valueText : "Περιεχόμενο",
+ dateFormat : "m/d/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Σύρετε για αλλαγή μεγέθους.",
+ collapsibleSplitTip : "Σύρετε για αλλαγή μεγέθους. Διπλό κλικ για απόκρυψη."
+ });
+}
+
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-en.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-en.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-en.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,288 @@
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * English Translations
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Loading...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} selected row(s)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Close this tab";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "The value in this field is invalid";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Loading...";
+}
+
+Date.monthNames = [
+ "January",
+ "February",
+ "March",
+ "April",
+ "May",
+ "June",
+ "July",
+ "August",
+ "September",
+ "October",
+ "November",
+ "December"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Sunday",
+ "Monday",
+ "Tuesday",
+ "Wednesday",
+ "Thursday",
+ "Friday",
+ "Saturday"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Cancel",
+ yes : "Yes",
+ no : "No"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "m/d/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Today",
+ minText : "This date is before the minimum date",
+ maxText : "This date is after the maximum date",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Next Month (Control+Right)',
+ prevText : 'Previous Month (Control+Left)',
+ monthYearText : 'Choose a month (Control+Up/Down to move years)',
+ todayTip : "{0} (Spacebar)",
+ format : "m/d/y",
+ okText : " OK ",
+ cancelText : "Cancel",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Page",
+ afterPageText : "of {0}",
+ firstText : "First Page",
+ prevText : "Previous Page",
+ nextText : "Next Page",
+ lastText : "Last Page",
+ refreshText : "Refresh",
+ displayMsg : "Displaying {0} - {1} of {2}",
+ emptyMsg : 'No data to display'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "The minimum length for this field is {0}",
+ maxLengthText : "The maximum length for this field is {0}",
+ blankText : "This field is required",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "The minimum value for this field is {0}",
+ maxText : "The maximum value for this field is {0}",
+ nanText : "{0} is not a valid number"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Disabled",
+ disabledDatesText : "Disabled",
+ minText : "The date in this field must be after {0}",
+ maxText : "The date in this field must be before {0}",
+ invalidText : "{0} is not a valid date - it must be in the format {1}",
+ format : "m/d/y",
+ altFormats : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Loading...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'This field should be an e-mail address in the format "user(a)domain.com"',
+ urlText : 'This field should be a URL in the format "http:/'+'/www.domain.com"',
+ alphaText : 'This field should only contain letters and _',
+ alphanumText : 'This field should only contain letters, numbers and _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Please enter the URL for the link:',
+ buttonTips : {
+ bold : {
+ title: 'Bold (Ctrl+B)',
+ text: 'Make the selected text bold.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Italic (Ctrl+I)',
+ text: 'Make the selected text italic.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Underline (Ctrl+U)',
+ text: 'Underline the selected text.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Grow Text',
+ text: 'Increase the font size.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Shrink Text',
+ text: 'Decrease the font size.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Text Highlight Color',
+ text: 'Change the background color of the selected text.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Font Color',
+ text: 'Change the color of the selected text.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Align Text Left',
+ text: 'Align text to the left.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Center Text',
+ text: 'Center text in the editor.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Align Text Right',
+ text: 'Align text to the right.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Bullet List',
+ text: 'Start a bulleted list.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Numbered List',
+ text: 'Start a numbered list.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hyperlink',
+ text: 'Make the selected text a hyperlink.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Source Edit',
+ text: 'Switch to source editing mode.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sort Ascending",
+ sortDescText : "Sort Descending",
+ lockText : "Lock Column",
+ unlockText : "Unlock Column",
+ columnsText : "Columns"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(None)',
+ groupByText : 'Group By This Field',
+ showGroupsText : 'Show in Groups'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Name",
+ valueText : "Value",
+ dateFormat : "m/j/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Drag to resize.",
+ collapsibleSplitTip : "Drag to resize. Double click to hide."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-en_UK.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-en_UK.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-en_UK.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,173 @@
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * English (UK) Translations
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Loading...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} selected row(s)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Close this tab";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "The value in this field is invalid";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Loading...";
+}
+
+Date.monthNames = [
+ "January",
+ "February",
+ "March",
+ "April",
+ "May",
+ "June",
+ "July",
+ "August",
+ "September",
+ "October",
+ "November",
+ "December"
+];
+
+Date.dayNames = [
+ "Sunday",
+ "Monday",
+ "Tuesday",
+ "Wednesday",
+ "Thursday",
+ "Friday",
+ "Saturday"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Cancel",
+ yes : "Yes",
+ no : "No"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Today",
+ minText : "This date is before the minimum date",
+ maxText : "This date is after the maximum date",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Next Month (Control+Right)',
+ prevText : 'Previous Month (Control+Left)',
+ monthYearText : 'Choose a month (Control+Up/Down to move years)',
+ todayTip : "{0} (Spacebar)",
+ format : "d/m/y"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Page",
+ afterPageText : "of {0}",
+ firstText : "First Page",
+ prevText : "Previous Page",
+ nextText : "Next Page",
+ lastText : "Last Page",
+ refreshText : "Refresh",
+ displayMsg : "Displaying {0} - {1} of {2}",
+ emptyMsg : 'No data to display'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "The minimum length for this field is {0}",
+ maxLengthText : "The maximum length for this field is {0}",
+ blankText : "This field is required",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "The minimum value for this field is {0}",
+ maxText : "The maximum value for this field is {0}",
+ nanText : "{0} is not a valid number"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Disabled",
+ disabledDatesText : "Disabled",
+ minText : "The date in this field must be after {0}",
+ maxText : "The date in this field must be before {0}",
+ invalidText : "{0} is not a valid date - it must be in the format {1}",
+ format : "d/m/y",
+ altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Loading...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'This field should be an e-mail address in the format "user(a)domain.com"',
+ urlText : 'This field should be a URL in the format "http:/'+'/www.domain.com"',
+ alphaText : 'This field should only contain letters and _',
+ alphanumText : 'This field should only contain letters, numbers and _'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sort Ascending",
+ sortDescText : "Sort Descending",
+ lockText : "Lock Column",
+ unlockText : "Unlock Column",
+ columnsText : "Columns"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Name",
+ valueText : "Value",
+ dateFormat : "j/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Drag to resize.",
+ collapsibleSplitTip : "Drag to resize. Double click to hide."
+ });
+}
+
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-es.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-es.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-es.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,299 @@
+/*
+ * Spanish/Latin American Translation by genius551v 04-08-2007
+ * Revised by efege, 2007-04-15.
+ * Revised by Rafaga2k 10-01-2007 (mm/dd/yyyy)
+ * Revised by FeDe 12-13-2007 (mm/dd/yyyy)
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Cargando...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} fila(s) seleccionada(s)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Cerrar esta pestaña";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "El valor en este campo es inválido";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Cargando...";
+}
+
+
+Date.monthNames = [
+ "Enero",
+ "Febrero",
+ "Marzo",
+ "Abril",
+ "Mayo",
+ "Junio",
+ "Julio",
+ "Agosto",
+ "Septiembre",
+ "Octubre",
+ "Noviembre",
+ "Diciembre"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Ene : 0,
+ Feb : 1,
+ Mar : 2,
+ Abr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Ago : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dic : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Domingo",
+ "Lunes",
+ "Martes",
+ "Miércoles",
+ "Jueves",
+ "Viernes",
+ "Sábado"
+];
+
+Date.getShortDayName = function(day) {
+ if (day==3) return "Mié";
+ if (day==6) return "Sáb";
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "Aceptar",
+ cancel : "Cancelar",
+ yes : "Sí",
+ no : "No"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Hoy",
+ minText : "Esta fecha es anterior a la fecha mínima",
+ maxText : "Esta fecha es posterior a la fecha máxima",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Mes Siguiente (Control+Right)',
+ prevText : 'Mes Anterior (Control+Left)',
+ monthYearText : 'Seleccione un mes (Control+Up/Down para desplazar el año)',
+ todayTip : "{0} (Barra espaciadora)",
+ format : "d/m/Y",
+ okText : " Ok ",
+ cancelText : "Cancelar",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Página",
+ afterPageText : "de {0}",
+ firstText : "Primera página",
+ prevText : "Página anterior",
+ nextText : "Página siguiente",
+ lastText : "Última página",
+ refreshText : "Actualizar",
+ displayMsg : "Mostrando {0} - {1} de {2}",
+ emptyMsg : 'Sin datos para mostrar'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "El tamaño mínimo para este campo es de {0}",
+ maxLengthText : "El tamaño máximo para este campo es de {0}",
+ blankText : "Este campo es obligatorio",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "El valor mínimo para este campo es de {0}",
+ maxText : "El valor máximo para este campo es de {0}",
+ nanText : "{0} no es un número válido"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Deshabilitado",
+ disabledDatesText : "Deshabilitado",
+ minText : "La fecha para este campo debe ser posterior a {0}",
+ maxText : "La fecha para este campo debe ser anterior a {0}",
+ invalidText : "{0} no es una fecha válida - debe tener el formato {1}",
+ format : "d/m/Y",
+ altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Cargando...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : "Por favor proporcione la URL para el enlace:",
+ buttonTips : {
+ insertimage:{
+ title:'Imagen',
+ text:'Inserta una imagen en la posición actual',
+ cls:'x-html-editor-tip'
+ },
+ bold : {
+ title: 'Negritas (Ctrl+B)',
+ text: 'Transforma el texto seleccionado en Negritas.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Itálica (Ctrl+I)',
+ text: 'Transforma el texto seleccionado en Itálicas.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Subrayado (Ctrl+U)',
+ text: 'Subraya el texto seleccionado.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Aumentar la fuente',
+ text: 'Aumenta el tamaño de la fuente',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Reducir la fuente',
+ text: 'Reduce el tamaño de la fuente.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Color de fondo',
+ text: 'Modifica el color de fondo del texto seleccionado.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Color de la fuente',
+ text: 'Modifica el color del texto seleccionado.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Alinear a la izquierda',
+ text: 'Alinea el texto a la izquierda.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centrar',
+ text: 'Centrar el texto.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Alinear a la derecha',
+ text: 'Alinea el texto a la derecha.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Lista de viñetas',
+ text: 'Inicia una lista con viñetas.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Lista numerada',
+ text: 'Inicia una lista numerada.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Enlace',
+ text: 'Inserta un enlace de hipertexto.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Código Fuente',
+ text: 'Pasar al modo de edición de código fuente.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Este campo debe ser una dirección de correo electrónico con el formato "usuario(a)dominio.com"',
+ urlText : 'Este campo debe ser una URL con el formato "http:/'+'/www.dominio.com"',
+ alphaText : 'Este campo sólo debe contener letras y _',
+ alphanumText : 'Este campo sólo debe contener letras, números y _'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Ordenar en forma ascendente",
+ sortDescText : "Ordenar en forma descendente",
+ lockText : "Bloquear Columna",
+ unlockText : "Desbloquear Columna",
+ columnsText : "Columnas"
+ });
+}
+
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Ninguno)',
+ groupByText : 'Agrupar por este campo',
+ showGroupsText : 'Mostrar en grupos'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nombre",
+ valueText : "Valor",
+ dateFormat : "j/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Arrastre para redimensionar.",
+ collapsibleSplitTip : "Arrastre para redimensionar. Doble clic para ocultar."
+ });
+}
+
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fa.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fa.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fa.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,266 @@
+/*
+ * Farsi (Persian) translation
+ * By Mohaqa
+ * 03-10-2007, 06:23 PM
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">در حال بارگذاری ...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} رکورد انتخاب شده";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "بستن";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "مقدار فیلد صحیح نیست";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "در حال بارگذاری ...";
+}
+
+Date.monthNames = [
+ "ژانویه",
+ "فوریه",
+ "مارس",
+ "آپریل",
+ "می",
+ "ژوئن",
+ "جولای",
+ "آگوست",
+ "سپتامبر",
+ "اکتبر",
+ "نوامبر",
+ "دسامبر"
+];
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.dayNames = [
+ "یکشنبه",
+ "دوشنبه",
+ "سه شنبه",
+ "چهارشنبه",
+ "پنجشنبه",
+ "جمعه",
+ "شنبه"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "تایید",
+ cancel : "بازگشت",
+ yes : "بله",
+ no : "خیر"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "Y/m/d");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "امروز",
+ minText : "این تاریخ قبل از محدوده مجاز است",
+ maxText : "این تاریخ پس از محدوده مجاز است",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'ماه بعد (Control + Right)',
+ prevText : 'ماه قبل (Control+Left)',
+ monthYearText : 'یک ماه را انتخاب کنید (Control+Up/Down برای انتقال در سال)',
+ todayTip : "{0} (Spacebar)",
+ format : "y/m/d",
+ okText : " OK ",
+ cancelText : "Cancel",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "صفحه",
+ afterPageText : "از {0}",
+ firstText : "صفحه اول",
+ prevText : "صفحه قبل",
+ nextText : "صفحه بعد",
+ lastText : "صفحه آخر",
+ refreshText : "بازخوانی",
+ displayMsg : "نمایش {0} - {1} of {2}",
+ emptyMsg : 'داده ای برای نمایش وجود ندارد'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "حداقل طول این فیلد برابر است با {0}",
+ maxLengthText : "حداکثر طول این فیلد برابر است با {0}",
+ blankText : "این فیلد باید مقداری داشته باشد",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "حداقل مقدار این فیلد برابر است با {0}",
+ maxText : "حداکثر مقدار این فیلد برابر است با {0}",
+ nanText : "{0} یک عدد نیست"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "غیرفعال",
+ disabledDatesText : "غیرفعال",
+ minText : "تاریخ باید پس از {0} باشد",
+ maxText : "تاریخ باید پس از {0} باشد",
+ invalidText : "{0} تاریخ صحیحی نیست - فرمت صحیح {1}",
+ format : "y/m/d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "در حال بارگذاری ...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'مقدار این فیلد باید یک ایمیل با این فرمت باشد "user(a)domain.com"',
+ urlText : 'مقدار این آدرس باید یک آدرس سایت با این فرمت باشد "http:/'+'/www.domain.com"',
+ alphaText : 'مقدار این فیلد باید فقط از حروف الفبا و _ تشکیل شده باشد ',
+ alphanumText : 'مقدار این فیلد باید فقط از حروف الفبا، اعداد و _ تشکیل شده باشد'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'لطفا آدرس لینک را وارد کنید:',
+ buttonTips : {
+ bold : {
+ title: 'تیره (Ctrl+B)',
+ text: 'متن انتخاب شده را تیره می کند.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'ایتالیک (Ctrl+I)',
+ text: 'متن انتخاب شده را ایتالیک می کند.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'زیرخط (Ctrl+U)',
+ text: 'زیر هر نوشته یک خط نمایش می دهد.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'افزایش اندازه',
+ text: 'اندازه فونت را افزایش می دهد.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'کاهش اندازه',
+ text: 'اندازه متن را کاهش می دهد.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'رنگ زمینه متن',
+ text: 'برای تغییر رنگ زمینه متن استفاده می شود.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'رنگ قلم',
+ text: 'رنگ قلم متن را تغییر می دهد.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'چیدن متن از سمت چپ',
+ text: 'متن از سمت چپ چیده شده می شود.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'متن در وسط ',
+ text: 'نمایش متن در قسمت وسط صفحه و رعابت سمت چپ و راست.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'چیدن متن از سمت راست',
+ text: 'متن از سمت راست پیده خواهد شد.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'لیست همراه با علامت',
+ text: 'یک لیست جدید ایجاد می کند.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'لیست عددی',
+ text: 'یک لیست عددی ایجاد می کند. ',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'لینک',
+ text: 'متن انتخاب شده را به لینک تبدیل کنید.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'ویرایش سورس',
+ text: 'رفتن به حالت ویرایش سورس.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "مرتب سازی افزایشی",
+ sortDescText : "مرتب سازی کاهشی",
+ lockText : "قفل ستون ها",
+ unlockText : "بازکردن ستون ها",
+ columnsText : "ستون ها"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "نام",
+ valueText : "مقدار",
+ dateFormat : "Y/m/d"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "درگ برای تغییر اندازه.",
+ collapsibleSplitTip : "برای تغییر اندازه درگ کنید."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fr.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fr.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fr.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,297 @@
+/*
+ * France (France) translation
+ * By Thylia
+ * 09-11-2007, 02:22 PM
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">En cours de chargement...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} ligne(s) sélectionnée(s)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Fermer cet onglet";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "La valeur de ce champ est invalide";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "En cours de chargement...";
+}
+
+Date.monthNames = [
+ "Janvier",
+ "Février",
+ "Mars",
+ "Avril",
+ "Mai",
+ "Juin",
+ "Juillet",
+ "Août",
+ "Septembre",
+ "Octobre",
+ "Novembre",
+ "Décembre"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Dimanche",
+ "Lundi",
+ "Mardi",
+ "Mercredi",
+ "Jeudi",
+ "Vendredi",
+ "Samedi"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Annuler",
+ yes : "Oui",
+ no : "Non"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Aujourd'hui",
+ minText : "Cette date est antérieure à la date minimum",
+ maxText : "Cette date est postérieure à la date maximum",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Mois suivant (CTRL+Flèche droite)',
+ prevText : "Mois précédent (CTRL+Flèche gauche)",
+ monthYearText : "Choisissez un mois (CTRL+Flèche haut ou bas pour changer d'année.)",
+ todayTip : "{0} (Barre d'espace)",
+ okText : " OK ",
+ cancelText : "Annuler",
+ format : "d/m/y",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Page",
+ afterPageText : "sur {0}",
+ firstText : "Première page",
+ prevText : "Page précédente",
+ nextText : "Page suivante",
+ lastText : "Dernière page",
+ refreshText : "Actualiser la page",
+ displayMsg : "Page courante {0} - {1} sur {2}",
+ emptyMsg : 'Aucune donnée à afficher'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "La longueur minimum de ce champ est de {0} caractères",
+ maxLengthText : "La longueur maximum de ce champ est de {0} caractères",
+ blankText : "Ce champ est obligatoire",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "La valeur minimum de ce champ doit être de {0}",
+ maxText : "La valeur maximum de ce champ doit être de {0}",
+ nanText : "{0} n'est pas un nombre valide"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Désactivé",
+ disabledDatesText : "Désactivé",
+ minText : "La date de ce champ ne peut être antérieure au {0}",
+ maxText : "La date de ce champ ne peut être postérieure au {0}",
+ invalidText : "{0} n'est pas une date valide - elle doit être au format suivant: {1}",
+ format : "d/m/y",
+ altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "En cours de chargement...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Ce champ doit contenir une adresse email au format: "usager(a)domaine.com"',
+ urlText : 'Ce champ doit contenir une URL au format suivant: "http:/'+'/www.domaine.com"',
+ alphaText : 'Ce champ ne peut contenir que des lettres et le caractère souligné (_)',
+ alphanumText : 'Ce champ ne peut contenir que des caractères alphanumériques ainsi que le caractère souligné (_)'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : "Veuillez entrer l'URL pour ce lien:",
+ buttonTips : {
+ bold : {
+ title: 'Gras (Ctrl+B)',
+ text: 'Met le texte sélectionné en gras.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Italique (Ctrl+I)',
+ text: 'Met le texte sélectionné en italique.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Souligné (Ctrl+U)',
+ text: 'Souligne le texte sélectionné.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Agrandir la police',
+ text: 'Augmente la taille de la police.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Réduire la police',
+ text: 'Réduit la taille de la police.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Couleur de surbrillance',
+ text: 'Modifie la couleur de fond du texte sélectionné.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Couleur de police',
+ text: 'Modifie la couleur du texte sélectionné.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Aligner à gauche',
+ text: 'Aligne le texte à gauche.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centrer',
+ text: 'Centre le texte.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Aligner à droite',
+ text: 'Aligner le texte à droite.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Liste à puce',
+ text: 'Démarre une liste à puce.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Liste numérotée',
+ text: 'Démarre une liste numérotée.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Lien hypertexte',
+ text: 'Transforme en lien hypertexte.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Code source',
+ text: 'Basculer en mode édition du code source.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.form.TimeField){
+ Ext.apply(Ext.form.TimeField.prototype, {
+ minText : "L'heure de ce champ ne peut être antérieure au {0}",
+ maxText : "L'heure de ce champ ne peut être postérieure au {0}",
+ invalidText : "{0} n'est pas une heure valide",
+ format : "H:i",
+ altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|h a|g a|g A|gi|hi|Hi|gia|hia|g|H"
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Tri croissant",
+ sortDescText : "Tri décroissant",
+ lockText : "Verrouiller la colonne",
+ unlockText : "Déverrouiller la colonne",
+ columnsText : "Colonnes"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Aucun)',
+ groupByText : 'Grouper par ce champ',
+ showGroupsText : 'Afficher par groupes'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Propriété",
+ valueText : "Valeur",
+ dateFormat : "d/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Cliquer et glisser pour redimensionner le panneau.",
+ collapsibleSplitTip : "Cliquer et glisser pour redimensionner le panneau. Double-cliquer pour le cacher."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fr_CA.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fr_CA.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fr_CA.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,170 @@
+/*
+ * France (Canadian) translation
+ * By BernardChhun
+ * 04-08-2007, 03:07 AM
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">En cours de chargement...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} ligne(s) sélectionné(s)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Fermer cette onglet";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "La valeur de ce champ est invalide";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "En cours de chargement...";
+}
+
+Date.monthNames = [
+ "Janvier",
+ "Février",
+ "Mars",
+ "Avril",
+ "Mai",
+ "Juin",
+ "Juillet",
+ "Août",
+ "Septembre",
+ "Octobre",
+ "Novembre",
+ "Décembre"
+];
+
+Date.dayNames = [
+ "Dimanche",
+ "Lundi",
+ "Mardi",
+ "Mercredi",
+ "Jeudi",
+ "Vendredi",
+ "Samedi"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Annuler",
+ yes : "Oui",
+ no : "Non"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Aujourd'hui",
+ minText : "Cette date est plus petite que la date minimum",
+ maxText : "Cette date est plus grande que la date maximum",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Prochain mois (CTRL+Fléche droite)',
+ prevText : 'Mois précédent (CTRL+Fléche gauche)',
+ monthYearText : 'Choissisez un mois (CTRL+Fléche haut ou bas pour changer d\'année.)',
+ todayTip : "{0} (Barre d'espace)",
+ format : "d/m/y"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Page",
+ afterPageText : "de {0}",
+ firstText : "Première page",
+ prevText : "Page précédente",
+ nextText : "Prochaine page",
+ lastText : "Dernière page",
+ refreshText : "Recharger la page",
+ displayMsg : "Page courante {0} - {1} de {2}",
+ emptyMsg : 'Aucune donnée à afficher'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "La longueur minimum de ce champ est de {0} caractères",
+ maxLengthText : "La longueur maximum de ce champ est de {0} caractères",
+ blankText : "Ce champ est obligatoire",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "La valeur minimum de ce champ doit être de {0}",
+ maxText : "La valeur maximum de ce champ doit être de {0}",
+ nanText : "{0} n'est pas un nombre valide"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Désactivé",
+ disabledDatesText : "Désactivé",
+ minText : "La date de ce champ doit être avant le {0}",
+ maxText : "La date de ce champ doit être après le {0}",
+ invalidText : "{0} n'est pas une date valide - il doit être au format suivant: {1}",
+ format : "d/m/y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "En cours de chargement...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Ce champ doit contenir un courriel et doit être sous ce format: "usager(a)domaine.com"',
+ urlText : 'Ce champ doit contenir une URL sous le format suivant: "http:/'+'/www.domaine.com"',
+ alphaText : 'Ce champ ne peut contenir que des lettres et le caractère souligné (_)',
+ alphanumText : 'Ce champ ne peut contenir que des caractères alphanumériques ainsi que le caractère souligné (_)'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Tri ascendant",
+ sortDescText : "Tri descendant",
+ lockText : "Verrouillé la colonne",
+ unlockText : "Déverrouillé la colonne",
+ columnsText : "Colonnes"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Propriété",
+ valueText : "Valeur",
+ dateFormat : "d/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Cliquer et glisser pour redimensionner le panneau.",
+ collapsibleSplitTip : "Cliquer et glisser pour redimensionner le panneau. Double-cliquer pour cacher le panneau."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-gr.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-gr.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-gr.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,169 @@
+/**
+ * Greek (Old Version) Translations by Vagelis
+ * 03-June-2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Öüñôùóç...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} åðéëåãìÝíç(åò) ãñáììÞ(Ýò)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Êëåßóôå áõôÞ ôçí êáñôÝëá";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Ç ôéìÞ óôï ðåäßï äåí åßíáé Ýãêõñç";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Öüñôùóç...";
+}
+
+Date.monthNames = [
+ "ÉáíïõÜñéïò",
+ "ÖåâñïõÜñéïò",
+ "ÌÜñôéïò",
+ "Áðñßëéïò",
+ "ÌÜéïò",
+ "Éïýíéïò",
+ "Éïýëéïò",
+ "Áýãïõóôïò",
+ "ÓåðôÝìâñéïò",
+ "Ïêôþâñéïò",
+ "ÍïÝìâñéïò",
+ "ÄåêÝìâñéïò"
+];
+
+Date.dayNames = [
+ "ÊõñéáêÞ",
+ "ÄåõôÝñá",
+ "Ôñßôç",
+ "ÔåôÜñôç",
+ "ÐÝìðôç",
+ "ÐáñáóêåõÞ",
+ "ÓÜââáôï"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "ÅíôÜîåé",
+ cancel : "Áêýñùóç",
+ yes : "Íáé",
+ no : "¼÷é"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "ì/ç/Å");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "ÓÞìåñá",
+ minText : "Ç çìåñïìçíßá áõôÞ åßíáé ðñéí ôçí ìéêñüôåñç çìåñïìçíßá",
+ maxText : "Ç çìåñïìçíßá áõôÞ åßíáé ìåôÜ ôçí ìåãáëýôåñç çìåñïìçíßá",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Åðüìåíïò ÌÞíáò (Control+Right)',
+ prevText : 'Ðñïçãïýìåíïò ÌÞíáò (Control+Left)',
+ monthYearText : 'ÅðéëÝîôå ÌÞíá (Control+Up/Down ãéá ìåôáêßíçóç óôá Ýôç)',
+ todayTip : "{0} (Spacebar)",
+ format : "ì/ç/Å"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Óåëßäá",
+ afterPageText : "áðü {0}",
+ firstText : "Ðñþôç óåëßäá",
+ prevText : "Ðñïçãïýìåíç óåëßäá",
+ nextText : "Åðüìåíç óåëßäá",
+ lastText : "Ôåëåõôáßá óåëßäá",
+ refreshText : "ÁíáíÝùóç",
+ displayMsg : "ÅìöÜíéóç {0} - {1} áðü {2}",
+ emptyMsg : 'Äåí âñÝèçêáí åããñáöÝò ãéá åìöÜíéóç'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Ôï åëÜ÷éóôï ìÝãåèïò ãéá áõôü ôï ðåäßï åßíáé {0}",
+ maxLengthText : "Ôï ìÝãéóôï ìÝãåèïò ãéá áõôü ôï ðåäßï åßíáé {0}",
+ blankText : "Ôï ðåäßï áõôü åßíáé õðï÷ñåùôïêü",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Ç åëÜ÷éóôç ôéìÞ ãéá áõôü ôï ðåäßï åßíáé {0}",
+ maxText : "Ç ìÝãéóôç ôéìÞ ãéá áõôü ôï ðåäßï åßíáé {0}",
+ nanText : "{0} äåí åßíáé Ýãêõñïò áñéèìüò"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "ÁðåíåñãïðïéçìÝíï",
+ disabledDatesText : "ÁðåíåñãïðïéçìÝíï",
+ minText : "Ç çìåñïìçíßá ó' áõôü ôï ðåäßï ðñÝðåé íá åßíáé ìåôÜ áðü {0}",
+ maxText : "Ç çìåñïìçíßá ó' áõôü ôï ðåäßï ðñÝðåé íá åßíáé ðñéí áðü {0}",
+ invalidText : "{0} äåí åßíáé Ýãêõñç çìåñïìçíßá - ðñÝðåé íá åßíáé ôçò ìïñöÞò {1}",
+ format : "ì/ç/Å"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Öüñôùóç...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Áõôü ôï ðåäßï ðñÝðåé íá åßíáé e-mail address ôçò ìïñöÞò "user(a)domain.com"',
+ urlText : 'Áõôü ôï ðåäßï ðñÝðåé íá åßíáé ìéá äéåýèõíóç URL ôçò ìïñöÞò "http:/'+'/www.domain.com"',
+ alphaText : 'Áõôü ôï ðåäßï ðñÝðåé íá ðåñéÝ÷åé ãñÜììáôá êáé _',
+ alphanumText : 'Áõôü ôï ðåäßï ðñÝðåé íá ðåñéÝ÷åé ãñÜììáôá, áñéèìïýò êáé _'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Áýîïõóá Ôáîéíüìçóç",
+ sortDescText : "Öèßíïõóá Ôáîéíüìçóç",
+ lockText : "Êëåßäùìá óôÞëçò",
+ unlockText : "Îåêëåßäùìá óôÞëçò",
+ columnsText : "ÓôÞëåò"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "¼íïìá",
+ valueText : "ÔéìÞ",
+ dateFormat : "ì/ç/Å"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Óýñåôå ãéá áëëáãÞ ìåãÝèïõò.",
+ collapsibleSplitTip : "Óýñåôå ãéá áëëáãÞ ìåãÝèïõò. Double click ãéá áðüêñõøç."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-he.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-he.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-he.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,286 @@
+/**
+ * Hebrew Translations
+ * By spartacus (from forums) 06-12-2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">...����</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "����� ������ {0}";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "���� ������";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "���� ���� �� ����";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "...����";
+}
+
+Date.monthNames = [
+ "�����",
+ "������",
+ "���",
+ "�����",
+ "���",
+ "����",
+ "����",
+ "������",
+ "������",
+ "�������",
+ "������",
+ "�����"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "�",
+ "�",
+ "�",
+ "�",
+ "�",
+ "�",
+ "�"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "�����",
+ cancel : "�����",
+ yes : "��",
+ no : "��"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "����",
+ minText : ".����� �� �� ���� ������ ������� �����",
+ maxText : ".����� �� �� ���� ������ ����� �����",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : '(Control+Right) ����� ���',
+ prevText : '(Control+Left) ����� �����',
+ monthYearText : '(������ ��� Control+Up/Down) ��� ����',
+ todayTip : "��� ����) {0})",
+ format : "d/m/Y",
+ okText : " ����� ",
+ cancelText : "�����",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "����",
+ afterPageText : "{0} ����",
+ firstText : "���� �����",
+ prevText : "���� ����",
+ nextText : "���� ���",
+ lastText : "���� �����",
+ refreshText : "����",
+ displayMsg : "���� {0} - {1} ���� {2}",
+ emptyMsg : '��� ���� �����'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "{0} ����� ��������� ���� �� ���",
+ maxLengthText : "{0} ����� ������ ���� �� ���",
+ blankText : "��� �� �����",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "{0} ���� ��������� ���� �� ���",
+ maxText : "{0} ���� ������ ���� �� ���",
+ nanText : "��� �� ���� {0}"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "������",
+ disabledDatesText : "������",
+ minText : "{0} ������ ���� �� ���� ����� ����",
+ maxText : "{0} ������ ���� �� ���� ����� ����",
+ invalidText : "{1} ��� �� ����� ���� - ���� ����� ������ {0}",
+ format : "m/d/y",
+ altFormats : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "...����",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : '"user(a)domain.com" ��� �� ���� ����� ����� ���� �������� ������',
+ urlText : '"http:/'+'/www.domain.com" ��� �� ���� ����� ����� ������� ������',
+ alphaText : '_��� �� ���� ����� �� ������ �',
+ alphanumText : '_��� �� ���� ����� �� ������, ������ �'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : ':��� ���� �� ����� �������� ���� ������',
+ buttonTips : {
+ bold : {
+ title: '(Ctrl+B) �����',
+ text: '.���� �� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: '(Ctrl+I) ����',
+ text: '.��� �� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: '(Ctrl+U) �� ����',
+ text: '.���� �� ���� ���� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: '���� ����',
+ text: '.���� ���� ���� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: '���� ����',
+ text: '.���� ���� ���� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: '��� ��� �����',
+ text: '.��� �� ��� ���� ���� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: '��� ����',
+ text: '.��� �� ��� ����� ���� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: '���� �����',
+ text: '.��� ����� �� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: '���� �����',
+ text: '.��� ����� �� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: '���� �����',
+ text: '.��� ����� �� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: '����� ������',
+ text: '.���� ����� ������',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: '����� �������',
+ text: '.���� ����� �������',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: '�����',
+ text: '.���� �� ����� ����� ������',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: '����� ��� ����',
+ text: '.��� ��� ����',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "���� ���� ����",
+ sortDescText : "���� ���� ����",
+ lockText : "��� �����",
+ unlockText : "���� �����",
+ columnsText : "������"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(���)',
+ groupByText : '��� ������� ��� ��� ��',
+ showGroupsText : '��� �������'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "��",
+ valueText : "���",
+ dateFormat : "m/j/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : ".���� ������ ����",
+ collapsibleSplitTip : ".���� ������ ����. ����� ����� ������"
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-hr.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-hr.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-hr.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,171 @@
+/*
+ * Croatian translation
+ * By Ylodi (utf8 encoding)
+ * 8 May 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Učitavanje...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} odabranih redova";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Zatvori ovaj tab";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Unesena vrijednost u ovom polju je neispravna";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Učitavanje...";
+}
+
+Date.monthNames = [
+ "Siječanj",
+ "Veljača",
+ "Ožujak",
+ "Travanj",
+ "Svibanj",
+ "Lipanj",
+ "Srpanj",
+ "Kolovoz",
+ "Rujan",
+ "Listopad",
+ "Studeni",
+ "Prosinac"
+];
+
+Date.dayNames = [
+ "Nedjelja",
+ "Ponedjeljak",
+ "Utorak",
+ "Srijeda",
+ "Četvrtak",
+ "Petak",
+ "Subota"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "U redu",
+ cancel : "Odustani",
+ yes : "Da",
+ no : "Ne"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Danas",
+ minText : "Taj datum je prije najmanjeg datuma",
+ maxText : "Taj datum je poslije najvećeg datuma",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Slijedeći mjesec (Control+Desno)',
+ prevText : 'Prethodni mjesec (Control+Lijevo)',
+ monthYearText : 'Odaberite mjesec (Control+Gore/Dolje za promjenu godine)',
+ todayTip : "{0} (Razmaknica)",
+ format : "d.m.y",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Stranica",
+ afterPageText : "od {0}",
+ firstText : "Prva stranica",
+ prevText : "Prethodna stranica",
+ nextText : "Slijedeća stranica",
+ lastText : "Posljednja stranica",
+ refreshText : "Obnovi",
+ displayMsg : "Prikazujem {0} - {1} od {2}",
+ emptyMsg : 'Nema podataka za prikaz'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minimalna dužina za ovo polje je {0}",
+ maxLengthText : "Maksimalna dužina za ovo polje je {0}",
+ blankText : "Ovo polje je obavezno",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Minimalna vrijednost za ovo polje je {0}",
+ maxText : "Maksimalna vrijednost za ovo polje je {0}",
+ nanText : "{0} nije ispravan broj"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Neaktivno",
+ disabledDatesText : "Neaktivno",
+ minText : "Datum u ovom polje mora biti poslije {0}",
+ maxText : "Datum u ovom polju mora biti prije {0}",
+ invalidText : "{0} nije ispravan datum - mora biti u obliku {1}",
+ format : "d.m.y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Učitavanje...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Ovdje možete unijeti samo e-mail adresu u obliku "korisnik(a)domena.com"',
+ urlText : 'Ovdje možete unijeti samo URL u obliku "http:/'+'/www.domena.com"',
+ alphaText : 'Ovo polje može sadržavati samo slova i znak _',
+ alphanumText : 'Ovo polje može sadržavati samo slova, brojeve i znak _'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sortiraj rastućim redoslijedom",
+ sortDescText : "Sortiraj padajućim redoslijedom",
+ lockText : "Zaključaj stupac",
+ unlockText : "Otključaj stupac",
+ columnsText : "Stupci"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Naziv",
+ valueText : "Vrijednost",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Povuci za promjenu veličine.",
+ collapsibleSplitTip : "Povuci za promjenu veličine. Dvostruki klik za skrivanje."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-hu.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-hu.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-hu.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,291 @@
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ */
+/*
+ * Hungarian translation
+ * By amon <amon(a)theba.hu> (utf-8 encoded)
+ * 09 February 2008
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Betöltés...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} kiválasztott sor";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Fül bezárása";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "A mezőben lévő adat nem megfelelő";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Betöltés...";
+}
+
+Date.monthNames = [
+ "Január",
+ "Február",
+ "Március",
+ "Április",
+ "Május",
+ "Június",
+ "Július",
+ "Augusztus",
+ "Szeptember",
+ "Október",
+ "November",
+ "December"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Vasárnap",
+ "Hétfő",
+ "Kedd",
+ "Szerda",
+ "Csütörtök",
+ "Péntek",
+ "Szombat"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Mégsem",
+ yes : "Igen",
+ no : "Nem"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "Y-m-d");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Mai nap",
+ minText : "A dátum korábbi a megengedettnél",
+ maxText : "A dárum későbbi a megengedettnél",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Köv. hónap (Ctrl+Jobbra)',
+ prevText : 'Előző hónap (Ctrl+Balra)',
+ monthYearText : 'Válassz hónapot (Évválasztás: Ctrl+Fel/Le)',
+ todayTip : "{0} (Szóköz)",
+ format : "Y-m-d",
+ okText : " OK ",
+ cancelText : "Mégsem",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Oldal",
+ afterPageText : "a {0}-ból/ből",
+ firstText : "Első oldal",
+ prevText : "Előző oldal",
+ nextText : "Következő oldal",
+ lastText : "Utolsó oldal",
+ refreshText : "Frissít",
+ displayMsg : "{0} - {1} sorok láthatók a {2}-ból/ből",
+ emptyMsg : 'Nincs megjeleníthető adat'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "A mező tartalma legalább {0} hosszú kell legyen",
+ maxLengthText : "A mező tartalma nem lehet hosszabb {0}-nál/nél",
+ blankText : "Kötelezően kitöltendő mező",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "A mező tartalma nem lehet kissebb, mint {0}",
+ maxText : "A mező tartalma nem lehet nagyobb, mint {0}",
+ nanText : "{0} nem szám"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Nem választható",
+ disabledDatesText : "Nem választható",
+ minText : "A dátum nem lehet korábbi, mint {0}",
+ maxText : "A dátum nem lehet későbbi, mint {0}",
+ invalidText : "{0} nem megfelelő dátum - a megfelelő formátum {1}",
+ format : "y-m-d",
+ altFormats : "y m d|y. m. d.|m d|m-d|md|ymd|Ymd|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Betöltés...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'A mezőbe e-mail címet kell írni ebben a formátumban: "felhasználó(a)szerver.hu"',
+ urlText : 'A mezőbe webcímet kell írni ebben a formátumban: "http:/'+'/www.weboldal.hu"',
+ alphaText : 'A mező csak betűket és aláhúzást (_) tartalmazhat',
+ alphanumText : 'A mező csak betűket, számokat és aláhúzást (_) tartalmazhat'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Kérlek add meg a webcímet:',
+ buttonTips : {
+ bold : {
+ title: 'Félkövér (Ctrl+B)',
+ text: 'Félkövérré teszi a szöveget.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Dőlt (Ctrl+I)',
+ text: 'Dőltté teszi a szöveget.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Aláhúzás (Ctrl+U)',
+ text: 'Aláhúzza a szöveget.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Betűméret növlés',
+ text: 'Növeli a szöveg betűméretét.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Betűméret csökkentés',
+ text: 'Csökkenti a szöveg betűméretét.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Háttérszín',
+ text: 'A kijelölt szöveg háttérszínét változtatja meg.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Betűszín',
+ text: 'A kijelölt szöveg betűszínét változtatja meg.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Balra igazít',
+ text: 'A szöveget balra igazítja.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Középre igazít',
+ text: 'A szöveget középre igazítja.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Jobbra igazít',
+ text: 'A szöveget jobbra igazítja.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Felsorolás',
+ text: 'Felsorolást nyit.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Számozott lista',
+ text: 'Számozott listát nyit.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hiperlink',
+ text: 'Hiperlinkké teszi a kijelölt szöveget.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Forráskód',
+ text: 'Forráskód üzemmódba vált.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Növekvő rendezés",
+ sortDescText : "Csökkenő rendezés",
+ lockText : "Oszlop zárolása",
+ unlockText : "Oszlop felengedése",
+ columnsText : "Oszlopok"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(nincs)',
+ groupByText : 'Mező szerint csoportosít',
+ showGroupsText : 'Csoportosított megjelenítés'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Név",
+ valueText : "Érték",
+ dateFormat : "Y j m"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Átméretezés húzásra.",
+ collapsibleSplitTip : "Átméretezés húzásra. Eltüntetés duplaklikk."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-id.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-id.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-id.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,296 @@
+/**
+ * Pedoman translasi:
+ * http://id.wikisource.org/wiki/Panduan_Pembakuan_Istilah,_Pelaksanaan_Instru…
+ *Original source: http://vlsm.org/etc/baku-0.txt
+ * by Farid GS
+ * farid [at] pulen.net
+ * 10:13 04 Desember 2007
+ * Indonesian Translations
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Pemuatan...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} selected row(s)";
+ Ext.grid.Grid.prototype.ddText = "{0} baris terpilih";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Close this tab";
+ Ext.TabPanelItem.prototype.closeText = "Tutup tab ini";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "The value in this field is invalid";
+ Ext.form.Field.prototype.invalidText = "Isian belum benar";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Loading...";
+ Ext.LoadMask.prototype.msg = "Pemuatan...";
+}
+
+Date.monthNames = [
+ "Januari",
+ "Februari",
+ "Maret",
+ "April",
+ "Mei",
+ "Juni",
+ "Juli",
+ "Agustus",
+ "September",
+ "Oktober",
+ "November",
+ "Desember"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ Mei : 4,
+ Jun : 5,
+ Jul : 6,
+ Agu : 7,
+ Sep : 8,
+ Okt : 9,
+ Nov : 10,
+ Des : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Minggu",
+ "Senin",
+ "Selasa",
+ "Rabu",
+ "Kamis",
+ "Jumat",
+ "Sabtu"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Batal",
+ yes : "Ya",
+ no : "Tidak"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Hari ini",
+ minText : "Tanggal ini sebelum batas tanggal minimal",
+ maxText : "Tanggal ini setelah batas tanggal maksimal",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Bulan Berikut (Kontrol+Kanan)',
+ prevText : 'Bulan Sebelum (Kontrol+Kiri)',
+ monthYearText : 'Pilih bulan (Kontrol+Atas/Bawah untuk pindah tahun)',
+ todayTip : "{0} (Spacebar)",
+ format : "d/m/y",
+ okText : " OK ",
+ cancelText : "Batal",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Hal",
+ afterPageText : "dari {0}",
+ firstText : "Hal. Pertama",
+ prevText : "Hal. Sebelum",
+ nextText : "Hal. Berikut",
+ lastText : "Hal. Akhir",
+ refreshText : "Segarkan",
+ displayMsg : "Menampilkan {0} - {1} dari {2}",
+ emptyMsg : 'Data tidak ditemukan'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Panjang minimal untuk field ini adalah {0}",
+ maxLengthText : "Panjang maksimal untuk field ini adalah {0}",
+ blankText : "Field ini wajib diisi",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Nilai minimal untuk field ini adalah {0}",
+ maxText : "Nilai maksimal untuk field ini adalah {0}",
+ nanText : "{0} bukan angka"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Disfungsi",
+ disabledDatesText : "Disfungsi",
+ minText : "Tanggal dalam field ini harus setelah {0}",
+ maxText : "Tanggal dalam field ini harus sebelum {0}",
+ invalidText : "{0} tanggal salah - Harus dalam format {1}",
+ format : "d/m/y",
+ //altFormats : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
+ altFormats : "d/m/Y|d-m-y|d-m-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Pemuatan...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Field ini harus dalam format email seperti "user(a)domain.com"',
+ urlText : 'Field ini harus dalam format URL seperti "http:/'+'/www.domain.com"',
+ alphaText : 'Field ini harus terdiri dari huruf dan _',
+ alphanumText : 'Field ini haris terdiri dari huruf, angka dan _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Silakan masukkan URL untuk tautan:',
+ buttonTips : {
+ bold : {
+ title: 'Tebal (Ctrl+B)',
+ text: 'Buat tebal teks terpilih',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Miring (CTRL+I)',
+ text: 'Buat miring teks terpilih',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Garisbawah (CTRl+U)',
+ text: 'Garisbawahi teks terpilih',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Perbesar teks',
+ text: 'Perbesar ukuran fonta',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Perkecil teks',
+ text: 'Perkecil ukuran fonta',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Sorot Warna Teks',
+ text: 'Ubah warna latar teks terpilih',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Warna Fonta',
+ text: 'Ubah warna teks terpilih',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Rata Kiri',
+ text: 'Ratakan teks ke kiri',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Rata Tengah',
+ text: 'Ratakan teks ke tengah editor',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Rata Kanan',
+ text: 'Ratakan teks ke kanan',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Daftar Bulet',
+ text: 'Membuat daftar berbasis bulet',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Daftar Angka',
+ text: 'Membuat daftar berbasis angka',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hipertaut',
+ text: 'Buat teks terpilih sebagai Hipertaut',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Edit Kode Sumber',
+ text: 'Pindah dalam mode kode sumber',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Urut Naik",
+ sortDescText : "Urut Turun",
+ lockText : "Kancing Kolom",
+ unlockText : "Lepas Kunci Kolom",
+ columnsText : "Kolom"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Kosong)',
+ groupByText : 'Kelompokkan Berdasar Field Ini',
+ showGroupsText : 'Tampil Dalam Kelompok'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nama",
+ valueText : "Nilai",
+ dateFormat : "d/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Seret untuk ubah ukuran.",
+ collapsibleSplitTip : "Seret untuk ubah ukuran, Dobel klik untuk sembunyikan."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-it.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-it.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-it.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,289 @@
+/*
+ * Italian translation
+ * By eric_void
+ * 04-10-2007, 11:25 AM
+ * Updated by Federico Grilli 21/12/2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Caricamento in corso...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} righe selezionate";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Chiudi pannello";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Valore non valido";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Caricamento in corso...";
+}
+
+Date.monthNames = [
+ "Gennaio",
+ "Febbraio",
+ "Marzo",
+ "Aprile",
+ "Maggio",
+ "Giugno",
+ "Luglio",
+ "Agosto",
+ "Settembre",
+ "Ottobre",
+ "Novembre",
+ "Dicembre"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Domenica",
+ "Luned\u00EC",
+ "Marted\u00EC",
+ "Mercoled\u00EC",
+ "Gioved\u00EC",
+ "Venerd\u00EC",
+ "Sabato"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Annulla",
+ yes : "S\u00EC",
+ no : "No"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Oggi",
+ minText : "Data precedente alla data minima",
+ maxText : "Data successiva alla data massima",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Mese successivo (Ctrl+Destra)',
+ prevText : 'Mese precedente (Ctrl+Sinistra)',
+ monthYearText : 'Scegli un mese (Ctrl+Su/Giu per cambiare anno)',
+ todayTip : "{0} (Barra spaziatrice)",
+ format : "d/m/y",
+ cancelText : "Annulla",
+ okText : " OK ",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Pagina",
+ afterPageText : "di {0}",
+ firstText : "Prima pagina",
+ prevText : "Pagina precedente",
+ nextText : "Pagina successiva",
+ lastText : "Ultima pagina",
+ refreshText : "Aggiorna",
+ displayMsg : "Record {0} - {1} di {2}",
+ emptyMsg : 'Nessun dato da mostrare'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "La lunghezza minima \u00E8 {0}",
+ maxLengthText : "La lunghezza massima \u00E8 {0}",
+ blankText : "Campo obbligatorio",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Il valore minimo \u00E8 {0}",
+ maxText : "Il valore massimo \u00E8 {0}",
+ nanText : "{0} non \u00E8 un valore numerico corretto"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Disabilitato",
+ disabledDatesText : "Disabilitato",
+ minText : "La data deve essere successiva al {0}",
+ maxText : "La data deve essere precedente al {0}",
+ invalidText : "{0} non \u00E8 una data valida. Deve essere nel formato {1}",
+ format : "d/m/y",
+ altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Caricamento in corso...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Il campo deve essere un indirizzo e-mail nel formato "user(a)domain.com"',
+ urlText : 'Il campo deve essere un indirizzo web nel formato "http:/'+'/www.domain.com"',
+ alphaText : 'Il campo deve contenere solo lettere e _',
+ alphanumText : 'Il campo deve contenere solo lettere, numeri e _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Inserire un URL per il link:',
+ buttonTips : {
+ bold : {
+ title: 'Grassetto (Ctrl+B)',
+ text: 'Rende il testo selezionato in grassetto.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Corsivo (Ctrl+I)',
+ text: 'Rende il testo selezionato in corsivo.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Sottolinea (Ctrl+U)',
+ text: 'Sottolinea il testo selezionato.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Ingrandisci testo',
+ text: 'Aumenta la dimensione del carattere.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Rimpicciolisci testo',
+ text: 'Diminuisce la dimensione del carattere.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Colore evidenziatore testo',
+ text: 'Modifica il colore di sfondo del testo selezionato.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Colore carattere',
+ text: 'Modifica il colore del testo selezionato.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Allinea a sinistra',
+ text: 'Allinea il testo a sinistra.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centra',
+ text: 'Centra il testo.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Allinea a destra',
+ text: 'Allinea il testo a destra.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Elenco puntato',
+ text: 'Elenco puntato.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Elenco numerato',
+ text: 'Elenco numerato.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Collegamento',
+ text: 'Trasforma il testo selezionato in un collegamanto.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Sorgente',
+ text: 'Passa alla modalit\u00E0 editing del sorgente.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Ordinamento crescente",
+ sortDescText : "Ordinamento decrescente",
+ lockText : "Blocca colonna",
+ unlockText : "Sblocca colonna",
+ columnsText : "Colonne"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Nessun dato)',
+ groupByText : 'Raggruppa per questo campo',
+ showGroupsText : 'Mostra nei gruppi'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nome",
+ valueText : "Valore",
+ dateFormat : "j/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Trascina per cambiare dimensioni.",
+ collapsibleSplitTip : "Trascina per cambiare dimensioni. Doppio click per nascondere."
+ });
+}
+
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ja.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ja.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ja.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,156 @@
+/*
+ * Japanese translation
+ * By tyama
+ * 04-08-2007, 05:49 AM
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">読み込み中...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} 行選択";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "このタブを閉じる";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "フィールドの値が不正です。";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "読み込み中...";
+}
+
+Date.monthNames = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月','11月','12月'];
+
+Date.dayNames = [
+ "日",
+ "月",
+ "火",
+ "水",
+ "木",
+ "金",
+ "土"];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "キャンセル",
+ yes : "はい",
+ no : "いいえ"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "Y/m/d");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "今日",
+ minText : "選択した日付は最小値以下です。",
+ maxText : "選択した日付は最大値以上です。",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : '次月へ (コントロール+右)',
+ prevText : '前月へ (コントロール+左)',
+ monthYearText : '月選択 (コントロール+上/下で年移動)',
+ todayTip : "{0} (スペースキー)",
+ format : "Y/m/d"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "ページ",
+ afterPageText : "/ {0}",
+ firstText : "最初のページ",
+ prevText : "前のページ",
+ nextText : "次のページ",
+ lastText : "最後のページ",
+ refreshText : "更新",
+ displayMsg : "{2} 件中 {0} - {1} を表示",
+ emptyMsg : '表示するデータがありません。'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "このフィールドの最小値は {0} です。",
+ maxLengthText : "このフィールドの最大値は {0} です。",
+ blankText : "必須項目です。",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "このフィールドの最小値は {0} です。",
+ maxText : "このフィールドの最大値は {0} です。",
+ nanText : "{0} は数値ではありません。"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "無効",
+ disabledDatesText : "無効",
+ minText : "このフィールドの日付は、 {0} 以降の日付に設定してください。",
+ maxText : "このフィールドの日付は、 {0} 以前の日付に設定してください。",
+ invalidText : "{0} は間違った日付入力です。 - 入力形式は「{1}」です。",
+ format : "Y/m/d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "読み込み中...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'メールアドレスを"user(a)domain.com"の形式で入力してください。',
+ urlText : 'URLを"http:/'+'/www.domain.com"の形式で入力してください。',
+ alphaText : '半角英字と"_"のみです。',
+ alphanumText : '半角英数と"_"のみです。'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "昇順",
+ sortDescText : "降順",
+ lockText : "カラムロック",
+ unlockText : "カラムロック解除",
+ columnsText : "Columns"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "名称",
+ valueText : "値",
+ dateFormat : "Y/m/d"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "ドラッグするとリサイズできます。",
+ collapsibleSplitTip : "ドラッグでリサイズ。 ダブルクリックで隠す。"
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ko.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ko.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ko.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,252 @@
+/**
+ * Korean Translations
+ * By nicetip
+ * 05 September 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">로딩...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} 개가 선택되었습니다.";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "닫기";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "올바른 값이 아닙니다.";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "로딩...";
+}
+
+Date.monthNames = [
+ "1월",
+ "2월",
+ "3월",
+ "4월",
+ "5월",
+ "6월",
+ "7월",
+ "8월",
+ "9월",
+ "10월",
+ "11월",
+ "12월"
+];
+
+Date.dayNames = [
+ "일",
+ "월",
+ "화",
+ "수",
+ "목",
+ "금",
+ "토"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "확인",
+ cancel : "취소",
+ yes : "예",
+ no : "아니오"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "m/d/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "오늘",
+ minText : "최소 날짜범위를 넘었습니다.",
+ maxText : "최대 날짜범위를 넘었습니다.",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : '다음달(컨트롤키+오른쪽 화살표)',
+ prevText : '이전달 (컨트롤키+왼족 화살표)',
+ monthYearText : '월을 선택해주세요. (컨트롤키+위/아래 화살표)',
+ todayTip : "{0} (스페이스바)",
+ format : "m/d/y",
+ okText : "확인",
+ cancelText : "취소",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "페이지",
+ afterPageText : "/ {0}",
+ firstText : "첫 페이지",
+ prevText : "이전 페이지",
+ nextText : "다음 페이지",
+ lastText : "마지막 페이지",
+ refreshText : "새로고침",
+ displayMsg : "전체 {2} 중 {0} - {1}",
+ emptyMsg : '표시할 데이터가 없습니다.'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "최소길이는 {0}입니다.",
+ maxLengthText : "최대길이는 {0}입니다.",
+ blankText : "값을 입력해주세요.",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "최소값은 {0}입니다.",
+ maxText : "최대값은 {0}입니다.",
+ nanText : "{0}는 올바른 숫자가 아닙니다."
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "비활성",
+ disabledDatesText : "비활성",
+ minText : "{0}일 이후여야 합니다.",
+ maxText : "{0}일 이전이어야 합니다.",
+ invalidText : "{0}는 올바른 날짜형식이 아닙니다. - 다음과 같은 형식이어야 합니다. {1}",
+ format : "m/d/y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "로딩...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : '이메일 주소 형식에 맞게 입력해야합니다. (예: "user(a)domain.com")',
+ urlText : 'URL 형식에 맞게 입력해야합니다. (예: "http:/'+'/www.domain.com")',
+ alphaText : '영문, 밑줄(_)만 입력할 수 있습니다.',
+ alphanumText : '영문, 숫자, 밑줄(_)만 입력할 수 있습니다.'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'URL을 입력해주세요:',
+ buttonTips : {
+ bold : {
+ title: '굵게 (Ctrl+B)',
+ text: '선택한 텍스트를 굵게 표시합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: '기울임꼴 (Ctrl+I)',
+ text: '선택한 텍스트를 기울임꼴로 표시합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: '밑줄 (Ctrl+U)',
+ text: '선택한 텍스트에 밑줄을 표시합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: '글꼴크기 늘림',
+ text: '글꼴 크기를 크게 합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: '글꼴크기 줄임',
+ text: '글꼴 크기를 작게 합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: '텍스트 강조 색',
+ text: '선택한 텍스트의 배경색을 변경합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: '글꼴색',
+ text: '선택한 텍스트의 색을 변경합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: '텍스트 왼쪽 맞춤',
+ text: '왼쪽에 텍스트를 맞춥니다.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: '가운데 맞춤',
+ text: '가운데에 텍스트를 맞춥니다.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: '텍스트 오른쪽 맞춤',
+ text: '오른쪽에 텍스트를 맞춥니다.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: '글머리 기호',
+ text: '글머리 기호 목록을 시작합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: '번호 매기기',
+ text: '번호 매기기 목록을 시작합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: '하이퍼링크',
+ text: '선택한 텍스트에 하이퍼링크를 만듭니다.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: '소스편집',
+ text: '소스편집 모드로 변환합니다.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "오름차순 정렬",
+ sortDescText : "내림차순 정렬",
+ lockText : "칼럼 잠금",
+ unlockText : "칼럼 잠금해제",
+ columnsText : "칼럼 목록"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "항목",
+ valueText : "값",
+ dateFormat : "m/j/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "크기변경을 위해 드래그하세요.",
+ collapsibleSplitTip : "크기변경을 위해 드래그, 숨기기 위해 더블클릭 하세요."
+ });
+}
+
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-lt.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-lt.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-lt.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,299 @@
+/**
+ * Lithuanian Translations (UTF-8)
+ * By Vladas Saulis, October 18, 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Kraunasi...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} pažymėta";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Uždaryti šią užsklandą";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Šio lauko reikšmė neteisinga";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Kraunasi...";
+}
+
+Date.monthNames = [
+ "Saulis",
+ "Vasaris",
+ "Kovas",
+ "Balandis",
+ "Gegužė",
+ "Birželis",
+ "Liepa",
+ "Rugpjūtis",
+ "Rugsėjis",
+ "Spalis",
+ "Lapkritis",
+ "Gruodis"
+];
+
+Date.getShortMonthName = function(month) {
+ return [
+ "Sau",
+ "Vas",
+ "Kov",
+ "Bal",
+ "Geg",
+ "Bir",
+ "Lie",
+ "Rgp",
+ "Rgs",
+ "Spa",
+ "Lap",
+ "Grd"
+ ];
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Pirmadienis",
+ "Antradienis",
+ "Trečiadienis",
+ "Ketvirtadienis",
+ "Penktadienis",
+ "Šeštadienis",
+ "Sekmadienis"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "Gerai",
+ cancel : "Atsisakyti",
+ yes : "Taip",
+ no : "Ne"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "Y-m-d");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Šiandien",
+ minText : "Ši data yra mažesnė už leistiną",
+ maxText : "Ši data yra didesnė už leistiną",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Next Month (Control+Right)',
+ prevText : 'Previous Month (Control+Left)',
+ monthYearText : 'Choose a month (Control+Up/Down perėjimui tarp metų)',
+ todayTip : "{0} (Spacebar)",
+ format : "y-m-d",
+ okText : " Gerai ",
+ cancelText : "Atsisaktyi",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Puslapis",
+ afterPageText : "iš {0}",
+ firstText : "Pirmas puslapis",
+ prevText : "Ankstesnis pusl.",
+ nextText : "Kitas puslapis",
+ lastText : "Pakutinis pusl.",
+ refreshText : "Atnaujinti",
+ displayMsg : "Rodomi įrašai {0} - {1} iš {2}",
+ emptyMsg : 'Nėra duomenų'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minimalus šio lauko ilgis yra {0}",
+ maxLengthText : "Maksimalus šio lauko ilgis yra {0}",
+ blankText : "Šis laukas yra reikalingas",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Minimalus šio lauko ilgis yra {0}",
+ maxText : "Maksimalus šio lauko ilgis yra {0}",
+ nanText : "{0} yra neleistina reikšmė"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Neprieinama",
+ disabledDatesText : "Neprieinama",
+ minText : "Šiame lauke data turi būti didesnė už {0}",
+ maxText : "Šiame lauke data turi būti mažesnėė už {0}",
+ invalidText : "{0} yra neteisinga data - ji turi būti įvesta formatu {1}",
+ format : "y-m-d",
+ altFormats : "y-m-d|y/m/d|Y-m-d|m/d|m-d|md|ymd|Ymd|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Kraunasi...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Šiame lauke turi būti el.pašto adresas formatu "user(a)domain.com"',
+ urlText : 'Šiame lauke turi būti nuoroda (URL) formatu "http:/'+'/www.domain.com"',
+ alphaText : 'Šiame lauke gali būti tik raidės ir ženklas "_"',
+ alphanumText : 'Šiame lauke gali būti tik raidės, skaičiai ir ženklas "_"'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Įveskite URL šiai nuorodai:',
+ buttonTips : {
+ bold : {
+ title: 'Bold (Ctrl+B)',
+ text: 'Teksto paryškinimas.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Italic (Ctrl+I)',
+ text: 'Kursyvinis tekstas.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Underline (Ctrl+U)',
+ text: 'Teksto pabraukimas.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Padidinti šriftą',
+ text: 'Padidinti šrifto dydį.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Sumažinti šriftą',
+ text: 'Sumažinti šrifto dydį.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Nuspalvinti teksto foną',
+ text: 'Pakeisti teksto fono spalvą.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Teksto spalva',
+ text: 'Pakeisti pažymėto teksto spalvą.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Išlyginti kairen',
+ text: 'Išlyginti tekstą į kairę.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centruoti tekstą',
+ text: 'Centruoti tektą redaktoriaus lange.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Išlyginti dešinėn',
+ text: 'Išlyginti tekstą į dešinę.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Paprastas sąrašas',
+ text: 'Pradėti neorganizuotą sąrašą.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Numeruotas sąrašas',
+ text: 'Pradėti numeruotą sąrašą.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Nuoroda',
+ text: 'Padaryti pažymėta tekstą nuoroda.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Išeities tekstas',
+ text: 'Persijungti į išeities teksto koregavimo režimą.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Rūšiuoti didėjančia tvarka",
+ sortDescText : "Rūšiuoti mažėjančia tvarka",
+ lockText : "Užfiksuoti stulpelį",
+ unlockText : "Atlaisvinti stulpelį",
+ columnsText : "Stulpeliai"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Nėra)',
+ groupByText : 'Grupuoti pagal šį lauką',
+ showGroupsText : 'Rodyti grupėse'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Pavadinimas",
+ valueText : "Reikšmė",
+ dateFormat : "Y-m-d"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Patraukite juostelę.",
+ collapsibleSplitTip : "Patraukite juostelę arba Paspauskite dvigubai kad paslėpti."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-lv.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-lv.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-lv.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,170 @@
+/**
+ * Latvian Translations
+ * By salix 17 April 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Notiek ielāde...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} iezīmētu rindu";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Aizver šo zīmni";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Vērtība šajā laukā nav pareiza";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Ielādē...";
+}
+
+Date.monthNames = [
+ "Janvāris",
+ "Februāris",
+ "Marts",
+ "Aprīlis",
+ "Maijs",
+ "Jūnijs",
+ "Jūlijs",
+ "Augusts",
+ "Septembris",
+ "Oktobris",
+ "Novembris",
+ "Decembris"
+];
+
+Date.dayNames = [
+ "Svētdiena",
+ "Pirmdiena",
+ "Otrdiena",
+ "Trešdiena",
+ "Ceturtdiena",
+ "Piektdiena",
+ "Sestdiena"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "Labi",
+ cancel : "Atcelt",
+ yes : "Jā",
+ no : "Nē"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Šodiena",
+ minText : "Norādītais datums ir mazāks par minimālo datumu",
+ maxText : "Norādītais datums ir lielāks par maksimālo datumu",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Nākamais mēnesis (Control+pa labi)',
+ prevText : 'Iepriekšējais mēnesis (Control+pa kreisi)',
+ monthYearText : 'Mēneša izvēle (Control+uz augšu/uz leju lai pārslēgtu gadus)',
+ todayTip : "{0} (Tukšumzīme)",
+ format : "d.m.Y",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Lapa",
+ afterPageText : "no {0}",
+ firstText : "Pirmā lapa",
+ prevText : "iepriekšējā lapa",
+ nextText : "Nākamā lapa",
+ lastText : "Pēdējā lapa",
+ refreshText : "Atsvaidzināt",
+ displayMsg : "Rāda no {0} līdz {1} ierakstiem, kopā {2}",
+ emptyMsg : 'Nav datu, ko parādīt'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minimālais garums šim laukam ir {0}",
+ maxLengthText : "Maksimālais garums šim laukam ir {0}",
+ blankText : "Šis ir obligāts lauks",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Minimālais garums šim laukam ir {0}",
+ maxText : "Maksimālais garums šim laukam ir {0}",
+ nanText : "{0} nav pareizs skaitlis"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Atspējots",
+ disabledDatesText : "Atspējots",
+ minText : "Datumam šajā laukā jābūt lielākam kā {0}",
+ maxText : "Datumam šajā laukā jābūt mazākam kā {0}",
+ invalidText : "{0} nav pareizs datums - tam jābūt šādā formātā: {1}",
+ format : "d.m.Y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Ielādē...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Šajā laukā jāieraksta e-pasta adrese formātā "lietotās(a)xn--domns-kza.lv"',
+ urlText : 'Šajā laukā jāieraksta URL formātā "http:/'+'/www.domēns.lv"',
+ alphaText : 'Šis lauks drīkst saturēt tikai burtus un _ zīmi',
+ alphanumText : 'Šis lauks drīkst saturēt tikai burtus, ciparus un _ zīmi'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Kārtot pieaugošā secībā",
+ sortDescText : "Kārtot dilstošā secībā",
+ lockText : "Noslēgt kolonnu",
+ unlockText : "Atslēgt kolonnu",
+ columnsText : "Kolonnas"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nosaukums",
+ valueText : "Vērtība",
+ dateFormat : "j.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Velc, lai mainītu izmēru.",
+ collapsibleSplitTip : "Velc, lai mainītu izmēru. Dubultklikšķis noslēpj apgabalu."
+ });
+}
\ No newline at end of file
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-mk.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-mk.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-mk.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,170 @@
+/*
+ * Macedonia translation
+ * By PetarD petar.dimitrijevic(a)vorteksed.com.mk (utf8 encoding)
+ * 23 April 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Вчитувам...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} избрани редици";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Затвори tab";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Вредноста во ова поле е невалидна";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Вчитувам...";
+}
+
+Date.monthNames = [
+ "Јануари",
+ "Февруари",
+ "Март",
+ "Април",
+ "Мај",
+ "Јуни",
+ "Јули",
+ "Август",
+ "Септември",
+ "Октомври",
+ "Ноември",
+ "Декември"
+];
+
+Date.dayNames = [
+ "Недела",
+ "Понеделник",
+ "Вторник",
+ "Среда",
+ "Четврток",
+ "Петок",
+ "Сабота"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "Потврди",
+ cancel : "Поништи",
+ yes : "Да",
+ no : "Не"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Денеска",
+ minText : "Овој датум е пред најмалиот датум",
+ maxText : "Овој датум е пред најголемиот датум",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Следен месец (Control+Стрелка десно)',
+ prevText : 'Претходен месец (Control+Стрелка лево)',
+ monthYearText : 'Изберете месец (Control+Стрелка горе/Стрелка десно за менување година)',
+ todayTip : "{0} (Spacebar)",
+ format : "d.m.y"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Страница",
+ afterPageText : "од {0}",
+ firstText : "Прва Страница",
+ prevText : "Претходна Страница",
+ nextText : "Следна Страница",
+ lastText : "Последна Страница",
+ refreshText : "Освежи",
+ displayMsg : "Прикажувам {0} - {1} од {2}",
+ emptyMsg : 'Нема податоци за приказ'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Минималната должина за ова поле е {0}",
+ maxLengthText : "Максималната должина за ова поле е {0}",
+ blankText : "Податоците во ова поле се потребни",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Минималната вредност за ова поле е {0}",
+ maxText : "Максималната вредност за ова поле е {0}",
+ nanText : "{0} не е валиден број"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Неактивно",
+ disabledDatesText : "Неактивно",
+ minText : "Датумот во ова поле мора да биде пред {0}",
+ maxText : "Датумот во ова поле мора да биде по {0}",
+ invalidText : "{0} не е валиден датум - мора да биде во формат {1}",
+ format : "d.m.y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Вчитувам...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Ова поле треба да биде e-mail адреса во формат "user(a)domain.com"',
+ urlText : 'Ова поле треба да биде URL во формат "http:/'+'/www.domain.com"',
+ alphaText : 'Ова поле треба да содржи само букви и _',
+ alphanumText : 'Ова поле треба да содржи само букви, бројки и _'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Сортирај Растечки",
+ sortDescText : "Сортирај Опаѓачки",
+ lockText : "Заклучи Колона",
+ unlockText : "Отклучи колона",
+ columnsText : "Колони"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Име",
+ valueText : "Вредност",
+ dateFormat : "m.d.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Повлечете за менување на големината.",
+ collapsibleSplitTip : "Повлечете за менување на големината. Дупли клик за криење."
+ });
+}
\ No newline at end of file
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-nl.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-nl.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-nl.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,292 @@
+/*
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * Dutch Translations
+ * by Ido Sebastiaan Bas van Oostveen (12 Oct 2007)
+ */
+
+/* Ext Core translations */
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Bezig met laden...</div>';
+
+/* Ext single string translations */
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} geselecteerde rij(en)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Sluit dit tabblad";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "De waarde in dit veld is onjuist";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Bezig met laden...";
+}
+
+/* Javascript month and days translations */
+Date.monthNames = [
+ "Januari",
+ "Februari",
+ "Maart",
+ "April",
+ "Mei",
+ "Juni",
+ "Juli",
+ "Augustus",
+ "September",
+ "Oktober",
+ "November",
+ "December"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Maa : 2,
+ Apr : 3,
+ Mei : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Okt : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Zondag",
+ "Maandag",
+ "Dinsdag",
+ "Woensdag",
+ "Donderdag",
+ "Vrijdag",
+ "Zaterdag"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Annuleren",
+ yes : "Ja",
+ no : "Nee"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d-m-y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Vandaag",
+ minText : "Deze datum is eerder dan de minimum datum",
+ maxText : "Deze datum is later dan de maximum datum",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Volgende Maand (Control+Rechts)',
+ prevText : 'Vorige Maand (Control+Links)',
+ monthYearText : 'Kies een maand (Control+Omhoog/Beneden volgend/vorige jaar)',
+ todayTip : "{0} (Spatie)",
+ format : "d-m-y",
+ okText : " OK ",
+ cancelText : "Annuleren",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Pagina",
+ afterPageText : "van {0}",
+ firstText : "Eerste Pagina",
+ prevText : "Vorige Pagina",
+ nextText : "Volgende Pagina",
+ lastText : "Laatste Pagina",
+ refreshText : "Ververs",
+ displayMsg : "Getoond {0} - {1} van {2}",
+ emptyMsg : 'Geen gegeven om weer te geven'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "De minimale lengte voor dit veld is {0}",
+ maxLengthText : "De maximale lengte voor dit veld is {0}",
+ blankText : "Dit veld is verplicht",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "De minimale waarde voor dit veld is {0}",
+ maxText : "De maximale waarde voor dit veld is {0}",
+ nanText : "{0} is geen geldig getal"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Uitgeschakeld",
+ disabledDatesText : "Uitgeschakeld",
+ minText : "De datum in dit veld moet na {0} liggen",
+ maxText : "De datum in dit veld moet voor {0} liggen",
+ invalidText : "{0} is geen geldige datum - formaat voor datum is {1}",
+ format : "d-m-y",
+ altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Bezig met laden...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Dit veld moet een e-mail adres zijn in het formaat "gebruiker(a)domein.nl"',
+ urlText : 'Dit veld moet een URL zijn in het formaat "http:/'+'/www.domein.nl"',
+ alphaText : 'Dit veld mag alleen letters en _ bevatten',
+ alphanumText : 'Dit veld mag alleen letters, cijfers en _ bevatten'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Vul hier het Internet adres voor de link in:',
+ buttonTips : {
+ bold : {
+ title: 'Vet (Ctrl+B)',
+ text: 'Maak de geselecteerde tekst vet gedrukt.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Cursief (Ctrl+I)',
+ text: 'Maak de geselecteerde tekst cursief.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Onderstrepen (Ctrl+U)',
+ text: 'Onderstreep de geselecteerde tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Tekst Vergroten',
+ text: 'Vergroot het lettertype.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Tekst Verkleinen',
+ text: 'Verklein het lettertype.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Tekst Achtergrond Kleur',
+ text: 'Verander de achtergrond kleur van de geselecteerde tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Lettertype Kleur',
+ text: 'Verander de kleur van de geselecteerde tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Tekst Links Uitlijnen',
+ text: 'Lijn de tekst links uit.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Tekst Centreren',
+ text: 'Centreer de tekst in de editor.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Tekst Richts Uitlijnen',
+ text: 'Lijn de tekst rechts uit.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Punten Lijst',
+ text: 'Begin een ongenummerde lijst.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Genummerde Lijst',
+ text: 'Begin een genummerde lijst.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hyperlink',
+ text: 'Maak van de geselecteerde tekst een hyperlink.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Bron Aanpassen',
+ text: 'Schakel modus over naar bron aanpassen.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sorteer Oplopend",
+ sortDescText : "Sorteer Aflopend",
+ lockText : "Kolom Vastzetten",
+ unlockText : "Kolom Vrijgeven",
+ columnsText : "Kolommen"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Geen)',
+ groupByText : 'Dit veld groeperen',
+ showGroupsText : 'Zien als groepen'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Naam",
+ valueText : "Waarde",
+ dateFormat : "Y-m-j"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Sleep om grootte aan te passen.",
+ collapsibleSplitTip : "Sleep om grootte aan te passen. Dubbel klikken om te verbergen."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-no_NB.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-no_NB.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-no_NB.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,288 @@
+/**
+ *
+ * Norwegian translation (Bokmål: no-NB)
+ * By Tore Kjørsvik 21-January-2008
+ *
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Laster...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} markert(e) rad(er)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Lukk denne fanen";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Verdien i dette feltet er ugyldig";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Laster...";
+}
+
+Date.monthNames = [
+ "Januar",
+ "Februar",
+ "Mars",
+ "April",
+ "Mai",
+ "Juni",
+ "Juli",
+ "August",
+ "September",
+ "Oktober",
+ "November",
+ "Desember"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ Mai : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Okt : 9,
+ Nov : 10,
+ Des : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Søndag",
+ "Mandag",
+ "Tirsdag",
+ "Onsdag",
+ "Torsdag",
+ "Fredag",
+ "Lørdag"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Avbryt",
+ yes : "Ja",
+ no : "Nei"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "I dag",
+ minText : "Denne datoen er før tidligste tillatte dato",
+ maxText : "Denne datoen er etter seneste tillatte dato",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Neste måned (Control+Pil Høyre)',
+ prevText : 'Forrige måned (Control+Pil Venstre)',
+ monthYearText : 'Velg en måned (Control+Pil Opp/Ned for å skifte år)',
+ todayTip : "{0} (Mellomrom)",
+ format : "d.m.y",
+ okText : " OK ",
+ cancelText : "Avbryt",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Side",
+ afterPageText : "av {0}",
+ firstText : "Første side",
+ prevText : "Forrige side",
+ nextText : "Neste side",
+ lastText : "Siste side",
+ refreshText : "Oppdater",
+ displayMsg : "Viser {0} - {1} av {2}",
+ emptyMsg : 'Ingen data å vise'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Den minste lengden for dette feltet er {0}",
+ maxLengthText : "Den største lengden for dette feltet er {0}",
+ blankText : "Dette feltet er påkrevd",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Den minste verdien for dette feltet er {0}",
+ maxText : "Den største verdien for dette feltet er {0}",
+ nanText : "{0} er ikke et gyldig nummer"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Deaktivert",
+ disabledDatesText : "Deaktivert",
+ minText : "Datoen i dette feltet må være etter {0}",
+ maxText : "Datoen i dette feltet må være før {0}",
+ invalidText : "{0} er ikke en gyldig dato - den må være på formatet {1}",
+ format : "d.m.y",
+ altFormats : "d.m.Y|d/m/y|d/m/Y|d-m-y|d-m-Y|d.m|d/m|d-m|dm|dmy|dmY|d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Laster...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Dette feltet skal være en epost adresse på formatet "bruker(a)domene.no"',
+ urlText : 'Dette feltet skal være en link (URL) på formatet "http:/'+'/www.domene.no"',
+ alphaText : 'Dette feltet skal kun inneholde bokstaver og _',
+ alphanumText : 'Dette feltet skal kun inneholde bokstaver, tall og _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Vennligst skriv inn URL for lenken:',
+ buttonTips : {
+ bold : {
+ title: 'Fet (Ctrl+B)',
+ text: 'Gjør den valgte teksten fet.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Kursiv (Ctrl+I)',
+ text: 'Gjør den valgte teksten kursiv.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Understrek (Ctrl+U)',
+ text: 'Understrek den valgte teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Forstørr tekst',
+ text: 'Gjør fontstørrelse større.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Forminsk tekst',
+ text: 'Gjør fontstørrelse mindre.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Tekst markeringsfarge',
+ text: 'Endre bakgrunnsfarge til den valgte teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Font farge',
+ text: 'Endre farge på den valgte teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Venstrejuster tekst',
+ text: 'Venstrejuster teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Sentrer tekst',
+ text: 'Sentrer teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Høyrejuster tekst',
+ text: 'Høyrejuster teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Punktliste',
+ text: 'Start en punktliste.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Nummerert liste',
+ text: 'Start en nummerert liste.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Lenke',
+ text: 'Gjør den valgte teksten til en lenke.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Rediger kilde',
+ text: 'Bytt til kilderedigeringsvisning.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sorter stigende",
+ sortDescText : "Sorter synkende",
+ lockText : "Lås kolonne",
+ unlockText : "Lås opp kolonne",
+ columnsText : "Kolonner"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Ingen)',
+ groupByText : 'Grupper etter dette feltet',
+ showGroupsText : 'Vis i grupper'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Navn",
+ valueText : "Verdi",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Dra for å endre størrelse.",
+ collapsibleSplitTip : "Dra for å endre størrelse. Dobbelklikk for å skjule."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-no_NN.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-no_NN.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-no_NN.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,288 @@
+/**
+ *
+ * Norwegian translation (Nynorsk: no-NN)
+ * By Tore Kjørsvik 21-January-2008
+ *
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Lastar...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} markert(e) rad(er)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Lukk denne fana";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Verdien i dette feltet er ugyldig";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Lastar...";
+}
+
+Date.monthNames = [
+ "Januar",
+ "Februar",
+ "Mars",
+ "April",
+ "Mai",
+ "Juni",
+ "Juli",
+ "August",
+ "September",
+ "Oktober",
+ "November",
+ "Desember"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ Mai : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Okt : 9,
+ Nov : 10,
+ Des : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Søndag",
+ "Måndag",
+ "Tysdag",
+ "Onsdag",
+ "Torsdag",
+ "Fredag",
+ "Laurdag"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Avbryt",
+ yes : "Ja",
+ no : "Nei"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "I dag",
+ minText : "Denne datoen er før tidlegaste tillatne dato",
+ maxText : "Denne datoen er etter seinaste tillatne dato",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Neste månad (Control+Pil Høgre)',
+ prevText : 'Førre månad (Control+Pil Venstre)',
+ monthYearText : 'Velj ein månad (Control+Pil Opp/Ned for å skifte år)',
+ todayTip : "{0} (Mellomrom)",
+ format : "d.m.y",
+ okText : " OK ",
+ cancelText : "Avbryt",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Side",
+ afterPageText : "av {0}",
+ firstText : "Første sida",
+ prevText : "Førre sida",
+ nextText : "Neste sida",
+ lastText : "Siste sida",
+ refreshText : "Oppdater",
+ displayMsg : "Viser {0} - {1} av {2}",
+ emptyMsg : 'Ingen data å vise'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Den minste lengda for dette feltet er {0}",
+ maxLengthText : "Den største lengda for dette feltet er {0}",
+ blankText : "Dette feltet er påkravd",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Den minste verdien for dette feltet er {0}",
+ maxText : "Den største verdien for dette feltet er {0}",
+ nanText : "{0} er ikkje eit gyldig nummer"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Deaktivert",
+ disabledDatesText : "Deaktivert",
+ minText : "Datoen i dette feltet må vere etter {0}",
+ maxText : "Datoen i dette feltet må vere før {0}",
+ invalidText : "{0} er ikkje ein gyldig dato - han må vere på formatet {1}",
+ format : "d.m.y",
+ altFormats : "d.m.Y|d/m/y|d/m/Y|d-m-y|d-m-Y|d.m|d/m|d-m|dm|dmy|dmY|d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Lastar...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Dette feltet skal vere ei epost adresse på formatet "bruker(a)domene.no"',
+ urlText : 'Dette feltet skal vere ein link (URL) på formatet "http:/'+'/www.domene.no"',
+ alphaText : 'Dette feltet skal berre innehalde bokstavar og _',
+ alphanumText : 'Dette feltet skal berre innehalde bokstavar, tal og _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Ver venleg og skriv inn URL for lenken:',
+ buttonTips : {
+ bold : {
+ title: 'Feit (Ctrl+B)',
+ text: 'Gjer den valde teksten feit.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Kursiv (Ctrl+I)',
+ text: 'Gjer den valde teksten kursiv.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Understrek (Ctrl+U)',
+ text: 'Understrek den valde teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Forstørr tekst',
+ text: 'Gjer fontstorleik større.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Forminsk tekst',
+ text: 'Gjer fontstorleik mindre.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Tekst markeringsfarge',
+ text: 'Endre bakgrunnsfarge til den valde teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Font farge',
+ text: 'Endre farge på den valde teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Venstrejuster tekst',
+ text: 'Venstrejuster teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Sentrer tekst',
+ text: 'Sentrer teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Høgrejuster tekst',
+ text: 'Høgrejuster teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Punktliste',
+ text: 'Start ei punktliste.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Nummerert liste',
+ text: 'Start ei nummerert liste.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Lenke',
+ text: 'Gjer den valde teksten til ei lenke.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Rediger kjelde',
+ text: 'Bytt til kjelderedigeringsvising.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sorter stigande",
+ sortDescText : "Sorter fallande",
+ lockText : "Lås kolonne",
+ unlockText : "Lås opp kolonne",
+ columnsText : "Kolonner"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Ingen)',
+ groupByText : 'Grupper etter dette feltet',
+ showGroupsText : 'Vis i grupper'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Namn",
+ valueText : "Verdi",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Dra for å endre storleik.",
+ collapsibleSplitTip : "Dra for å endre storleik. Dobbelklikk for å skjule."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pl.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pl.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pl.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,298 @@
+/**
+ * Polish Translations
+ * By vbert 17-April-2007
+ * Updated by mmar 16-November-2007
+ * Encoding: utf-8
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Wczytywanie danych...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} wybrano wiersze(y)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Zamknij zakładkę";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Wartość tego pola jest niewłaściwa";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Wczytywanie danych...";
+}
+
+Date.monthNames = [
+ "Styczeń",
+ "Luty",
+ "Marzec",
+ "Kwiecień",
+ "Maj",
+ "Czerwiec",
+ "Lipiec",
+ "Sierpień",
+ "Wrzesień",
+ "Październik",
+ "Listopad",
+ "Grudzień"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Sty : 0,
+ Lut : 1,
+ Mar : 2,
+ Kwi : 3,
+ Maj : 4,
+ Cze : 5,
+ Lip : 6,
+ Sie : 7,
+ Wrz : 8,
+ Paź : 9,
+ Lis : 10,
+ Gru : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Niedziela",
+ "Poniedziałek",
+ "Wtorek",
+ "Środa",
+ "Czwartek",
+ "Piątek",
+ "Sobota"
+];
+
+Date.getShortDayName = function(day) {
+ switch(day) {
+ case 0: return 'ndz';
+ case 1: return 'pon';
+ case 2: return 'wt';
+ case 3: return 'śr';
+ case 4: return 'czw';
+ case 5: return 'pt';
+ case 6: return 'sob';
+ default: return '';
+ }
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Anuluj",
+ yes : "Tak",
+ no : "Nie"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "Y-m-d");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ startDay : 1,
+ todayText : "Dzisiaj",
+ minText : "Data jest wcześniejsza od daty minimalnej",
+ maxText : "Data jest późniejsza od daty maksymalnej",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : "Następny miesiąc (Control+StrzałkaWPrawo)",
+ prevText : "Poprzedni miesiąc (Control+StrzałkaWLewo)",
+ monthYearText : "Wybierz miesiąc (Control+Up/Down aby zmienić rok)",
+ todayTip : "{0} (Spacja)",
+ format : "Y-m-d",
+ okText : " OK ",
+ cancelText : "Anuluj",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Strona",
+ afterPageText : "z {0}",
+ firstText : "Pierwsza strona",
+ prevText : "Poprzednia strona",
+ nextText : "Następna strona",
+ lastText : "Ostatnia strona",
+ refreshText : "Odśwież",
+ displayMsg : "Wyświetlono {0} - {1} z {2}",
+ emptyMsg : "Brak danych do wyświetlenia"
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minimalna ilość znaków dla tego pola to {0}",
+ maxLengthText : "Maksymalna ilość znaków dla tego pola to {0}",
+ blankText : "To pole jest wymagane",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Minimalna wartość dla tego pola to {0}",
+ maxText : "Maksymalna wartość dla tego pola to {0}",
+ nanText : "{0} to nie jest właściwa wartość"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Wyłączony",
+ disabledDatesText : "Wyłączony",
+ minText : "Data w tym polu musi być późniejsza od {0}",
+ maxText : "Data w tym polu musi być wcześniejsza od {0}",
+ invalidText : "{0} to nie jest prawidłowa data - prawidłowy format daty {1}",
+ format : "Y-m-d",
+ altFormats : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Wczytuję...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'To pole wymaga podania adresu e-mail w formacie: "nazwa(a)domena.pl"',
+ urlText : 'To pole wymaga podania adresu strony www w formacie: "http:/'+'/www.domena.pl"',
+ alphaText : 'To pole wymaga podania tylko liter i _',
+ alphanumText : 'To pole wymaga podania tylko liter, cyfr i _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Wprowadź adres URL strony:',
+ buttonTips : {
+ bold : {
+ title: 'Pogrubienie (Ctrl+B)',
+ text: 'Ustaw styl zaznaczonego tekstu na pogrubiony.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Kursywa (Ctrl+I)',
+ text: 'Ustaw styl zaznaczonego tekstu na kursywę.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Podkreślenie (Ctrl+U)',
+ text: 'Podkreśl zaznaczony tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Zwiększ czcionkę',
+ text: 'Zwiększ rozmiar czcionki.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Zmniejsz czcionkę',
+ text: 'Zmniejsz rozmiar czcionki.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Wyróżnienie',
+ text: 'Zmień kolor wyróżnienia zaznaczonego tekstu.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Kolor czcionki',
+ text: 'Zmień kolor zaznaczonego tekstu.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Do lewej',
+ text: 'Wyrównaj tekst do lewej.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Wyśrodkuj',
+ text: 'Wyrównaj tekst do środka.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Do prawej',
+ text: 'Wyrównaj tekst do prawej.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Lista wypunktowana',
+ text: 'Rozpocznij listę wypunktowaną.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Lista numerowana',
+ text: 'Rozpocznij listę numerowaną.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hiperłącze',
+ text: 'Przekształć zaznaczony tekst w hiperłącze.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Edycja źródła',
+ text: 'Przełącz w tryb edycji źródła.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sortuj rosnąco",
+ sortDescText : "Sortuj malejąco",
+ lockText : "Zablokuj kolumnę",
+ unlockText : "Odblokuj kolumnę",
+ columnsText : "Kolumny"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(None)',
+ groupByText : 'Grupuj po tym polu',
+ showGroupsText : 'Pokaż w grupach'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nazwa",
+ valueText : "Wartość",
+ dateFormat : "Y-m-d"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Przeciągnij aby zmienić rozmiar.",
+ collapsibleSplitTip : "Przeciągnij aby zmienić rozmiar. Kliknij dwukrotnie aby ukryć."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pt.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pt.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pt.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,254 @@
+/*
+ * Portuguese/Brazil Translation by Weber Souza
+ * 08 April 2007
+ * Updated by Allan Brazute Alves (EthraZa)
+ * 06 September 2007
+ * Adapted to European Portuguese by Helder Batista (hbatista)
+ * 31 January 2008
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Carregando...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} linha(s) seleccionada(s)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Fechar";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "O valor para este campo é inválido";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Carregando...";
+}
+
+Date.monthNames = [
+ "Janeiro",
+ "Fevereiro",
+ "Março",
+ "Abril",
+ "Maio",
+ "Junho",
+ "Julho",
+ "Agosto",
+ "Setembro",
+ "Outubro",
+ "Novembro",
+ "Dezembro"
+];
+
+Date.dayNames = [
+ "Domingo",
+ "Segunda",
+ "Terça",
+ "Quarta",
+ "Quinta",
+ "Sexta",
+ "Sábado"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Cancelar",
+ yes : "Sim",
+ no : "Não"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Hoje",
+ minText : "Esta data é anterior à menor data",
+ maxText : "Esta data é posterior à maior data",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Próximo Mês (Control+Direita)',
+ prevText : 'Mês Anterior (Control+Esquerda)',
+ monthYearText : 'Escolha um Mês (Control+Cima/Baixo para mover entre os anos)',
+ todayTip : "{0} (Espaço)",
+ format : "d/m/Y",
+ okText : " OK ",
+ cancelText : "Cancelar",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Página",
+ afterPageText : "de {0}",
+ firstText : "Primeira Página",
+ prevText : "Página Anterior",
+ nextText : "Próxima Página",
+ lastText : "Última Página",
+ refreshText : "Atualizar",
+ displayMsg : "<b>{0} à {1} de {2} registo(s)</b>",
+ emptyMsg : 'Sem registos para exibir'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "O tamanho mínimo para este campo é {0}",
+ maxLengthText : "O tamanho máximo para este campo é {0}",
+ blankText : "Este campo é obrigatório.",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "O valor mínimo para este campo é {0}",
+ maxText : "O valor máximo para este campo é {0}",
+ nanText : "{0} não é um número válido"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Desabilitado",
+ disabledDatesText : "Desabilitado",
+ minText : "A data deste campo deve ser posterior a {0}",
+ maxText : "A data deste campo deve ser anterior a {0}",
+ invalidText : "{0} não é uma data válida - deve ser usado o formato {1}",
+ format : "d/m/Y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Carregando...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Este campo deve ser um endereço de e-mail válido, no formato "utilizador(a)dominio.com"',
+ urlText : 'Este campo deve ser um URL no formato "http:/'+'/www.dominio.com"',
+ alphaText : 'Este campo deve conter apenas letras e _',
+ alphanumText : 'Este campo deve conter apenas letras, números e _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Por favor, entre com o URL do link:',
+ buttonTips : {
+ bold : {
+ title: 'Negrito (Ctrl+B)',
+ text: 'Deixa o texto seleccionado em negrito.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Italico (Ctrl+I)',
+ text: 'Deixa o texto seleccionado em italico.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Sublinhado (Ctrl+U)',
+ text: 'Sublinha o texto seleccionado.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Aumentar Texto',
+ text: 'Aumenta o tamanho da fonte.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Diminuir Texto',
+ text: 'Diminui o tamanho da fonte.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Cor de Fundo',
+ text: 'Muda a cor do fundo do texto seleccionado.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Cor da Fonte',
+ text: 'Muda a cor do texto seleccionado.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Alinhar à Esquerda',
+ text: 'Alinha o texto à esquerda.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centrar Texto',
+ text: 'Centra o texto no editor.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Alinhar à Direita',
+ text: 'Alinha o texto à direita.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Lista com Marcadores',
+ text: 'Inicia uma lista com marcadores.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Lista Numerada',
+ text: 'Inicia uma lista numerada.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hyperligação',
+ text: 'Transforma o texto selecionado num hyperlink.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Editar Fonte',
+ text: 'Troca para o modo de edição de código fonte.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Ordem Ascendente",
+ sortDescText : "Ordem Descendente",
+ lockText : "Bloquear Coluna",
+ unlockText : "Desbloquear Coluna",
+ columnsText : "Colunas"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nome",
+ valueText : "Valor",
+ dateFormat : "d/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Arraste para redimensionar.",
+ collapsibleSplitTip : "Arraste para redimensionar. Duplo clique para esconder."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pt_BR.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pt_BR.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pt_BR.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,275 @@
+/*
+ * Portuguese/Brazil Translation by Weber Souza
+ * 08 April 2007
+ * Updated by Allan Brazute Alves (EthraZa)
+ * 06 September 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Carregando...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} linha(s) selecionada(s)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Fechar";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "O valor para este campo é inválido";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Carregando...";
+}
+
+Date.monthNames = [
+ "Janeiro",
+ "Fevereiro",
+ "Março",
+ "Abril",
+ "Maio",
+ "Junho",
+ "Julho",
+ "Agosto",
+ "Setembro",
+ "Outubro",
+ "Novembro",
+ "Dezembro"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Fev : 1,
+ Mar : 2,
+ Abr : 3,
+ Mai : 4,
+ Jun : 5,
+ Jul : 6,
+ Ago : 7,
+ Set : 8,
+ Out : 9,
+ Nov : 10,
+ Dez : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Domingo",
+ "Segunda",
+ "Terça",
+ "Quarta",
+ "Quinta",
+ "Sexta",
+ "Sábado"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Cancelar",
+ yes : "Sim",
+ no : "Não"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Hoje",
+ minText : "Esta data é anterior a menor data",
+ maxText : "Esta data é posterior a maior data",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Próximo Mês (Control+Direita)',
+ prevText : 'Mês Anterior (Control+Esquerda)',
+ monthYearText : 'Escolha um Mês (Control+Cima/Baixo para mover entre os anos)',
+ todayTip : "{0} (Espaço)",
+ format : "d/m/Y",
+ okText : " OK ",
+ cancelText : "Cancelar",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Página",
+ afterPageText : "de {0}",
+ firstText : "Primeira Página",
+ prevText : "Página Anterior",
+ nextText : "Próxima Página",
+ lastText : "Última Página",
+ refreshText : "Atualizar",
+ displayMsg : "<b>{0} à {1} de {2} registro(s)</b>",
+ emptyMsg : 'Sem registros para exibir'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "O tamanho mínimo para este campo é {0}",
+ maxLengthText : "O tamanho máximo para este campo é {0}",
+ blankText : "Este campo é obrigatório.",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "O valor mínimo para este campo é {0}",
+ maxText : "O valor máximo para este campo é {0}",
+ nanText : "{0} não é um número válido"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Desabilitado",
+ disabledDatesText : "Desabilitado",
+ minText : "A data deste campo deve ser posterior a {0}",
+ maxText : "A data deste campo deve ser anterior a {0}",
+ invalidText : "{0} não é uma data válida - deve ser informado no formato {1}",
+ format : "d/m/Y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Carregando...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Este campo deve ser um endereço de e-mail válido, no formado "usuario(a)dominio.com.br"',
+ urlText : 'Este campo deve ser uma URL no formato "http:/'+'/www.dominio.com.br"',
+ alphaText : 'Este campo deve conter apenas letras e _',
+ alphanumText : 'Este campo deve conter apenas letras, números e _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Porfavor, entre com a URL do link:',
+ buttonTips : {
+ bold : {
+ title: 'Negrito (Ctrl+B)',
+ text: 'Deixa o texto selecionado em negrito.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Italico (Ctrl+I)',
+ text: 'Deixa o texto selecionado em italico.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Sublinhado (Ctrl+U)',
+ text: 'Sublinha o texto selecionado.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Aumentar Texto',
+ text: 'Aumenta o tamanho da fonte.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Diminuir Texto',
+ text: 'Diminui o tamanho da fonte.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Cor de Fundo',
+ text: 'Muda a cor do fundo do texto selecionado.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Cor da Fonte',
+ text: 'Muda a cor do texto selecionado.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Alinhar à Esquerda',
+ text: 'Alinha o texto à esquerda.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centralizar Texto',
+ text: 'Centraliza o texto no editor.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Alinhar à Direita',
+ text: 'Alinha o texto à direita.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Lista com Marcadores',
+ text: 'Inicia uma lista com marcadores.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Lista Numerada',
+ text: 'Inicia uma lista numerada.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hyperligação',
+ text: 'Transforma o texto selecionado em um hyperlink.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Editar Fonte',
+ text: 'Troca para o modo de edição de código fonte.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Ordem Ascendente",
+ sortDescText : "Ordem Descendente",
+ lockText : "Bloquear Coluna",
+ unlockText : "Desbloquear Coluna",
+ columnsText : "Colunas"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nome",
+ valueText : "Valor",
+ dateFormat : "d/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Arraste para redimencionar.",
+ collapsibleSplitTip : "Arraste para redimencionar. Duplo clique para esconder."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ro.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ro.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ro.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,169 @@
+/**
+ * Translation by Lucian Lature 04-24-2007
+ * Romanian Translations
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Încărcare...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} rând(uri) selectate";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Închide acest tab";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Valoarea acestui câmp este invalidă";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Încărcare...";
+}
+
+Date.monthNames = [
+ "Ianuarie",
+ "Februarie",
+ "Martie",
+ "Aprilie",
+ "Mai",
+ "Iunie",
+ "Iulie",
+ "August",
+ "Septembrie",
+ "Octombrie",
+ "Noiembrie",
+ "Decembrie"
+];
+
+Date.dayNames = [
+ "Duminică",
+ "Luni",
+ "Marţi",
+ "Miercuri",
+ "Joi",
+ "Vineri",
+ "Sâmbătă"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Renunţă",
+ yes : "Da",
+ no : "Nu"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d-m-Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Astăzi",
+ minText : "Această zi este înaintea datei de început",
+ maxText : "Această zi este după ultimul termen",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Următoarea lună (Control+Right)',
+ prevText : 'Luna anterioară (Control+Left)',
+ monthYearText : 'Alege o lună (Control+Up/Down pentru a parcurge anii)',
+ todayTip : "{0} (Spacebar)",
+ format : "d-m-y"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Pagina",
+ afterPageText : "din {0}",
+ firstText : "Prima pagină",
+ prevText : "Pagina precedentă",
+ nextText : "Următoarea pagină",
+ lastText : "Ultima pagină",
+ refreshText : "Reîmprospătare",
+ displayMsg : "Afişează {0} - {1} din {2}",
+ emptyMsg : 'Nu sunt date de afişat'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Lungimea minimă pentru acest câmp este de {0}",
+ maxLengthText : "Lungimea maximă pentru acest câmp este {0}",
+ blankText : "Acest câmp este obligatoriu",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Valoarea minimă permisă a acestui câmp este {0}",
+ maxText : "Valaorea maximă permisă a acestui câmp este {0}",
+ nanText : "{0} nu este un număr valid"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Inactiv",
+ disabledDatesText : "Inactiv",
+ minText : "Data acestui câmp trebuie să fie după {0}",
+ maxText : "Data acestui câmp trebuie sa fie înainte de {0}",
+ invalidText : "{0} nu este o dată validă - trebuie să fie în formatul {1}",
+ format : "d-m-y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Încărcare...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Acest câmp trebuie să conţină o adresă de e-mail în formatul "user(a)domain.com"',
+ urlText : 'Acest câmp trebuie să conţină o adresă URL în formatul "http:/'+'/www.domain.com"',
+ alphaText : 'Acest câmp trebuie să conţină doar litere şi _',
+ alphanumText : 'Acest câmp trebuie să conţină doar litere, cifre şi _'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sortare ascendentă",
+ sortDescText : "Sortare descendentă",
+ lockText : "Blochează coloana",
+ unlockText : "Deblochează coloana",
+ columnsText : "Coloane"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nume",
+ valueText : "Valoare",
+ dateFormat : "m/j/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Trage pentru redimensionare.",
+ collapsibleSplitTip : "Trage pentru redimensionare. Dublu-click pentru ascundere."
+ });
+}
\ No newline at end of file
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ru.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ru.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ru.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,294 @@
+/*
+ * Russian translation
+ * By ZooKeeper (utf-8 encoding)
+ * 6 November 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Идет загрузка...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} выбранных строк";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Закрыть эту вкладку";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Значение в этом поле неверное";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Загрузка...";
+}
+
+Date.monthNames = [
+ "Январь",
+ "Февраль",
+ "Март",
+ "Апрель",
+ "Май",
+ "Июнь",
+ "Июль",
+ "Август",
+ "Сентябрь",
+ "Октябрь",
+ "Ноябрь",
+ "Декабрь"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Воскресенье",
+ "Понедельник",
+ "Вторник",
+ "Среда",
+ "Четверг",
+ "Пятница",
+ "Суббота"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Отмена",
+ yes : "Да",
+ no : "Нет"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Сегодня",
+ minText : "Эта дата раньше минимальной даты",
+ maxText : "Эта дата позже максимальной даты",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Следующий месяц (Control+Вправо)',
+ prevText : 'Предыдущий месяц (Control+Влево)',
+ monthYearText : 'Выбор месяца (Control+Вверх/Вниз для выбора года)',
+ todayTip : "{0} (Пробел)",
+ format : "d.m.y",
+ okText : " OK ",
+ cancelText : "Отмена",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Страница",
+ afterPageText : "из {0}",
+ firstText : "Первая страница",
+ prevText : "Предыдущая страница",
+ nextText : "Следующая страница",
+ lastText : "Последняя страница",
+ refreshText : "Обновить",
+ displayMsg : "Отображаются записи с {0} по {1}, всего {2}",
+ emptyMsg : 'Нет данных для отображения'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Минимальная длина этого поля {0}",
+ maxLengthText : "Максимальная длина этого поля {0}",
+ blankText : "Это поле обязательно для заполнения",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Значение этого поля не может быть меньше {0}",
+ maxText : "Значение этого поля не может быть больше {0}",
+ nanText : "{0} не является числом"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Не доступно",
+ disabledDatesText : "Не доступно",
+ minText : "Дата в этом поле должна быть позде {0}",
+ maxText : "Дата в этом поле должна быть раньше {0}",
+ invalidText : "{0} не является правильной датой - дата должна быть указана в формате {1}",
+ format : "d.m.y",
+ altFormats : "d.m.y|d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Загрузка...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Это поле должно содержать адрес электронной почты в формате "user(a)domain.com"',
+ urlText : 'Это поле должно содержать URL в формате "http:/'+'/www.domain.com"',
+ alphaText : 'Это поле должно содержать только латинские буквы и символ подчеркивания "_"',
+ alphanumText : 'Это поле должно содержать только латинские буквы, цифры и символ подчеркивания "_"'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Пожалуйста введите адрес:',
+ buttonTips : {
+ bold : {
+ title: 'Полужирный (Ctrl+B)',
+ text: 'Применение полужирного начертания к выделенному тексту.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Курсив (Ctrl+I)',
+ text: 'Применение курсивного начертания к выделенному тексту.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Подчёркнутый (Ctrl+U)',
+ text: 'Подчёркивание выделенного текста.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Увеличить размер',
+ text: 'Увеличение размера шрифта.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Уменьшить размер',
+ text: 'Уменьшение размера шрифта.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Заливка',
+ text: 'Изменение цвета фона для выделенного текста или абзаца.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Цвет текста',
+ text: 'Измение цвета текста.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Выровнять текст по левому краю',
+ text: 'Выровнивание текста по левому краю.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'По центру',
+ text: 'Выровнивание текста по центру.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Выровнять текст по правому краю',
+ text: 'Выровнивание текста по правому краю.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Маркеры',
+ text: 'Начать маркированный список.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Нумерация',
+ text: 'Начать нумернованный список.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Вставить гиперссылку',
+ text: 'Создание ссылки из выделенного текста.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Исходный код',
+ text: 'Переключиться на исходный код.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Сортировать по возрастанию",
+ sortDescText : "Сортировать по убыванию",
+ lockText : "Закрепить столбец",
+ unlockText : "Снять закрепление столбца",
+ columnsText : "Столбцы"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Пусто)',
+ groupByText : 'Группировать по этому полю',
+ showGroupsText : 'Отображать по группам'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Название",
+ valueText : "Значение",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.SplitLayoutRegion){
+ Ext.apply(Ext.SplitLayoutRegion.prototype, {
+ splitTip : "Тяните для изменения размера.",
+ collapsibleSplitTip : "Тяните для изменения размера. Двойной щелчок спрячет панель."
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Тяните для изменения размера.",
+ collapsibleSplitTip : "Тяните для изменения размера. Двойной щелчок спрячет панель."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sk.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sk.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sk.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,176 @@
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ */
+
+ /* Slovak Translation by Michal Thomka
+ * 14 April 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Nahrávam...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} oznaèených riadkov";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Zavrie túto záloku";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Hodnota v tomto poli je nesprávna";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Nahrávam...";
+}
+
+Date.monthNames = [
+ "Január",
+ "Február",
+ "Marec",
+ "Apríl",
+ "Máj",
+ "Jún",
+ "Júl",
+ "August",
+ "September",
+ "Október",
+ "November",
+ "December"
+];
+
+Date.dayNames = [
+ "NedeŸa",
+ "Pondelok",
+ "Utorok",
+ "Streda",
+ "tvrtok",
+ "Piatok",
+ "Sobota"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Zrui",
+ yes : "Áno",
+ no : "Nie"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "m/d/R");
+ };
+}
+
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Dnes",
+ minText : "Tento dátum je mení ako minimálny moný dátum",
+ maxText : "Tento dátum je väèí ako maximálny moný dátum",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Ïalí Mesiac (Control+Doprava)',
+ prevText : 'Predch. Mesiac (Control+DoŸava)',
+ monthYearText : 'Vyberte Mesiac (Control+Hore/Dole pre posun rokov)',
+ todayTip : "{0} (Medzerník)",
+ format : "m/d/r"
+ });
+}
+
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Strana",
+ afterPageText : "z {0}",
+ firstText : "Prvá Strana",
+ prevText : "Predch. Strana",
+ nextText : "Ïalia Strana",
+ lastText : "Posledná strana",
+ refreshText : "Obnovi",
+ displayMsg : "Zobrazujem {0} - {1} z {2}",
+ emptyMsg : 'iadne dáta'
+ });
+}
+
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minimálna dåka pre toto pole je {0}",
+ maxLengthText : "Maximálna dåka pre toto pole je {0}",
+ blankText : "Toto pole je povinné",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Minimálna hodnota pre toto pole je {0}",
+ maxText : "Maximálna hodnota pre toto pole je {0}",
+ nanText : "{0} je nesprávne èíslo"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Zablokované",
+ disabledDatesText : "Zablokované",
+ minText : "Dátum v tomto poli musí by a po {0}",
+ maxText : "Dátum v tomto poli musí by pred {0}",
+ invalidText : "{0} nie je správny dátum - musí by vo formáte {1}",
+ format : "m/d/r"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Nahrávam...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Toto pole musí by e-mailová adresa vo formáte "user(a)domain.com"',
+ urlText : 'Toto pole musí by URL vo formáte "http:/'+'/www.domain.com"',
+ alphaText : 'Toto poŸe moe obsahova iba písmená a znak _',
+ alphanumText : 'Toto poŸe moe obsahova iba písmená,èísla a znak _'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Zoradi vzostupne",
+ sortDescText : "Zoradi zostupne",
+ lockText : "Zamknú ståpec",
+ unlockText : "Odomknú stŸpec",
+ columnsText : "Ståpce"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Názov",
+ valueText : "Hodnota",
+ dateFormat : "m/j/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Potiahnite pre zmenu rozmeru",
+ collapsibleSplitTip : "Potiahnite pre zmenu rozmeru. Dvojklikom schováte."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sl.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sl.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sl.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,170 @@
+/**
+ * Slovenian translation by Matjaž (UTF-8 encoding)
+ * 25 April 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Nalagam...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} izbranih vrstic";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Zapri zavihek";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Neveljavna vrednost";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Nalagam...";
+}
+
+Date.monthNames = [
+ "Januar",
+ "Februar",
+ "Marec",
+ "April",
+ "Maj",
+ "Junij",
+ "Julij",
+ "Avgust",
+ "September",
+ "Oktober",
+ "November",
+ "December"
+];
+
+Date.dayNames = [
+ "Nedelja",
+ "Ponedeljek",
+ "Torek",
+ "Sreda",
+ "Četrtek",
+ "Petek",
+ "Sobota"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "V redu",
+ cancel : "Prekliči",
+ yes : "Da",
+ no : "Ne"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Danes",
+ minText : "Navedeni datum je pred spodnjim datumom",
+ maxText : "Navedeni datum je za zgornjim datumom",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Naslednji mesec (Control+Desno)',
+ prevText : 'Prejšnji mesec (Control+Levo)',
+ monthYearText : 'Izberite mesec (Control+Gor/Dol za premik let)',
+ todayTip : "{0} (Preslednica)",
+ format : "d.m.y",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Stran",
+ afterPageText : "od {0}",
+ firstText : "Prva stran",
+ prevText : "Prejšnja stran",
+ nextText : "Naslednja stran",
+ lastText : "Zadnja stran",
+ refreshText : "Osveži",
+ displayMsg : "Prikazujem {0} - {1} od {2}",
+ emptyMsg : 'Ni podatkov za prikaz'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minimalna dolžina tega polja je {0}",
+ maxLengthText : "Maksimalna dolžina tega polja je {0}",
+ blankText : "To polje je obvezno",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Minimalna vrednost tega polja je {0}",
+ maxText : "Maksimalna vrednost tega polja je {0}",
+ nanText : "{0} ni veljavna številka"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Onemogočen",
+ disabledDatesText : "Onemogočen",
+ minText : "Datum mora biti po {0}",
+ maxText : "Datum mora biti pred {0}",
+ invalidText : "{0} ni veljaven datum - mora biti v tem formatu {1}",
+ format : "d.m.y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Nalagam...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'To polje je e-mail naslov formata "ime(a)domena.si"',
+ urlText : 'To polje je URL naslov formata "http:/'+'/www.domena.si"',
+ alphaText : 'To polje lahko vsebuje samo črke in _',
+ alphanumText : 'To polje lahko vsebuje samo črke, številke in _'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sortiraj naraščajoče",
+ sortDescText : "Sortiraj padajoče",
+ lockText : "Zakleni stolpec",
+ unlockText : "Odkleni stolpec",
+ columnsText : "Stolpci"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Ime",
+ valueText : "Vrednost",
+ dateFormat : "j.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Potegni za razširitev.",
+ collapsibleSplitTip : "Potegni za razširitev. Dvojni klik, če želite skriti."
+ });
+}
\ No newline at end of file
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sr.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sr.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sr.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,173 @@
+/*
+ * Serbian Latin Translation
+ * by Atila Hajnal (latin, utf8 encoding)
+ * sr
+ * 14 Sep 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Učitavam...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "Ne postoji ni jedan slog";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} izabranih redova";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Zatvori оvu »karticu«";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Unešena vrednost nije pravilna";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Učitavam...";
+}
+
+Date.monthNames = [
+ "Januar",
+ "Februar",
+ "Mart",
+ "April",
+ "Мај",
+ "Jun",
+ "Јul",
+ "Avgust",
+ "Septembar",
+ "Oktobar",
+ "Novembar",
+ "Decembar"
+];
+
+Date.dayNames = [
+ "Nedelja",
+ "Ponedeljak",
+ "Utorak",
+ "Sreda",
+ "Četvrtak",
+ "Petak",
+ "Subota"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "U redu",
+ cancel : "Odustani",
+ yes : "Da",
+ no : "Ne"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Danas",
+ minText : "Datum је ispred najmanjeg dozvoljenog datuma",
+ maxText : "Datum је nakon najvećeg dozvoljenog datuma",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Sledeći mesec (Control+Desno)',
+ prevText : 'Prethodni mesec (Control+Levo)',
+ monthYearText : 'Izaberite mesec (Control+Gore/Dole za izbor godine)',
+ todayTip : "{0} (Razmaknica)",
+ format : "d.m.y",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Strana",
+ afterPageText : "od {0}",
+ firstText : "Prva strana",
+ prevText : "Prethodna strana",
+ nextText : "Sledeća strana",
+ lastText : "Poslednja strana",
+ refreshText : "Osveži",
+ displayMsg : "Prikazana {0} - {1} od {2}",
+ emptyMsg : 'Nemam šta prikazati'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minimalna dužina ovog polja је {0}",
+ maxLengthText : "Maksimalna dužina ovog polja је {0}",
+ blankText : "Polje је obavezno",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Minimalna vrednost u polju је {0}",
+ maxText : "Maksimalna vrednost u polju је {0}",
+ nanText : "{0} nije pravilan broj"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Pasivno",
+ disabledDatesText : "Pasivno",
+ minText : "Datum u ovom polju mora biti nakon {0}",
+ maxText : "Datum u ovom polju mora biti pre {0}",
+ invalidText : "{0} nije pravilan datum - zahtevani oblik je {1}",
+ format : "d.m.y",
+ altFormats : "d.m.y|d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Učitavam...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Ovo polje prihavata e-mail adresu isključivo u obliku "korisnik(a)domen.com"',
+ urlText : 'Ovo polje prihavata URL adresu isključivo u obliku "http:/'+'/www.domen.com"',
+ alphaText : 'Ovo polje može sadržati isključivo slova i znak _',
+ alphanumText : 'Ovo polje može sadržati само slova, brojeve i znak _'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Rastući redosled",
+ sortDescText : "Opadajući redosled",
+ lockText : "Zaključaj kolonu",
+ unlockText : "Otključaj kolonu",
+ columnsText : "Kolone"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Naziv",
+ valueText : "Vrednost",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Povući za izmenu veličine.",
+ collapsibleSplitTip : "Povući za izmenu veličine. Dvostruku klik za sakrivanje."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sr_RS.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sr_RS.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sr_RS.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,172 @@
+/*
+ * Serbian Cyrillic Translation
+ * by Čolovic Vladan (cyrillic, utf8 encoding)
+ * sr_RS (ex: sr_CS, sr_YU)
+ * 12 May 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Учитавам...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} изабраних редова";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Затвори ову »картицу«";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Унешена вредност није правилна";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Учитавам...";
+}
+
+Date.monthNames = [
+ "Јануар",
+ "Фебруар",
+ "Март",
+ "Април",
+ "Мај",
+ "Јун",
+ "Јул",
+ "Август",
+ "Септембар",
+ "Октобар",
+ "Новембар",
+ "Децембар"
+];
+
+Date.dayNames = [
+ "Недеља",
+ "Понедељак",
+ "Уторак",
+ "Среда",
+ "Четвртак",
+ "Петак",
+ "Субота"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "У реду",
+ cancel : "Одустани",
+ yes : "Да",
+ no : "Не"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Данас",
+ minText : "Датум је испред најмањег дозвољеног датума",
+ maxText : "Датум је након највећег дозвољеног датума",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Следећи месец (Control+Десно)',
+ prevText : 'Претходни месец (Control+Лево)',
+ monthYearText : 'Изаберите месец (Control+Горе/Доле за избор године)',
+ todayTip : "{0} (Размакница)",
+ format : "d.m.y",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Страна",
+ afterPageText : "од {0}",
+ firstText : "Прва страна",
+ prevText : "Претходна страна",
+ nextText : "Следећа страна",
+ lastText : "Последња страна",
+ refreshText : "Освежи",
+ displayMsg : "Приказана {0} - {1} од {2}",
+ emptyMsg : 'Немам шта приказати'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Минимална дужина овог поља је {0}",
+ maxLengthText : "Максимална дужина овог поља је {0}",
+ blankText : "Поље је обавезно",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Минимална вредност у пољу је {0}",
+ maxText : "Максимална вредност у пољу је {0}",
+ nanText : "{0} није правилан број"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Пасивно",
+ disabledDatesText : "Пасивно",
+ minText : "Датум у овом пољу мора бити након {0}",
+ maxText : "Датум у овом пољу мора бити пре {0}",
+ invalidText : "{0} није правилан датум - захтевани облик је {1}",
+ format : "d.m.y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Учитавам...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Ово поље прихвата e-mail адресу искључиво у облику "korisnik(a)domen.com"',
+ urlText : 'Ово поље прихвата URL адресу искључиво у облику "http:/'+'/www.domen.com"',
+ alphaText : 'Ово поље може садржати искључиво слова и знак _',
+ alphanumText : 'Ово поље може садржати само слова, бројеве и знак _'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Растући редослед",
+ sortDescText : "Опадајући редослед",
+ lockText : "Закључај колону",
+ unlockText : "Откључај колону",
+ columnsText : "Колоне"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Назив",
+ valueText : "Вредност",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Повући за измену величине.",
+ collapsibleSplitTip : "Повући за измену величине. Двоструки клик за сакривање."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sv_SE.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sv_SE.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sv_SE.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,172 @@
+/**
+ * Swedish translation (utf8-encoding)
+ * By Erik Andersson, Monator Technologies
+ * 24 April 2007
+ * Changed by Cariad, 29 July 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Laddar...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} markerade rad(er)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Stäng denna flik";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Värdet i detta fält är inte tillåtet";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Laddar...";
+}
+
+Date.monthNames = [
+ "januari",
+ "februari",
+ "mars",
+ "april",
+ "maj",
+ "juni",
+ "juli",
+ "augusti",
+ "september",
+ "oktober",
+ "november",
+ "december"
+];
+
+Date.dayNames = [
+ "söndag",
+ "måndag",
+ "tisdag",
+ "onsdag",
+ "torsdag",
+ "fredag",
+ "lördag"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Avbryt",
+ yes : "Ja",
+ no : "Nej"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "Y-m-d");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Idag",
+ minText : "Detta datum inträffar före det tidigast tillåtna",
+ maxText : "Detta datum inträffar efter det senast tillåtna",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Nästa månad (Ctrl + högerpil)',
+ prevText : 'Föregående månad (Ctrl + vänsterpil)',
+ monthYearText : 'Välj en månad (Ctrl + uppåtpil/neråtpil för att ändra årtal)',
+ todayTip : "{0} (mellanslag)",
+ format : "Y-m-d",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Sida",
+ afterPageText : "av {0}",
+ firstText : "Första sidan",
+ prevText : "Föregående sida",
+ nextText : "Nästa sida",
+ lastText : "Sista sidan",
+ refreshText : "Uppdatera",
+ displayMsg : "Visar {0} - {1} av {2}",
+ emptyMsg : 'Det finns ingen data att visa'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minsta tillåtna längd för detta fält är {0}",
+ maxLengthText : "Största tillåtna längd för detta fält är {0}",
+ blankText : "Detta fält är obligatoriskt",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Minsta tillåtna värde för detta fält är {0}",
+ maxText : "Största tillåtna värde för detta fält är {0}",
+ nanText : "{0} är inte ett tillåtet nummer"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Inaktiverad",
+ disabledDatesText : "Inaktiverad",
+ minText : "Datumet i detta fält måste inträffa efter {0}",
+ maxText : "Datumet i detta fält måste inträffa före {0}",
+ invalidText : "{0} är inte ett tillåtet datum - datum ska anges i formatet {1}",
+ format : "Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Laddar...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Detta fält ska innehålla en e-post adress i formatet "användare(a)xn--domn-noa.se"',
+ urlText : 'Detta fält ska innehålla en länk (URL) i formatet "http:/'+'/www.domän.se"',
+ alphaText : 'Detta fält får bara innehålla bokstäver och "_"',
+ alphanumText : 'Detta fält får bara innehålla bokstäver, nummer och "_"'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sortera stigande",
+ sortDescText : "Sortera fallande",
+ lockText : "Lås kolumn",
+ unlockText : "Lås upp kolumn",
+ columnsText : "Kolumner"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Namn",
+ valueText : "Värde",
+ dateFormat : "Y-m-d"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Dra för att ändra storleken.",
+ collapsibleSplitTip : "Dra för att ändra storleken. Dubbelklicka för att gömma."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-th.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-th.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-th.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,288 @@
+/**
+ * List compiled by KillerNay on the extjs.com forums.
+ * Thank you KillerNay!
+ *
+ * Thailand Translations
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">¡ÓÅѧâËÅŽ...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} àÅ×Í¡áÅéÇ·Ñé§ËÁŽá¶Ç";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "»ÔŽá·çº¹Õé";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "€èҢͧªèͧ¹ÕéäÁè¶Ù¡µéͧ";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "¡ÓÅѧâËÅŽ...";
+}
+
+Date.monthNames = [
+ "Á¡ÃÒ€Á",
+ "¡ØÁŸÒӟѹžì",
+ "ÁÕ¹Ò€Á",
+ "àÁÉÒ¹",
+ "ŸÄÉÀÒ€Á",
+ "ÁԶعÒ¹",
+ "¡Ä¡¯Ò€Á",
+ "ÊÔ§ËÒ€Á",
+ "¡Ñ¹ÂÒ¹",
+ "µØÅÒ€Á",
+ "ŸÄÈšÔ¡Ò¹",
+ "žÑ¹ÇÒ€Á"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ "Á€" : 0,
+ "¡Ÿ" : 1,
+ "ÁÕ€" : 2,
+ "àÁÂ" : 3,
+ "Ÿ€" : 4,
+ "ÁÔÂ" : 5,
+ "¡€" : 6,
+ "Ê€" : 7,
+ "¡Â" : 8,
+ "µ€" : 9,
+ "ŸÂ" : 10,
+ "ž€" : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "ÍÒ·ÔµÂì",
+ "šÑ¹·Ãì",
+ "Íѧ€ÒÃ",
+ "ŸØ×ž",
+ "ŸÄËÑʺŽÕ",
+ "ÈØ¡Ãì",
+ "àÊÒÃì"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "µ¡Å§",
+ cancel : "¡àÅÔ¡",
+ yes : "ãªè",
+ no : "äÁèãªè"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "m/d/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Çѹ¹Õé",
+ minText : "This date is before the minimum date",
+ maxText : "This date is after the maximum date",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'àŽ×͹¶ÑŽä» (Control+Right)',
+ prevText : 'àŽ×͹¡è͹˹éÒ (Control+Left)',
+ monthYearText : 'àÅ×Í¡àŽ×͹ (Control+Up/Down to move years)',
+ todayTip : "{0} (Spacebar)",
+ format : "m/d/y",
+ okText : " µ¡Å§ ",
+ cancelText : "¡àÅÔ¡",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "˹éÒ",
+ afterPageText : "of {0}",
+ firstText : "˹éÒáá",
+ prevText : "¡è͹˹éÒ",
+ nextText : "¶ÑŽä»",
+ lastText : "˹éÒÊØŽ·éÒÂ",
+ refreshText : "ÃÕà¿Ãª",
+ displayMsg : "¡ÓÅѧáÊŽ§ {0} - {1} šÒ¡ {2}",
+ emptyMsg : 'äÁèÁÕ¢éÍÁÙÅáÊŽ§'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "The minimum length for this field is {0}",
+ maxLengthText : "The maximum length for this field is {0}",
+ blankText : "This field is required",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "The minimum value for this field is {0}",
+ maxText : "The maximum value for this field is {0}",
+ nanText : "{0} is not a valid number"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "»ÔŽ",
+ disabledDatesText : "»ÔŽ",
+ minText : "The date in this field must be after {0}",
+ maxText : "The date in this field must be before {0}",
+ invalidText : "{0} is not a valid date - it must be in the format {1}",
+ format : "m/d/y",
+ altFormats : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "¡ÓÅѧâËÅŽ...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'This field should be an e-mail address in the format "user(a)domain.com"',
+ urlText : 'This field should be a URL in the format "http:/'+'/www.domain.com"',
+ alphaText : 'This field should only contain letters and _',
+ alphanumText : 'This field should only contain letters, numbers and _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Please enter the URL for the link:',
+ buttonTips : {
+ bold : {
+ title: 'Bold (Ctrl+B)',
+ text: 'Make the selected text bold.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Italic (Ctrl+I)',
+ text: 'Make the selected text italic.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Underline (Ctrl+U)',
+ text: 'Underline the selected text.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Grow Text',
+ text: 'Increase the font size.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Shrink Text',
+ text: 'Decrease the font size.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Text Highlight Color',
+ text: 'Change the background color of the selected text.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Font Color',
+ text: 'Change the color of the selected text.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Align Text Left',
+ text: 'Align text to the left.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Center Text',
+ text: 'Center text in the editor.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Align Text Right',
+ text: 'Align text to the right.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Bullet List',
+ text: 'Start a bulleted list.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Numbered List',
+ text: 'Start a numbered list.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hyperlink',
+ text: 'Make the selected text a hyperlink.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Source Edit',
+ text: 'Switch to source editing mode.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sort Ascending",
+ sortDescText : "Sort Descending",
+ lockText : "Lock Column",
+ unlockText : "Unlock Column",
+ columnsText : "Columns"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(None)',
+ groupByText : 'Group By This Field',
+ showGroupsText : 'Show in Groups'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Name",
+ valueText : "Value",
+ dateFormat : "m/j/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Drag to resize.",
+ collapsibleSplitTip : "Drag to resize. Double click to hide."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-tr.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-tr.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-tr.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,299 @@
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * Turkish translation by Alper YAZGAN
+ * 2008-01-24 , 10:29 AM
+*/
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Yükleniyor ...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "Şeçili satır sayısı : {0}";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Sekmeyi kapat";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Bu alandaki değer geçersiz";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Yükleniyor ...";
+}
+
+Date.monthNames = [
+ "Ocak",
+ "Şubat",
+ "Mart",
+ "Nisan",
+ "Mayıs",
+ "Haziran",
+ "Temmuz",
+ "Ağustos",
+ "Eylül",
+ "Ekim",
+ "Kasım",
+ "Aralık"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Pazar",
+ "Pazartesi",
+ "Salı",
+ "Çarşamba",
+ "Perşembe",
+ "Cuma",
+ "Cumartesi"
+];
+
+Date.shortDayNames = [
+ "Paz",
+ "Pzt",
+ "Sal",
+ "Çrş",
+ "Prş",
+ "Cum",
+ "Cmt"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.shortDayNames[day];
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "Tamam",
+ cancel : "İptal",
+ yes : "Evet",
+ no : "Hayır"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Bugün",
+ minText : "Bu tarih izin verilen en küçük tarihten daha önce",
+ maxText : "Bu tarih izin verilen en büyük tarihten daha sonra",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Gelecek Ay (Control+Right)',
+ prevText : 'Önceki Ay (Control+Left)',
+ monthYearText : 'Bir ay şeçiniz (Yılı artırmak/azaltmak için Control+Up/Down)',
+ todayTip : "{0} (Boşluk Tuşu - Spacebar)",
+ format : "d/m/Y",
+ okText : " Tamam ",
+ cancelText : "İptal",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Sayfa",
+ afterPageText : " / {0}",
+ firstText : "İlk Sayfa",
+ prevText : "Önceki Sayfa",
+ nextText : "Sonraki Sayfa",
+ lastText : "Son Sayfa",
+ refreshText : "Yenile",
+ displayMsg : "Gösterilen {0} - {1} / {2}",
+ emptyMsg : 'Gösterilebilecek veri yok'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Girilen verinin uzunluğu en az {0} olabilir",
+ maxLengthText : "Girilen verinin uzunluğu en fazla {0} olabilir",
+ blankText : "Bu alan boş bırakılamaz",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "En az {0} girilebilir",
+ maxText : "En çok {0} girilebilir",
+ nanText : "{0} geçersiz bir sayıdır"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Disabled",
+ disabledDatesText : "Disabled",
+ minText : "Bu tarih, {0} tarihinden daha sonra olmalıdır",
+ maxText : "Bu tarih, {0} tarihinden daha önce olmalıdır",
+ invalidText : "{0} geçersiz bir tarihdir - tarih formatı {1} şeklinde olmalıdır",
+ format : "d/m/Y",
+ altFormats : "d.m.y|d.m.Y|d/m/y|d-m-Y|d-m-y|d.m|d/m|d-m|dm|dmY|dmy|d|Y.m.d|Y-m-d|Y/m/d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Yükleniyor ...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Bu alan "user(a)domain.com" şeklinde elektronik posta formatında olmalıdır',
+ urlText : 'Bu alan "http://www.domain.com" şeklinde URL adres formatında olmalıdır',
+ alphaText : 'Bu alan sadece harf ve _ içermeli',
+ alphanumText : 'Bu alan sadece harf, sayı ve _ içermeli'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Lütfen bu bağlantı için gerekli URL adresini giriniz:',
+ buttonTips : {
+ bold : {
+ title: 'Kalın(Bold) (Ctrl+B)',
+ text: 'Şeçili yazıyı kalın yapar.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'İtalik(Italic) (Ctrl+I)',
+ text: 'Şeçili yazıyı italik yapar.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Alt Çizgi(Underline) (Ctrl+U)',
+ text: 'Şeçili yazının altını çizer.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Fontu büyült',
+ text: 'Yazı fontunu büyütür.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Fontu küçült',
+ text: 'Yazı fontunu küçültür.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Arka Plan Rengi',
+ text: 'Seçili yazının arka plan rengini değiştir.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Yazı Rengi',
+ text: 'Seçili yazının rengini değiştir.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Sola Daya',
+ text: 'Yazıyı sola daya.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Ortala',
+ text: 'Yazıyı editörde ortala.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Sağa daya',
+ text: 'Yazıyı sağa daya.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Noktalı Liste',
+ text: 'Noktalı listeye başla.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Numaralı Liste',
+ text: 'Numaralı lisyeye başla.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Web Adresi(Hyperlink)',
+ text: 'Seçili yazıyı web adresi(hyperlink) yap.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Kaynak kodu Düzenleme',
+ text: 'Kaynak kodu düzenleme moduna geç.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Artan sırada sırala",
+ sortDescText : "Azalan sırada sırala",
+ lockText : "Kolonu kilitle",
+ unlockText : "Kolon kilidini kaldır",
+ columnsText : "Kolonlar"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Yok)',
+ groupByText : 'Bu Alana Göre Grupla',
+ showGroupsText : 'Gruplar Halinde Göster'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Ad",
+ valueText : "Değer",
+ dateFormat : "d/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Yeniden boyutlandırmak için sürükle.",
+ collapsibleSplitTip : "Yeniden boyutlandırmak için sürükle. Saklamak için çift tıkla."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ukr.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ukr.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ukr.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,252 @@
+/*
+ * Ukrainian translation
+ * By zlatko (utf-8 encoding)
+ * 3 October 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Триває завантаження...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} вибраних стрічок";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Закрити цю вкладку";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Значення у цьому полі невірне";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Завантаження...";
+}
+
+Date.monthNames = [
+ "Січень",
+ "Лютий",
+ "Березень",
+ "Квітень",
+ "Травень",
+ "Червень",
+ "Липень",
+ "Серпень",
+ "Вересень",
+ "Жовтень",
+ "Листопад",
+ "Грудень"
+];
+
+Date.dayNames = [
+ "Неділя",
+ "Понеділок",
+ "Вівторок",
+ "Середа",
+ "Четвер",
+ "Пятниця",
+ "Субота"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Відміна",
+ yes : "Так",
+ no : "Ні"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Сьогодні",
+ minText : "Ця дата менше мінімальної дати",
+ maxText : "Ця дата більше максимальної дати",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Наступний місяць (Control+Вправо)',
+ prevText : 'Попередній місяць (Control+Вліво)',
+ monthYearText : 'Вибір місяця (Control+Вверх/Вниз для вибору року)',
+ todayTip : "{0} (Пробіл)",
+ format : "d.m.y",
+ okText : " OK ",
+ cancelText : "Відміна",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Сторінка",
+ afterPageText : "з {0}",
+ firstText : "Перша сторінка",
+ prevText : "Попередня сторінка",
+ nextText : "Наступна сторінка",
+ lastText : "Остання сторінка",
+ refreshText : "Обновити",
+ displayMsg : "Відображаються записи з {0} по {1}, всього {2}",
+ emptyMsg : 'Дані для відображення відсутні'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Мінімальна довжина цього поля {0}",
+ maxLengthText : "Максимальна довжина цього поля {0}",
+ blankText : "Це поле є обов’язковим для заповнення",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Значення цього поля не може бути менше {0}",
+ maxText : "Значення цього поля не може бути більше {0}",
+ nanText : "{0} не являється числом"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Не доступно",
+ disabledDatesText : "Не доступно",
+ minText : "Дата в цьому полі повинна бути більше {0}",
+ maxText : "Дата в цьому полі повинна бути менше {0}",
+ invalidText : "{0} неправильна дата - дата повинна бути вказана у форматі {1}",
+ format : "d.m.y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Завантаження...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Це поле повинно містити адресу електронної почти у форматі "user(a)domain.com"',
+ urlText : 'Це поле повинно містити URL у форматі "http:/'+'/www.domain.com"',
+ alphaText : 'Це поле повинно містити виключно латинські літери та символ підкреслення "_"',
+ alphanumText : 'Це поле повинно містити виключно латинські літери, цифри та символ підкреслення "_"'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Будь-ласка введіть адресу:',
+ buttonTips : {
+ bold : {
+ title: 'Напівжирний (Ctrl+B)',
+ text: 'Застосування напівжирного до виділеного тексту.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Курсив (Ctrl+I)',
+ text: ' Застосування курсиву до виділеного тексту.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Підкреслений (Ctrl+U)',
+ text: ' Застосування підкреслення до виділенного тексту.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Збільшити розмір',
+ text: 'Збільшення розміру шрифта.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Зменшити розмір',
+ text: 'Зменшення розміру шрифта.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Заливка',
+ text: 'Зміна кольору фону для виділеного тексту або абзацу.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Колір тексту',
+ text: 'Зміна кольору тексту.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Вирівняти текст по лівій границі',
+ text: 'Вирівнювання тексту по лівій границі.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Вирівняти текст по центру',
+ text: 'Вирівнювання тексту по центру.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Вирівняти текст по правій границі',
+ text: 'Вирівнювання тексту по правій границі.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Маркери',
+ text: 'Почати маркований список.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Нумерація',
+ text: 'Почати нумернований список.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Вставити гіперпосилання',
+ text: 'Створення посилання із виділеного тексту.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Вихідний код',
+ text: 'Переключитись на вихідний код.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Сортувати по зростанню",
+ sortDescText : "Сортувати по спаданню",
+ lockText : "Закріпити колонку",
+ unlockText : "Зняти закріплення колонки",
+ columnsText : "Колонки"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Назва",
+ valueText : "Значення",
+ dateFormat : "j.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Тягніть для зміни розміру.",
+ collapsibleSplitTip : "Тягніть для зміни розміру. Подвійний клік сховає панель."
+ });
+}
+
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-vn.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-vn.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-vn.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,175 @@
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ */
+
+/**
+ * Vietnamese translation
+ * By bpmtri
+ * 12-April-2007 04:06PM
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Đang tải...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} dòng được chọn";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Đóng thẻ này";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Giá trị của ô này không hợp lệ.";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Đang tải...";
+}
+
+Date.monthNames = [
+ "Tháng 1",
+ "Tháng 2",
+ "Tháng 3",
+ "Tháng 4",
+ "Tháng 5",
+ "Tháng 6",
+ "Tháng 7",
+ "Tháng 8",
+ "Tháng 9",
+ "Tháng 10",
+ "Tháng 11",
+ "Tháng 12"
+];
+
+Date.dayNames = [
+ "Chủ nhật",
+ "Thứ hai",
+ "Thứ ba",
+ "Thứ tư",
+ "Thứ năm",
+ "Thứ sáu",
+ "Thứ bảy"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "Đồng ý",
+ cancel : "Hủy bỏ",
+ yes : "Có",
+ no : "Không"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Hôm nay",
+ minText : "Ngày này nhỏ hơn ngày nhỏ nhất",
+ maxText : "Ngày này lớn hơn ngày lớn nhất",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Tháng sau (Control+Right)',
+ prevText : 'Tháng trước (Control+Left)',
+ monthYearText : 'Chọn một tháng (Control+Up/Down để thay đổi năm)',
+ todayTip : "{0} (Spacebar - Phím trắng)",
+ format : "d/m/y"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Trang",
+ afterPageText : "of {0}",
+ firstText : "Trang đầu",
+ prevText : "Trang trước",
+ nextText : "Trang sau",
+ lastText : "Trang cuối",
+ refreshText : "Tải lại",
+ displayMsg : "Hiển thị {0} - {1} của {2}",
+ emptyMsg : 'Không có dữ liệu để hiển thị'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Chiều dài tối thiểu của ô này là {0}",
+ maxLengthText : "Chiều dài tối đa của ô này là {0}",
+ blankText : "Ô này cần phải nhập giá trị",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Giá trị nhỏ nhất của ô này là {0}",
+ maxText : "Giá trị lớn nhất của ô này là {0}",
+ nanText : "{0} hông phải là một số hợp lệ"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Vô hiệu",
+ disabledDatesText : "Vô hiệu",
+ minText : "Ngày nhập trong ô này phải sau ngày {0}",
+ maxText : "Ngày nhập trong ô này phải trước ngày {0}",
+ invalidText : "{0} không phải là một ngày hợp lệ - phải có dạng {1}",
+ format : "d/m/y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Đang tải...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Giá trị của ô này phải là một địa chỉ email có dạng như "ten(a)abc.com"',
+ urlText : 'Giá trị của ô này phải là một địa chỉ web(URL) hợp lệ, có dạng như "http:/'+'/www.domain.com"',
+ alphaText : 'Ô này chỉ được nhập các kí tự và gạch dưới(_)',
+ alphanumText : 'Ô này chỉ được nhập các kí tự, số và gạch dưới(_)'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Tăng dần",
+ sortDescText : "Giảm dần",
+ lockText : "Khóa cột",
+ unlockText : "Bỏ khóa cột",
+ columnsText : "Các cột"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Tên",
+ valueText : "Giá trị",
+ dateFormat : "j/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Kéo giữ chuột để thay đổi kích thước.",
+ collapsibleSplitTip : "Kéo giữ chuột để thay đổi kích thước. Nhấp đúp để ẩn đi."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-zh_CN.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-zh_CN.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-zh_CN.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,168 @@
+/*
+ * Simplified Chinese translation
+ * By DavidHu
+ * 09 April 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">加载中...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "{0} 选择行";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "关闭";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "输入值非法";
+}
+
+Date.monthNames = [
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月"
+];
+
+Date.dayNames = [
+ "日",
+ "一",
+ "二",
+ "三",
+ "四",
+ "五",
+ "六"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "确定",
+ cancel : "取消",
+ yes : "是",
+ no : "否"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "y年m月d日");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "今天",
+ minText : "日期在最小日期之前",
+ maxText : "日期在最大日期之后",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : '下月 (Control+Right)',
+ prevText : '上月 (Control+Left)',
+ monthYearText : '选择一个月 (Control+Up/Down 来改变年)',
+ todayTip : "{0} (空格键选择)",
+ format : "y年m月d日",
+ okText : "确定",
+ cancelText : "取消"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "页",
+ afterPageText : "页共 {0} 页",
+ firstText : "第一页",
+ prevText : "前一页",
+ nextText : "下一页",
+ lastText : "最后页",
+ refreshText : "刷新",
+ displayMsg : "显示 {0} - {1},共 {2} 条",
+ emptyMsg : '没有数据需要显示'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "该输入项的最小长度是 {0}",
+ maxLengthText : "该输入项的最大长度是 {0}",
+ blankText : "该输入项为必输项",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "该输入项的最小值是 {0}",
+ maxText : "该输入项的最大值是 {0}",
+ nanText : "{0} 不是有效数值"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "禁用",
+ disabledDatesText : "禁用",
+ minText : "该输入项的日期必须在 {0} 之后",
+ maxText : "该输入项的日期必须在 {0} 之前",
+ invalidText : "{0} 是无效的日期 - 必须符合格式: {1}",
+ format : "y年m月d日"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "加载...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : '该输入项必须是电子邮件地址,格式如: "user(a)domain.com"',
+ urlText : '该输入项必须是URL地址,格式如: "http:/'+'/www.domain.com"',
+ alphaText : '该输入项只能包含字符和_',
+ alphanumText : '该输入项只能包含字符,数字和_'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "正序",
+ sortDescText : "逆序",
+ lockText : "锁列",
+ unlockText : "解锁列",
+ columnsText : "列"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "名称",
+ valueText : "值",
+ dateFormat : "y年m月d日"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "拖动来改变尺寸.",
+ collapsibleSplitTip : "拖动来改变尺寸. 双击隐藏."
+ });
+}
Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-zh_TW.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-zh_TW.js 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-zh_TW.js 2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,172 @@
+/*
+ * Traditional Chinese translation
+ * By hata1234
+ * 09 April 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">讀取中...</div>';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "選擇了 {0} 行";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "關閉此標籤";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "數值不符合欄位規定";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "讀取中...";
+}
+
+Date.monthNames = [
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月"
+];
+
+Date.dayNames = [
+ "日",
+ "一",
+ "二",
+ "三",
+ "四",
+ "五",
+ "六"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "確定",
+ cancel : "取消",
+ yes : "是",
+ no : "否"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "Y/m/d");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "今天",
+ minText : "日期必須大於最小容許日期",
+ maxText : "日期必須小於最大容許日期",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : "下個月 (Ctrl+右方向鍵)",
+ prevText : "上個月 (Ctrl+左方向鍵)",
+ monthYearText : "選擇月份 (Ctrl+上/下方向鍵選擇年份)",
+ todayTip : "{0} (空白鍵)",
+ format : "y/m/d",
+ okText : "确定",
+ cancelText : "取消"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "第",
+ afterPageText : "頁,共{0}頁",
+ firstText : "第一頁",
+ prevText : "上一頁",
+ nextText : "下一頁",
+ lastText : "最後頁",
+ refreshText : "重新整理",
+ displayMsg : "顯示{0} - {1}頁,共{2}頁",
+ emptyMsg : '沒有任何資料'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "此欄位最少要輸入 {0} 個字",
+ maxLengthText : "此欄位最多輸入 {0} 個字",
+ blankText : "此欄位為必填",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "此欄位之數值必須大於 {0}",
+ maxText : "此欄位之數值必須小於 {0}",
+ nanText : "{0} 不是合法的數字"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "無法使用",
+ disabledDatesText : "無法使用",
+ minText : "此欄位之日期必須在 {0} 之後",
+ maxText : "此欄位之日期必須在 {0} 之前",
+ invalidText : "{0} 不是正確的日期格式 - 必須像是 「 {1} 」 這樣的格式",
+ format : "Y/m/d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "讀取中 ...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : '此欄位必須輸入像 "user(a)domain.com" 之E-Mail格式',
+ urlText : '此欄位必須輸入像 "http:/'+'/www.domain.com" 之網址格式',
+ alphaText : '此欄位僅能輸入半形英文字母及底線( _ )符號',
+ alphanumText : '此欄位僅能輸入半形英文字母、數字及底線( _ )符號'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "正向排序",
+ sortDescText : "反向排序",
+ lockText : "鎖定欄位",
+ unlockText : "解開欄位鎖定",
+ columnsText : "欄位"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "名稱",
+ valueText : "數值",
+ dateFormat : "Y/m/d"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "拖曳縮放大小.",
+ collapsibleSplitTip : "拖曳縮放大小. 滑鼠雙擊隱藏."
+ });
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/access/FinderServiceDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/access/FinderServiceDefault.java 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/access/FinderServiceDefault.java 2008-10-29 14:25:29 UTC (rev 935)
@@ -132,6 +132,9 @@
private Content findByContentReference(final String groupName, final String toolName, final Long folderId,
final Long contentId) throws ContentNotFoundException {
final Content descriptor = contentManager.find(contentId);
+ if (descriptor == null) {
+ throw new ContentNotFoundException();
+ }
final Container container = descriptor.getContainer();
if (!container.getId().equals(folderId)) {
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java 2008-10-29 14:25:29 UTC (rev 935)
@@ -123,7 +123,7 @@
@Transient
public AccessLists getAccessLists() {
- return hasAccessList() ? accessLists : isLeaf() ? getParent().getAccessLists() : getOwner().getAccessLists();
+ return hasAccessList() ? accessLists : isRoot() ? getOwner().getAccessLists() : getParent().getAccessLists();
}
public List<ContainerTranslation> getAliases() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java 2008-10-29 14:25:29 UTC (rev 935)
@@ -31,7 +31,6 @@
import com.calclab.suco.client.ioc.Provider;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Hyperlink;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.SimplePanel;
@@ -46,7 +45,7 @@
private static final String LOGO_SMALL_FONT_STYLE = "k-elogo-l-s";
private static final String LOGO_LARGE_FONT_STYLE = "k-elogo-l-l";
private final Label logoLabel;
- private final Hyperlink putYourLogoHL;
+ private final Label putYourLogoHL;
private final HorizontalPanel putYourLogoHP;
private final Image logoImage;
@@ -59,8 +58,12 @@
logoLabel = new Label();
final Label expandCell = new Label("");
putYourLogoHP = new HorizontalPanel();
- putYourLogoHL = new Hyperlink();
+ putYourLogoHL = new Label();
+ logoImage.ensureDebugId(LOGO_IMAGE);
+ logoLabel.ensureDebugId(LOGO_NAME);
+ putYourLogoHL.ensureDebugId(PUT_YOUR_LOGO_LINK);
+
// Layout
add(generalHP);
generalHP.add(logoImage);
@@ -74,6 +77,7 @@
setPutYourLogo();
expandCell.setStyleName("k-elogop-expand");
+ putYourLogoHL.setStyleName("k-elogo-plink");
putYourLogoHL.addStyleName("kune-pointer");
putYourLogoHL.addClickListener(new ClickListener() {
public void onClick(final Widget sender) {
@@ -144,6 +148,9 @@
logoLabel.removeStyleName(LOGO_MEDIUM_FONT_STYLE);
}
}
+ public static final String LOGO_NAME = "k-elogop-ln";
+ public static final String LOGO_IMAGE = "k-elogop-image";
+ public static final String PUT_YOUR_LOGO_LINK = "k-elogop-pyll";
private final Provider<FileDownloadUtils> downloadProvider;
private final Provider<EntityLogoSelector> entityLogoSelectorProvider;
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2008-10-29 14:25:29 UTC (rev 935)
@@ -50,7 +50,7 @@
public class NewGroupPanel extends WizardDialog implements NewGroupView {
public static final String REGISTER_A_NEW_GROUP_TITLE = "Register a new Group";
- public static final String MUST_BE_BETWEEN_3_AND_15 = "Must be between 3 and 15 lowercase characters. Can only contain characters, numbers, and dashes";
+ public static final String MUST_BE_BETWEEN_3_AND_15 = "Must be between 3 and 15 lowercase characters. Can only contain occidental characters, numbers, and dashes";
public static final String SHORTNAME_FIELD = "k-ngp-short_name";
public static final String LONGNAME_FIELD = "k-ngp-long_name";
public static final String PUBLICDESC_FIELD = "k-ngp-public_desc";
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java 2008-10-29 14:25:29 UTC (rev 935)
@@ -1,8 +1,12 @@
package org.ourproject.kune.platf.integration.selenium;
+import java.io.File;
+import java.io.IOException;
import java.util.Date;
+import org.junit.After;
import org.junit.Before;
+import org.junit.BeforeClass;
import org.ourproject.kune.workspace.client.signin.RegisterForm;
import org.ourproject.kune.workspace.client.signin.RegisterPanel;
import org.ourproject.kune.workspace.client.signin.SignInForm;
@@ -19,12 +23,41 @@
protected static final String KUNE_BASE_URL = "/kune/?locale=en#";
+ private static File dirCaptures;
+
+ @BeforeClass
+ public static void beforeKuneClass() {
+ dirCaptures = new File("img/captures/");
+ if (!dirCaptures.exists()) {
+ dirCaptures.mkdir();
+ }
+ }
+
+ private boolean mustCapture;
+
+ @After
+ public void after() throws IOException {
+ if (mustCapture) {
+ selenium.captureEntirePageScreenshot(File.createTempFile("kune", "capture.png", dirCaptures).getAbsolutePath());
+ }
+ }
+
@Before
public void before() {
- selenium.deleteAllVisibleCookies();
- selenium.refresh();
+ mustCapture = false;
+ try {
+ selenium.deleteAllVisibleCookies();
+ selenium.refresh();
+ selenium.windowMaximize();
+ } catch (final UnsupportedOperationException e) {
+ System.err.println("Seems that selenium server is not running; run before: 'mvn selenium:start-server' ");
+ }
}
+ public void setMustCapture(boolean mustCapture) {
+ this.mustCapture = mustCapture;
+ }
+
protected long genPrefix() {
long prefix = new Date().getTime();
return prefix;
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java 2008-10-29 14:25:29 UTC (rev 935)
@@ -2,9 +2,9 @@
import static org.junit.Assert.assertFalse;
-import org.junit.Ignore;
import org.junit.Test;
import org.ourproject.kune.platf.client.dto.GroupType;
+import org.ourproject.kune.workspace.client.entitylogo.EntityLogoPanel;
import org.ourproject.kune.workspace.client.newgroup.NewGroupPanel;
import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
import org.ourproject.kune.workspace.client.site.SiteToken;
@@ -29,17 +29,25 @@
waitForTextInside(SiteToastMessagePanel.MESSAGE, NewGroupPresenter.REGISTER_TO_CREATE_A_GROUP);
}
- @Ignore
+ @Test
public void newGroupWithExistingNicknameFails() throws Exception {
- setMustStopFinally(false);
signInAndNewGroup();
fillNewGroup1stPage("admin", "some long name" + genPrefix(), "some public description", "tag1 tag2 tag3",
GroupType.ORGANIZATION);
click(NewGroupPanel.NEXT_BUTTON);
click(NewGroupPanel.FINISH_BUTTON);
- waitForTextInside(NewGroupPanel.ERROR_MSG_BAR, NewGroupPresenter.NAME_IN_ALREADY_IN_USE);
+ waitForTextInside(gid(NewGroupPanel.ERROR_MSG_BAR), NewGroupPresenter.NAME_IN_ALREADY_IN_USE);
}
+ @Test
+ public void newGroupWithNonOccidentalChars() throws Exception {
+ setMustCapture(true);
+ String longName = "漢語 中文 华语 汉语" + genPrefix();
+ newGroupRegistrationDefLicense("g" + genPrefix(), longName,
+ "吗 台湾 六种辅音韵尾 中国政府要求在中国出售的软件必须使用编码 过 国标 名词的复数形式只在代词及多音节", "漢語 中文 华语 汉语");
+ waitForTextInside(gid(EntityLogoPanel.LOGO_NAME), longName);
+ }
+
private void fillNewGroup1stPage(String shortname, String longName, String description, String tags,
GroupType groupType) throws Exception {
type(NewGroupPanel.SHORTNAME_FIELD, shortname);
@@ -62,6 +70,15 @@
}
}
+ private void newGroupRegistrationDefLicense(String shortname, String longName, String description, String tags)
+ throws Exception {
+ GroupType organization = GroupType.ORGANIZATION;
+ signInAndNewGroup();
+ fillNewGroup1stPage(shortname, longName, description, tags, organization);
+ click(NewGroupPanel.NEXT_BUTTON);
+ click(NewGroupPanel.FINISH_BUTTON);
+ }
+
private void signInAndNewGroup() throws Exception {
openDefPage();
signIn();
@@ -69,5 +86,4 @@
verifyLoggedUserShorName("admin");
waitForTextInside(NewGroupPanel.NEWGROUP_WIZARD, NewGroupPanel.REGISTER_A_NEW_GROUP_TITLE);
}
-
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java 2008-10-29 14:25:29 UTC (rev 935)
@@ -44,7 +44,7 @@
// "*firefox /usr/lib/firefox-3.0.3/firefox", url);
// this is a problem... platform dependence ...
- selenium = new DefaultSelenium("localhost", 4441, "*firefox /usr/lib/firefox/firefox-2-bin",
+ selenium = new DefaultSelenium("localhost", 4441, "*chrome /usr/lib/firefox/firefox-2-bin",
"http://localhost:8080/");
selenium.start();
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java 2008-10-29 14:25:29 UTC (rev 935)
@@ -38,7 +38,8 @@
@Test
public void registerSomeUser() throws Exception {
openDefPage();
- registerValidUser(true);
+ String user = registerValidUser(true);
+ verifyLoggedUserShorName(user);
}
@Test
@@ -53,6 +54,15 @@
}
@Test
+ public void registerUserWithNonOccidentalChars() throws Exception {
+ openDefPage();
+ String user = "u" + genPrefix();
+ register(user, "漢語 中文 华语 汉语" + genPrefix() + genPrefix(), "somepasswd", "somepasswd", genPrefix()
+ + "@example.com", "Andorra", "English", "MET", true);
+ verifyLoggedUserShorName(user);
+ }
+
+ @Test
public void testRegisterToken() throws Exception {
open(SiteToken.register);
assertFalse(selenium.isTextPresent(RegisterPanel.REGISTER_TITLE));
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/access/FinderTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/access/FinderTest.java 2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/access/FinderTest.java 2008-10-29 14:25:29 UTC (rev 935)
@@ -106,6 +106,11 @@
verify(contentManager);
}
+ @Test(expected = ContentNotFoundException.class)
+ public void testContainerExistsButContentNotFound() throws Exception {
+ finder.getContent(new StateToken("groupShortName", "toolName", "1", "999"), null);
+ }
+
@Test
public void testDefaultGroupContent() throws Exception {
final Group userGroup = new Group();
1
0
Author: vjrj
Date: 2008-10-28 16:40:27 +0100 (Tue, 28 Oct 2008)
New Revision: 934
Removed:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/CustomButton.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/TwoButtonsDialog.java
Modified:
trunk/TODO
trunk/pom.xml
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/WizardDialog.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java
Log:
Incomplete - task New Group dialog refactorization
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2008-10-27 21:53:19 UTC (rev 933)
+++ trunk/TODO 2008-10-28 15:40:27 UTC (rev 934)
@@ -36,7 +36,6 @@
http://extjs.com/forum/showthread.php?t=9659
http://cssjanus.commoner.com/
<vjrj> Study the possibility to include in SN something similar to "Member since <date>".
-<vjrj> upgrade warp-persist to 1.0
<samer,vjrj> Add in license choose a free/non-free indicator [3]
<vjrj> think about more secure login, SRP protocol thread, and:
http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/9762…
@@ -347,4 +346,21 @@
> de hecho a los flipados de la licencia de ayer a lo mejor habría
> que comentarles esto. ¿Opiniones?
+Propuesta:
+------
+Selecciona una licencia para compartir los contenidos de este grupo con el resto de gente:
+
+[X] Usar la licencia <href>copyleft recomendada
+[ ] Quiero elegir otra licencia (uso avanzado)
+
+Notas:
+* <href>¿Porqué necesito una licencia?
+* <href>¿Qué significa copyleft?
+* Nosotros recomendamos licencias copyleft, sobre todo para trabajos prácticos.
+
+------
+
+esta última sacaría el widget actual con alguna nota adicional, como
+<href>Porque no usar una licencia no comercial.
+
[?] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2008-10-27 21:53:19 UTC (rev 933)
+++ trunk/pom.xml 2008-10-28 15:40:27 UTC (rev 934)
@@ -158,7 +158,7 @@
<dependency>
<groupId>com.wideplay</groupId>
<artifactId>warp-persist</artifactId>
- <version>0.6</version>
+ <version>1.0.1</version>
</dependency>
<!-- REST: xml and json (stax) -->
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/ui/CustomButton.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/CustomButton.java 2008-10-27 21:53:19 UTC (rev 933)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/CustomButton.java 2008-10-28 15:40:27 UTC (rev 934)
@@ -1,106 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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 org.ourproject.kune.platf.client.ui;
-
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.ClickListenerCollection;
-import com.google.gwt.user.client.ui.SourcesClickEvents;
-import com.gwtext.client.core.EventObject;
-import com.gwtext.client.widgets.Button;
-import com.gwtext.client.widgets.event.ButtonListenerAdapter;
-
-public class CustomButton implements SourcesClickEvents {
-
- private ClickListenerCollection clickListeners;
- private final Button button;
-
- public CustomButton(final String text) {
- this(text, null);
- }
-
- public CustomButton(final String text, final ClickListener listener) {
- button = new Button();
- button.setText(text);
- button.addListener(new ButtonListenerAdapter() {
- public void onClick(final Button button, final EventObject e) {
- fireClickListeners();
- }
- });
- if (listener != null) {
- addClickListener(listener);
- }
- }
-
- public void addClickListener(final ClickListener listener) {
- if (clickListeners == null) {
- clickListeners = new ClickListenerCollection();
- }
- clickListeners.add(listener);
- }
-
- public void removeClickListener(final ClickListener listener) {
- if (clickListeners != null) {
- clickListeners.remove(listener);
- }
-
- }
-
- public Button getButton() {
- return button;
- }
-
- public boolean isEnabled() {
- return !button.isDisabled();
- }
-
- private void fireClickListeners() {
- if (clickListeners != null) {
- clickListeners.fireClick(button);
- }
- }
-
- public void setEnabled(final boolean enabled) {
- if (enabled) {
- button.enable();
- } else {
- button.disable();
- }
- }
-
- public void setText(final String text) {
- button.setText(text);
- }
-
- public void setVisible(final boolean b) {
- button.setVisible(b);
- }
-
- public void setHeight(final String height) {
- button.setHeight(height);
- }
-
- public void setWidth(final String width) {
- button.setWidth(width);
- }
-
- public void addStyleName(final String style) {
- button.addStyleName(style);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/TwoButtonsDialog.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/TwoButtonsDialog.java 2008-10-27 21:53:19 UTC (rev 933)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/TwoButtonsDialog.java 2008-10-28 15:40:27 UTC (rev 934)
@@ -1,88 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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 org.ourproject.kune.platf.client.ui.dialogs;
-
-import org.ourproject.kune.platf.client.ui.CustomButton;
-import org.ourproject.kune.platf.client.ui.form.FormListener;
-
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.Widget;
-import com.gwtext.client.widgets.Window;
-
-public class TwoButtonsDialog {
-
- private final Window dialog;
-
- public TwoButtonsDialog(final String caption, final String firstButton, final String secondButton,
- final boolean modal, final boolean minimizable, final int width, final int height,
- final FormListener listener) {
- this(caption, firstButton, secondButton, modal, minimizable, width, height, width, height, listener);
-
- }
-
- public TwoButtonsDialog(final String caption, final String firstButton, final String secondButton,
- final boolean modal, final boolean minimizable, final int width, final int height, final int minWidth,
- final int minHeight, final FormListener listener) {
-
- dialog = new Window();
-
- // Param values
- dialog.setTitle(caption);
- dialog.setModal(modal);
- dialog.setWidth(width);
- dialog.setHeight(height);
- dialog.setMinWidth(minWidth);
- dialog.setMinHeight(minHeight);
- dialog.setCollapsible(minimizable);
-
- // Def values
- dialog.setShadow(true);
-
- dialog.addButton(new CustomButton(firstButton, new ClickListener() {
- public void onClick(final Widget sender) {
- listener.onAccept();
- }
- }).getButton());
-
- CustomButton button = new CustomButton(secondButton, new ClickListener() {
- public void onClick(final Widget sender) {
- listener.onCancel();
- }
- });
- dialog.addButton(button.getButton());
-
- }
-
- public void add(final Widget widget) {
- dialog.add(widget);
- }
-
- public void center() {
- dialog.center();
- }
-
- public void hide() {
- dialog.hide();
- }
-
- public void show() {
- dialog.show();
- }
-}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/WizardDialog.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/WizardDialog.java 2008-10-27 21:53:19 UTC (rev 933)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/WizardDialog.java 2008-10-28 15:40:27 UTC (rev 934)
@@ -20,13 +20,13 @@
package org.ourproject.kune.platf.client.ui.dialogs;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.ui.CustomButton;
-import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Widget;
+import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.Toolbar;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.event.WindowListenerAdapter;
public class WizardDialog {
@@ -51,35 +51,39 @@
dialog.setResizable(false);
dialog.setId(dialogId);
- backButton = new CustomButton(i18n.tWithNT("« Back", "used in button"), new ClickListener() {
- public void onClick(final Widget sender) {
+ backButton = new Button(i18n.tWithNT("« Back", "used in button"), new ButtonListenerAdapter() {
+ @Override
+ public void onClick(Button button, EventObject e) {
listener.onBack();
}
- }).getButton();
+ });
backButton.setId(backId);
dialog.addButton(backButton);
- nextButton = new CustomButton(i18n.tWithNT("Next »", "used in button"), new ClickListener() {
- public void onClick(final Widget sender) {
+ nextButton = new Button(i18n.tWithNT("Next »", "used in button"), new ButtonListenerAdapter() {
+ @Override
+ public void onClick(Button button, EventObject e) {
listener.onNext();
}
- }).getButton();
+ });
nextButton.setId(nextId);
dialog.addButton(nextButton);
- cancelButton = new CustomButton(i18n.tWithNT("Cancel", "used in button"), new ClickListener() {
- public void onClick(final Widget sender) {
+ cancelButton = new Button(i18n.tWithNT("Cancel", "used in button"), new ButtonListenerAdapter() {
+ @Override
+ public void onClick(Button button, EventObject e) {
listener.onCancel();
}
- }).getButton();
+ });
cancelButton.setId(cancelId);
dialog.addButton(cancelButton);
- finishButton = new CustomButton(i18n.tWithNT("Finish", "used in button"), new ClickListener() {
- public void onClick(final Widget sender) {
+ finishButton = new Button(i18n.tWithNT("Finish", "used in button"), new ButtonListenerAdapter() {
+ @Override
+ public void onClick(Button button, EventObject e) {
listener.onFinish();
}
- }).getButton();
+ });
finishButton.setId(finishId);
dialog.addButton(finishButton);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java 2008-10-27 21:53:19 UTC (rev 933)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java 2008-10-28 15:40:27 UTC (rev 934)
@@ -50,7 +50,7 @@
public EntityLogoSelectorPanel(final EntityLogoSelectorPresenter presenter, final WorkspaceSkeleton ws,
I18nTranslationService i18n) {
- dialog = new BasicDialogExtended(i18n.t("Select an logo for your group"), true, true, 320, 180, "",
+ dialog = new BasicDialogExtended(i18n.t("Select a logo for your group"), true, true, 400, 200, "",
i18n.t("Select"), SUBID, i18n.tWithNT("Cancel", "used in button"), CANCELID, new Listener0() {
public void onEvent() {
String filename = file.getValueAsString();
@@ -65,14 +65,14 @@
});
dialog.setCollapsible(false);
dialog.setBorder(false);
- //dialog.getFirstButton().disable();
+ // dialog.getFirstButton().disable();
formPanel = new FormPanel();
formPanel.setFrame(true);
formPanel.setAutoScroll(false);
formPanel.setBorder(false);
formPanel.setFileUpload(true);
- formPanel.setWidth(320);
+ formPanel.setWidth(400);
formPanel.setMethod(Connection.POST);
formPanel.setUrl(ICON_UPLOAD_SERVLET);
formPanel.setWaitMsgTarget(true);
@@ -93,10 +93,15 @@
presenter.onSubmitFailed(httpStatus, responseText);
}
});
+ // We will automatically resize images to 64x64 pixels. For good
+ // results, start with a square image. For best results, use a 64x64
+ // pixel image.
+ String text = i18n.t("Select an image in your computer as the logo for this group. "
+ + "For best results use a [%d]x[%d] pixel image. We will automatically resize bigger images.",
+ EntityLogoView.LOGO_ICON_DEFAULT_HEIGHT, EntityLogoView.LOGO_ICON_DEFAULT_HEIGHT);
+ Label label = new Label();
+ label.setHtml(text + "<br/><br/>");
- Label label = new Label(i18n.t(
- "Select an image in your computer as the logo for this group. Recomended size [%d]x[%d] pixels",
- EntityLogoView.LOGO_ICON_DEFAULT_HEIGHT, EntityLogoView.LOGO_ICON_DEFAULT_HEIGHT));
formPanel.add(label);
file = new TextField("File", EntityLogoView.LOGO_FORM_FIELD);
EventCallback keyListener = new EventCallback() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java 2008-10-27 21:53:19 UTC (rev 933)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java 2008-10-28 15:40:27 UTC (rev 934)
@@ -42,6 +42,7 @@
protected static final String CC_LIC_FIELD = "cc-lic";
protected static final String OTHER_LIC_FIELD = "other-lic";
+ private static final String BIG_FIELD_WIDTH = "280";
private final RadioButton ccRB;
private final RadioButton allowModifRB;
@@ -94,6 +95,7 @@
// Options
optionsBox = new TitledPanel(i18n.t("Options"), options);
+ optionsBox.setWidth(BIG_FIELD_WIDTH);
generalVP.add(optionsBox);
generalVP.add(nonCopyleft);
generalVP.add(copyleft);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2008-10-27 21:53:19 UTC (rev 933)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2008-10-28 15:40:27 UTC (rev 934)
@@ -58,7 +58,7 @@
public static final String PROJ_GROUP_TYPE_ID = "k-ngp-type_of_group_proj";
public static final String ORG_GROUP_TYPE_ID = "k-ngp-type_of_group_org";
public static final String COMM_GROUP_TYPE_ID = "k-ngp-type_of_group_comm";
- public static final String TAGS_FIELD = "tags";
+ public static final String TAGS_FIELD = "k-ngp-tags";
public static final String NEWGROUP_WIZARD = "k-ngp-wiz";
public static final String CANCEL_BUTTON = "k-ngp-cancel-bt";
public static final String CLOSE_BUTTON = "k-ngp-close-bt";
@@ -66,6 +66,7 @@
public static final String NEXT_BUTTON = "k-ngp-next-bt";
public static final String BACK_BUTTON = "k-ngp-back-bt";
public static final String ERROR_MSG_BAR = "k-ngp-error-mb";
+ private static final int BIG_FIELD_WIDTH = 280;
private final FormPanel newGroupInitialDataForm;
private Radio projectRadio;
@@ -83,7 +84,7 @@
public NewGroupPanel(final NewGroupPresenter presenter, final I18nUITranslationService i18n,
final Provider<LicenseChoose> licenseChooseProvider, Images img) {
- super(i18n.t(REGISTER_A_NEW_GROUP_TITLE), true, false, 460, 480, new WizardListener() {
+ super(i18n.t(REGISTER_A_NEW_GROUP_TITLE), true, false, 460, 430, new WizardListener() {
public void onBack() {
presenter.onBack();
}
@@ -242,7 +243,7 @@
longNameField = new TextField();
longNameField.setFieldLabel(i18n.t("Long name"));
longNameField.setName(LONGNAME_FIELD);
- longNameField.setWidth(300);
+ longNameField.setWidth(BIG_FIELD_WIDTH);
longNameField.setAllowBlank(false);
longNameField.setMinLength(3);
@@ -253,7 +254,7 @@
publicDescField = new TextArea();
publicDescField.setFieldLabel(i18n.t("Public description"));
publicDescField.setName(PUBLICDESC_FIELD);
- publicDescField.setWidth(300);
+ publicDescField.setWidth(BIG_FIELD_WIDTH);
publicDescField.setAllowBlank(false);
publicDescField.setMinLength(10);
publicDescField.setMaxLength(255);
@@ -263,7 +264,7 @@
tags = new TextField();
tags.setFieldLabel(i18n.t("Group tags"));
tags.setName(TAGS_FIELD);
- tags.setWidth(300);
+ tags.setWidth(BIG_FIELD_WIDTH);
tags.setAllowBlank(false);
final ToolTip fieldToolTip = new ToolTip(i18n.t("Some words related to this group (separated with spaces)."));
fieldToolTip.applyTo(tags);
@@ -272,7 +273,7 @@
final FieldSet groupTypeFieldSet = new FieldSet(i18n.t("Type of group"));
groupTypeFieldSet.setStyle("margin-left: 105px");
- groupTypeFieldSet.setWidth(300);
+ groupTypeFieldSet.setWidth(BIG_FIELD_WIDTH);
form.add(groupTypeFieldSet);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2008-10-27 21:53:19 UTC (rev 933)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2008-10-28 15:40:27 UTC (rev 934)
@@ -39,6 +39,7 @@
import com.google.gwt.user.client.rpc.AsyncCallback;
public class NewGroupPresenter implements NewGroup {
+ public static final String NAME_IN_ALREADY_IN_USE = "This name in already in use, try with a different name.";
public static final String REGISTER_TO_CREATE_A_GROUP = "Sign in or register to create a group";
private NewGroupView view;
private final I18nTranslationService i18n;
@@ -119,7 +120,7 @@
} catch (final GroupNameInUseException e) {
onBack();
view.unMask();
- setMessage(i18n.t("This name in already in use, try with a different name."), SiteErrorType.error);
+ setMessage(i18n.t(NAME_IN_ALREADY_IN_USE), SiteErrorType.error);
} catch (final Throwable e) {
onBack(); // The messageP is in first page of wizard :-/
view.unMask();
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java 2008-10-27 21:53:19 UTC (rev 933)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java 2008-10-28 15:40:27 UTC (rev 934)
@@ -13,6 +13,8 @@
import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserMenuPanel;
import org.ourproject.kune.workspace.client.title.EntityTitlePanel;
+import com.thoughtworks.selenium.SeleniumException;
+
public class KuneSeleniumTestHelper extends SeleniumTestHelper {
protected static final String KUNE_BASE_URL = "/kune/?locale=en#";
@@ -23,12 +25,32 @@
selenium.refresh();
}
+ protected long genPrefix() {
+ long prefix = new Date().getTime();
+ return prefix;
+ }
+
protected void ifLoggedSigOut() {
if (selenium.getText(gid(SiteSignOutLinkPanel.SITE_SIGN_OUT)).indexOf("admin") > 0) {
signOut();
}
}
+ protected void open(SiteToken token) {
+ open(KUNE_BASE_URL + token.toString());
+ }
+
+ @Override
+ protected void open(String url) {
+ try {
+ selenium.setTimeout("0");
+ super.open(url);
+ selenium.setTimeout("30");
+ } catch (SeleniumException e) {
+ // TODO Auto-generated method stub
+ }
+ }
+
protected void openDefPage() throws Exception {
open("/kune/?locale=en#site");
waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
@@ -66,6 +88,13 @@
click(RegisterPanel.REGISTER_BUTTON_ID);
}
+ protected String registerValidUser(boolean wantHomepage) {
+ String shortName = "u" + genPrefix();
+ register(shortName, "some name " + genPrefix(), "somepasswd", "somepasswd", genPrefix() + "@example.com",
+ "Andorra", "English", "MET", wantHomepage);
+ return shortName;
+ }
+
protected void signIn() {
signIn("admin", "easyeasy");
}
@@ -84,20 +113,4 @@
protected void verifyLoggedUserShorName(String userShortName) throws Exception {
waitForTextInside(gid(SiteUserMenuPanel.LOGGED_USER_MENU), userShortName);
}
-
- protected long genPrefix() {
- long prefix = new Date().getTime();
- return prefix;
- }
-
- protected void open(SiteToken token) {
- open(KUNE_BASE_URL + token.toString());
- }
-
- protected String registerValidUser(boolean wantHomepage) {
- String shortName = "u" + genPrefix();
- register(shortName, "some name " + genPrefix(), "somepasswd", "somepasswd", genPrefix() + "@example.com",
- "Andorra", "English", "MET", wantHomepage);
- return shortName;
- }
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java 2008-10-27 21:53:19 UTC (rev 933)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java 2008-10-28 15:40:27 UTC (rev 934)
@@ -2,7 +2,9 @@
import static org.junit.Assert.assertFalse;
+import org.junit.Ignore;
import org.junit.Test;
+import org.ourproject.kune.platf.client.dto.GroupType;
import org.ourproject.kune.workspace.client.newgroup.NewGroupPanel;
import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
import org.ourproject.kune.workspace.client.site.SiteToken;
@@ -12,28 +14,60 @@
@Test
public void newGroupBasic() throws Exception {
- setMustStopFinally(false);
assertFalse(selenium.isTextPresent(NewGroupPanel.NEWGROUP_WIZARD));
- openDefPage();
- signIn();
- selenium.refresh();
+ signInAndNewGroup();
+ click(NewGroupPanel.CANCEL_BUTTON);
+ assertFalse(selenium.isTextPresent(NewGroupPanel.NEWGROUP_WIZARD));
open(SiteToken.newgroup);
- verifyLoggedUserShorName("admin");
waitForTextInside(NewGroupPanel.NEWGROUP_WIZARD, NewGroupPanel.REGISTER_A_NEW_GROUP_TITLE);
}
@Test
public void newGroupNotLogged() throws Exception {
- setMustStopFinally(false);
assertFalse(selenium.isTextPresent(NewGroupPanel.NEWGROUP_WIZARD));
open(SiteToken.newgroup);
waitForTextInside(SiteToastMessagePanel.MESSAGE, NewGroupPresenter.REGISTER_TO_CREATE_A_GROUP);
}
- @Test
- public void newGroupWithExistingNicknameFails() {
- open(SiteToken.newgroup);
+ @Ignore
+ public void newGroupWithExistingNicknameFails() throws Exception {
+ setMustStopFinally(false);
+ signInAndNewGroup();
+ fillNewGroup1stPage("admin", "some long name" + genPrefix(), "some public description", "tag1 tag2 tag3",
+ GroupType.ORGANIZATION);
+ click(NewGroupPanel.NEXT_BUTTON);
+ click(NewGroupPanel.FINISH_BUTTON);
+ waitForTextInside(NewGroupPanel.ERROR_MSG_BAR, NewGroupPresenter.NAME_IN_ALREADY_IN_USE);
+ }
+ private void fillNewGroup1stPage(String shortname, String longName, String description, String tags,
+ GroupType groupType) throws Exception {
+ type(NewGroupPanel.SHORTNAME_FIELD, shortname);
+ type(NewGroupPanel.LONGNAME_FIELD, longName);
+ type(NewGroupPanel.PUBLICDESC_FIELD, description);
+ type(NewGroupPanel.TAGS_FIELD, tags);
+ switch (groupType) {
+ case COMMUNITY:
+ click(NewGroupPanel.COMM_GROUP_TYPE_ID);
+ break;
+ case ORGANIZATION:
+ click(NewGroupPanel.ORG_GROUP_TYPE_ID);
+ break;
+ case PROJECT:
+ click(NewGroupPanel.PROJ_GROUP_TYPE_ID);
+ break;
+ default:
+ fail("Invalid group type");
+ break;
+ }
}
+ private void signInAndNewGroup() throws Exception {
+ openDefPage();
+ signIn();
+ open(SiteToken.newgroup);
+ verifyLoggedUserShorName("admin");
+ waitForTextInside(NewGroupPanel.NEWGROUP_WIZARD, NewGroupPanel.REGISTER_A_NEW_GROUP_TITLE);
+ }
+
}
1
0
Author: vjrj
Date: 2008-10-27 22:53:19 +0100 (Mon, 27 Oct 2008)
New Revision: 933
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/TextUtils.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/MessageToolbar.java
trunk/src/test/java/org/ourproject/kune/platf/client/ui/TextUtilsTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java
Removed:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/SplitterListener.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/SplitterListenerCollection.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInOld.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanelOld.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenterOld.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInViewOld.java
Modified:
trunk/src/main/java/org/ourproject/kune/platf/client/services/I18nTranslationServiceMocked.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/ImageUtils.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/Images.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/DropDownPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneStringUtils.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneUiUtils.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/WizardDialog.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java
trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/i18n/I18nTranslationServiceDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nTranslationManagerDefault.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ctxadmin/AccessListsPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nUITranslationService.java
trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/ui/I18nTranslatorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/SimpleMessagePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/SiteMessagePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/SiteToastMessagePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/summary/GroupSummaryPanel.java
trunk/src/test/java/org/ourproject/kune/platf/client/ui/KuneStringUtilsTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
Log:
Incomplete - task New Group dialog refactorization (with more selenium test)
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/I18nTranslationServiceMocked.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/I18nTranslationServiceMocked.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/I18nTranslationServiceMocked.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -19,11 +19,11 @@
*/
package org.ourproject.kune.platf.client.services;
-import org.ourproject.kune.platf.client.ui.KuneStringUtils;
+import org.ourproject.kune.platf.client.ui.TextUtils;
public class I18nTranslationServiceMocked extends I18nTranslationService {
public String t(final String text) {
- String encodeText = KuneStringUtils.escapeHtmlLight(text);
+ String encodeText = TextUtils.escapeHtmlLight(text);
String translation = removeNT(encodeText);
return decodeHtml(translation);
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/ImageUtils.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/ImageUtils.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/ImageUtils.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -22,8 +22,13 @@
public class ImageUtils {
+ private final Images img;
+
+ public ImageUtils(Images img) {
+ this.img = img;
+ }
+
public AbstractImagePrototype getImage(final ImageDescriptor imageDescriptor) {
- final Images img = Images.App.getInstance();
switch (imageDescriptor) {
case accept: {
return img.accept();
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/Images.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/Images.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/Images.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -28,7 +28,6 @@
public static class App {
private static Images ourInstance = null;
- @Deprecated
public static synchronized Images getInstance() {
if (ourInstance == null) {
ourInstance = (Images) GWT.create(Images.class);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -228,7 +228,7 @@
}, new Factory<ImageUtils>(ImageUtils.class) {
@Override
public ImageUtils create() {
- return new ImageUtils();
+ return new ImageUtils($(Images.class));
}
});
@@ -261,7 +261,7 @@
final I18nTranslatorPresenter presenter = new I18nTranslatorPresenter($(Session.class),
$(I18nServiceAsync.class), i18n);
final I18nTranslatorView view = new I18nTranslatorPanel(presenter, i18n, $(LanguageSelector.class),
- $(WorkspaceSkeleton.class));
+ $(WorkspaceSkeleton.class), $(Images.class));
presenter.init(view);
return presenter;
}
@@ -294,7 +294,7 @@
@Override
public LicenseChoose create() {
final LicenseChoosePresenter presenter = new LicenseChoosePresenter($(Session.class));
- final LicenseChoosePanel view = new LicenseChoosePanel(presenter, i18n);
+ final LicenseChoosePanel view = new LicenseChoosePanel(presenter, i18n, $(Images.class));
presenter.init(view);
return presenter;
}
@@ -305,7 +305,7 @@
public NewGroup create() {
final NewGroupPresenter presenter = new NewGroupPresenter(i18n, $(Session.class),
$(StateManager.class), $$(GroupServiceAsync.class));
- final NewGroupPanel view = new NewGroupPanel(presenter, i18n, $$(LicenseChoose.class));
+ final NewGroupPanel view = new NewGroupPanel(presenter, i18n, $$(LicenseChoose.class), $(Images.class));
presenter.init(view);
return presenter;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -230,7 +230,7 @@
public SiteSearch create() {
final SiteSearchPresenter presenter = new SiteSearchPresenter($$(SiteSearcher.class));
final SiteSearchPanel panel = new SiteSearchPanel(presenter, $(WorkspaceSkeleton.class),
- $(I18nUITranslationService.class));
+ $(I18nUITranslationService.class), $(Images.class));
presenter.init(panel);
return presenter;
}
@@ -310,7 +310,7 @@
final RateItPresenter presenter = new RateItPresenter($(I18nUITranslationService.class),
$(Session.class), $$(ContentServiceAsync.class), $(StateManager.class));
final RateItPanel panel = new RateItPanel(presenter, $(I18nUITranslationService.class),
- $(WorkspaceSkeleton.class));
+ $(WorkspaceSkeleton.class), $(Images.class));
presenter.init(panel);
return presenter;
}
@@ -346,8 +346,8 @@
public GroupSummary create() {
final GroupSummaryPresenter presenter = new GroupSummaryPresenter($(StateManager.class),
$(WsThemePresenter.class));
- final GroupSummaryView view = new GroupSummaryPanel(presenter, $(I18nUITranslationService.class),
- $(WorkspaceSkeleton.class));
+ final GroupSummaryView view = new GroupSummaryPanel($(Images.class), presenter,
+ $(I18nUITranslationService.class), $(WorkspaceSkeleton.class));
presenter.init(view);
return presenter;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/DropDownPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/DropDownPanel.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/DropDownPanel.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -47,7 +47,8 @@
private final RoundedPanel outerBorder;
private String stylePrimaryName;
- public DropDownPanel() {
+ public DropDownPanel(Images img) {
+ this.img = img;
vp = new VerticalPanel();
outerBorder = new RoundedPanel(vp, RoundedPanel.ALL);
titleHP = new HorizontalPanel();
@@ -68,7 +69,6 @@
vp.setCellWidth(contentPanel, "100%");
vp.setCellWidth(titleHP, "100%");
titleHP.setStylePrimaryName("k-dropdownlabel");
- img = Images.App.getInstance();
img.arrowDownWhite().applyTo(arrowImage);
titleLabel.setText("");
contentPanel.setStylePrimaryName("k-dropdowninner");
@@ -78,13 +78,13 @@
titleLabel.addClickListener(this);
}
- public DropDownPanel(final boolean visible) {
- this();
+ public DropDownPanel(Images img, final boolean visible) {
+ this(img);
setContentVisible(visible);
}
- public DropDownPanel(final String headerText, final boolean visible) {
- this();
+ public DropDownPanel(Images img, final String headerText, final boolean visible) {
+ this(img);
setContentVisible(visible);
setHeaderText(headerText);
}
@@ -136,6 +136,7 @@
KuneUiUtils.setQuickTip(titleLabel, title);
}
+ @Override
public void setHeight(final String height) {
super.setHeight(height);
outerBorder.setHeight(height);
@@ -157,6 +158,7 @@
contentPanel.addStyleDependentName(newThemeS);
}
+ @Override
public void setWidth(final String width) {
super.setWidth(width);
outerBorder.setWidth(width);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneStringUtils.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneStringUtils.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneStringUtils.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -1,80 +1,10 @@
-/*
- *
- * Copyright (C) 2007-2008 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 org.ourproject.kune.platf.client.ui;
-import java.util.ArrayList;
+/**
+ * Use TextUtils
+ *
+ */
+@Deprecated
+public class KuneStringUtils extends TextUtils {
-public class KuneStringUtils {
- /*
- * This method escape only some dangerous html chars
- */
- public static String escapeHtmlLight(final String textOrig) {
- String text = textOrig;
- text = text.replaceAll("&", "&");
- text = text.replaceAll("\"", """);
- // text = text.replaceAll("\'", "'");
- text = text.replaceAll("<", "<");
- text = text.replaceAll(">", ">");
- return text;
- }
-
- public static String generateHtmlLink(final String href, final String text) {
- return "<a href=\"" + href + "\" target=\"_blank\">" + text + "</a>";
- }
-
- public static ArrayList<String> splitTags(final String tagsString) {
- final ArrayList<String> tagsList = new ArrayList<String>();
- String tagsCopy = tagsString;
- // remove commas and quotes
- if (tagsString == null) {
- return tagsList;
- }
- tagsCopy = tagsCopy.replaceAll(",", " ");
- tagsCopy = tagsCopy.replaceAll("\"", "");
- tagsCopy = tagsCopy.replaceAll("\'", "");
- final String[] splitted = tagsCopy.split("\\s+");
- for (int i = 0; i < splitted.length; i++) {
- String tag = splitted[i];
- tag = tag.replaceAll("\\s$", "");
- if (tag.length() > 0) {
- tagsList.add(tag);
- }
- }
- return tagsList;
- }
-
- /*
- * This method unescape only some dangerous html chars for use in GWT Html
- * widget for instance
- */
- public static String unescapeHtmlLight(final String textOrig) {
- String text = textOrig;
- text = text.replaceAll("&", "&");
- text = text.replaceAll(""", "\"");
- text = text.replaceAll("'", "\'");
- text = text.replaceAll("<", "<");
- text = text.replaceAll(">", ">");
- return text;
- }
-
- public KuneStringUtils() {
- }
-
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneUiUtils.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneUiUtils.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneUiUtils.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -28,20 +28,51 @@
public class KuneUiUtils {
+ public enum IconPosition {
+ left, right
+ }
+
+ public static String genQuickTipLabel(final String labelText, final String tipTitle, final String tipText) {
+ String tipHtml = "<span style=\"vertical-align: middle;\" ext:qtip=\"" + tipText + "\"";
+ if (tipTitle != null && tipTitle.length() > 0) {
+ tipHtml += " ext:qtitle=\"" + tipTitle + "\"";
+ }
+ tipHtml += ">";
+ tipHtml += labelText;
+ tipHtml += "</span>";
+ return tipHtml;
+ }
+
public static String genQuickTipLabel(final String labelText, final String tipTitle, final String tipText,
- final AbstractImagePrototype icon) {
- // FIXME: get this from emite
+ final AbstractImagePrototype icon, IconPosition iconPosition) {
String tipHtml = "<span style=\"vertical-align: middle;\" ext:qtip=\"" + tipText + "\"";
if (tipTitle != null && tipTitle.length() > 0) {
tipHtml += " ext:qtitle=\"" + tipTitle + "\"";
}
tipHtml += ">";
- tipHtml += labelText;
- tipHtml += " ";
- Image iconImg = new Image();
+ final Image iconImg = new Image();
icon.applyTo(iconImg);
- setQuickTip(iconImg, tipText, tipTitle);
- tipHtml += iconImg.toString();
+ iconImg.setStyleName("vamiddle");
+ // setQuickTip(iconImg, tipText, tipTitle);
+
+ ToolTip tooltip = new ToolTip();
+ tooltip.setHtml(tipText);
+ tooltip.setWidth(250);
+ tooltip.applyTo(iconImg.getElement());
+
+ switch (iconPosition) {
+ case left:
+ tipHtml += iconImg.toString();
+ tipHtml += " ";
+ tipHtml += labelText;
+ break;
+ case right:
+ tipHtml += labelText;
+ tipHtml += " ";
+ tipHtml += iconImg.toString();
+ break;
+ }
+
tipHtml += "</span>";
return tipHtml;
}
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/ui/SplitterListener.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/SplitterListener.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/SplitterListener.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -1,30 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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 org.ourproject.kune.platf.client.ui;
-
-import com.google.gwt.user.client.ui.Widget;
-
-public interface SplitterListener {
-
- void onStartResizing(Widget sender);
-
- void onStopResizing(Widget sender);
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/ui/SplitterListenerCollection.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/SplitterListenerCollection.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/SplitterListenerCollection.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -1,57 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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 org.ourproject.kune.platf.client.ui;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import com.google.gwt.user.client.ui.Widget;
-
-public class SplitterListenerCollection extends ArrayList<SplitterListener> {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * Fires a event to all listeners.
- *
- * @param sender
- * the widget sending the event.
- */
- public void fireStartResizing(final Widget sender) {
- for (Iterator<SplitterListener> it = iterator(); it.hasNext();) {
- SplitterListener listener = it.next();
- listener.onStartResizing(sender);
- }
- }
-
- /**
- * Fires a event to all listeners.
- *
- * @param sender
- * the widget sending the event.
- */
- public void fireStopResizing(final Widget sender) {
- for (Iterator<SplitterListener> it = iterator(); it.hasNext();) {
- SplitterListener listener = it.next();
- listener.onStopResizing(sender);
- }
- }
-
-}
Copied: trunk/src/main/java/org/ourproject/kune/platf/client/ui/TextUtils.java (from rev 925, trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneStringUtils.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneStringUtils.java 2008-10-24 17:46:08 UTC (rev 925)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/TextUtils.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -0,0 +1,91 @@
+/*
+ *
+ * Copyright (C) 2007-2008 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 org.ourproject.kune.platf.client.ui;
+
+import java.util.ArrayList;
+
+public class TextUtils {
+ // Original regexp from http://snippets.dzone.com/posts/show/452
+ public static final String URL_REGEXP = "((ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?)";
+
+ // Original regexp from http://www.regular-expressions.info/email.html
+ public static final String EMAIL_REGEXP = "[-!#$%&\'*+/=?_`{|}~a-z0-9^]+(\\.[-!#$%&\'*+/=?_`{|}~a-z0-9^]+)*@(localhost|([a-z0-9]([-a-z0-9]*[a-z0-9])?\\.)+[a-z0-9]([-a-z0-9]*[a-z0-9]))?";
+
+ /*
+ * This method escape only some dangerous html chars
+ */
+ public static String escapeHtmlLight(final String source) {
+ if (source == null) {
+ return null;
+ }
+ String result = source;
+ result = result.replaceAll("&", "&");
+ result = result.replaceAll("\"", """);
+ // text = text.replaceAll("\'", "'");
+ result = result.replaceAll("<", "<");
+ result = result.replaceAll(">", ">");
+ return result;
+ }
+
+ public static String generateHtmlLink(final String href, final String text) {
+ return "<a href=\"" + href + "\" target=\"_blank\">" + text + "</a>";
+ }
+
+ public static ArrayList<String> splitTags(final String tagsString) {
+ final ArrayList<String> tagsList = new ArrayList<String>();
+ String tagsCopy = tagsString;
+ // remove commas and quotes
+ if (tagsString == null) {
+ return tagsList;
+ }
+ tagsCopy = tagsCopy.replaceAll(",", " ");
+ tagsCopy = tagsCopy.replaceAll("\"", "");
+ tagsCopy = tagsCopy.replaceAll("\'", "");
+ final String[] splitted = tagsCopy.split("\\s+");
+ for (String tag : splitted) {
+ tag = tag.replaceAll("\\s$", "");
+ if (tag.length() > 0) {
+ tagsList.add(tag);
+ }
+ }
+ return tagsList;
+ }
+
+ /*
+ * This method unescape only some dangerous html chars for use in GWT Html
+ * widget for instance
+ */
+ public static String unescape(final String source) {
+ if (source == null) {
+ return null;
+ }
+ String result = source;
+ result = result.replaceAll("&", "&");
+ result = result.replaceAll(""", "\"");
+ result = result.replaceAll("'", "\'");
+ result = result.replaceAll("<", "<");
+ result = result.replaceAll(">", ">");
+ return result;
+ }
+
+ public TextUtils() {
+ }
+
+}
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/TextUtils.java
___________________________________________________________________
Name: svn:mergeinfo
+
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/MessageToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/MessageToolbar.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/MessageToolbar.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -0,0 +1,46 @@
+package org.ourproject.kune.platf.client.ui.dialogs;
+
+import org.ourproject.kune.platf.client.services.Images;
+import org.ourproject.kune.workspace.client.newgroup.SiteErrorType;
+
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.Label;
+import com.gwtext.client.widgets.Toolbar;
+
+public class MessageToolbar {
+ private final Toolbar toolbar;
+ private final Image errorIcon;
+ private final Label errorLabel;
+
+ public MessageToolbar(Images images, String errorLabelId) {
+ toolbar = new Toolbar();
+ errorLabel = new Label("");
+ errorLabel.ensureDebugId(errorLabelId);
+ errorIcon = new Image();
+ images.error().applyTo(errorIcon);
+ toolbar.addSpacer();
+ toolbar.addElement(errorIcon.getElement());
+ toolbar.setCls("k-error-tb");
+ toolbar.addSpacer();
+ toolbar.addSpacer();
+ toolbar.addElement(errorLabel.getElement());
+ errorIcon.setVisible(false);
+ toolbar.setVisible(false);
+ }
+
+ public Toolbar getToolbar() {
+ return toolbar;
+ }
+
+ public void hideErrorMessage() {
+ errorIcon.setVisible(false);
+ errorLabel.setText("");
+ toolbar.setVisible(false);
+ }
+
+ public void setErrorMessage(final String message, final SiteErrorType type) {
+ errorLabel.setText(message);
+ errorIcon.setVisible(true);
+ toolbar.setVisible(true);
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/WizardDialog.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/WizardDialog.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/WizardDialog.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -26,20 +26,22 @@
import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.Panel;
+import com.gwtext.client.widgets.Toolbar;
import com.gwtext.client.widgets.event.WindowListenerAdapter;
public class WizardDialog {
- private final BasicDialog dialog;
private final Button backButton;
- private final Button nextButton;
private final Button cancelButton;
+ private final BasicDialog dialog;
private final Button finishButton;
private final I18nTranslationService i18n;
+ private final Button nextButton;
public WizardDialog(final String caption, final boolean modal, final boolean minimizable, final int width,
final int height, final int minWidth, final int minHeight, final WizardListener listener,
- final I18nTranslationService i18n) {
+ final I18nTranslationService i18n, String dialogId, final String backId, final String nextId,
+ final String finishId, final String cancelId, final String closeId) {
dialog = new BasicDialog(caption, modal, false, width, height, minWidth, minHeight);
this.i18n = i18n;
dialog.setCollapsible(minimizable);
@@ -47,12 +49,14 @@
dialog.setPlain(true);
dialog.setCollapsible(false);
dialog.setResizable(false);
+ dialog.setId(dialogId);
backButton = new CustomButton(i18n.tWithNT("« Back", "used in button"), new ClickListener() {
public void onClick(final Widget sender) {
listener.onBack();
}
}).getButton();
+ backButton.setId(backId);
dialog.addButton(backButton);
nextButton = new CustomButton(i18n.tWithNT("Next »", "used in button"), new ClickListener() {
@@ -60,6 +64,7 @@
listener.onNext();
}
}).getButton();
+ nextButton.setId(nextId);
dialog.addButton(nextButton);
cancelButton = new CustomButton(i18n.tWithNT("Cancel", "used in button"), new ClickListener() {
@@ -67,6 +72,7 @@
listener.onCancel();
}
}).getButton();
+ cancelButton.setId(cancelId);
dialog.addButton(cancelButton);
finishButton = new CustomButton(i18n.tWithNT("Finish", "used in button"), new ClickListener() {
@@ -74,9 +80,11 @@
listener.onFinish();
}
}).getButton();
+ finishButton.setId(finishId);
dialog.addButton(finishButton);
dialog.addListener(new WindowListenerAdapter() {
+ @Override
public void onClose(final Panel panel) {
listener.onClose();
}
@@ -84,8 +92,10 @@
}
public WizardDialog(final String caption, final boolean modal, final boolean minimizable, final int width,
- final int height, final WizardListener listener, final I18nTranslationService i18n) {
- this(caption, modal, minimizable, width, height, width, height, listener, i18n);
+ final int height, final WizardListener listener, final I18nTranslationService i18n, String dialogId,
+ final String backId, final String nextId, final String finishId, final String cancelId, final String closeId) {
+ this(caption, modal, minimizable, width, height, width, height, listener, i18n, dialogId, backId, nextId,
+ finishId, cancelId, closeId);
}
public void add(final Widget widget) {
@@ -108,6 +118,10 @@
mask(i18n.t("Processing"));
}
+ public void setBottomToolbar(Toolbar toolbar) {
+ dialog.setBottomToolbar(toolbar);
+ }
+
public void setEnabledBackButton(final boolean enabled) {
if (enabled) {
backButton.enable();
@@ -167,5 +181,4 @@
public void unMask() {
dialog.getEl().unmask();
}
-
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPanel.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPanel.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -35,14 +35,16 @@
private Grid rateGrid;
private Image[] starImg;
private Label rateDesc;
- private final Images img = Images.App.getInstance();
+ private final Images img;
private final RateItPresenter presenter;
private Label rateItLabel;
private final I18nTranslationService i18n;
- public RateItPanel(final RateItPresenter presenter, final I18nTranslationService i18n, final WorkspaceSkeleton ws) {
+ public RateItPanel(final RateItPresenter presenter, final I18nTranslationService i18n, final WorkspaceSkeleton ws,
+ Images img) {
this.presenter = presenter;
this.i18n = i18n;
+ this.img = img;
initialize();
layout();
setProperties();
@@ -90,6 +92,7 @@
starImg[i].setTitle(i18n.t("Click to rate this"));
starImg[i].addClickListener(this);
starImg[i].addMouseListener(new MouseListenerAdapter() {
+ @Override
public void onMouseEnter(final Widget sender) {
for (int j = 0; j < 5; j++) {
if (sender == starImg[j]) {
@@ -99,6 +102,7 @@
}
+ @Override
public void onMouseLeave(final Widget sender) {
presenter.revertCurrentRate();
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -18,7 +18,7 @@
*
*/package org.ourproject.kune.platf.client.ui.upload;
-import org.ourproject.kune.platf.client.ui.KuneStringUtils;
+import org.ourproject.kune.platf.client.ui.TextUtils;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.site.Site;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
@@ -84,7 +84,7 @@
}
public void setPermittedExtensions(final String extensions) {
- final Object[] objs = KuneStringUtils.splitTags(extensions).toArray();
+ final Object[] objs = TextUtils.splitTags(extensions).toArray();
final String[] exts = new String[objs.length];
for (int i = 0; i < objs.length; i++) {
exts[i] = (String) objs[i];
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -34,7 +34,7 @@
import org.ourproject.kune.platf.client.errors.DefaultException;
import org.ourproject.kune.platf.client.errors.I18nNotFoundException;
import org.ourproject.kune.platf.client.errors.UserNotFoundException;
-import org.ourproject.kune.platf.client.ui.KuneStringUtils;
+import org.ourproject.kune.platf.client.ui.TextUtils;
import org.ourproject.kune.platf.server.access.FinderService;
import org.ourproject.kune.platf.server.domain.Container;
import org.ourproject.kune.platf.server.domain.Content;
@@ -205,7 +205,7 @@
public void setTags(final User user, final Long contentId, final String tags) throws DefaultException {
final Content content = finder.getContent(contentId);
- final ArrayList<String> tagsStripped = KuneStringUtils.splitTags(tags);
+ final ArrayList<String> tagsStripped = TextUtils.splitTags(tags);
final ArrayList<Tag> tagList = new ArrayList<Tag>();
for (String tagString : tagsStripped) {
Tag tag;
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/i18n/I18nTranslationServiceDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/i18n/I18nTranslationServiceDefault.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/i18n/I18nTranslationServiceDefault.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -20,7 +20,7 @@
package org.ourproject.kune.platf.server.i18n;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.ui.KuneStringUtils;
+import org.ourproject.kune.platf.client.ui.TextUtils;
import org.ourproject.kune.platf.server.UserSession;
import org.ourproject.kune.platf.server.domain.I18nTranslation;
import org.ourproject.kune.platf.server.manager.I18nTranslationManager;
@@ -62,7 +62,7 @@
// } else {
language = I18nTranslation.DEFAULT_LANG;
// }
- String encodeText = KuneStringUtils.escapeHtmlLight(text);
+ String encodeText = TextUtils.escapeHtmlLight(text);
String translation = translationManager.getTranslation(language, text);
if (translation == UNTRANSLATED_VALUE) {
// Not translated but in db, return text
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nTranslationManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nTranslationManagerDefault.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nTranslationManagerDefault.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -27,7 +27,7 @@
import javax.persistence.EntityManager;
import org.ourproject.kune.platf.client.errors.DefaultException;
-import org.ourproject.kune.platf.client.ui.KuneStringUtils;
+import org.ourproject.kune.platf.client.ui.TextUtils;
import org.ourproject.kune.platf.server.domain.I18nLanguage;
import org.ourproject.kune.platf.server.domain.I18nTranslation;
import org.ourproject.kune.platf.server.manager.I18nLanguageManager;
@@ -77,7 +77,7 @@
public String getTranslation(final String language, final String text) {
final HashMap<String, String> lexicon = getLexicon(language);
- final String escapedText = KuneStringUtils.escapeHtmlLight(text);
+ final String escapedText = TextUtils.escapeHtmlLight(text);
if (lexicon.containsKey(escapedText)) {
final String translation = lexicon.get(escapedText);
return translation;
@@ -123,7 +123,7 @@
public String setTranslation(final String id, final String translation) throws DefaultException {
final I18nTranslation trans = super.find(new Long(id));
if (trans != null) {
- final String escapedTranslation = KuneStringUtils.escapeHtmlLight(translation);
+ final String escapedTranslation = TextUtils.escapeHtmlLight(translation);
trans.setText(escapedTranslation);
persist(trans);
return escapedTranslation;
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxadmin/AccessListsPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxadmin/AccessListsPanel.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxadmin/AccessListsPanel.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -34,14 +34,15 @@
public class AccessListsPanel extends VerticalPanel implements View {
- private static final Images img = Images.App.getInstance();
private final VerticalPanel adminsVP;
private final VerticalPanel editorsVP;
private final VerticalPanel viewersVP;
private final I18nTranslationService i18n;
+ private final Images img;
- public AccessListsPanel(final I18nTranslationService i18n) {
+ public AccessListsPanel(final I18nTranslationService i18n, Images img) {
this.i18n = i18n;
+ this.img = img;
final Label adminsLabel = new Label(i18n.t("Who can admin this:"));
adminsVP = new VerticalPanel();
final Label editorsLabel = new Label(i18n.t("Who more can edit:"));
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nUITranslationService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nUITranslationService.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nUITranslationService.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -25,7 +25,7 @@
import org.ourproject.kune.platf.client.rpc.I18nServiceAsync;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.ui.KuneStringUtils;
+import org.ourproject.kune.platf.client.ui.TextUtils;
import org.ourproject.kune.platf.client.ui.Location;
import org.ourproject.kune.platf.client.ui.WindowUtils;
@@ -133,7 +133,7 @@
*/
@Override
public String t(final String text) {
- final String encodeText = KuneStringUtils.escapeHtmlLight(text);
+ final String encodeText = TextUtils.escapeHtmlLight(text);
String translation = lexicon.get(encodeText);
if (lexicon.containsKey(encodeText)) {
if (translation == UNTRANSLATED_VALUE) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/ui/I18nTranslatorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/ui/I18nTranslatorPanel.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/ui/I18nTranslatorPanel.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -23,7 +23,7 @@
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.platf.client.ui.AbstractSearcherPanel;
-import org.ourproject.kune.platf.client.ui.KuneStringUtils;
+import org.ourproject.kune.platf.client.ui.TextUtils;
import org.ourproject.kune.platf.client.ui.dialogs.BasicDialog;
import org.ourproject.kune.workspace.client.i18n.I18nTranslatorPresenter;
import org.ourproject.kune.workspace.client.i18n.I18nTranslatorView;
@@ -63,8 +63,6 @@
public class I18nTranslatorPanel extends AbstractSearcherPanel implements I18nTranslatorView {
- private static final String NOTE_FOR_TRANSLATORS_IMAGE_HTML = Images.App.getInstance().nt().getHTML();
-
private Window dialog;
private final I18nTranslatorPresenter presenter;
private LanguageSelectorPanel languageSelectorPanel;
@@ -75,13 +73,15 @@
private final LanguageSelector languageSelector;
private final WorkspaceSkeleton ws;
private SiteBottomTrayButton traybarButton;
+ private final Images img;
public I18nTranslatorPanel(final I18nTranslatorPresenter initPresenter, final I18nTranslationService i18n,
- final LanguageSelector languageSelector, final WorkspaceSkeleton ws) {
+ final LanguageSelector languageSelector, final WorkspaceSkeleton ws, Images img) {
super(i18n);
this.presenter = initPresenter;
this.languageSelector = languageSelector;
this.ws = ws;
+ this.img = img;
}
public void close() {
@@ -136,6 +136,7 @@
final Button close = new Button();
close.setText(i18n.tWithNT("Close", "used in button"));
close.addListener(new ButtonListenerAdapter() {
+ @Override
public void onClick(final Button button, final EventObject e) {
presenter.doClose();
}
@@ -159,6 +160,7 @@
final HorizontalPanel hp = new HorizontalPanel();
languageSelectorPanel = (LanguageSelectorPanel) languageSelector.getView();
languageSelectorPanel.addChangeListener(new ComboBoxListenerAdapter() {
+ @Override
public void onSelect(final ComboBox comboBox, final Record record, final int index) {
setLanguage(record.getAsString(LanguageSelectorPanel.LANG_ID));
dialog.setTitle(i18n.t("Help to translate kune to [%s]", record.getAsString("language")));
@@ -193,7 +195,7 @@
String renderer;
String[] splitted = splitNT((String) value);
if (splitted.length > 1) {
- renderer = "{0} " + NOTE_FOR_TRANSLATORS_IMAGE_HTML;
+ renderer = "{0} " + img.nt().getHTML();
String tip = "<div style='min-width: 75px'>" + splitted[1] + "</div>";
cellMetadata.setHtmlAttribute("ext:qtip=\"" + tip + "\" ext:qtitle=\"Note for translators\"");
} else {
@@ -273,16 +275,18 @@
// grid.setSelectionModel(new RowSelectionModel());
grid.addEditorGridListener(new EditorGridListenerAdapter() {
+ @Override
public void onAfterEdit(final GridPanel grid, final Record record, final String field,
final Object newValue, final Object oldValue, final int rowIndex, final int colIndex) {
final String idValue = record.getAsString(id);
final String trKey = record.getAsString("trKey");
presenter.doTranslation(idValue, trKey, (String) newValue);
- record.set(field, KuneStringUtils.escapeHtmlLight((String) newValue));
+ record.set(field, TextUtils.escapeHtmlLight((String) newValue));
}
});
grid.addGridCellListener(new GridCellListenerAdapter() {
+ @Override
public void onCellDblClick(final GridPanel grid, final int rowIndex, final int colIndex, final EventObject e) {
final Record record = unTransStore.getRecordAt(rowIndex);
final String idValue = record.getAsString(id);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -57,9 +57,8 @@
private final RadioButton nonCommercialRB;
private final I18nTranslationService i18n;
- public LicenseChoosePanel(final LicenseChoosePresenter presenter, final I18nTranslationService i18n) {
+ public LicenseChoosePanel(final LicenseChoosePresenter presenter, final I18nTranslationService i18n, Images img) {
this.i18n = i18n;
- final Images img = Images.App.getInstance();
final VerticalPanel generalVP = new VerticalPanel();
initWidget(generalVP);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -21,17 +21,16 @@
import org.ourproject.kune.platf.client.dto.LicenseDTO;
import org.ourproject.kune.platf.client.services.Images;
-import org.ourproject.kune.platf.client.ui.KuneStringUtils;
import org.ourproject.kune.platf.client.ui.KuneUiUtils;
+import org.ourproject.kune.platf.client.ui.TextUtils;
+import org.ourproject.kune.platf.client.ui.dialogs.MessageToolbar;
import org.ourproject.kune.platf.client.ui.dialogs.WizardDialog;
import org.ourproject.kune.platf.client.ui.dialogs.WizardListener;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoose;
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePanel;
-import org.ourproject.kune.workspace.client.site.msg.SiteMessagePanel;
import com.calclab.suco.client.ioc.Provider;
-import com.google.gwt.user.client.ui.AbstractImagePrototype;
import com.google.gwt.user.client.ui.DeckPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
@@ -50,13 +49,23 @@
import com.gwtext.client.widgets.layout.FitLayout;
public class NewGroupPanel extends WizardDialog implements NewGroupView {
- private static final AbstractImagePrototype INFO_IMAGE = Images.App.getInstance().info();
- private static final String MUST_BE_BETWEEN_3_AND_15 = "Must be between 3 and 15 lowercase characters. Can only contain characters, numbers, and dashes";
- private static final String SHORTNAME_FIELD = "short_name";
- private static final String LONGNAME_FIELD = "long_name";
- private static final String PUBLICDESC_FIELD = "public_desc";
- private static final String TYPEOFGROUP_FIELD = "type_of_group";
- private static final String TAGS_FIELD = "tags";
+ public static final String REGISTER_A_NEW_GROUP_TITLE = "Register a new Group";
+ public static final String MUST_BE_BETWEEN_3_AND_15 = "Must be between 3 and 15 lowercase characters. Can only contain characters, numbers, and dashes";
+ public static final String SHORTNAME_FIELD = "k-ngp-short_name";
+ public static final String LONGNAME_FIELD = "k-ngp-long_name";
+ public static final String PUBLICDESC_FIELD = "k-ngp-public_desc";
+ public static final String TYPEOFGROUP_FIELD = "k-ngp-type_of_group";
+ public static final String PROJ_GROUP_TYPE_ID = "k-ngp-type_of_group_proj";
+ public static final String ORG_GROUP_TYPE_ID = "k-ngp-type_of_group_org";
+ public static final String COMM_GROUP_TYPE_ID = "k-ngp-type_of_group_comm";
+ public static final String TAGS_FIELD = "tags";
+ public static final String NEWGROUP_WIZARD = "k-ngp-wiz";
+ public static final String CANCEL_BUTTON = "k-ngp-cancel-bt";
+ public static final String CLOSE_BUTTON = "k-ngp-close-bt";
+ public static final String FINISH_BUTTON = "k-ngp-finish-bt";
+ public static final String NEXT_BUTTON = "k-ngp-next-bt";
+ public static final String BACK_BUTTON = "k-ngp-back-bt";
+ public static final String ERROR_MSG_BAR = "k-ngp-error-mb";
private final FormPanel newGroupInitialDataForm;
private Radio projectRadio;
@@ -68,13 +77,13 @@
private TextArea publicDescField;
private final DeckPanel deck;
private final LicenseChoose licenseChoosePanel;
- private final SiteMessagePanel messagesPanel;
private final I18nUITranslationService i18n;
private TextField tags;
+ private final MessageToolbar messageErrorBar;
public NewGroupPanel(final NewGroupPresenter presenter, final I18nUITranslationService i18n,
- final Provider<LicenseChoose> licenseChooseProvider) {
- super(i18n.t("Register a new Group"), true, false, 460, 480, new WizardListener() {
+ final Provider<LicenseChoose> licenseChooseProvider, Images img) {
+ super(i18n.t(REGISTER_A_NEW_GROUP_TITLE), true, false, 460, 480, new WizardListener() {
public void onBack() {
presenter.onBack();
}
@@ -94,10 +103,11 @@
public void onNext() {
presenter.onNext();
}
- }, i18n);
+ }, i18n, NEWGROUP_WIZARD, BACK_BUTTON, NEXT_BUTTON, FINISH_BUTTON, CANCEL_BUTTON, CLOSE_BUTTON);
this.i18n = i18n;
Field.setMsgTarget("side");
final Panel centerPanel = new Panel();
+ centerPanel.setPaddings(10);
centerPanel.setLayout(new FitLayout());
deck = new DeckPanel();
newGroupInitialDataForm = createNewGroupInitialDataForm(presenter);
@@ -106,7 +116,6 @@
final HorizontalPanel newGroupInitialDataHP = new HorizontalPanel();
final VerticalPanel chooseLicenseVP = new VerticalPanel();
final HorizontalPanel chooseLicenseHP = new HorizontalPanel();
- final Images img = Images.App.getInstance();
newGroupInitialDataHP.add(img.step1().createImage());
final Label step1Label = new Label(
i18n.t("Please fill this form and follow the next steps to register a new group:"));
@@ -115,7 +124,7 @@
newGroupInitialDataVP.add(newGroupInitialDataForm);
chooseLicenseHP.add(img.step2().createImage());
final HTML step2Label = new HTML(i18n.t("Select a license to share your group contents with other people. "
- + "We recomend [%s] licenses for practical works.", KuneStringUtils.generateHtmlLink(
+ + "We recomend [%s] licenses for practical works.", TextUtils.generateHtmlLink(
"http://en.wikipedia.org/wiki/Copyleft", "copyleft")));
chooseLicenseHP.add(step2Label);
final Label licenseTypeLabel = new Label(i18n.t("Choose a license type:"));
@@ -128,10 +137,8 @@
step1Label.addStyleName("kune-Margin-Medium-b");
step2Label.addStyleName("kune-Margin-Medium-b");
- messagesPanel = new SiteMessagePanel(null, false, i18n);
- messagesPanel.setWidth("425");
- messagesPanel.setMessage("", SiteErrorType.info, SiteErrorType.error);
- newGroupInitialDataVP.add(messagesPanel);
+ messageErrorBar = new MessageToolbar(img, ERROR_MSG_BAR);
+ super.setBottomToolbar(messageErrorBar.getToolbar());
chooseLicenseVP.add((Widget) licenseChoosePanel.getView());
deck.add(newGroupInitialDataVP);
@@ -178,7 +185,7 @@
}
public void hideMessage() {
- messagesPanel.hide();
+ messageErrorBar.hideErrorMessage();
}
public boolean isCommunity() {
@@ -198,8 +205,7 @@
}
public void setMessage(final String message, final SiteErrorType type) {
- messagesPanel.setMessage(message, type, type);
- messagesPanel.show();
+ messageErrorBar.setErrorMessage(message, type);
}
public void showLicenseForm() {
@@ -266,6 +272,7 @@
final FieldSet groupTypeFieldSet = new FieldSet(i18n.t("Type of group"));
groupTypeFieldSet.setStyle("margin-left: 105px");
+ groupTypeFieldSet.setWidth(300);
form.add(groupTypeFieldSet);
@@ -274,55 +281,37 @@
"A project is a kind of group in which new members inclusion "
+ "is moderated by the project administrators. "
+ "An administrator is the person who creates the project "
- + "and other people she/he choose in the future as administrator too.");
+ + "and other people she/he choose in the future as administrator too.", PROJ_GROUP_TYPE_ID);
projectRadio.setChecked(true);
orgRadio = new Radio();
createRadio(groupTypeFieldSet, orgRadio, "Organization", "An organization is like a project, "
- + "but organizations must be a legal entity.");
+ + "but organizations must be a legal entity.", ORG_GROUP_TYPE_ID);
communityRadio = new Radio();
createRadio(groupTypeFieldSet, communityRadio, "Community", "Communities are social group of persons "
+ "with shared interests and they are open to new members "
+ "(for instance the environmental community or the LGBT community). "
- + "Normally they aren't a legal entity.");
+ + "Normally they aren't a legal entity.", COMM_GROUP_TYPE_ID);
groupTypeFieldSet.setCollapsible(false);
return form;
}
- private void createRadio(final FieldSet fieldSet, final Radio radio, final String radioLabel, final String radioTip) {
+ private void createRadio(final FieldSet fieldSet, final Radio radio, final String radioLabel,
+ final String radioTip, final String id) {
radio.setName(TYPEOFGROUP_FIELD);
- radio.setBoxLabel(KuneUiUtils.genQuickTipLabel(i18n.t(radioLabel), null, i18n.t(radioTip), INFO_IMAGE));
+ radio.setBoxLabel(KuneUiUtils.genQuickTipLabel(i18n.t(radioLabel), null, i18n.t(radioTip)));
radio.setAutoCreate(true);
radio.setHideLabel(true);
+ radio.setId(id);
fieldSet.add(radio);
- // ToolTip fieldToolTip = new ToolTip("Tooltip on a Field.");
- // fieldToolTip.applyTo(captchaField);
- // Image info = new Image("images/silk/information.gif");
- //
- // ToolTip tooltip = new ToolTip();
- // tooltip.setHtml("A <b>CAPTCHA</b> is a challenge-response test to
- // determine whether " +
- // "the user is human.");
- // tooltip.setWidth(150);
- // tooltip.applyTo(info.getElement());
- // Tested:
- // Set tooltip
- // Image info = new Image();
- // ChatIcons.App.getInstance().info().applyTo(info);
- // ToolTip tooltip = new ToolTip();
- // tooltip.setHtml(i18n.t("Note that the 'Jabber Id' sometimes is the
- // same as the email "
- // + "(in gmail accounts for instance)."));
- // tooltip.setWidth(250);
- // tooltip.applyTo(info.getElement());
- // jidPanel.addToRow(info, new ColumnLayoutData(1));
- //
- // formPanel.add(jidPanel);
-
+ ToolTip tooltip = new ToolTip();
+ tooltip.setHtml(radioTip);
+ tooltip.setWidth(250);
+ tooltip.applyTo(radio);
}
private void initBottomButtons() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -39,6 +39,7 @@
import com.google.gwt.user.client.rpc.AsyncCallback;
public class NewGroupPresenter implements NewGroup {
+ public static final String REGISTER_TO_CREATE_A_GROUP = "Sign in or register to create a group";
private NewGroupView view;
private final I18nTranslationService i18n;
private StateToken previousToken;
@@ -70,7 +71,7 @@
Site.hideProgress();
} else {
stateManager.gotoToken(previousToken);
- Site.info(i18n.t("Sign in or register to create a group"));
+ Site.info(i18n.t(REGISTER_TO_CREATE_A_GROUP));
}
}
});
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -13,6 +13,7 @@
public class RegisterPanel extends SignInAbstractPanel implements RegisterView {
+ public static final String REGISTER_TITLE = "Register";
public static final String ERRMSG = "k-regp-errmsg";
static RegisterForm registerForm;
@@ -22,22 +23,23 @@
public static final String REGISTER_FORM = "k-regp-p";
public static final String WELCOME_OK_BUTTON = "k-regp-okbt";
+ public static final String WELCOME_DIALOG = "k-regp-wdiag";
public RegisterPanel(final RegisterPresenter presenter, I18nUITranslationService i18n, final WorkspaceSkeleton ws,
Session session, Images images) {
- super(i18n, i18n.t("Register"), true, true, 390, 450, "", i18n.t("Register"), REGISTER_BUTTON_ID, i18n.tWithNT(
- "Cancel", "used in button"), CANCEL_BUTTON_ID, new Listener0() {
- public void onEvent() {
- registerForm.validate();
- if (registerForm.isValid()) {
- presenter.onFormRegister();
- }
- }
- }, new Listener0() {
- public void onEvent() {
- presenter.onCancel();
- }
- }, images, ERRMSG);
+ super(i18n, i18n.t(REGISTER_TITLE), true, true, 390, 450, "", i18n.t(REGISTER_TITLE), REGISTER_BUTTON_ID,
+ i18n.tWithNT("Cancel", "used in button"), CANCEL_BUTTON_ID, new Listener0() {
+ public void onEvent() {
+ registerForm.validate();
+ if (registerForm.isValid()) {
+ presenter.onFormRegister();
+ }
+ }
+ }, new Listener0() {
+ public void onEvent() {
+ presenter.onCancel();
+ }
+ }, images, ERRMSG);
Panel panel = new Panel();
panel.setBorder(false);
@@ -106,6 +108,7 @@
i18n.t("Now you can participate more actively in this site with other people and groups. "
+ "Your email is not verified, please follow the instructions you will receive by email."),
i18n.t("Ok"), WELCOME_OK_BUTTON, true, true, 400, 210);
+ welcomeDialog.setId(WELCOME_DIALOG);
welcomeDialog.show();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -5,6 +5,7 @@
import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.ui.dialogs.BasicDialogExtended;
+import org.ourproject.kune.platf.client.ui.dialogs.MessageToolbar;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.newgroup.SiteErrorType;
import org.ourproject.kune.workspace.client.site.Site;
@@ -12,17 +13,12 @@
import com.calclab.suco.client.listener.Listener0;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Cookies;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.Label;
import com.gwtext.client.core.Ext;
-import com.gwtext.client.widgets.Toolbar;
public abstract class SignInAbstractPanel extends BasicDialogExtended {
protected final I18nUITranslationService i18n;
- protected Label errorLabel;
- private final Image errorIcon;
- private final Toolbar messageToolbar;
+ private final MessageToolbar messageErrorBar;
public SignInAbstractPanel(I18nUITranslationService i18n, String title, boolean modal, boolean autoscroll,
int width, int heigth, String icon, String firstButtonTitle, String cancelButtonTitle,
@@ -39,21 +35,9 @@
super(title, modal, autoscroll, width, heigth, icon, firstButtonTitle, firstButtonId, cancelButtonTitle,
cancelButtonId, onFirstButtonClick, onCancelButtonClick);
this.i18n = i18n;
- errorLabel = new Label("");
- errorLabel.ensureDebugId(errorLabelId);
- messageToolbar = new Toolbar();
- errorIcon = new Image();
- Images.App.getInstance().error().applyTo(errorIcon);
- messageToolbar.addSpacer();
- messageToolbar.addElement(errorIcon.getElement());
- messageToolbar.setCls("k-error-tb");
- messageToolbar.addSpacer();
- messageToolbar.addSpacer();
- messageToolbar.addElement(errorLabel.getElement());
- errorIcon.setVisible(false);
- messageToolbar.setVisible(false);
- super.setBottomToolbar(messageToolbar);
+ messageErrorBar = new MessageToolbar(images, errorLabelId);
+ super.setBottomToolbar(messageErrorBar.getToolbar());
}
@Override
@@ -64,9 +48,7 @@
}
public void hideMessages() {
- errorIcon.setVisible(false);
- errorLabel.setText("");
- messageToolbar.setVisible(false);
+ messageErrorBar.hideErrorMessage();
}
public void mask(final String message) {
@@ -86,9 +68,7 @@
}
public void setErrorMessage(final String message, final SiteErrorType type) {
- errorLabel.setText(message);
- errorIcon.setVisible(true);
- messageToolbar.setVisible(true);
+ messageErrorBar.setErrorMessage(message, type);
}
public void unMask() {
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInOld.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInOld.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInOld.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -1,28 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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 org.ourproject.kune.workspace.client.signin;
-
-import org.ourproject.kune.platf.client.dto.StateToken;
-
-public interface SignInOld {
-
- void doSignIn(StateToken previousStateToken);
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -15,6 +15,7 @@
public class SignInPanel extends SignInAbstractPanel implements SignInView {
+ public static final String SIGN_IN_TITLE = "Sign in";
public static final String ERROR_MSG = "k-sigp-errmsg";
public static final String CANCEL_BUTTON_ID = "k-signinp-cb";
public static final String SIGN_IN_BUTTON_ID = "k-signinp-sib";
@@ -24,19 +25,19 @@
public SignInPanel(final SignInPresenter presenter, I18nUITranslationService i18n, final WorkspaceSkeleton ws,
Images images) {
- super(i18n, i18n.t("Sign in"), true, true, 340, 240, "", i18n.t("Sign in"), SIGN_IN_BUTTON_ID, i18n.tWithNT(
- "Cancel", "used in button"), CANCEL_BUTTON_ID, new Listener0() {
- public void onEvent() {
- signInForm.validate();
- if (signInForm.isValid()) {
- presenter.onFormSignIn();
- }
- }
- }, new Listener0() {
- public void onEvent() {
- presenter.onCancel();
- }
- }, images, ERROR_MSG);
+ super(i18n, i18n.t(SIGN_IN_TITLE), true, true, 340, 240, "", i18n.t(SIGN_IN_TITLE), SIGN_IN_BUTTON_ID,
+ i18n.tWithNT("Cancel", "used in button"), CANCEL_BUTTON_ID, new Listener0() {
+ public void onEvent() {
+ signInForm.validate();
+ if (signInForm.isValid()) {
+ presenter.onFormSignIn();
+ }
+ }
+ }, new Listener0() {
+ public void onEvent() {
+ presenter.onCancel();
+ }
+ }, images, ERROR_MSG);
this.presenter = presenter;
super.addListener(new WindowListenerAdapter() {
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanelOld.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanelOld.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanelOld.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -1,397 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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 org.ourproject.kune.workspace.client.signin;
-
-import java.util.Date;
-
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.ui.dialogs.BasicDialog;
-import org.ourproject.kune.platf.client.ui.dialogs.InfoDialog;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.newgroup.SiteErrorType;
-import org.ourproject.kune.workspace.client.site.Site;
-import org.ourproject.kune.workspace.client.site.msg.SimpleMessagePanel;
-import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.Cookies;
-import com.google.gwt.user.client.DeferredCommand;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.Widget;
-import com.gwtext.client.core.EventObject;
-import com.gwtext.client.widgets.Button;
-import com.gwtext.client.widgets.Component;
-import com.gwtext.client.widgets.Panel;
-import com.gwtext.client.widgets.TabPanel;
-import com.gwtext.client.widgets.Toolbar;
-import com.gwtext.client.widgets.event.ButtonListenerAdapter;
-import com.gwtext.client.widgets.event.PanelListenerAdapter;
-import com.gwtext.client.widgets.event.WindowListenerAdapter;
-import com.gwtext.client.widgets.form.Field;
-import com.gwtext.client.widgets.layout.FitLayout;
-
-public class SignInPanelOld implements SignInViewOld {
- private class MessagePanel extends Panel {
- private static final String SIGNIN_MESSAGE_PANEL = "kune-sip-mp";
- private final SimpleMessagePanel messagesPanel;
-
- public MessagePanel() {
- setPaddings(10);
- setBorder(false);
- setHeight(60);
- messagesPanel = new SimpleMessagePanel();
- messagesPanel.ensureDebugId(SIGNIN_MESSAGE_PANEL);
- messagesPanel.setMessage("", SiteErrorType.info, SiteErrorType.error);
- add(messagesPanel);
- }
-
- @Override
- public void hide() {
- messagesPanel.hide();
- super.hide();
- }
-
- public void setMessage(final String message, final SiteErrorType lastMessageType, final SiteErrorType type) {
- messagesPanel.setMessage(message, lastMessageType, type);
- }
-
- @Override
- public void show() {
- messagesPanel.show();
- super.show();
- }
- }
-
- private static final String USER_SIGN_IN_PANEL = "kune-sip-usp";
- private static final String USER_REGISTER_PANEL = "kune-sip-rp";
- private static final String CANCEL_BUTTON_ID = "kune-sip-cb";
- private static final String REGISTER_BUTTON_ID = "kune-sip-rb";
- private static final String SIGN_IN_BUTTON_ID = "kune-sip-sib";
-
- private BasicDialog dialog;
- private final SignInPresenterOld presenter;
- private SignInForm signInForm;
- private RegisterForm registerForm;
- private MessagePanel messagesSignInPanel;
- private InfoDialog welcomeDialog;
- private TabPanel centerPanel;
- private MessagePanel messagesRegisterPanel;
- private final I18nUITranslationService i18n;
- private Label errorLabel;
-
- public SignInPanelOld(final SignInPresenterOld presenter, final I18nUITranslationService i18n,
- final WorkspaceSkeleton ws) {
- this.i18n = i18n;
- Field.setMsgTarget("side");
- this.presenter = presenter;
- createPanel();
- }
-
- public void center() {
- dialog.center();
- }
-
- public String getCountry() {
- return registerForm.getCountry();
- }
-
- public String getEmail() {
- return registerForm.getEmail();
- }
-
- public String getLanguage() {
- return registerForm.getLanguage();
- }
-
- public String getLoginPassword() {
- return signInForm.getLoginPassword();
- }
-
- public String getLongName() {
- return registerForm.getLongName();
- }
-
- public String getNickOrEmail() {
- return signInForm.getNickOrEmail();
- }
-
- public String getRegisterPassword() {
- return registerForm.getRegisterPassword();
- }
-
- public String getRegisterPasswordDup() {
- return registerForm.getRegisterPasswordDup();
- }
-
- public String getShortName() {
- return registerForm.getShortName();
- }
-
- public String getTimezone() {
- return registerForm.getTimezone();
- }
-
- public void hide() {
- dialog.hide();
- }
-
- public void hideMessages() {
- errorLabel.setText("");
- messagesSignInPanel.hide();
- if (messagesRegisterPanel != null) {
- messagesRegisterPanel.hide();
- }
- renderDialogIfNeeded();
- }
-
- public boolean isRegisterFormValid() {
- return registerForm.isValid();
- }
-
- public boolean isSignInFormValid() {
- return signInForm.isValid();
- }
-
- public void mask(final String message) {
- dialog.getEl().mask(message, "x-mask-loading");
- }
-
- public void maskProcessing() {
- mask(i18n.t("Processing"));
- }
-
- public void reset() {
- DeferredCommand.addCommand(new Command() {
- public void execute() {
- signInForm.reset();
- if (registerForm != null) {
- registerForm.reset();
- }
- }
- });
- }
-
- public void setCookie(final String userHash) {
- // http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ
- final long duration = Session.SESSION_DURATION;
- final Date expires = new Date(System.currentTimeMillis() + duration);
- Cookies.setCookie(Site.USERHASH, userHash, expires, null, "/", false);
- GWT.log("Received hash: " + userHash, null);
- }
-
- public void setRegisterMessage(final String message, final SiteErrorType type) {
- messagesRegisterPanel.setMessage(message, type, type);
- messagesRegisterPanel.show();
- renderDialogIfNeeded();
- }
-
- public void setSignInMessage(final String message, final SiteErrorType type) {
- errorLabel.setText(message);
- messagesSignInPanel.setMessage(message, type, type);
- messagesSignInPanel.show();
- renderDialogIfNeeded();
- }
-
- public void show() {
- centerPanel.activate(0);
- dialog.setVisible(true);
- dialog.show();
- Site.hideProgress();
- dialog.focus();
- signInForm.focusLogin();
- }
-
- public void showWelcolmeDialog() {
- if (welcomeDialog == null) {
- welcomeDialog = new InfoDialog(i18n.t("Welcome"), i18n.t("Thanks for registering"),
- i18n.t("Now you can participate more actively in this site with other people and groups. "
- + "You can also use your personal space to publish contents. "
- + "Your email is not verified, please follow the instructions you will receive by email."),
- i18n.t("Ok"), "asdfasdfa", true, true, 400, 270);
- }
- welcomeDialog.show();
- }
-
- public void unMask() {
- dialog.getEl().unmask();
- }
-
- public boolean wantPersonalHomepage() {
- return registerForm.wantPersonalHomepage();
- }
-
- private void confPanel(final Panel panel) {
- // panel.setLayout(new FormLayout());
- // panel.setAutoWidth(true);
- // anel.setAutoHeight(true);
- panel.setAutoScroll(true);
- }
-
- private Panel createNoAccountRegister() {
- final Panel noAccRegisterPanel = new Panel();
- noAccRegisterPanel.setBorder(false);
- noAccRegisterPanel.setMargins(0, 20, 0, 0);
- HorizontalPanel hp = new HorizontalPanel();
- final Label dontHaveAccountLabel = new Label(i18n.t("Don't have an account?"));
- final Label registerLabel = new Label(i18n.t("Create one."));
- registerLabel.addClickListener(new ClickListener() {
- public void onClick(final Widget arg0) {
- centerPanel.activate(1);
- }
- });
- registerLabel.addStyleName("kune-Margin-Medium-l");
- registerLabel.addStyleName("kune-link");
- hp.add(dontHaveAccountLabel);
- hp.add(registerLabel);
- noAccRegisterPanel.add(hp);
- return noAccRegisterPanel;
- }
-
- private void createPanel() {
- dialog = new BasicDialog(i18n.t("Sign in"), true, false, 370, 400);
- dialog.setLayout(new FitLayout());
- final Panel dialogPanel = new Panel();
- dialogPanel.setLayout(new FitLayout());
- dialogPanel.setBorder(false);
- // dialog.setAutoHeight(false);
- // dialog.setAutoWidth(false);
- // dialog.setAutoHeight(true);
- // dialog.setAutoWidth(true);
- dialogPanel.setHeight("100%");
- dialogPanel.setWidth("auto");
- // dialog.setCollapsible(false);
-
- centerPanel = new TabPanel();
- centerPanel.setBorder(false);
- centerPanel.setActiveTab(0);
- // centerPanel.setAutoWidth(true);
- // centerPanel.setAutoHeight(true);
- centerPanel.setClosable(false);
-
- final Panel signInPanel = new Panel(i18n.t("Sign in"));
- signInPanel.setBorder(false);
- signInPanel.setMargins(20);
- confPanel(signInPanel);
- signInForm = new SignInForm(i18n);
- signInPanel.add(signInForm.getForm());
- signInPanel.setCls(USER_SIGN_IN_PANEL);
- signInPanel.add(createNoAccountRegister());
- messagesSignInPanel = new MessagePanel();
- signInPanel.add(messagesSignInPanel);
-
- final Panel registerPanel = new Panel(i18n.t("Register"));
- signInPanel.setBorder(false);
- registerPanel.setCls(USER_REGISTER_PANEL);
- confPanel(registerPanel);
-
- centerPanel.add(signInPanel);
- centerPanel.add(registerPanel);
- dialogPanel.add(centerPanel);
- errorLabel = new Label("");
- Toolbar messageToolbar = new Toolbar();
- messageToolbar.addElement(errorLabel.getElement());
- dialog.setBottomToolbar(messageToolbar);
- dialog.add(dialogPanel);
-
- final Button signInBtn = new Button(i18n.t("Sign in"));
- signInBtn.addListener(new ButtonListenerAdapter() {
- @Override
- public void onClick(final Button button, final EventObject e) {
- signInForm.validate();
- if (signInForm.isValid()) {
- presenter.onFormSignIn();
- }
- }
- });
- signInBtn.setId(SIGN_IN_BUTTON_ID);
- dialog.addButton(signInBtn);
-
- final Button registerBtn = new Button(i18n.t("Register"));
- registerBtn.addListener(new ButtonListenerAdapter() {
- @Override
- public void onClick(final Button button, final EventObject e) {
- registerForm.validate();
- if (registerForm.isValid()) {
- presenter.onFormRegister();
- }
- }
- });
- dialog.addButton(registerBtn);
- registerBtn.setId(REGISTER_BUTTON_ID);
- registerBtn.hide();
-
- final Button cancel = new Button();
- cancel.setId(CANCEL_BUTTON_ID);
- dialog.addButton(cancel);
- cancel.setText(i18n.tWithNT("Cancel", "used in button"));
- cancel.addListener(new ButtonListenerAdapter() {
- @Override
- public void onClick(final Button button, final EventObject e) {
- presenter.onCancel();
- }
- });
-
- signInPanel.addListener(new PanelListenerAdapter() {
- @Override
- public void onActivate(final Panel panel) {
- dialog.setTitle(i18n.t("Sign in"));
- registerBtn.hide();
- signInBtn.show();
- }
- });
-
- registerPanel.addListener(new PanelListenerAdapter() {
- @Override
- public void onActivate(final Panel panel) {
- if (registerForm == null) {
- maskProcessing();
- // registerForm = new RegisterForm(presenter, i18n);
- registerPanel.add(registerForm.getForm());
- messagesRegisterPanel = new MessagePanel();
- registerPanel.add(messagesRegisterPanel);
- messagesRegisterPanel.hide();
- renderDialogIfNeeded();
- unMask();
- }
- dialog.setTitle(i18n.t("Register"));
- signInBtn.hide();
- registerBtn.show();
- }
- });
-
- dialog.addListener(new WindowListenerAdapter() {
- @Override
- public void onHide(final Component component) {
- presenter.onClose();
- }
- });
- hideMessages();
- renderDialogIfNeeded();
- }
-
- private void renderDialogIfNeeded() {
- if (dialog.isRendered()) {
- dialog.doLayout();
- }
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenterOld.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenterOld.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenterOld.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -1,210 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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 org.ourproject.kune.workspace.client.signin;
-
-import org.ourproject.kune.platf.client.dto.I18nCountryDTO;
-import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
-import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.platf.client.dto.TimeZoneDTO;
-import org.ourproject.kune.platf.client.dto.UserDTO;
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-import org.ourproject.kune.platf.client.errors.EmailAddressInUseException;
-import org.ourproject.kune.platf.client.errors.GroupNameInUseException;
-import org.ourproject.kune.platf.client.errors.UserAuthException;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.newgroup.SiteErrorType;
-import org.ourproject.kune.workspace.client.site.Site;
-import org.ourproject.kune.workspace.client.site.rpc.UserServiceAsync;
-
-import com.allen_sauer.gwt.log.client.Log;
-import com.calclab.emiteuimodule.client.SubscriptionMode;
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class SignInPresenterOld implements SignInOld {
-
- SignInViewOld view;
- private final Session session;
- private final I18nUITranslationService i18n;
- private final UserServiceAsync userService;
- private final StateManager stateManager;
- private StateToken previousStateToken;
-
- public SignInPresenterOld(final Session session, final StateManager stateManager, final I18nUITranslationService i18n,
- final UserServiceAsync userService) {
- this.session = session;
- this.stateManager = stateManager;
- this.userService = userService;
- this.i18n = i18n;
- }
-
- public void doSignIn(final StateToken previousStateToken) {
- this.previousStateToken = previousStateToken;
- if (!session.isLogged()) {
- Site.showProgressProcessing();
- view.show();
- view.center();
- Site.hideProgress();
- } else {
- stateManager.gotoToken(previousStateToken);
- }
- }
-
- public Object[][] getCountries() {
- return session.getCountriesArray();
- }
-
- public I18nLanguageDTO getCurrentLanguage() {
- return session.getCurrentLanguage();
- }
-
- public Object[][] getLanguages() {
- return session.getLanguagesArray();
- }
-
- public Object[][] getTimezones() {
- return session.getTimezones();
- }
-
- public void init(final SignInViewOld loginview) {
- this.view = loginview;
- }
-
- public void onCancel() {
- resetMessages();
- reset();
- view.hide();
- stateManager.gotoToken(previousStateToken);
- }
-
- public void onClose() {
- reset();
- view.hideMessages();
- if (!session.isLogged()) {
- stateManager.gotoToken(previousStateToken);
- }
- }
-
- public void onFormRegister() {
- if (view.isRegisterFormValid()) {
- view.maskProcessing();
-
- final I18nLanguageDTO language = new I18nLanguageDTO();
- language.setCode(view.getLanguage());
-
- final I18nCountryDTO country = new I18nCountryDTO();
- country.setCode(view.getCountry());
-
- final TimeZoneDTO timezone = new TimeZoneDTO();
- timezone.setId(view.getTimezone());
-
- boolean wantPersonalHomepage = view.wantPersonalHomepage();
-
- final UserDTO user = new UserDTO(view.getLongName(), view.getShortName(), view.getRegisterPassword(),
- view.getEmail(), language, country, timezone, null, true, SubscriptionMode.manual, "blue");
- final AsyncCallback<UserInfoDTO> callback = new AsyncCallback<UserInfoDTO>() {
- public void onFailure(final Throwable caught) {
- view.unMask();
- try {
- throw caught;
- } catch (final EmailAddressInUseException e) {
- view.setRegisterMessage(i18n.t("This email in in use by other person, try with another."),
- SiteErrorType.error);
- } catch (final GroupNameInUseException e) {
- view.setRegisterMessage(i18n.t("This name in already in use, try with a different name."),
- SiteErrorType.error);
- } catch (final Throwable e) {
- view.setRegisterMessage(i18n.t("Error during registration."), SiteErrorType.error);
- GWT.log("Other kind of exception in user registration" + e.getMessage() + ", "
- + e.getLocalizedMessage(), null);
- e.printStackTrace();
- throw new RuntimeException();
- }
- }
-
- public void onSuccess(final UserInfoDTO userInfoDTO) {
- stateManager.gotoToken(userInfoDTO.getHomePage());
- onSignIn(userInfoDTO);
- view.hide();
- view.unMask();
- view.showWelcolmeDialog();
- }
- };
- userService.createUser(user, wantPersonalHomepage, callback);
- }
- }
-
- protected void onFormSignIn() {
- if (view.isSignInFormValid()) {
- view.maskProcessing();
-
- final String nickOrEmail = view.getNickOrEmail();
- final String passwd = view.getLoginPassword();
-
- final UserDTO user = new UserDTO();
- user.setShortName(nickOrEmail);
- user.setPassword(passwd);
-
- final AsyncCallback<UserInfoDTO> callback = new AsyncCallback<UserInfoDTO>() {
- public void onFailure(final Throwable caught) {
- view.unMask();
- Site.hideProgress();
- try {
- throw caught;
- } catch (final UserAuthException e) {
- view.setSignInMessage(i18n.t("Incorrect nickname/email or password"), SiteErrorType.error);
- } catch (final Throwable e) {
- view.setSignInMessage("Error in login", SiteErrorType.error);
- Log.error("Other kind of exception in LoginFormPresenter/doLogin");
- }
- }
-
- public void onSuccess(final UserInfoDTO userInfoDTO) {
- onSignIn(userInfoDTO);
- stateManager.gotoToken(previousStateToken);
- view.hide();
- view.unMask();
- }
- };
- userService.login(user.getShortName(), user.getPassword(), callback);
- }
- }
-
- private void onSignIn(final UserInfoDTO userInfoDTO) {
- final String userHash = userInfoDTO.getUserHash();
- view.setCookie(userHash);
- session.setUserHash(userHash);
- session.setCurrentUserInfo(userInfoDTO);
- final I18nLanguageDTO language = userInfoDTO.getLanguage();
- i18n.changeCurrentLanguage(language.getCode());
- session.setCurrentLanguage(language);
- }
-
- private void reset() {
- view.reset();
- }
-
- private void resetMessages() {
- view.hideMessages();
- }
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInViewOld.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInViewOld.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInViewOld.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -1,75 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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 org.ourproject.kune.workspace.client.signin;
-
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.workspace.client.newgroup.SiteErrorType;
-
-public interface SignInViewOld extends View {
-
- void center();
-
- String getCountry();
-
- String getEmail();
-
- String getLanguage();
-
- String getLoginPassword();
-
- String getLongName();
-
- String getNickOrEmail();
-
- String getRegisterPassword();
-
- String getRegisterPasswordDup();
-
- String getShortName();
-
- String getTimezone();
-
- void hide();
-
- void hideMessages();
-
- boolean isRegisterFormValid();
-
- boolean isSignInFormValid();
-
- void maskProcessing();
-
- void reset();
-
- void setCookie(String userHash);
-
- void setRegisterMessage(String message, SiteErrorType type);
-
- void setSignInMessage(String message, SiteErrorType type);
-
- void show();
-
- void showWelcolmeDialog();
-
- void unMask();
-
- boolean wantPersonalHomepage();
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/SimpleMessagePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/SimpleMessagePanel.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/SimpleMessagePanel.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -30,11 +30,12 @@
public class SimpleMessagePanel extends HorizontalPanel implements SiteMessageView {
HTML message = null;
Image messageIcon = null;
+ private final Images images;
- public SimpleMessagePanel() {
+ public SimpleMessagePanel(Images images) {
+ this.images = images;
message = new HTML();
messageIcon = new Image();
- final Images images = Images.App.getInstance();
add(messageIcon);
add(message);
setCellVerticalAlignment(messageIcon, VerticalPanel.ALIGN_MIDDLE);
@@ -66,7 +67,6 @@
}
public void setMessage(final String text, final SiteErrorType lastMessageType, final SiteErrorType type) {
- final Images images = Images.App.getInstance();
AbstractImagePrototype imagePrototype = null;
switch (type) {
case error:
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/SiteMessagePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/SiteMessagePanel.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/SiteMessagePanel.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -41,9 +41,10 @@
private final ExtElement extElem;
public SiteMessagePanel(final MessagePresenter presenter, final boolean closable,
- final I18nUITranslationService i18n) {
- final Images images = Images.App.getInstance();
+ final I18nUITranslationService i18n, Images images) {
+ super(images);
timer = new Timer() {
+ @Override
public void run() {
hide();
if (presenter != null) {
@@ -90,12 +91,14 @@
super.adjustWidth(windowWidth);
}
+ @Override
public void hide() {
extElem.hide(true);
super.reset();
timer.cancel();
}
+ @Override
public void show() {
extElem.show(false);
// super.show();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/SiteToastMessagePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/SiteToastMessagePanel.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/SiteToastMessagePanel.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -6,11 +6,14 @@
public class SiteToastMessagePanel implements SiteToastMessageView {
+ public static final String MESSAGE = "k-stmess-m";
+
public SiteToastMessagePanel() {
}
public void showMessage(String title, String message, SiteErrorType type) {
ToastWindow toastWindow = new ToastWindow(title, message);
+ toastWindow.setId(MESSAGE);
String iconCls = "";
switch (type) {
case info:
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPanel.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPanel.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -42,9 +42,8 @@
private final I18nUITranslationService i18n;
public SiteSearchPanel(final SiteSearchPresenter presenter, final WorkspaceSkeleton ws,
- final I18nUITranslationService i18n) {
+ final I18nUITranslationService i18n, Images img) {
this.i18n = i18n;
- final Images img = Images.App.getInstance();
final SimpleToolbar siteBar = ws.getSiteBar();
siteBar.addSpacer();
siteBar.addSpacer();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/summary/GroupSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/summary/GroupSummaryPanel.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/summary/GroupSummaryPanel.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -20,6 +20,7 @@
package org.ourproject.kune.workspace.client.summary;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.platf.client.ui.DropDownPanel;
import org.ourproject.kune.workspace.client.site.Site;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
@@ -31,9 +32,9 @@
private final VerticalPanel vp;
- public GroupSummaryPanel(final GroupSummaryPresenter presenter, final I18nTranslationService i18n,
+ public GroupSummaryPanel(Images img, final GroupSummaryPresenter presenter, final I18nTranslationService i18n,
final WorkspaceSkeleton ws) {
- super(i18n.t("Group Summary"), true);
+ super(img, i18n.t("Group Summary"), true);
setHeaderTitle(i18n.t("Some summarized information about current project" + Site.IN_DEVELOPMENT));
vp = new VerticalPanel();
vp.setWidth("100%");
Modified: trunk/src/test/java/org/ourproject/kune/platf/client/ui/KuneStringUtilsTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/ui/KuneStringUtilsTest.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/ui/KuneStringUtilsTest.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -11,14 +11,14 @@
@Test
public void testTagNull() {
final String tagsString = null;
- final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ final ArrayList<String> tags = TextUtils.splitTags(tagsString);
assertEquals(0, tags.size());
}
@Test
public void testTagStripsSimple() {
final String tagsString = "ab cd";
- final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ final ArrayList<String> tags = TextUtils.splitTags(tagsString);
assertEquals("ab", tags.get(0));
assertEquals("cd", tags.get(1));
}
@@ -26,7 +26,7 @@
@Test
public void testTagStripsWithCommas() {
final String tagsString = "ab,cd";
- final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ final ArrayList<String> tags = TextUtils.splitTags(tagsString);
assertEquals("ab", tags.get(0));
assertEquals("cd", tags.get(1));
}
@@ -34,7 +34,7 @@
@Test
public void testTagStripsWithCommasAndSpaces() {
final String tagsString = "ab, cd";
- final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ final ArrayList<String> tags = TextUtils.splitTags(tagsString);
assertEquals("ab", tags.get(0));
assertEquals("cd", tags.get(1));
}
@@ -42,7 +42,7 @@
@Test
public void testTagStripsWithQuotes() {
final String tagsString = "ab \"cd\"";
- final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ final ArrayList<String> tags = TextUtils.splitTags(tagsString);
assertEquals("ab", tags.get(0));
assertEquals("cd", tags.get(1));
}
@@ -50,7 +50,7 @@
@Test
public void testTagStripsWithSpaces() {
final String tagsString = " ab cd ";
- final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ final ArrayList<String> tags = TextUtils.splitTags(tagsString);
assertEquals("ab", tags.get(0));
assertEquals("cd", tags.get(1));
}
Added: trunk/src/test/java/org/ourproject/kune/platf/client/ui/TextUtilsTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/ui/TextUtilsTest.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/ui/TextUtilsTest.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -0,0 +1,26 @@
+package org.ourproject.kune.platf.client.ui;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+public class TextUtilsTest {
+ @Test
+ public void matchDemoEmail() {
+ String email = "test100(a)emitedemo.ourproject.org";
+ assertTrue(email.matches(TextUtils.EMAIL_REGEXP));
+ }
+
+ @Test
+ public void matchLocalhostEmail() {
+ String email = "me@localhost";
+ assertTrue(email.matches(TextUtils.EMAIL_REGEXP));
+ }
+
+ @Test
+ public void matchSimpleEmail() {
+ String email = "me(a)example.com";
+ assertTrue(email.matches(TextUtils.EMAIL_REGEXP));
+ }
+
+}
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -1,10 +1,13 @@
package org.ourproject.kune.platf.integration.selenium;
+import java.util.Date;
+
import org.junit.Before;
import org.ourproject.kune.workspace.client.signin.RegisterForm;
import org.ourproject.kune.workspace.client.signin.RegisterPanel;
import org.ourproject.kune.workspace.client.signin.SignInForm;
import org.ourproject.kune.workspace.client.signin.SignInPanel;
+import org.ourproject.kune.workspace.client.site.SiteToken;
import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignInLinkPanel;
import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLinkPanel;
import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserMenuPanel;
@@ -12,6 +15,8 @@
public class KuneSeleniumTestHelper extends SeleniumTestHelper {
+ protected static final String KUNE_BASE_URL = "/kune/?locale=en#";
+
@Before
public void before() {
selenium.deleteAllVisibleCookies();
@@ -79,4 +84,20 @@
protected void verifyLoggedUserShorName(String userShortName) throws Exception {
waitForTextInside(gid(SiteUserMenuPanel.LOGGED_USER_MENU), userShortName);
}
+
+ protected long genPrefix() {
+ long prefix = new Date().getTime();
+ return prefix;
+ }
+
+ protected void open(SiteToken token) {
+ open(KUNE_BASE_URL + token.toString());
+ }
+
+ protected String registerValidUser(boolean wantHomepage) {
+ String shortName = "u" + genPrefix();
+ register(shortName, "some name " + genPrefix(), "somepasswd", "somepasswd", genPrefix() + "@example.com",
+ "Andorra", "English", "MET", wantHomepage);
+ return shortName;
+ }
}
Added: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -0,0 +1,39 @@
+package org.ourproject.kune.platf.integration.selenium;
+
+import static org.junit.Assert.assertFalse;
+
+import org.junit.Test;
+import org.ourproject.kune.workspace.client.newgroup.NewGroupPanel;
+import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
+import org.ourproject.kune.workspace.client.site.SiteToken;
+import org.ourproject.kune.workspace.client.site.msg.SiteToastMessagePanel;
+
+public class NewGroupSeleniumTest extends KuneSeleniumTestHelper {
+
+ @Test
+ public void newGroupBasic() throws Exception {
+ setMustStopFinally(false);
+ assertFalse(selenium.isTextPresent(NewGroupPanel.NEWGROUP_WIZARD));
+ openDefPage();
+ signIn();
+ selenium.refresh();
+ open(SiteToken.newgroup);
+ verifyLoggedUserShorName("admin");
+ waitForTextInside(NewGroupPanel.NEWGROUP_WIZARD, NewGroupPanel.REGISTER_A_NEW_GROUP_TITLE);
+ }
+
+ @Test
+ public void newGroupNotLogged() throws Exception {
+ setMustStopFinally(false);
+ assertFalse(selenium.isTextPresent(NewGroupPanel.NEWGROUP_WIZARD));
+ open(SiteToken.newgroup);
+ waitForTextInside(SiteToastMessagePanel.MESSAGE, NewGroupPresenter.REGISTER_TO_CREATE_A_GROUP);
+ }
+
+ @Test
+ public void newGroupWithExistingNicknameFails() {
+ open(SiteToken.newgroup);
+
+ }
+
+}
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -9,10 +9,13 @@
public class SeleniumTestHelper {
protected static DefaultSelenium selenium;
+ private static boolean mustStopFinally = true;
@AfterClass
public static void afterClass() throws Exception {
- selenium.stop();
+ if (mustStopFinally) {
+ selenium.stop();
+ }
}
/**
@@ -46,10 +49,20 @@
selenium.start();
}
+ public static void setMustStopFinally(boolean mustStopFinally) {
+ SeleniumTestHelper.mustStopFinally = mustStopFinally;
+ }
+
protected void click(String id) {
selenium.click(id);
}
+ protected void clickOnPushButton(String id) {
+ selenium.mouseOver(id);
+ selenium.mouseDown(id);
+ selenium.mouseUp(id);
+ }
+
protected void fail(String message) throws Exception {
throw new Exception(message);
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java 2008-10-27 13:32:42 UTC (rev 932)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java 2008-10-27 21:53:19 UTC (rev 933)
@@ -1,10 +1,9 @@
package org.ourproject.kune.platf.integration.selenium;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
-import java.util.Date;
-
-import org.junit.Ignore;
import org.junit.Test;
import org.ourproject.kune.workspace.client.nohomepage.NoHomePagePanel;
import org.ourproject.kune.workspace.client.signin.RegisterPanel;
@@ -12,7 +11,9 @@
import org.ourproject.kune.workspace.client.signin.SignInPanel;
import org.ourproject.kune.workspace.client.signin.SignInPresenter;
import org.ourproject.kune.workspace.client.site.Site;
+import org.ourproject.kune.workspace.client.site.SiteToken;
import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserMenuPanel;
+import org.ourproject.kune.workspace.client.title.EntityTitlePanel;
public class SignInSeleniumTest extends KuneSeleniumTestHelper {
@@ -40,18 +41,26 @@
registerValidUser(true);
}
- @Ignore
+ @Test
public void registerSomeUserWithouHomepage() throws Exception {
openDefPage();
registerValidUser(false);
+ selenium.isTextPresent("Welcome");
click(RegisterPanel.WELCOME_OK_BUTTON);
- click("//div[@id='" + gid(SiteUserMenuPanel.LOGGED_USER_MENU) + "']/div");
+ clickOnPushButton(gid(SiteUserMenuPanel.LOGGED_USER_MENU));
click(linkId(SiteUserMenuPanel.YOUR_HOMEPAGE));
waitForTextInside(gid(NoHomePagePanel.NO_HOME_PAGE_LABEL), NoHomePagePanel.USER_DON_T_HAVE_A_HOMEPAGE);
- wait(20000);
}
@Test
+ public void testRegisterToken() throws Exception {
+ open(SiteToken.register);
+ assertFalse(selenium.isTextPresent(RegisterPanel.REGISTER_TITLE));
+ waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
+ assertTrue(selenium.isTextPresent(RegisterPanel.REGISTER_TITLE));
+ }
+
+ @Test
public void testSignInAndOut() throws Exception {
openDefPage();
signIn();
@@ -97,15 +106,11 @@
signOut();
}
- private long genPrefix() {
- long prefix = new Date().getTime();
- return prefix;
+ @Test
+ public void testSignInToken() throws Exception {
+ open(SiteToken.signin);
+ assertFalse(selenium.isTextPresent(SignInPanel.SIGN_IN_TITLE));
+ waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
+ assertTrue(selenium.isTextPresent(SignInPanel.SIGN_IN_TITLE));
}
-
- private String registerValidUser(boolean wantHomepage) {
- String shortName = "u" + genPrefix();
- register(shortName, "some name " + genPrefix(), "somepasswd", "somepasswd", genPrefix() + "@example.com",
- "Andorra", "English", "MET", wantHomepage);
- return shortName;
- }
}
1
0
Author: vjrj
Date: 2008-10-27 14:32:42 +0100 (Mon, 27 Oct 2008)
New Revision: 932
Modified:
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/InfoDialog.java
trunk/src/main/java/org/ourproject/kune/workspace/client/nohomepage/NoHomePagePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanelOld.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
Log:
Incomplete - task Selenium tests helpers and new tests
Complete - task Resolve signIn and register dialog issues (with more Selenium tests)
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-10-27 00:00:30 UTC (rev 931)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-10-27 13:32:42 UTC (rev 932)
@@ -35,4 +35,4 @@
}
*/.kune-NavigationBar .topBar .gwt-Image{margin:0 2px 0 5px;}.kune-NavigationBar .Items{margin:2px 0;}.kune-NavigationBar .Items .gwt-Image{margin:2px 0;vertical-align:middle;}.kune-NavigationBar .Items .gwt-Hyperlink a{color:green;/* FIXME: other color */}.kune-NavigationBar .topBar .topBar-margin{margin-left:5px;}.kune-NavigationBar .pathMenu{vertical-align:middle;}.kune-NavigationBar .pathMenu .gwt-MenuItem{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;white-space:nowrap;padding:3px 6px;}.kune-NavigationBar .pathMenu .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#000;}.kune-NavigationBar .kune-IconHyperlink{vertical-align:middle;margin-left:5px;}.kune-NavigationBar .kune-IconHyperlink a{color:green;text-decoration:none;}.kune-NavigationBar .kune-IconHyperlink .gwt-Image{margin-right:3px;vertical-align:middle;}/* Social Network */.kune-StackedDropDownPanel{}.kune-StackedDropDownPanel .gwt-StackPanelItem{border-top:1px solid #CCC;border-bottom:1px solid #CCC;background-color:#EFA;cursor:pointer;padding:1px 3px 0 6px;overflow:hidden;}.kune-StackedDropDownPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-StackedDropDownPanel .kune-DropDownInner table{width:100%;}.kune-StackedDropDownPanel .gwt-StackPanelItem-selected{}.kune-StackedDropDownPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-StackedDropDownPanel .kune-DropDownInner{padding:0;}/* StackedDropDownPanel Members */.kune-StackSubItemLabel{overflow:hidden;}.kune-StackSubItemLabel .gwt-MenuItem{white-space:nowrap;cursor:pointer;border-bottom:1px solid #F2F2F2;}.kune-StackSubItemLabel table{width:100%;}.kune-StackSubItemLabel .gwt-MenuItem img{vertical-align:middle;margin-top:1px;margin-bottom:1px;margin-left:5px;margin-right:3px;}.kune-StackSubItemLabel .gwt-MenuItem-selected{background-color:#FFE6D5;}.kune-StackSubItemActions{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;margin-left:-120px;margin-top:-2px;}.kune-StackSubItemActions .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.kune-StackSubItemActions .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.kune-StackSubItemActions .gwt-MenuItem-selected{background-color:#FFB958;}/* AccessList */.kune-AccessListSubLabel{font-style:italic;}.kune-AccessList{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel-open{width:100%;}.kune-AccessList .gwt-DisclosurePanel-closed{width:100%;}.kune-AccessList .header{margin:0 0 3px;text-decoration:none;width:100%;background-color:#8DD35F;}.kune-AccessList .header table{margin:0 5px 0 0;width:100%;color:#FFF;}.kune-AccessList .header img{margin:0 3px 0 0;}.kune-AccessList .content{margin:0 0 0 7px;width:100%;}.kune-AccessList .content table{margin-bottom:5px;width:100%;}/* Rate */.kune-RatePanel-Label{white-space:nowrap;vertical-align:middle;}.kune-RatePanel-Stars{margin-left:5px;vertical-align:middle;}.kune-RatePanel-Stars-RateIt{cursor:pointer;}/* Licenses */.kune-License-CC-Header{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}.kune-License-CC-Header .gwt-Label{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}/* Theme */.kune-IconBottomPanel .gwt-MenuItem{cursor:pointer;background-color:#FFF;margin:2px 2px 2px 5px;}.kune-IconBottomPanel .gwt-MenuItem-selected{background-color:#F2F2F2;}.gwt-MenuBar-bottomMenu{margin-left:-60px;margin-top:-120px;}/* i18n */.kune-I18nTranslatorCell{white-space:normal;}.kune-i18nTranslator-recommend{margin:10px;}.kune-i18nTranslator-recommend h1{font-size:131%;font-weight:700;}.kune-i18nTranslator-recommend h2{font-size:116%;font-weight:700;}.kune-i18nTranslator-recommend h3{font-size:108%;font-weight:700;font-style:italic;}.kune-i18nTranslator-recommend em{font-weight:700;}.kune-i18nTranslator-recommend strong{font-weight:700;}/* Admin Context */.kune-AdminContextPanel{margin:6px;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem{background:transparent url(img/arrow-right-white.gif) no-repeat scroll 3px 2px;cursor:pointer;padding:3px 10px 1px 20px;overflow:hidden;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-AdminContextPanel .gwt-StackPanelItem-selected{background:transparent url(img/arrow-down-white.gif) no-repeat scroll 3px 2px;background-color:#DEE3DB;}.kune-AdminContextPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-AdminContextPanel-inner{background-color:#FFF;}.kune-AdminContextPanel-inner-wrap{margin:5px;}.kune-EditableLabel{}.kune-EditableLabel .kune-EditableLabel-editable{}.kune-EditableLabel-high{background-color:#FFFBC1;cursor:pointer;}.kune-EditableLabel-high span{background-color:#FFFBC1;}.kune-EditableLabel a{margin-left:5px;}.kune-EditableLabel a:link{color:green;}.kune-EditableLabel a:hover{text-decoration:underline;}.kune-EditableLabel a:visited{color:olive;}.kune-EditableLabel img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable span{margin:3px;}.kune-EditableLabel span{margin:3px;}.kune-BottomIconsTrayPanel{width:165px;height:21px;vertical-align:middle;background-color:#EFEFEF;}.kune-TagsPanel-tag{float:left;margin-right:5px;cursor:pointer;}.kune-Content-Main{margin:5px;}/* Yahoo ui base.css */.kune-Content-Main h1{font-size:138.5%;}.kune-Content-Main h2{font-size:123.099998%;}.kune-Content-Main h3{font-size:108%;}.kune-Content-Main h1{margin:1em 0;}.kune-Content-Main h2{margin:1em 0;}.kune-Content-Main h3{margin:1em 0;}.kune-Content-Main h1{font-weight:700;}.kune-Content-Main h2{font-weight:700;}.kune-Content-Main h3{font-weight:700;}.kune-Content-Main h4{font-weight:700;}.kune-Content-Main h5{font-weight:700;}.kune-Content-Main h6{font-weight:700;}.kune-Content-Main strong{font-weight:700;}.kune-Content-Main abbr{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main acronym{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main em{font-style:italic;}.kune-Content-Main blockquote{margin:1em;}.kune-Content-Main ul{margin:1em;}.kune-Content-Main ol{margin:1em;}.kune-Content-Main dl{margin:1em;}.kune-Content-Main ol{margin-left:2em;}.kune-Content-Main ul{margin-left:2em;}.kune-Content-Main dl{margin-left:2em;}.kune-Content-Main ol{list-style:decimal outside;}.kune-Content-Main li{list-style:decimal outside;}.kune-Content-Main li{list-style:disc outside;}.kune-Content-Main ul{list-style:disc outside;}.kune-Content-Main dl{margin-left:1em;}.kune-Content-Main dd{margin-left:1em;}.kune-Content-Main th{border:1px solid #000;padding:.5em;font-weight:700;text-align:center;}.kune-Content-Main td{border:1px solid #000;padding:.5em;}.kune-Content-Main caption{margin-bottom:.5em;text-align:center;}.kune-Content-Main p{margin-bottom:1em;}.kune-Content-Main fieldset{margin-bottom:1em;}.kune-Content-Main table{margin-bottom:1em;}.kune-Content-Main pre{margin-bottom:1em;}.kune-Content-Main input[type=text]{width:12.25em;width:11.9em;}.kune-Content-Main input[type=password]{width:12.25em;width:11.9em;}.kune-Content-Main textarea{width:12.25em;width:11.9em;}.search-icon{background-image:url(img/search.gif)!important;}.i18n-icon{background-image:url(img/language.gif)!important;}/* RTE Text editor */.kune-TexEditorPanel-TextArea{margin:3px;}.gwt-RichTextArea{/* border: 1px solid #000;
background-color: #FFF; */border:1px solid #4D4D4D;background-color:#FFF;margin:5px 0 5px 10px;}.gwt-RichTextToolbar{/* background-color: #F2F2F2;
- padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-down-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-entitytextlogo .gwt-Hyperlink a{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entitylicensepanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-bottom div{line-height:2em;color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others */.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}
\ No newline at end of file
+ padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-down-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-entitytextlogo .gwt-Hyperlink a{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entitylicensepanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-bottom div{line-height:2em;color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others */.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-10-27 00:00:30 UTC (rev 931)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-10-27 13:32:42 UTC (rev 932)
@@ -744,4 +744,9 @@
.k-error-tb {
background: #FFB380 none repeat scroll 0% 50%;
color: #250;
+}
+
+.k-infod-head {
+ font-size: 108%;
+ margin-bottom: 10px;
}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/InfoDialog.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/InfoDialog.java 2008-10-27 00:00:30 UTC (rev 931)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/InfoDialog.java 2008-10-27 13:32:42 UTC (rev 932)
@@ -26,10 +26,12 @@
public class InfoDialog extends BasicDialog {
public InfoDialog(final String title, final String header, final String text, final String okButtonText,
- final boolean modal, final boolean autoScroll, final int width, final int height) {
+ String okButtonId, final boolean modal, final boolean autoScroll, final int width, final int height) {
super(title, modal, autoScroll, width, height);
final Button okButton = new Button(okButtonText);
+ okButton.setId(okButtonId);
okButton.addListener(new ButtonListenerAdapter() {
+ @Override
public void onClick(final Button button, final EventObject e) {
hide();
}
@@ -43,10 +45,12 @@
final Label textLabel = new Label(text);
panel.add(headerLabel);
- panel.add(new Label());
panel.add(textLabel);
+ super.add(panel);
- add(okButton);
+ headerLabel.addStyleName("k-infod-head");
+
+ addButton(okButton);
show();
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/nohomepage/NoHomePagePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/nohomepage/NoHomePagePanel.java 2008-10-27 00:00:30 UTC (rev 931)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/nohomepage/NoHomePagePanel.java 2008-10-27 13:32:42 UTC (rev 932)
@@ -26,13 +26,16 @@
public class NoHomePagePanel implements NoHomePageView {
+ public static final String USER_DON_T_HAVE_A_HOMEPAGE = "This user don't have a homepage";
+ public static final String NO_HOME_PAGE_LABEL = "k-nhpp-l";
private final Label noHomepageCtnLabel;
private final Label noHomepageCtxLabel;
private final WorkspaceSkeleton ws;
public NoHomePagePanel(final NoHomePagePresenter presenter, final WorkspaceSkeleton ws, I18nTranslationService i18n) {
this.ws = ws;
- noHomepageCtnLabel = new Label(i18n.t("This user don't have a homepage"));
+ noHomepageCtnLabel = new Label(i18n.t(USER_DON_T_HAVE_A_HOMEPAGE));
+ noHomepageCtnLabel.ensureDebugId(NO_HOME_PAGE_LABEL);
noHomepageCtnLabel.setStyleName("kune-Content-Main");
noHomepageCtnLabel.addStyleName("kune-Margin-7-trbl");
noHomepageCtxLabel = new Label("");
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java 2008-10-27 00:00:30 UTC (rev 931)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java 2008-10-27 13:32:42 UTC (rev 932)
@@ -36,16 +36,17 @@
private static final String MUST_BE_BETWEEN_3_AND_15 = "Must be between 3 and 15 lowercase characters. Can only contain characters, numbers, and dashes";
- private static final String NICK_FIELD = "kune-urf-nick-f";
- private static final String EMAIL_FIELD = "kune-urf-email-f";
- private static final String LONGNAME_FIELD = "kune-urf-long_name-f";
- private static final String PASSWORD_FIELD = "kune-urf-password-f";
- private static final String PASSWORD_FIELD_DUP = "kune-urf-passwordDup-f";
- private static final String LANG_FIELD = "kune-urf-lang-f";
- private static final String COUNTRY_FIELD = "kune-urf-country-f";
- private static final String TIMEZONE_FIELD = "kune-urf-timezone-f";
- private static final String WANNAPERSONALHOMEPAGE_FIELD = "kune-urf-wphp-f";
- private static final String NOPERSONALHOMEPAGE_FIELD = "kune-urf-nphp-f";
+ public static final String NICK_FIELD = "k-urf-nick-f";
+ public static final String EMAIL_FIELD = "k-urf-email-f";
+ public static final String LONGNAME_FIELD = "k-urf-long_name-f";
+ public static final String PASSWORD_FIELD = "k-urf-password-f";
+ public static final String PASSWORD_FIELD_DUP = "k-urf-passwordDup-f";
+ public static final String LANG_FIELD = "k-urf-lang-f";
+ public static final String COUNTRY_FIELD = "k-urf-country-f";
+ public static final String TIMEZONE_FIELD = "k-urf-timezone-f";
+ public static final String WANNAPERSONALHOMEPAGE_ID = "k-urf-wphp-id";
+ public static final String NOPERSONALHOMEPAGE_ID = "k-urf-nphp-id";
+ public static final String WANTHOMEPAGE_FIELD = "k-urf-wphp-f";
private final TextField shortNameRegField;
private final TextField longNameRegField;
@@ -101,7 +102,7 @@
passwdRegFieldDup = new TextField();
passwdRegFieldDup.setFieldLabel(i18n.t("Retype password"));
- passwdRegField.setName(PASSWORD_FIELD_DUP);
+ passwdRegFieldDup.setName(PASSWORD_FIELD_DUP);
passwdRegFieldDup.setPassword(true);
passwdRegFieldDup.setAllowBlank(false);
passwdRegFieldDup.setMinLength(6);
@@ -114,7 +115,7 @@
}
});
passwdRegFieldDup.setValidationEvent(false);
- passwdRegField.setId(PASSWORD_FIELD_DUP);
+ passwdRegFieldDup.setId(PASSWORD_FIELD_DUP);
add(passwdRegFieldDup);
emailRegField = new TextField();
@@ -131,6 +132,7 @@
langStore.load();
languageCombo = new ComboBox();
+ languageCombo.setLazyRender(true);
languageCombo.setName(LANG_FIELD);
languageCombo.setMinChars(1);
languageCombo.setFieldLabel(i18n.t("Language"));
@@ -150,13 +152,14 @@
languageCombo.setPageSize(7);
languageCombo.setForceSelection(true);
languageCombo.setValidationEvent(false);
- languageCombo.setId(LANG_FIELD);
+ // languageCombo.setId(LANG_FIELD);
add(languageCombo);
final Store countryStore = new SimpleStore(new String[] { "abbr", "country" }, session.getCountriesArray());
countryStore.load();
countryCombo = new ComboBox();
+ countryCombo.setLazyRender(true);
countryCombo.setName(COUNTRY_FIELD);
countryCombo.setMinChars(1);
countryCombo.setFieldLabel(i18n.t("Country"));
@@ -175,13 +178,14 @@
countryCombo.setPageSize(7);
countryCombo.setForceSelection(true);
countryCombo.setValidationEvent(false);
- countryCombo.setId(COUNTRY_FIELD);
+ // countryCombo.setId(COUNTRY_FIELD);
add(countryCombo);
final Store timezoneStore = new SimpleStore(new String[] { "id" }, session.getTimezones());
timezoneStore.load();
timezoneCombo = new ComboBox();
+ timezoneCombo.setLazyRender(true);
timezoneCombo.setName(TIMEZONE_FIELD);
timezoneCombo.setMinChars(1);
timezoneCombo.setFieldLabel(i18n.t("Timezone"));
@@ -200,7 +204,7 @@
timezoneCombo.setPageSize(7);
timezoneCombo.setForceSelection(true);
timezoneCombo.setValidationEvent(false);
- timezoneCombo.setId(TIMEZONE_FIELD);
+ // timezoneCombo.setId(TIMEZONE_FIELD);
add(timezoneCombo);
final FieldSet personalSpaceFieldSet = new FieldSet(i18n.t("Do you want a personal homepage?"));
@@ -209,10 +213,10 @@
noPersonalHomePage = new Radio();
personalSpaceFieldSet.setCollapsible(false);
createRadio(personalSpaceFieldSet, wantPersonalHomePage,
- i18n.t("Yes, I want a homepage for publish my contents."), WANNAPERSONALHOMEPAGE_FIELD);
+ i18n.t("Yes, I want a homepage for publish my contents."), WANNAPERSONALHOMEPAGE_ID);
wantPersonalHomePage.setChecked(true);
createRadio(personalSpaceFieldSet, noPersonalHomePage, i18n.t("No, I don't want. Maybe in the future."),
- NOPERSONALHOMEPAGE_FIELD);
+ NOPERSONALHOMEPAGE_ID);
add(personalSpaceFieldSet);
}
@@ -253,7 +257,7 @@
}
private void createRadio(final FieldSet fieldSet, final Radio radio, final String radioLabel, final String radioId) {
- radio.setName(radioId);
+ radio.setName(WANTHOMEPAGE_FIELD);
radio.setBoxLabel(i18n.t(radioLabel));
radio.setAutoCreate(true);
radio.setHideLabel(true);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java 2008-10-27 00:00:30 UTC (rev 931)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java 2008-10-27 13:32:42 UTC (rev 932)
@@ -17,9 +17,12 @@
static RegisterForm registerForm;
- private static final String CANCEL_BUTTON_ID = "kune-regp-cb";
- private static final String REGISTER_BUTTON_ID = "kune-regp-rb";
+ public static final String CANCEL_BUTTON_ID = "k-regp-cb";
+ public static final String REGISTER_BUTTON_ID = "k-regp-rb";
+ public static final String REGISTER_FORM = "k-regp-p";
+ public static final String WELCOME_OK_BUTTON = "k-regp-okbt";
+
public RegisterPanel(final RegisterPresenter presenter, I18nUITranslationService i18n, final WorkspaceSkeleton ws,
Session session, Images images) {
super(i18n, i18n.t("Register"), true, true, 390, 450, "", i18n.t("Register"), REGISTER_BUTTON_ID, i18n.tWithNT(
@@ -42,6 +45,7 @@
registerForm.setWidth(360);
panel.add(registerForm.getForm());
add(panel);
+ panel.setId(REGISTER_FORM);
}
public String getCountry() {
@@ -93,10 +97,18 @@
i18n.t("Now you can participate more actively in this site with other people and groups. "
+ "You can also use your personal space to publish contents. "
+ "Your email is not verified, please follow the instructions you will receive by email."),
- i18n.t("Ok"), true, true, 400, 270);
+ i18n.t("Ok"), WELCOME_OK_BUTTON, true, true, 400, 210);
welcomeDialog.show();
}
+ public void showWelcolmeDialogNoHomepage() {
+ InfoDialog welcomeDialog = new InfoDialog(i18n.t("Welcome"), i18n.t("Thanks for registering"),
+ i18n.t("Now you can participate more actively in this site with other people and groups. "
+ + "Your email is not verified, please follow the instructions you will receive by email."),
+ i18n.t("Ok"), WELCOME_OK_BUTTON, true, true, 400, 210);
+ welcomeDialog.show();
+ }
+
public boolean wantPersonalHomepage() {
return registerForm.wantPersonalHomepage();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPresenter.java 2008-10-27 00:00:30 UTC (rev 931)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPresenter.java 2008-10-27 13:32:42 UTC (rev 932)
@@ -23,6 +23,8 @@
public class RegisterPresenter extends SignInAbstractPresenter implements Register {
+ public static final String EMAIL_IN_USE = "This email in in use by other person, try with another.";
+ public static final String NAME_IN_USE = "This name in already in use, try with a different name.";
private RegisterView view;
private final Provider<UserServiceAsync> userServiceProvider;
private final Provider<SignIn> signInProvider;
@@ -69,7 +71,7 @@
final TimeZoneDTO timezone = new TimeZoneDTO();
timezone.setId(view.getTimezone());
- boolean wantPersonalHomepage = view.wantPersonalHomepage();
+ final boolean wantPersonalHomepage = view.wantPersonalHomepage();
final UserDTO user = new UserDTO(view.getLongName(), view.getShortName(), view.getRegisterPassword(),
view.getEmail(), language, country, timezone, null, true, SubscriptionMode.manual, "blue");
@@ -79,11 +81,9 @@
try {
throw caught;
} catch (final EmailAddressInUseException e) {
- view.setErrorMessage(i18n.t("This email in in use by other person, try with another."),
- SiteErrorType.error);
+ view.setErrorMessage(i18n.t(EMAIL_IN_USE), SiteErrorType.error);
} catch (final GroupNameInUseException e) {
- view.setErrorMessage(i18n.t("This name in already in use, try with a different name."),
- SiteErrorType.error);
+ view.setErrorMessage(i18n.t(NAME_IN_USE), SiteErrorType.error);
} catch (final Throwable e) {
view.setErrorMessage(i18n.t("Error during registration."), SiteErrorType.error);
GWT.log("Other kind of exception in user registration" + e.getMessage() + ", "
@@ -94,11 +94,15 @@
}
public void onSuccess(final UserInfoDTO userInfoDTO) {
+ onSignIn(userInfoDTO);
stateManager.gotoToken(userInfoDTO.getHomePage());
- onSignIn(userInfoDTO);
view.hide();
view.unMask();
- view.showWelcolmeDialog();
+ if (wantPersonalHomepage) {
+ view.showWelcolmeDialog();
+ } else {
+ view.showWelcolmeDialogNoHomepage();
+ }
}
};
userServiceProvider.get().createUser(user, wantPersonalHomepage, callback);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterView.java 2008-10-27 00:00:30 UTC (rev 931)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterView.java 2008-10-27 13:32:42 UTC (rev 932)
@@ -22,6 +22,8 @@
void showWelcolmeDialog();
+ void showWelcolmeDialogNoHomepage();
+
boolean wantPersonalHomepage();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java 2008-10-27 00:00:30 UTC (rev 931)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java 2008-10-27 13:32:42 UTC (rev 932)
@@ -16,8 +16,9 @@
public class SignInPanel extends SignInAbstractPanel implements SignInView {
public static final String ERROR_MSG = "k-sigp-errmsg";
- public static final String CANCEL_BUTTON_ID = "kune-signinp-cb";
- public static final String SIGN_IN_BUTTON_ID = "kune-signinp-sib";
+ public static final String CANCEL_BUTTON_ID = "k-signinp-cb";
+ public static final String SIGN_IN_BUTTON_ID = "k-signinp-sib";
+ public static final String CREATE_ONE = "k-signinp-create";
static SignInForm signInForm;
private final SignInPresenter presenter;
@@ -77,6 +78,7 @@
HorizontalPanel hp = new HorizontalPanel();
final Label dontHaveAccountLabel = new Label(i18n.t("Don't have an account?"));
final Label registerLabel = new Label(i18n.t("Create one."));
+ registerLabel.ensureDebugId(CREATE_ONE);
registerLabel.addClickListener(new ClickListener() {
public void onClick(final Widget arg0) {
presenter.onAccountRegister();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanelOld.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanelOld.java 2008-10-27 00:00:30 UTC (rev 931)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanelOld.java 2008-10-27 13:32:42 UTC (rev 932)
@@ -227,7 +227,7 @@
i18n.t("Now you can participate more actively in this site with other people and groups. "
+ "You can also use your personal space to publish contents. "
+ "Your email is not verified, please follow the instructions you will receive by email."),
- i18n.t("Ok"), true, true, 400, 270);
+ i18n.t("Ok"), "asdfasdfa", true, true, 400, 270);
}
welcomeDialog.show();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java 2008-10-27 00:00:30 UTC (rev 931)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java 2008-10-27 13:32:42 UTC (rev 932)
@@ -35,10 +35,11 @@
public class SiteUserMenuPanel implements SiteUserMenuView {
- private static final String LOGGED_USER_MENU = "kune-sump-lum";
- private static final String USER_PREFERENCES_MENU_ITEM = "kune-sump-uprmi";
- private static final String USER_HOME_PAGE_MENU_ITEM = "kune-sump-hpmi";
- private static final String USER_PARTICIPATION_MENU_ITEM = "kune-sump-upami";
+ public static final String YOUR_HOMEPAGE = "Your homepage";
+ public static final String LOGGED_USER_MENU = "kune-sump-lum";
+ public static final String USER_PREFERENCES_MENU_ITEM = "kune-sump-uprmi";
+ public static final String USER_HOME_PAGE_MENU_ITEM = "kune-sump-hpmi";
+ public static final String USER_PARTICIPATION_MENU_ITEM = "kune-sump-upami";
private final PushButton loggedUserMenu;
private final Widget separator;
private final Menu userMenu;
@@ -57,7 +58,8 @@
userMenu.showAt(sender.getAbsoluteLeft(), sender.getAbsoluteTop() + 10);
}
});
- final Item userHomePage = new Item(i18n.t("Your homepage"));
+ final Item userHomePage = new Item(i18n.t(YOUR_HOMEPAGE));
+ userHomePage.setId(USER_HOME_PAGE_MENU_ITEM);
userHomePage.setIcon("images/group-home.gif");
userHomePage.addListener(new BaseItemListenerAdapter() {
@Override
@@ -66,7 +68,6 @@
presenter.onUserHomePage();
}
});
- userHomePage.setId(USER_HOME_PAGE_MENU_ITEM);
userMenu.addItem(userHomePage);
final Item userPreferences = new Item(i18n.t("Your preferences"));
userPreferences.setId(USER_PREFERENCES_MENU_ITEM);
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java 2008-10-27 00:00:30 UTC (rev 931)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java 2008-10-27 13:32:42 UTC (rev 932)
@@ -1,27 +1,64 @@
package org.ourproject.kune.platf.integration.selenium;
+import org.junit.Before;
+import org.ourproject.kune.workspace.client.signin.RegisterForm;
+import org.ourproject.kune.workspace.client.signin.RegisterPanel;
import org.ourproject.kune.workspace.client.signin.SignInForm;
import org.ourproject.kune.workspace.client.signin.SignInPanel;
import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignInLinkPanel;
import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLinkPanel;
+import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserMenuPanel;
import org.ourproject.kune.workspace.client.title.EntityTitlePanel;
public class KuneSeleniumTestHelper extends SeleniumTestHelper {
+ @Before
+ public void before() {
+ selenium.deleteAllVisibleCookies();
+ selenium.refresh();
+ }
+
protected void ifLoggedSigOut() {
if (selenium.getText(gid(SiteSignOutLinkPanel.SITE_SIGN_OUT)).indexOf("admin") > 0) {
signOut();
}
}
- protected void openDefPage() {
- open("/kune/?locale=en");
+ protected void openDefPage() throws Exception {
+ open("/kune/?locale=en#site");
+ waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
}
- protected void openDefPageAndSignOutIfLogged() throws Exception {
- openDefPage();
- waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
- ifLoggedSigOut();
+ protected void register(String shortName, String longName, String passwd, String passwdDup, String email,
+ String country, String language, String tz, boolean wantHomepage) {
+ click(gid(SiteSignInLinkPanel.SITE_SIGN_IN));
+ click(gid(SignInPanel.CREATE_ONE));
+ type(RegisterForm.NICK_FIELD, shortName);
+ type(RegisterForm.LONGNAME_FIELD, longName);
+ type(RegisterForm.PASSWORD_FIELD, passwd);
+ type(RegisterForm.PASSWORD_FIELD_DUP, passwdDup);
+ type(RegisterForm.EMAIL_FIELD, email);
+ type(RegisterForm.LANG_FIELD, language);
+ type(RegisterForm.COUNTRY_FIELD, country);
+ type(RegisterForm.TIMEZONE_FIELD, tz);
+ // div[6]/div[1]/div/img
+ click("//div[6]/div[1]/div/img");
+ click("//div[text()='" + language + "']");
+ click("//div[7]/div[1]/div/img");
+ click("//div[text()='" + country + "']");
+ click("//div[8]/div[1]/div/img");
+ click("//div[text()='" + tz + "']");
+ // "xpath=//div\[contains(@style,'visible')\]/div\[@class='x-combo-list-inner']/div[text()='"ItemTextValue"'\]";
+ type("//div[@id='k-regp-p']/div/div/div/div/div/div/div/div/form/div[6]/div/div/input[2]", language);
+ type("//div[@id='k-regp-p']/div/div/div/div/div/div/div/div/form/div[7]/div/div/input[2]", country);
+ type("//div[@id='k-regp-p']/div/div/div/div/div/div/div/div/form/div[8]/div/div/input[2]", tz);
+
+ if (wantHomepage) {
+ click(RegisterForm.WANNAPERSONALHOMEPAGE_ID);
+ } else {
+ click(RegisterForm.NOPERSONALHOMEPAGE_ID);
+ }
+ click(RegisterPanel.REGISTER_BUTTON_ID);
}
protected void signIn() {
@@ -29,18 +66,17 @@
}
protected void signIn(String nick, String passwd) {
- selenium.click(gid(SiteSignInLinkPanel.SITE_SIGN_IN));
- selenium.type(SignInForm.NICKOREMAIL_FIELD, "admin");
- selenium.type(SignInForm.PASSWORD_FIELD, "easyeasy");
- selenium.click(SignInPanel.SIGN_IN_BUTTON_ID);
+ click(gid(SiteSignInLinkPanel.SITE_SIGN_IN));
+ type(SignInForm.NICKOREMAIL_FIELD, nick);
+ type(SignInForm.PASSWORD_FIELD, passwd);
+ click(SignInPanel.SIGN_IN_BUTTON_ID);
}
protected void signOut() {
- selenium.click("gwt-debug-k-ssolp-lb");
+ click("gwt-debug-k-ssolp-lb");
}
protected void verifyLoggedUserShorName(String userShortName) throws Exception {
- waitForTextInside(gid(SiteSignOutLinkPanel.SITE_SIGN_OUT), userShortName);
+ waitForTextInside(gid(SiteUserMenuPanel.LOGGED_USER_MENU), userShortName);
}
-
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java 2008-10-27 00:00:30 UTC (rev 931)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java 2008-10-27 13:32:42 UTC (rev 932)
@@ -46,6 +46,10 @@
selenium.start();
}
+ protected void click(String id) {
+ selenium.click(id);
+ }
+
protected void fail(String message) throws Exception {
throw new Exception(message);
}
@@ -60,6 +64,10 @@
return UIObject.DEBUG_ID_PREFIX + id;
}
+ protected String linkId(String link) {
+ return "link=" + link;
+ }
+
protected void open(String url) {
try {
selenium.open(url);
@@ -68,6 +76,14 @@
}
}
+ protected void setSpeed(int milliseconds) {
+ selenium.setSpeed("" + milliseconds);
+ }
+
+ protected void type(String id, String text) {
+ selenium.type(id, text);
+ }
+
protected void wait(int milliseconds) {
try {
Thread.sleep(milliseconds);
@@ -83,7 +99,8 @@
fail("timeout");
}
try {
- if (selenium.getText(id).indexOf(text) < 0) {
+ String selText = selenium.getText(id);
+ if (selText.indexOf(text) >= 0) {
break;
}
} catch (Exception e) {
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java 2008-10-27 00:00:30 UTC (rev 931)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java 2008-10-27 13:32:42 UTC (rev 932)
@@ -1,22 +1,76 @@
package org.ourproject.kune.platf.integration.selenium;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.Date;
+
+import org.junit.Ignore;
import org.junit.Test;
+import org.ourproject.kune.workspace.client.nohomepage.NoHomePagePanel;
+import org.ourproject.kune.workspace.client.signin.RegisterPanel;
+import org.ourproject.kune.workspace.client.signin.RegisterPresenter;
import org.ourproject.kune.workspace.client.signin.SignInPanel;
import org.ourproject.kune.workspace.client.signin.SignInPresenter;
+import org.ourproject.kune.workspace.client.site.Site;
+import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserMenuPanel;
public class SignInSeleniumTest extends KuneSeleniumTestHelper {
@Test
+ public void registerAdminNameMustFail() throws Exception {
+ openDefPage();
+ register("u" + genPrefix(), "Site Administrator", "somepasswd", "somepasswd", "some" + genPrefix()
+ + "@example.com", "Andorra", "Afrikaans", "MIT", true);
+ waitForTextInside(gid(RegisterPanel.ERRMSG), RegisterPresenter.NAME_IN_USE);
+ click(RegisterPanel.CANCEL_BUTTON_ID);
+ }
+
+ @Test
+ public void registerAdminNicknameMustFail() throws Exception {
+ openDefPage();
+ register("admin", "some name" + genPrefix(), "somepasswd", "somepasswd", "some" + genPrefix() + "@example.com",
+ "Andorra", "Afrikaans", "MIT", true);
+ waitForTextInside(gid(RegisterPanel.ERRMSG), RegisterPresenter.NAME_IN_USE);
+ click(RegisterPanel.CANCEL_BUTTON_ID);
+ }
+
+ @Test
+ public void registerSomeUser() throws Exception {
+ openDefPage();
+ registerValidUser(true);
+ }
+
+ @Ignore
+ public void registerSomeUserWithouHomepage() throws Exception {
+ openDefPage();
+ registerValidUser(false);
+ click(RegisterPanel.WELCOME_OK_BUTTON);
+ click("//div[@id='" + gid(SiteUserMenuPanel.LOGGED_USER_MENU) + "']/div");
+ click(linkId(SiteUserMenuPanel.YOUR_HOMEPAGE));
+ waitForTextInside(gid(NoHomePagePanel.NO_HOME_PAGE_LABEL), NoHomePagePanel.USER_DON_T_HAVE_A_HOMEPAGE);
+ wait(20000);
+ }
+
+ @Test
public void testSignInAndOut() throws Exception {
- openDefPageAndSignOutIfLogged();
+ openDefPage();
signIn();
verifyLoggedUserShorName("admin");
signOut();
}
@Test
+ public void testSignInAndOutRemovingCookie() throws Exception {
+ openDefPage();
+ signIn();
+ assertNotNull(selenium.getCookieByName(Site.USERHASH));
+ verifyLoggedUserShorName("admin");
+ signOut();
+ }
+
+ @Test
public void testSignInFailed() throws Exception {
- openDefPageAndSignOutIfLogged();
+ openDefPage();
signIn("something", "wrong");
waitForTextInside(gid(SignInPanel.ERROR_MSG), SignInPresenter.INCORRECT_NICKNAME_EMAIL_OR_PASSWORD);
signOut();
@@ -24,7 +78,7 @@
@Test
public void testSignInOutTwice() throws Exception {
- openDefPageAndSignOutIfLogged();
+ openDefPage();
signIn();
verifyLoggedUserShorName("admin");
signOut();
@@ -32,4 +86,26 @@
verifyLoggedUserShorName("admin");
signOut();
}
+
+ @Test
+ public void testSignInRemember() throws Exception {
+ openDefPage();
+ signIn();
+ verifyLoggedUserShorName("admin");
+ selenium.refresh();
+ verifyLoggedUserShorName("admin");
+ signOut();
+ }
+
+ private long genPrefix() {
+ long prefix = new Date().getTime();
+ return prefix;
+ }
+
+ private String registerValidUser(boolean wantHomepage) {
+ String shortName = "u" + genPrefix();
+ register(shortName, "some name " + genPrefix(), "somepasswd", "somepasswd", genPrefix() + "@example.com",
+ "Andorra", "English", "MET", wantHomepage);
+ return shortName;
+ }
}
1
0
27 Oct '08
Author: vjrj
Date: 2008-10-27 01:00:30 +0100 (Mon, 27 Oct 2008)
New Revision: 931
Added:
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java
Modified:
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
Log:
Incomplete - task Selenium tests helpers and new tests
Added: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java 2008-10-26 23:48:42 UTC (rev 930)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java 2008-10-27 00:00:30 UTC (rev 931)
@@ -0,0 +1,46 @@
+package org.ourproject.kune.platf.integration.selenium;
+
+import org.ourproject.kune.workspace.client.signin.SignInForm;
+import org.ourproject.kune.workspace.client.signin.SignInPanel;
+import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignInLinkPanel;
+import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLinkPanel;
+import org.ourproject.kune.workspace.client.title.EntityTitlePanel;
+
+public class KuneSeleniumTestHelper extends SeleniumTestHelper {
+
+ protected void ifLoggedSigOut() {
+ if (selenium.getText(gid(SiteSignOutLinkPanel.SITE_SIGN_OUT)).indexOf("admin") > 0) {
+ signOut();
+ }
+ }
+
+ protected void openDefPage() {
+ open("/kune/?locale=en");
+ }
+
+ protected void openDefPageAndSignOutIfLogged() throws Exception {
+ openDefPage();
+ waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
+ ifLoggedSigOut();
+ }
+
+ protected void signIn() {
+ signIn("admin", "easyeasy");
+ }
+
+ protected void signIn(String nick, String passwd) {
+ selenium.click(gid(SiteSignInLinkPanel.SITE_SIGN_IN));
+ selenium.type(SignInForm.NICKOREMAIL_FIELD, "admin");
+ selenium.type(SignInForm.PASSWORD_FIELD, "easyeasy");
+ selenium.click(SignInPanel.SIGN_IN_BUTTON_ID);
+ }
+
+ protected void signOut() {
+ selenium.click("gwt-debug-k-ssolp-lb");
+ }
+
+ protected void verifyLoggedUserShorName(String userShortName) throws Exception {
+ waitForTextInside(gid(SiteSignOutLinkPanel.SITE_SIGN_OUT), userShortName);
+ }
+
+}
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java 2008-10-26 23:48:42 UTC (rev 930)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java 2008-10-27 00:00:30 UTC (rev 931)
@@ -2,20 +2,14 @@
import org.junit.AfterClass;
import org.junit.BeforeClass;
-import org.ourproject.kune.workspace.client.signin.SignInForm;
-import org.ourproject.kune.workspace.client.signin.SignInPanel;
-import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignInLinkPanel;
-import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLinkPanel;
-import org.ourproject.kune.workspace.client.title.EntityTitlePanel;
+import com.google.gwt.user.client.ui.UIObject;
import com.thoughtworks.selenium.DefaultSelenium;
public class SeleniumTestHelper {
- private static final String GWT_DEBUG = "gwt-debug-";
+ protected static DefaultSelenium selenium;
- private static DefaultSelenium selenium;
-
@AfterClass
public static void afterClass() throws Exception {
selenium.stop();
@@ -56,35 +50,24 @@
throw new Exception(message);
}
+ /**
+ * Returns the debug id with the gwt DEBUG_ID_PREFIX
+ *
+ * @param id
+ * @return
+ */
protected String gid(String id) {
- return GWT_DEBUG + id;
+ return UIObject.DEBUG_ID_PREFIX + id;
}
- protected void ifLoggedSigOut() {
- if (selenium.getText(gid(SiteSignOutLinkPanel.SITE_SIGN_OUT)).indexOf("admin") > 0) {
- signOut();
+ protected void open(String url) {
+ try {
+ selenium.open(url);
+ } catch (final UnsupportedOperationException e) {
+ System.err.println("Seems that selenium server is not running; run before: 'mvn selenium:start-server' ");
}
}
- protected void openDefPage() {
- open("/kune/?locale=en");
- }
-
- protected void signIn() {
- signIn("admin", "easyeasy");
- }
-
- protected void signIn(String nick, String passwd) {
- selenium.click(gid(SiteSignInLinkPanel.SITE_SIGN_IN));
- selenium.type(SignInForm.NICKOREMAIL_FIELD, "admin");
- selenium.type(SignInForm.PASSWORD_FIELD, "easyeasy");
- selenium.click(SignInPanel.SIGN_IN_BUTTON_ID);
- }
-
- protected void signOut() {
- selenium.click("gwt-debug-k-ssolp-lb");
- }
-
protected void wait(int milliseconds) {
try {
Thread.sleep(milliseconds);
@@ -123,22 +106,4 @@
Thread.sleep(1000);
}
}
-
- private void open(String url) {
- try {
- selenium.open(url);
- } catch (final UnsupportedOperationException e) {
- System.err.println("Seems that selenium server is not running; run before: 'mvn selenium:start-server' ");
- }
- }
-
- protected void openDefPageAndSignOutIfLogged() throws Exception {
- openDefPage();
- waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
- ifLoggedSigOut();
- }
-
- protected void verifyLoggedUserShorName(String userShortName) throws Exception {
- waitForTextInside(gid(SiteSignOutLinkPanel.SITE_SIGN_OUT), userShortName);
- }
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java 2008-10-26 23:48:42 UTC (rev 930)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java 2008-10-27 00:00:30 UTC (rev 931)
@@ -4,7 +4,7 @@
import org.ourproject.kune.workspace.client.signin.SignInPanel;
import org.ourproject.kune.workspace.client.signin.SignInPresenter;
-public class SignInSeleniumTest extends SeleniumTestHelper {
+public class SignInSeleniumTest extends KuneSeleniumTestHelper {
@Test
public void testSignInAndOut() throws Exception {
1
0
Author: vjrj
Date: 2008-10-27 00:48:42 +0100 (Mon, 27 Oct 2008)
New Revision: 930
Added:
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
Modified:
trunk/pom.xml
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
trunk/src/main/java/org/ourproject/kune/platf/client/services/Images.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialogExtended.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignInLinkPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePanel.java
Log:
Incomplete - task Selenium tests helpers and new tests
Incomplete - task Resolve signIn and register dialog issues (only do more Selenium tests)
Incomplete - task New Group dialog refactorization
Incomplete - task Use BrowseButton in EntityLogoSelectorPanel
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/pom.xml 2008-10-26 23:48:42 UTC (rev 930)
@@ -379,7 +379,8 @@
<version>2.0-beta23</version>
<configuration>
<logLevel>INFO</logLevel>
- <style>PRETTY</style>
+ <style>OBF</style>
+ <!-- <style>PRETTY</style> -->
<runTarget>
org.ourproject.kune.app.Kune/Kune.html
</runTarget>
@@ -526,7 +527,7 @@
</executions>
</plugin>
- <plugin>
+ <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>selenium-maven-plugin</artifactId>
<configuration>
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-10-26 23:48:42 UTC (rev 930)
@@ -35,4 +35,4 @@
}
*/.kune-NavigationBar .topBar .gwt-Image{margin:0 2px 0 5px;}.kune-NavigationBar .Items{margin:2px 0;}.kune-NavigationBar .Items .gwt-Image{margin:2px 0;vertical-align:middle;}.kune-NavigationBar .Items .gwt-Hyperlink a{color:green;/* FIXME: other color */}.kune-NavigationBar .topBar .topBar-margin{margin-left:5px;}.kune-NavigationBar .pathMenu{vertical-align:middle;}.kune-NavigationBar .pathMenu .gwt-MenuItem{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;white-space:nowrap;padding:3px 6px;}.kune-NavigationBar .pathMenu .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#000;}.kune-NavigationBar .kune-IconHyperlink{vertical-align:middle;margin-left:5px;}.kune-NavigationBar .kune-IconHyperlink a{color:green;text-decoration:none;}.kune-NavigationBar .kune-IconHyperlink .gwt-Image{margin-right:3px;vertical-align:middle;}/* Social Network */.kune-StackedDropDownPanel{}.kune-StackedDropDownPanel .gwt-StackPanelItem{border-top:1px solid #CCC;border-bottom:1px solid #CCC;background-color:#EFA;cursor:pointer;padding:1px 3px 0 6px;overflow:hidden;}.kune-StackedDropDownPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-StackedDropDownPanel .kune-DropDownInner table{width:100%;}.kune-StackedDropDownPanel .gwt-StackPanelItem-selected{}.kune-StackedDropDownPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-StackedDropDownPanel .kune-DropDownInner{padding:0;}/* StackedDropDownPanel Members */.kune-StackSubItemLabel{overflow:hidden;}.kune-StackSubItemLabel .gwt-MenuItem{white-space:nowrap;cursor:pointer;border-bottom:1px solid #F2F2F2;}.kune-StackSubItemLabel table{width:100%;}.kune-StackSubItemLabel .gwt-MenuItem img{vertical-align:middle;margin-top:1px;margin-bottom:1px;margin-left:5px;margin-right:3px;}.kune-StackSubItemLabel .gwt-MenuItem-selected{background-color:#FFE6D5;}.kune-StackSubItemActions{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;margin-left:-120px;margin-top:-2px;}.kune-StackSubItemActions .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.kune-StackSubItemActions .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.kune-StackSubItemActions .gwt-MenuItem-selected{background-color:#FFB958;}/* AccessList */.kune-AccessListSubLabel{font-style:italic;}.kune-AccessList{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel-open{width:100%;}.kune-AccessList .gwt-DisclosurePanel-closed{width:100%;}.kune-AccessList .header{margin:0 0 3px;text-decoration:none;width:100%;background-color:#8DD35F;}.kune-AccessList .header table{margin:0 5px 0 0;width:100%;color:#FFF;}.kune-AccessList .header img{margin:0 3px 0 0;}.kune-AccessList .content{margin:0 0 0 7px;width:100%;}.kune-AccessList .content table{margin-bottom:5px;width:100%;}/* Rate */.kune-RatePanel-Label{white-space:nowrap;vertical-align:middle;}.kune-RatePanel-Stars{margin-left:5px;vertical-align:middle;}.kune-RatePanel-Stars-RateIt{cursor:pointer;}/* Licenses */.kune-License-CC-Header{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}.kune-License-CC-Header .gwt-Label{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}/* Theme */.kune-IconBottomPanel .gwt-MenuItem{cursor:pointer;background-color:#FFF;margin:2px 2px 2px 5px;}.kune-IconBottomPanel .gwt-MenuItem-selected{background-color:#F2F2F2;}.gwt-MenuBar-bottomMenu{margin-left:-60px;margin-top:-120px;}/* i18n */.kune-I18nTranslatorCell{white-space:normal;}.kune-i18nTranslator-recommend{margin:10px;}.kune-i18nTranslator-recommend h1{font-size:131%;font-weight:700;}.kune-i18nTranslator-recommend h2{font-size:116%;font-weight:700;}.kune-i18nTranslator-recommend h3{font-size:108%;font-weight:700;font-style:italic;}.kune-i18nTranslator-recommend em{font-weight:700;}.kune-i18nTranslator-recommend strong{font-weight:700;}/* Admin Context */.kune-AdminContextPanel{margin:6px;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem{background:transparent url(img/arrow-right-white.gif) no-repeat scroll 3px 2px;cursor:pointer;padding:3px 10px 1px 20px;overflow:hidden;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-AdminContextPanel .gwt-StackPanelItem-selected{background:transparent url(img/arrow-down-white.gif) no-repeat scroll 3px 2px;background-color:#DEE3DB;}.kune-AdminContextPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-AdminContextPanel-inner{background-color:#FFF;}.kune-AdminContextPanel-inner-wrap{margin:5px;}.kune-EditableLabel{}.kune-EditableLabel .kune-EditableLabel-editable{}.kune-EditableLabel-high{background-color:#FFFBC1;cursor:pointer;}.kune-EditableLabel-high span{background-color:#FFFBC1;}.kune-EditableLabel a{margin-left:5px;}.kune-EditableLabel a:link{color:green;}.kune-EditableLabel a:hover{text-decoration:underline;}.kune-EditableLabel a:visited{color:olive;}.kune-EditableLabel img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable span{margin:3px;}.kune-EditableLabel span{margin:3px;}.kune-BottomIconsTrayPanel{width:165px;height:21px;vertical-align:middle;background-color:#EFEFEF;}.kune-TagsPanel-tag{float:left;margin-right:5px;cursor:pointer;}.kune-Content-Main{margin:5px;}/* Yahoo ui base.css */.kune-Content-Main h1{font-size:138.5%;}.kune-Content-Main h2{font-size:123.099998%;}.kune-Content-Main h3{font-size:108%;}.kune-Content-Main h1{margin:1em 0;}.kune-Content-Main h2{margin:1em 0;}.kune-Content-Main h3{margin:1em 0;}.kune-Content-Main h1{font-weight:700;}.kune-Content-Main h2{font-weight:700;}.kune-Content-Main h3{font-weight:700;}.kune-Content-Main h4{font-weight:700;}.kune-Content-Main h5{font-weight:700;}.kune-Content-Main h6{font-weight:700;}.kune-Content-Main strong{font-weight:700;}.kune-Content-Main abbr{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main acronym{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main em{font-style:italic;}.kune-Content-Main blockquote{margin:1em;}.kune-Content-Main ul{margin:1em;}.kune-Content-Main ol{margin:1em;}.kune-Content-Main dl{margin:1em;}.kune-Content-Main ol{margin-left:2em;}.kune-Content-Main ul{margin-left:2em;}.kune-Content-Main dl{margin-left:2em;}.kune-Content-Main ol{list-style:decimal outside;}.kune-Content-Main li{list-style:decimal outside;}.kune-Content-Main li{list-style:disc outside;}.kune-Content-Main ul{list-style:disc outside;}.kune-Content-Main dl{margin-left:1em;}.kune-Content-Main dd{margin-left:1em;}.kune-Content-Main th{border:1px solid #000;padding:.5em;font-weight:700;text-align:center;}.kune-Content-Main td{border:1px solid #000;padding:.5em;}.kune-Content-Main caption{margin-bottom:.5em;text-align:center;}.kune-Content-Main p{margin-bottom:1em;}.kune-Content-Main fieldset{margin-bottom:1em;}.kune-Content-Main table{margin-bottom:1em;}.kune-Content-Main pre{margin-bottom:1em;}.kune-Content-Main input[type=text]{width:12.25em;width:11.9em;}.kune-Content-Main input[type=password]{width:12.25em;width:11.9em;}.kune-Content-Main textarea{width:12.25em;width:11.9em;}.search-icon{background-image:url(img/search.gif)!important;}.i18n-icon{background-image:url(img/language.gif)!important;}/* RTE Text editor */.kune-TexEditorPanel-TextArea{margin:3px;}.gwt-RichTextArea{/* border: 1px solid #000;
background-color: #FFF; */border:1px solid #4D4D4D;background-color:#FFF;margin:5px 0 5px 10px;}.gwt-RichTextToolbar{/* background-color: #F2F2F2;
- padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-down-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-entitytextlogo .gwt-Hyperlink a{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entitylicensepanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-bottom div{line-height:2em;color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others */.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}
\ No newline at end of file
+ padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-down-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-entitytextlogo .gwt-Hyperlink a{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entitylicensepanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-bottom div{line-height:2em;color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others */.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-10-26 23:48:42 UTC (rev 930)
@@ -739,4 +739,9 @@
.k-stm-error-icon {
background-image: url(img/error.gif) !important;
+}
+
+.k-error-tb {
+ background: #FFB380 none repeat scroll 0% 50%;
+ color: #250;
}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/Images.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/Images.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/Images.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -28,6 +28,7 @@
public static class App {
private static Images ourInstance = null;
+ @Deprecated
public static synchronized Images getInstance() {
if (ourInstance == null) {
ourInstance = (Images) GWT.create(Images.class);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -272,7 +272,7 @@
public SignIn create() {
final SignInPresenter presenter = new SignInPresenter($(Session.class), $(StateManager.class), i18n,
$$(UserServiceAsync.class), $$(Register.class));
- final SignInView panel = new SignInPanel(presenter, i18n, $(WorkspaceSkeleton.class));
+ final SignInView panel = new SignInPanel(presenter, i18n, $(WorkspaceSkeleton.class), $(Images.class));
presenter.init(panel);
return presenter;
}
@@ -284,7 +284,7 @@
final RegisterPresenter presenter = new RegisterPresenter($(Session.class), $(StateManager.class),
i18n, $$(UserServiceAsync.class), $$(SignIn.class));
final RegisterView panel = new RegisterPanel(presenter, i18n, $(WorkspaceSkeleton.class),
- $(Session.class));
+ $(Session.class), $(Images.class));
presenter.init(panel);
return presenter;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialogExtended.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialogExtended.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialogExtended.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -29,6 +29,9 @@
public class BasicDialogExtended extends BasicDialog {
+ private final Button cancel;
+ private final Button firstButton;
+
public BasicDialogExtended(final String title, final boolean modal, final boolean autoscroll, final int width,
final int heigth, final String icon, final String firstButtonTitle, final String cancelButtonTitle,
final Listener0 onFirstButtonClick, Listener0 onCancelButtonClick) {
@@ -46,7 +49,7 @@
setButtonAlign(Position.RIGHT);
setIconCls(icon);
- final Button firstButton = new Button(firstButtonTitle);
+ firstButton = new Button(firstButtonTitle);
firstButton.addListener(new ButtonListenerAdapter() {
@Override
public void onClick(final Button button, final EventObject e) {
@@ -57,7 +60,7 @@
firstButton.setTabIndex(3);
firstButton.setId(firstButtonId);
- final Button cancel = new Button(cancelButtonTitle);
+ cancel = new Button(cancelButtonTitle);
cancel.addListener(new ButtonListenerAdapter() {
@Override
public void onClick(final Button button, final EventObject e) {
@@ -69,4 +72,12 @@
addButton(firstButton);
addButton(cancel);
}
+
+ public Button getCancel() {
+ return cancel;
+ }
+
+ public Button getFirstButton() {
+ return firstButton;
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -26,11 +26,15 @@
import com.calclab.suco.client.listener.Listener0;
import com.gwtext.client.core.Connection;
+import com.gwtext.client.core.EventCallback;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.widgets.form.Field;
import com.gwtext.client.widgets.form.Form;
import com.gwtext.client.widgets.form.FormPanel;
import com.gwtext.client.widgets.form.Hidden;
import com.gwtext.client.widgets.form.Label;
import com.gwtext.client.widgets.form.TextField;
+import com.gwtext.client.widgets.form.event.FieldListenerAdapter;
import com.gwtext.client.widgets.form.event.FormListener;
public class EntityLogoSelectorPanel implements EntityLogoSelectorView {
@@ -42,13 +46,17 @@
private final FormPanel formPanel;
private final Hidden userhashField;
private final Hidden tokenField;
+ private final TextField file;
public EntityLogoSelectorPanel(final EntityLogoSelectorPresenter presenter, final WorkspaceSkeleton ws,
I18nTranslationService i18n) {
dialog = new BasicDialogExtended(i18n.t("Select an logo for your group"), true, true, 320, 180, "",
i18n.t("Select"), SUBID, i18n.tWithNT("Cancel", "used in button"), CANCELID, new Listener0() {
public void onEvent() {
- formPanel.getForm().submit();
+ String filename = file.getValueAsString();
+ if (filename != null && filename.length() > 0) {
+ formPanel.getForm().submit();
+ }
}
}, new Listener0() {
public void onEvent() {
@@ -57,6 +65,7 @@
});
dialog.setCollapsible(false);
dialog.setBorder(false);
+ //dialog.getFirstButton().disable();
formPanel = new FormPanel();
formPanel.setFrame(true);
@@ -89,7 +98,13 @@
"Select an image in your computer as the logo for this group. Recomended size [%d]x[%d] pixels",
EntityLogoView.LOGO_ICON_DEFAULT_HEIGHT, EntityLogoView.LOGO_ICON_DEFAULT_HEIGHT));
formPanel.add(label);
- final TextField file = new TextField("File", EntityLogoView.LOGO_FORM_FIELD);
+ file = new TextField("File", EntityLogoView.LOGO_FORM_FIELD);
+ EventCallback keyListener = new EventCallback() {
+ public void execute(EventObject e) {
+ // setEnableFileField();
+ }
+ };
+ file.addKeyPressListener(keyListener);
file.setId(EntityLogoView.LOGO_FORM_FIELD);
file.setInputType("file");
userhashField = new Hidden(FileParams.HASH, FileParams.HASH);
@@ -97,9 +112,27 @@
formPanel.add(userhashField);
formPanel.add(tokenField);
formPanel.add(file);
+ FieldListenerAdapter changeListener = new FieldListenerAdapter() {
+ @Override
+ public void onChange(Field field, Object newVal, Object oldVal) {
+ Site.info("change");
+ // setEnableFileField();
+ }
+ };
+ // Don't works:
+ file.addListener(changeListener);
dialog.add(formPanel);
}
+ // BrowseButton browseButton = new BrowseButton("SelectIcon");
+ // browseButton.addListener(new BrowseButtonListenerAdapter() {
+ // @Override
+ // public void onInputFileChange(BrowseButton browseButton, String filename)
+ // {
+ // // TODO Auto-generated method stub
+ // }
+ // });
+
public void hide() {
dialog.hide();
formPanel.getForm().reset();
@@ -113,4 +146,13 @@
public void show() {
dialog.show();
}
+
+ @SuppressWarnings("unused")
+ private void setEnableFileField() {
+ if (file.getValueAsString().length() > 0) {
+ dialog.getFirstButton().enable();
+ } else {
+ dialog.getFirstButton().disable();
+ }
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -62,7 +62,7 @@
private Radio projectRadio;
private Radio orgRadio;
private Radio communityRadio;
- private Radio orphanedProjectRadio;
+
private TextField shortNameField;
private TextField longNameField;
private TextArea publicDescField;
@@ -193,10 +193,6 @@
return orgRadio.getValue();
}
- public boolean isOrphanedProject() {
- return orphanedProjectRadio.getValue();
- }
-
public boolean isProject() {
return projectRadio.getValue();
}
@@ -291,11 +287,6 @@
+ "(for instance the environmental community or the LGBT community). "
+ "Normally they aren't a legal entity.");
- orphanedProjectRadio = new Radio();
- createRadio(groupTypeFieldSet, orphanedProjectRadio, "Orphaned Project",
- "If you have an idea but you don't have " + "capacity/possibilities/resources to work on it, "
- + "just register a orphaned project, and permit others to work and develop it.");
-
groupTypeFieldSet.setCollapsible(false);
return form;
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -155,8 +155,6 @@
private GroupType getTypeOfGroup() {
if (view.isProject()) {
return GroupType.PROJECT;
- } else if (view.isOrphanedProject()) {
- return GroupType.ORPHANED_PROJECT;
} else if (view.isOrganization()) {
return GroupType.ORGANIZATION;
} else {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -48,8 +48,6 @@
boolean isOrganization();
- boolean isOrphanedProject();
-
boolean isProject();
void maskProcessing();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -1,5 +1,6 @@
package org.ourproject.kune.workspace.client.signin;
+import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.ui.dialogs.InfoDialog;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
@@ -12,13 +13,15 @@
public class RegisterPanel extends SignInAbstractPanel implements RegisterView {
+ public static final String ERRMSG = "k-regp-errmsg";
+
static RegisterForm registerForm;
private static final String CANCEL_BUTTON_ID = "kune-regp-cb";
private static final String REGISTER_BUTTON_ID = "kune-regp-rb";
public RegisterPanel(final RegisterPresenter presenter, I18nUITranslationService i18n, final WorkspaceSkeleton ws,
- Session session) {
+ Session session, Images images) {
super(i18n, i18n.t("Register"), true, true, 390, 450, "", i18n.t("Register"), REGISTER_BUTTON_ID, i18n.tWithNT(
"Cancel", "used in button"), CANCEL_BUTTON_ID, new Listener0() {
public void onEvent() {
@@ -31,7 +34,7 @@
public void onEvent() {
presenter.onCancel();
}
- });
+ }, images, ERRMSG);
Panel panel = new Panel();
panel.setBorder(false);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -2,6 +2,7 @@
import java.util.Date;
+import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.ui.dialogs.BasicDialogExtended;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
@@ -11,6 +12,7 @@
import com.calclab.suco.client.listener.Listener0;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Cookies;
+import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.gwtext.client.core.Ext;
import com.gwtext.client.widgets.Toolbar;
@@ -19,24 +21,38 @@
protected final I18nUITranslationService i18n;
protected Label errorLabel;
+ private final Image errorIcon;
+ private final Toolbar messageToolbar;
public SignInAbstractPanel(I18nUITranslationService i18n, String title, boolean modal, boolean autoscroll,
int width, int heigth, String icon, String firstButtonTitle, String cancelButtonTitle,
- Listener0 onFirstButtonClick, Listener0 onCancelButtonClick) {
+ Listener0 onFirstButtonClick, Listener0 onCancelButtonClick, Images images, String errorLabelId) {
this(i18n, title, modal, autoscroll, width, heigth, icon, firstButtonTitle, Ext.generateId(),
- cancelButtonTitle, Ext.generateId(), onFirstButtonClick, onCancelButtonClick);
+ cancelButtonTitle, Ext.generateId(), onFirstButtonClick, onCancelButtonClick, images, errorLabelId);
}
public SignInAbstractPanel(I18nUITranslationService i18n, final String title, final boolean modal,
final boolean autoscroll, final int width, final int heigth, final String icon,
final String firstButtonTitle, final String firstButtonId, final String cancelButtonTitle,
- final String cancelButtonId, final Listener0 onFirstButtonClick, final Listener0 onCancelButtonClick) {
+ final String cancelButtonId, final Listener0 onFirstButtonClick, final Listener0 onCancelButtonClick,
+ Images images, String errorLabelId) {
super(title, modal, autoscroll, width, heigth, icon, firstButtonTitle, firstButtonId, cancelButtonTitle,
cancelButtonId, onFirstButtonClick, onCancelButtonClick);
this.i18n = i18n;
errorLabel = new Label("");
- Toolbar messageToolbar = new Toolbar();
+ errorLabel.ensureDebugId(errorLabelId);
+ messageToolbar = new Toolbar();
+ errorIcon = new Image();
+ Images.App.getInstance().error().applyTo(errorIcon);
+ messageToolbar.addSpacer();
+ messageToolbar.addElement(errorIcon.getElement());
+ messageToolbar.setCls("k-error-tb");
+ messageToolbar.addSpacer();
+ messageToolbar.addSpacer();
messageToolbar.addElement(errorLabel.getElement());
+ errorIcon.setVisible(false);
+ messageToolbar.setVisible(false);
+
super.setBottomToolbar(messageToolbar);
}
@@ -48,8 +64,9 @@
}
public void hideMessages() {
+ errorIcon.setVisible(false);
errorLabel.setText("");
- // renderDialogIfNeeded();
+ messageToolbar.setVisible(false);
}
public void mask(final String message) {
@@ -70,11 +87,11 @@
public void setErrorMessage(final String message, final SiteErrorType type) {
errorLabel.setText(message);
- // renderDialogIfNeeded();
+ errorIcon.setVisible(true);
+ messageToolbar.setVisible(true);
}
public void unMask() {
getEl().unmask();
}
-
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPresenter.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPresenter.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -32,9 +32,18 @@
stateManager.gotoToken(previousStateToken);
}
+ public void onClose() {
+ view.reset();
+ view.hideMessages();
+ if (!session.isLogged()) {
+ stateManager.gotoToken(previousStateToken);
+ }
+ }
+
protected void onSignIn(final UserInfoDTO userInfoDTO) {
final String userHash = userInfoDTO.getUserHash();
view.setCookie(userHash);
+ view.reset();
session.setUserHash(userHash);
session.setCurrentUserInfo(userInfoDTO);
final I18nLanguageDTO language = userInfoDTO.getLanguage();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInForm.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInForm.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -24,8 +24,8 @@
import com.gwtext.client.widgets.form.TextField;
public class SignInForm extends DefaultForm {
- private static final String NICKOREMAIL_FIELD = "kune-sif-nkf";
- private static final String PASSWORD_FIELD = "kune-sif-psf";
+ public static final String NICKOREMAIL_FIELD = "kune-sif-nkf";
+ public static final String PASSWORD_FIELD = "kune-sif-psf";
private final TextField loginNickOrEmailField;
private final TextField loginPassField;
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -1,26 +1,29 @@
package org.ourproject.kune.workspace.client.signin;
+import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import com.calclab.suco.client.listener.Listener0;
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.DeferredCommand;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
+import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.Panel;
+import com.gwtext.client.widgets.event.WindowListenerAdapter;
public class SignInPanel extends SignInAbstractPanel implements SignInView {
- private static final String CANCEL_BUTTON_ID = "kune-signinp-cb";
- private static final String SIGN_IN_BUTTON_ID = "kune-signinp-sib";
+ public static final String ERROR_MSG = "k-sigp-errmsg";
+ public static final String CANCEL_BUTTON_ID = "kune-signinp-cb";
+ public static final String SIGN_IN_BUTTON_ID = "kune-signinp-sib";
static SignInForm signInForm;
private final SignInPresenter presenter;
- public SignInPanel(final SignInPresenter presenter, I18nUITranslationService i18n, final WorkspaceSkeleton ws) {
- super(i18n, i18n.t("Sign in"), true, true, 330, 240, "", i18n.t("Sign in"), SIGN_IN_BUTTON_ID, i18n.tWithNT(
+ public SignInPanel(final SignInPresenter presenter, I18nUITranslationService i18n, final WorkspaceSkeleton ws,
+ Images images) {
+ super(i18n, i18n.t("Sign in"), true, true, 340, 240, "", i18n.t("Sign in"), SIGN_IN_BUTTON_ID, i18n.tWithNT(
"Cancel", "used in button"), CANCEL_BUTTON_ID, new Listener0() {
public void onEvent() {
signInForm.validate();
@@ -32,13 +35,20 @@
public void onEvent() {
presenter.onCancel();
}
- });
+ }, images, ERROR_MSG);
this.presenter = presenter;
+ super.addListener(new WindowListenerAdapter() {
+ @Override
+ public void onHide(Component component) {
+ presenter.onClose();
+ }
+ });
+
Panel panel = new Panel();
panel.setBorder(false);
signInForm = new SignInForm(i18n);
- signInForm.setWidth(300);
+ signInForm.setWidth(310);
panel.add(signInForm.getForm());
panel.add(createNoAccountRegister());
add(panel);
@@ -57,11 +67,7 @@
}
public void reset() {
- DeferredCommand.addCommand(new Command() {
- public void execute() {
- signInForm.reset();
- }
- });
+ signInForm.reset();
}
private Panel createNoAccountRegister() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -19,6 +19,7 @@
public class SignInPresenter extends SignInAbstractPresenter implements SignIn {
+ public static final String INCORRECT_NICKNAME_EMAIL_OR_PASSWORD = "Incorrect nickname/email or password";
SignInView view;
private final Provider<UserServiceAsync> userServiceProvider;
private final Provider<Register> registerProvider;
@@ -77,7 +78,7 @@
try {
throw caught;
} catch (final UserAuthException e) {
- view.setErrorMessage(i18n.t("Incorrect nickname/email or password"), SiteErrorType.error);
+ view.setErrorMessage(i18n.t(INCORRECT_NICKNAME_EMAIL_OR_PASSWORD), SiteErrorType.error);
} catch (final Throwable e) {
view.setErrorMessage("Error in login", SiteErrorType.error);
Log.error("Other kind of exception in LoginFormPresenter/doLogin");
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignInLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignInLinkPanel.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignInLinkPanel.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -26,7 +26,7 @@
public class SiteSignInLinkPanel implements SiteSignInLinkView {
- private static final String SITE_SIGN_IN = "kune-ssilp-hy";
+ public static final String SITE_SIGN_IN = "kune-ssilp-hy";
private final Hyperlink signInHyperlink;
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPanel.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPanel.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -28,7 +28,7 @@
public class SiteSignOutLinkPanel implements SiteSignOutLinkView {
- private static final String SITE_SIGN_OUT = "k-ssolp-lb";
+ public static final String SITE_SIGN_OUT = "k-ssolp-lb";
private final Label signOutLabel;
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePanel.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePanel.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -28,6 +28,7 @@
import com.google.gwt.user.client.ui.Label;
public class EntityTitlePanel implements EntityTitleView {
+ public static final String ENTITY_TITLE_RIGHT_TITLE = "k-entity-title-title";
private final EditableIconLabel titleLabel;
private final Label dateLabel;
private final Image icon;
@@ -49,7 +50,7 @@
icon.addStyleName("kune-Margin-Large-l");
titleLabel.addStyleName("kune-Margin-Medium-l");
titleLabel.addStyleName("kune-ft17px");
- titleLabel.ensureDebugId("k-entity-title-title");
+ titleLabel.ensureDebugId(ENTITY_TITLE_RIGHT_TITLE);
dateLabel.addStyleName("kune-Margin-Large-r");
dateLabel.addStyleName("kune-ft12px");
dateLabel.ensureDebugId("k-entity-title-date");
Added: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -0,0 +1,144 @@
+package org.ourproject.kune.platf.integration.selenium;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.ourproject.kune.workspace.client.signin.SignInForm;
+import org.ourproject.kune.workspace.client.signin.SignInPanel;
+import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignInLinkPanel;
+import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLinkPanel;
+import org.ourproject.kune.workspace.client.title.EntityTitlePanel;
+
+import com.thoughtworks.selenium.DefaultSelenium;
+
+public class SeleniumTestHelper {
+
+ private static final String GWT_DEBUG = "gwt-debug-";
+
+ private static DefaultSelenium selenium;
+
+ @AfterClass
+ public static void afterClass() throws Exception {
+ selenium.stop();
+ }
+
+ /**
+ *
+ * If you get and null in ./content/recorder.js line 74 running test, this
+ * happens when you compile gwt with PRETTY instead of OBF. See:
+ *
+ * <pre>
+ * http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/5d6a…
+ * </pre>
+ *
+ * <pre>
+ * http://code.google.com/p/google-web-toolkit/issues/detail?id=2861
+ * </pre>
+ *
+ * @param url
+ * @return
+ * @throws Exception
+ */
+ @BeforeClass
+ public static void beforeClass() {
+ // ff3 hangs: http://jira.openqa.org/browse/SRC-225
+ // as a workarount use ff2:
+ //
+ // return new DefaultSelenium("localhost", 4441,
+ // "*firefox /usr/lib/firefox-3.0.3/firefox", url);
+
+ // this is a problem... platform dependence ...
+ selenium = new DefaultSelenium("localhost", 4441, "*firefox /usr/lib/firefox/firefox-2-bin",
+ "http://localhost:8080/");
+ selenium.start();
+ }
+
+ protected void fail(String message) throws Exception {
+ throw new Exception(message);
+ }
+
+ protected String gid(String id) {
+ return GWT_DEBUG + id;
+ }
+
+ protected void ifLoggedSigOut() {
+ if (selenium.getText(gid(SiteSignOutLinkPanel.SITE_SIGN_OUT)).indexOf("admin") > 0) {
+ signOut();
+ }
+ }
+
+ protected void openDefPage() {
+ open("/kune/?locale=en");
+ }
+
+ protected void signIn() {
+ signIn("admin", "easyeasy");
+ }
+
+ protected void signIn(String nick, String passwd) {
+ selenium.click(gid(SiteSignInLinkPanel.SITE_SIGN_IN));
+ selenium.type(SignInForm.NICKOREMAIL_FIELD, "admin");
+ selenium.type(SignInForm.PASSWORD_FIELD, "easyeasy");
+ selenium.click(SignInPanel.SIGN_IN_BUTTON_ID);
+ }
+
+ protected void signOut() {
+ selenium.click("gwt-debug-k-ssolp-lb");
+ }
+
+ protected void wait(int milliseconds) {
+ try {
+ Thread.sleep(milliseconds);
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ protected void waitForTextInside(String id, String text) throws Exception {
+ for (int second = 0;; second++) {
+ if (second >= 60) {
+ fail("timeout");
+ }
+ try {
+ if (selenium.getText(id).indexOf(text) < 0) {
+ break;
+ }
+ } catch (Exception e) {
+ }
+ Thread.sleep(1000);
+ }
+ }
+
+ protected void waitForTextRegExp(String id, String text) throws Exception {
+ for (int second = 0;; second++) {
+ if (second >= 60) {
+ fail("timeout");
+ }
+ try {
+ if (selenium.getText(id).matches(text)) {
+ break;
+ }
+ } catch (Exception e) {
+ }
+ Thread.sleep(1000);
+ }
+ }
+
+ private void open(String url) {
+ try {
+ selenium.open(url);
+ } catch (final UnsupportedOperationException e) {
+ System.err.println("Seems that selenium server is not running; run before: 'mvn selenium:start-server' ");
+ }
+ }
+
+ protected void openDefPageAndSignOutIfLogged() throws Exception {
+ openDefPage();
+ waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
+ ifLoggedSigOut();
+ }
+
+ protected void verifyLoggedUserShorName(String userShortName) throws Exception {
+ waitForTextInside(gid(SiteSignOutLinkPanel.SITE_SIGN_OUT), userShortName);
+ }
+}
Added: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java 2008-10-25 14:13:41 UTC (rev 929)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java 2008-10-26 23:48:42 UTC (rev 930)
@@ -0,0 +1,35 @@
+package org.ourproject.kune.platf.integration.selenium;
+
+import org.junit.Test;
+import org.ourproject.kune.workspace.client.signin.SignInPanel;
+import org.ourproject.kune.workspace.client.signin.SignInPresenter;
+
+public class SignInSeleniumTest extends SeleniumTestHelper {
+
+ @Test
+ public void testSignInAndOut() throws Exception {
+ openDefPageAndSignOutIfLogged();
+ signIn();
+ verifyLoggedUserShorName("admin");
+ signOut();
+ }
+
+ @Test
+ public void testSignInFailed() throws Exception {
+ openDefPageAndSignOutIfLogged();
+ signIn("something", "wrong");
+ waitForTextInside(gid(SignInPanel.ERROR_MSG), SignInPresenter.INCORRECT_NICKNAME_EMAIL_OR_PASSWORD);
+ signOut();
+ }
+
+ @Test
+ public void testSignInOutTwice() throws Exception {
+ openDefPageAndSignOutIfLogged();
+ signIn();
+ verifyLoggedUserShorName("admin");
+ signOut();
+ signIn();
+ verifyLoggedUserShorName("admin");
+ signOut();
+ }
+}
1
0
Author: vjrj
Date: 2008-10-25 16:13:41 +0200 (Sat, 25 Oct 2008)
New Revision: 929
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/errors/ContentNotPermittedException.java
trunk/src/test/java/org/ourproject/kune/docs/server/
trunk/src/test/java/org/ourproject/kune/docs/server/DocumentServerToolTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/content/
trunk/src/test/java/org/ourproject/kune/platf/server/content/ContentManagerDefaultTest.java
Modified:
trunk/INSTALL
trunk/pom.xml
trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerTool.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java
trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/content/CreationService.java
trunk/src/main/java/org/ourproject/kune/platf/server/content/CreationServiceDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java
trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigator.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePresenter.java
trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceAddTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceSaveTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/manager/ContentManagerTest.java
Log:
Complete - task Content save return nothing
Complete - task Container AccessLists (for public wikis) and more contents/actions (blog/posts)
gwt-1.5.3
(drop db recommended)
Modified: trunk/INSTALL
===================================================================
--- trunk/INSTALL 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/INSTALL 2008-10-25 14:13:41 UTC (rev 929)
@@ -4,7 +4,7 @@
For development:
- Install java-jdk (>= 1.5), maven2, mysql (>= 5.0) and for example eclipse
-- Install gwt 1.5.2 and follow Appendix A for maven+gwt configuration
+- Install gwt 1.5.3 and follow Appendix A for maven+gwt configuration
- Compile with maven:
# (in the trunk directory)
mvn compile
@@ -88,9 +88,9 @@
</properties>
</profile>
<profile>
- <id>gwt-1.5.2</id>
+ <id>gwt-1.5.3</id>
<properties>
- <google.webtoolkit.home>/usr/local/lib/gwt/gwt-linux-1.5.2</google.webtoolkit.home>
+ <google.webtoolkit.home>/usr/local/lib/gwt/gwt-linux-1.5.3</google.webtoolkit.home>
<!-- <google.webtoolkit.devjar>gwt-dev-linux</google.webtoolkit.devjar> -->
<!-- you only need this is you are on a mac -->
<google.webtoolkit.extrajvmargs>-Xmx256M</google.webtoolkit.extrajvmargs>
@@ -98,7 +98,7 @@
</profile>
</profiles>
<activeProfiles>
- <activeProfile>gwt-1.5.2</activeProfile>
+ <activeProfile>gwt-1.5.3</activeProfile>
</activeProfiles>
</settings>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/pom.xml 2008-10-25 14:13:41 UTC (rev 929)
@@ -34,13 +34,13 @@
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
- <version>1.5.2</version>
+ <version>1.5.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-servlet</artifactId>
- <version>1.5.2</version>
+ <version>1.5.3</version>
</dependency>
<!--
<dependency> <groupId>com.extjs</groupId>
Modified: trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerTool.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerTool.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -49,6 +49,17 @@
this.containerManager = containerManager;
}
+ public void checkTypesBeforeContainerCreation(String parentTypeId, String typeId) {
+ checkContainerTypeId(parentTypeId, typeId);
+ }
+
+ public void checkTypesBeforeContentCreation(String parentTypeId, String typeId) {
+ if (!parentTypeId.equals(TYPE_ROOM)) {
+ throw new ContainerNotPermittedException();
+ }
+ // in the future chat history checks
+ }
+
public String getName() {
return NAME;
}
@@ -57,6 +68,10 @@
return ROOT_NAME;
}
+ public ServerToolTarget getTarget() {
+ return ServerToolTarget.forGroups;
+ }
+
public Group initGroup(final User user, final Group group) {
final ToolConfiguration config = new ToolConfiguration();
final Container container = containerManager.createRootFolder(group, NAME, ROOT_NAME, TYPE_ROOT);
@@ -66,16 +81,11 @@
return group;
}
- public void onCreateContainer(final Container container, final Container parent, final String typeId) {
- checkTypeId(parent.getTypeId(), typeId);
- container.setTypeId(typeId);
+ public void onCreateContainer(final Container container, final Container parent) {
}
public void onCreateContent(final Content content, final Container parent) {
- if (parent.getTypeId().equals(TYPE_ROOM)) {
- throw new RuntimeException();
- }
- content.setTypeId(TYPE_CHAT);
+
}
@Inject
@@ -83,11 +93,7 @@
registry.register(this);
}
- public ServerToolTarget getTarget() {
- return ServerToolTarget.forGroups;
- }
-
- private void checkTypeId(final String parentTypeId, final String typeId) {
+ private void checkContainerTypeId(final String parentTypeId, final String typeId) {
if (typeId.equals(TYPE_ROOM)) {
if (!parentTypeId.equals(TYPE_ROOT)) {
throw new ContainerNotPermittedException();
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -119,25 +119,15 @@
i18n.t("New gallery"));
final ActionToolbarMenuAndItemDescriptor<StateToken> addWiki = createFolderAction(TYPE_WIKI,
"images/nav/wiki_add.png", i18n.t("New wiki"), i18n.t("Folder"), i18n.t("New"), i18n.t("wiki"));
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addBlog = createFolderAction(TYPE_BLOG,
+ "images/nav/blog_add.png", i18n.t("New blog"), i18n.t("Folder"), i18n.t("New"), i18n.t("New blog"));
- final ActionToolbarMenuAndItemDescriptor<StateToken> addDoc = new ActionToolbarMenuAndItemDescriptor<StateToken>(
- AccessRolDTO.Editor, ActionToolbarPosition.topbar, new Listener<StateToken>() {
- public void onEvent(final StateToken token) {
- Site.showProgressProcessing();
- contentServiceProvider.get().addContent(session.getUserHash(),
- session.getCurrentState().getStateToken(), i18n.t("New document"),
- new AsyncCallbackSimple<StateContentDTO>() {
- public void onSuccess(final StateContentDTO state) {
- contextNavigator.setEditOnNextStateChange(true);
- stateManager.setRetrievedState(state);
- }
- });
- }
- });
- addDoc.setTextDescription(i18n.t("New document"));
- addDoc.setParentMenuTitle(i18n.t("Folder"));
- addDoc.setParentSubMenuTitle(i18n.t("New"));
- addDoc.setIconUrl("images/nav/page_add.png");
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addDoc = createDocAction("images/nav/page_add.png",
+ i18n.t("New document"), TYPE_DOCUMENT);
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addWikiPage = createDocAction(
+ "images/nav/wikipage_add.png", i18n.t("New wikipage"), TYPE_WIKIPAGE);
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addPost = createDocAction("images/nav/post_add.png",
+ i18n.t("New post"), TYPE_POST);
final ActionToolbarMenuAndItemDescriptor<StateToken> delContainer = new ActionToolbarMenuAndItemDescriptor<StateToken>(
AccessRolDTO.Administrator, ActionToolbarPosition.topbar, new Listener<StateToken>() {
@@ -347,7 +337,7 @@
public void onEvent(final String html) {
Site.showProgressSaving();
contentServiceProvider.get().save(session.getUserHash(), stateToken, html,
- new AsyncCallback<Integer>() {
+ new AsyncCallback<Object>() {
public void onFailure(final Throwable caught) {
Site.hideProgress();
try {
@@ -361,9 +351,8 @@
}
}
- public void onSuccess(final Integer newVersion) {
+ public void onSuccess(Object param) {
Site.hideProgress();
- session.getContentState().setVersion(newVersion);
session.getContentState().setContent(html);
editor.onSaved();
}
@@ -398,9 +387,12 @@
contentActionRegistry.addAction(setSubmittedForPublishStatus, contentsModerated);
contentActionRegistry.addAction(setInTheDustBinStatus, contentsModerated);
contextActionRegistry.addAction(addDoc, TYPE_ROOT, TYPE_FOLDER);
+ contextActionRegistry.addAction(addPost, TYPE_BLOG);
+ contextActionRegistry.addAction(addWikiPage, TYPE_WIKI);
contextActionRegistry.addAction(addFolder, TYPE_ROOT, TYPE_FOLDER);
+ contextActionRegistry.addAction(addBlog, TYPE_ROOT);
+ contextActionRegistry.addAction(addWiki, TYPE_ROOT);
contextActionRegistry.addAction(addGallery, TYPE_ROOT);
- contextActionRegistry.addAction(addWiki, TYPE_ROOT);
contextActionRegistry.addAction(go, all);
contentActionRegistry.addAction(renameCtn, contents);
contextActionRegistry.addAction(renameCtx, containersNoRoot);
@@ -420,6 +412,29 @@
TYPE_WIKI, TYPE_WIKIPAGE);
}
+ private ActionToolbarMenuAndItemDescriptor<StateToken> createDocAction(String iconUrl, final String description,
+ final String typeId) {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addDoc = new ActionToolbarMenuAndItemDescriptor<StateToken>(
+ AccessRolDTO.Editor, ActionToolbarPosition.topbar, new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ Site.showProgressProcessing();
+ contentServiceProvider.get().addContent(session.getUserHash(),
+ session.getCurrentState().getStateToken(), description, typeId,
+ new AsyncCallbackSimple<StateContentDTO>() {
+ public void onSuccess(final StateContentDTO state) {
+ contextNavigator.setEditOnNextStateChange(true);
+ stateManager.setRetrievedState(state);
+ }
+ });
+ }
+ });
+ addDoc.setTextDescription(description);
+ addDoc.setParentMenuTitle(i18n.t("Folder"));
+ addDoc.setParentSubMenuTitle(i18n.t("New"));
+ addDoc.setIconUrl(iconUrl);
+ return addDoc;
+ }
+
private ActionToolbarMenuAndItemDescriptor<StateToken> createFolderAction(final String contentTypeId,
final String iconUrl, final String textDescription, final String parentMenuTitle,
final String parentMenuSubtitle, final String defaultName) {
@@ -479,6 +494,7 @@
final AsyncCallbackSimple<Object> callback = new AsyncCallbackSimple<Object>() {
public void onSuccess(final Object result) {
session.getContentState().setStatus(status);
+ contextNavigator.setItemStatus(stateToken, status);
}
};
if (status.equals(ContentStatusDTO.publishedOnline) || status.equals(ContentStatusDTO.rejected)) {
Modified: trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -20,13 +20,16 @@
package org.ourproject.kune.docs.server;
import org.ourproject.kune.platf.client.errors.ContainerNotPermittedException;
+import org.ourproject.kune.platf.client.errors.ContentNotPermittedException;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.server.content.ContainerManager;
import org.ourproject.kune.platf.server.content.ContentManager;
+import org.ourproject.kune.platf.server.domain.AccessLists;
import org.ourproject.kune.platf.server.domain.Container;
import org.ourproject.kune.platf.server.domain.Content;
import org.ourproject.kune.platf.server.domain.ContentStatus;
import org.ourproject.kune.platf.server.domain.Group;
+import org.ourproject.kune.platf.server.domain.GroupListMode;
import org.ourproject.kune.platf.server.domain.ToolConfiguration;
import org.ourproject.kune.platf.server.domain.User;
import org.ourproject.kune.platf.server.manager.ToolConfigurationManager;
@@ -64,6 +67,14 @@
this.i18n = translationService;
}
+ public void checkTypesBeforeContainerCreation(String parentTypeId, String typeId) {
+ checkContainerTypeId(parentTypeId, typeId);
+ }
+
+ public void checkTypesBeforeContentCreation(String parentTypeId, String typeId) {
+ checkContentTypeId(parentTypeId, typeId);
+ }
+
public String getName() {
return NAME;
}
@@ -83,7 +94,8 @@
group.setToolConfig(NAME, config);
configurationManager.persist(config);
final String longName = group.getLongName();
- final Content descriptor = contentManager.createContent(i18n.t("About [%s]", longName), "", user, container);
+ final Content descriptor = contentManager.createContent(i18n.t("About [%s]", longName), "", user, container,
+ DocumentServerTool.TYPE_DOCUMENT);
descriptor.addAuthor(user);
descriptor.setLanguage(user.getLanguage());
descriptor.setTypeId(TYPE_DOCUMENT);
@@ -92,13 +104,20 @@
return group;
}
- public void onCreateContainer(final Container container, final Container parent, final String typeId) {
- checkTypeId(parent.getTypeId(), typeId);
+ public void onCreateContainer(final Container container, final Container parent) {
+ String typeId = container.getTypeId();
container.setTypeId(typeId);
+ if (typeId.equals(TYPE_WIKI)) {
+ AccessLists wikiAcl = new AccessLists();
+ wikiAcl.getAdmins().setMode(GroupListMode.NORMAL);
+ wikiAcl.getAdmins().add(container.getOwner());
+ wikiAcl.getEditors().setMode(GroupListMode.EVERYONE);
+ wikiAcl.getViewers().setMode(GroupListMode.EVERYONE);
+ container.setAccessLists(wikiAcl);
+ }
}
public void onCreateContent(final Content content, final Container parent) {
- content.setTypeId(TYPE_DOCUMENT);
}
@Inject
@@ -106,17 +125,39 @@
registry.register(this);
}
- private void checkTypeId(final String parentTypeId, final String typeId) {
- if (typeId.equals(TYPE_FOLDER) || typeId.equals(TYPE_GALLERY) || typeId.equals(TYPE_WIKI)) {
+ void checkContainerTypeId(final String parentTypeId, final String typeId) {
+ if (typeId.equals(TYPE_FOLDER) || typeId.equals(TYPE_GALLERY) || typeId.equals(TYPE_WIKI)
+ || typeId.equals(TYPE_BLOG)) {
// ok valid container
- if (typeId.equals(TYPE_GALLERY) && !parentTypeId.equals(TYPE_ROOT)) {
+ if ((typeId.equals(TYPE_FOLDER) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))
+ || (typeId.equals(TYPE_GALLERY) && (parentTypeId.equals(TYPE_ROOT)))
+ || (typeId.equals(TYPE_WIKI) && parentTypeId.equals(TYPE_ROOT))
+ || (typeId.equals(TYPE_BLOG) && parentTypeId.equals(TYPE_ROOT))) {
+ // ok
+ } else {
throw new ContainerNotPermittedException();
}
- if (typeId.equals(TYPE_WIKI) && !parentTypeId.equals(TYPE_ROOT)) {
- throw new ContainerNotPermittedException();
- }
} else {
throw new ContainerNotPermittedException();
}
}
+
+ void checkContentTypeId(final String parentTypeId, final String typeId) {
+ if (typeId.equals(TYPE_DOCUMENT) || typeId.equals(TYPE_WIKIPAGE) || typeId.equals(TYPE_UPLOADEDFILE)
+ || typeId.equals(TYPE_POST)) {
+ // ok valid container
+ if ((typeId.equals(TYPE_DOCUMENT) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))
+ || (typeId.equals(TYPE_UPLOADEDFILE) && (parentTypeId.equals(TYPE_ROOT)
+ || parentTypeId.equals(TYPE_FOLDER) || parentTypeId.equals(TYPE_GALLERY)))
+ || (typeId.equals(TYPE_WIKIPAGE) && parentTypeId.equals(TYPE_WIKI))
+ || (typeId.equals(TYPE_POST) && parentTypeId.equals(TYPE_BLOG))) {
+ // ok
+ } else {
+ throw new ContentNotPermittedException();
+ }
+
+ } else {
+ throw new ContentNotPermittedException();
+ }
+ }
}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/errors/ContentNotPermittedException.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/errors/ContentNotPermittedException.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/errors/ContentNotPermittedException.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -0,0 +1,24 @@
+/*
+ *
+ * Copyright (C) 2007-2008 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 org.ourproject.kune.platf.client.errors;
+
+public class ContentNotPermittedException extends DefaultException {
+ private static final long serialVersionUID = 1L;
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -44,7 +44,7 @@
CommentDTO addComment(String userHash, StateToken token, String commentText) throws DefaultException;
- StateContentDTO addContent(String user, StateToken parentToken, String name) throws DefaultException;
+ StateContentDTO addContent(String user, StateToken parentToken, String name, String typeId) throws DefaultException;
StateContainerDTO addFolder(String hash, StateToken parentToken, String typeId, String title)
throws DefaultException;
@@ -67,7 +67,7 @@
String renameContent(String userHash, StateToken token, String newName) throws DefaultException;
- Integer save(String user, StateToken token, String content) throws DefaultException;
+ void save(String user, StateToken token, String content) throws DefaultException;
ContentSimpleDTO setAsDefaultContent(String userHash, StateToken token);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -43,7 +43,8 @@
void addComment(String userHash, StateToken token, String commentText, AsyncCallback<CommentDTO> asyncCallback);
- void addContent(String user, StateToken parentToken, String name, AsyncCallback<StateContentDTO> callback);
+ void addContent(String user, StateToken parentToken, String name, String typeId,
+ AsyncCallback<StateContentDTO> callback);
void addFolder(String hash, StateToken parentToken, String title, String typeId,
AsyncCallback<StateContainerDTO> callback);
@@ -66,7 +67,7 @@
void renameContent(String userHash, StateToken token, String newName, AsyncCallback<String> asyncCallback);
- void save(String user, StateToken token, String content, AsyncCallback<Integer> asyncCallback);
+ void save(String user, StateToken token, String content, AsyncCallback<?> asyncCallback);
void setAsDefaultContent(String userHash, StateToken token, AsyncCallback<ContentSimpleDTO> asyncCallback);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -24,6 +24,7 @@
import org.ourproject.kune.platf.client.errors.AlreadyUserMemberException;
import org.ourproject.kune.platf.client.errors.ContainerNotPermittedException;
import org.ourproject.kune.platf.client.errors.ContentNotFoundException;
+import org.ourproject.kune.platf.client.errors.ContentNotPermittedException;
import org.ourproject.kune.platf.client.errors.GroupNotFoundException;
import org.ourproject.kune.platf.client.errors.LastAdminInGroupException;
import org.ourproject.kune.platf.client.errors.SessionExpiredException;
@@ -97,6 +98,10 @@
logException(e);
Site.error(i18n.t("Content not found"));
stateManagerProvider.get().gotoToken("");
+ } catch (final ContentNotPermittedException e) {
+ logException(e);
+ Site.error(i18n.t("Action not permitted in this location"));
+ stateManagerProvider.get().gotoToken("");
} catch (final ContainerNotPermittedException e) {
logException(e);
Site.error(i18n.t("Action not permitted in this location"));
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManager.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManager.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -27,7 +27,7 @@
public interface ContainerManager {
- Container createFolder(Group group, Container parent, String name, I18nLanguage language);
+ Container createFolder(Group group, Container parent, String name, I18nLanguage language, String typeId);
Container createRootFolder(Group group, String toolName, String name, String type);
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -20,7 +20,6 @@
package org.ourproject.kune.platf.server.content;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
import javax.persistence.EntityManager;
@@ -49,20 +48,19 @@
}
public Container createFolder(final Group group, final Container parent, final String name,
- final I18nLanguage language) {
+ final I18nLanguage language, String typeId) {
final List<Container> parentAbsolutePath = parent.getAbsolutePath();
final List<Container> childAbsolutePath = new ArrayList<Container>();
- for (final Iterator<Container> iterator = parentAbsolutePath.iterator(); iterator.hasNext();) {
- final Container parentRef = iterator.next();
+ for (Container parentRef : parentAbsolutePath) {
childAbsolutePath.add(parentRef);
}
final Container child = new Container(name, group, parent.getToolName());
childAbsolutePath.add(child);
child.setLanguage(language);
child.setAbsolutePath(childAbsolutePath);
+ child.setTypeId(typeId);
parent.addChild(child);
- // child.setParent(parent);
persist(child);
return child;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManager.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManager.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -34,7 +34,7 @@
void addAuthor(User user, Long contentId, String authorShortName) throws DefaultException;
- Content createContent(String title, String body, User author, Container container);
+ Content createContent(String title, String body, User author, Container container, String typeId);
void delContent(User user, Long contentId) throws DefaultException;
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -19,6 +19,8 @@
*/
package org.ourproject.kune.platf.server.content;
+import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_WIKIPAGE;
+
import java.util.ArrayList;
import java.util.Date;
@@ -77,12 +79,16 @@
content.addAuthor(author);
}
- public Content createContent(final String title, final String body, final User author, final Container container) {
+ public Content createContent(final String title, final String body, final User author, final Container container,
+ String typeId) {
final Content newContent = new Content();
newContent.addAuthor(author);
newContent.setLanguage(author.getLanguage());
- // FIXME: remove this when UI take publishing into account
- newContent.setPublishedOn(new Date());
+ newContent.setTypeId(typeId);
+ if (typeId.equals(TYPE_WIKIPAGE)) {
+ newContent.setStatus(ContentStatus.publishedOnline);
+ newContent.setPublishedOn(new Date());
+ }
container.addContent(newContent);
newContent.setContainer(container);
final Revision revision = new Revision(newContent);
@@ -188,6 +194,13 @@
public void setStatus(final Long contentId, final ContentStatus status) {
final Content content = finder.getContent(contentId);
content.setStatus(status);
+ switch (status) {
+ case publishedOnline:
+ content.setPublishedOn(new Date());
+ break;
+ default:
+ break;
+ }
}
public void setTags(final User user, final Long contentId, final String tags) throws DefaultException {
@@ -208,5 +221,4 @@
}
content.setTags(tagList);
}
-
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/content/CreationService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/content/CreationService.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/content/CreationService.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -27,7 +27,7 @@
public interface CreationService {
- Content createContent(String title, String body, User user, Container container);
+ Content createContent(String title, String body, User user, Container container, String typeId);
Container createFolder(Group group, Long parentFolderId, String name, I18nLanguage language, String contentTypeId);
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/content/CreationServiceDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/content/CreationServiceDefault.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/content/CreationServiceDefault.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -43,9 +43,11 @@
this.tools = toolRegistry;
}
- public Content createContent(final String title, final String body, final User user, final Container container) {
+ public Content createContent(final String title, final String body, final User user, final Container container,
+ final String typeId) {
final String toolName = container.getToolName();
- final Content content = contentManager.createContent(title, body, user, container);
+ tools.get(toolName).checkTypesBeforeContentCreation(container.getTypeId(), typeId);
+ final Content content = contentManager.createContent(title, body, user, container, typeId);
tools.get(toolName).onCreateContent(content, container);
return content;
}
@@ -54,8 +56,9 @@
final I18nLanguage language, final String typeId) {
final Container parent = containerManager.find(parentFolderId);
final String toolName = parent.getToolName();
- final Container child = containerManager.createFolder(group, parent, name, language);
- tools.get(toolName).onCreateContainer(child, parent, typeId);
+ tools.get(toolName).checkTypesBeforeContainerCreation(parent.getTypeId(), typeId);
+ final Container child = containerManager.createFolder(group, parent, name, language, typeId);
+ tools.get(toolName).onCreateContainer(child, parent);
return child;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -89,6 +89,9 @@
@OneToMany(cascade = CascadeType.ALL)
private List<ContainerTranslation> containerTranslations;
+ @OneToOne(cascade = CascadeType.ALL)
+ private AccessLists accessLists;
+
public Container() {
this(null, null, null);
}
@@ -120,8 +123,7 @@
@Transient
public AccessLists getAccessLists() {
- // TODO like in Content, do store specific accesslist
- return getOwner().getAccessLists();
+ return hasAccessList() ? accessLists : isLeaf() ? getParent().getAccessLists() : getOwner().getAccessLists();
}
public List<ContainerTranslation> getAliases() {
@@ -183,6 +185,11 @@
}
@Transient
+ public boolean hasAccessList() {
+ return accessLists != null;
+ }
+
+ @Transient
public boolean isLeaf() {
return childs.size() == 0 && contents.size() == 0;
}
@@ -196,6 +203,10 @@
this.absolutePath = absolutePath;
}
+ public void setAccessLists(AccessLists accessLists) {
+ this.accessLists = accessLists;
+ }
+
public void setAliases(final List<ContainerTranslation> containerTranslations) {
this.containerTranslations = containerTranslations;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -87,7 +87,7 @@
@Basic(optional = true)
private Date deletedOn;
- @Basic(optional = false)
+ @Basic(optional = true)
private Date publishedOn;
private String typeId;
@@ -264,6 +264,7 @@
return version;
}
+ @Transient
public boolean hasAccessList() {
return accessLists != null;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -127,8 +127,7 @@
user, AccessRol.Editor);
final String preview = "Preview of this file (in development)";
final Content content = contentManager.createContent(FileUtils.getFileNameWithoutExtension(file.getName(),
- extension), preview, user, container);
- content.setTypeId(DocumentServerTool.TYPE_UPLOADEDFILE);
+ extension), preview, user, container, DocumentServerTool.TYPE_UPLOADEDFILE);
content.setMimeType(basicMimeType);
content.setFilename(file.getName());
return content;
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -154,14 +154,14 @@
@Authenticated
@Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor)
@Transactional(type = TransactionType.READ_WRITE)
- public StateContentDTO addContent(final String userHash, final StateToken parentToken, final String title)
- throws DefaultException {
+ public StateContentDTO addContent(final String userHash, final StateToken parentToken, final String title,
+ final String typeId) throws DefaultException {
final Group group = groupManager.findByShortName(parentToken.getGroup());
final UserSession userSession = getUserSession();
final User user = userSession.getUser();
final Container container = accessService.accessToContainer(ContentUtils.parseId(parentToken.getFolder()),
user, AccessRol.Editor);
- final Content addedContent = creationService.createContent(title, "", user, container);
+ final Content addedContent = creationService.createContent(title, "", user, container, typeId);
final StateContent state = stateService.create(user, addedContent);
return mapStateSiblings(state, user, group);
}
@@ -321,15 +321,13 @@
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Editor)
@Transactional(type = TransactionType.READ_WRITE)
- public Integer save(final String userHash, final StateToken token, final String textContent)
- throws DefaultException {
+ public void save(final String userHash, final StateToken token, final String textContent) throws DefaultException {
final Long contentId = ContentUtils.parseId(token.getDocument());
final UserSession userSession = getUserSession();
final User user = userSession.getUser();
final Content content = accessService.accessToContent(contentId, user, AccessRol.Editor);
- final Content saved = creationService.saveContent(user, content, textContent);
- return saved.getVersion();
+ creationService.saveContent(user, content, textContent);
}
@Authenticated
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -32,17 +32,21 @@
*/
public interface ServerTool {
+ void checkTypesBeforeContainerCreation(String parentTypeId, String typeId);
+
+ void checkTypesBeforeContentCreation(String parentTypeId, String typeId);
+
String getName();
String getRootName();
+ ServerToolTarget getTarget();
+
Group initGroup(User user, Group group);
- void onCreateContainer(Container container, Container parent, String typeId);
+ void onCreateContainer(Container container, Container parent);
void onCreateContent(Content content, Container parent);
void register(ServerToolRegistry registry);
-
- ServerToolTarget getTarget();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigator.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigator.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigator.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -20,6 +20,7 @@
package org.ourproject.kune.workspace.client.ctxnav;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
import org.ourproject.kune.platf.client.dto.StateContainerDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
@@ -39,6 +40,8 @@
void setEditOnNextStateChange(boolean edit);
+ void setItemStatus(StateToken stateToken, ContentStatusDTO status);
+
void setItemText(StateToken stateToken, String name);
void setState(StateContainerDTO state, boolean selectItem);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -22,6 +22,7 @@
import org.ourproject.kune.platf.client.actions.ActionItem;
import org.ourproject.kune.platf.client.actions.ActionManager;
import org.ourproject.kune.platf.client.actions.MenuItemsContainer;
+import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.workspace.client.site.Site;
@@ -72,7 +73,8 @@
public void addItem(final ContextNavigatorItem item) {
final String nodeId = item.getId();
- if (treePanel.getNodeById(nodeId) == null) {
+ TreeNode node = treePanel.getNodeById(nodeId);
+ if (node == null) {
final TreeNode child = new TreeNode(item.getText());
child.setId(nodeId);
final String icon = item.getIconUrl();
@@ -124,26 +126,14 @@
}
});
parent.appendChild(child);
- switch (item.getContentStatus()) {
- case publishedOnline:
- child.setCls("k-textnormal");
- break;
- case inTheDustbin:
- case rejected:
- child.setCls("k-textlinethrough");
- break;
- case editingInProgress:
- case submittedForEvaluation:
- child.setCls("k-textunderline");
- break;
- }
+ ContentStatusDTO status = item.getContentStatus();
+ setNodeStatus(child, status);
} else {
Log.error("Error building file tree, parent folder not found");
}
} else {
// the node already created
}
-
}
public void clear() {
@@ -191,6 +181,10 @@
this.fireOnTextChange = fireOnTextChange;
}
+ public void setItemStatus(final String id, ContentStatusDTO status) {
+ setNodeStatus(getNode(id), status);
+ }
+
public void setItemText(final String genId, final String text) {
final TreeNode node = getNode(genId);
node.setText(text);
@@ -296,4 +290,20 @@
return node.getAttribute("href").substring(1);
}
+ private void setNodeStatus(final TreeNode node, ContentStatusDTO status) {
+ switch (status) {
+ case publishedOnline:
+ node.setCls("k-textnormal");
+ break;
+ case inTheDustbin:
+ case rejected:
+ node.setCls("k-textlinethrough");
+ break;
+ case editingInProgress:
+ case submittedForEvaluation:
+ node.setCls("k-textunderline");
+ break;
+ }
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -184,6 +184,10 @@
editOnNextStateChange = edit;
}
+ public void setItemStatus(final StateToken stateToken, ContentStatusDTO status) {
+ view.setItemStatus(genId(stateToken), status);
+ }
+
public void setItemText(final StateToken stateToken, final String name) {
view.setItemText(genId(stateToken), name);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorView.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorView.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -20,6 +20,7 @@
package org.ourproject.kune.workspace.client.ctxnav;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
public interface ContextNavigatorView extends View {
@@ -38,6 +39,8 @@
void setFireOnTextChange(boolean fire);
+ void setItemStatus(String id, ContentStatusDTO status);
+
void setItemText(String id, String text);
void setRootItem(String id, String text, StateToken stateToken);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePresenter.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePresenter.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -154,8 +154,13 @@
private void setState(final StateContentDTO state) {
setContentTitle(state.getTitle(), state.getContentRights().isEditable());
- setContentDateVisible(true);
- setContentDate(state.getPublishedOn());
+ Date publishedOn = state.getPublishedOn();
+ if (publishedOn != null) {
+ setContentDateVisible(true);
+ setContentDate(publishedOn);
+ } else {
+ setContentDateVisible(false);
+ }
final String contentTypeIcon = iconsRegistry.getContentTypeIcon(state.getTypeId(), state.getMimeType());
setIcon(contentTypeIcon);
view.setContentTitleVisible(true);
Added: trunk/src/test/java/org/ourproject/kune/docs/server/DocumentServerToolTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/docs/server/DocumentServerToolTest.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/test/java/org/ourproject/kune/docs/server/DocumentServerToolTest.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -0,0 +1,189 @@
+package org.ourproject.kune.docs.server;
+
+import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_BLOG;
+import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_DOCUMENT;
+import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_FOLDER;
+import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_GALLERY;
+import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_POST;
+import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_ROOT;
+import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_UPLOADEDFILE;
+import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_WIKI;
+import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_WIKIPAGE;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.ourproject.kune.platf.client.errors.ContainerNotPermittedException;
+import org.ourproject.kune.platf.client.errors.ContentNotPermittedException;
+
+public class DocumentServerToolTest { // extends PersistenceTest {
+
+ private DocumentServerTool dcServerTool;
+
+ @Before
+ public void before() {
+ dcServerTool = new DocumentServerTool(null, null, null, null);
+ }
+
+ @Test
+ public void testCreateContainerInCorrectContainer() {
+ dcServerTool.checkContainerTypeId(TYPE_ROOT, TYPE_FOLDER);
+ dcServerTool.checkContainerTypeId(TYPE_FOLDER, TYPE_FOLDER);
+ dcServerTool.checkContainerTypeId(TYPE_ROOT, TYPE_WIKI);
+ dcServerTool.checkContainerTypeId(TYPE_ROOT, TYPE_BLOG);
+ dcServerTool.checkContainerTypeId(TYPE_ROOT, TYPE_GALLERY);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer1() {
+ dcServerTool.checkContainerTypeId(TYPE_FOLDER, TYPE_WIKI);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer10() {
+ // At the moment, not permitted (create a gallery_folder)
+ dcServerTool.checkContainerTypeId(TYPE_GALLERY, TYPE_FOLDER);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer11() {
+ // At the moment, not permitted (create a wiki_folder)
+ dcServerTool.checkContainerTypeId(TYPE_WIKI, TYPE_FOLDER);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer12() {
+ dcServerTool.checkContainerTypeId(TYPE_BLOG, TYPE_FOLDER);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer13() {
+ dcServerTool.checkContainerTypeId(TYPE_GALLERY, TYPE_WIKI);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer14() {
+ dcServerTool.checkContainerTypeId(TYPE_WIKI, TYPE_WIKI);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer15() {
+ dcServerTool.checkContainerTypeId(TYPE_GALLERY, TYPE_GALLERY);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer2() {
+ dcServerTool.checkContainerTypeId(TYPE_BLOG, TYPE_WIKI);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer3() {
+ dcServerTool.checkContainerTypeId(TYPE_FOLDER, TYPE_WIKI);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer4() {
+ dcServerTool.checkContainerTypeId(TYPE_BLOG, TYPE_GALLERY);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer5() {
+ dcServerTool.checkContainerTypeId(TYPE_FOLDER, TYPE_GALLERY);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer6() {
+ dcServerTool.checkContainerTypeId(TYPE_WIKI, TYPE_GALLERY);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer7() {
+ dcServerTool.checkContainerTypeId(TYPE_BLOG, TYPE_BLOG);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer8() {
+ dcServerTool.checkContainerTypeId(TYPE_FOLDER, TYPE_BLOG);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer9() {
+ dcServerTool.checkContainerTypeId(TYPE_GALLERY, TYPE_BLOG);
+ }
+
+ @Test
+ public void testCreateContentInCorrectContainer() {
+ dcServerTool.checkContentTypeId(TYPE_BLOG, TYPE_POST);
+ dcServerTool.checkContentTypeId(TYPE_WIKI, TYPE_WIKIPAGE);
+ dcServerTool.checkContentTypeId(TYPE_ROOT, TYPE_DOCUMENT);
+ dcServerTool.checkContentTypeId(TYPE_FOLDER, TYPE_DOCUMENT);
+ dcServerTool.checkContentTypeId(TYPE_ROOT, TYPE_UPLOADEDFILE);
+ dcServerTool.checkContentTypeId(TYPE_FOLDER, TYPE_UPLOADEDFILE);
+ dcServerTool.checkContentTypeId(TYPE_GALLERY, TYPE_UPLOADEDFILE);
+ }
+
+ @Test(expected = ContentNotPermittedException.class)
+ public void testCreateContentInIncorrectContainer1() {
+ dcServerTool.checkContentTypeId(TYPE_ROOT, TYPE_POST);
+ }
+
+ @Test(expected = ContentNotPermittedException.class)
+ public void testCreateContentInIncorrectContainer10() {
+ dcServerTool.checkContentTypeId(TYPE_ROOT, TYPE_WIKIPAGE);
+ }
+
+ @Test(expected = ContentNotPermittedException.class)
+ public void testCreateContentInIncorrectContainer11() {
+ dcServerTool.checkContentTypeId(TYPE_FOLDER, TYPE_WIKIPAGE);
+ }
+
+ @Test(expected = ContentNotPermittedException.class)
+ public void testCreateContentInIncorrectContainer12() {
+ dcServerTool.checkContentTypeId(TYPE_GALLERY, TYPE_WIKIPAGE);
+ }
+
+ @Test(expected = ContentNotPermittedException.class)
+ public void testCreateContentInIncorrectContainer13() {
+ dcServerTool.checkContentTypeId(TYPE_BLOG, TYPE_WIKIPAGE);
+ }
+
+ @Test(expected = ContentNotPermittedException.class)
+ public void testCreateContentInIncorrectContainer2() {
+ dcServerTool.checkContentTypeId(TYPE_FOLDER, TYPE_POST);
+ }
+
+ @Test(expected = ContentNotPermittedException.class)
+ public void testCreateContentInIncorrectContainer3() {
+ dcServerTool.checkContentTypeId(TYPE_GALLERY, TYPE_POST);
+ }
+
+ @Test(expected = ContentNotPermittedException.class)
+ public void testCreateContentInIncorrectContainer4() {
+ dcServerTool.checkContentTypeId(TYPE_WIKI, TYPE_POST);
+ }
+
+ @Test(expected = ContentNotPermittedException.class)
+ public void testCreateContentInIncorrectContainer5() {
+ dcServerTool.checkContentTypeId(TYPE_GALLERY, TYPE_DOCUMENT);
+ }
+
+ @Test(expected = ContentNotPermittedException.class)
+ public void testCreateContentInIncorrectContainer6() {
+ dcServerTool.checkContentTypeId(TYPE_WIKI, TYPE_DOCUMENT);
+ }
+
+ @Test(expected = ContentNotPermittedException.class)
+ public void testCreateContentInIncorrectContainer7() {
+ dcServerTool.checkContentTypeId(TYPE_BLOG, TYPE_DOCUMENT);
+ }
+
+ @Test(expected = ContentNotPermittedException.class)
+ public void testCreateContentInIncorrectContainer8() {
+ dcServerTool.checkContentTypeId(TYPE_BLOG, TYPE_UPLOADEDFILE);
+ }
+
+ @Test(expected = ContentNotPermittedException.class)
+ public void testCreateContentInIncorrectContainer9() {
+ dcServerTool.checkContentTypeId(TYPE_WIKI, TYPE_UPLOADEDFILE);
+ }
+
+}
\ No newline at end of file
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceAddTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceAddTest.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceAddTest.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -8,6 +8,7 @@
import org.junit.Before;
import org.junit.Test;
import org.ourproject.kune.docs.client.DocumentClientTool;
+import org.ourproject.kune.docs.server.DocumentServerTool;
import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
import org.ourproject.kune.platf.client.dto.ContainerDTO;
import org.ourproject.kune.platf.client.dto.ContainerSimpleDTO;
@@ -33,7 +34,8 @@
@Test(expected = UserMustBeLoggedException.class)
public void noLoggedInShouldThrowIllegalAccess() throws ContentNotFoundException, Exception {
defaultContent = getSiteDefaultContent();
- contentService.addContent(session.getHash(), defaultContent.getContainer().getStateToken(), "a name");
+ contentService.addContent(session.getHash(), defaultContent.getContainer().getStateToken(), "a name",
+ DocumentServerTool.TYPE_DOCUMENT);
}
@Test
@@ -47,7 +49,7 @@
final String title = "New Content Title";
final StateContentDTO added = contentService.addContent(session.getHash(),
- defaultContent.getContainer().getStateToken(), title);
+ defaultContent.getContainer().getStateToken(), title, DocumentServerTool.TYPE_DOCUMENT);
assertNotNull(added);
final List<ContentSimpleDTO> contents = added.getContainer().getContents();
assertEquals(title, added.getTitle());
@@ -72,8 +74,8 @@
defaultContent = getSiteDefaultContent();
final ContainerDTO parent = defaultContent.getContainer();
final String title = "folder name";
- final StateContainerDTO newState = contentService.addFolder(session.getHash(), parent.getStateToken(),
- title, DocumentClientTool.TYPE_FOLDER);
+ final StateContainerDTO newState = contentService.addFolder(session.getHash(), parent.getStateToken(), title,
+ DocumentClientTool.TYPE_FOLDER);
assertNotNull(newState);
assertNotNull(newState.getGroupMembers());
assertNotNull(newState.getParticipation());
@@ -96,8 +98,7 @@
defaultContent = getSiteDefaultContent();
final ContainerDTO parent = defaultContent.getContainer();
final String roomName = "testroom";
- final StateContainerDTO newState = contentService.addRoom(session.getHash(), parent.getStateToken(),
- roomName);
+ final StateContainerDTO newState = contentService.addRoom(session.getHash(), parent.getStateToken(), roomName);
assertNotNull(newState);
}
@@ -107,12 +108,12 @@
defaultContent = getSiteDefaultContent();
final ContainerDTO parent = defaultContent.getContainer();
final String title = "folder name";
- final StateContainerDTO newState = contentService.addFolder(session.getHash(), parent.getStateToken(),
- title, DocumentClientTool.TYPE_FOLDER);
+ final StateContainerDTO newState = contentService.addFolder(session.getHash(), parent.getStateToken(), title,
+ DocumentClientTool.TYPE_FOLDER);
assertNotNull(newState);
- final StateContainerDTO newState2 = contentService.addFolder(session.getHash(), parent.getStateToken(),
- title, DocumentClientTool.TYPE_FOLDER);
+ final StateContainerDTO newState2 = contentService.addFolder(session.getHash(), parent.getStateToken(), title,
+ DocumentClientTool.TYPE_FOLDER);
assertNotNull(newState2);
final ContainerDTO parentAgain = getSiteDefaultContent().getContainer();
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceSaveTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceSaveTest.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceSaveTest.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -23,8 +23,7 @@
public void testSaveAndRetrieve() throws Exception {
final String text = "Lorem ipsum dolor sit amet";
final int version = defaultContent.getVersion();
- final int versionRetrieved = contentService.save(getHash(), defaultContent.getStateToken(), text);
- assertEquals(version + 1, versionRetrieved);
+ contentService.save(getHash(), defaultContent.getStateToken(), text);
final StateContentDTO again = (StateContentDTO) contentService.getContent(getHash(),
defaultContent.getStateToken());
assertEquals(text, again.getContent());
@@ -36,10 +35,8 @@
@Test
public void testSaveAndRetrieveBig() throws Exception {
final String text = TestDomainHelper.createBigText();
- ;
final int version = defaultContent.getVersion();
- final int currentVersion = contentService.save(getHash(), defaultContent.getStateToken(), text);
- assertEquals(version + 1, currentVersion);
+ contentService.save(getHash(), defaultContent.getStateToken(), text);
final StateContentDTO again = (StateContentDTO) contentService.getContent(getHash(),
defaultContent.getStateToken());
assertEquals(version + 1, again.getVersion());
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -10,6 +10,7 @@
import org.junit.Ignore;
import org.junit.Test;
import org.ourproject.kune.docs.client.DocumentClientTool;
+import org.ourproject.kune.docs.server.DocumentServerTool;
import org.ourproject.kune.platf.client.dto.ContainerDTO;
import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.StateContainerDTO;
@@ -78,8 +79,8 @@
final String oldTitle = "some title";
String newTitle = "folder new name";
- final StateContainerDTO newState = contentService.addFolder(session.getHash(),
- defaultContent.getStateToken(), oldTitle, DocumentClientTool.TYPE_FOLDER);
+ final StateContainerDTO newState = contentService.addFolder(session.getHash(), defaultContent.getStateToken(),
+ oldTitle, DocumentClientTool.TYPE_FOLDER);
final ContainerDTO newFolder = newState.getContainer();
@@ -93,8 +94,7 @@
final StateToken newFolderToken = new StateToken(groupShortName, defaultContent.getStateToken().getTool(),
newFolder.getId().toString(), null);
- StateContainerDTO folderAgain = (StateContainerDTO) contentService.getContent(getHash(),
- newFolderToken);
+ StateContainerDTO folderAgain = (StateContainerDTO) contentService.getContent(getHash(), newFolderToken);
assertEquals(newTitle, folderAgain.getContainer().getName());
@@ -176,8 +176,8 @@
doLogin();
defaultContent = getSiteDefaultContent();
- final StateContainerDTO added = contentService.addContent(session.getHash(),
- defaultContent.getStateToken(), "New Content Title");
+ final StateContainerDTO added = contentService.addContent(session.getHash(), defaultContent.getStateToken(),
+ "New Content Title", DocumentServerTool.TYPE_DOCUMENT);
assertNotNull(added);
final ContentSimpleDTO newDefContent = contentService.setAsDefaultContent(session.getHash(),
Added: trunk/src/test/java/org/ourproject/kune/platf/server/content/ContentManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/content/ContentManagerDefaultTest.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/content/ContentManagerDefaultTest.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -0,0 +1,13 @@
+package org.ourproject.kune.platf.server.content;
+
+
+public class ContentManagerDefaultTest {// extends PersistenceTest {
+
+ ContentManagerDefault manager;
+
+ // @Before
+ public void before() {
+ manager = new ContentManagerDefault(null, null, null, null, null);
+ }
+
+}
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/ContentManagerTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/ContentManagerTest.java 2008-10-25 14:13:11 UTC (rev 928)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/ContentManagerTest.java 2008-10-25 14:13:41 UTC (rev 929)
@@ -8,6 +8,7 @@
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
+import org.ourproject.kune.docs.server.DocumentServerTool;
import org.ourproject.kune.platf.server.PersistenceTest;
import org.ourproject.kune.platf.server.content.ContentManager;
import org.ourproject.kune.platf.server.domain.BasicMimeType;
@@ -95,14 +96,18 @@
@Test
public void testUTF8Persist() {
final Container container = Mockito.mock(Container.class);
- final Content cnt = contentManager.createContent("汉语/漢語", "汉语/漢語", user, container);
+ Mockito.stub(container.getTypeId()).toReturn(DocumentServerTool.TYPE_FOLDER);
+ final Content cnt = contentManager.createContent("汉语/漢語", "汉语/漢語", user, container,
+ DocumentServerTool.TYPE_DOCUMENT);
final Content newCnt = contentManager.find(cnt.getId());
assertEquals("汉语/漢語", newCnt.getTitle());
}
private void createContentWithMime(final String mimetype) {
final Container container = Mockito.mock(Container.class);
- final Content cnt = contentManager.createContent("title", "body", user, container);
+ Mockito.stub(container.getTypeId()).toReturn(DocumentServerTool.TYPE_FOLDER);
+ final Content cnt = contentManager.createContent("title", "body", user, container,
+ DocumentServerTool.TYPE_UPLOADEDFILE);
cnt.setMimeType(new BasicMimeType(mimetype));
persist(cnt);
final Content newCnt = contentManager.find(cnt.getId());
1
0
25 Oct '08
Author: vjrj
Date: 2008-10-25 16:13:11 +0200 (Sat, 25 Oct 2008)
New Revision: 928
Added:
trunk/src/main/java/org/ourproject/kune/platf/public/images/nav/blog_add.png
trunk/src/main/java/org/ourproject/kune/platf/public/images/nav/post_add.png
Log:
New images (II)
Added: trunk/src/main/java/org/ourproject/kune/platf/public/images/nav/blog_add.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/public/images/nav/blog_add.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/org/ourproject/kune/platf/public/images/nav/post_add.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/public/images/nav/post_add.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
1
0