aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/web/client/controller
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2013-02-25 21:06:38 +1300
committerAnton Tananaev <anton.tananaev@gmail.com>2013-02-25 21:06:38 +1300
commitebcedc38812405ba1cd03c518317bcf0cd52f925 (patch)
tree2df884c0127218b1205bb5861ff7a048d6a54bff /src/org/traccar/web/client/controller
parentb26e487f3c65808d349c7a53c0ea2a3981b61bac (diff)
downloadtrackermap-web-ebcedc38812405ba1cd03c518317bcf0cd52f925.tar.gz
trackermap-web-ebcedc38812405ba1cd03c518317bcf0cd52f925.tar.bz2
trackermap-web-ebcedc38812405ba1cd03c518317bcf0cd52f925.zip
Added user management
Diffstat (limited to 'src/org/traccar/web/client/controller')
-rw-r--r--src/org/traccar/web/client/controller/SettingsController.java58
1 files changed, 57 insertions, 1 deletions
diff --git a/src/org/traccar/web/client/controller/SettingsController.java b/src/org/traccar/web/client/controller/SettingsController.java
index a1892ae2..f8fcc72d 100644
--- a/src/org/traccar/web/client/controller/SettingsController.java
+++ b/src/org/traccar/web/client/controller/SettingsController.java
@@ -15,17 +15,27 @@
*/
package org.traccar.web.client.controller;
+import java.util.List;
+
import org.traccar.web.client.Application;
import org.traccar.web.client.ApplicationContext;
import org.traccar.web.client.model.BaseAsyncCallback;
+import org.traccar.web.client.model.UserProperties;
import org.traccar.web.client.view.ApplicationSettingsDialog;
import org.traccar.web.client.view.DeviceView;
import org.traccar.web.client.view.UserDialog;
import org.traccar.web.client.view.UserSettingsDialog;
+import org.traccar.web.client.view.UsersDialog;
import org.traccar.web.shared.model.ApplicationSettings;
import org.traccar.web.shared.model.User;
import org.traccar.web.shared.model.UserSettings;
+import com.google.gwt.core.client.GWT;
+import com.sencha.gxt.data.shared.ListStore;
+import com.sencha.gxt.widget.core.client.Dialog.PredefinedButton;
+import com.sencha.gxt.widget.core.client.box.ConfirmMessageBox;
+import com.sencha.gxt.widget.core.client.event.HideEvent;
+
public class SettingsController implements DeviceView.SettingsHandler {
@Override
@@ -66,8 +76,54 @@ public class SettingsController implements DeviceView.SettingsHandler {
@Override
public void onUsersSelected() {
- // TODO Auto-generated method stub
+ Application.getDataService().getUsers(new BaseAsyncCallback<List<User>>() {
+ @Override
+ public void onSuccess(List<User> result) {
+ UserProperties userProperties = GWT.create(UserProperties.class);
+ final ListStore<User> userStore = new ListStore<User>(userProperties.id());
+ userStore.addAll(result);
+ new UsersDialog(userStore, new UsersDialog.UserHandler() {
+
+ @Override
+ public void onAdd() {
+ new UserDialog(
+ new User(),
+ new UserDialog.UserHandler() {
+ @Override
+ public void onSave(User user) {
+ Application.getDataService().addUser(user, new BaseAsyncCallback<User>() {
+ @Override
+ public void onSuccess(User result) {
+ userStore.add(result);
+ }
+ });
+ }
+ }).show();
+ }
+
+ @Override
+ public void onRemove(final User user) {
+ final ConfirmMessageBox dialog = new ConfirmMessageBox("Confirm", "Are you sure you want remove user?");
+ dialog.addHideHandler(new HideEvent.HideHandler() {
+ @Override
+ public void onHide(HideEvent event) {
+ if (dialog.getHideButton() == dialog.getButtonById(PredefinedButton.YES.name())) {
+ Application.getDataService().removeUser(user, new BaseAsyncCallback<User>() {
+ @Override
+ public void onSuccess(User result) {
+ userStore.remove(user);
+ }
+ });
+ }
+ }
+ });
+ dialog.show();
+ }
+
+ }).show();
+ }
+ });
}
@Override