forked from GNUsocial/gnu-social
made the input-form switcher work, kinda
This commit is contained in:
parent
17db6cce3d
commit
b54a9f389c
@ -640,8 +640,60 @@ class Action extends HTMLOutputter // lawsuit
|
|||||||
*/
|
*/
|
||||||
function showNoticeForm()
|
function showNoticeForm()
|
||||||
{
|
{
|
||||||
$notice_form = new NoticeForm($this);
|
$tabs = array('status' => _('Status'));
|
||||||
$notice_form->show();
|
|
||||||
|
$this->elementStart('div', 'input_forms');
|
||||||
|
|
||||||
|
if (Event::handle('StartShowEntryForms', array(&$tabs))) {
|
||||||
|
|
||||||
|
$this->elementStart('ul', array('class' => 'nav',
|
||||||
|
'id' => 'input_form_nav'));
|
||||||
|
|
||||||
|
foreach ($tabs as $tag => $title) {
|
||||||
|
|
||||||
|
$attrs = array('id' => 'input_form_nav_'.$title);
|
||||||
|
|
||||||
|
if ($tag == 'status') {
|
||||||
|
$attrs['class'] = 'current';
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->elementStart('li', $attrs);
|
||||||
|
|
||||||
|
$this->element('a',
|
||||||
|
array('href' => 'javascript:switchInputFormTab("'.$tag.'")'),
|
||||||
|
$title);
|
||||||
|
$this->elementEnd('li');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->elementEnd('ul');
|
||||||
|
|
||||||
|
foreach ($tabs as $tag => $title) {
|
||||||
|
|
||||||
|
$attrs = array('class' => 'input_form',
|
||||||
|
'id' => 'input_form_'.$tag);
|
||||||
|
|
||||||
|
if ($tag == 'status') {
|
||||||
|
$attrs['class'] .= ' active';
|
||||||
|
} else {
|
||||||
|
$attrs['class'] .= ' inactive';
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->elementStart('div', $attrs);
|
||||||
|
|
||||||
|
$form = null;
|
||||||
|
|
||||||
|
if (Event::handle('StartMakeEntryForm', array($tag, $this, &$form))) {
|
||||||
|
if ($tag == 'status') {
|
||||||
|
$form = new NoticeForm($this);
|
||||||
|
}
|
||||||
|
Event::handle('EndMakeEntryForm', array($tag, $this, $form));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($form)) {
|
||||||
|
$form->show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -54,7 +54,7 @@ abstract class MicroAppPlugin extends Plugin
|
|||||||
abstract function appTitle();
|
abstract function appTitle();
|
||||||
abstract function tag();
|
abstract function tag();
|
||||||
abstract function types();
|
abstract function types();
|
||||||
abstract function saveNoticeFromActivity($activity, $actor);
|
abstract function saveNoticeFromActivity($activity, $actor, $options);
|
||||||
abstract function activityObjectFromNotice($notice);
|
abstract function activityObjectFromNotice($notice);
|
||||||
abstract function showNotice($notice, $out);
|
abstract function showNotice($notice, $out);
|
||||||
abstract function entryForm($out);
|
abstract function entryForm($out);
|
||||||
@ -157,6 +157,13 @@ abstract class MicroAppPlugin extends Plugin
|
|||||||
throw new ClientException(_('Can\'t get author for activity.'));
|
throw new ClientException(_('Can\'t get author for activity.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$object = $activity->objects[0];
|
||||||
|
|
||||||
|
$options = array('uri' => $object->id,
|
||||||
|
'url' => $object->link,
|
||||||
|
'is_local' => Notice::REMOTE_OMB,
|
||||||
|
'source' => 'ostatus');
|
||||||
|
|
||||||
$this->saveNoticeFromActivity($activity, $actor);
|
$this->saveNoticeFromActivity($activity, $actor);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -196,7 +203,7 @@ abstract class MicroAppPlugin extends Plugin
|
|||||||
if (!in_array($uri, $activity->context->attention) &&
|
if (!in_array($uri, $activity->context->attention) &&
|
||||||
(empty($original) ||
|
(empty($original) ||
|
||||||
$original->profile_id != $target->id)) {
|
$original->profile_id != $target->id)) {
|
||||||
throw new ClientException(_("Bookmark not posted ".
|
throw new ClientException(_("Object not posted ".
|
||||||
"to this user."));
|
"to this user."));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -206,7 +213,14 @@ abstract class MicroAppPlugin extends Plugin
|
|||||||
|
|
||||||
$actor = Ostatus_profile::ensureActivityObjectProfile($activity->actor);
|
$actor = Ostatus_profile::ensureActivityObjectProfile($activity->actor);
|
||||||
|
|
||||||
$this->saveNoticeFromActivity($activity, $actor);
|
$object = $activity->objects[0];
|
||||||
|
|
||||||
|
$options = array('uri' => $object->id,
|
||||||
|
'url' => $object->link,
|
||||||
|
'is_local' => Notice::REMOTE_OMB,
|
||||||
|
'source' => 'ostatus');
|
||||||
|
|
||||||
|
$this->saveNoticeFromActivity($activity, $actor, $options);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -258,8 +272,8 @@ abstract class MicroAppPlugin extends Plugin
|
|||||||
|
|
||||||
$obj = $activity->objects[0];
|
$obj = $activity->objects[0];
|
||||||
|
|
||||||
$options = array('uri' => $bookmark->id,
|
$options = array('uri' => $object->id,
|
||||||
'url' => $bookmark->link,
|
'url' => $object->link,
|
||||||
'source' => 'restore');
|
'source' => 'restore');
|
||||||
|
|
||||||
$saved = $this->saveNoticeFromActivity($activity,
|
$saved = $this->saveNoticeFromActivity($activity,
|
||||||
@ -275,4 +289,22 @@ abstract class MicroAppPlugin extends Plugin
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function onStartShowEntryForms(&$tabs)
|
||||||
|
{
|
||||||
|
$tabs[$this->tag()] = $this->appTitle();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function onStartMakeEntryForm($tag, $out, &$form)
|
||||||
|
{
|
||||||
|
$this->log(LOG_INFO, "onStartMakeEntryForm() called for tag '$tag'");
|
||||||
|
|
||||||
|
if ($tag == $this->tag()) {
|
||||||
|
$form = $this->entryForm($out);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -372,10 +372,8 @@ class BookmarkPlugin extends MicroAppPlugin
|
|||||||
* @return Notice resulting notice
|
* @return Notice resulting notice
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function saveNoticeFromActivity($activity, $profile)
|
function saveNoticeFromActivity($activity, $profile, $options=array())
|
||||||
{
|
{
|
||||||
$options = array();
|
|
||||||
|
|
||||||
$bookmark = $activity->objects[0];
|
$bookmark = $activity->objects[0];
|
||||||
|
|
||||||
$relLinkEls = ActivityUtils::getLinks($bookmark->element, 'related');
|
$relLinkEls = ActivityUtils::getLinks($bookmark->element, 'related');
|
||||||
@ -622,4 +620,13 @@ class BookmarkPlugin extends MicroAppPlugin
|
|||||||
return new BookmarkForm($out);
|
return new BookmarkForm($out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function tag()
|
||||||
|
{
|
||||||
|
return 'bookmark';
|
||||||
|
}
|
||||||
|
|
||||||
|
function appTitle()
|
||||||
|
{
|
||||||
|
return _m('Bookmark');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user