1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/movim_ynh.git synced 2024-09-03 19:46:19 +02:00

update to movim 20150821

This commit is contained in:
src386 2015-08-21 19:04:59 +02:00
parent 50b7a1fb7d
commit 99e7095c1f
44 changed files with 47262 additions and 44537 deletions

View file

@ -5,7 +5,7 @@ Movim is a decentralized social network, written in PHP and HTML5 and based on t
Warning: BETA. Warning: BETA.
Current Movim version : 20150820. Current Movim version : 20150821.
**Changelog** **Changelog**
@ -17,6 +17,7 @@ Current Movim version : 20150820.
This change was necessary for public content (blog) This change was necessary for public content (blog)
- Add dedicated php-fpm pool for Movim - Add dedicated php-fpm pool for Movim
- Protect /log and /config properly - Protect /log and /config properly
- Update to upstream Movim 20150821
0.7b 2015-08-20 0.7b 2015-08-20
- Update to upstream Movim 20150820 to fix #5 - Update to upstream Movim 20150820 to fix #5

View file

@ -224,7 +224,12 @@ function cleanJid($jid)
*/ */
function explodeJid($jid) function explodeJid($jid)
{ {
list($jid, $resource) = explode('/', $jid); $arr = explode('/', $jid);
$jid = $arr[0];
if(isset($arr[1])) $resource = $arr[1];
else $resource = null;
list($username, $server) = explode('@', $jid); list($username, $server) = explode('@', $jid);
return array( return array(

View file

@ -261,7 +261,7 @@ class Contact extends Model {
public function setVcard4($vcard) { public function setVcard4($vcard) {
if(isset($vcard->bday->date)) if(isset($vcard->bday->date))
$this->date = (string)$vcard->bday->date; $this->date = (string)$vcard->bday->date;
if($empty($this->date)) if(empty($this->date))
$this->date = null; $this->date = null;
$this->name = (string)$vcard->nickname->text; $this->name = (string)$vcard->nickname->text;

View file

@ -1,7 +1,7 @@
#chat_header.encrypted:after{ #chat_header.encrypted:after{
content: ""; content: "";
display: inline-block; display: inline-block;
font-family: "Material Design Iconic Font"; font-family: "Material Design Iconic Font";
content: "\f041"; content: "\f041";
font-size: 2.5rem; font-size: 2.5rem;
margin-left: 1rem; margin-left: 1rem;
@ -19,7 +19,7 @@
#chat_widget .chat_box ul { #chat_widget .chat_box ul {
margin: 0 auto; margin: 0 auto;
max-width: 100rem; max-width: 100rem;
margin-left: calc(50% - 51rem); margin-left: calc(45% - 49rem);
} }
#chat_widget .chat_box form { #chat_widget .chat_box form {

View file

@ -121,6 +121,13 @@ var Chat = {
} }
} }
MovimWebsocket.attach(function() {
var jid = document.querySelector('#chat_widget').dataset.jid;
if(jid) {
Chat_ajaxGet(jid);
}
});
Upload.attach(function() { Upload.attach(function() {
var textarea = document.querySelector('#chat_textarea'); var textarea = document.querySelector('#chat_textarea');
textarea.value = Upload.get + ' ' + textarea.value; textarea.value = Upload.get + ' ' + textarea.value;

View file

@ -1,10 +1,3 @@
<div id="chat_widget"> <div id="chat_widget" {if="$jid"}data-jid="{$jid}"{/if}>
{$c->prepareEmpty()} {$c->prepareEmpty()}
{if="$jid"}
<script type="text/javascript">
MovimWebsocket.attach(function() {
Chat_ajaxGet('{$jid}');
});
</script>
{/if}
</div> </div>

View file

@ -15,6 +15,8 @@ class Chats extends WidgetBase
$this->registerEvent('carbons', 'onMessage'); $this->registerEvent('carbons', 'onMessage');
$this->registerEvent('message', 'onMessage'); $this->registerEvent('message', 'onMessage');
$this->registerEvent('presence', 'onPresence', 'chat'); $this->registerEvent('presence', 'onPresence', 'chat');
$this->registerEvent('composing', 'onComposing');
$this->registerEvent('paused', 'onPaused');
} }
function onMessage($packet) function onMessage($packet)
@ -56,6 +58,29 @@ class Chats extends WidgetBase
} }
} }
function onComposing($array)
{
$this->setState($array, $this->__('chats.composing'));
}
function onPaused($array)
{
$this->setState($array, $this->__('chats.paused'));
}
private function setState($array, $message)
{
list($from, $to) = $array;
if($from == $this->user->getLogin()) {
$jid = $to;
} else {
$jid = $from;
}
RPC::call('movim_replace', $jid.'_chat_item', $this->prepareChat($jid, $message));
RPC::call('Chats.refresh');
}
/** /**
* @brief Get history * @brief Get history
*/ */
@ -67,7 +92,7 @@ class Chats extends WidgetBase
$messages = $md->getContact(echapJid($jid), 0, 1); $messages = $md->getContact(echapJid($jid), 0, 1);
$g = new \Moxl\Xec\Action\MAM\Get; $g = new \Moxl\Xec\Action\MAM\Get;
$g->setJid($jid); $g->setJid(echapJid($jid));
if(!empty($messages)) { if(!empty($messages)) {
$g->setStart(strtotime($messages[0]->published)); $g->setStart(strtotime($messages[0]->published));
@ -156,7 +181,7 @@ class Chats extends WidgetBase
return $view->draw('_chats', true); return $view->draw('_chats', true);
} }
function prepareChat($jid) function prepareChat($jid, $status = null)
{ {
if(!$this->validateJid($jid)) return; if(!$this->validateJid($jid)) return;
@ -180,6 +205,8 @@ class Chats extends WidgetBase
$view->assign('caps', null); $view->assign('caps', null);
} }
$view->assign('status', $status);
$m = $md->getContact($jid, 0, 1); $m = $md->getContact($jid, 0, 1);
if(isset($m)) { if(isset($m)) {
$view->assign('message', $m[0]); $view->assign('message', $m[0]);

View file

@ -26,12 +26,16 @@
</span> </span>
{/if} {/if}
<span>{$contact->getTrueName()}</span> <span>{$contact->getTrueName()}</span>
{if="isset($message)"} {if="isset($status)"}
<span class="info">{$message->published|strtotime|prepareDate}</span> <p>{$status}</p>
{if="preg_match('#^\?OTR#', $message->body)"} {else}
<p><i class="zmdi zmdi-lock"></i> {$c->__('message.encrypted')}</p> {if="isset($message)"}
{else} <span class="info">{$message->published|strtotime|prepareDate}</span>
<p>{$message->body|prepareString|strip_tags}</p> {if="preg_match('#^\?OTR#', $message->body)"}
<p><i class="zmdi zmdi-lock"></i> {$c->__('message.encrypted')}</p>
{else}
<p>{$message->body|prepareString|strip_tags}</p>
{/if}
{/if} {/if}
{/if} {/if}
</li> </li>

View file

@ -4,6 +4,8 @@ empty = Open a new conversation by clicking on the plus button bello
add = Chat with a contact add = Chat with a contact
frequent = Frequent contacts frequent = Frequent contacts
more = Load more contacts more = Load more contacts
composing = Composing...
paused = Paused...
[message] [message]
encrypted = Encrypted message encrypted = Encrypted message

View file

@ -1,5 +1,5 @@
<div id="roster" ng-controller="RosterController as rosterCtrl"> <div id="roster" ng-controller="RosterController as rosterCtrl">
<ul id="rosterlist" class="{if="isset($conf) && $conf.roster == 'show'"}offlineshown{/if} active all"> <ul id="rosterlist" class="{if="isset($conf) && isset($conf.roster) && $conf.roster == 'show'"}offlineshown{/if} active all">
<div ng-if="contacts == null" class="empty placeholder icon contacts"> <div ng-if="contacts == null" class="empty placeholder icon contacts">
<h1>{$c->__('roster.no_contacts_title')}</h1> <h1>{$c->__('roster.no_contacts_title')}</h1>
<h4>{$c->__('roster.no_contacts_text')}</h4> <h4>{$c->__('roster.no_contacts_text')}</h4>

View file

@ -51,7 +51,6 @@ $stdin_behaviour = function ($data) use (&$conn, $loop, &$buffer, &$connector, &
$config = $cd->get(); $config = $cd->get();
$port = 5222; $port = 5222;
$dns = \Moxl\Utils::resolveHost($msg->host); $dns = \Moxl\Utils::resolveHost($msg->host);
if(isset($dns[0]['target']) && $dns[0]['target'] != null) $msg->host = $dns[0]['target']; if(isset($dns[0]['target']) && $dns[0]['target'] != null) $msg->host = $dns[0]['target'];
if(isset($dns[0]['port']) && $dns[0]['port'] != null) $port = $dns[0]['port']; if(isset($dns[0]['port']) && $dns[0]['port'] != null) $port = $dns[0]['port'];
@ -111,6 +110,7 @@ $xmpp_behaviour = function (React\Stream\Stream $stream) use (&$conn, $loop, &$s
} elseif($message == "<proceed xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>" } elseif($message == "<proceed xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>"
|| $message == '<proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>') { || $message == '<proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>') {
stream_set_blocking($conn->stream, 1); stream_set_blocking($conn->stream, 1);
stream_context_set_option($conn->stream, 'ssl', 'allow_self_signed', true);
$out = stream_socket_enable_crypto($conn->stream, 1, STREAM_CRYPTO_METHOD_TLS_CLIENT); $out = stream_socket_enable_crypto($conn->stream, 1, STREAM_CRYPTO_METHOD_TLS_CLIENT);
$restart = true; $restart = true;

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -25,10 +25,10 @@
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-# #. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../app/widgets/Chats/locales.ini #. extracted from ../app/widgets/Chats/locales.ini
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-# #. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../app/widgets/Config/locales.ini
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../app/widgets/ConfigData/locales.ini #. extracted from ../app/widgets/ConfigData/locales.ini
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-# #. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../app/widgets/Config/locales.ini
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../app/widgets/Contact/locales.ini #. extracted from ../app/widgets/Contact/locales.ini
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-# #. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../app/widgets/Group/locales.ini #. extracted from ../app/widgets/Group/locales.ini
@ -45,10 +45,10 @@
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-# #. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../app/widgets/Location/locales.ini #. extracted from ../app/widgets/Location/locales.ini
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-# #. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../app/widgets/Login/locales.ini
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../app/widgets/LoginAnonymous/locales.ini #. extracted from ../app/widgets/LoginAnonymous/locales.ini
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-# #. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../app/widgets/Login/locales.ini
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../app/widgets/Menu/locales.ini #. extracted from ../app/widgets/Menu/locales.ini
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-# #. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../app/widgets/NodeAffiliations/locales.ini #. extracted from ../app/widgets/NodeAffiliations/locales.ini
@ -81,17 +81,17 @@
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-# #. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../app/widgets/Vcard4/locales.ini #. extracted from ../app/widgets/Vcard4/locales.ini
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-# #. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../app/widgets/Visio/locales.ini
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../app/widgets/VisioExt/locales.ini #. extracted from ../app/widgets/VisioExt/locales.ini
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-# #. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../app/widgets/Visio/locales.ini
#. #-#-#-#-# locales.po (PACKAGE VERSION) #-#-#-#-#
#. extracted from ../locales/locales.ini #. extracted from ../locales/locales.ini
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-16 15:40+0200\n" "POT-Creation-Date: 2015-08-20 15:17+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -584,11 +584,11 @@ msgstr ""
msgid "Encrypted message" msgid "Encrypted message"
msgstr "" msgstr ""
#: [message]composing #: [message]composing [chats]composing
msgid "Composing..." msgid "Composing..."
msgstr "" msgstr ""
#: [message]paused #: [message]paused [chats]paused
msgid "Paused..." msgid "Paused..."
msgstr "" msgstr ""
@ -666,6 +666,26 @@ msgstr ""
msgid "Load more contacts" msgid "Load more contacts"
msgstr "" msgstr ""
#: [title]data
msgid "Data"
msgstr ""
#: [title]cache
msgid "Cache"
msgstr ""
#: [title]contacts [menu]contacts [page]contacts
msgid "Contacts"
msgstr ""
#: [title]posts [page]posts
msgid "Posts"
msgstr ""
#: [title]messages
msgid "Messages"
msgstr ""
#: [config]general #: [config]general
msgid "General" msgid "General"
msgstr "" msgstr ""
@ -702,26 +722,6 @@ msgstr ""
msgid "Use desktop notifications" msgid "Use desktop notifications"
msgstr "" msgstr ""
#: [title]data
msgid "Data"
msgstr ""
#: [title]cache
msgid "Cache"
msgstr ""
#: [title]contacts [menu]contacts [page]contacts
msgid "Contacts"
msgstr ""
#: [title]posts [page]posts
msgid "Posts"
msgstr ""
#: [title]messages
msgid "Messages"
msgstr ""
#: [general]legend [general]general_title #: [general]legend [general]general_title
msgid "General Informations" msgid "General Informations"
msgstr "" msgstr ""
@ -957,7 +957,7 @@ msgstr ""
#: [group]help_info2 #: [group]help_info2
msgid "" msgid ""
"Choose a server and a Group and subscribe to it using the %s button in the " "Choose a server and a Group and subscribe to it using the %s button in the "
"header. You can alse create a new one using the %s button." "header. You can also create a new one using the %s button."
msgstr "" msgstr ""
#: [group]help_info3 #: [group]help_info3
@ -1181,6 +1181,10 @@ msgstr ""
msgid "Update my position" msgid "Update my position"
msgstr "" msgstr ""
#: [login_anonymous]bad_username
msgid "Bad nickname (between 4 and 40 characters)"
msgstr ""
#: [error]username #: [error]username
msgid "Wrong username" msgid "Wrong username"
msgstr "" msgstr ""
@ -1309,10 +1313,6 @@ msgstr ""
msgid "Population" msgid "Population"
msgstr "" msgstr ""
#: [login_anonymous]bad_username
msgid "Bad nickname (between 4 and 40 characters)"
msgstr ""
#: [menu]empty_title #: [menu]empty_title
msgid "No news yet..." msgid "No news yet..."
msgstr "" msgstr ""
@ -1784,18 +1784,6 @@ msgstr ""
msgid "Reset" msgid "Reset"
msgstr "" msgstr ""
#: [visio]call
msgid "Call"
msgstr ""
#: [visio]hang_up
msgid "Hang up"
msgstr ""
#: [visio]connection
msgid "Connection"
msgstr ""
#: [visio]hung_up #: [visio]hung_up
msgid "Hung up" msgid "Hung up"
msgstr "" msgstr ""
@ -1812,6 +1800,18 @@ msgstr ""
msgid "Is calling you" msgid "Is calling you"
msgstr "" msgstr ""
#: [visio]call
msgid "Call"
msgstr ""
#: [visio]hang_up
msgid "Hang up"
msgstr ""
#: [visio]connection
msgid "Connection"
msgstr ""
#: [global]no_js #: [global]no_js
msgid "You don't have javascript enabled. Good luck with that." msgid "You don't have javascript enabled. Good luck with that."
msgstr "" msgstr ""

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -431,7 +431,7 @@ function getMood() {
'envious' => __('mood.envious'), // Feeling pain by the excellence or good fortune of another. 'envious' => __('mood.envious'), // Feeling pain by the excellence or good fortune of another.
'excited' => __('mood.excited'), // Having great enthusiasm. 'excited' => __('mood.excited'), // Having great enthusiasm.
'flirtatious' => __('mood.flirtatious'), // In the mood for flirting. 'flirtatious' => __('mood.flirtatious'), // In the mood for flirting.
'frustated' => __('mood.frustrated'), // Suffering from frustration; dissatisfied, agitated, or discontented because one is unable to perform an action or fulfill a desire. 'frustrated' => __('mood.frustrated'), // Suffering from frustration; dissatisfied, agitated, or discontented because one is unable to perform an action or fulfill a desire.
'grateful' => __('mood.grateful'), // Feeling appreciation or thanks. 'grateful' => __('mood.grateful'), // Feeling appreciation or thanks.
'grieving' => __('mood.grieving'), // Feeling very sad about something, especially something lost; mournful; sorrowful. 'grieving' => __('mood.grieving'), // Feeling very sad about something, especially something lost; mournful; sorrowful.
'grumpy' => __('mood.grumpy'), // Unhappy and irritable. 'grumpy' => __('mood.grumpy'), // Unhappy and irritable.

View file

@ -339,7 +339,7 @@ header.big ~ .button.action {
@media screen and (min-width: 1025px) { @media screen and (min-width: 1025px) {
main > section > div:first-child:nth-last-child(2) .button.action { main > section > div:first-child:nth-last-child(2) .button.action {
right: calc(70% + 3rem); right: calc(65% + 3rem);
} }
} }

View file

@ -180,7 +180,7 @@ body > nav li { /* Little hack for the navbar */
} }
} }
@media screen and (min-width: 1024px) { @media screen and (min-width: 1024px) and (max-width: 1680px) {
body > nav:hover { body > nav:hover {
width: 45rem; width: 45rem;
box-shadow: 0 2.5rem 5rem rgba(0,0,0,0.30), 0 2rem 1.5rem rgba(0,0,0,0.22); box-shadow: 0 2.5rem 5rem rgba(0,0,0,0.30), 0 2rem 1.5rem rgba(0,0,0,0.22);
@ -203,14 +203,12 @@ body > nav li { /* Little hack for the navbar */
@media screen and (min-width: 1680px) { @media screen and (min-width: 1680px) {
body > nav, body > nav,
body > nav:hover { body > nav:hover {
width: 32rem; width: 15%;
box-shadow: none;
} }
body > nav + main, body > nav + main,
body > nav:hover + main { body > nav:hover + main {
opacity: 1; width: 85%;
width: calc(100% - 32rem);
} }
} }
@ -248,7 +246,7 @@ main > header {
main > header > div { main > header > div {
padding-left: 9rem; padding-left: 9rem;
position: relative; position: relative;
width: 30%; width: 35%;
display: inline-block; display: inline-block;
/*overflow: hidden;*/ /*overflow: hidden;*/
box-sizing: border-box; box-sizing: border-box;
@ -289,7 +287,7 @@ main > header > div > ul.active:not(.context_menu) li.thin span.icon {
} }
main > header > div:first-child:nth-last-child(2) ~ div { main > header > div:first-child:nth-last-child(2) ~ div {
width: 70%; width: 65%;
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;
@ -384,10 +382,10 @@ main > section > div > * {
/* Two blocks*/ /* Two blocks*/
main > section > div:first-child:nth-last-child(2) { main > section > div:first-child:nth-last-child(2) {
width: 30%; width: 35%;
} }
main > section > div:first-child:nth-last-child(2) ~ div { main > section > div:first-child:nth-last-child(2) ~ div {
width: 70%; width: 65%;
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;