if ($cur) {
if ($cur->id != $profile->id) {
if ($cur->isSubscribed($profile)) {
- $this->show_unsubscribe_form($profile);
+ common_unsubscribe_form($profile);
} else {
- $this->show_subscribe_form($profile);
+ common_subscribe_form($profile);
}
}
} else {
common_element_end('li');
$user = User::staticGet('id', $profile->id);
-
- if ($cur && $cur->id != $user->id && $cur->mutuallySubscribed($user)) {
- common_element_start('li', array('id' => 'profile_send_a_new_message'));
- common_element('a', array('href' => common_local_url('newmessage', array('to' => $user->id))),
- _('Send a message'));
- common_element_end('li');
- if ($user->email && $user->emailnotifynudge) {
- common_element_start('li', array('id' => 'profile_nudge'));
- common_nudge_form($user);
- common_element_end('li');
- }
- }
- common_element_end('ul');
+ common_profile_new_message_nudge($cur, $user, $profile);
+
+ common_element_end('ul');
common_element_end('div');
common_element_end('div');
}
- function show_subscribe_form($profile) {
- common_element_start('form', array('id' => 'subscribe', 'method' => 'post',
- 'action' => common_local_url('subscribe')));
- common_hidden('token', common_session_token());
- common_element('input', array('id' => 'subscribeto',
- 'name' => 'subscribeto',
- 'type' => 'hidden',
- 'value' => $profile->nickname));
- common_element('input', array('type' => 'submit',
- 'class' => 'submit',
- 'value' => _('Subscribe')));
- common_element_end('form');
- }
-
function show_remote_subscribe_link($profile) {
$url = common_local_url('remotesubscribe',
array('nickname' => $profile->nickname));
return;
}
+ $cur = common_current_user();
+ $profile = Profile::staticGet('nickname', $other_nickname);
if ($this->boolean('ajax')) {
common_start_html('text/xml');
common_element_start('head');
common_element('title', null, _('Subscribed'));
common_element_end('head');
common_element_start('body');
- common_subscribe_response();
+ common_unsubscribe_form($profile);
+ common_profile_new_message_nudge($cur, $profile);
common_element_end('body');
common_element_end('html');
} else {
return;
}
+ $profile = Profile::staticGet('nickname', $other_nickname);
+
if ($this->boolean('ajax')) {
common_start_html('text/xml');
common_element_start('head');
common_element('title', null, _('Unsubscribed'));
common_element_end('head');
common_element_start('body');
- common_unsubscribe_response();
+ common_subscribe_form($profile);
common_element_end('body');
common_element_end('html');
} else {
success: function(xml) { $("#nudge").replaceWith(document._importNode($("#nudge_response", xml).get(0),true)); }
});
$("#nudge").each(addAjaxHidden);
- $("#nudge .submit").bind('click', function(e) { $(this).addClass("processing"); });
+ $("#nudge .submit").bind('click', function(e) { $(this).addClass("processing"); });
+
+
+ var Subscribe = { dataType: 'xml',
+ success: function(xml) { var form_unsubscribe = document._importNode($('form', xml).get(0), true);
+ var form_unsubscribe_id = form_unsubscribe.id;
+ var form_subscribe_id = form_unsubscribe_id.replace('unsubscribe', 'subscribe');
+ $("form#"+form_subscribe_id).replaceWith(form_unsubscribe);
+ $("form#"+form_unsubscribe_id).ajaxForm(UnSubscribe).each(addAjaxHidden);
+ $("#profile_actions").append(document._importNode($('#profile_send_a_new_message', xml).get(0), true));
+ $("#profile_actions").append(document._importNode($('#profile_nudge', xml).get(0), true));
+ }
+ };
+
+ var UnSubscribe = { dataType: 'xml',
+ success: function(xml) { var form_subscribe = document._importNode($('form', xml).get(0), true);
+ var form_subscribe_id = form_subscribe.id;
+ var form_unsubscribe_id = form_subscribe_id.replace('subscribe', 'unsubscribe');
+ $("form#"+form_unsubscribe_id).replaceWith(form_subscribe);
+ $("form#"+form_subscribe_id).ajaxForm(Subscribe).each(addAjaxHidden);
+ $("#profile_send_a_new_message").remove();
+ $("#profile_nudge").remove();
+ }
+ };
+
+ $("form.subscribe").ajaxForm(Subscribe);
+ $("form.unsubscribe").ajaxForm(UnSubscribe);
+ $("form.subscribe").each(addAjaxHidden);
+ $("form.unsubscribe").each(addAjaxHidden);
});
function doreply(nick,id) {
'value' => _('Send a nudge')));
common_element_end('form');
}
+function common_nudge_response() {
+ common_element('p', array('id' => 'nudge_response'), _('Nudge sent!'));
+}
function common_subscribe_form($profile) {
common_element_start('form', array('id' => 'subscribe-' . $profile->nickname,
common_element_end('form');
}
-function common_nudge_response() {
- common_element('p', array('id' => 'nudge_response'), _('Nudge sent!'));
+// XXX: Refactor this code
+function common_profile_new_message_nudge ($cur, $profile) {
+ $user = User::staticGet('id', $profile->id);
+
+ if ($cur && $cur->id != $user->id && $cur->mutuallySubscribed($user)) {
+ common_element_start('li', array('id' => 'profile_send_a_new_message'));
+ common_element('a', array('href' => common_local_url('newmessage', array('to' => $user->id))),
+ _('Send a message'));
+ common_element_end('li');
+
+ if ($user->email && $user->emailnotifynudge) {
+ common_element_start('li', array('id' => 'profile_nudge'));
+ common_nudge_form($user);
+ common_element_end('li');
+ }
+ }
}
function common_cache_key($extra) {
text-align: right;
}
/* ----- Subscribe Form ----- */
-#subscribe .submit, #unsubscribe .submit, #remotesubscribe .button, #remotesubscribe {
+#content .subscribe .submit, #content .unsubscribe .submit, #remotesubscribe .button, #remotesubscribe {
clear: left;
margin: 0;
width: 96px;
padding: 5px 0 0 0;
text-align: center;
}
-#subscribe .button:hover, #unsubscribe .button:hover {
+#content .subscribe .button:hover, #content .unsubscribe .button:hover {
background-color: #904632;
cursor: pointer;
}
background-color: #904632;
}
-#subscribe .submit, #unsubscribe .submit, #remotesubscribe .button, #remotesubscribe {
+#content .subscribe .submit, #content .unsubscribe .submit, #remotesubscribe .button, #remotesubscribe {
background-color: #c15d42;
color: #fcfff5;
}