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 2018/10/09 15:08:46 UTC
[1/6] syncope git commit: [SYNCOPE-1369] Some refinements + admin
console suport
Repository: syncope
Updated Branches:
refs/heads/2_1_X e1b88c219 -> ff37c3f76
refs/heads/master 1302734d3 -> 9d78874fb
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel.properties
new file mode 100644
index 0000000..450ff50
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel.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.
+userDetails=User details
+userForm=Edit User
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_it.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_it.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_it.properties
new file mode 100644
index 0000000..92c475d
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_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.
+userDetails=Dettagli utente
+userForm=Modifica utente
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_ja.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_ja.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_ja.properties
new file mode 100644
index 0000000..5a9cc2d
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_ja.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.
+userDetails=\u30e6\u30fc\u30b6\u30fc\u8a73\u7d30
+userForm=\u30e6\u30fc\u30b6\u30fc\u3092\u7de8\u96c6
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_pt_BR.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_pt_BR.properties
new file mode 100644
index 0000000..00a8971
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_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.
+userDetails=Detalhes do Usu\u00e1rio
+userForm=Detalhes do Usu\u00e1rio
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_ru.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_ru.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_ru.properties
new file mode 100644
index 0000000..02c159a
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_ru.properties
@@ -0,0 +1,20 @@
+# 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.
+#
+# userDetails=\u00d0\u0098\u00d0\u00bd\u00d1\u0084\u00d0\u00be\u00d1\u0080\u00d0\u00bc\u00d0\u00b0\u00d1\u0086\u00d0\u00b8\u00d1\u008f \u00d0\u00be \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5
+userDetails=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435
+userForm=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget.properties
deleted file mode 100644
index dd5b98f..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget.properties
+++ /dev/null
@@ -1,21 +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.
-alerts.view.all=View all approvals
-duedate=Due date
-owner=Owner
-createApproval=Create Approval
-summary=${number} pending approval(s)
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_it.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_it.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_it.properties
deleted file mode 100644
index 7b2287e..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_it.properties
+++ /dev/null
@@ -1,21 +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.
-alerts.view.all=Tutte le approvazioni
-duedate=Scadenza
-owner=Assegnato
-createApproval=Approvazione Creazione
-summary=${number} approvazioni pendenti
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_ja.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_ja.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_ja.properties
deleted file mode 100644
index a6089eb..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_ja.properties
+++ /dev/null
@@ -1,21 +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.
-alerts.view.all=\u3059\u3079\u3066\u306e\u627f\u8a8d\u3092\u8868\u793a
-duedate=\u671f\u9650
-owner=\u30aa\u30fc\u30ca\u30fc
-createApproval=\u627f\u8a8d\u3092\u4f5c\u6210
-summary=${number} \u4fdd\u7559\u306e\u627f\u8a8d
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_pt_BR.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_pt_BR.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_pt_BR.properties
deleted file mode 100644
index c24f3d8..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_pt_BR.properties
+++ /dev/null
@@ -1,21 +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.
-alerts.view.all=View all Approvals
-duedate=Due date
-owner=Owner
-createApproval=Create Approval
-summary=${number} pending approval(s)
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_ru.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_ru.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_ru.properties
deleted file mode 100644
index 10281ff..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_ru.properties
+++ /dev/null
@@ -1,22 +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.
-#
-alerts.view.all=\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u0437\u0430\u044f\u0432\u043a\u0438
-duedate=\u0421\u0440\u043e\u043a
-owner=\u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446
-createApproval=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0437\u0430\u044f\u0432\u043a\u0443
-summary=\u041e\u0436\u0438\u0434\u0430\u044e\u0442 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u044f: ${number}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.properties
new file mode 100644
index 0000000..36e1e2e
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.properties
@@ -0,0 +1,20 @@
+# 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.
+alerts.view.all=View all forms
+duedate=Due date
+owner=Owner
+summary=${number} pending form(s)
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_it.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_it.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_it.properties
new file mode 100644
index 0000000..bf3e9ad
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_it.properties
@@ -0,0 +1,20 @@
+# 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.
+alerts.view.all=Tutte le form
+duedate=Scadenza
+owner=Assegnato
+summary=${number} form pendenti
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_ja.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_ja.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_ja.properties
new file mode 100644
index 0000000..0d938e3
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_ja.properties
@@ -0,0 +1,20 @@
+# 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.
+alerts.view.all=View all forms
+duedate=\u671f\u9650
+owner=\u30aa\u30fc\u30ca\u30fc
+summary=${number} pending form(s)
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_pt_BR.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_pt_BR.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_pt_BR.properties
new file mode 100644
index 0000000..36e1e2e
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_pt_BR.properties
@@ -0,0 +1,20 @@
+# 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.
+alerts.view.all=View all forms
+duedate=Due date
+owner=Owner
+summary=${number} pending form(s)
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_ru.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_ru.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_ru.properties
new file mode 100644
index 0000000..e713681
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_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.
+#
+alerts.view.all=View all forms
+duedate=\u0421\u0440\u043e\u043a
+owner=\u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446
+summary=${number} pending form(s)
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/common-lib/src/main/java/org/apache/syncope/common/lib/to/UserRequest.java
----------------------------------------------------------------------
diff --git a/ext/flowable/common-lib/src/main/java/org/apache/syncope/common/lib/to/UserRequest.java b/ext/flowable/common-lib/src/main/java/org/apache/syncope/common/lib/to/UserRequest.java
index 251eb89..9b65845 100644
--- a/ext/flowable/common-lib/src/main/java/org/apache/syncope/common/lib/to/UserRequest.java
+++ b/ext/flowable/common-lib/src/main/java/org/apache/syncope/common/lib/to/UserRequest.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.common.lib.to;
+import java.util.Date;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import org.apache.syncope.common.lib.AbstractBaseBean;
@@ -30,7 +31,9 @@ public class UserRequest extends AbstractBaseBean {
private String bpmnProcess;
- private String user;
+ private Date startTime;
+
+ private String username;
private String executionId;
@@ -44,12 +47,20 @@ public class UserRequest extends AbstractBaseBean {
this.bpmnProcess = bpmnProcess;
}
- public String getUser() {
- return user;
+ public Date getStartTime() {
+ return startTime;
+ }
+
+ public void setStartTime(final Date startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getUsername() {
+ return username;
}
- public void setUser(final String user) {
- this.user = user;
+ public void setUsername(final String username) {
+ this.username = username;
}
public String getExecutionId() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserRequestHandler.java
----------------------------------------------------------------------
diff --git a/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserRequestHandler.java b/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserRequestHandler.java
index 45a834b..c1d20b1 100644
--- a/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserRequestHandler.java
+++ b/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserRequestHandler.java
@@ -62,9 +62,7 @@ import org.flowable.engine.form.TaskFormData;
import org.flowable.engine.history.HistoricActivityInstance;
import org.flowable.engine.impl.persistence.entity.ExecutionEntity;
import org.flowable.engine.impl.persistence.entity.HistoricFormPropertyEntity;
-import org.flowable.engine.runtime.NativeProcessInstanceQuery;
import org.flowable.engine.runtime.ProcessInstance;
-import org.flowable.engine.runtime.ProcessInstanceQuery;
import org.flowable.task.api.Task;
import org.flowable.task.api.TaskQuery;
import org.flowable.task.api.history.HistoricTaskInstance;
@@ -99,26 +97,28 @@ public class FlowableUserRequestHandler implements UserRequestHandler {
@Autowired
protected EntityFactory entityFactory;
- protected NativeProcessInstanceQuery createProcessInstanceQuery(final String userKey) {
- return engine.getRuntimeService().createNativeProcessInstanceQuery().
- sql("SELECT DISTINCT ID_,BUSINESS_KEY_,ACT_ID_ FROM "
- + engine.getManagementService().getTableName(ExecutionEntity.class)
- + " WHERE BUSINESS_KEY_ LIKE '"
- + FlowableRuntimeUtils.getProcBusinessKey("%", userKey) + "'"
- + " AND BUSINESS_KEY_ NOT LIKE '"
- + FlowableRuntimeUtils.getProcBusinessKey(FlowableRuntimeUtils.WF_PROCESS_ID, "%") + "'"
- + " AND PARENT_ID_ IS NULL");
+ protected StringBuilder createProcessInstanceQuery(final String userKey) {
+ StringBuilder query = new StringBuilder().
+ append("SELECT DISTINCT ID_,BUSINESS_KEY_,PROC_DEF_ID_,PROC_INST_ID_,START_TIME_ FROM ").
+ append(engine.getManagementService().getTableName(ExecutionEntity.class)).
+ append(" WHERE BUSINESS_KEY_ NOT LIKE '").
+ append(FlowableRuntimeUtils.getProcBusinessKey(FlowableRuntimeUtils.WF_PROCESS_ID, "%")).
+ append("'");
+ if (userKey != null) {
+ query.append(" AND BUSINESS_KEY_ LIKE '").
+ append(FlowableRuntimeUtils.getProcBusinessKey("%", userKey)).
+ append("'");
+ }
+ query.append(" AND PARENT_ID_ IS NULL");
+
+ return query;
}
- protected int countProcessInstances(final String userKey) {
+ protected int countProcessInstances(final StringBuilder processInstanceQuery) {
return (int) engine.getRuntimeService().createNativeProcessInstanceQuery().
sql("SELECT COUNT(ID_) FROM "
- + engine.getManagementService().getTableName(ExecutionEntity.class)
- + " WHERE BUSINESS_KEY_ LIKE '"
- + FlowableRuntimeUtils.getProcBusinessKey("%", userKey) + "'"
- + " AND BUSINESS_KEY_ NOT LIKE '"
- + FlowableRuntimeUtils.getProcBusinessKey(FlowableRuntimeUtils.WF_PROCESS_ID, "%") + "'"
- + " AND PARENT_ID_ IS NULL").count();
+ + StringUtils.substringAfter(processInstanceQuery.toString(), " FROM ")).
+ count();
}
protected UserRequest getUserRequest(final ProcessInstance procInst) {
@@ -126,9 +126,11 @@ public class FlowableUserRequestHandler implements UserRequestHandler {
UserRequest userRequest = new UserRequest();
userRequest.setBpmnProcess(split.getLeft());
- userRequest.setUser(split.getRight());
+ userRequest.setStartTime(procInst.getStartTime());
+ userRequest.setUsername(userDAO.find(split.getRight()).getUsername());
userRequest.setExecutionId(procInst.getId());
- userRequest.setActivityId(procInst.getActivityId());
+ userRequest.setActivityId(FlowableRuntimeUtils.createTaskQuery(engine, false).
+ processInstanceId(procInst.getProcessInstanceId()).singleResult().getTaskDefinitionKey());
return userRequest;
}
@@ -140,23 +142,25 @@ public class FlowableUserRequestHandler implements UserRequestHandler {
final int size,
final List<OrderByClause> orderByClauses) {
- Integer count = null;
- List<UserRequest> result = null;
- if (userKey == null) {
- ProcessInstanceQuery query = engine.getRuntimeService().createProcessInstanceQuery().active();
+ StringBuilder query = createProcessInstanceQuery(userKey);
+ Integer count = countProcessInstances(query);
+
+ if (!orderByClauses.isEmpty()) {
+ query.append(" ORDER BY");
+
for (OrderByClause clause : orderByClauses) {
boolean sorted = true;
switch (clause.getField().trim()) {
- case "processDefinitionId":
- query.orderByProcessDefinitionId();
+ case "bpmnProcess":
+ query.append(" PROC_DEF_ID_");
break;
- case "processDefinitionKey":
- query.orderByProcessDefinitionKey();
+ case "startTime":
+ query.append(" START_TIME_");
break;
- case "processInstanceId":
- query.orderByProcessInstanceId();
+ case "executionId":
+ query.append(" PROC_INST_ID_");
break;
default:
@@ -165,24 +169,22 @@ public class FlowableUserRequestHandler implements UserRequestHandler {
}
if (sorted) {
if (clause.getDirection() == OrderByClause.Direction.ASC) {
- query.asc();
+ query.append(" ASC,");
} else {
- query.desc();
+ query.append(" DESC,");
}
}
-
- count = (int) query.count();
- result = query.listPage(size * (page <= 0 ? 0 : page - 1), size).stream().
- map(procInst -> getUserRequest(procInst)).
- collect(Collectors.toList());
}
- } else {
- count = countProcessInstances(userKey);
- result = createProcessInstanceQuery(userKey).listPage(size * (page <= 0 ? 0 : page - 1), size).stream().
- map(procInst -> getUserRequest(procInst)).
- collect(Collectors.toList());
+
+ query.setLength(query.length() - 1);
}
+ List<UserRequest> result = engine.getRuntimeService().createNativeProcessInstanceQuery().
+ sql(query.toString()).
+ listPage(size * (page <= 0 ? 0 : page - 1), size).stream().
+ map(procInst -> getUserRequest(procInst)).
+ collect(Collectors.toList());
+
return Pair.of(count, result);
}
@@ -256,8 +258,9 @@ public class FlowableUserRequestHandler implements UserRequestHandler {
public void cancelByUser(final AnyDeletedEvent event) {
if (AuthContextUtils.getDomain().equals(event.getDomain()) && event.getAnyTypeKind() == AnyTypeKind.USER) {
String username = event.getAnyName();
- createProcessInstanceQuery(event.getAnyKey()).list().
- forEach(procInst -> {
+ engine.getRuntimeService().createNativeProcessInstanceQuery().
+ sql(createProcessInstanceQuery(event.getAnyKey()).toString()).
+ list().forEach(procInst -> {
engine.getRuntimeService().deleteProcessInstance(
procInst.getId(), "Cascade Delete user " + username);
});
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
index ef199be..77a01ae 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
@@ -69,8 +69,8 @@ public class UserRequestITCase extends AbstractITCase {
assertNotNull(req);
assertEquals("directorGroupRequest", req.getBpmnProcess());
assertNotNull(req.getExecutionId());
- assertEquals(req.getUser(), user.getKey());
-
+ assertEquals(req.getUsername(), user.getUsername());
+
// check that user can see the ongoing request
SyncopeClient client = clientFactory.create(user.getUsername(), "password123");
PagedResult<UserRequest> requests = client.getService(UserRequestService.class).
[6/6] syncope git commit: [SYNCOPE-1369] Some refinements + admin
console suport
Posted by il...@apache.org.
[SYNCOPE-1369] Some refinements + admin console suport
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/9d78874f
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/9d78874f
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/9d78874f
Branch: refs/heads/master
Commit: 9d78874fb7edb84a616b274c8af5160d3ef7f826
Parents: 1302734
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Tue Oct 9 17:08:13 2018 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Tue Oct 9 17:08:35 2018 +0200
----------------------------------------------------------------------
.../console/SyncopeConsoleApplication.java | 4 +-
.../client/console/commons/Constants.java | 2 -
.../client/console/rest/ReportRestClient.java | 2 -
.../console/tasks/SchedTaskDirectoryPanel.java | 6 +-
.../client/console/approvals/Approval.java | 201 -----------
.../console/approvals/ApprovalDetails.java | 63 ----
.../approvals/ApprovalDirectoryPanel.java | 352 ------------------
.../client/console/approvals/ApprovalModal.java | 82 -----
.../syncope/client/console/pages/Approvals.java | 41 ---
.../syncope/client/console/pages/Flowable.java | 7 -
.../client/console/pages/UserRequests.java | 74 ++++
.../panels/UserRequestDirectoryPanel.java | 163 +++++++++
.../console/panels/UserRequestFormDetails.java | 62 ++++
.../panels/UserRequestFormDirectoryPanel.java | 353 +++++++++++++++++++
.../console/panels/UserRequestFormModal.java | 79 +++++
.../console/panels/UserRequestFormPanel.java | 200 +++++++++++
.../console/rest/UserRequestRestClient.java | 18 +
.../client/console/widgets/ApprovalsWidget.java | 128 -------
.../console/widgets/UserRequestFormsWidget.java | 128 +++++++
.../client/console/approvals/Approval.html | 31 --
.../console/approvals/Approval.properties | 18 -
.../console/approvals/ApprovalDetails.html | 23 --
.../client/console/approvals/ApprovalModal.html | 23 --
.../console/approvals/ApprovalModal.properties | 17 -
.../approvals/ApprovalModal_it.properties | 17 -
.../approvals/ApprovalModal_ja.properties | 17 -
.../approvals/ApprovalModal_pt_BR.properties | 17 -
.../approvals/ApprovalModal_ru.properties | 17 -
.../console/approvals/Approval_it.properties | 18 -
.../console/approvals/Approval_ja.properties | 18 -
.../console/approvals/Approval_pt_BR.properties | 18 -
.../console/approvals/Approval_ru.properties | 20 --
.../syncope/client/console/pages/Approvals.html | 35 --
.../client/console/pages/Approvals.properties | 34 --
.../console/pages/Approvals_it.properties | 34 --
.../console/pages/Approvals_ja.properties | 34 --
.../console/pages/Approvals_pt_BR.properties | 34 --
.../console/pages/Approvals_ru.properties | 52 ---
.../client/console/pages/UserRequests.html | 35 ++
.../console/pages/UserRequests.properties | 38 ++
.../console/pages/UserRequests_it.properties | 38 ++
.../console/pages/UserRequests_ja.properties | 38 ++
.../console/pages/UserRequests_pt_BR.properties | 38 ++
.../console/pages/UserRequests_ru.properties | 56 +++
.../console/panels/UserRequestFormDetails.html | 23 ++
.../console/panels/UserRequestFormModal.html | 23 ++
.../panels/UserRequestFormModal.properties | 17 +
.../panels/UserRequestFormModal_it.properties | 17 +
.../panels/UserRequestFormModal_ja.properties | 17 +
.../UserRequestFormModal_pt_BR.properties | 17 +
.../panels/UserRequestFormModal_ru.properties | 17 +
.../console/panels/UserRequestFormPanel.html | 31 ++
.../panels/UserRequestFormPanel.properties | 18 +
.../panels/UserRequestFormPanel_it.properties | 18 +
.../panels/UserRequestFormPanel_ja.properties | 18 +
.../UserRequestFormPanel_pt_BR.properties | 18 +
.../panels/UserRequestFormPanel_ru.properties | 20 ++
.../console/widgets/ApprovalsWidget.properties | 21 --
.../widgets/ApprovalsWidget_it.properties | 21 --
.../widgets/ApprovalsWidget_ja.properties | 21 --
.../widgets/ApprovalsWidget_pt_BR.properties | 21 --
.../widgets/ApprovalsWidget_ru.properties | 22 --
.../widgets/UserRequestFormsWidget.properties | 20 ++
.../UserRequestFormsWidget_it.properties | 20 ++
.../UserRequestFormsWidget_ja.properties | 20 ++
.../UserRequestFormsWidget_pt_BR.properties | 20 ++
.../UserRequestFormsWidget_ru.properties | 21 ++
.../syncope/common/lib/to/UserRequest.java | 21 +-
.../impl/FlowableUserRequestHandler.java | 91 ++---
.../syncope/fit/core/UserRequestITCase.java | 4 +-
70 files changed, 1744 insertions(+), 1518 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
index 2e15b19..f03f823 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
@@ -62,7 +62,7 @@ import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.request.resource.AbstractResource;
import org.apache.wicket.request.resource.IResource;
import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.resource.DynamicJQueryResourceReference;
+import org.apache.wicket.resource.JQueryResourceReference;
import org.apache.wicket.util.lang.Args;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -190,7 +190,7 @@ public class SyncopeConsoleApplication extends AuthenticatedWebApplication {
getResourceSettings().setThrowExceptionOnMissingResource(true);
- getJavaScriptLibrarySettings().setJQueryReference(new DynamicJQueryResourceReference());
+ getJavaScriptLibrarySettings().setJQueryReference(JQueryResourceReference.getV2());
getSecuritySettings().setAuthorizationStrategy(new MetaDataRoleAuthorizationStrategy(this));
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/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 48b58137..2e60aa9 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
@@ -123,8 +123,6 @@ public final class Constants {
public static final String PREF_ACCESS_TOKEN_PAGINATOR_ROWS = "accessToken.paginator.rows";
- public static final String PREF_WORKFLOW_FORM_PAGINATOR_ROWS = "workflow.paginator.rows";
-
public static final String PREF_REMEDIATION_PAGINATOR_ROWS = "remediation.paginator.rows";
public static final String PREF_RESOURCES_PAGINATOR_ROWS = "resources.paginator.rows";
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java
index 8b60941..a80cdcb 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java
@@ -18,8 +18,6 @@
*/
package org.apache.syncope.client.console.rest;
-import static org.apache.syncope.client.console.rest.BaseRestClient.getStatus;
-
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/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 0dc445d..c333f34 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
@@ -229,8 +229,7 @@ public abstract class SchedTaskDirectoryPanel<T extends SchedTaskTO>
new AjaxWizard.EditItemActionEvent<>(clone, target).setResourceModel(
new StringResourceModel("inner.task.clone",
SchedTaskDirectoryPanel.this,
- Model.of(Pair.of(
- ActionLink.ActionType.CLONE, model.getObject())))));
+ Model.of(Pair.of(ActionLink.ActionType.CLONE, model.getObject())))));
}
}, ActionLink.ActionType.CLONE, StandardEntitlement.TASK_CREATE);
@@ -241,8 +240,7 @@ public abstract class SchedTaskDirectoryPanel<T extends SchedTaskTO>
@Override
public void onClick(final AjaxRequestTarget target, final T ignore) {
SchedTaskDirectoryPanel.this.getTogglePanel().close(target);
- startAt.setExecutionDetail(
- model.getObject().getKey(), model.getObject().getName(), target);
+ startAt.setExecutionDetail(model.getObject().getKey(), model.getObject().getName(), target);
startAt.toggle(target, true);
}
}, ActionLink.ActionType.EXECUTE, StandardEntitlement.TASK_EXECUTE);
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java
deleted file mode 100644
index 6a66afc..0000000
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java
+++ /dev/null
@@ -1,201 +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.approvals;
-
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.math.NumberUtils;
-import org.apache.commons.lang3.time.FastDateFormat;
-import org.apache.syncope.client.console.commons.MapChoiceRenderer;
-import org.apache.syncope.client.console.panels.MultilevelPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.AjaxSpinnerFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDateTimeFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
-import org.apache.syncope.common.lib.to.UserRequestFormProperty;
-import org.apache.syncope.common.lib.to.UserRequestForm;
-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.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
-import org.apache.wicket.markup.html.list.ListItem;
-import org.apache.wicket.markup.html.list.ListView;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.LoadableDetachableModel;
-import org.apache.wicket.model.PropertyModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public abstract class Approval extends Panel {
-
- private static final long serialVersionUID = -8847854414429745216L;
-
- protected static final Logger LOG = LoggerFactory.getLogger(Approval.class);
-
- public Approval(final PageReference pageRef, final UserRequestForm formTO) {
- super(MultilevelPanel.FIRST_LEVEL_ID);
-
- IModel<List<UserRequestFormProperty>> formProps = new LoadableDetachableModel<List<UserRequestFormProperty>>() {
-
- private static final long serialVersionUID = 3169142472626817508L;
-
- @Override
- protected List<UserRequestFormProperty> load() {
- return formTO.getProperties();
- }
- };
-
- ListView<UserRequestFormProperty> propView = new ListView<UserRequestFormProperty>("propView", formProps) {
-
- private static final long serialVersionUID = 9101744072914090143L;
-
- @Override
- @SuppressWarnings({ "unchecked", "rawtypes" })
- protected void populateItem(final ListItem<UserRequestFormProperty> item) {
- final UserRequestFormProperty prop = item.getModelObject();
-
- String label = StringUtils.isBlank(prop.getName()) ? prop.getId() : prop.getName();
-
- FieldPanel field;
- switch (prop.getType()) {
- case Boolean:
- field = new AjaxDropDownChoicePanel("value", label, new PropertyModel<String>(prop, "value") {
-
- private static final long serialVersionUID = -3743432456095828573L;
-
- @Override
- public String getObject() {
- return StringUtils.isBlank(prop.getValue())
- ? null
- : prop.getValue().equals("true") ? "Yes" : "No";
- }
-
- @Override
- public void setObject(final String object) {
- prop.setValue(String.valueOf(object.equalsIgnoreCase("yes")));
- }
-
- }, false).setChoices(Arrays.asList(new String[] { "Yes", "No" }));
- break;
-
- case Date:
- FastDateFormat formatter = FastDateFormat.getInstance(prop.getDatePattern());
- field = new AjaxDateTimeFieldPanel("value", label, new PropertyModel<Date>(prop, "value") {
-
- private static final long serialVersionUID = -3743432456095828573L;
-
- @Override
- public Date getObject() {
- try {
- return StringUtils.isBlank(prop.getValue())
- ? null
- : formatter.parse(prop.getValue());
- } catch (ParseException e) {
- LOG.error("Unparsable date: {}", prop.getValue(), e);
- return null;
- }
- }
-
- @Override
- public void setObject(final Date object) {
- prop.setValue(formatter.format(object));
- }
-
- }, prop.getDatePattern());
- break;
-
- case Enum:
- field = new AjaxDropDownChoicePanel(
- "value", label, new PropertyModel<String>(prop, "value"), false).
- setChoiceRenderer(new MapChoiceRenderer(prop.getEnumValues())).
- setChoices(new ArrayList<>(prop.getEnumValues().keySet()));
- break;
-
- case Dropdown:
- field = new AjaxDropDownChoicePanel(
- "value", label, new PropertyModel<String>(prop, "value"), false).
- setChoiceRenderer(new MapChoiceRenderer(prop.getDropdownValues())).
- setChoices(new ArrayList<>(prop.getDropdownValues().keySet()));
- break;
-
- case Long:
- field = new AjaxSpinnerFieldPanel.Builder<Long>().build(
- "value",
- label,
- Long.class,
- new PropertyModel<Long>(prop, "value") {
-
- private static final long serialVersionUID = -7688359318035249200L;
-
- @Override
- public Long getObject() {
- return StringUtils.isBlank(prop.getValue())
- ? null
- : NumberUtils.toLong(prop.getValue());
- }
-
- @Override
- public void setObject(final Long object) {
- prop.setValue(String.valueOf(object));
- }
- });
- break;
-
- case String:
- default:
- field = new AjaxTextFieldPanel("value", label, new PropertyModel<>(prop, "value"), false);
- break;
- }
-
- field.setReadOnly(!prop.isWritable());
- if (prop.isRequired()) {
- field.addRequiredLabel();
- }
-
- item.add(field);
- }
- };
-
- AjaxLink<String> userDetails = new AjaxLink<String>("userDetails") {
-
- private static final long serialVersionUID = -4804368561204623354L;
-
- @Override
- public void onClick(final AjaxRequestTarget target) {
- viewDetails(target);
- }
- };
- MetaDataRoleAuthorizationStrategy.authorize(userDetails, ENABLE, StandardEntitlement.USER_READ);
-
- boolean enabled = formTO.getUserTO() != null;
- userDetails.setVisible(enabled).setEnabled(enabled);
-
- add(propView);
- add(userDetails);
- }
-
- protected abstract void viewDetails(final AjaxRequestTarget target);
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDetails.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDetails.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDetails.java
deleted file mode 100644
index 9606824..0000000
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDetails.java
+++ /dev/null
@@ -1,63 +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.approvals;
-
-import org.apache.syncope.client.console.layout.UserFormLayoutInfo;
-import org.apache.syncope.client.console.panels.MultilevelPanel;
-import org.apache.syncope.client.console.rest.AnyTypeRestClient;
-import org.apache.syncope.client.console.wizards.AjaxWizard;
-import org.apache.syncope.client.console.wizards.any.UserWizardBuilder;
-import org.apache.syncope.common.lib.AnyOperations;
-import org.apache.syncope.common.lib.to.UserTO;
-import org.apache.syncope.common.lib.to.UserRequestForm;
-import org.apache.syncope.common.lib.types.AnyTypeKind;
-import org.apache.wicket.PageReference;
-
-public class ApprovalDetails extends MultilevelPanel.SecondLevel {
-
- private static final long serialVersionUID = -8847854414429745216L;
-
- public ApprovalDetails(final PageReference pageRef, final UserRequestForm formTO) {
- super(MultilevelPanel.SECOND_LEVEL_ID);
-
- final UserTO newUserTO;
- final UserTO previousUserTO;
- if (formTO.getUserPatch() == null) {
- newUserTO = formTO.getUserTO();
- previousUserTO = null;
- } else if (formTO.getUserTO() == null) {
- // make it stronger by handling possible NPE
- previousUserTO = new UserTO();
- previousUserTO.setKey(formTO.getUserPatch().getKey());
- newUserTO = AnyOperations.patch(previousUserTO, formTO.getUserPatch());
- } else {
- formTO.getUserTO().setKey(formTO.getUserPatch().getKey());
- newUserTO = AnyOperations.patch(formTO.getUserTO(), formTO.getUserPatch());
- previousUserTO = formTO.getUserTO();
- }
-
- add(new UserWizardBuilder(
- previousUserTO,
- newUserTO,
- new AnyTypeRestClient().read(AnyTypeKind.USER.name()).getClasses(),
- new UserFormLayoutInfo(),
- pageRef).
- build(AjaxWizard.Mode.READONLY));
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java
deleted file mode 100644
index 577ea65..0000000
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java
+++ /dev/null
@@ -1,352 +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.approvals;
-
-import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
-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.commons.lang3.StringUtils;
-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.DirectoryPanel;
-import org.apache.syncope.client.console.rest.UserRequestRestClient;
-import org.apache.syncope.client.console.approvals.ApprovalDirectoryPanel.ApprovalProvider;
-import org.apache.syncope.client.console.layout.FormLayoutInfoUtils;
-import org.apache.syncope.client.console.layout.UserFormLayoutInfo;
-import org.apache.syncope.client.console.pages.BasePage;
-import org.apache.syncope.client.console.rest.AnyTypeRestClient;
-import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.DatePropertyColumn;
-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.ActionsPanel;
-import org.apache.syncope.client.console.widgets.ApprovalsWidget;
-import org.apache.syncope.client.console.wizards.AjaxWizard;
-import org.apache.syncope.client.console.wizards.any.AnyWrapper;
-import org.apache.syncope.client.console.wizards.any.UserWizardBuilder;
-import org.apache.syncope.common.lib.AnyOperations;
-import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.patch.PasswordPatch;
-import org.apache.syncope.common.lib.patch.UserPatch;
-import org.apache.syncope.common.lib.to.ProvisioningResult;
-import org.apache.syncope.common.lib.to.UserTO;
-import org.apache.syncope.common.lib.to.UserRequestForm;
-import org.apache.syncope.common.lib.types.AnyTypeKind;
-import org.apache.syncope.common.lib.types.FlowableEntitlement;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
-import org.apache.wicket.event.Broadcast;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-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.model.CompoundPropertyModel;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.model.ResourceModel;
-
-public class ApprovalDirectoryPanel
- extends DirectoryPanel<UserRequestForm, UserRequestForm, ApprovalProvider, UserRequestRestClient> {
-
- private static final long serialVersionUID = -7122136682275797903L;
-
- protected final BaseModal<UserRequestForm> manageApprovalModal = new BaseModal<UserRequestForm>("outer") {
-
- private static final long serialVersionUID = 389935548143327858L;
-
- @Override
- protected void onConfigure() {
- super.onConfigure();
- addSubmitButton();
- size(Modal.Size.Large);
- }
-
- };
-
- public ApprovalDirectoryPanel(final String id, final PageReference pageReference) {
- super(id, pageReference, true);
- disableCheckBoxes();
- setFooterVisibility(false);
- modal.size(Modal.Size.Large);
-
- addOuterObject(manageApprovalModal);
-
- manageApprovalModal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
-
- private static final long serialVersionUID = 8804221891699487139L;
-
- @Override
- public void onClose(final AjaxRequestTarget target) {
- updateResultTable(target);
-
- Serializable widget = SyncopeConsoleSession.get().getAttribute(ApprovalsWidget.class.getName());
- if (widget instanceof ApprovalsWidget) {
- ((ApprovalsWidget) widget).refreshLatestAlerts(target);
- }
-
- manageApprovalModal.show(false);
- }
- });
-
- restClient = new UserRequestRestClient();
-
- initResultTable();
-
- MetaDataRoleAuthorizationStrategy.authorize(addAjaxLink, RENDER, FlowableEntitlement.USER_REQUEST_FORM_SUBMIT);
- }
-
- @Override
- protected List<IColumn<UserRequestForm, String>> getColumns() {
- List<IColumn<UserRequestForm, String>> columns = new ArrayList<>();
-
- columns.add(new PropertyColumn<>(
- new ResourceModel("bpmnProcess"), "bpmnProcess", "bpmnProcess"));
- columns.add(new PropertyColumn<>(
- new ResourceModel("key"), "formKey", "formKey"));
- columns.add(new PropertyColumn<>(
- new ResourceModel("username"), "username"));
- columns.add(new DatePropertyColumn<>(
- new ResourceModel("createTime"), "createTime", "createTime"));
- columns.add(new DatePropertyColumn<>(
- new ResourceModel("dueDate"), "dueDate", "dueDate"));
- columns.add(new PropertyColumn<>(
- new ResourceModel("owner"), "owner", "owner"));
-
- return columns;
- }
-
- @Override
- public ActionsPanel<UserRequestForm> getActions(final IModel<UserRequestForm> model) {
- final ActionsPanel<UserRequestForm> panel = super.getActions(model);
-
- panel.add(new ActionLink<UserRequestForm>() {
-
- private static final long serialVersionUID = -3722207913631435501L;
-
- @Override
- public void onClick(final AjaxRequestTarget target, final UserRequestForm ignore) {
- claimForm(model.getObject().getTaskId());
- SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
- ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
- target.add(container);
- }
- }, ActionLink.ActionType.CLAIM, FlowableEntitlement.USER_REQUEST_FORM_CLAIM);
-
- panel.add(new ActionLink<UserRequestForm>() {
-
- private static final long serialVersionUID = -3722207913631435501L;
-
- @Override
- public void onClick(final AjaxRequestTarget target, final UserRequestForm ignore) {
- manageApprovalModal.setFormModel(new CompoundPropertyModel<>(model.getObject()));
-
- target.add(manageApprovalModal.setContent(
- new ApprovalModal(manageApprovalModal, pageRef, model.getObject()) {
-
- private static final long serialVersionUID = 5546519445061007248L;
-
- @Override
- public void onSubmit(final AjaxRequestTarget target) {
- try {
- super.onSubmit(target);
-
- ApprovalDirectoryPanel.this.getTogglePanel().close(target);
- } catch (SyncopeClientException e) {
- SyncopeConsoleSession.get().error(getString(Constants.ERROR) + ": " + e.getMessage());
- }
- ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
- }
-
- }));
-
- manageApprovalModal.header(new Model<>(getString("approval.manage", new Model<>(model.getObject()))));
- manageApprovalModal.show(true);
- }
-
- @Override
- protected boolean statusCondition(final UserRequestForm modelObject) {
- return SyncopeConsoleSession.get().getSelfTO().getUsername().
- equals(model.getObject().getOwner());
- }
-
- }, ActionLink.ActionType.MANAGE_APPROVAL, FlowableEntitlement.USER_REQUEST_FORM_SUBMIT);
-
- // SYNCOPE-1200 edit user while in approval state
- panel.add(new ActionLink<UserRequestForm>() {
-
- private static final long serialVersionUID = -3722207913631435501L;
-
- @Override
- public void onClick(final AjaxRequestTarget target, final UserRequestForm ignore) {
- modal.setFormModel(new CompoundPropertyModel<>(model.getObject()));
-
- UserRequestForm formTO = model.getObject();
- UserTO newUserTO;
- UserTO previousUserTO;
- if (formTO.getUserPatch() == null) {
- newUserTO = formTO.getUserTO();
- previousUserTO = null;
- } else if (formTO.getUserTO() == null) {
- // make it stronger by handling possible NPE
- previousUserTO = new UserTO();
- previousUserTO.setKey(formTO.getUserPatch().getKey());
- newUserTO = AnyOperations.patch(previousUserTO, formTO.getUserPatch());
- } else {
- previousUserTO = formTO.getUserTO();
- formTO.getUserTO().setKey(formTO.getUserPatch().getKey());
- formTO.getUserTO().setPassword(null);
- newUserTO = AnyOperations.patch(formTO.getUserTO(), formTO.getUserPatch());
- }
-
- AjaxWizard.EditItemActionEvent<UserTO> editItemActionEvent =
- new AjaxWizard.EditItemActionEvent<>(newUserTO, target);
- editItemActionEvent.forceModalPanel(new ApprovalUserWizardBuilder(
- model.getObject(),
- previousUserTO,
- newUserTO,
- new AnyTypeRestClient().read(AnyTypeKind.USER.name()).getClasses(),
- FormLayoutInfoUtils.fetch(Collections.singletonList(AnyTypeKind.USER.name())).getLeft(),
- pageRef
- ).build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT));
-
- send(ApprovalDirectoryPanel.this, Broadcast.EXACT, editItemActionEvent);
- }
-
- @Override
- protected boolean statusCondition(final UserRequestForm modelObject) {
- return SyncopeConsoleSession.get().getSelfTO().getUsername().
- equals(model.getObject().getOwner());
- }
-
- }, ActionLink.ActionType.EDIT_APPROVAL, FlowableEntitlement.USER_REQUEST_FORM_SUBMIT);
-
- return panel;
- }
-
- @Override
- protected ApprovalProvider dataProvider() {
- return new ApprovalProvider(rows);
- }
-
- @Override
- protected String paginatorRowsKey() {
- return Constants.PREF_WORKFLOW_FORM_PAGINATOR_ROWS;
- }
-
- public static class ApprovalProvider extends DirectoryDataProvider<UserRequestForm> {
-
- private static final long serialVersionUID = -2311716167583335852L;
-
- private final UserRequestRestClient restClient = new UserRequestRestClient();
-
- public ApprovalProvider(final int paginatorRows) {
- super(paginatorRows);
-
- setSort("createTime", SortOrder.ASCENDING);
- }
-
- @Override
- public Iterator<UserRequestForm> iterator(final long first, final long count) {
- int page = ((int) first / paginatorRows);
- return restClient.getForms((page < 0 ? 0 : page) + 1, paginatorRows, getSort()).iterator();
- }
-
- @Override
- public long size() {
- return restClient.countForms();
- }
-
- @Override
- public IModel<UserRequestForm> model(final UserRequestForm form) {
- return new IModel<UserRequestForm>() {
-
- private static final long serialVersionUID = -2566070996511906708L;
-
- @Override
- public UserRequestForm getObject() {
- return form;
- }
- };
- }
- }
-
- @Override
- protected Collection<ActionLink.ActionType> getBatches() {
- return Collections.<ActionLink.ActionType>emptyList();
- }
-
- private void claimForm(final String taskId) {
- try {
- restClient.claimForm(taskId);
- } catch (SyncopeClientException scee) {
- SyncopeConsoleSession.get().error(getString(Constants.ERROR) + ": " + scee.getMessage());
- }
- }
-
- private class ApprovalUserWizardBuilder extends UserWizardBuilder {
-
- private static final long serialVersionUID = 1854981134836384069L;
-
- private final UserRequestForm formTO;
-
- ApprovalUserWizardBuilder(
- final UserRequestForm formTO,
- final UserTO previousUserTO,
- final UserTO userTO,
- final List<String> anyTypeClasses,
- final UserFormLayoutInfo formLayoutInfo,
- final PageReference pageRef) {
-
- super(previousUserTO, userTO, anyTypeClasses, formLayoutInfo, pageRef);
- this.formTO = formTO;
- }
-
- @Override
- protected Serializable onApplyInternal(final AnyWrapper<UserTO> modelObject) {
- UserTO inner = modelObject.getInnerObject();
-
- UserPatch patch = AnyOperations.diff(inner, formTO.getUserTO(), false);
-
- if (StringUtils.isNotBlank(inner.getPassword())) {
- PasswordPatch passwordPatch = new PasswordPatch.Builder().
- value(inner.getPassword()).onSyncope(true).resources(inner.
- getResources()).
- build();
- patch.setPassword(passwordPatch);
- }
-
- // update just if it is changed
- ProvisioningResult<UserTO> result;
- if (patch.isEmpty()) {
- result = new ProvisioningResult<>();
- result.setEntity(inner);
- } else {
- result = userRestClient.update(getOriginalItem().getInnerObject().getETagValue(), patch);
- restClient.getForm(result.getEntity().getKey()).ifPresent(form -> claimForm(form.getTaskId()));
- }
-
- return result;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java
deleted file mode 100644
index 0cae1c8..0000000
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java
+++ /dev/null
@@ -1,82 +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.approvals;
-
-import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.pages.BasePage;
-import org.apache.syncope.client.console.panels.MultilevelPanel;
-import org.apache.syncope.client.console.rest.UserRequestRestClient;
-import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
-import org.apache.syncope.common.lib.to.UserRequestForm;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.syncope.client.console.panels.SubmitableModalPanel;
-import org.apache.syncope.client.console.panels.WizardModalPanel;
-
-public class ApprovalModal extends Panel implements SubmitableModalPanel, WizardModalPanel<UserRequestForm> {
-
- private static final long serialVersionUID = -8847854414429745216L;
-
- private final UserRequestRestClient restClient = new UserRequestRestClient();
-
- private final BaseModal<?> modal;
-
- private final UserRequestForm formTO;
-
- private final PageReference pageRef;
-
- public ApprovalModal(final BaseModal<?> modal, final PageReference pageRef, final UserRequestForm formTO) {
- super(BaseModal.CONTENT_ID);
- this.modal = modal;
- this.formTO = formTO;
- this.pageRef = pageRef;
-
- MultilevelPanel mlp = new MultilevelPanel("approval");
- mlp.setFirstLevel(new Approval(pageRef, formTO) {
-
- private static final long serialVersionUID = -2195387360323687302L;
-
- @Override
- protected void viewDetails(final AjaxRequestTarget target) {
- mlp.next(getString("approval.details"), new ApprovalDetails(pageRef, formTO), target);
- }
- });
- add(mlp);
- }
-
- @Override
- public void onSubmit(final AjaxRequestTarget target) {
- this.restClient.submitForm(formTO);
- this.modal.show(false);
- this.modal.close(target);
- SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
- }
-
- @Override
- public void onError(final AjaxRequestTarget target) {
- ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
- }
-
- @Override
- public UserRequestForm getItem() {
- return this.formTO;
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Approvals.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Approvals.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Approvals.java
deleted file mode 100644
index 0dbc4db..0000000
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Approvals.java
+++ /dev/null
@@ -1,41 +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.pages;
-
-import org.apache.syncope.client.console.BookmarkablePageLinkBuilder;
-import org.apache.syncope.client.console.approvals.ApprovalDirectoryPanel;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
-
-public class Approvals extends BasePage {
-
- private static final long serialVersionUID = -1100228004207271271L;
-
- public Approvals(final PageParameters parameters) {
- super(parameters);
-
- body.add(BookmarkablePageLinkBuilder.build("dashboard", "dashboardBr", Dashboard.class));
-
- WebMarkupContainer content = new WebMarkupContainer("content");
- content.setOutputMarkupId(true);
- body.add(content);
-
- content.add(new ApprovalDirectoryPanel("wfPanel", getPageReference()));
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Flowable.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Flowable.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Flowable.java
index 8062a77..a533897 100644
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Flowable.java
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Flowable.java
@@ -19,7 +19,6 @@
package org.apache.syncope.client.console.pages;
import org.apache.syncope.client.console.BookmarkablePageLinkBuilder;
-import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.annotations.ExtPage;
import org.apache.syncope.client.console.panels.BpmnProcessDirectoryPanel;
import org.apache.syncope.client.console.wizards.WizardMgtPanel;
@@ -57,11 +56,5 @@ public class Flowable extends BaseExtPage {
MetaDataRoleAuthorizationStrategy.authorize(bpmnProcessesPanel, ENABLE, FlowableEntitlement.BPMN_PROCESS_LIST);
content.add(bpmnProcessesPanel);
-
- if (SyncopeConsoleSession.get().getPlatformInfo().getUserWorkflowAdapter().contains("Flowable")) {
- disabled.setVisible(false);
- } else {
- bpmnProcessesPanel.setVisible(false);
- }
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/UserRequests.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/UserRequests.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/UserRequests.java
new file mode 100644
index 0000000..c23e1ad
--- /dev/null
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/UserRequests.java
@@ -0,0 +1,74 @@
+/*
+ * 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.pages;
+
+import de.agilecoders.wicket.core.markup.html.bootstrap.tabs.AjaxBootstrapTabbedPanel;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.syncope.client.console.BookmarkablePageLinkBuilder;
+import org.apache.syncope.client.console.panels.UserRequestFormDirectoryPanel;
+import org.apache.syncope.client.console.panels.UserRequestDirectoryPanel;
+import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
+import org.apache.wicket.extensions.markup.html.tabs.ITab;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.ResourceModel;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+
+public class UserRequests extends BasePage {
+
+ private static final long serialVersionUID = -1100228004207271271L;
+
+ public UserRequests(final PageParameters parameters) {
+ super(parameters);
+
+ body.add(BookmarkablePageLinkBuilder.build("dashboard", "dashboardBr", Dashboard.class));
+
+ WebMarkupContainer content = new WebMarkupContainer("content");
+ content.setOutputMarkupId(true);
+ content.setMarkupId("userRequests");
+ content.add(new AjaxBootstrapTabbedPanel<>("tabbedPanel", buildTabList()));
+ body.add(content);
+ }
+
+ private List<ITab> buildTabList() {
+ final List<ITab> tabs = new ArrayList<>();
+
+ tabs.add(new AbstractTab(new ResourceModel("userRequestForms")) {
+
+ private static final long serialVersionUID = -6815067322125799251L;
+
+ @Override
+ public Panel getPanel(final String panelId) {
+ return new UserRequestFormDirectoryPanel(panelId, getPageReference());
+ }
+ });
+
+ tabs.add(new AbstractTab(new ResourceModel("activeRequests")) {
+
+ private static final long serialVersionUID = -6815067322125799251L;
+
+ @Override
+ public Panel getPanel(final String panelId) {
+ return new UserRequestDirectoryPanel(panelId, getPageReference());
+ }
+ });
+ return tabs;
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestDirectoryPanel.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestDirectoryPanel.java
new file mode 100644
index 0000000..3c043ac
--- /dev/null
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestDirectoryPanel.java
@@ -0,0 +1,163 @@
+/*
+ * 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 de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import org.apache.commons.lang3.StringUtils;
+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.pages.BasePage;
+import org.apache.syncope.client.console.panels.UserRequestDirectoryPanel.UserRequestProvider;
+import org.apache.syncope.client.console.rest.UserRequestRestClient;
+import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.DatePropertyColumn;
+import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
+import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
+import org.apache.syncope.common.lib.SyncopeClientException;
+import org.apache.syncope.common.lib.to.UserRequest;
+import org.apache.syncope.common.lib.types.FlowableEntitlement;
+import org.apache.wicket.PageReference;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
+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.model.IModel;
+import org.apache.wicket.model.ResourceModel;
+
+public class UserRequestDirectoryPanel
+ extends DirectoryPanel<UserRequest, UserRequest, UserRequestProvider, UserRequestRestClient> {
+
+ private static final long serialVersionUID = -5346161040211617763L;
+
+ private static final String PREF_USER_REQUEST_PAGINATOR_ROWS = "userrequest.paginator.rows";
+
+ public UserRequestDirectoryPanel(final String id, final PageReference pageReference) {
+ super(id, pageReference, true);
+ disableCheckBoxes();
+ setFooterVisibility(false);
+ modal.size(Modal.Size.Large);
+
+ restClient = new UserRequestRestClient();
+
+ initResultTable();
+
+ MetaDataRoleAuthorizationStrategy.authorize(addAjaxLink, RENDER, FlowableEntitlement.USER_REQUEST_LIST);
+ }
+
+ @Override
+ protected List<IColumn<UserRequest, String>> getColumns() {
+ List<IColumn<UserRequest, String>> columns = new ArrayList<>();
+
+ columns.add(new PropertyColumn<>(
+ new ResourceModel("bpmnProcess"), "bpmnProcess", "bpmnProcess"));
+ columns.add(new DatePropertyColumn<>(
+ new ResourceModel("startTime"), "startTime", "startTime"));
+ columns.add(new PropertyColumn<>(
+ new ResourceModel("username"), "username"));
+ columns.add(new PropertyColumn<>(
+ new ResourceModel("activityId"), "activityId"));
+
+ return columns;
+ }
+
+ @Override
+ public ActionsPanel<UserRequest> getActions(final IModel<UserRequest> model) {
+ final ActionsPanel<UserRequest> panel = super.getActions(model);
+
+ panel.add(new ActionLink<UserRequest>() {
+
+ private static final long serialVersionUID = -3722207913631435501L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final UserRequest ignore) {
+ try {
+ restClient.cancelRequest(model.getObject().getExecutionId(), null);
+ SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
+ target.add(container);
+ UserRequestDirectoryPanel.this.getTogglePanel().close(target);
+ } catch (SyncopeClientException e) {
+ SyncopeConsoleSession.get().error(StringUtils.isBlank(e.getMessage())
+ ? e.getClass().getName() : e.getMessage());
+ LOG.error("While canceling execution {}", model.getObject().getExecutionId(), e);
+ }
+ ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+ }
+ }, ActionLink.ActionType.DELETE, FlowableEntitlement.USER_REQUEST_CANCEL, true);
+
+ return panel;
+ }
+
+ @Override
+ protected UserRequestProvider dataProvider() {
+ return new UserRequestProvider(rows);
+ }
+
+ @Override
+ protected String paginatorRowsKey() {
+ return PREF_USER_REQUEST_PAGINATOR_ROWS;
+ }
+
+ @Override
+ protected Collection<ActionLink.ActionType> getBatches() {
+ return Collections.<ActionLink.ActionType>emptyList();
+ }
+
+ protected static class UserRequestProvider extends DirectoryDataProvider<UserRequest> {
+
+ private static final long serialVersionUID = -1392420250782313734L;
+
+ private final UserRequestRestClient restClient = new UserRequestRestClient();
+
+ public UserRequestProvider(final int paginatorRows) {
+ super(paginatorRows);
+
+ setSort("startTime", SortOrder.ASCENDING);
+ }
+
+ @Override
+ public Iterator<UserRequest> iterator(final long first, final long count) {
+ int page = ((int) first / paginatorRows);
+ return restClient.getUserRequests((page < 0 ? 0 : page) + 1, paginatorRows, getSort()).iterator();
+ }
+
+ @Override
+ public long size() {
+ return restClient.countUserRequests();
+ }
+
+ @Override
+ public IModel<UserRequest> model(final UserRequest request) {
+ return new IModel<UserRequest>() {
+
+ private static final long serialVersionUID = -2566070996511906708L;
+
+ @Override
+ public UserRequest getObject() {
+ return request;
+ }
+ };
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDetails.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDetails.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDetails.java
new file mode 100644
index 0000000..9c29105
--- /dev/null
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDetails.java
@@ -0,0 +1,62 @@
+/*
+ * 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 org.apache.syncope.client.console.layout.UserFormLayoutInfo;
+import org.apache.syncope.client.console.rest.AnyTypeRestClient;
+import org.apache.syncope.client.console.wizards.AjaxWizard;
+import org.apache.syncope.client.console.wizards.any.UserWizardBuilder;
+import org.apache.syncope.common.lib.AnyOperations;
+import org.apache.syncope.common.lib.to.UserTO;
+import org.apache.syncope.common.lib.to.UserRequestForm;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
+import org.apache.wicket.PageReference;
+
+public class UserRequestFormDetails extends MultilevelPanel.SecondLevel {
+
+ private static final long serialVersionUID = -8847854414429745216L;
+
+ public UserRequestFormDetails(final PageReference pageRef, final UserRequestForm formTO) {
+ super(MultilevelPanel.SECOND_LEVEL_ID);
+
+ final UserTO newUserTO;
+ final UserTO previousUserTO;
+ if (formTO.getUserPatch() == null) {
+ newUserTO = formTO.getUserTO();
+ previousUserTO = null;
+ } else if (formTO.getUserTO() == null) {
+ // make it stronger by handling possible NPE
+ previousUserTO = new UserTO();
+ previousUserTO.setKey(formTO.getUserPatch().getKey());
+ newUserTO = AnyOperations.patch(previousUserTO, formTO.getUserPatch());
+ } else {
+ formTO.getUserTO().setKey(formTO.getUserPatch().getKey());
+ newUserTO = AnyOperations.patch(formTO.getUserTO(), formTO.getUserPatch());
+ previousUserTO = formTO.getUserTO();
+ }
+
+ add(new UserWizardBuilder(
+ previousUserTO,
+ newUserTO,
+ new AnyTypeRestClient().read(AnyTypeKind.USER.name()).getClasses(),
+ new UserFormLayoutInfo(),
+ pageRef).
+ build(AjaxWizard.Mode.READONLY));
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDirectoryPanel.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDirectoryPanel.java
new file mode 100644
index 0000000..bf82896
--- /dev/null
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDirectoryPanel.java
@@ -0,0 +1,353 @@
+/*
+ * 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 de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+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.commons.lang3.StringUtils;
+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.rest.UserRequestRestClient;
+import org.apache.syncope.client.console.panels.UserRequestFormDirectoryPanel.UserRequestFormProvider;
+import org.apache.syncope.client.console.layout.FormLayoutInfoUtils;
+import org.apache.syncope.client.console.layout.UserFormLayoutInfo;
+import org.apache.syncope.client.console.pages.BasePage;
+import org.apache.syncope.client.console.rest.AnyTypeRestClient;
+import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.DatePropertyColumn;
+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.ActionsPanel;
+import org.apache.syncope.client.console.widgets.UserRequestFormsWidget;
+import org.apache.syncope.client.console.wizards.AjaxWizard;
+import org.apache.syncope.client.console.wizards.any.AnyWrapper;
+import org.apache.syncope.client.console.wizards.any.UserWizardBuilder;
+import org.apache.syncope.common.lib.AnyOperations;
+import org.apache.syncope.common.lib.SyncopeClientException;
+import org.apache.syncope.common.lib.patch.PasswordPatch;
+import org.apache.syncope.common.lib.patch.UserPatch;
+import org.apache.syncope.common.lib.to.ProvisioningResult;
+import org.apache.syncope.common.lib.to.UserTO;
+import org.apache.syncope.common.lib.to.UserRequestForm;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
+import org.apache.syncope.common.lib.types.FlowableEntitlement;
+import org.apache.wicket.PageReference;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
+import org.apache.wicket.event.Broadcast;
+import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
+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.model.CompoundPropertyModel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.ResourceModel;
+
+public class UserRequestFormDirectoryPanel
+ extends DirectoryPanel<UserRequestForm, UserRequestForm, UserRequestFormProvider, UserRequestRestClient> {
+
+ private static final long serialVersionUID = -7122136682275797903L;
+
+ private static final String PREF_USER_REQUEST_FORM_PAGINATOR_ROWS = "userrequestform.paginator.rows";
+
+ protected final BaseModal<UserRequestForm> manageFormModal = new BaseModal<UserRequestForm>("outer") {
+
+ private static final long serialVersionUID = 389935548143327858L;
+
+ @Override
+ protected void onConfigure() {
+ super.onConfigure();
+ addSubmitButton();
+ size(Modal.Size.Large);
+ }
+
+ };
+
+ public UserRequestFormDirectoryPanel(final String id, final PageReference pageReference) {
+ super(id, pageReference, true);
+ disableCheckBoxes();
+ setFooterVisibility(false);
+ modal.size(Modal.Size.Large);
+
+ addOuterObject(manageFormModal);
+
+ manageFormModal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
+
+ private static final long serialVersionUID = 8804221891699487139L;
+
+ @Override
+ public void onClose(final AjaxRequestTarget target) {
+ updateResultTable(target);
+
+ Serializable widget = SyncopeConsoleSession.get().getAttribute(UserRequestFormsWidget.class.getName());
+ if (widget instanceof UserRequestFormsWidget) {
+ ((UserRequestFormsWidget) widget).refreshLatestAlerts(target);
+ }
+
+ manageFormModal.show(false);
+ }
+ });
+
+ restClient = new UserRequestRestClient();
+
+ initResultTable();
+
+ MetaDataRoleAuthorizationStrategy.authorize(addAjaxLink, RENDER, FlowableEntitlement.USER_REQUEST_FORM_SUBMIT);
+ }
+
+ @Override
+ protected List<IColumn<UserRequestForm, String>> getColumns() {
+ List<IColumn<UserRequestForm, String>> columns = new ArrayList<>();
+
+ columns.add(new PropertyColumn<>(
+ new ResourceModel("bpmnProcess"), "bpmnProcess", "bpmnProcess"));
+ columns.add(new PropertyColumn<>(
+ new ResourceModel("key"), "formKey", "formKey"));
+ columns.add(new PropertyColumn<>(
+ new ResourceModel("username"), "username"));
+ columns.add(new DatePropertyColumn<>(
+ new ResourceModel("createTime"), "createTime", "createTime"));
+ columns.add(new DatePropertyColumn<>(
+ new ResourceModel("dueDate"), "dueDate", "dueDate"));
+ columns.add(new PropertyColumn<>(
+ new ResourceModel("owner"), "owner", "owner"));
+
+ return columns;
+ }
+
+ @Override
+ public ActionsPanel<UserRequestForm> getActions(final IModel<UserRequestForm> model) {
+ final ActionsPanel<UserRequestForm> panel = super.getActions(model);
+
+ panel.add(new ActionLink<UserRequestForm>() {
+
+ private static final long serialVersionUID = -3722207913631435501L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final UserRequestForm ignore) {
+ claimForm(model.getObject().getTaskId());
+ SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
+ ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+ target.add(container);
+ }
+ }, ActionLink.ActionType.CLAIM, FlowableEntitlement.USER_REQUEST_FORM_CLAIM);
+
+ panel.add(new ActionLink<UserRequestForm>() {
+
+ private static final long serialVersionUID = -3722207913631435501L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final UserRequestForm ignore) {
+ manageFormModal.setFormModel(new CompoundPropertyModel<>(model.getObject()));
+
+ target.add(manageFormModal.setContent(new UserRequestFormModal(manageFormModal, pageRef, model.
+ getObject()) {
+
+ private static final long serialVersionUID = 5546519445061007248L;
+
+ @Override
+ public void onSubmit(final AjaxRequestTarget target) {
+ try {
+ super.onSubmit(target);
+
+ UserRequestFormDirectoryPanel.this.getTogglePanel().close(target);
+ } catch (SyncopeClientException e) {
+ SyncopeConsoleSession.get().error(getString(Constants.ERROR) + ": " + e.getMessage());
+ }
+ ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+ }
+
+ }));
+
+ manageFormModal.header(new Model<>(getString("form.manage", new Model<>(model.getObject()))));
+ manageFormModal.show(true);
+ }
+
+ @Override
+ protected boolean statusCondition(final UserRequestForm modelObject) {
+ return SyncopeConsoleSession.get().getSelfTO().getUsername().
+ equals(model.getObject().getOwner());
+ }
+
+ }, ActionLink.ActionType.MANAGE_APPROVAL, FlowableEntitlement.USER_REQUEST_FORM_SUBMIT);
+
+ // SYNCOPE-1200 edit user while in approval state
+ panel.add(new ActionLink<UserRequestForm>() {
+
+ private static final long serialVersionUID = -3722207913631435501L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final UserRequestForm ignore) {
+ modal.setFormModel(new CompoundPropertyModel<>(model.getObject()));
+
+ UserRequestForm formTO = model.getObject();
+ UserTO newUserTO;
+ UserTO previousUserTO;
+ if (formTO.getUserPatch() == null) {
+ newUserTO = formTO.getUserTO();
+ previousUserTO = null;
+ } else if (formTO.getUserTO() == null) {
+ // make it stronger by handling possible NPE
+ previousUserTO = new UserTO();
+ previousUserTO.setKey(formTO.getUserPatch().getKey());
+ newUserTO = AnyOperations.patch(previousUserTO, formTO.getUserPatch());
+ } else {
+ previousUserTO = formTO.getUserTO();
+ formTO.getUserTO().setKey(formTO.getUserPatch().getKey());
+ formTO.getUserTO().setPassword(null);
+ newUserTO = AnyOperations.patch(formTO.getUserTO(), formTO.getUserPatch());
+ }
+
+ AjaxWizard.EditItemActionEvent<UserTO> editItemActionEvent =
+ new AjaxWizard.EditItemActionEvent<>(newUserTO, target);
+ editItemActionEvent.forceModalPanel(new FormUserWizardBuilder(
+ model.getObject(),
+ previousUserTO,
+ newUserTO,
+ new AnyTypeRestClient().read(AnyTypeKind.USER.name()).getClasses(),
+ FormLayoutInfoUtils.fetch(Collections.singletonList(AnyTypeKind.USER.name())).getLeft(),
+ pageRef
+ ).build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT));
+
+ send(UserRequestFormDirectoryPanel.this, Broadcast.EXACT, editItemActionEvent);
+ }
+
+ @Override
+ protected boolean statusCondition(final UserRequestForm modelObject) {
+ return SyncopeConsoleSession.get().getSelfTO().getUsername().
+ equals(model.getObject().getOwner());
+ }
+
+ }, ActionLink.ActionType.EDIT_APPROVAL, FlowableEntitlement.USER_REQUEST_FORM_SUBMIT);
+
+ return panel;
+ }
+
+ @Override
+ protected UserRequestFormProvider dataProvider() {
+ return new UserRequestFormProvider(rows);
+ }
+
+ @Override
+ protected String paginatorRowsKey() {
+ return PREF_USER_REQUEST_FORM_PAGINATOR_ROWS;
+ }
+
+ protected static class UserRequestFormProvider extends DirectoryDataProvider<UserRequestForm> {
+
+ private static final long serialVersionUID = -2311716167583335852L;
+
+ private final UserRequestRestClient restClient = new UserRequestRestClient();
+
+ public UserRequestFormProvider(final int paginatorRows) {
+ super(paginatorRows);
+
+ setSort("createTime", SortOrder.ASCENDING);
+ }
+
+ @Override
+ public Iterator<UserRequestForm> iterator(final long first, final long count) {
+ int page = ((int) first / paginatorRows);
+ return restClient.getForms((page < 0 ? 0 : page) + 1, paginatorRows, getSort()).iterator();
+ }
+
+ @Override
+ public long size() {
+ return restClient.countForms();
+ }
+
+ @Override
+ public IModel<UserRequestForm> model(final UserRequestForm form) {
+ return new IModel<UserRequestForm>() {
+
+ private static final long serialVersionUID = -2566070996511906708L;
+
+ @Override
+ public UserRequestForm getObject() {
+ return form;
+ }
+ };
+ }
+ }
+
+ @Override
+ protected Collection<ActionLink.ActionType> getBatches() {
+ return Collections.<ActionLink.ActionType>emptyList();
+ }
+
+ private void claimForm(final String taskId) {
+ try {
+ restClient.claimForm(taskId);
+ } catch (SyncopeClientException scee) {
+ SyncopeConsoleSession.get().error(getString(Constants.ERROR) + ": " + scee.getMessage());
+ }
+ }
+
+ private class FormUserWizardBuilder extends UserWizardBuilder {
+
+ private static final long serialVersionUID = 1854981134836384069L;
+
+ private final UserRequestForm formTO;
+
+ FormUserWizardBuilder(
+ final UserRequestForm formTO,
+ final UserTO previousUserTO,
+ final UserTO userTO,
+ final List<String> anyTypeClasses,
+ final UserFormLayoutInfo formLayoutInfo,
+ final PageReference pageRef) {
+
+ super(previousUserTO, userTO, anyTypeClasses, formLayoutInfo, pageRef);
+ this.formTO = formTO;
+ }
+
+ @Override
+ protected Serializable onApplyInternal(final AnyWrapper<UserTO> modelObject) {
+ UserTO inner = modelObject.getInnerObject();
+
+ UserPatch patch = AnyOperations.diff(inner, formTO.getUserTO(), false);
+
+ if (StringUtils.isNotBlank(inner.getPassword())) {
+ PasswordPatch passwordPatch = new PasswordPatch.Builder().
+ value(inner.getPassword()).onSyncope(true).resources(inner.
+ getResources()).
+ build();
+ patch.setPassword(passwordPatch);
+ }
+
+ // update just if it is changed
+ ProvisioningResult<UserTO> result;
+ if (patch.isEmpty()) {
+ result = new ProvisioningResult<>();
+ result.setEntity(inner);
+ } else {
+ result = userRestClient.update(getOriginalItem().getInnerObject().getETagValue(), patch);
+ restClient.getForm(result.getEntity().getKey()).ifPresent(form -> claimForm(form.getTaskId()));
+ }
+
+ return result;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormModal.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormModal.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormModal.java
new file mode 100644
index 0000000..07a7950
--- /dev/null
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormModal.java
@@ -0,0 +1,79 @@
+/*
+ * 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 org.apache.syncope.client.console.SyncopeConsoleSession;
+import org.apache.syncope.client.console.commons.Constants;
+import org.apache.syncope.client.console.pages.BasePage;
+import org.apache.syncope.client.console.rest.UserRequestRestClient;
+import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
+import org.apache.syncope.common.lib.to.UserRequestForm;
+import org.apache.wicket.PageReference;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.panel.Panel;
+
+public class UserRequestFormModal extends Panel implements SubmitableModalPanel, WizardModalPanel<UserRequestForm> {
+
+ private static final long serialVersionUID = -8847854414429745216L;
+
+ private final UserRequestRestClient restClient = new UserRequestRestClient();
+
+ private final BaseModal<?> modal;
+
+ private final UserRequestForm formTO;
+
+ private final PageReference pageRef;
+
+ public UserRequestFormModal(final BaseModal<?> modal, final PageReference pageRef, final UserRequestForm formTO) {
+ super(BaseModal.CONTENT_ID);
+ this.modal = modal;
+ this.formTO = formTO;
+ this.pageRef = pageRef;
+
+ MultilevelPanel mlp = new MultilevelPanel("userRequestForm");
+ mlp.setFirstLevel(new UserRequestFormPanel(pageRef, formTO) {
+
+ private static final long serialVersionUID = -2195387360323687302L;
+
+ @Override
+ protected void viewDetails(final AjaxRequestTarget target) {
+ mlp.next(getString("userRequest.details"), new UserRequestFormDetails(pageRef, formTO), target);
+ }
+ });
+ add(mlp);
+ }
+
+ @Override
+ public void onSubmit(final AjaxRequestTarget target) {
+ this.restClient.submitForm(formTO);
+ this.modal.show(false);
+ this.modal.close(target);
+ SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
+ }
+
+ @Override
+ public void onError(final AjaxRequestTarget target) {
+ ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+ }
+
+ @Override
+ public UserRequestForm getItem() {
+ return this.formTO;
+ }
+}
[2/6] syncope git commit: [SYNCOPE-1369] Some refinements + admin
console suport
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormPanel.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormPanel.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormPanel.java
new file mode 100644
index 0000000..6520177
--- /dev/null
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormPanel.java
@@ -0,0 +1,200 @@
+/*
+ * 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.text.ParseException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.math.NumberUtils;
+import org.apache.commons.lang3.time.FastDateFormat;
+import org.apache.syncope.client.console.commons.MapChoiceRenderer;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxSpinnerFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDateTimeFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
+import org.apache.syncope.common.lib.to.UserRequestFormProperty;
+import org.apache.syncope.common.lib.to.UserRequestForm;
+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.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.LoadableDetachableModel;
+import org.apache.wicket.model.PropertyModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public abstract class UserRequestFormPanel extends Panel {
+
+ private static final long serialVersionUID = -8847854414429745216L;
+
+ protected static final Logger LOG = LoggerFactory.getLogger(UserRequestFormPanel.class);
+
+ public UserRequestFormPanel(final PageReference pageRef, final UserRequestForm form) {
+ super(MultilevelPanel.FIRST_LEVEL_ID);
+
+ IModel<List<UserRequestFormProperty>> formProps = new LoadableDetachableModel<List<UserRequestFormProperty>>() {
+
+ private static final long serialVersionUID = 3169142472626817508L;
+
+ @Override
+ protected List<UserRequestFormProperty> load() {
+ return form.getProperties();
+ }
+ };
+
+ ListView<UserRequestFormProperty> propView = new ListView<UserRequestFormProperty>("propView", formProps) {
+
+ private static final long serialVersionUID = 9101744072914090143L;
+
+ @Override
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ protected void populateItem(final ListItem<UserRequestFormProperty> item) {
+ final UserRequestFormProperty prop = item.getModelObject();
+
+ String label = StringUtils.isBlank(prop.getName()) ? prop.getId() : prop.getName();
+
+ FieldPanel field;
+ switch (prop.getType()) {
+ case Boolean:
+ field = new AjaxDropDownChoicePanel("value", label, new PropertyModel<String>(prop, "value") {
+
+ private static final long serialVersionUID = -3743432456095828573L;
+
+ @Override
+ public String getObject() {
+ return StringUtils.isBlank(prop.getValue())
+ ? null
+ : prop.getValue().equals("true") ? "Yes" : "No";
+ }
+
+ @Override
+ public void setObject(final String object) {
+ prop.setValue(String.valueOf(object.equalsIgnoreCase("yes")));
+ }
+
+ }, false).setChoices(Arrays.asList(new String[] { "Yes", "No" }));
+ break;
+
+ case Date:
+ FastDateFormat formatter = FastDateFormat.getInstance(prop.getDatePattern());
+ field = new AjaxDateTimeFieldPanel("value", label, new PropertyModel<Date>(prop, "value") {
+
+ private static final long serialVersionUID = -3743432456095828573L;
+
+ @Override
+ public Date getObject() {
+ try {
+ return StringUtils.isBlank(prop.getValue())
+ ? null
+ : formatter.parse(prop.getValue());
+ } catch (ParseException e) {
+ LOG.error("Unparsable date: {}", prop.getValue(), e);
+ return null;
+ }
+ }
+
+ @Override
+ public void setObject(final Date object) {
+ prop.setValue(formatter.format(object));
+ }
+
+ }, prop.getDatePattern());
+ break;
+
+ case Enum:
+ field = new AjaxDropDownChoicePanel(
+ "value", label, new PropertyModel<String>(prop, "value"), false).
+ setChoiceRenderer(new MapChoiceRenderer(prop.getEnumValues())).
+ setChoices(new ArrayList<>(prop.getEnumValues().keySet()));
+ break;
+
+ case Dropdown:
+ field = new AjaxDropDownChoicePanel(
+ "value", label, new PropertyModel<String>(prop, "value"), false).
+ setChoiceRenderer(new MapChoiceRenderer(prop.getDropdownValues())).
+ setChoices(new ArrayList<>(prop.getDropdownValues().keySet()));
+ break;
+
+ case Long:
+ field = new AjaxSpinnerFieldPanel.Builder<Long>().build(
+ "value",
+ label,
+ Long.class,
+ new PropertyModel<Long>(prop, "value") {
+
+ private static final long serialVersionUID = -7688359318035249200L;
+
+ @Override
+ public Long getObject() {
+ return StringUtils.isBlank(prop.getValue())
+ ? null
+ : NumberUtils.toLong(prop.getValue());
+ }
+
+ @Override
+ public void setObject(final Long object) {
+ prop.setValue(String.valueOf(object));
+ }
+ });
+ break;
+
+ case String:
+ default:
+ field = new AjaxTextFieldPanel("value", label, new PropertyModel<>(prop, "value"), false);
+ break;
+ }
+
+ field.setReadOnly(!prop.isWritable());
+ if (prop.isRequired()) {
+ field.addRequiredLabel();
+ }
+
+ item.add(field);
+ }
+ };
+
+ AjaxLink<String> userDetails = new AjaxLink<String>("userDetails") {
+
+ private static final long serialVersionUID = -4804368561204623354L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target) {
+ viewDetails(target);
+ }
+ };
+ MetaDataRoleAuthorizationStrategy.authorize(userDetails, ENABLE, StandardEntitlement.USER_READ);
+
+ boolean enabled = form.getUserTO() != null;
+ userDetails.setVisible(enabled).setEnabled(enabled);
+
+ add(propView);
+ add(userDetails);
+ }
+
+ protected abstract void viewDetails(final AjaxRequestTarget target);
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/UserRequestRestClient.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/UserRequestRestClient.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/UserRequestRestClient.java
index e3a179f..8d3b03b 100644
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/UserRequestRestClient.java
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/UserRequestRestClient.java
@@ -21,8 +21,10 @@ package org.apache.syncope.client.console.rest;
import java.util.List;
import java.util.Optional;
import org.apache.syncope.common.lib.to.PagedResult;
+import org.apache.syncope.common.lib.to.UserRequest;
import org.apache.syncope.common.lib.to.UserRequestForm;
import org.apache.syncope.common.rest.api.beans.UserRequestFormQuery;
+import org.apache.syncope.common.rest.api.beans.UserRequestQuery;
import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
import org.apache.syncope.common.rest.api.service.UserRequestService;
@@ -30,6 +32,22 @@ public class UserRequestRestClient extends BaseRestClient {
private static final long serialVersionUID = -4785231164900813921L;
+ public int countUserRequests() {
+ return getService(UserRequestService.class).
+ list(new UserRequestQuery.Builder().page(1).size(1).build()).
+ getTotalCount();
+ }
+
+ public List<UserRequest> getUserRequests(final int page, final int size, final SortParam<String> sort) {
+ return getService(UserRequestService.class).
+ list(new UserRequestQuery.Builder().page(page).size(size).orderBy(toOrderBy(sort)).build()).
+ getResult();
+ }
+
+ public void cancelRequest(final String executionId, final String reason) {
+ getService(UserRequestService.class).cancel(executionId, reason);
+ }
+
public int countForms() {
return getService(UserRequestService.class).
getForms(new UserRequestFormQuery.Builder().page(1).size(1).build()).
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/ApprovalsWidget.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/ApprovalsWidget.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/ApprovalsWidget.java
deleted file mode 100644
index 9a9fd2d..0000000
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/ApprovalsWidget.java
+++ /dev/null
@@ -1,128 +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.widgets;
-
-import de.agilecoders.wicket.core.markup.html.bootstrap.image.Icon;
-import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesomeIconTypeBuilder;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import org.apache.syncope.client.console.BookmarkablePageLinkBuilder;
-import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.client.console.annotations.ExtWidget;
-import org.apache.syncope.client.console.pages.Approvals;
-import org.apache.syncope.client.console.rest.UserRequestRestClient;
-import org.apache.syncope.client.console.wicket.ajax.IndicatorAjaxTimerBehavior;
-import org.apache.syncope.common.lib.to.UserRequestForm;
-import org.apache.syncope.common.lib.types.FlowableEntitlement;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
-import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
-import org.apache.wicket.markup.html.WebPage;
-import org.apache.wicket.markup.html.link.AbstractLink;
-import org.apache.wicket.markup.html.link.BookmarkablePageLink;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.util.ListModel;
-import org.apache.wicket.util.time.Duration;
-
-@ExtWidget(priority = 10)
-public class ApprovalsWidget extends ExtAlertWidget<UserRequestForm> {
-
- private static final long serialVersionUID = 7667120094526529934L;
-
- private final UserRequestRestClient restClient = new UserRequestRestClient();
-
- private final List<UserRequestForm> lastApprovals = new ArrayList<>();
-
- public ApprovalsWidget(final String id, final PageReference pageRef) {
- super(id);
- setOutputMarkupId(true);
-
- latestAlertsList.add(new IndicatorAjaxTimerBehavior(Duration.seconds(30)) {
-
- private static final long serialVersionUID = 7298597675929755960L;
-
- @Override
- protected void onTimer(final AjaxRequestTarget target) {
- if (!latestAlerts.getObject().equals(lastApprovals)) {
- refreshLatestAlerts(target);
- }
- }
- });
- }
-
- public final void refreshLatestAlerts(final AjaxRequestTarget target) {
- latestAlerts.getObject().clear();
- latestAlerts.getObject().addAll(lastApprovals);
-
- int latestAlertSize = getLatestAlertsSize();
- linkAlertsNumber.setDefaultModelObject(latestAlertSize);
- target.add(linkAlertsNumber);
-
- headerAlertsNumber.setDefaultModelObject(latestAlertSize);
- target.add(headerAlertsNumber);
-
- target.add(latestAlertsList);
-
- lastApprovals.clear();
- lastApprovals.addAll(latestAlerts.getObject());
- }
-
- @Override
- protected int getLatestAlertsSize() {
- return SyncopeConsoleSession.get().owns(FlowableEntitlement.USER_REQUEST_FORM_LIST)
- ? restClient.countForms()
- : 0;
- }
-
- @Override
- protected IModel<List<UserRequestForm>> getLatestAlerts() {
- return new ListModel<UserRequestForm>() {
-
- private static final long serialVersionUID = -2583290457773357445L;
-
- @Override
- public List<UserRequestForm> getObject() {
- List<UserRequestForm> updatedApprovals;
- if (SyncopeConsoleSession.get().owns(FlowableEntitlement.USER_REQUEST_FORM_LIST)) {
- updatedApprovals = restClient.getForms(1, MAX_SIZE, new SortParam<>("createTime", true));
- } else {
- updatedApprovals = Collections.<UserRequestForm>emptyList();
- }
-
- return updatedApprovals;
- }
- };
- }
-
- @Override
- protected AbstractLink getEventsLink(final String linkid) {
- BookmarkablePageLink<Approvals> approvals = BookmarkablePageLinkBuilder.build(linkid, Approvals.class);
- MetaDataRoleAuthorizationStrategy.authorize(
- approvals, WebPage.ENABLE, FlowableEntitlement.USER_REQUEST_FORM_LIST);
- return approvals;
- }
-
- @Override
- protected Icon getIcon(final String iconid) {
- return new Icon(iconid,
- FontAwesomeIconTypeBuilder.on(FontAwesomeIconTypeBuilder.FontAwesomeGraphic.handshake_o).build());
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.java
new file mode 100644
index 0000000..b445dd9
--- /dev/null
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.java
@@ -0,0 +1,128 @@
+/*
+ * 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.widgets;
+
+import de.agilecoders.wicket.core.markup.html.bootstrap.image.Icon;
+import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesomeIconTypeBuilder;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import org.apache.syncope.client.console.BookmarkablePageLinkBuilder;
+import org.apache.syncope.client.console.SyncopeConsoleSession;
+import org.apache.syncope.client.console.annotations.ExtWidget;
+import org.apache.syncope.client.console.pages.UserRequests;
+import org.apache.syncope.client.console.rest.UserRequestRestClient;
+import org.apache.syncope.client.console.wicket.ajax.IndicatorAjaxTimerBehavior;
+import org.apache.syncope.common.lib.to.UserRequestForm;
+import org.apache.syncope.common.lib.types.FlowableEntitlement;
+import org.apache.wicket.PageReference;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
+import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.link.AbstractLink;
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.util.ListModel;
+import org.apache.wicket.util.time.Duration;
+
+@ExtWidget(priority = 10)
+public class UserRequestFormsWidget extends ExtAlertWidget<UserRequestForm> {
+
+ private static final long serialVersionUID = 7667120094526529934L;
+
+ private final UserRequestRestClient restClient = new UserRequestRestClient();
+
+ private final List<UserRequestForm> lastForms = new ArrayList<>();
+
+ public UserRequestFormsWidget(final String id, final PageReference pageRef) {
+ super(id);
+ setOutputMarkupId(true);
+
+ latestAlertsList.add(new IndicatorAjaxTimerBehavior(Duration.seconds(30)) {
+
+ private static final long serialVersionUID = 7298597675929755960L;
+
+ @Override
+ protected void onTimer(final AjaxRequestTarget target) {
+ if (!latestAlerts.getObject().equals(lastForms)) {
+ refreshLatestAlerts(target);
+ }
+ }
+ });
+ }
+
+ public final void refreshLatestAlerts(final AjaxRequestTarget target) {
+ latestAlerts.getObject().clear();
+ latestAlerts.getObject().addAll(lastForms);
+
+ int latestAlertSize = getLatestAlertsSize();
+ linkAlertsNumber.setDefaultModelObject(latestAlertSize);
+ target.add(linkAlertsNumber);
+
+ headerAlertsNumber.setDefaultModelObject(latestAlertSize);
+ target.add(headerAlertsNumber);
+
+ target.add(latestAlertsList);
+
+ lastForms.clear();
+ lastForms.addAll(latestAlerts.getObject());
+ }
+
+ @Override
+ protected int getLatestAlertsSize() {
+ return SyncopeConsoleSession.get().owns(FlowableEntitlement.USER_REQUEST_FORM_LIST)
+ ? restClient.countForms()
+ : 0;
+ }
+
+ @Override
+ protected IModel<List<UserRequestForm>> getLatestAlerts() {
+ return new ListModel<UserRequestForm>() {
+
+ private static final long serialVersionUID = -2583290457773357445L;
+
+ @Override
+ public List<UserRequestForm> getObject() {
+ List<UserRequestForm> updatedForms;
+ if (SyncopeConsoleSession.get().owns(FlowableEntitlement.USER_REQUEST_FORM_LIST)) {
+ updatedForms = restClient.getForms(1, MAX_SIZE, new SortParam<>("createTime", true));
+ } else {
+ updatedForms = Collections.<UserRequestForm>emptyList();
+ }
+
+ return updatedForms;
+ }
+ };
+ }
+
+ @Override
+ protected AbstractLink getEventsLink(final String linkid) {
+ BookmarkablePageLink<UserRequests> userRequests = BookmarkablePageLinkBuilder.build(linkid, UserRequests.class);
+ MetaDataRoleAuthorizationStrategy.authorize(
+ userRequests, WebPage.ENABLE, FlowableEntitlement.USER_REQUEST_FORM_LIST);
+ return userRequests;
+ }
+
+ @Override
+ protected Icon getIcon(final String iconid) {
+ return new Icon(iconid,
+ FontAwesomeIconTypeBuilder.on(FontAwesomeIconTypeBuilder.FontAwesomeGraphic.handshake_o).build());
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval.html
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval.html
deleted file mode 100644
index 64805b9..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval.html
+++ /dev/null
@@ -1,31 +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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:panel>
- <div wicket:id="propView">
- <span wicket:id="value">[value]</span>
- </div>
-
- <div style="margin: 20px 0">
- <a href="#" alt="user details" class="btn btn-primary btn-circle btn-lg" wicket:id="userDetails" wicket:message="title:userDetails">
- <i class="glyphicon glyphicon-eye-open"></i>
- </a>
- </div>
- </wicket:panel>
-</html>
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval.properties
deleted file mode 100644
index 450ff50..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval.properties
+++ /dev/null
@@ -1,18 +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.
-userDetails=User details
-userForm=Edit User
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalDetails.html
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalDetails.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalDetails.html
deleted file mode 100644
index 1de2361..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalDetails.html
+++ /dev/null
@@ -1,23 +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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:panel>
- <span wicket:id="wizard"/>
- </wicket:panel>
-</html>
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal.html
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal.html
deleted file mode 100644
index 5d5d129..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal.html
+++ /dev/null
@@ -1,23 +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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:panel>
- <span wicket:id="approval">[APPROVAL]</span>
- </wicket:panel>
-</html>
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal.properties
deleted file mode 100644
index 941c896..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal.properties
+++ /dev/null
@@ -1,17 +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.
-approval.details=Approval details
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_it.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_it.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_it.properties
deleted file mode 100644
index 941c896..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_it.properties
+++ /dev/null
@@ -1,17 +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.
-approval.details=Approval details
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_ja.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_ja.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_ja.properties
deleted file mode 100644
index 84106b9..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_ja.properties
+++ /dev/null
@@ -1,17 +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.
-approval.details=\u627f\u8a8d\u8a73\u7d30
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_pt_BR.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_pt_BR.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_pt_BR.properties
deleted file mode 100644
index 941c896..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_pt_BR.properties
+++ /dev/null
@@ -1,17 +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.
-approval.details=Approval details
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_ru.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_ru.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_ru.properties
deleted file mode 100644
index 941c896..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_ru.properties
+++ /dev/null
@@ -1,17 +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.
-approval.details=Approval details
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_it.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_it.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_it.properties
deleted file mode 100644
index 92c475d..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_it.properties
+++ /dev/null
@@ -1,18 +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.
-userDetails=Dettagli utente
-userForm=Modifica utente
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_ja.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_ja.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_ja.properties
deleted file mode 100644
index 5a9cc2d..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_ja.properties
+++ /dev/null
@@ -1,18 +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.
-userDetails=\u30e6\u30fc\u30b6\u30fc\u8a73\u7d30
-userForm=\u30e6\u30fc\u30b6\u30fc\u3092\u7de8\u96c6
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_pt_BR.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_pt_BR.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_pt_BR.properties
deleted file mode 100644
index 00a8971..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_pt_BR.properties
+++ /dev/null
@@ -1,18 +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.
-userDetails=Detalhes do Usu\u00e1rio
-userForm=Detalhes do Usu\u00e1rio
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_ru.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_ru.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_ru.properties
deleted file mode 100644
index 02c159a..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_ru.properties
+++ /dev/null
@@ -1,20 +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.
-#
-# userDetails=\u00d0\u0098\u00d0\u00bd\u00d1\u0084\u00d0\u00be\u00d1\u0080\u00d0\u00bc\u00d0\u00b0\u00d1\u0086\u00d0\u00b8\u00d1\u008f \u00d0\u00be \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5
-userDetails=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435
-userForm=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals.html
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals.html
deleted file mode 100644
index 5bf6234..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals.html
+++ /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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:extend>
- <section class="content-header">
- <h1> </h1>
- <ol class="breadcrumb">
- <li><a wicket:id="dashboardBr"><i class="fa fa-dashboard"></i> <wicket:message key="dashboard">[DASHBOARD]</wicket:message></a></li>
- <li class="active"><wicket:message key="approvals"/></li>
- </ol>
- </section>
-
- <section class="content" wicket:id="content">
- <div class="box">
- <div class="box-body" wicket:id="wfPanel"/>
- </div>
- </section>
- </wicket:extend>
-</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals.properties
deleted file mode 100644
index 84b9c85..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals.properties
+++ /dev/null
@@ -1,34 +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.
-bpmnProcess=User Request
-key=Key
-description=Description
-createTime=Create Time
-dueDate=Due Date
-owner=Owner
-claim=Claim
-manage=Manage
-approvals=Approvals
-delete=Delete
-type=Type
-username=Username
-new_user=New User
-creationDate = Creation Date
-claimDate = Claim Dare
-approval.edit=Approval Edit
-approval.manage=Approval Manage
-any.edit=Edit ${anyTO.type} ${anyTO.username}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_it.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_it.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_it.properties
deleted file mode 100644
index f25abd8..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_it.properties
+++ /dev/null
@@ -1,34 +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.
-bpmnProcess=User Request
-key=Chiave
-description=Descrizione
-createTime=Data di creazione
-dueDate=Scadenza
-owner=Esecutore
-claim=Richiedi
-manage=Gestisci
-approvals=Approvazioni
-delete=Rimuovi
-type=Tipo
-username=Utente
-new_user=Nuovo utente
-creationDate = Data creazione
-claimDate = Data rivendicazione
-approval.manage=Gestisci Approvazione
-approval.edit=Modifica Approvazione
-any.edit=Edit ${anyTO.type} ${anyTO.username}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_ja.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_ja.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_ja.properties
deleted file mode 100644
index dcca6e1..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_ja.properties
+++ /dev/null
@@ -1,34 +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.
-bpmnProcess=User Request
-key=\u30ad\u30fc
-description=\u8aac\u660e
-createTime=\u4f5c\u6210\u6642\u523b
-dueDate=\u671f\u9650
-owner=\u30aa\u30fc\u30ca\u30fc
-claim=\u7533\u8acb
-manage=\u7ba1\u7406
-approvals=\u627f\u8a8d
-delete=\u524a\u9664
-type=\u30bf\u30a4\u30d7
-username=\u30e6\u30fc\u30b6\u30fc\u540d
-new_user=\u65b0\u3057\u3044\u30e6\u30fc\u30b6\u30fc
-creationDate = \u4f5c\u6210\u65e5
-claimDate = \u7533\u8acb\u65e5
-approval.edit=\u627f\u8a8d \u7de8\u96c6
-approval.manage=\u627f\u8a8d \u7ba1\u7406
-any.edit=${anyTO.type} ${anyTO.username} \u3092\u7de8\u96c6
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_pt_BR.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_pt_BR.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_pt_BR.properties
deleted file mode 100644
index 88a9e05..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_pt_BR.properties
+++ /dev/null
@@ -1,34 +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.
-bpmnProcess=User Request
-key=Chave
-description=Descri\u00e7\u00e3o
-createTime=Tempo de Cria\u00e7\u00e3o
-dueDate=Data acordada
-owner=Propriet\u00e1rio
-claim=Requerimento
-manage=Ger\u00eancia
-approvals=Aprova\u00e7\u00f5es
-delete=Excluir
-type=Tipo
-username=Usu\u00e1rio
-new_user=Novo Usu\u00e1rio
-creationDate = Data de cria\u00e7\u00e3o
-claimDate = Data de reivindica\u00e7\u00e3o
-approval.manage=Aprova\u00e7\u00e3o
-approval.edit=Aprova\u00e7\u00e3o
-any.edit=Edit ${anyTO.type} ${anyTO.username}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_ru.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_ru.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_ru.properties
deleted file mode 100644
index 2e7a199..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_ru.properties
+++ /dev/null
@@ -1,52 +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.
-#
-# taskId=\u00d0\u0097\u00d0\u00b0\u00d1\u008f\u00d0\u00b2\u00d0\u00ba\u00d0\u00b0
-bpmnProcess=User Request
-# key=\u00d0\u0098\u00d0\u00b4\u00d0\u00b5\u00d0\u00bd\u00d1\u0082\u00d0\u00b8\u00d1\u0084\u00d0\u00b8\u00d0\u00ba\u00d0\u00b0\u00d1\u0082\u00d0\u00be\u00d1\u0080
-key=\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440
-# description=\u00d0\u009e\u00d0\u00bf\u00d0\u00b8\u00d1\u0081\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
-description=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435
-# createTime=\u00d0\u0094\u00d0\u00b0\u00d1\u0082\u00d0\u00b0 \u00d1\u0081\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f
-createTime=\u0414\u0430\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f
-# dueDate=\u00d0\u00a1\u00d1\u0080\u00d0\u00be\u00d0\u00ba
-dueDate=\u0421\u0440\u043e\u043a
-# owner=\u00d0\u0092\u00d0\u00bb\u00d0\u00b0\u00d0\u00b4\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5\u00d1\u0086
-owner=\u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446
-# claim=\u00d0\u0092\u00d1\u008b\u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d0\u00bd\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d1\u0081\u00d0\u00be\u00d0\u00b3\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
-claim=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435
-# manage=\u00d0\u00a3\u00d0\u00bf\u00d1\u0080\u00d0\u00b0\u00d0\u00b2\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
-manage=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435
-# approvals=\u00d0\u0097\u00d0\u00b0\u00d1\u008f\u00d0\u00b2\u00d0\u00ba\u00d0\u00b8
-approvals=\u0417\u0430\u044f\u0432\u043a\u0438
-# delete=\u00d0\u00a3\u00d0\u00b4\u00d0\u00b0\u00d0\u00bb\u00d0\u00b8\u00d1\u0082\u00d1\u008c
-delete=\u0423\u0434\u0430\u043b\u0438\u0442\u044c
-# type=\u00d0\u00a2\u00d0\u00b8\u00d0\u00bf
-type=\u0422\u0438\u043f
-# username=\u00d0\u0098\u00d0\u00bc\u00d1\u008f \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d1\u008f
-username=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
-# new_user=\u00d0\u00a1\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5 \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d1\u008f
-new_user=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
-# creationDate=\u00d0\u0094\u00d0\u00b0\u00d1\u0082\u00d0\u00b0 \u00d1\u0081\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f
-creationDate=\u0414\u0430\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f
-# claimDate=\u00d0\u0094\u00d0\u00b0\u00d1\u0082\u00d0\u00b0 \u00d0\u00bd\u00d0\u00b0\u00d1\u0087\u00d0\u00b0\u00d0\u00bb\u00d0\u00b0 \u00d1\u0081\u00d0\u00be\u00d0\u00b3\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f
-claimDate=\u0414\u0430\u0442\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u044f
-# approval.edit=\u00d0\u00a1\u00d0\u00be\u00d0\u00b3\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
-approval.edit=\u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435
-# approval.manage=\u00d0\u00a1\u00d0\u00be\u00d0\u00b3\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
-approval.manage=\u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435
-any.edit=Edit ${anyTO.type} ${anyTO.username}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests.html
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests.html
new file mode 100644
index 0000000..d14949c
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests.html
@@ -0,0 +1,35 @@
+<!--
+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:extend>
+ <section class="content-header">
+ <h1> </h1>
+ <ol class="breadcrumb">
+ <li><a wicket:id="dashboardBr"><i class="fa fa-dashboard"></i> <wicket:message key="dashboard">[DASHBOARD]</wicket:message></a></li>
+ <li class="active"><wicket:message key="userRequests"/></li>
+ </ol>
+ </section>
+
+ <section class="content" wicket:id="content">
+ <div class="box">
+ <div class="box-body" wicket:id="tabbedPanel"/>
+ </div>
+ </section>
+ </wicket:extend>
+</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests.properties
new file mode 100644
index 0000000..9f30811
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests.properties
@@ -0,0 +1,38 @@
+# 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.
+bpmnProcess=User Request
+key=Key
+description=Description
+createTime=Create Time
+dueDate=Due Date
+owner=Owner
+claim=Claim
+manage=Manage
+userRequests=User Requests
+delete=Delete
+type=Type
+username=Username
+new_user=New User
+creationDate = Creation Date
+claimDate = Claim Dare
+form.edit=Edit
+form.manage=Manage
+any.edit=Edit ${anyTO.type} ${anyTO.username}
+userRequestForms=Forms
+activeRequests=Active Requests
+startTime=Start
+activityId=Status
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_it.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_it.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_it.properties
new file mode 100644
index 0000000..04f5462
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_it.properties
@@ -0,0 +1,38 @@
+# 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.
+bpmnProcess=User Request
+key=Chiave
+description=Descrizione
+createTime=Data di creazione
+dueDate=Scadenza
+owner=Esecutore
+claim=Richiedi
+manage=Gestisci
+userRequests=Richieste utente
+delete=Rimuovi
+type=Tipo
+username=Utente
+new_user=Nuovo utente
+creationDate = Data creazione
+claimDate = Data rivendicazione
+form.manage=Gestisci
+form.edit=Modifica
+any.edit=Edit ${anyTO.type} ${anyTO.username}
+userRequestForms=Form
+activeRequests=Richieste attive
+startTime=Inizio
+activityId=Stato
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_ja.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_ja.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_ja.properties
new file mode 100644
index 0000000..61fef13
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_ja.properties
@@ -0,0 +1,38 @@
+# 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.
+bpmnProcess=User Request
+key=\u30ad\u30fc
+description=\u8aac\u660e
+createTime=\u4f5c\u6210\u6642\u523b
+dueDate=\u671f\u9650
+owner=\u30aa\u30fc\u30ca\u30fc
+claim=\u7533\u8acb
+manage=\u7ba1\u7406
+userRequests=User Requests
+delete=\u524a\u9664
+type=\u30bf\u30a4\u30d7
+username=\u30e6\u30fc\u30b6\u30fc\u540d
+new_user=\u65b0\u3057\u3044\u30e6\u30fc\u30b6\u30fc
+creationDate = \u4f5c\u6210\u65e5
+claimDate = \u7533\u8acb\u65e5
+form.edit=Edit
+form.manage=Manage
+any.edit=${anyTO.type} ${anyTO.username} \u3092\u7de8\u96c6
+userRequestForms=Forms
+activeRequests=Active Requests
+startTime=Start
+activityId=Status
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_pt_BR.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_pt_BR.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_pt_BR.properties
new file mode 100644
index 0000000..65c43f4
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_pt_BR.properties
@@ -0,0 +1,38 @@
+# 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.
+bpmnProcess=User Request
+key=Chave
+description=Descri\u00e7\u00e3o
+createTime=Tempo de Cria\u00e7\u00e3o
+dueDate=Data acordada
+owner=Propriet\u00e1rio
+claim=Requerimento
+manage=Ger\u00eancia
+userRequests=User Requests
+delete=Excluir
+type=Tipo
+username=Usu\u00e1rio
+new_user=Novo Usu\u00e1rio
+creationDate = Data de cria\u00e7\u00e3o
+claimDate = Data de reivindica\u00e7\u00e3o
+form.manage=Manage
+form.edit=Edit
+any.edit=Edit ${anyTO.type} ${anyTO.username}
+userRequestForms=Forms
+activeRequests=Active Requests
+startTime=Start
+activityId=Status
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_ru.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_ru.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_ru.properties
new file mode 100644
index 0000000..52b454b
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_ru.properties
@@ -0,0 +1,56 @@
+# 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.
+#
+# taskId=\u00d0\u0097\u00d0\u00b0\u00d1\u008f\u00d0\u00b2\u00d0\u00ba\u00d0\u00b0
+bpmnProcess=User Request
+# key=\u00d0\u0098\u00d0\u00b4\u00d0\u00b5\u00d0\u00bd\u00d1\u0082\u00d0\u00b8\u00d1\u0084\u00d0\u00b8\u00d0\u00ba\u00d0\u00b0\u00d1\u0082\u00d0\u00be\u00d1\u0080
+key=\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440
+# description=\u00d0\u009e\u00d0\u00bf\u00d0\u00b8\u00d1\u0081\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
+description=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435
+# createTime=\u00d0\u0094\u00d0\u00b0\u00d1\u0082\u00d0\u00b0 \u00d1\u0081\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f
+createTime=\u0414\u0430\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f
+# dueDate=\u00d0\u00a1\u00d1\u0080\u00d0\u00be\u00d0\u00ba
+dueDate=\u0421\u0440\u043e\u043a
+# owner=\u00d0\u0092\u00d0\u00bb\u00d0\u00b0\u00d0\u00b4\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5\u00d1\u0086
+owner=\u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446
+# claim=\u00d0\u0092\u00d1\u008b\u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d0\u00bd\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d1\u0081\u00d0\u00be\u00d0\u00b3\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
+claim=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435
+# manage=\u00d0\u00a3\u00d0\u00bf\u00d1\u0080\u00d0\u00b0\u00d0\u00b2\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
+manage=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435
+# approvals=\u00d0\u0097\u00d0\u00b0\u00d1\u008f\u00d0\u00b2\u00d0\u00ba\u00d0\u00b8
+userRequests=User Requests
+# delete=\u00d0\u00a3\u00d0\u00b4\u00d0\u00b0\u00d0\u00bb\u00d0\u00b8\u00d1\u0082\u00d1\u008c
+delete=\u0423\u0434\u0430\u043b\u0438\u0442\u044c
+# type=\u00d0\u00a2\u00d0\u00b8\u00d0\u00bf
+type=\u0422\u0438\u043f
+# username=\u00d0\u0098\u00d0\u00bc\u00d1\u008f \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d1\u008f
+username=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
+# new_user=\u00d0\u00a1\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5 \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d1\u008f
+new_user=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
+# creationDate=\u00d0\u0094\u00d0\u00b0\u00d1\u0082\u00d0\u00b0 \u00d1\u0081\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f
+creationDate=\u0414\u0430\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f
+# claimDate=\u00d0\u0094\u00d0\u00b0\u00d1\u0082\u00d0\u00b0 \u00d0\u00bd\u00d0\u00b0\u00d1\u0087\u00d0\u00b0\u00d0\u00bb\u00d0\u00b0 \u00d1\u0081\u00d0\u00be\u00d0\u00b3\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f
+claimDate=\u0414\u0430\u0442\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u044f
+# approval.edit=\u00d0\u00a1\u00d0\u00be\u00d0\u00b3\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
+form.edit=Edit
+# approval.manage=\u00d0\u00a1\u00d0\u00be\u00d0\u00b3\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
+form.manage=Manage
+any.edit=Edit ${anyTO.type} ${anyTO.username}
+userRequestForms=Forms
+activeRequests=Active Requests
+startTime=Start
+activityId=Status
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormDetails.html
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormDetails.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormDetails.html
new file mode 100644
index 0000000..1de2361
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormDetails.html
@@ -0,0 +1,23 @@
+<!--
+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>
+ <span wicket:id="wizard"/>
+ </wicket:panel>
+</html>
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal.html
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal.html
new file mode 100644
index 0000000..777dbd8
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal.html
@@ -0,0 +1,23 @@
+<!--
+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>
+ <span wicket:id="userRequestForm"></span>
+ </wicket:panel>
+</html>
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal.properties
new file mode 100644
index 0000000..b636185
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal.properties
@@ -0,0 +1,17 @@
+# 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.
+userRequest.details=Request details
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_it.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_it.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_it.properties
new file mode 100644
index 0000000..e68bb15
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_it.properties
@@ -0,0 +1,17 @@
+# 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.
+userRequest.details=Dettagli richiesta
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_ja.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_ja.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_ja.properties
new file mode 100644
index 0000000..b636185
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_ja.properties
@@ -0,0 +1,17 @@
+# 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.
+userRequest.details=Request details
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_pt_BR.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_pt_BR.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_pt_BR.properties
new file mode 100644
index 0000000..b636185
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_pt_BR.properties
@@ -0,0 +1,17 @@
+# 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.
+userRequest.details=Request details
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_ru.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_ru.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_ru.properties
new file mode 100644
index 0000000..b636185
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_ru.properties
@@ -0,0 +1,17 @@
+# 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.
+userRequest.details=Request details
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel.html
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel.html
new file mode 100644
index 0000000..64805b9
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel.html
@@ -0,0 +1,31 @@
+<!--
+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 wicket:id="propView">
+ <span wicket:id="value">[value]</span>
+ </div>
+
+ <div style="margin: 20px 0">
+ <a href="#" alt="user details" class="btn btn-primary btn-circle btn-lg" wicket:id="userDetails" wicket:message="title:userDetails">
+ <i class="glyphicon glyphicon-eye-open"></i>
+ </a>
+ </div>
+ </wicket:panel>
+</html>
[3/6] syncope git commit: [SYNCOPE-1369] Some refinements + admin
console suport
Posted by il...@apache.org.
[SYNCOPE-1369] Some refinements + admin console suport
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/ff37c3f7
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/ff37c3f7
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/ff37c3f7
Branch: refs/heads/2_1_X
Commit: ff37c3f763b967d928a5dd5d4764b54694ca299f
Parents: e1b88c2
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Tue Oct 9 17:08:13 2018 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Tue Oct 9 17:08:13 2018 +0200
----------------------------------------------------------------------
.../console/SyncopeConsoleApplication.java | 4 +-
.../client/console/commons/Constants.java | 2 -
.../client/console/rest/ReportRestClient.java | 2 -
.../console/tasks/SchedTaskDirectoryPanel.java | 6 +-
.../client/console/approvals/Approval.java | 201 -----------
.../console/approvals/ApprovalDetails.java | 63 ----
.../approvals/ApprovalDirectoryPanel.java | 352 ------------------
.../client/console/approvals/ApprovalModal.java | 82 -----
.../syncope/client/console/pages/Approvals.java | 41 ---
.../syncope/client/console/pages/Flowable.java | 7 -
.../client/console/pages/UserRequests.java | 74 ++++
.../panels/UserRequestDirectoryPanel.java | 163 +++++++++
.../console/panels/UserRequestFormDetails.java | 62 ++++
.../panels/UserRequestFormDirectoryPanel.java | 353 +++++++++++++++++++
.../console/panels/UserRequestFormModal.java | 79 +++++
.../console/panels/UserRequestFormPanel.java | 200 +++++++++++
.../console/rest/UserRequestRestClient.java | 18 +
.../client/console/widgets/ApprovalsWidget.java | 128 -------
.../console/widgets/UserRequestFormsWidget.java | 128 +++++++
.../client/console/approvals/Approval.html | 31 --
.../console/approvals/Approval.properties | 18 -
.../console/approvals/ApprovalDetails.html | 23 --
.../client/console/approvals/ApprovalModal.html | 23 --
.../console/approvals/ApprovalModal.properties | 17 -
.../approvals/ApprovalModal_it.properties | 17 -
.../approvals/ApprovalModal_ja.properties | 17 -
.../approvals/ApprovalModal_pt_BR.properties | 17 -
.../approvals/ApprovalModal_ru.properties | 17 -
.../console/approvals/Approval_it.properties | 18 -
.../console/approvals/Approval_ja.properties | 18 -
.../console/approvals/Approval_pt_BR.properties | 18 -
.../console/approvals/Approval_ru.properties | 20 --
.../syncope/client/console/pages/Approvals.html | 35 --
.../client/console/pages/Approvals.properties | 34 --
.../console/pages/Approvals_it.properties | 34 --
.../console/pages/Approvals_ja.properties | 34 --
.../console/pages/Approvals_pt_BR.properties | 34 --
.../console/pages/Approvals_ru.properties | 52 ---
.../client/console/pages/UserRequests.html | 35 ++
.../console/pages/UserRequests.properties | 38 ++
.../console/pages/UserRequests_it.properties | 38 ++
.../console/pages/UserRequests_ja.properties | 38 ++
.../console/pages/UserRequests_pt_BR.properties | 38 ++
.../console/pages/UserRequests_ru.properties | 56 +++
.../console/panels/UserRequestFormDetails.html | 23 ++
.../console/panels/UserRequestFormModal.html | 23 ++
.../panels/UserRequestFormModal.properties | 17 +
.../panels/UserRequestFormModal_it.properties | 17 +
.../panels/UserRequestFormModal_ja.properties | 17 +
.../UserRequestFormModal_pt_BR.properties | 17 +
.../panels/UserRequestFormModal_ru.properties | 17 +
.../console/panels/UserRequestFormPanel.html | 31 ++
.../panels/UserRequestFormPanel.properties | 18 +
.../panels/UserRequestFormPanel_it.properties | 18 +
.../panels/UserRequestFormPanel_ja.properties | 18 +
.../UserRequestFormPanel_pt_BR.properties | 18 +
.../panels/UserRequestFormPanel_ru.properties | 20 ++
.../console/widgets/ApprovalsWidget.properties | 21 --
.../widgets/ApprovalsWidget_it.properties | 21 --
.../widgets/ApprovalsWidget_ja.properties | 21 --
.../widgets/ApprovalsWidget_pt_BR.properties | 21 --
.../widgets/ApprovalsWidget_ru.properties | 22 --
.../widgets/UserRequestFormsWidget.properties | 20 ++
.../UserRequestFormsWidget_it.properties | 20 ++
.../UserRequestFormsWidget_ja.properties | 20 ++
.../UserRequestFormsWidget_pt_BR.properties | 20 ++
.../UserRequestFormsWidget_ru.properties | 21 ++
.../syncope/common/lib/to/UserRequest.java | 21 +-
.../impl/FlowableUserRequestHandler.java | 91 ++---
.../syncope/fit/core/UserRequestITCase.java | 4 +-
70 files changed, 1744 insertions(+), 1518 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
index 2e15b19..f03f823 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
@@ -62,7 +62,7 @@ import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.request.resource.AbstractResource;
import org.apache.wicket.request.resource.IResource;
import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.resource.DynamicJQueryResourceReference;
+import org.apache.wicket.resource.JQueryResourceReference;
import org.apache.wicket.util.lang.Args;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -190,7 +190,7 @@ public class SyncopeConsoleApplication extends AuthenticatedWebApplication {
getResourceSettings().setThrowExceptionOnMissingResource(true);
- getJavaScriptLibrarySettings().setJQueryReference(new DynamicJQueryResourceReference());
+ getJavaScriptLibrarySettings().setJQueryReference(JQueryResourceReference.getV2());
getSecuritySettings().setAuthorizationStrategy(new MetaDataRoleAuthorizationStrategy(this));
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/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 48b58137..2e60aa9 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
@@ -123,8 +123,6 @@ public final class Constants {
public static final String PREF_ACCESS_TOKEN_PAGINATOR_ROWS = "accessToken.paginator.rows";
- public static final String PREF_WORKFLOW_FORM_PAGINATOR_ROWS = "workflow.paginator.rows";
-
public static final String PREF_REMEDIATION_PAGINATOR_ROWS = "remediation.paginator.rows";
public static final String PREF_RESOURCES_PAGINATOR_ROWS = "resources.paginator.rows";
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java
index 8b60941..a80cdcb 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java
@@ -18,8 +18,6 @@
*/
package org.apache.syncope.client.console.rest;
-import static org.apache.syncope.client.console.rest.BaseRestClient.getStatus;
-
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/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 0dc445d..c333f34 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
@@ -229,8 +229,7 @@ public abstract class SchedTaskDirectoryPanel<T extends SchedTaskTO>
new AjaxWizard.EditItemActionEvent<>(clone, target).setResourceModel(
new StringResourceModel("inner.task.clone",
SchedTaskDirectoryPanel.this,
- Model.of(Pair.of(
- ActionLink.ActionType.CLONE, model.getObject())))));
+ Model.of(Pair.of(ActionLink.ActionType.CLONE, model.getObject())))));
}
}, ActionLink.ActionType.CLONE, StandardEntitlement.TASK_CREATE);
@@ -241,8 +240,7 @@ public abstract class SchedTaskDirectoryPanel<T extends SchedTaskTO>
@Override
public void onClick(final AjaxRequestTarget target, final T ignore) {
SchedTaskDirectoryPanel.this.getTogglePanel().close(target);
- startAt.setExecutionDetail(
- model.getObject().getKey(), model.getObject().getName(), target);
+ startAt.setExecutionDetail(model.getObject().getKey(), model.getObject().getName(), target);
startAt.toggle(target, true);
}
}, ActionLink.ActionType.EXECUTE, StandardEntitlement.TASK_EXECUTE);
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java
deleted file mode 100644
index 6a66afc..0000000
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java
+++ /dev/null
@@ -1,201 +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.approvals;
-
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.math.NumberUtils;
-import org.apache.commons.lang3.time.FastDateFormat;
-import org.apache.syncope.client.console.commons.MapChoiceRenderer;
-import org.apache.syncope.client.console.panels.MultilevelPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.AjaxSpinnerFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDateTimeFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
-import org.apache.syncope.common.lib.to.UserRequestFormProperty;
-import org.apache.syncope.common.lib.to.UserRequestForm;
-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.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
-import org.apache.wicket.markup.html.list.ListItem;
-import org.apache.wicket.markup.html.list.ListView;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.LoadableDetachableModel;
-import org.apache.wicket.model.PropertyModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public abstract class Approval extends Panel {
-
- private static final long serialVersionUID = -8847854414429745216L;
-
- protected static final Logger LOG = LoggerFactory.getLogger(Approval.class);
-
- public Approval(final PageReference pageRef, final UserRequestForm formTO) {
- super(MultilevelPanel.FIRST_LEVEL_ID);
-
- IModel<List<UserRequestFormProperty>> formProps = new LoadableDetachableModel<List<UserRequestFormProperty>>() {
-
- private static final long serialVersionUID = 3169142472626817508L;
-
- @Override
- protected List<UserRequestFormProperty> load() {
- return formTO.getProperties();
- }
- };
-
- ListView<UserRequestFormProperty> propView = new ListView<UserRequestFormProperty>("propView", formProps) {
-
- private static final long serialVersionUID = 9101744072914090143L;
-
- @Override
- @SuppressWarnings({ "unchecked", "rawtypes" })
- protected void populateItem(final ListItem<UserRequestFormProperty> item) {
- final UserRequestFormProperty prop = item.getModelObject();
-
- String label = StringUtils.isBlank(prop.getName()) ? prop.getId() : prop.getName();
-
- FieldPanel field;
- switch (prop.getType()) {
- case Boolean:
- field = new AjaxDropDownChoicePanel("value", label, new PropertyModel<String>(prop, "value") {
-
- private static final long serialVersionUID = -3743432456095828573L;
-
- @Override
- public String getObject() {
- return StringUtils.isBlank(prop.getValue())
- ? null
- : prop.getValue().equals("true") ? "Yes" : "No";
- }
-
- @Override
- public void setObject(final String object) {
- prop.setValue(String.valueOf(object.equalsIgnoreCase("yes")));
- }
-
- }, false).setChoices(Arrays.asList(new String[] { "Yes", "No" }));
- break;
-
- case Date:
- FastDateFormat formatter = FastDateFormat.getInstance(prop.getDatePattern());
- field = new AjaxDateTimeFieldPanel("value", label, new PropertyModel<Date>(prop, "value") {
-
- private static final long serialVersionUID = -3743432456095828573L;
-
- @Override
- public Date getObject() {
- try {
- return StringUtils.isBlank(prop.getValue())
- ? null
- : formatter.parse(prop.getValue());
- } catch (ParseException e) {
- LOG.error("Unparsable date: {}", prop.getValue(), e);
- return null;
- }
- }
-
- @Override
- public void setObject(final Date object) {
- prop.setValue(formatter.format(object));
- }
-
- }, prop.getDatePattern());
- break;
-
- case Enum:
- field = new AjaxDropDownChoicePanel(
- "value", label, new PropertyModel<String>(prop, "value"), false).
- setChoiceRenderer(new MapChoiceRenderer(prop.getEnumValues())).
- setChoices(new ArrayList<>(prop.getEnumValues().keySet()));
- break;
-
- case Dropdown:
- field = new AjaxDropDownChoicePanel(
- "value", label, new PropertyModel<String>(prop, "value"), false).
- setChoiceRenderer(new MapChoiceRenderer(prop.getDropdownValues())).
- setChoices(new ArrayList<>(prop.getDropdownValues().keySet()));
- break;
-
- case Long:
- field = new AjaxSpinnerFieldPanel.Builder<Long>().build(
- "value",
- label,
- Long.class,
- new PropertyModel<Long>(prop, "value") {
-
- private static final long serialVersionUID = -7688359318035249200L;
-
- @Override
- public Long getObject() {
- return StringUtils.isBlank(prop.getValue())
- ? null
- : NumberUtils.toLong(prop.getValue());
- }
-
- @Override
- public void setObject(final Long object) {
- prop.setValue(String.valueOf(object));
- }
- });
- break;
-
- case String:
- default:
- field = new AjaxTextFieldPanel("value", label, new PropertyModel<>(prop, "value"), false);
- break;
- }
-
- field.setReadOnly(!prop.isWritable());
- if (prop.isRequired()) {
- field.addRequiredLabel();
- }
-
- item.add(field);
- }
- };
-
- AjaxLink<String> userDetails = new AjaxLink<String>("userDetails") {
-
- private static final long serialVersionUID = -4804368561204623354L;
-
- @Override
- public void onClick(final AjaxRequestTarget target) {
- viewDetails(target);
- }
- };
- MetaDataRoleAuthorizationStrategy.authorize(userDetails, ENABLE, StandardEntitlement.USER_READ);
-
- boolean enabled = formTO.getUserTO() != null;
- userDetails.setVisible(enabled).setEnabled(enabled);
-
- add(propView);
- add(userDetails);
- }
-
- protected abstract void viewDetails(final AjaxRequestTarget target);
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDetails.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDetails.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDetails.java
deleted file mode 100644
index 9606824..0000000
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDetails.java
+++ /dev/null
@@ -1,63 +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.approvals;
-
-import org.apache.syncope.client.console.layout.UserFormLayoutInfo;
-import org.apache.syncope.client.console.panels.MultilevelPanel;
-import org.apache.syncope.client.console.rest.AnyTypeRestClient;
-import org.apache.syncope.client.console.wizards.AjaxWizard;
-import org.apache.syncope.client.console.wizards.any.UserWizardBuilder;
-import org.apache.syncope.common.lib.AnyOperations;
-import org.apache.syncope.common.lib.to.UserTO;
-import org.apache.syncope.common.lib.to.UserRequestForm;
-import org.apache.syncope.common.lib.types.AnyTypeKind;
-import org.apache.wicket.PageReference;
-
-public class ApprovalDetails extends MultilevelPanel.SecondLevel {
-
- private static final long serialVersionUID = -8847854414429745216L;
-
- public ApprovalDetails(final PageReference pageRef, final UserRequestForm formTO) {
- super(MultilevelPanel.SECOND_LEVEL_ID);
-
- final UserTO newUserTO;
- final UserTO previousUserTO;
- if (formTO.getUserPatch() == null) {
- newUserTO = formTO.getUserTO();
- previousUserTO = null;
- } else if (formTO.getUserTO() == null) {
- // make it stronger by handling possible NPE
- previousUserTO = new UserTO();
- previousUserTO.setKey(formTO.getUserPatch().getKey());
- newUserTO = AnyOperations.patch(previousUserTO, formTO.getUserPatch());
- } else {
- formTO.getUserTO().setKey(formTO.getUserPatch().getKey());
- newUserTO = AnyOperations.patch(formTO.getUserTO(), formTO.getUserPatch());
- previousUserTO = formTO.getUserTO();
- }
-
- add(new UserWizardBuilder(
- previousUserTO,
- newUserTO,
- new AnyTypeRestClient().read(AnyTypeKind.USER.name()).getClasses(),
- new UserFormLayoutInfo(),
- pageRef).
- build(AjaxWizard.Mode.READONLY));
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java
deleted file mode 100644
index 577ea65..0000000
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java
+++ /dev/null
@@ -1,352 +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.approvals;
-
-import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
-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.commons.lang3.StringUtils;
-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.DirectoryPanel;
-import org.apache.syncope.client.console.rest.UserRequestRestClient;
-import org.apache.syncope.client.console.approvals.ApprovalDirectoryPanel.ApprovalProvider;
-import org.apache.syncope.client.console.layout.FormLayoutInfoUtils;
-import org.apache.syncope.client.console.layout.UserFormLayoutInfo;
-import org.apache.syncope.client.console.pages.BasePage;
-import org.apache.syncope.client.console.rest.AnyTypeRestClient;
-import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.DatePropertyColumn;
-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.ActionsPanel;
-import org.apache.syncope.client.console.widgets.ApprovalsWidget;
-import org.apache.syncope.client.console.wizards.AjaxWizard;
-import org.apache.syncope.client.console.wizards.any.AnyWrapper;
-import org.apache.syncope.client.console.wizards.any.UserWizardBuilder;
-import org.apache.syncope.common.lib.AnyOperations;
-import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.patch.PasswordPatch;
-import org.apache.syncope.common.lib.patch.UserPatch;
-import org.apache.syncope.common.lib.to.ProvisioningResult;
-import org.apache.syncope.common.lib.to.UserTO;
-import org.apache.syncope.common.lib.to.UserRequestForm;
-import org.apache.syncope.common.lib.types.AnyTypeKind;
-import org.apache.syncope.common.lib.types.FlowableEntitlement;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
-import org.apache.wicket.event.Broadcast;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-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.model.CompoundPropertyModel;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.model.ResourceModel;
-
-public class ApprovalDirectoryPanel
- extends DirectoryPanel<UserRequestForm, UserRequestForm, ApprovalProvider, UserRequestRestClient> {
-
- private static final long serialVersionUID = -7122136682275797903L;
-
- protected final BaseModal<UserRequestForm> manageApprovalModal = new BaseModal<UserRequestForm>("outer") {
-
- private static final long serialVersionUID = 389935548143327858L;
-
- @Override
- protected void onConfigure() {
- super.onConfigure();
- addSubmitButton();
- size(Modal.Size.Large);
- }
-
- };
-
- public ApprovalDirectoryPanel(final String id, final PageReference pageReference) {
- super(id, pageReference, true);
- disableCheckBoxes();
- setFooterVisibility(false);
- modal.size(Modal.Size.Large);
-
- addOuterObject(manageApprovalModal);
-
- manageApprovalModal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
-
- private static final long serialVersionUID = 8804221891699487139L;
-
- @Override
- public void onClose(final AjaxRequestTarget target) {
- updateResultTable(target);
-
- Serializable widget = SyncopeConsoleSession.get().getAttribute(ApprovalsWidget.class.getName());
- if (widget instanceof ApprovalsWidget) {
- ((ApprovalsWidget) widget).refreshLatestAlerts(target);
- }
-
- manageApprovalModal.show(false);
- }
- });
-
- restClient = new UserRequestRestClient();
-
- initResultTable();
-
- MetaDataRoleAuthorizationStrategy.authorize(addAjaxLink, RENDER, FlowableEntitlement.USER_REQUEST_FORM_SUBMIT);
- }
-
- @Override
- protected List<IColumn<UserRequestForm, String>> getColumns() {
- List<IColumn<UserRequestForm, String>> columns = new ArrayList<>();
-
- columns.add(new PropertyColumn<>(
- new ResourceModel("bpmnProcess"), "bpmnProcess", "bpmnProcess"));
- columns.add(new PropertyColumn<>(
- new ResourceModel("key"), "formKey", "formKey"));
- columns.add(new PropertyColumn<>(
- new ResourceModel("username"), "username"));
- columns.add(new DatePropertyColumn<>(
- new ResourceModel("createTime"), "createTime", "createTime"));
- columns.add(new DatePropertyColumn<>(
- new ResourceModel("dueDate"), "dueDate", "dueDate"));
- columns.add(new PropertyColumn<>(
- new ResourceModel("owner"), "owner", "owner"));
-
- return columns;
- }
-
- @Override
- public ActionsPanel<UserRequestForm> getActions(final IModel<UserRequestForm> model) {
- final ActionsPanel<UserRequestForm> panel = super.getActions(model);
-
- panel.add(new ActionLink<UserRequestForm>() {
-
- private static final long serialVersionUID = -3722207913631435501L;
-
- @Override
- public void onClick(final AjaxRequestTarget target, final UserRequestForm ignore) {
- claimForm(model.getObject().getTaskId());
- SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
- ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
- target.add(container);
- }
- }, ActionLink.ActionType.CLAIM, FlowableEntitlement.USER_REQUEST_FORM_CLAIM);
-
- panel.add(new ActionLink<UserRequestForm>() {
-
- private static final long serialVersionUID = -3722207913631435501L;
-
- @Override
- public void onClick(final AjaxRequestTarget target, final UserRequestForm ignore) {
- manageApprovalModal.setFormModel(new CompoundPropertyModel<>(model.getObject()));
-
- target.add(manageApprovalModal.setContent(
- new ApprovalModal(manageApprovalModal, pageRef, model.getObject()) {
-
- private static final long serialVersionUID = 5546519445061007248L;
-
- @Override
- public void onSubmit(final AjaxRequestTarget target) {
- try {
- super.onSubmit(target);
-
- ApprovalDirectoryPanel.this.getTogglePanel().close(target);
- } catch (SyncopeClientException e) {
- SyncopeConsoleSession.get().error(getString(Constants.ERROR) + ": " + e.getMessage());
- }
- ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
- }
-
- }));
-
- manageApprovalModal.header(new Model<>(getString("approval.manage", new Model<>(model.getObject()))));
- manageApprovalModal.show(true);
- }
-
- @Override
- protected boolean statusCondition(final UserRequestForm modelObject) {
- return SyncopeConsoleSession.get().getSelfTO().getUsername().
- equals(model.getObject().getOwner());
- }
-
- }, ActionLink.ActionType.MANAGE_APPROVAL, FlowableEntitlement.USER_REQUEST_FORM_SUBMIT);
-
- // SYNCOPE-1200 edit user while in approval state
- panel.add(new ActionLink<UserRequestForm>() {
-
- private static final long serialVersionUID = -3722207913631435501L;
-
- @Override
- public void onClick(final AjaxRequestTarget target, final UserRequestForm ignore) {
- modal.setFormModel(new CompoundPropertyModel<>(model.getObject()));
-
- UserRequestForm formTO = model.getObject();
- UserTO newUserTO;
- UserTO previousUserTO;
- if (formTO.getUserPatch() == null) {
- newUserTO = formTO.getUserTO();
- previousUserTO = null;
- } else if (formTO.getUserTO() == null) {
- // make it stronger by handling possible NPE
- previousUserTO = new UserTO();
- previousUserTO.setKey(formTO.getUserPatch().getKey());
- newUserTO = AnyOperations.patch(previousUserTO, formTO.getUserPatch());
- } else {
- previousUserTO = formTO.getUserTO();
- formTO.getUserTO().setKey(formTO.getUserPatch().getKey());
- formTO.getUserTO().setPassword(null);
- newUserTO = AnyOperations.patch(formTO.getUserTO(), formTO.getUserPatch());
- }
-
- AjaxWizard.EditItemActionEvent<UserTO> editItemActionEvent =
- new AjaxWizard.EditItemActionEvent<>(newUserTO, target);
- editItemActionEvent.forceModalPanel(new ApprovalUserWizardBuilder(
- model.getObject(),
- previousUserTO,
- newUserTO,
- new AnyTypeRestClient().read(AnyTypeKind.USER.name()).getClasses(),
- FormLayoutInfoUtils.fetch(Collections.singletonList(AnyTypeKind.USER.name())).getLeft(),
- pageRef
- ).build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT));
-
- send(ApprovalDirectoryPanel.this, Broadcast.EXACT, editItemActionEvent);
- }
-
- @Override
- protected boolean statusCondition(final UserRequestForm modelObject) {
- return SyncopeConsoleSession.get().getSelfTO().getUsername().
- equals(model.getObject().getOwner());
- }
-
- }, ActionLink.ActionType.EDIT_APPROVAL, FlowableEntitlement.USER_REQUEST_FORM_SUBMIT);
-
- return panel;
- }
-
- @Override
- protected ApprovalProvider dataProvider() {
- return new ApprovalProvider(rows);
- }
-
- @Override
- protected String paginatorRowsKey() {
- return Constants.PREF_WORKFLOW_FORM_PAGINATOR_ROWS;
- }
-
- public static class ApprovalProvider extends DirectoryDataProvider<UserRequestForm> {
-
- private static final long serialVersionUID = -2311716167583335852L;
-
- private final UserRequestRestClient restClient = new UserRequestRestClient();
-
- public ApprovalProvider(final int paginatorRows) {
- super(paginatorRows);
-
- setSort("createTime", SortOrder.ASCENDING);
- }
-
- @Override
- public Iterator<UserRequestForm> iterator(final long first, final long count) {
- int page = ((int) first / paginatorRows);
- return restClient.getForms((page < 0 ? 0 : page) + 1, paginatorRows, getSort()).iterator();
- }
-
- @Override
- public long size() {
- return restClient.countForms();
- }
-
- @Override
- public IModel<UserRequestForm> model(final UserRequestForm form) {
- return new IModel<UserRequestForm>() {
-
- private static final long serialVersionUID = -2566070996511906708L;
-
- @Override
- public UserRequestForm getObject() {
- return form;
- }
- };
- }
- }
-
- @Override
- protected Collection<ActionLink.ActionType> getBatches() {
- return Collections.<ActionLink.ActionType>emptyList();
- }
-
- private void claimForm(final String taskId) {
- try {
- restClient.claimForm(taskId);
- } catch (SyncopeClientException scee) {
- SyncopeConsoleSession.get().error(getString(Constants.ERROR) + ": " + scee.getMessage());
- }
- }
-
- private class ApprovalUserWizardBuilder extends UserWizardBuilder {
-
- private static final long serialVersionUID = 1854981134836384069L;
-
- private final UserRequestForm formTO;
-
- ApprovalUserWizardBuilder(
- final UserRequestForm formTO,
- final UserTO previousUserTO,
- final UserTO userTO,
- final List<String> anyTypeClasses,
- final UserFormLayoutInfo formLayoutInfo,
- final PageReference pageRef) {
-
- super(previousUserTO, userTO, anyTypeClasses, formLayoutInfo, pageRef);
- this.formTO = formTO;
- }
-
- @Override
- protected Serializable onApplyInternal(final AnyWrapper<UserTO> modelObject) {
- UserTO inner = modelObject.getInnerObject();
-
- UserPatch patch = AnyOperations.diff(inner, formTO.getUserTO(), false);
-
- if (StringUtils.isNotBlank(inner.getPassword())) {
- PasswordPatch passwordPatch = new PasswordPatch.Builder().
- value(inner.getPassword()).onSyncope(true).resources(inner.
- getResources()).
- build();
- patch.setPassword(passwordPatch);
- }
-
- // update just if it is changed
- ProvisioningResult<UserTO> result;
- if (patch.isEmpty()) {
- result = new ProvisioningResult<>();
- result.setEntity(inner);
- } else {
- result = userRestClient.update(getOriginalItem().getInnerObject().getETagValue(), patch);
- restClient.getForm(result.getEntity().getKey()).ifPresent(form -> claimForm(form.getTaskId()));
- }
-
- return result;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java
deleted file mode 100644
index 0cae1c8..0000000
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java
+++ /dev/null
@@ -1,82 +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.approvals;
-
-import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.pages.BasePage;
-import org.apache.syncope.client.console.panels.MultilevelPanel;
-import org.apache.syncope.client.console.rest.UserRequestRestClient;
-import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
-import org.apache.syncope.common.lib.to.UserRequestForm;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.syncope.client.console.panels.SubmitableModalPanel;
-import org.apache.syncope.client.console.panels.WizardModalPanel;
-
-public class ApprovalModal extends Panel implements SubmitableModalPanel, WizardModalPanel<UserRequestForm> {
-
- private static final long serialVersionUID = -8847854414429745216L;
-
- private final UserRequestRestClient restClient = new UserRequestRestClient();
-
- private final BaseModal<?> modal;
-
- private final UserRequestForm formTO;
-
- private final PageReference pageRef;
-
- public ApprovalModal(final BaseModal<?> modal, final PageReference pageRef, final UserRequestForm formTO) {
- super(BaseModal.CONTENT_ID);
- this.modal = modal;
- this.formTO = formTO;
- this.pageRef = pageRef;
-
- MultilevelPanel mlp = new MultilevelPanel("approval");
- mlp.setFirstLevel(new Approval(pageRef, formTO) {
-
- private static final long serialVersionUID = -2195387360323687302L;
-
- @Override
- protected void viewDetails(final AjaxRequestTarget target) {
- mlp.next(getString("approval.details"), new ApprovalDetails(pageRef, formTO), target);
- }
- });
- add(mlp);
- }
-
- @Override
- public void onSubmit(final AjaxRequestTarget target) {
- this.restClient.submitForm(formTO);
- this.modal.show(false);
- this.modal.close(target);
- SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
- }
-
- @Override
- public void onError(final AjaxRequestTarget target) {
- ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
- }
-
- @Override
- public UserRequestForm getItem() {
- return this.formTO;
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Approvals.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Approvals.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Approvals.java
deleted file mode 100644
index 0dbc4db..0000000
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Approvals.java
+++ /dev/null
@@ -1,41 +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.pages;
-
-import org.apache.syncope.client.console.BookmarkablePageLinkBuilder;
-import org.apache.syncope.client.console.approvals.ApprovalDirectoryPanel;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
-
-public class Approvals extends BasePage {
-
- private static final long serialVersionUID = -1100228004207271271L;
-
- public Approvals(final PageParameters parameters) {
- super(parameters);
-
- body.add(BookmarkablePageLinkBuilder.build("dashboard", "dashboardBr", Dashboard.class));
-
- WebMarkupContainer content = new WebMarkupContainer("content");
- content.setOutputMarkupId(true);
- body.add(content);
-
- content.add(new ApprovalDirectoryPanel("wfPanel", getPageReference()));
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Flowable.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Flowable.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Flowable.java
index 8062a77..a533897 100644
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Flowable.java
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/Flowable.java
@@ -19,7 +19,6 @@
package org.apache.syncope.client.console.pages;
import org.apache.syncope.client.console.BookmarkablePageLinkBuilder;
-import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.annotations.ExtPage;
import org.apache.syncope.client.console.panels.BpmnProcessDirectoryPanel;
import org.apache.syncope.client.console.wizards.WizardMgtPanel;
@@ -57,11 +56,5 @@ public class Flowable extends BaseExtPage {
MetaDataRoleAuthorizationStrategy.authorize(bpmnProcessesPanel, ENABLE, FlowableEntitlement.BPMN_PROCESS_LIST);
content.add(bpmnProcessesPanel);
-
- if (SyncopeConsoleSession.get().getPlatformInfo().getUserWorkflowAdapter().contains("Flowable")) {
- disabled.setVisible(false);
- } else {
- bpmnProcessesPanel.setVisible(false);
- }
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/UserRequests.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/UserRequests.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/UserRequests.java
new file mode 100644
index 0000000..c23e1ad
--- /dev/null
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/pages/UserRequests.java
@@ -0,0 +1,74 @@
+/*
+ * 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.pages;
+
+import de.agilecoders.wicket.core.markup.html.bootstrap.tabs.AjaxBootstrapTabbedPanel;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.syncope.client.console.BookmarkablePageLinkBuilder;
+import org.apache.syncope.client.console.panels.UserRequestFormDirectoryPanel;
+import org.apache.syncope.client.console.panels.UserRequestDirectoryPanel;
+import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
+import org.apache.wicket.extensions.markup.html.tabs.ITab;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.ResourceModel;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+
+public class UserRequests extends BasePage {
+
+ private static final long serialVersionUID = -1100228004207271271L;
+
+ public UserRequests(final PageParameters parameters) {
+ super(parameters);
+
+ body.add(BookmarkablePageLinkBuilder.build("dashboard", "dashboardBr", Dashboard.class));
+
+ WebMarkupContainer content = new WebMarkupContainer("content");
+ content.setOutputMarkupId(true);
+ content.setMarkupId("userRequests");
+ content.add(new AjaxBootstrapTabbedPanel<>("tabbedPanel", buildTabList()));
+ body.add(content);
+ }
+
+ private List<ITab> buildTabList() {
+ final List<ITab> tabs = new ArrayList<>();
+
+ tabs.add(new AbstractTab(new ResourceModel("userRequestForms")) {
+
+ private static final long serialVersionUID = -6815067322125799251L;
+
+ @Override
+ public Panel getPanel(final String panelId) {
+ return new UserRequestFormDirectoryPanel(panelId, getPageReference());
+ }
+ });
+
+ tabs.add(new AbstractTab(new ResourceModel("activeRequests")) {
+
+ private static final long serialVersionUID = -6815067322125799251L;
+
+ @Override
+ public Panel getPanel(final String panelId) {
+ return new UserRequestDirectoryPanel(panelId, getPageReference());
+ }
+ });
+ return tabs;
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestDirectoryPanel.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestDirectoryPanel.java
new file mode 100644
index 0000000..3c043ac
--- /dev/null
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestDirectoryPanel.java
@@ -0,0 +1,163 @@
+/*
+ * 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 de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import org.apache.commons.lang3.StringUtils;
+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.pages.BasePage;
+import org.apache.syncope.client.console.panels.UserRequestDirectoryPanel.UserRequestProvider;
+import org.apache.syncope.client.console.rest.UserRequestRestClient;
+import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.DatePropertyColumn;
+import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
+import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
+import org.apache.syncope.common.lib.SyncopeClientException;
+import org.apache.syncope.common.lib.to.UserRequest;
+import org.apache.syncope.common.lib.types.FlowableEntitlement;
+import org.apache.wicket.PageReference;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
+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.model.IModel;
+import org.apache.wicket.model.ResourceModel;
+
+public class UserRequestDirectoryPanel
+ extends DirectoryPanel<UserRequest, UserRequest, UserRequestProvider, UserRequestRestClient> {
+
+ private static final long serialVersionUID = -5346161040211617763L;
+
+ private static final String PREF_USER_REQUEST_PAGINATOR_ROWS = "userrequest.paginator.rows";
+
+ public UserRequestDirectoryPanel(final String id, final PageReference pageReference) {
+ super(id, pageReference, true);
+ disableCheckBoxes();
+ setFooterVisibility(false);
+ modal.size(Modal.Size.Large);
+
+ restClient = new UserRequestRestClient();
+
+ initResultTable();
+
+ MetaDataRoleAuthorizationStrategy.authorize(addAjaxLink, RENDER, FlowableEntitlement.USER_REQUEST_LIST);
+ }
+
+ @Override
+ protected List<IColumn<UserRequest, String>> getColumns() {
+ List<IColumn<UserRequest, String>> columns = new ArrayList<>();
+
+ columns.add(new PropertyColumn<>(
+ new ResourceModel("bpmnProcess"), "bpmnProcess", "bpmnProcess"));
+ columns.add(new DatePropertyColumn<>(
+ new ResourceModel("startTime"), "startTime", "startTime"));
+ columns.add(new PropertyColumn<>(
+ new ResourceModel("username"), "username"));
+ columns.add(new PropertyColumn<>(
+ new ResourceModel("activityId"), "activityId"));
+
+ return columns;
+ }
+
+ @Override
+ public ActionsPanel<UserRequest> getActions(final IModel<UserRequest> model) {
+ final ActionsPanel<UserRequest> panel = super.getActions(model);
+
+ panel.add(new ActionLink<UserRequest>() {
+
+ private static final long serialVersionUID = -3722207913631435501L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final UserRequest ignore) {
+ try {
+ restClient.cancelRequest(model.getObject().getExecutionId(), null);
+ SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
+ target.add(container);
+ UserRequestDirectoryPanel.this.getTogglePanel().close(target);
+ } catch (SyncopeClientException e) {
+ SyncopeConsoleSession.get().error(StringUtils.isBlank(e.getMessage())
+ ? e.getClass().getName() : e.getMessage());
+ LOG.error("While canceling execution {}", model.getObject().getExecutionId(), e);
+ }
+ ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+ }
+ }, ActionLink.ActionType.DELETE, FlowableEntitlement.USER_REQUEST_CANCEL, true);
+
+ return panel;
+ }
+
+ @Override
+ protected UserRequestProvider dataProvider() {
+ return new UserRequestProvider(rows);
+ }
+
+ @Override
+ protected String paginatorRowsKey() {
+ return PREF_USER_REQUEST_PAGINATOR_ROWS;
+ }
+
+ @Override
+ protected Collection<ActionLink.ActionType> getBatches() {
+ return Collections.<ActionLink.ActionType>emptyList();
+ }
+
+ protected static class UserRequestProvider extends DirectoryDataProvider<UserRequest> {
+
+ private static final long serialVersionUID = -1392420250782313734L;
+
+ private final UserRequestRestClient restClient = new UserRequestRestClient();
+
+ public UserRequestProvider(final int paginatorRows) {
+ super(paginatorRows);
+
+ setSort("startTime", SortOrder.ASCENDING);
+ }
+
+ @Override
+ public Iterator<UserRequest> iterator(final long first, final long count) {
+ int page = ((int) first / paginatorRows);
+ return restClient.getUserRequests((page < 0 ? 0 : page) + 1, paginatorRows, getSort()).iterator();
+ }
+
+ @Override
+ public long size() {
+ return restClient.countUserRequests();
+ }
+
+ @Override
+ public IModel<UserRequest> model(final UserRequest request) {
+ return new IModel<UserRequest>() {
+
+ private static final long serialVersionUID = -2566070996511906708L;
+
+ @Override
+ public UserRequest getObject() {
+ return request;
+ }
+ };
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDetails.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDetails.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDetails.java
new file mode 100644
index 0000000..9c29105
--- /dev/null
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDetails.java
@@ -0,0 +1,62 @@
+/*
+ * 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 org.apache.syncope.client.console.layout.UserFormLayoutInfo;
+import org.apache.syncope.client.console.rest.AnyTypeRestClient;
+import org.apache.syncope.client.console.wizards.AjaxWizard;
+import org.apache.syncope.client.console.wizards.any.UserWizardBuilder;
+import org.apache.syncope.common.lib.AnyOperations;
+import org.apache.syncope.common.lib.to.UserTO;
+import org.apache.syncope.common.lib.to.UserRequestForm;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
+import org.apache.wicket.PageReference;
+
+public class UserRequestFormDetails extends MultilevelPanel.SecondLevel {
+
+ private static final long serialVersionUID = -8847854414429745216L;
+
+ public UserRequestFormDetails(final PageReference pageRef, final UserRequestForm formTO) {
+ super(MultilevelPanel.SECOND_LEVEL_ID);
+
+ final UserTO newUserTO;
+ final UserTO previousUserTO;
+ if (formTO.getUserPatch() == null) {
+ newUserTO = formTO.getUserTO();
+ previousUserTO = null;
+ } else if (formTO.getUserTO() == null) {
+ // make it stronger by handling possible NPE
+ previousUserTO = new UserTO();
+ previousUserTO.setKey(formTO.getUserPatch().getKey());
+ newUserTO = AnyOperations.patch(previousUserTO, formTO.getUserPatch());
+ } else {
+ formTO.getUserTO().setKey(formTO.getUserPatch().getKey());
+ newUserTO = AnyOperations.patch(formTO.getUserTO(), formTO.getUserPatch());
+ previousUserTO = formTO.getUserTO();
+ }
+
+ add(new UserWizardBuilder(
+ previousUserTO,
+ newUserTO,
+ new AnyTypeRestClient().read(AnyTypeKind.USER.name()).getClasses(),
+ new UserFormLayoutInfo(),
+ pageRef).
+ build(AjaxWizard.Mode.READONLY));
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDirectoryPanel.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDirectoryPanel.java
new file mode 100644
index 0000000..bf82896
--- /dev/null
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDirectoryPanel.java
@@ -0,0 +1,353 @@
+/*
+ * 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 de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+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.commons.lang3.StringUtils;
+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.rest.UserRequestRestClient;
+import org.apache.syncope.client.console.panels.UserRequestFormDirectoryPanel.UserRequestFormProvider;
+import org.apache.syncope.client.console.layout.FormLayoutInfoUtils;
+import org.apache.syncope.client.console.layout.UserFormLayoutInfo;
+import org.apache.syncope.client.console.pages.BasePage;
+import org.apache.syncope.client.console.rest.AnyTypeRestClient;
+import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.DatePropertyColumn;
+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.ActionsPanel;
+import org.apache.syncope.client.console.widgets.UserRequestFormsWidget;
+import org.apache.syncope.client.console.wizards.AjaxWizard;
+import org.apache.syncope.client.console.wizards.any.AnyWrapper;
+import org.apache.syncope.client.console.wizards.any.UserWizardBuilder;
+import org.apache.syncope.common.lib.AnyOperations;
+import org.apache.syncope.common.lib.SyncopeClientException;
+import org.apache.syncope.common.lib.patch.PasswordPatch;
+import org.apache.syncope.common.lib.patch.UserPatch;
+import org.apache.syncope.common.lib.to.ProvisioningResult;
+import org.apache.syncope.common.lib.to.UserTO;
+import org.apache.syncope.common.lib.to.UserRequestForm;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
+import org.apache.syncope.common.lib.types.FlowableEntitlement;
+import org.apache.wicket.PageReference;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
+import org.apache.wicket.event.Broadcast;
+import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
+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.model.CompoundPropertyModel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.ResourceModel;
+
+public class UserRequestFormDirectoryPanel
+ extends DirectoryPanel<UserRequestForm, UserRequestForm, UserRequestFormProvider, UserRequestRestClient> {
+
+ private static final long serialVersionUID = -7122136682275797903L;
+
+ private static final String PREF_USER_REQUEST_FORM_PAGINATOR_ROWS = "userrequestform.paginator.rows";
+
+ protected final BaseModal<UserRequestForm> manageFormModal = new BaseModal<UserRequestForm>("outer") {
+
+ private static final long serialVersionUID = 389935548143327858L;
+
+ @Override
+ protected void onConfigure() {
+ super.onConfigure();
+ addSubmitButton();
+ size(Modal.Size.Large);
+ }
+
+ };
+
+ public UserRequestFormDirectoryPanel(final String id, final PageReference pageReference) {
+ super(id, pageReference, true);
+ disableCheckBoxes();
+ setFooterVisibility(false);
+ modal.size(Modal.Size.Large);
+
+ addOuterObject(manageFormModal);
+
+ manageFormModal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
+
+ private static final long serialVersionUID = 8804221891699487139L;
+
+ @Override
+ public void onClose(final AjaxRequestTarget target) {
+ updateResultTable(target);
+
+ Serializable widget = SyncopeConsoleSession.get().getAttribute(UserRequestFormsWidget.class.getName());
+ if (widget instanceof UserRequestFormsWidget) {
+ ((UserRequestFormsWidget) widget).refreshLatestAlerts(target);
+ }
+
+ manageFormModal.show(false);
+ }
+ });
+
+ restClient = new UserRequestRestClient();
+
+ initResultTable();
+
+ MetaDataRoleAuthorizationStrategy.authorize(addAjaxLink, RENDER, FlowableEntitlement.USER_REQUEST_FORM_SUBMIT);
+ }
+
+ @Override
+ protected List<IColumn<UserRequestForm, String>> getColumns() {
+ List<IColumn<UserRequestForm, String>> columns = new ArrayList<>();
+
+ columns.add(new PropertyColumn<>(
+ new ResourceModel("bpmnProcess"), "bpmnProcess", "bpmnProcess"));
+ columns.add(new PropertyColumn<>(
+ new ResourceModel("key"), "formKey", "formKey"));
+ columns.add(new PropertyColumn<>(
+ new ResourceModel("username"), "username"));
+ columns.add(new DatePropertyColumn<>(
+ new ResourceModel("createTime"), "createTime", "createTime"));
+ columns.add(new DatePropertyColumn<>(
+ new ResourceModel("dueDate"), "dueDate", "dueDate"));
+ columns.add(new PropertyColumn<>(
+ new ResourceModel("owner"), "owner", "owner"));
+
+ return columns;
+ }
+
+ @Override
+ public ActionsPanel<UserRequestForm> getActions(final IModel<UserRequestForm> model) {
+ final ActionsPanel<UserRequestForm> panel = super.getActions(model);
+
+ panel.add(new ActionLink<UserRequestForm>() {
+
+ private static final long serialVersionUID = -3722207913631435501L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final UserRequestForm ignore) {
+ claimForm(model.getObject().getTaskId());
+ SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
+ ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+ target.add(container);
+ }
+ }, ActionLink.ActionType.CLAIM, FlowableEntitlement.USER_REQUEST_FORM_CLAIM);
+
+ panel.add(new ActionLink<UserRequestForm>() {
+
+ private static final long serialVersionUID = -3722207913631435501L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final UserRequestForm ignore) {
+ manageFormModal.setFormModel(new CompoundPropertyModel<>(model.getObject()));
+
+ target.add(manageFormModal.setContent(new UserRequestFormModal(manageFormModal, pageRef, model.
+ getObject()) {
+
+ private static final long serialVersionUID = 5546519445061007248L;
+
+ @Override
+ public void onSubmit(final AjaxRequestTarget target) {
+ try {
+ super.onSubmit(target);
+
+ UserRequestFormDirectoryPanel.this.getTogglePanel().close(target);
+ } catch (SyncopeClientException e) {
+ SyncopeConsoleSession.get().error(getString(Constants.ERROR) + ": " + e.getMessage());
+ }
+ ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+ }
+
+ }));
+
+ manageFormModal.header(new Model<>(getString("form.manage", new Model<>(model.getObject()))));
+ manageFormModal.show(true);
+ }
+
+ @Override
+ protected boolean statusCondition(final UserRequestForm modelObject) {
+ return SyncopeConsoleSession.get().getSelfTO().getUsername().
+ equals(model.getObject().getOwner());
+ }
+
+ }, ActionLink.ActionType.MANAGE_APPROVAL, FlowableEntitlement.USER_REQUEST_FORM_SUBMIT);
+
+ // SYNCOPE-1200 edit user while in approval state
+ panel.add(new ActionLink<UserRequestForm>() {
+
+ private static final long serialVersionUID = -3722207913631435501L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final UserRequestForm ignore) {
+ modal.setFormModel(new CompoundPropertyModel<>(model.getObject()));
+
+ UserRequestForm formTO = model.getObject();
+ UserTO newUserTO;
+ UserTO previousUserTO;
+ if (formTO.getUserPatch() == null) {
+ newUserTO = formTO.getUserTO();
+ previousUserTO = null;
+ } else if (formTO.getUserTO() == null) {
+ // make it stronger by handling possible NPE
+ previousUserTO = new UserTO();
+ previousUserTO.setKey(formTO.getUserPatch().getKey());
+ newUserTO = AnyOperations.patch(previousUserTO, formTO.getUserPatch());
+ } else {
+ previousUserTO = formTO.getUserTO();
+ formTO.getUserTO().setKey(formTO.getUserPatch().getKey());
+ formTO.getUserTO().setPassword(null);
+ newUserTO = AnyOperations.patch(formTO.getUserTO(), formTO.getUserPatch());
+ }
+
+ AjaxWizard.EditItemActionEvent<UserTO> editItemActionEvent =
+ new AjaxWizard.EditItemActionEvent<>(newUserTO, target);
+ editItemActionEvent.forceModalPanel(new FormUserWizardBuilder(
+ model.getObject(),
+ previousUserTO,
+ newUserTO,
+ new AnyTypeRestClient().read(AnyTypeKind.USER.name()).getClasses(),
+ FormLayoutInfoUtils.fetch(Collections.singletonList(AnyTypeKind.USER.name())).getLeft(),
+ pageRef
+ ).build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT));
+
+ send(UserRequestFormDirectoryPanel.this, Broadcast.EXACT, editItemActionEvent);
+ }
+
+ @Override
+ protected boolean statusCondition(final UserRequestForm modelObject) {
+ return SyncopeConsoleSession.get().getSelfTO().getUsername().
+ equals(model.getObject().getOwner());
+ }
+
+ }, ActionLink.ActionType.EDIT_APPROVAL, FlowableEntitlement.USER_REQUEST_FORM_SUBMIT);
+
+ return panel;
+ }
+
+ @Override
+ protected UserRequestFormProvider dataProvider() {
+ return new UserRequestFormProvider(rows);
+ }
+
+ @Override
+ protected String paginatorRowsKey() {
+ return PREF_USER_REQUEST_FORM_PAGINATOR_ROWS;
+ }
+
+ protected static class UserRequestFormProvider extends DirectoryDataProvider<UserRequestForm> {
+
+ private static final long serialVersionUID = -2311716167583335852L;
+
+ private final UserRequestRestClient restClient = new UserRequestRestClient();
+
+ public UserRequestFormProvider(final int paginatorRows) {
+ super(paginatorRows);
+
+ setSort("createTime", SortOrder.ASCENDING);
+ }
+
+ @Override
+ public Iterator<UserRequestForm> iterator(final long first, final long count) {
+ int page = ((int) first / paginatorRows);
+ return restClient.getForms((page < 0 ? 0 : page) + 1, paginatorRows, getSort()).iterator();
+ }
+
+ @Override
+ public long size() {
+ return restClient.countForms();
+ }
+
+ @Override
+ public IModel<UserRequestForm> model(final UserRequestForm form) {
+ return new IModel<UserRequestForm>() {
+
+ private static final long serialVersionUID = -2566070996511906708L;
+
+ @Override
+ public UserRequestForm getObject() {
+ return form;
+ }
+ };
+ }
+ }
+
+ @Override
+ protected Collection<ActionLink.ActionType> getBatches() {
+ return Collections.<ActionLink.ActionType>emptyList();
+ }
+
+ private void claimForm(final String taskId) {
+ try {
+ restClient.claimForm(taskId);
+ } catch (SyncopeClientException scee) {
+ SyncopeConsoleSession.get().error(getString(Constants.ERROR) + ": " + scee.getMessage());
+ }
+ }
+
+ private class FormUserWizardBuilder extends UserWizardBuilder {
+
+ private static final long serialVersionUID = 1854981134836384069L;
+
+ private final UserRequestForm formTO;
+
+ FormUserWizardBuilder(
+ final UserRequestForm formTO,
+ final UserTO previousUserTO,
+ final UserTO userTO,
+ final List<String> anyTypeClasses,
+ final UserFormLayoutInfo formLayoutInfo,
+ final PageReference pageRef) {
+
+ super(previousUserTO, userTO, anyTypeClasses, formLayoutInfo, pageRef);
+ this.formTO = formTO;
+ }
+
+ @Override
+ protected Serializable onApplyInternal(final AnyWrapper<UserTO> modelObject) {
+ UserTO inner = modelObject.getInnerObject();
+
+ UserPatch patch = AnyOperations.diff(inner, formTO.getUserTO(), false);
+
+ if (StringUtils.isNotBlank(inner.getPassword())) {
+ PasswordPatch passwordPatch = new PasswordPatch.Builder().
+ value(inner.getPassword()).onSyncope(true).resources(inner.
+ getResources()).
+ build();
+ patch.setPassword(passwordPatch);
+ }
+
+ // update just if it is changed
+ ProvisioningResult<UserTO> result;
+ if (patch.isEmpty()) {
+ result = new ProvisioningResult<>();
+ result.setEntity(inner);
+ } else {
+ result = userRestClient.update(getOriginalItem().getInnerObject().getETagValue(), patch);
+ restClient.getForm(result.getEntity().getKey()).ifPresent(form -> claimForm(form.getTaskId()));
+ }
+
+ return result;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ff37c3f7/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormModal.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormModal.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormModal.java
new file mode 100644
index 0000000..07a7950
--- /dev/null
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormModal.java
@@ -0,0 +1,79 @@
+/*
+ * 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 org.apache.syncope.client.console.SyncopeConsoleSession;
+import org.apache.syncope.client.console.commons.Constants;
+import org.apache.syncope.client.console.pages.BasePage;
+import org.apache.syncope.client.console.rest.UserRequestRestClient;
+import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
+import org.apache.syncope.common.lib.to.UserRequestForm;
+import org.apache.wicket.PageReference;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.panel.Panel;
+
+public class UserRequestFormModal extends Panel implements SubmitableModalPanel, WizardModalPanel<UserRequestForm> {
+
+ private static final long serialVersionUID = -8847854414429745216L;
+
+ private final UserRequestRestClient restClient = new UserRequestRestClient();
+
+ private final BaseModal<?> modal;
+
+ private final UserRequestForm formTO;
+
+ private final PageReference pageRef;
+
+ public UserRequestFormModal(final BaseModal<?> modal, final PageReference pageRef, final UserRequestForm formTO) {
+ super(BaseModal.CONTENT_ID);
+ this.modal = modal;
+ this.formTO = formTO;
+ this.pageRef = pageRef;
+
+ MultilevelPanel mlp = new MultilevelPanel("userRequestForm");
+ mlp.setFirstLevel(new UserRequestFormPanel(pageRef, formTO) {
+
+ private static final long serialVersionUID = -2195387360323687302L;
+
+ @Override
+ protected void viewDetails(final AjaxRequestTarget target) {
+ mlp.next(getString("userRequest.details"), new UserRequestFormDetails(pageRef, formTO), target);
+ }
+ });
+ add(mlp);
+ }
+
+ @Override
+ public void onSubmit(final AjaxRequestTarget target) {
+ this.restClient.submitForm(formTO);
+ this.modal.show(false);
+ this.modal.close(target);
+ SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
+ }
+
+ @Override
+ public void onError(final AjaxRequestTarget target) {
+ ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+ }
+
+ @Override
+ public UserRequestForm getItem() {
+ return this.formTO;
+ }
+}
[5/6] syncope git commit: [SYNCOPE-1369] Some refinements + admin
console suport
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormPanel.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormPanel.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormPanel.java
new file mode 100644
index 0000000..6520177
--- /dev/null
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormPanel.java
@@ -0,0 +1,200 @@
+/*
+ * 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.text.ParseException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.math.NumberUtils;
+import org.apache.commons.lang3.time.FastDateFormat;
+import org.apache.syncope.client.console.commons.MapChoiceRenderer;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxSpinnerFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDateTimeFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
+import org.apache.syncope.common.lib.to.UserRequestFormProperty;
+import org.apache.syncope.common.lib.to.UserRequestForm;
+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.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.LoadableDetachableModel;
+import org.apache.wicket.model.PropertyModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public abstract class UserRequestFormPanel extends Panel {
+
+ private static final long serialVersionUID = -8847854414429745216L;
+
+ protected static final Logger LOG = LoggerFactory.getLogger(UserRequestFormPanel.class);
+
+ public UserRequestFormPanel(final PageReference pageRef, final UserRequestForm form) {
+ super(MultilevelPanel.FIRST_LEVEL_ID);
+
+ IModel<List<UserRequestFormProperty>> formProps = new LoadableDetachableModel<List<UserRequestFormProperty>>() {
+
+ private static final long serialVersionUID = 3169142472626817508L;
+
+ @Override
+ protected List<UserRequestFormProperty> load() {
+ return form.getProperties();
+ }
+ };
+
+ ListView<UserRequestFormProperty> propView = new ListView<UserRequestFormProperty>("propView", formProps) {
+
+ private static final long serialVersionUID = 9101744072914090143L;
+
+ @Override
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ protected void populateItem(final ListItem<UserRequestFormProperty> item) {
+ final UserRequestFormProperty prop = item.getModelObject();
+
+ String label = StringUtils.isBlank(prop.getName()) ? prop.getId() : prop.getName();
+
+ FieldPanel field;
+ switch (prop.getType()) {
+ case Boolean:
+ field = new AjaxDropDownChoicePanel("value", label, new PropertyModel<String>(prop, "value") {
+
+ private static final long serialVersionUID = -3743432456095828573L;
+
+ @Override
+ public String getObject() {
+ return StringUtils.isBlank(prop.getValue())
+ ? null
+ : prop.getValue().equals("true") ? "Yes" : "No";
+ }
+
+ @Override
+ public void setObject(final String object) {
+ prop.setValue(String.valueOf(object.equalsIgnoreCase("yes")));
+ }
+
+ }, false).setChoices(Arrays.asList(new String[] { "Yes", "No" }));
+ break;
+
+ case Date:
+ FastDateFormat formatter = FastDateFormat.getInstance(prop.getDatePattern());
+ field = new AjaxDateTimeFieldPanel("value", label, new PropertyModel<Date>(prop, "value") {
+
+ private static final long serialVersionUID = -3743432456095828573L;
+
+ @Override
+ public Date getObject() {
+ try {
+ return StringUtils.isBlank(prop.getValue())
+ ? null
+ : formatter.parse(prop.getValue());
+ } catch (ParseException e) {
+ LOG.error("Unparsable date: {}", prop.getValue(), e);
+ return null;
+ }
+ }
+
+ @Override
+ public void setObject(final Date object) {
+ prop.setValue(formatter.format(object));
+ }
+
+ }, prop.getDatePattern());
+ break;
+
+ case Enum:
+ field = new AjaxDropDownChoicePanel(
+ "value", label, new PropertyModel<String>(prop, "value"), false).
+ setChoiceRenderer(new MapChoiceRenderer(prop.getEnumValues())).
+ setChoices(new ArrayList<>(prop.getEnumValues().keySet()));
+ break;
+
+ case Dropdown:
+ field = new AjaxDropDownChoicePanel(
+ "value", label, new PropertyModel<String>(prop, "value"), false).
+ setChoiceRenderer(new MapChoiceRenderer(prop.getDropdownValues())).
+ setChoices(new ArrayList<>(prop.getDropdownValues().keySet()));
+ break;
+
+ case Long:
+ field = new AjaxSpinnerFieldPanel.Builder<Long>().build(
+ "value",
+ label,
+ Long.class,
+ new PropertyModel<Long>(prop, "value") {
+
+ private static final long serialVersionUID = -7688359318035249200L;
+
+ @Override
+ public Long getObject() {
+ return StringUtils.isBlank(prop.getValue())
+ ? null
+ : NumberUtils.toLong(prop.getValue());
+ }
+
+ @Override
+ public void setObject(final Long object) {
+ prop.setValue(String.valueOf(object));
+ }
+ });
+ break;
+
+ case String:
+ default:
+ field = new AjaxTextFieldPanel("value", label, new PropertyModel<>(prop, "value"), false);
+ break;
+ }
+
+ field.setReadOnly(!prop.isWritable());
+ if (prop.isRequired()) {
+ field.addRequiredLabel();
+ }
+
+ item.add(field);
+ }
+ };
+
+ AjaxLink<String> userDetails = new AjaxLink<String>("userDetails") {
+
+ private static final long serialVersionUID = -4804368561204623354L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target) {
+ viewDetails(target);
+ }
+ };
+ MetaDataRoleAuthorizationStrategy.authorize(userDetails, ENABLE, StandardEntitlement.USER_READ);
+
+ boolean enabled = form.getUserTO() != null;
+ userDetails.setVisible(enabled).setEnabled(enabled);
+
+ add(propView);
+ add(userDetails);
+ }
+
+ protected abstract void viewDetails(final AjaxRequestTarget target);
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/UserRequestRestClient.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/UserRequestRestClient.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/UserRequestRestClient.java
index e3a179f..8d3b03b 100644
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/UserRequestRestClient.java
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/UserRequestRestClient.java
@@ -21,8 +21,10 @@ package org.apache.syncope.client.console.rest;
import java.util.List;
import java.util.Optional;
import org.apache.syncope.common.lib.to.PagedResult;
+import org.apache.syncope.common.lib.to.UserRequest;
import org.apache.syncope.common.lib.to.UserRequestForm;
import org.apache.syncope.common.rest.api.beans.UserRequestFormQuery;
+import org.apache.syncope.common.rest.api.beans.UserRequestQuery;
import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
import org.apache.syncope.common.rest.api.service.UserRequestService;
@@ -30,6 +32,22 @@ public class UserRequestRestClient extends BaseRestClient {
private static final long serialVersionUID = -4785231164900813921L;
+ public int countUserRequests() {
+ return getService(UserRequestService.class).
+ list(new UserRequestQuery.Builder().page(1).size(1).build()).
+ getTotalCount();
+ }
+
+ public List<UserRequest> getUserRequests(final int page, final int size, final SortParam<String> sort) {
+ return getService(UserRequestService.class).
+ list(new UserRequestQuery.Builder().page(page).size(size).orderBy(toOrderBy(sort)).build()).
+ getResult();
+ }
+
+ public void cancelRequest(final String executionId, final String reason) {
+ getService(UserRequestService.class).cancel(executionId, reason);
+ }
+
public int countForms() {
return getService(UserRequestService.class).
getForms(new UserRequestFormQuery.Builder().page(1).size(1).build()).
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/ApprovalsWidget.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/ApprovalsWidget.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/ApprovalsWidget.java
deleted file mode 100644
index 9a9fd2d..0000000
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/ApprovalsWidget.java
+++ /dev/null
@@ -1,128 +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.widgets;
-
-import de.agilecoders.wicket.core.markup.html.bootstrap.image.Icon;
-import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesomeIconTypeBuilder;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import org.apache.syncope.client.console.BookmarkablePageLinkBuilder;
-import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.client.console.annotations.ExtWidget;
-import org.apache.syncope.client.console.pages.Approvals;
-import org.apache.syncope.client.console.rest.UserRequestRestClient;
-import org.apache.syncope.client.console.wicket.ajax.IndicatorAjaxTimerBehavior;
-import org.apache.syncope.common.lib.to.UserRequestForm;
-import org.apache.syncope.common.lib.types.FlowableEntitlement;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
-import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
-import org.apache.wicket.markup.html.WebPage;
-import org.apache.wicket.markup.html.link.AbstractLink;
-import org.apache.wicket.markup.html.link.BookmarkablePageLink;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.util.ListModel;
-import org.apache.wicket.util.time.Duration;
-
-@ExtWidget(priority = 10)
-public class ApprovalsWidget extends ExtAlertWidget<UserRequestForm> {
-
- private static final long serialVersionUID = 7667120094526529934L;
-
- private final UserRequestRestClient restClient = new UserRequestRestClient();
-
- private final List<UserRequestForm> lastApprovals = new ArrayList<>();
-
- public ApprovalsWidget(final String id, final PageReference pageRef) {
- super(id);
- setOutputMarkupId(true);
-
- latestAlertsList.add(new IndicatorAjaxTimerBehavior(Duration.seconds(30)) {
-
- private static final long serialVersionUID = 7298597675929755960L;
-
- @Override
- protected void onTimer(final AjaxRequestTarget target) {
- if (!latestAlerts.getObject().equals(lastApprovals)) {
- refreshLatestAlerts(target);
- }
- }
- });
- }
-
- public final void refreshLatestAlerts(final AjaxRequestTarget target) {
- latestAlerts.getObject().clear();
- latestAlerts.getObject().addAll(lastApprovals);
-
- int latestAlertSize = getLatestAlertsSize();
- linkAlertsNumber.setDefaultModelObject(latestAlertSize);
- target.add(linkAlertsNumber);
-
- headerAlertsNumber.setDefaultModelObject(latestAlertSize);
- target.add(headerAlertsNumber);
-
- target.add(latestAlertsList);
-
- lastApprovals.clear();
- lastApprovals.addAll(latestAlerts.getObject());
- }
-
- @Override
- protected int getLatestAlertsSize() {
- return SyncopeConsoleSession.get().owns(FlowableEntitlement.USER_REQUEST_FORM_LIST)
- ? restClient.countForms()
- : 0;
- }
-
- @Override
- protected IModel<List<UserRequestForm>> getLatestAlerts() {
- return new ListModel<UserRequestForm>() {
-
- private static final long serialVersionUID = -2583290457773357445L;
-
- @Override
- public List<UserRequestForm> getObject() {
- List<UserRequestForm> updatedApprovals;
- if (SyncopeConsoleSession.get().owns(FlowableEntitlement.USER_REQUEST_FORM_LIST)) {
- updatedApprovals = restClient.getForms(1, MAX_SIZE, new SortParam<>("createTime", true));
- } else {
- updatedApprovals = Collections.<UserRequestForm>emptyList();
- }
-
- return updatedApprovals;
- }
- };
- }
-
- @Override
- protected AbstractLink getEventsLink(final String linkid) {
- BookmarkablePageLink<Approvals> approvals = BookmarkablePageLinkBuilder.build(linkid, Approvals.class);
- MetaDataRoleAuthorizationStrategy.authorize(
- approvals, WebPage.ENABLE, FlowableEntitlement.USER_REQUEST_FORM_LIST);
- return approvals;
- }
-
- @Override
- protected Icon getIcon(final String iconid) {
- return new Icon(iconid,
- FontAwesomeIconTypeBuilder.on(FontAwesomeIconTypeBuilder.FontAwesomeGraphic.handshake_o).build());
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.java
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.java
new file mode 100644
index 0000000..b445dd9
--- /dev/null
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.java
@@ -0,0 +1,128 @@
+/*
+ * 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.widgets;
+
+import de.agilecoders.wicket.core.markup.html.bootstrap.image.Icon;
+import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesomeIconTypeBuilder;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import org.apache.syncope.client.console.BookmarkablePageLinkBuilder;
+import org.apache.syncope.client.console.SyncopeConsoleSession;
+import org.apache.syncope.client.console.annotations.ExtWidget;
+import org.apache.syncope.client.console.pages.UserRequests;
+import org.apache.syncope.client.console.rest.UserRequestRestClient;
+import org.apache.syncope.client.console.wicket.ajax.IndicatorAjaxTimerBehavior;
+import org.apache.syncope.common.lib.to.UserRequestForm;
+import org.apache.syncope.common.lib.types.FlowableEntitlement;
+import org.apache.wicket.PageReference;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
+import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.link.AbstractLink;
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.util.ListModel;
+import org.apache.wicket.util.time.Duration;
+
+@ExtWidget(priority = 10)
+public class UserRequestFormsWidget extends ExtAlertWidget<UserRequestForm> {
+
+ private static final long serialVersionUID = 7667120094526529934L;
+
+ private final UserRequestRestClient restClient = new UserRequestRestClient();
+
+ private final List<UserRequestForm> lastForms = new ArrayList<>();
+
+ public UserRequestFormsWidget(final String id, final PageReference pageRef) {
+ super(id);
+ setOutputMarkupId(true);
+
+ latestAlertsList.add(new IndicatorAjaxTimerBehavior(Duration.seconds(30)) {
+
+ private static final long serialVersionUID = 7298597675929755960L;
+
+ @Override
+ protected void onTimer(final AjaxRequestTarget target) {
+ if (!latestAlerts.getObject().equals(lastForms)) {
+ refreshLatestAlerts(target);
+ }
+ }
+ });
+ }
+
+ public final void refreshLatestAlerts(final AjaxRequestTarget target) {
+ latestAlerts.getObject().clear();
+ latestAlerts.getObject().addAll(lastForms);
+
+ int latestAlertSize = getLatestAlertsSize();
+ linkAlertsNumber.setDefaultModelObject(latestAlertSize);
+ target.add(linkAlertsNumber);
+
+ headerAlertsNumber.setDefaultModelObject(latestAlertSize);
+ target.add(headerAlertsNumber);
+
+ target.add(latestAlertsList);
+
+ lastForms.clear();
+ lastForms.addAll(latestAlerts.getObject());
+ }
+
+ @Override
+ protected int getLatestAlertsSize() {
+ return SyncopeConsoleSession.get().owns(FlowableEntitlement.USER_REQUEST_FORM_LIST)
+ ? restClient.countForms()
+ : 0;
+ }
+
+ @Override
+ protected IModel<List<UserRequestForm>> getLatestAlerts() {
+ return new ListModel<UserRequestForm>() {
+
+ private static final long serialVersionUID = -2583290457773357445L;
+
+ @Override
+ public List<UserRequestForm> getObject() {
+ List<UserRequestForm> updatedForms;
+ if (SyncopeConsoleSession.get().owns(FlowableEntitlement.USER_REQUEST_FORM_LIST)) {
+ updatedForms = restClient.getForms(1, MAX_SIZE, new SortParam<>("createTime", true));
+ } else {
+ updatedForms = Collections.<UserRequestForm>emptyList();
+ }
+
+ return updatedForms;
+ }
+ };
+ }
+
+ @Override
+ protected AbstractLink getEventsLink(final String linkid) {
+ BookmarkablePageLink<UserRequests> userRequests = BookmarkablePageLinkBuilder.build(linkid, UserRequests.class);
+ MetaDataRoleAuthorizationStrategy.authorize(
+ userRequests, WebPage.ENABLE, FlowableEntitlement.USER_REQUEST_FORM_LIST);
+ return userRequests;
+ }
+
+ @Override
+ protected Icon getIcon(final String iconid) {
+ return new Icon(iconid,
+ FontAwesomeIconTypeBuilder.on(FontAwesomeIconTypeBuilder.FontAwesomeGraphic.handshake_o).build());
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval.html
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval.html
deleted file mode 100644
index 64805b9..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval.html
+++ /dev/null
@@ -1,31 +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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:panel>
- <div wicket:id="propView">
- <span wicket:id="value">[value]</span>
- </div>
-
- <div style="margin: 20px 0">
- <a href="#" alt="user details" class="btn btn-primary btn-circle btn-lg" wicket:id="userDetails" wicket:message="title:userDetails">
- <i class="glyphicon glyphicon-eye-open"></i>
- </a>
- </div>
- </wicket:panel>
-</html>
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval.properties
deleted file mode 100644
index 450ff50..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval.properties
+++ /dev/null
@@ -1,18 +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.
-userDetails=User details
-userForm=Edit User
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalDetails.html
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalDetails.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalDetails.html
deleted file mode 100644
index 1de2361..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalDetails.html
+++ /dev/null
@@ -1,23 +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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:panel>
- <span wicket:id="wizard"/>
- </wicket:panel>
-</html>
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal.html
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal.html
deleted file mode 100644
index 5d5d129..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal.html
+++ /dev/null
@@ -1,23 +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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:panel>
- <span wicket:id="approval">[APPROVAL]</span>
- </wicket:panel>
-</html>
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal.properties
deleted file mode 100644
index 941c896..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal.properties
+++ /dev/null
@@ -1,17 +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.
-approval.details=Approval details
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_it.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_it.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_it.properties
deleted file mode 100644
index 941c896..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_it.properties
+++ /dev/null
@@ -1,17 +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.
-approval.details=Approval details
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_ja.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_ja.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_ja.properties
deleted file mode 100644
index 84106b9..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_ja.properties
+++ /dev/null
@@ -1,17 +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.
-approval.details=\u627f\u8a8d\u8a73\u7d30
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_pt_BR.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_pt_BR.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_pt_BR.properties
deleted file mode 100644
index 941c896..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_pt_BR.properties
+++ /dev/null
@@ -1,17 +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.
-approval.details=Approval details
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_ru.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_ru.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_ru.properties
deleted file mode 100644
index 941c896..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/ApprovalModal_ru.properties
+++ /dev/null
@@ -1,17 +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.
-approval.details=Approval details
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_it.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_it.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_it.properties
deleted file mode 100644
index 92c475d..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_it.properties
+++ /dev/null
@@ -1,18 +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.
-userDetails=Dettagli utente
-userForm=Modifica utente
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_ja.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_ja.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_ja.properties
deleted file mode 100644
index 5a9cc2d..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_ja.properties
+++ /dev/null
@@ -1,18 +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.
-userDetails=\u30e6\u30fc\u30b6\u30fc\u8a73\u7d30
-userForm=\u30e6\u30fc\u30b6\u30fc\u3092\u7de8\u96c6
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_pt_BR.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_pt_BR.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_pt_BR.properties
deleted file mode 100644
index 00a8971..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_pt_BR.properties
+++ /dev/null
@@ -1,18 +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.
-userDetails=Detalhes do Usu\u00e1rio
-userForm=Detalhes do Usu\u00e1rio
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_ru.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_ru.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_ru.properties
deleted file mode 100644
index 02c159a..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/approvals/Approval_ru.properties
+++ /dev/null
@@ -1,20 +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.
-#
-# userDetails=\u00d0\u0098\u00d0\u00bd\u00d1\u0084\u00d0\u00be\u00d1\u0080\u00d0\u00bc\u00d0\u00b0\u00d1\u0086\u00d0\u00b8\u00d1\u008f \u00d0\u00be \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5
-userDetails=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435
-userForm=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals.html
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals.html
deleted file mode 100644
index 5bf6234..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals.html
+++ /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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:extend>
- <section class="content-header">
- <h1> </h1>
- <ol class="breadcrumb">
- <li><a wicket:id="dashboardBr"><i class="fa fa-dashboard"></i> <wicket:message key="dashboard">[DASHBOARD]</wicket:message></a></li>
- <li class="active"><wicket:message key="approvals"/></li>
- </ol>
- </section>
-
- <section class="content" wicket:id="content">
- <div class="box">
- <div class="box-body" wicket:id="wfPanel"/>
- </div>
- </section>
- </wicket:extend>
-</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals.properties
deleted file mode 100644
index 84b9c85..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals.properties
+++ /dev/null
@@ -1,34 +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.
-bpmnProcess=User Request
-key=Key
-description=Description
-createTime=Create Time
-dueDate=Due Date
-owner=Owner
-claim=Claim
-manage=Manage
-approvals=Approvals
-delete=Delete
-type=Type
-username=Username
-new_user=New User
-creationDate = Creation Date
-claimDate = Claim Dare
-approval.edit=Approval Edit
-approval.manage=Approval Manage
-any.edit=Edit ${anyTO.type} ${anyTO.username}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_it.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_it.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_it.properties
deleted file mode 100644
index f25abd8..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_it.properties
+++ /dev/null
@@ -1,34 +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.
-bpmnProcess=User Request
-key=Chiave
-description=Descrizione
-createTime=Data di creazione
-dueDate=Scadenza
-owner=Esecutore
-claim=Richiedi
-manage=Gestisci
-approvals=Approvazioni
-delete=Rimuovi
-type=Tipo
-username=Utente
-new_user=Nuovo utente
-creationDate = Data creazione
-claimDate = Data rivendicazione
-approval.manage=Gestisci Approvazione
-approval.edit=Modifica Approvazione
-any.edit=Edit ${anyTO.type} ${anyTO.username}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_ja.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_ja.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_ja.properties
deleted file mode 100644
index dcca6e1..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_ja.properties
+++ /dev/null
@@ -1,34 +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.
-bpmnProcess=User Request
-key=\u30ad\u30fc
-description=\u8aac\u660e
-createTime=\u4f5c\u6210\u6642\u523b
-dueDate=\u671f\u9650
-owner=\u30aa\u30fc\u30ca\u30fc
-claim=\u7533\u8acb
-manage=\u7ba1\u7406
-approvals=\u627f\u8a8d
-delete=\u524a\u9664
-type=\u30bf\u30a4\u30d7
-username=\u30e6\u30fc\u30b6\u30fc\u540d
-new_user=\u65b0\u3057\u3044\u30e6\u30fc\u30b6\u30fc
-creationDate = \u4f5c\u6210\u65e5
-claimDate = \u7533\u8acb\u65e5
-approval.edit=\u627f\u8a8d \u7de8\u96c6
-approval.manage=\u627f\u8a8d \u7ba1\u7406
-any.edit=${anyTO.type} ${anyTO.username} \u3092\u7de8\u96c6
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_pt_BR.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_pt_BR.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_pt_BR.properties
deleted file mode 100644
index 88a9e05..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_pt_BR.properties
+++ /dev/null
@@ -1,34 +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.
-bpmnProcess=User Request
-key=Chave
-description=Descri\u00e7\u00e3o
-createTime=Tempo de Cria\u00e7\u00e3o
-dueDate=Data acordada
-owner=Propriet\u00e1rio
-claim=Requerimento
-manage=Ger\u00eancia
-approvals=Aprova\u00e7\u00f5es
-delete=Excluir
-type=Tipo
-username=Usu\u00e1rio
-new_user=Novo Usu\u00e1rio
-creationDate = Data de cria\u00e7\u00e3o
-claimDate = Data de reivindica\u00e7\u00e3o
-approval.manage=Aprova\u00e7\u00e3o
-approval.edit=Aprova\u00e7\u00e3o
-any.edit=Edit ${anyTO.type} ${anyTO.username}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_ru.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_ru.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_ru.properties
deleted file mode 100644
index 2e7a199..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/Approvals_ru.properties
+++ /dev/null
@@ -1,52 +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.
-#
-# taskId=\u00d0\u0097\u00d0\u00b0\u00d1\u008f\u00d0\u00b2\u00d0\u00ba\u00d0\u00b0
-bpmnProcess=User Request
-# key=\u00d0\u0098\u00d0\u00b4\u00d0\u00b5\u00d0\u00bd\u00d1\u0082\u00d0\u00b8\u00d1\u0084\u00d0\u00b8\u00d0\u00ba\u00d0\u00b0\u00d1\u0082\u00d0\u00be\u00d1\u0080
-key=\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440
-# description=\u00d0\u009e\u00d0\u00bf\u00d0\u00b8\u00d1\u0081\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
-description=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435
-# createTime=\u00d0\u0094\u00d0\u00b0\u00d1\u0082\u00d0\u00b0 \u00d1\u0081\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f
-createTime=\u0414\u0430\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f
-# dueDate=\u00d0\u00a1\u00d1\u0080\u00d0\u00be\u00d0\u00ba
-dueDate=\u0421\u0440\u043e\u043a
-# owner=\u00d0\u0092\u00d0\u00bb\u00d0\u00b0\u00d0\u00b4\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5\u00d1\u0086
-owner=\u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446
-# claim=\u00d0\u0092\u00d1\u008b\u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d0\u00bd\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d1\u0081\u00d0\u00be\u00d0\u00b3\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
-claim=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435
-# manage=\u00d0\u00a3\u00d0\u00bf\u00d1\u0080\u00d0\u00b0\u00d0\u00b2\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
-manage=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435
-# approvals=\u00d0\u0097\u00d0\u00b0\u00d1\u008f\u00d0\u00b2\u00d0\u00ba\u00d0\u00b8
-approvals=\u0417\u0430\u044f\u0432\u043a\u0438
-# delete=\u00d0\u00a3\u00d0\u00b4\u00d0\u00b0\u00d0\u00bb\u00d0\u00b8\u00d1\u0082\u00d1\u008c
-delete=\u0423\u0434\u0430\u043b\u0438\u0442\u044c
-# type=\u00d0\u00a2\u00d0\u00b8\u00d0\u00bf
-type=\u0422\u0438\u043f
-# username=\u00d0\u0098\u00d0\u00bc\u00d1\u008f \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d1\u008f
-username=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
-# new_user=\u00d0\u00a1\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5 \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d1\u008f
-new_user=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
-# creationDate=\u00d0\u0094\u00d0\u00b0\u00d1\u0082\u00d0\u00b0 \u00d1\u0081\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f
-creationDate=\u0414\u0430\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f
-# claimDate=\u00d0\u0094\u00d0\u00b0\u00d1\u0082\u00d0\u00b0 \u00d0\u00bd\u00d0\u00b0\u00d1\u0087\u00d0\u00b0\u00d0\u00bb\u00d0\u00b0 \u00d1\u0081\u00d0\u00be\u00d0\u00b3\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f
-claimDate=\u0414\u0430\u0442\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u044f
-# approval.edit=\u00d0\u00a1\u00d0\u00be\u00d0\u00b3\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
-approval.edit=\u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435
-# approval.manage=\u00d0\u00a1\u00d0\u00be\u00d0\u00b3\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
-approval.manage=\u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435
-any.edit=Edit ${anyTO.type} ${anyTO.username}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests.html
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests.html
new file mode 100644
index 0000000..d14949c
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests.html
@@ -0,0 +1,35 @@
+<!--
+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:extend>
+ <section class="content-header">
+ <h1> </h1>
+ <ol class="breadcrumb">
+ <li><a wicket:id="dashboardBr"><i class="fa fa-dashboard"></i> <wicket:message key="dashboard">[DASHBOARD]</wicket:message></a></li>
+ <li class="active"><wicket:message key="userRequests"/></li>
+ </ol>
+ </section>
+
+ <section class="content" wicket:id="content">
+ <div class="box">
+ <div class="box-body" wicket:id="tabbedPanel"/>
+ </div>
+ </section>
+ </wicket:extend>
+</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests.properties
new file mode 100644
index 0000000..9f30811
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests.properties
@@ -0,0 +1,38 @@
+# 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.
+bpmnProcess=User Request
+key=Key
+description=Description
+createTime=Create Time
+dueDate=Due Date
+owner=Owner
+claim=Claim
+manage=Manage
+userRequests=User Requests
+delete=Delete
+type=Type
+username=Username
+new_user=New User
+creationDate = Creation Date
+claimDate = Claim Dare
+form.edit=Edit
+form.manage=Manage
+any.edit=Edit ${anyTO.type} ${anyTO.username}
+userRequestForms=Forms
+activeRequests=Active Requests
+startTime=Start
+activityId=Status
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_it.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_it.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_it.properties
new file mode 100644
index 0000000..04f5462
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_it.properties
@@ -0,0 +1,38 @@
+# 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.
+bpmnProcess=User Request
+key=Chiave
+description=Descrizione
+createTime=Data di creazione
+dueDate=Scadenza
+owner=Esecutore
+claim=Richiedi
+manage=Gestisci
+userRequests=Richieste utente
+delete=Rimuovi
+type=Tipo
+username=Utente
+new_user=Nuovo utente
+creationDate = Data creazione
+claimDate = Data rivendicazione
+form.manage=Gestisci
+form.edit=Modifica
+any.edit=Edit ${anyTO.type} ${anyTO.username}
+userRequestForms=Form
+activeRequests=Richieste attive
+startTime=Inizio
+activityId=Stato
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_ja.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_ja.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_ja.properties
new file mode 100644
index 0000000..61fef13
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_ja.properties
@@ -0,0 +1,38 @@
+# 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.
+bpmnProcess=User Request
+key=\u30ad\u30fc
+description=\u8aac\u660e
+createTime=\u4f5c\u6210\u6642\u523b
+dueDate=\u671f\u9650
+owner=\u30aa\u30fc\u30ca\u30fc
+claim=\u7533\u8acb
+manage=\u7ba1\u7406
+userRequests=User Requests
+delete=\u524a\u9664
+type=\u30bf\u30a4\u30d7
+username=\u30e6\u30fc\u30b6\u30fc\u540d
+new_user=\u65b0\u3057\u3044\u30e6\u30fc\u30b6\u30fc
+creationDate = \u4f5c\u6210\u65e5
+claimDate = \u7533\u8acb\u65e5
+form.edit=Edit
+form.manage=Manage
+any.edit=${anyTO.type} ${anyTO.username} \u3092\u7de8\u96c6
+userRequestForms=Forms
+activeRequests=Active Requests
+startTime=Start
+activityId=Status
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_pt_BR.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_pt_BR.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_pt_BR.properties
new file mode 100644
index 0000000..65c43f4
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_pt_BR.properties
@@ -0,0 +1,38 @@
+# 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.
+bpmnProcess=User Request
+key=Chave
+description=Descri\u00e7\u00e3o
+createTime=Tempo de Cria\u00e7\u00e3o
+dueDate=Data acordada
+owner=Propriet\u00e1rio
+claim=Requerimento
+manage=Ger\u00eancia
+userRequests=User Requests
+delete=Excluir
+type=Tipo
+username=Usu\u00e1rio
+new_user=Novo Usu\u00e1rio
+creationDate = Data de cria\u00e7\u00e3o
+claimDate = Data de reivindica\u00e7\u00e3o
+form.manage=Manage
+form.edit=Edit
+any.edit=Edit ${anyTO.type} ${anyTO.username}
+userRequestForms=Forms
+activeRequests=Active Requests
+startTime=Start
+activityId=Status
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_ru.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_ru.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_ru.properties
new file mode 100644
index 0000000..52b454b
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/pages/UserRequests_ru.properties
@@ -0,0 +1,56 @@
+# 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.
+#
+# taskId=\u00d0\u0097\u00d0\u00b0\u00d1\u008f\u00d0\u00b2\u00d0\u00ba\u00d0\u00b0
+bpmnProcess=User Request
+# key=\u00d0\u0098\u00d0\u00b4\u00d0\u00b5\u00d0\u00bd\u00d1\u0082\u00d0\u00b8\u00d1\u0084\u00d0\u00b8\u00d0\u00ba\u00d0\u00b0\u00d1\u0082\u00d0\u00be\u00d1\u0080
+key=\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440
+# description=\u00d0\u009e\u00d0\u00bf\u00d0\u00b8\u00d1\u0081\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
+description=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435
+# createTime=\u00d0\u0094\u00d0\u00b0\u00d1\u0082\u00d0\u00b0 \u00d1\u0081\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f
+createTime=\u0414\u0430\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f
+# dueDate=\u00d0\u00a1\u00d1\u0080\u00d0\u00be\u00d0\u00ba
+dueDate=\u0421\u0440\u043e\u043a
+# owner=\u00d0\u0092\u00d0\u00bb\u00d0\u00b0\u00d0\u00b4\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5\u00d1\u0086
+owner=\u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446
+# claim=\u00d0\u0092\u00d1\u008b\u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d0\u00bd\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d1\u0081\u00d0\u00be\u00d0\u00b3\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
+claim=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435
+# manage=\u00d0\u00a3\u00d0\u00bf\u00d1\u0080\u00d0\u00b0\u00d0\u00b2\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
+manage=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435
+# approvals=\u00d0\u0097\u00d0\u00b0\u00d1\u008f\u00d0\u00b2\u00d0\u00ba\u00d0\u00b8
+userRequests=User Requests
+# delete=\u00d0\u00a3\u00d0\u00b4\u00d0\u00b0\u00d0\u00bb\u00d0\u00b8\u00d1\u0082\u00d1\u008c
+delete=\u0423\u0434\u0430\u043b\u0438\u0442\u044c
+# type=\u00d0\u00a2\u00d0\u00b8\u00d0\u00bf
+type=\u0422\u0438\u043f
+# username=\u00d0\u0098\u00d0\u00bc\u00d1\u008f \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d1\u008f
+username=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
+# new_user=\u00d0\u00a1\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5 \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d1\u008f
+new_user=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
+# creationDate=\u00d0\u0094\u00d0\u00b0\u00d1\u0082\u00d0\u00b0 \u00d1\u0081\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f
+creationDate=\u0414\u0430\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f
+# claimDate=\u00d0\u0094\u00d0\u00b0\u00d1\u0082\u00d0\u00b0 \u00d0\u00bd\u00d0\u00b0\u00d1\u0087\u00d0\u00b0\u00d0\u00bb\u00d0\u00b0 \u00d1\u0081\u00d0\u00be\u00d0\u00b3\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f
+claimDate=\u0414\u0430\u0442\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u044f
+# approval.edit=\u00d0\u00a1\u00d0\u00be\u00d0\u00b3\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
+form.edit=Edit
+# approval.manage=\u00d0\u00a1\u00d0\u00be\u00d0\u00b3\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
+form.manage=Manage
+any.edit=Edit ${anyTO.type} ${anyTO.username}
+userRequestForms=Forms
+activeRequests=Active Requests
+startTime=Start
+activityId=Status
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormDetails.html
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormDetails.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormDetails.html
new file mode 100644
index 0000000..1de2361
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormDetails.html
@@ -0,0 +1,23 @@
+<!--
+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>
+ <span wicket:id="wizard"/>
+ </wicket:panel>
+</html>
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal.html
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal.html
new file mode 100644
index 0000000..777dbd8
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal.html
@@ -0,0 +1,23 @@
+<!--
+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>
+ <span wicket:id="userRequestForm"></span>
+ </wicket:panel>
+</html>
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal.properties
new file mode 100644
index 0000000..b636185
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal.properties
@@ -0,0 +1,17 @@
+# 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.
+userRequest.details=Request details
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_it.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_it.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_it.properties
new file mode 100644
index 0000000..e68bb15
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_it.properties
@@ -0,0 +1,17 @@
+# 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.
+userRequest.details=Dettagli richiesta
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_ja.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_ja.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_ja.properties
new file mode 100644
index 0000000..b636185
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_ja.properties
@@ -0,0 +1,17 @@
+# 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.
+userRequest.details=Request details
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_pt_BR.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_pt_BR.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_pt_BR.properties
new file mode 100644
index 0000000..b636185
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_pt_BR.properties
@@ -0,0 +1,17 @@
+# 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.
+userRequest.details=Request details
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_ru.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_ru.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_ru.properties
new file mode 100644
index 0000000..b636185
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormModal_ru.properties
@@ -0,0 +1,17 @@
+# 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.
+userRequest.details=Request details
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel.html
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel.html b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel.html
new file mode 100644
index 0000000..64805b9
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel.html
@@ -0,0 +1,31 @@
+<!--
+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 wicket:id="propView">
+ <span wicket:id="value">[value]</span>
+ </div>
+
+ <div style="margin: 20px 0">
+ <a href="#" alt="user details" class="btn btn-primary btn-circle btn-lg" wicket:id="userDetails" wicket:message="title:userDetails">
+ <i class="glyphicon glyphicon-eye-open"></i>
+ </a>
+ </div>
+ </wicket:panel>
+</html>
[4/6] syncope git commit: [SYNCOPE-1369] Some refinements + admin
console suport
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel.properties
new file mode 100644
index 0000000..450ff50
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel.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.
+userDetails=User details
+userForm=Edit User
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_it.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_it.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_it.properties
new file mode 100644
index 0000000..92c475d
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_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.
+userDetails=Dettagli utente
+userForm=Modifica utente
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_ja.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_ja.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_ja.properties
new file mode 100644
index 0000000..5a9cc2d
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_ja.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.
+userDetails=\u30e6\u30fc\u30b6\u30fc\u8a73\u7d30
+userForm=\u30e6\u30fc\u30b6\u30fc\u3092\u7de8\u96c6
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_pt_BR.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_pt_BR.properties
new file mode 100644
index 0000000..00a8971
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_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.
+userDetails=Detalhes do Usu\u00e1rio
+userForm=Detalhes do Usu\u00e1rio
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_ru.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_ru.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_ru.properties
new file mode 100644
index 0000000..02c159a
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/panels/UserRequestFormPanel_ru.properties
@@ -0,0 +1,20 @@
+# 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.
+#
+# userDetails=\u00d0\u0098\u00d0\u00bd\u00d1\u0084\u00d0\u00be\u00d1\u0080\u00d0\u00bc\u00d0\u00b0\u00d1\u0086\u00d0\u00b8\u00d1\u008f \u00d0\u00be \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5
+userDetails=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435
+userForm=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget.properties
deleted file mode 100644
index dd5b98f..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget.properties
+++ /dev/null
@@ -1,21 +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.
-alerts.view.all=View all approvals
-duedate=Due date
-owner=Owner
-createApproval=Create Approval
-summary=${number} pending approval(s)
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_it.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_it.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_it.properties
deleted file mode 100644
index 7b2287e..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_it.properties
+++ /dev/null
@@ -1,21 +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.
-alerts.view.all=Tutte le approvazioni
-duedate=Scadenza
-owner=Assegnato
-createApproval=Approvazione Creazione
-summary=${number} approvazioni pendenti
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_ja.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_ja.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_ja.properties
deleted file mode 100644
index a6089eb..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_ja.properties
+++ /dev/null
@@ -1,21 +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.
-alerts.view.all=\u3059\u3079\u3066\u306e\u627f\u8a8d\u3092\u8868\u793a
-duedate=\u671f\u9650
-owner=\u30aa\u30fc\u30ca\u30fc
-createApproval=\u627f\u8a8d\u3092\u4f5c\u6210
-summary=${number} \u4fdd\u7559\u306e\u627f\u8a8d
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_pt_BR.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_pt_BR.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_pt_BR.properties
deleted file mode 100644
index c24f3d8..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_pt_BR.properties
+++ /dev/null
@@ -1,21 +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.
-alerts.view.all=View all Approvals
-duedate=Due date
-owner=Owner
-createApproval=Create Approval
-summary=${number} pending approval(s)
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_ru.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_ru.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_ru.properties
deleted file mode 100644
index 10281ff..0000000
--- a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/ApprovalsWidget_ru.properties
+++ /dev/null
@@ -1,22 +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.
-#
-alerts.view.all=\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u0437\u0430\u044f\u0432\u043a\u0438
-duedate=\u0421\u0440\u043e\u043a
-owner=\u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446
-createApproval=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0437\u0430\u044f\u0432\u043a\u0443
-summary=\u041e\u0436\u0438\u0434\u0430\u044e\u0442 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u044f: ${number}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.properties
new file mode 100644
index 0000000..36e1e2e
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.properties
@@ -0,0 +1,20 @@
+# 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.
+alerts.view.all=View all forms
+duedate=Due date
+owner=Owner
+summary=${number} pending form(s)
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_it.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_it.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_it.properties
new file mode 100644
index 0000000..bf3e9ad
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_it.properties
@@ -0,0 +1,20 @@
+# 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.
+alerts.view.all=Tutte le form
+duedate=Scadenza
+owner=Assegnato
+summary=${number} form pendenti
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_ja.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_ja.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_ja.properties
new file mode 100644
index 0000000..0d938e3
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_ja.properties
@@ -0,0 +1,20 @@
+# 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.
+alerts.view.all=View all forms
+duedate=\u671f\u9650
+owner=\u30aa\u30fc\u30ca\u30fc
+summary=${number} pending form(s)
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_pt_BR.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_pt_BR.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_pt_BR.properties
new file mode 100644
index 0000000..36e1e2e
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_pt_BR.properties
@@ -0,0 +1,20 @@
+# 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.
+alerts.view.all=View all forms
+duedate=Due date
+owner=Owner
+summary=${number} pending form(s)
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_ru.properties
----------------------------------------------------------------------
diff --git a/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_ru.properties b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_ru.properties
new file mode 100644
index 0000000..e713681
--- /dev/null
+++ b/ext/flowable/client-console/src/main/resources/org/apache/syncope/client/console/widgets/UserRequestFormsWidget_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.
+#
+alerts.view.all=View all forms
+duedate=\u0421\u0440\u043e\u043a
+owner=\u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446
+summary=${number} pending form(s)
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/common-lib/src/main/java/org/apache/syncope/common/lib/to/UserRequest.java
----------------------------------------------------------------------
diff --git a/ext/flowable/common-lib/src/main/java/org/apache/syncope/common/lib/to/UserRequest.java b/ext/flowable/common-lib/src/main/java/org/apache/syncope/common/lib/to/UserRequest.java
index 251eb89..9b65845 100644
--- a/ext/flowable/common-lib/src/main/java/org/apache/syncope/common/lib/to/UserRequest.java
+++ b/ext/flowable/common-lib/src/main/java/org/apache/syncope/common/lib/to/UserRequest.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.common.lib.to;
+import java.util.Date;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import org.apache.syncope.common.lib.AbstractBaseBean;
@@ -30,7 +31,9 @@ public class UserRequest extends AbstractBaseBean {
private String bpmnProcess;
- private String user;
+ private Date startTime;
+
+ private String username;
private String executionId;
@@ -44,12 +47,20 @@ public class UserRequest extends AbstractBaseBean {
this.bpmnProcess = bpmnProcess;
}
- public String getUser() {
- return user;
+ public Date getStartTime() {
+ return startTime;
+ }
+
+ public void setStartTime(final Date startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getUsername() {
+ return username;
}
- public void setUser(final String user) {
- this.user = user;
+ public void setUsername(final String username) {
+ this.username = username;
}
public String getExecutionId() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserRequestHandler.java
----------------------------------------------------------------------
diff --git a/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserRequestHandler.java b/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserRequestHandler.java
index 45a834b..c1d20b1 100644
--- a/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserRequestHandler.java
+++ b/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserRequestHandler.java
@@ -62,9 +62,7 @@ import org.flowable.engine.form.TaskFormData;
import org.flowable.engine.history.HistoricActivityInstance;
import org.flowable.engine.impl.persistence.entity.ExecutionEntity;
import org.flowable.engine.impl.persistence.entity.HistoricFormPropertyEntity;
-import org.flowable.engine.runtime.NativeProcessInstanceQuery;
import org.flowable.engine.runtime.ProcessInstance;
-import org.flowable.engine.runtime.ProcessInstanceQuery;
import org.flowable.task.api.Task;
import org.flowable.task.api.TaskQuery;
import org.flowable.task.api.history.HistoricTaskInstance;
@@ -99,26 +97,28 @@ public class FlowableUserRequestHandler implements UserRequestHandler {
@Autowired
protected EntityFactory entityFactory;
- protected NativeProcessInstanceQuery createProcessInstanceQuery(final String userKey) {
- return engine.getRuntimeService().createNativeProcessInstanceQuery().
- sql("SELECT DISTINCT ID_,BUSINESS_KEY_,ACT_ID_ FROM "
- + engine.getManagementService().getTableName(ExecutionEntity.class)
- + " WHERE BUSINESS_KEY_ LIKE '"
- + FlowableRuntimeUtils.getProcBusinessKey("%", userKey) + "'"
- + " AND BUSINESS_KEY_ NOT LIKE '"
- + FlowableRuntimeUtils.getProcBusinessKey(FlowableRuntimeUtils.WF_PROCESS_ID, "%") + "'"
- + " AND PARENT_ID_ IS NULL");
+ protected StringBuilder createProcessInstanceQuery(final String userKey) {
+ StringBuilder query = new StringBuilder().
+ append("SELECT DISTINCT ID_,BUSINESS_KEY_,PROC_DEF_ID_,PROC_INST_ID_,START_TIME_ FROM ").
+ append(engine.getManagementService().getTableName(ExecutionEntity.class)).
+ append(" WHERE BUSINESS_KEY_ NOT LIKE '").
+ append(FlowableRuntimeUtils.getProcBusinessKey(FlowableRuntimeUtils.WF_PROCESS_ID, "%")).
+ append("'");
+ if (userKey != null) {
+ query.append(" AND BUSINESS_KEY_ LIKE '").
+ append(FlowableRuntimeUtils.getProcBusinessKey("%", userKey)).
+ append("'");
+ }
+ query.append(" AND PARENT_ID_ IS NULL");
+
+ return query;
}
- protected int countProcessInstances(final String userKey) {
+ protected int countProcessInstances(final StringBuilder processInstanceQuery) {
return (int) engine.getRuntimeService().createNativeProcessInstanceQuery().
sql("SELECT COUNT(ID_) FROM "
- + engine.getManagementService().getTableName(ExecutionEntity.class)
- + " WHERE BUSINESS_KEY_ LIKE '"
- + FlowableRuntimeUtils.getProcBusinessKey("%", userKey) + "'"
- + " AND BUSINESS_KEY_ NOT LIKE '"
- + FlowableRuntimeUtils.getProcBusinessKey(FlowableRuntimeUtils.WF_PROCESS_ID, "%") + "'"
- + " AND PARENT_ID_ IS NULL").count();
+ + StringUtils.substringAfter(processInstanceQuery.toString(), " FROM ")).
+ count();
}
protected UserRequest getUserRequest(final ProcessInstance procInst) {
@@ -126,9 +126,11 @@ public class FlowableUserRequestHandler implements UserRequestHandler {
UserRequest userRequest = new UserRequest();
userRequest.setBpmnProcess(split.getLeft());
- userRequest.setUser(split.getRight());
+ userRequest.setStartTime(procInst.getStartTime());
+ userRequest.setUsername(userDAO.find(split.getRight()).getUsername());
userRequest.setExecutionId(procInst.getId());
- userRequest.setActivityId(procInst.getActivityId());
+ userRequest.setActivityId(FlowableRuntimeUtils.createTaskQuery(engine, false).
+ processInstanceId(procInst.getProcessInstanceId()).singleResult().getTaskDefinitionKey());
return userRequest;
}
@@ -140,23 +142,25 @@ public class FlowableUserRequestHandler implements UserRequestHandler {
final int size,
final List<OrderByClause> orderByClauses) {
- Integer count = null;
- List<UserRequest> result = null;
- if (userKey == null) {
- ProcessInstanceQuery query = engine.getRuntimeService().createProcessInstanceQuery().active();
+ StringBuilder query = createProcessInstanceQuery(userKey);
+ Integer count = countProcessInstances(query);
+
+ if (!orderByClauses.isEmpty()) {
+ query.append(" ORDER BY");
+
for (OrderByClause clause : orderByClauses) {
boolean sorted = true;
switch (clause.getField().trim()) {
- case "processDefinitionId":
- query.orderByProcessDefinitionId();
+ case "bpmnProcess":
+ query.append(" PROC_DEF_ID_");
break;
- case "processDefinitionKey":
- query.orderByProcessDefinitionKey();
+ case "startTime":
+ query.append(" START_TIME_");
break;
- case "processInstanceId":
- query.orderByProcessInstanceId();
+ case "executionId":
+ query.append(" PROC_INST_ID_");
break;
default:
@@ -165,24 +169,22 @@ public class FlowableUserRequestHandler implements UserRequestHandler {
}
if (sorted) {
if (clause.getDirection() == OrderByClause.Direction.ASC) {
- query.asc();
+ query.append(" ASC,");
} else {
- query.desc();
+ query.append(" DESC,");
}
}
-
- count = (int) query.count();
- result = query.listPage(size * (page <= 0 ? 0 : page - 1), size).stream().
- map(procInst -> getUserRequest(procInst)).
- collect(Collectors.toList());
}
- } else {
- count = countProcessInstances(userKey);
- result = createProcessInstanceQuery(userKey).listPage(size * (page <= 0 ? 0 : page - 1), size).stream().
- map(procInst -> getUserRequest(procInst)).
- collect(Collectors.toList());
+
+ query.setLength(query.length() - 1);
}
+ List<UserRequest> result = engine.getRuntimeService().createNativeProcessInstanceQuery().
+ sql(query.toString()).
+ listPage(size * (page <= 0 ? 0 : page - 1), size).stream().
+ map(procInst -> getUserRequest(procInst)).
+ collect(Collectors.toList());
+
return Pair.of(count, result);
}
@@ -256,8 +258,9 @@ public class FlowableUserRequestHandler implements UserRequestHandler {
public void cancelByUser(final AnyDeletedEvent event) {
if (AuthContextUtils.getDomain().equals(event.getDomain()) && event.getAnyTypeKind() == AnyTypeKind.USER) {
String username = event.getAnyName();
- createProcessInstanceQuery(event.getAnyKey()).list().
- forEach(procInst -> {
+ engine.getRuntimeService().createNativeProcessInstanceQuery().
+ sql(createProcessInstanceQuery(event.getAnyKey()).toString()).
+ list().forEach(procInst -> {
engine.getRuntimeService().deleteProcessInstance(
procInst.getId(), "Cascade Delete user " + username);
});
http://git-wip-us.apache.org/repos/asf/syncope/blob/9d78874f/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
index ef199be..77a01ae 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
@@ -69,8 +69,8 @@ public class UserRequestITCase extends AbstractITCase {
assertNotNull(req);
assertEquals("directorGroupRequest", req.getBpmnProcess());
assertNotNull(req.getExecutionId());
- assertEquals(req.getUser(), user.getKey());
-
+ assertEquals(req.getUsername(), user.getUsername());
+
// check that user can see the ongoing request
SyncopeClient client = clientFactory.create(user.getUsername(), "password123");
PagedResult<UserRequest> requests = client.getService(UserRequestService.class).