diff options
author | Brion Vibber <brion@pobox.com> | 2010-09-24 17:22:44 -0700 |
---|---|---|
committer | Brion Vibber <brion@pobox.com> | 2010-09-28 07:44:25 -0700 |
commit | 698f5c7a20d5792b629404ce513d2fa2c2bab907 (patch) | |
tree | 3be11549f83dafbc57c4ae23d9c6cca33557df3c /plugins/YammerImport/lib | |
parent | e4b084f093dd7e8697616058874ec4ab15aacf2b (diff) |
Work in progress on getting the frontend Yammer import form going....
Diffstat (limited to 'plugins/YammerImport/lib')
-rw-r--r-- | plugins/YammerImport/lib/yammerauthinitform.php | 71 | ||||
-rw-r--r-- | plugins/YammerImport/lib/yammerauthverifyform.php | 82 | ||||
-rw-r--r-- | plugins/YammerImport/lib/yammerprogressform.php | 128 |
3 files changed, 281 insertions, 0 deletions
diff --git a/plugins/YammerImport/lib/yammerauthinitform.php b/plugins/YammerImport/lib/yammerauthinitform.php new file mode 100644 index 000000000..559ec4e7c --- /dev/null +++ b/plugins/YammerImport/lib/yammerauthinitform.php @@ -0,0 +1,71 @@ +<?php + +class YammerAuthInitForm extends Form +{ + /** + * ID of the form + * + * @return int ID of the form + */ + + function id() + { + return 'yammer-auth-init-form'; + } + + + /** + * class of the form + * + * @return string of the form class + */ + + function formClass() + { + return 'form_yammer_auth_init'; + } + + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('yammeradminpanel'); + } + + + /** + * Legend of the Form + * + * @return void + */ + function formLegend() + { + $this->out->element('legend', null, _m('Connect to Yammer')); + } + + /** + * Data elements of the form + * + * @return void + */ + + function formData() + { + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + $this->out->submit('submit', _m('Connect to Yammer'), 'submit', null, _m('Request authorization to connect to Yammer account')); + } +} diff --git a/plugins/YammerImport/lib/yammerauthverifyform.php b/plugins/YammerImport/lib/yammerauthverifyform.php new file mode 100644 index 000000000..488b5b8d1 --- /dev/null +++ b/plugins/YammerImport/lib/yammerauthverifyform.php @@ -0,0 +1,82 @@ +<?php + +class YammerAuthVerifyForm extends Form +{ + private $verify_url; + + function __construct($out, $auth_url) + { + parent::__construct($out); + $this->verify_url = $auth_url; + } + + /** + * ID of the form + * + * @return int ID of the form + */ + + function id() + { + return 'yammer-auth-verify-form'; + } + + + /** + * class of the form + * + * @return string of the form class + */ + + function formClass() + { + return 'form_yammer_auth_verify'; + } + + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('yammeradminpanel'); + } + + + /** + * Legend of the Form + * + * @return void + */ + function formLegend() + { + $this->out->element('legend', null, _m('Connect to Yammer')); + } + + /** + * Data elements of the form + * + * @return void + */ + + function formData() + { + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + $this->out->input('verify-code', _m('Verification code:'), '', _m("Click through and paste the code it gives you below...")); + $this->out->submit('submit', _m('Verify code'), 'submit', null, _m('Verification code')); + $this->element('iframe', array('id' => 'yammer-oauth', + 'src' => $this->auth_url)); + } +} diff --git a/plugins/YammerImport/lib/yammerprogressform.php b/plugins/YammerImport/lib/yammerprogressform.php new file mode 100644 index 000000000..776efa100 --- /dev/null +++ b/plugins/YammerImport/lib/yammerprogressform.php @@ -0,0 +1,128 @@ +<?php + +class YammerProgressForm extends Form +{ + /** + * ID of the form + * + * @return string ID of the form + */ + function id() + { + return 'yammer-progress'; + } + + /** + * 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() + { + $runner = YammerRunner::init(); + + $userCount = $runner->countUsers(); + $groupCount = $runner->countGroups(); + $fetchedCount = $runner->countFetchedNotices(); + $savedCount = $runner->countSavedNotices(); + + $labels = array( + 'init' => array( + 'label' => _m("Initialize"), + 'progress' => _m('No import running'), + 'complete' => _m('Initiated Yammer server connection...'), + ), + 'requesting-auth' => array( + 'label' => _m('Connect to Yammer'), + 'progress' => _m('Awaiting authorization...'), + 'complete' => _m('Connected.'), + ), + 'import-users' => array( + 'label' => _m('Import user accounts'), + 'progress' => sprintf(_m("Importing %d user...", "Importing %d users...", $userCount), $userCount), + 'complete' => sprintf(_m("Imported %d user.", "Imported %d users.", $userCount), $userCount), + ), + 'import-groups' => array( + 'label' => _m('Import user groups'), + 'progress' => sprintf(_m("Importing %d group...", "Importing %d groups...", $groupCount), $groupCount), + 'complete' => sprintf(_m("Imported %d group.", "Imported %d groups.", $groupCount), $groupCount), + ), + 'fetch-messages' => array( + 'label' => _m('Prepare public notices for import'), + 'progress' => sprintf(_m("Preparing %d notice...", "Preparing %d notices...", $fetchedCount), $fetchedCount), + 'complete' => sprintf(_m("Prepared %d notice.", "Prepared %d notices.", $fetchedCount), $fetchedCount), + ), + 'save-messages' => array( + 'label' => _m('Import public notices'), + 'progress' => sprintf(_m("Importing %d notice...", "Importing %d notices...", $savedCount), $savedCount), + 'complete' => sprintf(_m("Imported %d notice.", "Imported %d notices.", $savedCount), $savedCount), + ), + 'done' => array( + 'label' => _m('Done'), + 'progress' => sprintf(_m("Import is complete!")), + 'complete' => sprintf(_m("Import is complete!")), + ) + ); + $steps = array_keys($labels); + $currentStep = array_search($runner->state(), $steps); + + $this->out->elementStart('fieldset', array('class' => 'yammer-import')); + $this->out->element('legend', array(), _m('Import status')); + foreach ($steps as $step => $state) { + if ($state == 'init') { + // Don't show 'init', it's boring. + continue; + } + if ($step < $currentStep) { + // This step is done + $this->progressBar($state, + 'complete', + $labels[$state]['label'], + $labels[$state]['complete']); + } else if ($step == $currentStep) { + // This step is in progress + $this->progressBar($state, + 'progress', + $labels[$state]['label'], + $labels[$state]['progress']); + } else { + // This step has not yet been done. + $this->progressBar($state, + 'waiting', + $labels[$state]['label'], + _m("Waiting...")); + } + } + $this->out->elementEnd('fieldset'); + } + + private function progressBar($state, $class, $label, $status) + { + // @fixme prettify ;) + $this->out->elementStart('div', array('class' => "import-step import-step-$state $class")); + $this->out->element('div', array('class' => 'import-label'), $label); + $this->out->element('div', array('class' => 'import-status'), $status); + $this->out->elementEnd('div'); + } + +} |