]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
DeletenoticeForm is its own class now
authorMikael Nordfeldth <mmn@hethane.se>
Sat, 11 Jul 2015 09:16:08 +0000 (11:16 +0200)
committerMikael Nordfeldth <mmn@hethane.se>
Sat, 11 Jul 2015 09:26:44 +0000 (11:26 +0200)
actions/deletenotice.php
lib/deletenoticeform.php [new file with mode: 0644]
lib/formaction.php

index 8f0211f8f9e638264a1b8d9a64a16ee49341203d..d8037ab4443fbcfaf1b45f3ace961726ac6bb5ec 100644 (file)
@@ -33,15 +33,13 @@ if (!defined('GNUSOCIAL')) { exit(1); }
 // @todo FIXME: documentation needed.
 class DeletenoticeAction extends FormAction
 {
-    protected $form = 'deletenotice';
-
     protected $notice = null;
 
     protected function doPreparation()
     {
-        $this->notice = Notice::getByID($this->int('notice'));
+        $this->notice = Notice::getByID($this->trimmed('notice'));
 
-        if ($this->notice->profile_id != $this->scoped->getID() &&
+        if (!$this->scoped->sameAs($this->notice->getProfile()) &&
                    !$this->scoped->hasRight(Right::DELETEOTHERSNOTICE)) {
             // TRANS: Error message displayed trying to delete a notice that was not made by the current user.
             $this->clientError(_('Cannot delete this notice.'));
diff --git a/lib/deletenoticeform.php b/lib/deletenoticeform.php
new file mode 100644 (file)
index 0000000..d060046
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+
+if (!defined('GNUSOCIAL')) { exit(1); }
+
+class DeletenoticeForm extends Form
+{
+    protected $notice = null;
+
+    function __construct(HTMLOutputter $out=null, array $formOpts=array())
+    {
+        if (!array_key_exists('notice', $formOpts) || !$formOpts['notice'] instanceof Notice) {
+            throw new ServerException('No notice provided to DeletenoticeForm');
+        }
+
+        parent::__construct($out);
+
+        $this->notice = $formOpts['notice'];
+    }
+
+    function id()
+    {
+        return 'form_notice_delete-' . $this->notice->getID();
+    }
+
+    function formClass()
+    {
+        return 'form_settings';
+    }
+
+    function action()
+    {
+        return common_local_url('deletenotice', array('notice' => $this->notice->getID()));
+    }
+
+    function formLegend()
+    {
+        $this->out->element('legend', null, _('Delete notice'));
+    }
+
+    function formData()
+    {
+        $this->out->element('p', null, _('Are you sure you want to delete this notice?'));
+    }
+
+    /**
+     * Action elements
+     *
+     * @return void
+     */
+    function formActions()
+    {
+        $this->out->submit('form_action-no',
+                      // TRANS: Button label on the delete notice form.
+                      _m('BUTTON','No'),
+                      'submit form_action-primary',
+                      'no',
+                      // TRANS: Submit button title for 'No' when deleting a notice.
+                      _('Do not delete this notice.'));
+        $this->out->submit('form_action-yes',
+                      // TRANS: Button label on the delete notice form.
+                      _m('BUTTON','Yes'),
+                      'submit form_action-secondary',
+                      'yes',
+                      // TRANS: Submit button title for 'Yes' when deleting a notice.
+                      _('Delete this notice.'));
+    }
+}
index 5cf05d4a324fede134e48eb9f0024a979f80b6f8..7d74fc47130eaf20f6bb23b116e21eab8f9d6664 100644 (file)
@@ -50,7 +50,7 @@ class FormAction extends ManagedAction
     protected function prepare(array $args=array()) {
         parent::prepare($args);
 
-        $this->form = $this->form ?: $this->action;
+        $this->form = $this->form ?: ucfirst($this->action);
         $this->args['form'] = $this->form;
 
         $this->type = !is_null($this->type) ? $this->type : $this->trimmed('type');