Notice from web now saves context->attention too! ;)

This commit is contained in:
Mikael Nordfeldth 2016-01-07 23:24:15 +01:00
parent 6255e1dca3
commit c48871cf1b
3 changed files with 29 additions and 27 deletions

View File

@ -145,8 +145,6 @@ class NewnoticeAction extends FormAction
// simply no attached media to the new notice
}
$content = $this->scoped->shortenLinks($content);
// Reject notice if it is too long (without the HTML)
// This is done after MediaFile::fromUpload etc. just to act the same as the ApiStatusesUpdateAction
if (Notice::contentTooLong($content)) {
@ -158,13 +156,6 @@ class NewnoticeAction extends FormAction
Notice::maxContent()));
}
$actobj = new ActivityObject();
$actobj->type = ActivityObject::NOTE;
$actobj->content = common_render_content($content, $this->scoped, $parent);
$act->objects[] = $actobj;
$act->context = new ActivityContext();
if ($parent instanceof Notice) {
@ -191,15 +182,21 @@ class NewnoticeAction extends FormAction
$act->context->location = Location::fromOptions($locOptions);
}
$author_id = $this->scoped->id;
$text = $content;
// Does the heavy-lifting for getting "To:" information
ToSelector::fillOptions($this, $options);
$content = $this->scoped->shortenLinks($content);
// FIXME: Make sure NoticeTitle plugin gets a change to add the title to our activityobject!
if (Event::handle('StartNoticeSaveWeb', array($this, &$author_id, &$text, &$options))) {
if (Event::handle('StartNoticeSaveWeb', array($this, $this->scoped, &$content, &$options))) {
// FIXME: We should be able to get the attentions from common_render_content!
// and maybe even directly save whether they're local or not!
$act->context->attention = common_find_attentions($content, $this->scoped, $parent);
$actobj = new ActivityObject();
$actobj->type = ActivityObject::NOTE;
$actobj->content = common_render_content($content, $this->scoped, $parent);
// Finally add the activity object to our activity
$act->objects[] = $actobj;
$this->stored = Notice::saveActivity($act, $this->scoped, $options);

View File

@ -49,18 +49,23 @@ class Attention extends Managed_DataObject
);
}
public static function saveNew(Notice $notice, Profile $profile, $reason=null)
public static function saveNew(Notice $notice, Profile $target, $reason=null)
{
$att = new Attention();
try {
$att = Attention::getByKeys(['notice_id'=>$notice->getID(), 'profile_id'=>$target->getID()]);
throw new AlreadyFulfilledException('Attention already exists with reason: '.var_export($att->reason,true));
} catch (NoResultException $e) {
$att = new Attention();
$att->notice_id = $notice->getID();
$att->profile_id = $profile->getID();
$att->reason = $reason;
$att->created = common_sql_now();
$result = $att->insert();
$att->notice_id = $notice->getID();
$att->profile_id = $target->getID();
$att->reason = $reason;
$att->created = common_sql_now();
$result = $att->insert();
if ($result === false) {
throw new Exception('Could not saveNew in Attention');
if ($result === false) {
throw new Exception('Failed Attention::saveNew for notice id=='.$notice->getID().' target id=='.$target->getID().', reason=="'.$reason.'"');
}
}
return $att;
}

View File

@ -124,13 +124,13 @@ class NoticeTitlePlugin extends Plugin
* Validate notice title before saving
*
* @param Action $action NewNoticeAction being executed
* @param integer &$authorId Author ID
* @param Profile $author Profile object for the author of the notice being saved
* @param string &$text Text of the notice
* @param array &$options Options array
*
* @return boolean hook value
*/
function onStartNoticeSaveWeb($action, &$authorId, &$text, &$options)
function onStartNoticeSaveWeb(Action $action, Profile $author, &$content, &$options)
{
$title = $action->trimmed('notice_title');
if (!empty($title) && $this->isAllowedRichEdit()) {