summaryrefslogtreecommitdiff
path: root/plugins/YammerImport/actions
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-09-22 17:51:50 -0700
committerBrion Vibber <brion@pobox.com>2010-09-28 07:44:23 -0700
commit472dab4a86c0ba365404b0994c3eb7e9979a80c2 (patch)
treebaa11fa8496e7b9753bc1aafda710b56e24cd869 /plugins/YammerImport/actions
parent22434a5daeb535b72d4797877bacad9eb6a74f2e (diff)
WORK IN PROGRESS: Starting infrastructure to initiate Yammer import from web UI and process it in the background queues. Totally not complete yet.
Diffstat (limited to 'plugins/YammerImport/actions')
-rw-r--r--plugins/YammerImport/actions/yammeradminpanel.php153
-rw-r--r--plugins/YammerImport/actions/yammerauth.php17
2 files changed, 170 insertions, 0 deletions
diff --git a/plugins/YammerImport/actions/yammeradminpanel.php b/plugins/YammerImport/actions/yammeradminpanel.php
new file mode 100644
index 000000000..875debac9
--- /dev/null
+++ b/plugins/YammerImport/actions/yammeradminpanel.php
@@ -0,0 +1,153 @@
+<?php
+/**
+ * StatusNet, the distributed open-source microblogging tool
+ *
+ * Yammer import administration panel
+ *
+ * PHP version 5
+ *
+ * LICENCE: This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category Settings
+ * @package StatusNet
+ * @author Zach Copley <zach@status.net>
+ * @copyright 2010 StatusNet, Inc.
+ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+ exit(1);
+}
+
+class YammeradminpanelAction extends AdminPanelAction
+{
+ /**
+ * Returns the page title
+ *
+ * @return string page title
+ */
+ function title()
+ {
+ return _m('Yammer Import');
+ }
+
+ /**
+ * Instructions for using this form.
+ *
+ * @return string instructions
+ */
+ function getInstructions()
+ {
+ return _m('Yammer import tool');
+ }
+
+ /**
+ * Show the Yammer admin panel form
+ *
+ * @return void
+ */
+ function showForm()
+ {
+ $form = new YammerAdminPanelForm($this);
+ $form->show();
+ return;
+ }
+}
+
+class YammerAdminPanelForm extends AdminForm
+{
+ /**
+ * ID of the form
+ *
+ * @return string ID of the form
+ */
+ function id()
+ {
+ return 'yammeradminpanel';
+ }
+
+ /**
+ * class of the form
+ *
+ * @return string class of the form
+ */
+ function formClass()
+ {
+ return 'form_settings';
+ }
+
+ /**
+ * Action of the form
+ *
+ * @return string URL of the action
+ */
+ function action()
+ {
+ return common_local_url('yammeradminpanel');
+ }
+
+ /**
+ * Data elements of the form
+ *
+ * @return void
+ */
+ function formData()
+ {
+ $this->out->element('p', array(), 'yammer import IN DA HOUSE');
+
+ /*
+ Possible states of the yammer import process:
+ - null (not doing any sort of import)
+ - requesting-auth
+ - authenticated
+ - import-users
+ - import-groups
+ - fetch-messages
+ - import-messages
+ - done
+ */
+ $yammerState = Yammer_state::staticGet('id', 1);
+ $state = $yammerState ? $yammerState->state || null;
+
+ switch($state)
+ {
+ case null:
+ $this->out->element('p', array(), 'Time to start auth:');
+ $this->showAuthForm();
+ break;
+ case 'requesting-auth':
+ $this->out->element('p', array(), 'Need to finish auth!');
+ $this->showAuthForm();
+ break;
+ case 'import-users':
+ case 'import-groups':
+ case 'import-messages':
+ case 'save-messages':
+ $this->showImportState();
+ break;
+
+ }
+ }
+
+ /**
+ * Action elements
+ *
+ * @return void
+ */
+ function formActions()
+ {
+ // No submit buttons needed at bottom
+ }
+}
diff --git a/plugins/YammerImport/actions/yammerauth.php b/plugins/YammerImport/actions/yammerauth.php
new file mode 100644
index 000000000..7e6e7204a
--- /dev/null
+++ b/plugins/YammerImport/actions/yammerauth.php
@@ -0,0 +1,17 @@
+<?php
+
+
+function showYammerAuth()
+{
+ $token = $yam->requestToken();
+ $url = $yam->authorizeUrl($token);
+
+ // We're going to try doing this in an iframe; if that's not happy
+ // we can redirect but there doesn't seem to be a way to get Yammer's
+ // oauth to call us back instead of the manual copy. :(
+
+ //common_redirect($url, 303);
+ $this->element('iframe', array('id' => 'yammer-oauth',
+ 'src' => $url));
+}
+