]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Events get rendered.
authorMikael Nordfeldth <mmn@hethane.se>
Mon, 18 Jan 2016 22:58:32 +0000 (23:58 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Mon, 18 Jan 2016 22:58:32 +0000 (23:58 +0100)
plugins/Bookmark/BookmarkPlugin.php
plugins/Event/EventPlugin.php
plugins/Event/actions/newevent.php
plugins/Event/classes/Happening.php

index 8b4abd2b42ba0c92e77c2680fceb7db58e936bd4..904c7ee9c9e1817ebef74997ebd2a224c0a336a2 100644 (file)
@@ -306,7 +306,6 @@ class BookmarkPlugin extends MicroAppPlugin
             return true;
         }
 
-        common_debug('Extending activity '.$stored->id.' with '.get_called_class());
         $this->extendActivity($stored, $act, $scoped);
         return false;
     }
index 1756e851bfd1b358a48583e06496118abb178948..7dfd061efedf889ca197b068125db5915a301187 100644 (file)
@@ -168,7 +168,7 @@ class EventPlugin extends ActivityVerbHandlerPlugin
 
     protected function getActivityForm(ManagedAction $action, $verb, Notice $target, Profile $scoped)
     {
-        return new RSVPForm(Happening::fromNotice($target), $action);
+        return new RSVPForm(Happening::fromStored($target), $action);
     }
 
     protected function saveObjectFromActivity(Activity $act, Notice $stored, array $options=array())
@@ -218,33 +218,27 @@ class EventPlugin extends ActivityVerbHandlerPlugin
     {
         $happening = null;
 
-        switch ($notice->object_type) {
-        case Happening::OBJECT_TYPE:
-            $happening = Happening::fromNotice($notice);
+        switch (true) {
+        case ActivityUtils::compareVerbs($notice->verb, array(ActivityVerb::POST)) &&
+                ActivityUtils::compareTypes($notice->object_type, array(Happening::OBJECT_TYPE)):
+            $happening = Happening::fromStored($notice);
             break;
-        case RSVP::POSITIVE:
-        case RSVP::NEGATIVE:
-        case RSVP::POSSIBLE:
+        // FIXME: Why are these object_type??
+        case ActivityUtils::compareTypes($stored->object_type, array(RSVP::POSITIVE, RSVP::NEGATIVE, RSVP::POSSIBLE)):
             $rsvp  = RSVP::fromNotice($notice);
             $happening = $rsvp->getEvent();
             break;
-        }
-
-        if (empty($happening)) {
+        default:
             // TRANS: Exception thrown when event plugin comes across a unknown object type.
             throw new Exception(_m('Unknown object type.'));
         }
 
+        // This is a bit weird, if it's a Notice for a Happening. We should only do this for RSVP.
         $notice = $happening->getNotice();
 
-        if (empty($notice)) {
-            // TRANS: Exception thrown when referring to a notice that is not an event an in event context.
-            throw new Exception(_m('Unknown event notice.'));
-        }
-
         $obj = new ActivityObject();
 
-        $obj->id      = $happening->uri;
+        $obj->id      = $happening->getUri();
         $obj->type    = Happening::OBJECT_TYPE;
         $obj->title   = $happening->title;
         $obj->summary = $happening->description;
@@ -255,16 +249,15 @@ class EventPlugin extends ActivityVerbHandlerPlugin
         $obj->extra[] = array('dtstart',
                               array('xmlns' => 'urn:ietf:params:xml:ns:xcal'),
                               common_date_iso8601($happening->start_time));
-
         $obj->extra[] = array('dtend',
                               array('xmlns' => 'urn:ietf:params:xml:ns:xcal'),
                               common_date_iso8601($happening->end_time));
-
         $obj->extra[] = array('location', false, $happening->location);
         $obj->extra[] = array('url', false, $happening->url);
 
         // XXX: probably need other stuff here
 
+        common_debug('EVENTDEBUG: activity object from notice: '._ve($obj));
         return $obj;
     }
 
@@ -276,10 +269,9 @@ class EventPlugin extends ActivityVerbHandlerPlugin
      * @return ActivityObject
      */
     protected function extendActivity(Notice $stored, Activity $act, Profile $scoped=null) {
-        switch ($stored->object_type) {
-        case RSVP::POSITIVE:
-        case RSVP::NEGATIVE:
-        case RSVP::POSSIBLE:
+        switch (true) {
+        // FIXME: Why are these object_type??
+        case ActivityUtils::compareTypes($stored->object_type, array(RSVP::POSITIVE, RSVP::NEGATIVE, RSVP::POSSIBLE)):
             $act->verb = $stored->object_type;
             break;
         }
@@ -307,7 +299,7 @@ class EventPlugin extends ActivityVerbHandlerPlugin
         switch ($notice->object_type) {
         case Happening::OBJECT_TYPE:
             common_log(LOG_DEBUG, "Deleting event from notice...");
-            $happening = Happening::fromNotice($notice);
+            $happening = Happening::fromStored($notice);
             $happening->delete();
             break;
         case RSVP::POSITIVE:
@@ -352,28 +344,25 @@ class EventPlugin extends ActivityVerbHandlerPlugin
 
     protected function showNoticeContent(Notice $stored, HTMLOutputter $out, Profile $scoped=null)
     {
-        switch ($stored->object_type) {
-        case Happening::OBJECT_TYPE:
+        switch (true) {
+        case ActivityUtils::compareTypes($stored->verb, array(ActivityVerb::POST)) &&
+                ActivityUtils::compareTypes($stored->object_type, array(Happening::OBJECT_TYPE)):
             $this->showEvent($stored, $out, $scoped);
             break;
-        case RSVP::POSITIVE:
-        case RSVP::NEGATIVE:
-        case RSVP::POSSIBLE:
+        case ActivityUtils::compareVerbs($stored->verb, array(RSVP::POSITIVE, RSVP::NEGATIVE, RSVP::POSSIBLE)):
             $this->showRSVP($stored, $out, $scoped);
             break;
+        default:
+            throw new ServerException('This is not an Event notice');
         }
+        return true;
     }
 
     protected function showEvent(Notice $stored, HTMLOutputter $out, Profile $scoped=null)
     {
+        common_debug('shownotice'.$stored->getID());
         $profile = $stored->getProfile();
-        $event   = Happening::fromNotice($stored);
-
-        if (!$event instanceof Happening) {
-            // TRANS: Content for a deleted RSVP list item (RSVP stands for "please respond").
-            $out->element('p', null, _m('Deleted.'));
-            return;
-        }
+        $event   = Happening::fromStored($stored);
 
         $out->elementStart('div', 'h-event');
 
index cdb9e9e724ae551a7bc08b693485d9b48c731212..402acea035436b27a18e154cc2c224920399d1e4 100644 (file)
@@ -132,24 +132,7 @@ class NeweventAction extends FormAction
         $actobj->id = UUID::gen();
         $actobj->type = Happening::OBJECT_TYPE;
         $actobj->title = $title;
-        // TRANS: Rendered microformats2 tagged event description.
-        // TRANS: %1$s is a title, %2$s is iso8601 start time, %3$s is start time,
-        // TRANS: %4$s is iso8601 end time, %5$s is end time, %6$s is location, %7$s is description.
-        // TRANS: Class names should not be translated.
-        $actobj->summary = sprintf(_m('<div class="h-event">'.
-                              '<p class="p-name p-summary">%1$s</p> '.
-                              '<time class="dt-start" datetime="%2$s">%3$s</time> - '.
-                              '<time class="dt-end" datetime="%4$s">%5$s</time> '.
-                              '(<span class="p-location">%6$s</span>): '.
-                              '<div class="p-description">%7$s</div> '.
-                              '</div>'),
-                            htmlspecialchars($title),
-                            htmlspecialchars(common_date_iso8601($start_str)),
-                            htmlspecialchars(common_exact_date($start_str)),
-                            htmlspecialchars(common_date_iso8601($end_str)),
-                            htmlspecialchars(common_exact_date($end_str)),
-                            htmlspecialchars($location),
-                            htmlspecialchars($description));
+        $actobj->summary = $description;
 
         $actobj->extra[] = array('dtstart',
                               array('xmlns' => 'urn:ietf:params:xml:ns:xcal'),
index 7b7121903ff1e57304f7d3408c43ba0c2a166ae4..e4e1f962361b2b7f6a54579bea0c6c8725df41c3 100644 (file)
@@ -94,7 +94,8 @@ class Happening extends Managed_DataObject
             'unique keys' => array(
                 'happening_uri_key' => array('uri'),
             ),
-            'foreign keys' => array('happening_profile_id__key' => array('profile', array('profile_id' => 'id'))),
+            'foreign keys' => array('happening_profile_id__key' => array('profile', array('profile_id' => 'id')),
+                                    'happening_uri__key' => array('notice', array('uri' => 'uri'))),
             'indexes' => array('happening_created_idx' => array('created'),
                                'happening_start_end_idx' => array('start_time', 'end_time')),
         );
@@ -192,14 +193,14 @@ class Happening extends Managed_DataObject
         return $this->uri;
     }
 
-    function getNotice()
+    public function getNotice()
     {
-        return Notice::getKV('uri', $this->getUri());
+        return Notice::getByKeys(array('uri'=>$this->getUri()));
     }
 
-    static function fromNotice($notice)
+    static function fromStored(Notice $stored)
     {
-        return Happening::getKV('uri', $notice->getUri());
+        return self::getByKeys(array('uri'=>$stored->getUri()));
     }
 
     function getRSVPs()