| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- namespace cx_newsletter;
- use \cx_appengine\string_builder;
- use \exception;
- class manage_groups_activity
- extends activity {
- public function show_after_button() : null {
- return null;
- }
- public function get_site_template_name() : string {
- return 'manage_groups';
- }
- public function inside_buttons() : array {
- return [ 'delete', 'save', 'add' ];
- }
- public function inside_inputs() : array {
- return [
- 'id' => 'int',
- 'name' => 'string'
- ];
- }
- public function process() : self {
- if ($this->is_received('save')) {
- $this->save();
- }
- if ($this->is_received('add')) {
- $this->add();
- }
- if ($this->is_received('delete')) {
- $this->delete();
- }
- $this->set('groups', $this->load_groups());
-
- return $this;
- }
- private function save() : void {
- try {
- $group = new group($this->get_validated('id'));
- $group->prepare_name($this->get_validated('name'));
- $this->get_mapper()->save($group);
- } catch (exception $exception) {
- $error = 'An error exception when saving group. More info: ';
- $error .= $exception->getMessage();
- $this->error_toast($error);
- }
- }
- private function add() : void {
- try {
- $group = new group();
- $group->prepare_name($this->get_validated('name'));
-
- $this->get_mapper()->create($group);
- } catch (exception $exception) {
- $error = 'An error exception when saving group. More info: ';
- $error .= $exception->getMessage();
- $this->error_toast($error);
- }
- }
- private function delete() : void {
- try {
- $group = new group($this->get_validated('id'));
- $this->get_mapper()->remove($group);
- } catch (exception $exception) {
- $error = 'An error exception when removing group. More info: ';
- $error .= $exception->getMessage();
- $this->error_toast($error);
- }
- }
- private function load_groups() : string_builder {
- $converter = new group_converter();
- $groups = new string_builder();
- foreach ($this->get_mapper()->load_all() as $group) {
- $groups->push(
- $this
- ->get_templates()
- ->prepare('single_group')
- ->render($converter->load_object($group)->get_array())
- );
- }
- return $groups;
- }
- private function get_mapper() : groups_mapper {
- return new groups_mapper(
- $this->get_database(),
- $this->get_tables()
- );
- }
- }
|