summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSarven Capadisli <csarven@status.net>2009-10-31 16:14:38 +0100
committerSarven Capadisli <csarven@status.net>2009-10-31 16:14:38 +0100
commitf9bb95174b93de4ce28167eea21535a01394f71f (patch)
treea3c30607fe345c6c0ff9bfc5095cc16e9b67f7cd
parenta2302e5b76b827f906c5ded028e7c120c6200b76 (diff)
Added XHR for direct messages.
-rw-r--r--actions/newmessage.php17
-rw-r--r--js/util.js28
-rw-r--r--theme/base/css/display.css34
3 files changed, 78 insertions, 1 deletions
diff --git a/actions/newmessage.php b/actions/newmessage.php
index eac4ab210..37fca1ca2 100644
--- a/actions/newmessage.php
+++ b/actions/newmessage.php
@@ -223,7 +223,22 @@ class NewmessageAction extends Action
}
$this->msg = $msg;
- $this->showPage();
+ if ($this->trimmed('ajax')) {
+ $this->startHTML('text/xml;charset=UTF-8');
+ $this->elementStart('head');
+ $this->element('title', null, _('New message'));
+ $this->elementEnd('head');
+ $this->elementStart('body');
+ if (common_logged_in()) {
+ $this->showNoticeForm();
+ }
+ $this->elementEnd('div');
+ $this->elementEnd('body');
+ $this->endHTML();
+ }
+ else {
+ $this->showPage();
+ }
}
function showPageNotice()
diff --git a/js/util.js b/js/util.js
index 11b06298d..c7a3e8f88 100644
--- a/js/util.js
+++ b/js/util.js
@@ -57,6 +57,8 @@ $(document).ready(function(){
SN.U.NoticeReply();
SN.U.NoticeDataAttach();
+
+ SN.U.NewDirectMessage();
}
SN.U.NoticeAttachments();
@@ -350,6 +352,32 @@ var SN = { // StatusNet
NDA.val('');
});
});
+ },
+
+ NewDirectMessage: function() {
+ NDM = $('.entity_send-a-message a');
+ NDM.attr({'href':NDM.attr('href')+'&ajax=1'});
+ NDM.click(function() {
+ var NDMF = $('.entity_send-a-message form');
+ if (NDMF.length == 0) {
+ $.get(NDM.attr('href'), null, function(data) {
+ $('.entity_send-a-message').append(document._importNode($('form', data).get(0), true));
+ $('.entity_send-a-message textarea').focus();
+
+ NDMF = $('.entity_send-a-message form');
+ NDMF.append('<button>&#215;</button>');
+ $('.entity_send-a-message button').click(function(){
+ NDMF.hide();
+ return false;
+ });
+ });
+ }
+ else {
+ NDMF.show();
+ $('.entity_send-a-message textarea').focus();
+ }
+ return false;
+ });
}
}
}
diff --git a/theme/base/css/display.css b/theme/base/css/display.css
index c8aafe489..db6b08e63 100644
--- a/theme/base/css/display.css
+++ b/theme/base/css/display.css
@@ -670,6 +670,40 @@ border-radius:4px;
margin-bottom:18px;
}
+
+.entity_send-a-message button {
+position:absolute;
+top:0;
+right:0;
+}
+
+.entity_send-a-message #form_notice {
+position:absolute;
+top:34px;
+right:-1px;
+padding:1.795%;
+width:65%;
+z-index:1;
+
+background-color:#FFFFFF;
+border:1px solid #CCCCCC;
+-moz-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7);
+-moz-border-radius:7px;
+}
+.entity_send-a-message #form_notice legend {
+display:block;
+margin-bottom:11px;
+}
+
+.entity_send-a-message #form_notice label,
+.entity_send-a-message #form_notice select {
+display:none;
+}
+.entity_send-a-message input.submit {
+text-align:center;
+}
+
+
.entity_tags ul {
list-style-type:none;
display:inline;