diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2013-02-25 21:06:38 +1300 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2013-02-25 21:06:38 +1300 |
commit | ebcedc38812405ba1cd03c518317bcf0cd52f925 (patch) | |
tree | 2df884c0127218b1205bb5861ff7a048d6a54bff /src/org/traccar/web/client/controller | |
parent | b26e487f3c65808d349c7a53c0ea2a3981b61bac (diff) | |
download | trackermap-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.java | 58 |
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 |