Yammer import (work run via background queues) now can be started from the admin panel! :DDDD Still requires that the app be registered on your network manually first.

This commit is contained in:
Brion Vibber 2010-09-27 13:34:35 -07:00
parent 05c12c58bb
commit 585c7f35ca
5 changed files with 30 additions and 8 deletions

View File

@ -48,7 +48,7 @@ class YammerImportPlugin extends Plugin
*/ */
function onEndInitializeQueueManager(QueueManager $qm) function onEndInitializeQueueManager(QueueManager $qm)
{ {
$qm->connect('importym', 'ImportYmQueueHandler'); $qm->connect('yammer', 'YammerQueueHandler');
return true; return true;
} }
@ -122,6 +122,7 @@ class YammerImportPlugin extends Plugin
case 'yammerauthinitform': case 'yammerauthinitform':
case 'yammerauthverifyform': case 'yammerauthverifyform':
case 'yammerprogressform': case 'yammerprogressform':
case 'yammerqueuehandler':
require_once "$base/lib/$lower.php"; require_once "$base/lib/$lower.php";
return false; return false;
case 'yammeradminpanelaction': case 'yammeradminpanelaction':

View File

@ -76,6 +76,10 @@ class YammeradminpanelAction extends AdminPanelAction
return $this->showAjaxForm($form); return $this->showAjaxForm($form);
} else if ($this->verify_token) { } else if ($this->verify_token) {
$this->runner->saveAuthToken($this->verify_token); $this->runner->saveAuthToken($this->verify_token);
// Haho! Now we can make THE FUN HAPPEN
$this->runner->startBackgroundImport();
$form = new YammerProgressForm($this, $this->runner); $form = new YammerProgressForm($this, $this->runner);
return $this->showAjaxForm($form); return $this->showAjaxForm($form);
} else { } else {

View File

@ -64,7 +64,20 @@ class YammerAuthVerifyForm extends Form
function formData() function formData()
{ {
$this->out->input('verify_token', _m('Verification code:'), '', _m("Click through and paste the code it gives you below...")); $this->out->elementStart('p');
$this->out->text(_m('Follow this link to confirm authorization at Yammer; you will be prompted to log in if necessary:'));
$this->out->elementEnd('p');
$this->out->elementStart('blockquote');
$this->out->element('a',
array('href' => $this->runner->getAuthUrl(),
'target' => '_blank'),
_m('Open Yammer authentication window'));
$this->out->elementEnd('blockquote');
$this->out->element('p', array(), _m('Copy the verification code you are given into the form below:'));
$this->out->input('verify_token', _m('Verification code:'));
// iframe would be nice to avoid leaving -- since they don't seem to have callback url O_O // iframe would be nice to avoid leaving -- since they don't seem to have callback url O_O
/* /*
@ -72,10 +85,6 @@ class YammerAuthVerifyForm extends Form
'src' => $this->runner->getAuthUrl())); 'src' => $this->runner->getAuthUrl()));
*/ */
// yeah, it ignores the callback_url // yeah, it ignores the callback_url
$this->out->element('a',
array('href' => $this->runner->getAuthUrl(),
'target' => '_blank'),
'clicky click');
} }
/** /**

View File

@ -41,8 +41,7 @@ class YammerQueueHandler extends QueueHandler
if ($runner->iterate()) { if ($runner->iterate()) {
if ($runner->hasWork()) { if ($runner->hasWork()) {
// More to do? Shove us back on the queue... // More to do? Shove us back on the queue...
$qm = QueueManager::get(); $runner->startBackgroundImport();
$qm->enqueue('YammerImport', 'yammer');
} }
return true; return true;
} else { } else {

View File

@ -386,4 +386,13 @@ class YammerRunner
return $map->count(); return $map->count();
} }
/**
* Start running import work in the background queues...
*/
public function startBackgroundImport()
{
$qm = QueueManager::get();
$qm->enqueue('YammerImport', 'yammer');
}
} }