From 6eb506062189557e5e5f40212c4cc7a1faec27fd Mon Sep 17 00:00:00 2001 From: millette Date: Thu, 4 Dec 2008 13:02:33 -0500 Subject: done delete own profile (see other settings) darcs-hash:20081204180233-099f7-7728ee57876b789278aa1cc35f54e0a422593e5d.gz --- actions/othersettings.php | 76 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) (limited to 'actions/othersettings.php') diff --git a/actions/othersettings.php b/actions/othersettings.php index 42502f828..d956320d8 100644 --- a/actions/othersettings.php +++ b/actions/othersettings.php @@ -32,13 +32,13 @@ class OthersettingsAction extends SettingsAction { $this->form_header(_('Other Settings'), $msg, $success); + common_element('h2', NULL, _('URL Auto-shortening')); common_element_start('form', array('method' => 'post', 'id' => 'othersettings', 'action' => common_local_url('othersettings'))); common_hidden('token', common_session_token()); - common_element('h2', NULL, _('URL Auto-shortening')); $services = array( '' => 'None', 'ur1.ca' => 'ur1.ca (free service)', @@ -56,9 +56,83 @@ class OthersettingsAction extends SettingsAction { common_submit('save', _('Save')); common_element_end('form'); + + common_element('h2', NULL, _('Delete my account')); + $this->show_delete_form(); + common_show_footer(); } + function show_feeds_list($feeds) { + common_element_start('div', array('class' => 'feedsdel')); + common_element('p', null, 'Feeds:'); + common_element_start('ul', array('class' => 'xoxo')); + + foreach ($feeds as $key => $value) { + $this->common_feed_item($feeds[$key]); + } + common_element_end('ul'); + common_element_end('div'); + } + + //TODO move to common.php (and retrace its origin) + function common_feed_item($feed) { + $user = common_current_user(); + $nickname = $user->nickname; + + switch($feed['item']) { + case 'notices': default: + $feed_classname = $feed['type']; + $feed_mimetype = "application/".$feed['type']."+xml"; + $feed_title = "$nickname's ".$feed['version']." notice feed"; + $feed['textContent'] = "RSS"; + break; + + case 'foaf': + $feed_classname = "foaf"; + $feed_mimetype = "application/".$feed['type']."+xml"; + $feed_title = "$nickname's FOAF file"; + $feed['textContent'] = "FOAF"; + break; + } + common_element_start('li'); + common_element('a', array('href' => $feed['href'], + 'class' => $feed_classname, + 'type' => $feed_mimetype, + 'title' => $feed_title), + $feed['textContent']); + common_element_end('li'); + } + + function show_delete_form() { + $user = common_current_user(); + $notices = DB_DataObject::factory('notice'); + $notices->profile_id = $user->id; + $notice_count = (int) $notices->count(); + + common_element_start('form', array('method' => 'POST', + 'id' => 'delete', + 'action' => + common_local_url('deleteprofile'))); + + common_hidden('token', common_session_token()); + common_element('p', null, "You can copy your notices and contacts by saving the two links below before deleting your account. Be careful, this operation cannot be undone."); + + + $this->show_feeds_list(array(0=>array('href'=>common_local_url('userrss', array('limit' => $notice_count, 'nickname' => $user->nickname)), + 'type' => 'rss', + 'version' => 'RSS 1.0', + 'item' => 'notices'), + 1=>array('href'=>common_local_url('foaf',array('nickname' => $user->nickname)), + 'type' => 'rdf', + 'version' => 'FOAF', + 'item' => 'foaf'))); + + common_submit('deleteaccount', _('Delete my account')); + common_element_end('form'); + } + + function handle_post() { # CSRF protection -- cgit v1.2.3-54-g00ecf