diff --git a/src/site/controllers/parts.json.php b/src/site/controllers/parts.json.php new file mode 100644 index 0000000..2290583 --- /dev/null +++ b/src/site/controllers/parts.json.php @@ -0,0 +1,59 @@ +getCurrentUser(); + $app = Factory::getApplication(); + $post = $app->input->post; + + try + { + $ret = $this->callMethod($user, $post); + echo new JsonResponse($ret); + } + catch(UserException $e) + { + echo new JsonResponse($e); + } + + } + + /** + * @param CommonClubsModelUser $user + * @param JInput $post + */ + private function callMethod($user, $post) + { + switch($post->getCmd('partname')) + { + case 'user.name': + return $this->editUserName($user, $post); + } + } + + private function editUserName($user, $post) + { + $name = $post->getString('name'); + if(strlen($name) < 5) + throw new InvalidUserDataException("Der Name muss mindestens 5 Zeichen lang sein."); + + $user->setName($name); + $user->save(); + $this->setRedirect('index.php?option=com_clubs&view=mypage&layout=parts&type=name'); + } + +} diff --git a/src/site/css/clubs.css b/src/site/css/clubs.css index e80fded..fe79d0a 100644 --- a/src/site/css/clubs.css +++ b/src/site/css/clubs.css @@ -29,3 +29,18 @@ table.clubs > tbody > tr > th { display: none !important; } + +.address-field +{ + line-height: 120%; +} + +.clubs_content_row .clubs-hidden +{ + display: none; +} + +.clubs_content_row:hover > a > .edit-icon +{ + display: inline-block; +} \ No newline at end of file diff --git a/src/site/helpers/auth.php b/src/site/helpers/auth.php index 481c47a..a392e84 100644 --- a/src/site/helpers/auth.php +++ b/src/site/helpers/auth.php @@ -15,6 +15,17 @@ class ClubsHelperAuth return true; } + /** + * @return CommonClubsModelUser + */ + public function getCurrentUser() + { + // FIXME This must be implemented + $userFactory = new CommonClubsModelFactoryUser(); + $users = $userFactory->loadElements(); + return $users[0]; + } + public function checkUser($user, $pwd) { $userModel = BaseDatabaseModel::getInstance("user", "ClubsModel"); diff --git a/src/site/js/edit.js b/src/site/js/edit.js new file mode 100644 index 0000000..b75eb4c --- /dev/null +++ b/src/site/js/edit.js @@ -0,0 +1,30 @@ + +jQuery(function($){ + + $(document).on('click', 'a.clubs-edit', function(ev){ + ev.preventDefault(); + var myA = $(this); + $.get(ev.currentTarget.href, function(d){ + myA.replaceWith(d); + }); + }); + + $(document).on('click', 'a.clubs-abort', function(ev){ + ev.preventDefault(); + var form = $(this).parent(); + $.get(this.href, function(d){ + form.replaceWith(d); + }); + }); + + $(document).on('click', 'a.clubs-save', function(ev){ + ev.preventDefault(); + var form = $(this).parent(); + $.post(form.attr('action'), form.serializeArray(), function(d){ + form.replaceWith(d); + }); + }); + + + +}); diff --git a/src/site/views/mypage/tmpl/default.php b/src/site/views/mypage/tmpl/default.php index 430a2de..171e795 100644 --- a/src/site/views/mypage/tmpl/default.php +++ b/src/site/views/mypage/tmpl/default.php @@ -12,37 +12,60 @@ defined('_JEXEC') or die;