You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2016/04/28 17:16:04 UTC
[1/2] syncope git commit: [SYNCOPE-835] Type extensions working
Repository: syncope
Updated Branches:
refs/heads/master 32726184d -> eed24866e
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_ru.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_ru.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_ru.properties
index 72f0e33..58491a1 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_ru.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_ru.properties
@@ -64,3 +64,4 @@ any.propagation.tasks=\u0417\u0430\u0434\u0430\u0447\u0438 \u0432\u044b\u043f\u0
any.notification.tasks=\u0417\u0430\u0434\u0430\u0447\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0434\u043b\u044f ${type} ${key}
# notification.tasks=\u00d0\u0097\u00d0\u00b0\u00d0\u00b4\u00d0\u00b0\u00d1\u0087\u00d0\u00b8 \u00d0\u00be\u00d1\u0082\u00d0\u00bf\u00d1\u0080\u00d0\u00b0\u00d0\u00b2\u00d0\u00ba\u00d0\u00b8 \u00d1\u0083\u00d0\u00b2\u00d0\u00b5\u00d0\u00b4\u00d0\u00be\u00d0\u00bc\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b9 ${key}
notification.tasks=\u0417\u0430\u0434\u0430\u0447\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 ${key}
+typeExtensions=Type extensions for GROUP ${key}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.properties
new file mode 100644
index 0000000..e66ad6d
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+auxClasses=Auxiliary classes
+anyType=Type
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel_it.properties
new file mode 100644
index 0000000..3600848
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel_it.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+auxClasses=Classi ausiliari
+anyType=Tipo
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel_pt_BR.properties
new file mode 100644
index 0000000..dc42441
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel_pt_BR.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+auxClasses=Auxiliary Classes
+anyType=Type
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel_ru.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel_ru.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel_ru.properties
new file mode 100644
index 0000000..dc42441
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel_ru.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+auxClasses=Auxiliary Classes
+anyType=Type
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.html
index 88c1067..3068967 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.html
@@ -43,7 +43,7 @@ under the License.
<button type="button" wicket:id="button"></button>
</wicket:fragment>
<wicket:fragment wicket:id="inputs">
- <button wicket:id="submit"><wicket:message key="submit"/></button>
+ <button wicket:id="submit" class="btn btn-primary"><wicket:message key="submit"/></button>
</wicket:fragment>
</div>
</div>
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.html
index a90a790..b025ccd 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.html
@@ -43,6 +43,7 @@ under the License.
<span wicket:id="panelCreate">[plus]</span>
<span wicket:id="panelReset">[plus]</span>
<span wicket:id="panelEdit">[plus]</span>
+ <span wicket:id="panelTypeExtensions">[plus]</span>
<span wicket:id="panelHtmlEdit">[plus]</span>
<span wicket:id="panelTextEdit">[plus]</span>
<span wicket:id="panelLayoutEdit">[plus]</span>
@@ -121,6 +122,10 @@ under the License.
<a href="#" wicket:id="editLink" class="btn"><i id="actionLink" class="glyphicon glyphicon-pencil" alt="edit icon" title="Edit"></i></a>
</wicket:fragment>
+ <wicket:fragment wicket:id="fragmentTypeExtensions">
+ <a href="#" wicket:id="typeExtensionsLink" class="btn"><i id="actionLink" class="fa fa-expand" alt="typeExtensions icon" title="Type extensions"></i></a>
+ </wicket:fragment>
+
<wicket:fragment wicket:id="fragmentHtmlEdit">
<a href="#" wicket:id="htmlEditLink" class="btn"><i id="actionLink" class="fa fa-file-code-o" alt="html edit icon" title="HTML Edit"></i></a>
</wicket:fragment>
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/wizards/TypeExtensionWizardBuilder$Details.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/TypeExtensionWizardBuilder$Details.html b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/TypeExtensionWizardBuilder$Details.html
new file mode 100644
index 0000000..e1744e2
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/TypeExtensionWizardBuilder$Details.html
@@ -0,0 +1,47 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
+ <wicket:panel>
+ <div class="col-xs-12">
+ <div class="box">
+ <div class="box-header">
+ <h3 class="box-title">
+ <span wicket:id="anyType.label"/>
+ </h3>
+ </div>
+ <div class="box-body">
+ <span wicket:id="anyType.component"/>
+ </div>
+ </div>
+ </div>
+
+ <div class="col-xs-12">
+ <div class="box">
+ <div class="box-header">
+ <h3 class="box-title">
+ <span wicket:id="auxClasses.label"/>
+ </h3>
+ </div>
+ <div class="box-body">
+ <span wicket:id="auxClasses.palette"/>
+ </div>
+ </div>
+ </div>
+ </wicket:panel>
+</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses.html b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses.html
index ac3ba3c..851d51b 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses.html
@@ -17,53 +17,18 @@ specific language governing permissions and limitations
under the License.
-->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <head><title></title></head>
- <body>
- <wicket:panel>
- <span wicket:id="groups">[GROUPS]</span>
-
- <div class="col-xs-12">
- <div class="box">
- <div class="box-header">
- <h3 class="box-title">
- <wicket:message key="auxclasses.palette">AUX CLASSES</wicket:message>
- </h3>
- </div>
- <div class="box-body">
- <span wicket:id="auxClasses">[AUX]</span>
- </div>
+ <wicket:panel>
+ <div class="col-xs-12">
+ <div class="box">
+ <div class="box-header">
+ <h3 class="box-title">
+ <wicket:message key="auxClasses.palette">AUX CLASSES</wicket:message>
+ </h3>
</div>
- </div>
-
- <wicket:fragment wicket:id="groupsFragment">
- <div class="col-xs-12">
- <div class="box">
- <div class="box-header">
- <h3 class="box-title">
- <wicket:message key="groups.palette">[GROUPS]</wicket:message>
- </h3>
- </div>
- <div class="box-body">
- <span wicket:id="groups"/>
- </div>
- </div>
+ <div class="box-body">
+ <span wicket:id="auxClasses">[AUX CLASSES]</span>
</div>
-
- <div class="col-xs-12">
- <div class="box">
- <div class="box-header">
- <h3 class="box-title">
- <wicket:message key="dyngroups.palette">[DYNAMIC GROUPS]</wicket:message>
- </h3>
- </div>
- <div class="box-body">
- <span wicket:id="dyngroups">[DYNAMIC GROUPS]</span>
- </div>
- </div>
- </div>
- </wicket:fragment>
-
- <wicket:fragment wicket:id="emptyFragment"/>
- </wicket:panel>
- </body>
+ </div>
+ </div>
+ </wicket:panel>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses.properties
index fdfe92b..56c00af 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses.properties
@@ -14,6 +14,4 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-groups.palette=Groups
-auxclasses.palette=Profile extension by auxiliary classes
-dyngroups.palette=Dynamic groups
+auxClasses.palette=Auxiliary classes
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses_it.properties
index bd84c93..69fb846 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses_it.properties
@@ -14,6 +14,4 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-groups.palette=Gruppi
-auxclasses.palette=Estensione profilo attraverso classi ausiliarie
-dyngroups.palette=Gruppi dinamici
+auxClasses.palette=Classi ausiliarie
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses_pt_BR.properties
index 120c4d6..c91f75c 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses_pt_BR.properties
@@ -14,6 +14,4 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-groups.palette=Grupos
-auxclasses.palette=Perfil de extens\u00e3o atrav\u00e9s de classes auxiliares
-dyngroups.palette=Grupos din\u00e2micos
+auxClasses.palette=Classes auxiliares
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses_ru.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses_ru.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses_ru.properties
index 8949fec..7f39171 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses_ru.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/AuxClasses_ru.properties
@@ -15,9 +15,4 @@
# specific language governing permissions and limitations
# under the License.
#
-# groups.palette=Группы
-groups.palette=\u0413\u0440\u0443\u043f\u043f\u044b
-# auxclasses.palette=Расширение с помощью вспомогательных классов
-auxclasses.palette=\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432
-# dyngroups.palette=Динамические группы
-dyngroups.palette=\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b
+auxClasses.palette=\u0412\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups.html b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups.html
new file mode 100644
index 0000000..653799e
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups.html
@@ -0,0 +1,47 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
+ <wicket:panel>
+ <div class="col-xs-12">
+ <div class="box">
+ <div class="box-header">
+ <h3 class="box-title">
+ <wicket:message key="groups.palette">[GROUPS]</wicket:message>
+ </h3>
+ </div>
+ <div class="box-body">
+ <span wicket:id="groups"/>
+ </div>
+ </div>
+ </div>
+
+ <div class="col-xs-12">
+ <div class="box">
+ <div class="box-header">
+ <h3 class="box-title">
+ <wicket:message key="dyngroups.palette">[DYNAMIC GROUPS]</wicket:message>
+ </h3>
+ </div>
+ <div class="box-body">
+ <span wicket:id="dyngroups">[DYNAMIC GROUPS]</span>
+ </div>
+ </div>
+ </div>
+ </wicket:panel>
+</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups.properties
new file mode 100644
index 0000000..c1cf4c4
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+groups.palette=Groups
+dyngroups.palette=Dynamic groups
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups_it.properties
new file mode 100644
index 0000000..c345f38
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups_it.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+groups.palette=Gruppi
+dyngroups.palette=Gruppi dinamici
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups_pt_BR.properties
new file mode 100644
index 0000000..b4a0d34
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups_pt_BR.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+groups.palette=Grupos
+dyngroups.palette=Grupos din\u00e2micos
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups_ru.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups_ru.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups_ru.properties
new file mode 100644
index 0000000..5c696f3
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/Groups_ru.properties
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# groups.palette=\u00d0\u0093\u00d1\u0080\u00d1\u0083\u00d0\u00bf\u00d0\u00bf\u00d1\u008b
+groups.palette=\u0413\u0440\u0443\u043f\u043f\u044b
+# dyngroups.palette=\u00d0\u0094\u00d0\u00b8\u00d0\u00bd\u00d0\u00b0\u00d0\u00bc\u00d0\u00b8\u00d1\u0087\u00d0\u00b5\u00d1\u0081\u00d0\u00ba\u00d0\u00b8\u00d0\u00b5 \u00d0\u00b3\u00d1\u0080\u00d1\u0083\u00d0\u00bf\u00d0\u00bf\u00d1\u008b
+dyngroups.palette=\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_it.properties
index 4d4e1d7..67c2ddb 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_it.properties
@@ -14,7 +14,7 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-anyType=Oggetto
+anyType=Tipo oggetto
objectClass=Classe
__ACCOUNT__=ACCOUNT
__GROUP__=GROUP
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_pt_BR.properties
index 1c58a0b..2d43ac4 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_pt_BR.properties
@@ -14,7 +14,7 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-anyType=Objeto
+anyType=Object Type
objectClass=Classe
__ACCOUNT__=ACCOUNT
__GROUP__=GROUP
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/common/lib/src/main/java/org/apache/syncope/common/lib/AnyOperations.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/AnyOperations.java b/common/lib/src/main/java/org/apache/syncope/common/lib/AnyOperations.java
index 08bf3dc..39fbc63 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/AnyOperations.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/AnyOperations.java
@@ -334,6 +334,9 @@ public final class AnyOperations {
result.setUDynMembershipCond(updated.getUDynMembershipCond());
result.getADynMembershipConds().putAll(updated.getADynMembershipConds());
+ // 4. type extensions
+ result.getTypeExtensions().addAll(updated.getTypeExtensions());
+
return result;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPARealm.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPARealm.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPARealm.java
index 681ce8e..2a4212f 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPARealm.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPARealm.java
@@ -76,7 +76,7 @@ public class JPARealm extends AbstractGeneratedKeyEntity implements Realm {
@Column(name = "actionClassName")
@CollectionTable(name = "Realm_actionsClassNames",
joinColumns =
- @JoinColumn(name = "realm_key", referencedColumnName = "id"))
+ @JoinColumn(name = "realm_id", referencedColumnName = "id"))
private Set<String> actionsClassNames = new HashSet<>();
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER, mappedBy = "realm")
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPushTask.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPushTask.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPushTask.java
index 2f558ff..1afb4ee 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPushTask.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPushTask.java
@@ -47,7 +47,7 @@ public class JPAPushTask extends AbstractProvisioningTask implements PushTask {
@Column(name = "actionClassName")
@CollectionTable(name = "PushTask_actionsClassNames",
joinColumns =
- @JoinColumn(name = "pushTask_key", referencedColumnName = "id"))
+ @JoinColumn(name = "pushTask_id", referencedColumnName = "id"))
private Set<String> actionsClassNames = new HashSet<>();
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER, mappedBy = "pushTask")
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutesDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutesDirectoryPanel.java b/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutesDirectoryPanel.java
index 70040e8..719fd0b 100644
--- a/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutesDirectoryPanel.java
+++ b/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutesDirectoryPanel.java
@@ -72,7 +72,7 @@ public class CamelRoutesDirectoryPanel extends DirectoryPanel<
this.anyTypeKind = anyTypeKind;
setFooterVisibility(true);
- modal.addSumbitButton();
+ modal.addSubmitButton();
modal.size(Modal.Size.Large);
initResultTable();
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/fit/console-reference/src/test/resources/rebel.xml
----------------------------------------------------------------------
diff --git a/fit/console-reference/src/test/resources/rebel.xml b/fit/console-reference/src/test/resources/rebel.xml
index ca52ec1..9d5bc81 100644
--- a/fit/console-reference/src/test/resources/rebel.xml
+++ b/fit/console-reference/src/test/resources/rebel.xml
@@ -40,7 +40,7 @@ under the License.
</dir>
</link>
<link target="/">
- <dir name="${basedir}/../../ext/camel/client-console/target/classes/META-INF/resources">
+ <dir name="${basedir}/../../ext/camel/client-console/target/classes">
</dir>
</link>
</web>
[2/2] syncope git commit: [SYNCOPE-835] Type extensions working
Posted by il...@apache.org.
[SYNCOPE-835] Type extensions working
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/eed24866
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/eed24866
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/eed24866
Branch: refs/heads/master
Commit: eed24866ec55c8f73d91f21f2d6478cfbe808d09
Parents: 3272618
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Thu Apr 28 17:15:51 2016 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Thu Apr 28 17:15:51 2016 +0200
----------------------------------------------------------------------
.../approvals/ApprovalDirectoryPanel.java | 2 +-
.../client/console/approvals/ApprovalModal.java | 6 +-
.../client/console/commons/Constants.java | 2 +
.../console/layout/AnyObjectFormLayoutInfo.java | 10 +
.../console/layout/GroupFormLayoutInfo.java | 10 +-
.../console/layout/UserFormLayoutInfo.java | 10 +
.../MailTemplateDirectoryPanel.java | 4 +-
.../syncope/client/console/pages/Realms.java | 4 +-
.../console/panels/AnyObjectDirectoryPanel.java | 2 +-
.../client/console/panels/DirectoryPanel.java | 3 +-
.../console/panels/GroupDirectoryPanel.java | 29 ++-
.../client/console/panels/ModalPanel.java | 4 +-
.../client/console/panels/ParametersPanel.java | 2 +-
.../console/panels/RoleDirectoryPanel.java | 2 +-
.../console/panels/SecurityQuestionsPanel.java | 2 +-
.../panels/TypeExtensionDirectoryPanel.java | 207 +++++++++++++++++++
.../console/panels/TypesDirectoryPanel.java | 2 +-
.../console/panels/UserDirectoryPanel.java | 2 +-
.../console/panels/WorkflowTogglePanel.java | 4 +-
.../search/AnySelectionDirectoryPanel.java | 2 +-
.../tasks/ProvisioningTaskDirectoryPanel.java | 3 +-
.../syncope/client/console/tasks/PullTasks.java | 6 +-
.../console/tasks/SchedTaskDirectoryPanel.java | 5 -
.../console/tasks/TaskDirectoryPanel.java | 4 +-
.../console/topology/TopologyTogglePanel.java | 2 +-
.../html/repeater/data/table/ActionColumn.java | 6 -
.../bootstrap/buttons/PrimaryModalButton.java | 35 ----
.../markup/html/bootstrap/dialog/BaseModal.java | 11 +-
.../wicket/markup/html/form/ActionLink.java | 1 +
.../markup/html/form/ActionLinksPanel.java | 20 ++
.../markup/html/form/AjaxPalettePanel.java | 2 +-
.../client/console/widgets/AlertWidget.java | 2 +-
.../console/wizards/AjaxWizardBuilder.java | 2 +-
.../wizards/TypeExtensionWizardBuilder.java | 135 ++++++++++++
.../client/console/wizards/WizardMgtPanel.java | 2 +-
.../console/wizards/any/AnyWizardBuilder.java | 8 +
.../client/console/wizards/any/AuxClasses.java | 118 +----------
.../client/console/wizards/any/Groups.java | 127 ++++++++++++
.../console/panels/DirectoryPanel.properties | 1 +
.../console/panels/DirectoryPanel_it.properties | 1 +
.../panels/DirectoryPanel_pt_BR.properties | 1 +
.../console/panels/DirectoryPanel_ru.properties | 1 +
.../TypeExtensionDirectoryPanel.properties | 18 ++
.../TypeExtensionDirectoryPanel_it.properties | 18 ++
...TypeExtensionDirectoryPanel_pt_BR.properties | 18 ++
.../TypeExtensionDirectoryPanel_ru.properties | 18 ++
.../markup/html/bootstrap/dialog/BaseModal.html | 2 +-
.../markup/html/form/ActionLinksPanel.html | 5 +
.../TypeExtensionWizardBuilder$Details.html | 47 +++++
.../client/console/wizards/any/AuxClasses.html | 59 ++----
.../console/wizards/any/AuxClasses.properties | 4 +-
.../wizards/any/AuxClasses_it.properties | 4 +-
.../wizards/any/AuxClasses_pt_BR.properties | 4 +-
.../wizards/any/AuxClasses_ru.properties | 7 +-
.../client/console/wizards/any/Groups.html | 47 +++++
.../console/wizards/any/Groups.properties | 18 ++
.../console/wizards/any/Groups_it.properties | 18 ++
.../console/wizards/any/Groups_pt_BR.properties | 18 ++
.../console/wizards/any/Groups_ru.properties | 21 ++
.../ResourceProvisionPanel_it.properties | 2 +-
.../ResourceProvisionPanel_pt_BR.properties | 2 +-
.../syncope/common/lib/AnyOperations.java | 3 +
.../core/persistence/jpa/entity/JPARealm.java | 2 +-
.../jpa/entity/task/JPAPushTask.java | 2 +-
.../panels/CamelRoutesDirectoryPanel.java | 2 +-
.../src/test/resources/rebel.xml | 2 +-
66 files changed, 870 insertions(+), 273 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java
index b176205..1973cd7 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java
@@ -60,7 +60,7 @@ public class ApprovalDirectoryPanel
disableCheckBoxes();
setFooterVisibility(true);
- modal.addSumbitButton();
+ modal.addSubmitButton();
modal.size(Modal.Size.Large);
restClient = new UserWorkflowRestClient();
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java b/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java
index f5367cf..dc0d90b 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java
@@ -62,11 +62,13 @@ public class ApprovalModal extends Panel implements ModalPanel<WorkflowFormTO> {
public void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
try {
new UserWorkflowRestClient().submitForm(formTO);
+
this.modal.show(false);
this.modal.close(target);
- SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
+
+ info(getString(Constants.OPERATION_SUCCEEDED));
} catch (SyncopeClientException e) {
- SyncopeConsoleSession.get().error(getString(Constants.ERROR) + ": " + e.getMessage());
+ error(getString(Constants.ERROR) + ": " + e.getMessage());
}
SyncopeConsoleSession.get().getNotificationPanel().refresh(target);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/commons/Constants.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/Constants.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/Constants.java
index 74f2ac9..141b7e5 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/commons/Constants.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/commons/Constants.java
@@ -120,6 +120,8 @@ public final class Constants {
public static final String PREF_PUSH_TASKS_PAGINATOR_ROWS = "pushtasks.paginator.rows";
+ public static final String PREF_TYPE_EXTENSIONS_PAGINATOR_ROWS = "typeextensions.paginator.rows";
+
public static final String PREF_TODO_PAGINATOR_ROWS = "todo.paginator.rows";
public static final String PREF_REPORT_PAGINATOR_ROWS = "report.paginator.rows";
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/layout/AnyObjectFormLayoutInfo.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/layout/AnyObjectFormLayoutInfo.java b/client/console/src/main/java/org/apache/syncope/client/console/layout/AnyObjectFormLayoutInfo.java
index 211aa25..2d275c3 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/layout/AnyObjectFormLayoutInfo.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/layout/AnyObjectFormLayoutInfo.java
@@ -25,6 +25,8 @@ public class AnyObjectFormLayoutInfo extends AbstractAnyFormLayout<AnyObjectTO,
private static final long serialVersionUID = -5573691733739618500L;
+ private boolean groups = true;
+
private boolean relationships = true;
@Override
@@ -32,6 +34,14 @@ public class AnyObjectFormLayoutInfo extends AbstractAnyFormLayout<AnyObjectTO,
return AnyObjectWizardBuilder.class;
}
+ public boolean isGroups() {
+ return groups;
+ }
+
+ public void setGroups(final boolean groups) {
+ this.groups = groups;
+ }
+
public boolean isRelationships() {
return relationships;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/layout/GroupFormLayoutInfo.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/layout/GroupFormLayoutInfo.java b/client/console/src/main/java/org/apache/syncope/client/console/layout/GroupFormLayoutInfo.java
index 9296300..354a8d0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/layout/GroupFormLayoutInfo.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/layout/GroupFormLayoutInfo.java
@@ -29,7 +29,7 @@ public class GroupFormLayoutInfo extends AbstractAnyFormLayout<GroupTO, GroupFor
private boolean dynamicMemberships = true;
- private boolean typeExtension = true;
+ private boolean typeExtensions = true;
@Override
protected Class<? extends GroupForm> getDefaultFormClass() {
@@ -52,12 +52,12 @@ public class GroupFormLayoutInfo extends AbstractAnyFormLayout<GroupTO, GroupFor
this.dynamicMemberships = dynamicMemberships;
}
- public boolean isTypeExtension() {
- return typeExtension;
+ public boolean isTypeExtensions() {
+ return typeExtensions;
}
- public void setTypeExtension(final boolean typeExtension) {
- this.typeExtension = typeExtension;
+ public void setTypeExtensions(final boolean typeExtensions) {
+ this.typeExtensions = typeExtensions;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/layout/UserFormLayoutInfo.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/layout/UserFormLayoutInfo.java b/client/console/src/main/java/org/apache/syncope/client/console/layout/UserFormLayoutInfo.java
index c100143..68a67b9 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/layout/UserFormLayoutInfo.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/layout/UserFormLayoutInfo.java
@@ -29,6 +29,8 @@ public class UserFormLayoutInfo extends AbstractAnyFormLayout<UserTO, UserForm>
private boolean roles = true;
+ private boolean groups = true;
+
private boolean relationships = true;
@Override
@@ -52,6 +54,14 @@ public class UserFormLayoutInfo extends AbstractAnyFormLayout<UserTO, UserForm>
this.roles = roles;
}
+ public boolean isGroups() {
+ return groups;
+ }
+
+ public void setGroups(final boolean groups) {
+ this.groups = groups;
+ }
+
public boolean isRelationships() {
return relationships;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java
index b6fee1a..a781f4c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java
@@ -67,13 +67,13 @@ public class MailTemplateDirectoryPanel
disableCheckBoxes();
modal.size(Modal.Size.Small);
- modal.addSumbitButton();
+ modal.addSubmitButton();
setFooterVisibility(true);
addOuterObject(utilityModal);
setWindowClosedReloadCallback(utilityModal);
utilityModal.size(Modal.Size.Large);
- utilityModal.addSumbitButton();
+ utilityModal.addSubmitButton();
addNewItemPanelBuilder(new AbstractModalPanelBuilder<MailTemplateTO>(new MailTemplateTO(), pageRef) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
index b2e3356..94d47df 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
@@ -122,7 +122,7 @@ public class Realms extends BasePage {
true);
target.add(modal.setContent(panel));
- modal.addSumbitButton();
+ modal.addSubmitButton();
modal.show(true);
}
@@ -141,7 +141,7 @@ public class Realms extends BasePage {
false);
target.add(modal.setContent(panel));
- modal.addSumbitButton();
+ modal.addSubmitButton();
modal.show(true);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java
index 67eb2e2..8969e32 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java
@@ -214,7 +214,7 @@ public class AnyObjectDirectoryPanel extends AnyDirectoryPanel<AnyObjectTO> {
public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
target.add(displayAttributeModal.setContent(new AnyObjectDisplayAttributesModalPanel<>(
displayAttributeModal, page.getPageReference(), pSchemaNames, dSchemaNames, type)));
- displayAttributeModal.addSumbitButton();
+ displayAttributeModal.addSubmitButton();
displayAttributeModal.header(new ResourceModel("any.attr.display"));
displayAttributeModal.show(true);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
index bd2e3f1..4207df4 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
@@ -155,6 +155,7 @@ public abstract class DirectoryPanel<
altDefaultModal.size(Modal.Size.Medium);
displayAttributeModal.size(Modal.Size.Medium);
+ displayAttributeModal.addSubmitButton();
}
protected abstract DP dataProvider();
@@ -235,7 +236,7 @@ public abstract class DirectoryPanel<
}
/**
- * Caled before build. Override it to customize result table.
+ * Called before build. Override it to customize result table.
*
* @param resultTableBuilder result table builder.
*/
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
index 017925c..129705b 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.client.console.panels;
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
@@ -32,6 +33,7 @@ import org.apache.syncope.client.console.status.StatusModal;
import org.apache.syncope.client.console.tasks.AnyPropagationTasks;
import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.ActionColumn;
import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.AttrColumn;
+import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink.ActionType;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel;
@@ -60,8 +62,15 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO> {
private static final long serialVersionUID = -1100228004207271270L;
+ private final BaseModal<Serializable> typeExtensionsModal = new BaseModal<>("outer");
+
protected GroupDirectoryPanel(final String id, final Builder builder) {
super(id, builder);
+
+ typeExtensionsModal.size(Modal.Size.Large);
+ addOuterObject(typeExtensionsModal);
+ setWindowClosedReloadCallback(typeExtensionsModal);
+ typeExtensionsModal.addSubmitButton();
}
@Override
@@ -137,13 +146,24 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO> {
new AjaxWizard.EditItemActionEvent<>(new GroupWrapper(
new GroupRestClient().read(model.getObject().getKey())), target));
}
- }, ActionType.EDIT, StandardEntitlement.GROUP_READ).add(new ActionLink<GroupTO>() {
+ }, ActionType.EDIT, StandardEntitlement.GROUP_UPDATE).add(new ActionLink<GroupTO>() {
- private static final long serialVersionUID = -7978723352517770644L;
+ private static final long serialVersionUID = 6242834621660352855L;
@Override
public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
- final GroupTO clone = SerializationUtils.clone(model.getObject());
+ target.add(typeExtensionsModal.setContent(new TypeExtensionDirectoryPanel(
+ typeExtensionsModal, model.getObject(), pageRef)));
+ typeExtensionsModal.header(new StringResourceModel("typeExtensions", model));
+ typeExtensionsModal.show(true);
+ }
+ }, ActionType.TYPE_EXTENSIONS, StandardEntitlement.GROUP_UPDATE).add(new ActionLink<GroupTO>() {
+
+ private static final long serialVersionUID = 6242834621660352855L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
+ GroupTO clone = SerializationUtils.clone(model.getObject());
clone.setKey(null);
send(GroupDirectoryPanel.this, Broadcast.EXACT,
new AjaxWizard.NewItemActionEvent<>(new GroupWrapper(clone), target));
@@ -156,7 +176,6 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO> {
public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
target.add(utilityModal.setContent(new AnyPropagationTasks(
utilityModal, AnyTypeKind.GROUP, model.getObject().getKey(), pageRef)));
-
utilityModal.header(new StringResourceModel("any.propagation.tasks", model));
utilityModal.show(true);
}
@@ -170,7 +189,6 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO> {
new NotificationTasks(AnyTypeKind.GROUP, model.getObject().getKey(), pageRef)));
utilityModal.header(new StringResourceModel("any.notification.tasks", model));
utilityModal.show(true);
- target.add(utilityModal);
}
}, ActionType.NOTIFICATION_TASKS, StandardEntitlement.TASK_LIST).add(new ActionLink<GroupTO>() {
@@ -206,7 +224,6 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO> {
public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
target.add(displayAttributeModal.setContent(new GroupDisplayAttributesModalPanel<>(
displayAttributeModal, page.getPageReference(), pSchemaNames, dSchemaNames)));
- displayAttributeModal.addSumbitButton();
displayAttributeModal.header(new ResourceModel("any.attr.display"));
displayAttributeModal.show(true);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/panels/ModalPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ModalPanel.java
index 11a9f78..ef1e015 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ModalPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ModalPanel.java
@@ -25,9 +25,9 @@ import org.apache.wicket.request.component.IRequestableComponent;
public interface ModalPanel<T extends Serializable> extends IRequestableComponent, Serializable {
- void onSubmit(final AjaxRequestTarget target, final Form<?> form);
+ void onSubmit(AjaxRequestTarget target, Form<?> form);
- void onError(final AjaxRequestTarget target, final Form<?> form);
+ void onError(AjaxRequestTarget target, Form<?> form);
T getItem();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersPanel.java
index df265fd..5c83530 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersPanel.java
@@ -151,7 +151,7 @@ public class ParametersPanel extends DirectoryPanel<
@Override
public void onClick(final AjaxRequestTarget target, final AttrTO ignore) {
target.add(modalDetails);
- modalDetails.addSumbitButton();
+ modalDetails.addSubmitButton();
modalDetails.header(new StringResourceModel("any.edit"));
modalDetails.setContent(
new ParametersEditModalPanel(modalDetails, model.getObject(), pageRef));
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java
index ba2d44b..ffccc48 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java
@@ -66,7 +66,7 @@ public class RoleDirectoryPanel extends DirectoryPanel<RoleTO, RoleHandler, Role
addOuterObject(utilityModal);
setWindowClosedReloadCallback(utilityModal);
utilityModal.size(Modal.Size.Large);
- utilityModal.addSumbitButton();
+ utilityModal.addSubmitButton();
MetaDataRoleAuthorizationStrategy.authorize(addAjaxLink, ENABLE, StandardEntitlement.ROLE_CREATE);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java
index 1735620..50ae8c9 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java
@@ -81,7 +81,7 @@ public class SecurityQuestionsPanel extends DirectoryPanel<
}, true);
setFooterVisibility(true);
- modal.addSumbitButton();
+ modal.addSubmitButton();
modal.size(Modal.Size.Large);
initResultTable();
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java
new file mode 100644
index 0000000..f2a32c2
--- /dev/null
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java
@@ -0,0 +1,207 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.client.console.panels;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import org.apache.syncope.client.console.SyncopeConsoleSession;
+import org.apache.syncope.client.console.commons.Constants;
+import org.apache.syncope.client.console.commons.DirectoryDataProvider;
+import org.apache.syncope.client.console.panels.TypeExtensionDirectoryPanel.TypeExtensionDataProvider;
+import org.apache.syncope.client.console.rest.BaseRestClient;
+import org.apache.syncope.client.console.rest.GroupRestClient;
+import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.ActionColumn;
+import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
+import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
+import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel;
+import org.apache.syncope.client.console.wizards.AjaxWizard;
+import org.apache.syncope.client.console.wizards.TypeExtensionWizardBuilder;
+import org.apache.syncope.common.lib.patch.GroupPatch;
+import org.apache.syncope.common.lib.to.GroupTO;
+import org.apache.syncope.common.lib.to.TypeExtensionTO;
+import org.apache.wicket.PageReference;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.event.Broadcast;
+import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.ResourceModel;
+import org.apache.wicket.model.StringResourceModel;
+
+public class TypeExtensionDirectoryPanel
+ extends DirectoryPanel<TypeExtensionTO, TypeExtensionTO, TypeExtensionDataProvider, BaseRestClient>
+ implements ModalPanel<Serializable> {
+
+ private static final long serialVersionUID = -4117015319209624858L;
+
+ private final BaseModal<Serializable> baseModal;
+
+ private final GroupTO groupTO;
+
+ protected TypeExtensionDirectoryPanel(
+ final BaseModal<Serializable> baseModal,
+ final GroupTO groupTO,
+ final PageReference pageRef) {
+
+ super(BaseModal.CONTENT_ID, pageRef, false);
+
+ this.baseModal = baseModal;
+ this.groupTO = groupTO;
+
+ TypeExtensionWizardBuilder builder = new TypeExtensionWizardBuilder(
+ groupTO,
+ new TypeExtensionTO(),
+ new StringResourceModel("anyType", this).getObject(),
+ new StringResourceModel("auxClasses", this).getObject(),
+ pageRef);
+ builder.setEventSink(this);
+ this.addNewItemPanelBuilder(builder, true);
+
+ setShowResultPage(false);
+ initResultTable();
+ }
+
+ @Override
+ public void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
+ GroupPatch patch = new GroupPatch();
+ patch.setKey(groupTO.getKey());
+ patch.getTypeExtensions().addAll(groupTO.getTypeExtensions());
+
+ try {
+ new GroupRestClient().update(groupTO.getETagValue(), patch);
+
+ this.baseModal.show(false);
+ this.baseModal.close(target);
+
+ info(getString(Constants.OPERATION_SUCCEEDED));
+ } catch (Exception e) {
+ LOG.error("Group update failure", e);
+ error(getString(Constants.ERROR) + ": " + e.getMessage());
+
+ }
+ SyncopeConsoleSession.get().getNotificationPanel().refresh(target);
+ }
+
+ @Override
+ public void onError(final AjaxRequestTarget target, final Form<?> form) {
+ error(getString(Constants.OPERATION_ERROR));
+ SyncopeConsoleSession.get().getNotificationPanel().refresh(target);
+ }
+
+ @Override
+ protected TypeExtensionDataProvider dataProvider() {
+ return new TypeExtensionDataProvider(rows);
+ }
+
+ @Override
+ protected String paginatorRowsKey() {
+ return Constants.PREF_TYPE_EXTENSIONS_PAGINATOR_ROWS;
+ }
+
+ @Override
+ protected List<IColumn<TypeExtensionTO, String>> getColumns() {
+ List<IColumn<TypeExtensionTO, String>> columns = new ArrayList<>();
+
+ columns.add(new PropertyColumn<TypeExtensionTO, String>(
+ Model.of("Any Type"), "anyType", "anyType"));
+ columns.add(new PropertyColumn<TypeExtensionTO, String>(
+ new StringResourceModel("auxClasses", this, null), "auxClasses", "auxClasses"));
+
+ columns.add(new ActionColumn<TypeExtensionTO, String>(new ResourceModel("actions", "")) {
+
+ private static final long serialVersionUID = 2054811145491901166L;
+
+ @Override
+ public ActionLinksPanel<TypeExtensionTO> getActions(
+ final String componentId, final IModel<TypeExtensionTO> model) {
+
+ final TypeExtensionTO typeExtension = model.getObject();
+
+ return ActionLinksPanel.<TypeExtensionTO>builder().add(new ActionLink<TypeExtensionTO>() {
+
+ private static final long serialVersionUID = -3722207913631435501L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final TypeExtensionTO ignore) {
+ send(TypeExtensionDirectoryPanel.this, Broadcast.EXACT,
+ new AjaxWizard.EditItemActionEvent<>(typeExtension, target));
+ }
+ }, ActionLink.ActionType.EDIT).add(new ActionLink<TypeExtensionTO>() {
+
+ private static final long serialVersionUID = -3722207913631435501L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final TypeExtensionTO ignore) {
+ groupTO.getTypeExtensions().remove(
+ groupTO.getTypeExtension(typeExtension.getAnyType()));
+ target.add(container);
+ }
+ }, ActionLink.ActionType.DELETE).build(componentId);
+ }
+ });
+
+ return columns;
+ }
+
+ @Override
+ protected Collection<ActionLink.ActionType> getBulkActions() {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public TypeExtensionTO getItem() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ protected class TypeExtensionDataProvider extends DirectoryDataProvider<TypeExtensionTO> {
+
+ private static final long serialVersionUID = 4533123471004692755L;
+
+ public TypeExtensionDataProvider(final int paginatorRows) {
+ super(paginatorRows);
+
+ //Default sorting
+ setSort("anyKey", SortOrder.DESCENDING);
+ }
+
+ @Override
+ public Iterator<? extends TypeExtensionTO> iterator(final long first, final long count) {
+ return groupTO.getTypeExtensions().subList((int) first, (int) (first + count)).iterator();
+ }
+
+ @Override
+ public long size() {
+ return groupTO.getTypeExtensions().size();
+ }
+
+ @Override
+ public IModel<TypeExtensionTO> model(final TypeExtensionTO object) {
+ return new CompoundPropertyModel<>(object);
+ }
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/panels/TypesDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/TypesDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/TypesDirectoryPanel.java
index cceb1e6..4e1d53a 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/TypesDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/TypesDirectoryPanel.java
@@ -32,7 +32,7 @@ public abstract class TypesDirectoryPanel<T extends AbstractBaseBean, DP extends
public TypesDirectoryPanel(final String id, final PageReference pageRef) {
super(id, pageRef);
setFooterVisibility(true);
- modal.addSumbitButton();
+ modal.addSubmitButton();
modal.size(Modal.Size.Large);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java
index f918f05..4905ca5 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java
@@ -259,7 +259,7 @@ public class UserDirectoryPanel extends AnyDirectoryPanel<UserTO> {
displayAttributeModal, page.getPageReference(), pSchemaNames, dSchemaNames)));
displayAttributeModal.header(new ResourceModel("any.attr.display"));
- displayAttributeModal.addSumbitButton();
+ displayAttributeModal.addSubmitButton();
displayAttributeModal.show(true);
}
}, ActionType.CHANGE_VIEW, StandardEntitlement.USER_READ).add(
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/panels/WorkflowTogglePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/WorkflowTogglePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/WorkflowTogglePanel.java
index 88aaeb1..9c1076f 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/WorkflowTogglePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/WorkflowTogglePanel.java
@@ -23,13 +23,13 @@ import java.io.File;
import org.apache.syncope.client.console.SyncopeConsoleApplication;
import org.apache.syncope.client.console.pages.ActivitiModelerPopupPage;
import org.apache.syncope.client.console.rest.WorkflowRestClient;
-import org.apache.syncope.client.console.wicket.markup.html.bootstrap.buttons.PrimaryModalButton;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.client.console.wicket.markup.html.link.VeilPopupSettings;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
+import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -70,7 +70,7 @@ public class WorkflowTogglePanel extends TogglePanel<String> {
}
activitiModeler.setEnabled(activitiModelerEnabled);
- PrimaryModalButton xmlEditorSubmit = modal.addSumbitButton();
+ AjaxSubmitLink xmlEditorSubmit = modal.addSubmitButton();
MetaDataRoleAuthorizationStrategy.authorize(xmlEditorSubmit, ENABLE, StandardEntitlement.WORKFLOW_DEF_UPDATE);
modal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnySelectionDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnySelectionDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnySelectionDirectoryPanel.java
index 17b8aa0..c77598d 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnySelectionDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnySelectionDirectoryPanel.java
@@ -145,7 +145,7 @@ public abstract class AnySelectionDirectoryPanel<T extends AnyTO> extends AnyDir
target.add(altDefaultModal.setContent(new AnyObjectDisplayAttributesModalPanel<>(
altDefaultModal, page.getPageReference(), pSchemaNames, dSchemaNames, type)));
- altDefaultModal.addSumbitButton();
+ altDefaultModal.addSubmitButton();
altDefaultModal.header(new ResourceModel("any.attr.display"));
altDefaultModal.show(true);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java
index 6d1554c..0c36f0a 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java
@@ -23,6 +23,7 @@ import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.apache.syncope.client.console.panels.MultilevelPanel;
+import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.BooleanPropertyColumn;
import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.DatePropertyColumn;
import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.KeyPropertyColumn;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
@@ -93,7 +94,7 @@ public abstract class ProvisioningTaskDirectoryPanel<T extends AbstractProvision
columns.add(new PropertyColumn<T, String>(
new StringResourceModel("latestExecStatus", this, null), "latestExecStatus", "latestExecStatus"));
- columns.add(new PropertyColumn<T, String>(
+ columns.add(new BooleanPropertyColumn<T>(
new StringResourceModel("active", this, null), "active", "active"));
return columns;
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/tasks/PullTasks.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/PullTasks.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/PullTasks.java
index 39540f5..120998e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/PullTasks.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/PullTasks.java
@@ -32,13 +32,13 @@ public class PullTasks extends AbstractTasks {
private static final long serialVersionUID = -4013796607157549641L;
public <T extends AnyTO> PullTasks(
- final BaseModal<?> baseModal, final PageReference pageReference, final String resource) {
+ final BaseModal<?> baseModal, final PageReference pageRef, final String resource) {
super(BaseModal.CONTENT_ID);
final MultilevelPanel mlp = new MultilevelPanel("tasks");
add(mlp);
- mlp.setFirstLevel(new PullTaskDirectoryPanel(baseModal, mlp, resource, pageReference) {
+ mlp.setFirstLevel(new PullTaskDirectoryPanel(baseModal, mlp, resource, pageRef) {
private static final long serialVersionUID = -2195387360323687302L;
@@ -46,7 +46,7 @@ public class PullTasks extends AbstractTasks {
protected void viewTask(final PullTaskTO taskTO, final AjaxRequestTarget target) {
mlp.next(
new StringResourceModel("task.view", this, new Model<>(taskTO)).getObject(),
- new TaskExecutionDetails<>(baseModal, taskTO, pageReference), target);
+ new TaskExecutionDetails<>(baseModal, taskTO, pageRef), target);
}
});
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
index ac8f210..709205a 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
@@ -157,11 +157,6 @@ public abstract class SchedTaskDirectoryPanel<T extends SchedTaskTO>
private static final long serialVersionUID = 2054811145491901166L;
@Override
- public String getCssClass() {
- return "action";
- }
-
- @Override
public ActionLinksPanel<T> getActions(
final String componentId, final IModel<T> model) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/tasks/TaskDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/TaskDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/TaskDirectoryPanel.java
index 547c27b..5484b8b 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/TaskDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/TaskDirectoryPanel.java
@@ -48,7 +48,7 @@ public abstract class TaskDirectoryPanel<T extends AbstractTaskTO>
private final BaseModal<?> baseModal;
- protected final MultilevelPanel multiLevelPanelRef;
+ private final MultilevelPanel multiLevelPanelRef;
protected TaskDirectoryPanel(
final BaseModal<?> baseModal, final MultilevelPanel multiLevelPanelRef, final PageReference pageRef) {
@@ -79,7 +79,7 @@ public abstract class TaskDirectoryPanel<T extends AbstractTaskTO>
throw new UnsupportedOperationException("Not supported yet.");
}
- protected abstract void viewTask(final T taskTO, final AjaxRequestTarget target);
+ protected abstract void viewTask(T taskTO, AjaxRequestTarget target);
protected abstract class TasksProvider<T extends AbstractTaskTO> extends DirectoryDataProvider<T> {
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
index 3ecbf11..0d2aca3 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
@@ -83,7 +83,7 @@ public class TopologyTogglePanel extends TogglePanel<Serializable> {
provisionModal = new BaseModal<>("outer");
provisionModal.size(Modal.Size.Large);
- provisionModal.addSumbitButton();
+ provisionModal.addSubmitButton();
addOuterObject(provisionModal);
container = new WebMarkupContainer("container");
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/ActionColumn.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/ActionColumn.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/ActionColumn.java
index 3118157..e1ec878 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/ActionColumn.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/ActionColumn.java
@@ -19,7 +19,6 @@
package org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel;
-import org.apache.wicket.Component;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
import org.apache.wicket.markup.repeater.Item;
@@ -43,11 +42,6 @@ public abstract class ActionColumn<T, S> extends AbstractColumn<T, S> {
}
@Override
- public Component getHeader(final String componentId) {
- return super.getHeader(componentId);
- }
-
- @Override
public void populateItem(final Item<ICellPopulator<T>> item, final String componentId, final IModel<T> rowModel) {
item.add(getActions(componentId, rowModel));
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/buttons/PrimaryModalButton.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/buttons/PrimaryModalButton.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/buttons/PrimaryModalButton.java
deleted file mode 100644
index 336f85e..0000000
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/buttons/PrimaryModalButton.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.client.console.wicket.markup.html.bootstrap.buttons;
-
-import com.googlecode.wicket.jquery.ui.markup.html.link.AjaxSubmitLink;
-import de.agilecoders.wicket.core.markup.html.bootstrap.button.ButtonBehavior;
-import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
-import org.apache.wicket.markup.html.form.Form;
-
-public class PrimaryModalButton extends AjaxSubmitLink {
-
- private static final long serialVersionUID = -1097993976905448580L;
-
- public PrimaryModalButton(final String id, final String name, final Form<?> form) {
- super(id, form);
- add(new ButtonBehavior(Buttons.Type.Primary, Buttons.Size.Medium));
-
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
index e49b1cf..0025f79 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
@@ -29,10 +29,10 @@ import org.apache.syncope.client.console.panels.AbstractModalPanel;
import org.apache.syncope.client.console.panels.ModalPanel;
import org.apache.syncope.client.console.panels.NotificationPanel;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.buttons.DefaultModalCloseButton;
-import org.apache.syncope.client.console.wicket.markup.html.bootstrap.buttons.PrimaryModalButton;
import org.apache.wicket.Component;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow.WindowClosedCallback;
import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -66,7 +66,7 @@ public class BaseModal<T extends Serializable> extends Modal<T> {
private Panel content;
- private PrimaryModalButton submitButton;
+ private AjaxSubmitLink submitButton;
private final Form<T> form;
@@ -177,11 +177,10 @@ public class BaseModal<T extends Serializable> extends Modal<T> {
}
}
- public PrimaryModalButton addSumbitButton() {
+ public AjaxSubmitLink addSubmitButton() {
+ AjaxSubmitLink submit = new AjaxSubmitLink(SUBMIT, form) {
- final PrimaryModalButton submit = new PrimaryModalButton(SUBMIT, SUBMIT, form) {
-
- private static final long serialVersionUID = -958724007591692537L;
+ private static final long serialVersionUID = -5783994974426198290L;
@Override
protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLink.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLink.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLink.java
index 3d2007d..730bf9c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLink.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLink.java
@@ -46,6 +46,7 @@ public abstract class ActionLink<T extends Serializable> implements Serializable
CLONE("create"),
CREATE("create"),
EDIT("read"),
+ TYPE_EXTENSIONS("read"),
HTML_EDIT("read"),
TEXT_EDIT("read"),
LAYOUT_EDIT("read"),
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.java
index 3d6e4ee..53cdaf0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.java
@@ -61,6 +61,7 @@ public final class ActionLinksPanel<T extends Serializable> extends Panel {
super.add(new Fragment("panelClone", "emptyFragment", this));
super.add(new Fragment("panelCreate", "emptyFragment", this));
super.add(new Fragment("panelEdit", "emptyFragment", this));
+ super.add(new Fragment("panelTypeExtensions", "emptyFragment", this));
super.add(new Fragment("panelHtmlEdit", "emptyFragment", this));
super.add(new Fragment("panelTextEdit", "emptyFragment", this));
super.add(new Fragment("panelLayoutEdit", "emptyFragment", this));
@@ -310,6 +311,25 @@ public final class ActionLinksPanel<T extends Serializable> extends Panel {
}.setVisible(link.isEnabled(model.getObject())));
break;
+ case TYPE_EXTENSIONS:
+ fragment = new Fragment("panelTypeExtensions", "fragmentTypeExtensions", this);
+
+ fragment.addOrReplace(new IndicatingAjaxLink<Void>("typeExtensionsLink") {
+
+ private static final long serialVersionUID = -1876519166660008562L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target) {
+ link.onClick(target, model.getObject());
+ }
+
+ @Override
+ public String getAjaxIndicatorMarkupId() {
+ return disableIndicator ? StringUtils.EMPTY : super.getAjaxIndicatorMarkupId();
+ }
+ }.setVisible(link.isEnabled(model.getObject())));
+ break;
+
case HTML_EDIT:
fragment = new Fragment("panelHtmlEdit", "fragmentHtmlEdit", this);
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.java
index 0af6e61..b0b5e94 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.java
@@ -271,7 +271,7 @@ public class AjaxPalettePanel<T extends Serializable> extends AbstractFieldPanel
public abstract static class Query<T extends Serializable> implements Serializable {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 3582312993557742858L;
public abstract List<T> execute(final String filter);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/widgets/AlertWidget.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/widgets/AlertWidget.java b/client/console/src/main/java/org/apache/syncope/client/console/widgets/AlertWidget.java
index d3371cd..5b9438c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/widgets/AlertWidget.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/widgets/AlertWidget.java
@@ -121,7 +121,7 @@ public abstract class AlertWidget<T extends Serializable> extends Panel {
protected abstract IModel<List<T>> getLatestAlerts();
protected Panel getAlertLink(final String panelid, final T alert) {
- return new AlertLink<T>(panelid, alert);
+ return new AlertLink<>(panelid, alert);
}
protected abstract AbstractLink getEventsLink(final String linkid);
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java
index c509856..9d6d76a 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java
@@ -80,7 +80,7 @@ public abstract class AjaxWizardBuilder<T extends Serializable> extends Abstract
return new AjaxWizard<T>(id, modelObject, buildModelSteps(modelObject, new WizardModel()), mode) {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 7770507663760640735L;
@Override
protected void onCancelInternal() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/wizards/TypeExtensionWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/TypeExtensionWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/TypeExtensionWizardBuilder.java
new file mode 100644
index 0000000..b3d64ed
--- /dev/null
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/TypeExtensionWizardBuilder.java
@@ -0,0 +1,135 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.client.console.wizards;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.Predicate;
+import org.apache.syncope.client.console.rest.AnyTypeClassRestClient;
+import org.apache.syncope.client.console.rest.AnyTypeRestClient;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
+import org.apache.syncope.common.lib.EntityTOUtils;
+import org.apache.syncope.common.lib.to.GroupTO;
+import org.apache.syncope.common.lib.to.TypeExtensionTO;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
+import org.apache.wicket.PageReference;
+import org.apache.wicket.event.IEventSink;
+import org.apache.wicket.extensions.wizard.WizardModel;
+import org.apache.wicket.extensions.wizard.WizardStep;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.model.util.ListModel;
+
+public class TypeExtensionWizardBuilder extends AjaxWizardBuilder<TypeExtensionTO> {
+
+ private static final long serialVersionUID = -7185214439144835423L;
+
+ private final GroupTO groupTO;
+
+ private final String anyTypeLabel;
+
+ private final String auxClassesLabel;
+
+ public TypeExtensionWizardBuilder(
+ final GroupTO groupTO,
+ final TypeExtensionTO defaultItem,
+ final String anyTypeLabel,
+ final String auxClassesLabel,
+ final PageReference pageRef) {
+
+ super(defaultItem, pageRef);
+
+ this.groupTO = groupTO;
+ this.anyTypeLabel = anyTypeLabel;
+ this.auxClassesLabel = auxClassesLabel;
+ }
+
+ public void setEventSink(final IEventSink eventSink) {
+ this.eventSink = eventSink;
+ }
+
+ @Override
+ protected WizardModel buildModelSteps(final TypeExtensionTO modelObject, final WizardModel wizardModel) {
+ wizardModel.add(new Details(modelObject.getAnyType()));
+ return wizardModel;
+ }
+
+ @Override
+ protected void onCancelInternal(final TypeExtensionTO modelObject) {
+ this.groupTO.getTypeExtensions().remove(modelObject);
+ }
+
+ public class Details extends WizardStep {
+
+ private static final long serialVersionUID = 6472869166547883903L;
+
+ public Details(final String anyType) {
+ super();
+ setOutputMarkupId(true);
+
+ TypeExtensionTO typeExtensionTO;
+ if (groupTO.getTypeExtension(anyType) == null) {
+ typeExtensionTO = new TypeExtensionTO();
+ typeExtensionTO.setAnyType(anyType);
+ groupTO.getTypeExtensions().add(typeExtensionTO);
+ } else {
+ typeExtensionTO = groupTO.getTypeExtension(anyType);
+ }
+
+ add(new Label("anyType.label", anyTypeLabel));
+
+ if (typeExtensionTO.getAnyType() == null) {
+ List<String> anyTypes = CollectionUtils.collect(new AnyTypeRestClient().list(),
+ EntityTOUtils.keyTransformer(), new ArrayList<String>());
+ anyTypes.remove(AnyTypeKind.GROUP.name());
+ CollectionUtils.filter(anyTypes, new Predicate<String>() {
+
+ @Override
+ public boolean evaluate(final String anyType) {
+ return groupTO.getTypeExtension(anyType) == null;
+ }
+ });
+
+ AjaxDropDownChoicePanel<String> anyTypeComponent = new AjaxDropDownChoicePanel<>(
+ "anyType.component", "anyType", new PropertyModel<String>(typeExtensionTO, "anyType"));
+ anyTypeComponent.setChoices(anyTypes);
+ anyTypeComponent.addRequiredLabel();
+ add(anyTypeComponent.hideLabel().setOutputMarkupId(true));
+ } else {
+ AjaxTextFieldPanel anyTypeComponent = new AjaxTextFieldPanel(
+ "anyType.component", "anyType", new PropertyModel<String>(typeExtensionTO, "anyType"));
+ anyTypeComponent.setEnabled(false);
+ add(anyTypeComponent.hideLabel());
+ }
+
+ add(new Label("auxClasses.label", auxClassesLabel));
+
+ List<String> anyTypeClasses = CollectionUtils.collect(new AnyTypeClassRestClient().list(),
+ EntityTOUtils.keyTransformer(), new ArrayList<String>());
+ AjaxPalettePanel<String> auxClassesPalette = new AjaxPalettePanel.Builder<String>().build(
+ "auxClasses.palette",
+ new PropertyModel<List<String>>(typeExtensionTO, "auxClasses"),
+ new ListModel<>(anyTypeClasses));
+ add(auxClassesPalette.hideLabel().setOutputMarkupId(true));
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java
index 144e2f4..42d98b1 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java
@@ -111,7 +111,7 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple
addAjaxLink = new AjaxLink<T>("add") {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = -7978723352517770644L;
@Override
public void onClick(final AjaxRequestTarget target) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
index c387cea..3d86030 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
@@ -106,6 +106,14 @@ public abstract class AnyWizardBuilder<A extends AnyTO> extends AjaxWizardBuilde
wizardModel.add(new AuxClasses(modelObject.getInnerObject(), anyTypeClasses));
}
+ if (formLayoutInfo instanceof UserFormLayoutInfo
+ && UserFormLayoutInfo.class.cast(formLayoutInfo).isGroups()
+ || formLayoutInfo instanceof AnyObjectFormLayoutInfo
+ && AnyObjectFormLayoutInfo.class.cast(formLayoutInfo).isGroups()) {
+
+ wizardModel.add(new Groups(modelObject.getInnerObject()));
+ }
+
// attributes panel steps
if (formLayoutInfo.isPlainAttrs()) {
wizardModel.add(new PlainAttrs(
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AuxClasses.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AuxClasses.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AuxClasses.java
index b70a1c0..744c159 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AuxClasses.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AuxClasses.java
@@ -19,24 +19,12 @@
package org.apache.syncope.client.console.wizards.any;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.syncope.client.console.rest.AnyTypeClassRestClient;
-import org.apache.syncope.client.console.rest.GroupRestClient;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel;
-import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.AnyTypeClassTO;
-import org.apache.syncope.common.lib.to.GroupTO;
-import org.apache.syncope.common.lib.to.GroupableTO;
-import org.apache.syncope.common.lib.to.MembershipTO;
-import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
import org.apache.wicket.extensions.wizard.WizardStep;
-import org.apache.wicket.markup.html.form.IChoiceRenderer;
-import org.apache.wicket.markup.html.panel.Fragment;
-import org.apache.wicket.model.IModel;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.model.util.ListModel;
@@ -44,112 +32,20 @@ public class AuxClasses extends WizardStep {
private static final long serialVersionUID = 552437609667518888L;
- private final GroupRestClient groupRestClient = new GroupRestClient();
+ public <T extends AnyTO> AuxClasses(final T anyTO, final List<String> anyTypeClasses) {
+ super();
+ setOutputMarkupId(true);
- public <T extends AnyTO> AuxClasses(final T entityTO, final List<String> anyTypeClasses) {
- this.setOutputMarkupId(true);
+ List<AnyTypeClassTO> allAnyTypeClasses = new AnyTypeClassRestClient().list();
- final Fragment fragment;
- if (entityTO instanceof GroupTO) {
- fragment = new Fragment("groups", "emptyFragment", this);
- } else {
- fragment = new Fragment("groups", "groupsFragment", this);
-
- final List<MembershipTO> memberships;
- final List<String> dyngroups;
-
- if (entityTO instanceof GroupableTO) {
- memberships = GroupableTO.class.cast(entityTO).getMemberships();
- dyngroups = GroupableTO.class.cast(entityTO).getDynGroups();
- } else {
- memberships = Collections.<MembershipTO>emptyList();
- dyngroups = Collections.<String>emptyList();
- }
-
- final AjaxPalettePanel.Builder<MembershipTO> builder = new AjaxPalettePanel.Builder<MembershipTO>().
- setRenderer(new IChoiceRenderer<MembershipTO>() {
-
- private static final long serialVersionUID = -3086661086073628855L;
-
- @Override
- public Object getDisplayValue(final MembershipTO object) {
- return object.getGroupName();
- }
-
- @Override
- public String getIdValue(final MembershipTO object, final int index) {
- return object.getGroupName();
- }
-
- @Override
- public MembershipTO getObject(
- final String id, final IModel<? extends List<? extends MembershipTO>> choices) {
- for (MembershipTO membershipTO : choices.getObject()) {
- if (id.equalsIgnoreCase(membershipTO.getGroupName())) {
- return membershipTO;
- }
- }
- return null;
- }
- });
-
- fragment.add(builder.setAllowOrder(true).withFilter().build(
- "groups", new ListModel<>(memberships),
- new AjaxPalettePanel.Builder.Query<MembershipTO>() {
-
- private static final long serialVersionUID = -7223078772249308813L;
-
- @Override
- public List<MembershipTO> execute(final String filter) {
- return CollectionUtils.collect(
- groupRestClient.search(
- entityTO.getRealm(),
- SyncopeClient.getGroupSearchConditionBuilder().
- isAssignable().and().is("name").equalTo(filter).query(),
- -1, -1,
- new SortParam<>("name", true),
- null),
- new Transformer<GroupTO, MembershipTO>() {
-
- @Override
- public MembershipTO transform(final GroupTO input) {
- final MembershipTO membershipTO = new MembershipTO();
- membershipTO.setGroupName(input.getName());
- membershipTO.setRightKey(input.getKey() == null ? null : input.getKey());
- membershipTO.setRightType(input.getType());
- membershipTO.setLeftKey(entityTO.getKey() == null ? null : entityTO.getKey());
- membershipTO.setLeftType(entityTO.getType());
- return membershipTO;
- }
- }, new ArrayList<MembershipTO>());
- }
- }).hideLabel().setOutputMarkupId(true));
-
- List<String> dynamics = CollectionUtils.collect(dyngroups, new Transformer<String, String>() {
-
- @Override
- public String transform(final String input) {
- final GroupTO groupTO = groupRestClient.read(input);
- return String.format("[%s] %s", groupTO.getKey(), groupTO.getName());
- }
- }, new ArrayList<String>());
-
- fragment.add(new AjaxPalettePanel.Builder<String>().setAllowOrder(true).build(
- "dyngroups",
- new ListModel<>(dynamics),
- new ListModel<>(dynamics)).hideLabel().setEnabled(false).setOutputMarkupId(true));
- }
- add(fragment);
-
- final List<String> choices = new ArrayList<>();
- for (AnyTypeClassTO aux : new AnyTypeClassRestClient().list()) {
+ List<String> choices = new ArrayList<>();
+ for (AnyTypeClassTO aux : allAnyTypeClasses) {
if (!anyTypeClasses.contains(aux.getKey())) {
choices.add(aux.getKey());
}
}
-
add(new AjaxPalettePanel.Builder<String>().setAllowOrder(true).build("auxClasses",
- new PropertyModel<List<String>>(entityTO, "auxClasses"),
+ new PropertyModel<List<String>>(anyTO, "auxClasses"),
new ListModel<>(choices)).hideLabel().setOutputMarkupId(true));
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
new file mode 100644
index 0000000..5766db7
--- /dev/null
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
@@ -0,0 +1,127 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.client.console.wizards.any;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.Transformer;
+import org.apache.syncope.client.console.rest.GroupRestClient;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel;
+import org.apache.syncope.client.lib.SyncopeClient;
+import org.apache.syncope.common.lib.to.AnyObjectTO;
+import org.apache.syncope.common.lib.to.AnyTO;
+import org.apache.syncope.common.lib.to.GroupTO;
+import org.apache.syncope.common.lib.to.GroupableTO;
+import org.apache.syncope.common.lib.to.MembershipTO;
+import org.apache.syncope.common.lib.to.UserTO;
+import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
+import org.apache.wicket.extensions.wizard.WizardStep;
+import org.apache.wicket.markup.html.form.IChoiceRenderer;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.util.ListModel;
+import org.apache.wicket.util.lang.Args;
+
+public class Groups extends WizardStep {
+
+ private static final long serialVersionUID = 552437609667518888L;
+
+ private final GroupRestClient groupRestClient = new GroupRestClient();
+
+ public <T extends AnyTO> Groups(final T anyTO) {
+ super();
+ setOutputMarkupId(true);
+
+ Args.isTrue((anyTO instanceof UserTO) || (anyTO instanceof AnyObjectTO), "Expected user or anyObject");
+
+ AjaxPalettePanel.Builder<MembershipTO> builder = new AjaxPalettePanel.Builder<MembershipTO>().
+ setRenderer(new IChoiceRenderer<MembershipTO>() {
+
+ private static final long serialVersionUID = -3086661086073628855L;
+
+ @Override
+ public Object getDisplayValue(final MembershipTO object) {
+ return object.getGroupName();
+ }
+
+ @Override
+ public String getIdValue(final MembershipTO object, final int index) {
+ return object.getGroupName();
+ }
+
+ @Override
+ public MembershipTO getObject(
+ final String id, final IModel<? extends List<? extends MembershipTO>> choices) {
+ for (MembershipTO membershipTO : choices.getObject()) {
+ if (id.equalsIgnoreCase(membershipTO.getGroupName())) {
+ return membershipTO;
+ }
+ }
+ return null;
+ }
+ });
+
+ add(builder.setAllowOrder(true).withFilter().build(
+ "groups", new ListModel<>(GroupableTO.class.cast(anyTO).getMemberships()),
+ new AjaxPalettePanel.Builder.Query<MembershipTO>() {
+
+ private static final long serialVersionUID = -7223078772249308813L;
+
+ @Override
+ public List<MembershipTO> execute(final String filter) {
+ return CollectionUtils.collect(
+ groupRestClient.search(
+ anyTO.getRealm(),
+ SyncopeClient.getGroupSearchConditionBuilder().
+ isAssignable().and().is("name").equalTo(filter).query(),
+ -1, -1,
+ new SortParam<>("name", true),
+ null),
+ new Transformer<GroupTO, MembershipTO>() {
+
+ @Override
+ public MembershipTO transform(final GroupTO input) {
+ final MembershipTO membershipTO = new MembershipTO();
+ membershipTO.setGroupName(input.getName());
+ membershipTO.setRightKey(input.getKey() == null ? null : input.getKey());
+ membershipTO.setRightType(input.getType());
+ membershipTO.setLeftKey(anyTO.getKey() == null ? null : anyTO.getKey());
+ membershipTO.setLeftType(anyTO.getType());
+ return membershipTO;
+ }
+ }, new ArrayList<MembershipTO>());
+ }
+ }).hideLabel().setOutputMarkupId(true));
+
+ List<String> dynamics = CollectionUtils.collect(GroupableTO.class.cast(anyTO).getDynGroups(),
+ new Transformer<String, String>() {
+
+ @Override
+ public String transform(final String input) {
+ final GroupTO groupTO = groupRestClient.read(input);
+ return String.format("[%s] %s", groupTO.getKey(), groupTO.getName());
+ }
+ }, new ArrayList<String>());
+
+ add(new AjaxPalettePanel.Builder<String>().setAllowOrder(true).build(
+ "dyngroups",
+ new ListModel<>(dynamics),
+ new ListModel<>(dynamics)).hideLabel().setEnabled(false).setOutputMarkupId(true));
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel.properties
index 6f9dee9..6164282 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel.properties
@@ -41,3 +41,4 @@ any.propagation.tasks=Propagation tasks for ${type} ${key}
any.notification.tasks=Notification tasks for ${type} ${key}
notification.tasks=Tasks about notification ${key}
+typeExtensions=Type extensions for GROUP ${key}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_it.properties
index 1087e6c..10cc7ec 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_it.properties
@@ -40,3 +40,4 @@ bulk.action=Operazioni di gruppo
any.propagation.tasks=Task di propagazione per ${type} ${key}
any.notification.tasks=Task di notifica per ${type} ${key}
notification.tasks=Task relativi alla notifica ${key}
+typeExtensions=Type extensions per GROUP ${key}
http://git-wip-us.apache.org/repos/asf/syncope/blob/eed24866/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_pt_BR.properties
index 4f013dd..dff561e 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_pt_BR.properties
@@ -40,3 +40,4 @@ bulk.action=A\u00e7\u00e3o Composta
any.propagation.tasks=Propagation tasks for ${type} ${key}
any.notification.tasks=Notification tasks for ${type} ${key}
notification.tasks=Tasks about notification ${key}
+typeExtensions=Type extensions for GROUP ${key}