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 0.9 git2015-12-21

This commit is contained in:
Xavier ROOT 2015-12-21 22:59:03 +01:00
parent d1b0b015ec
commit e45e1174dd
108 changed files with 2235 additions and 1577 deletions

View file

@ -57,13 +57,32 @@ var MovimTpl = {
init : function() { init : function() {
if(document.getElementById('back') != null) if(document.getElementById('back') != null)
document.getElementById('back').style.display = 'none'; document.getElementById('back').style.display = 'none';
MovimTpl.scrollHeaders();
},
scrollHeaders : function() {
var headers = document.querySelectorAll('main > section > div > header');
for(var i = 0, len = headers.length; i < len; ++i ) {
var header = headers[i];
header.parentNode.onscroll = function() {
var header = this.querySelector('header');
if(this.scrollTop == 0) {
movim_remove_class(header, 'scroll');
} else {
movim_add_class(header, 'scroll');
}
}
}
}, },
showPanel : function() { showPanel : function() {
movim_add_class('main section > div:first-child:nth-last-child(2) ~ div', 'enabled'); movim_add_class('main section > div:first-child:nth-last-child(2) ~ div', 'enabled');
MovimTpl.scrollPanelTop(); MovimTpl.scrollPanelTop();
//MovimTpl.scrollHeaders();
}, },
hidePanel : function() { hidePanel : function() {
Header_ajaxReset(CURRENT_PAGE); //Header_ajaxReset(CURRENT_PAGE);
var selector = 'main section > div:first-child:nth-last-child(2) ~ div'; var selector = 'main section > div:first-child:nth-last-child(2) ~ div';
var inner = document.querySelector(selector + ' div'); var inner = document.querySelector(selector + ' div');

View file

@ -174,7 +174,7 @@ var MovimWebsocket = {
} }
// generate the interval to a random number between 0 and the maxInterval determined from above // generate the interval to a random number between 0 and the maxInterval determined from above
return Math.random() * maxInterval; return Math.random() * maxInterval;
} }
} }

View file

@ -82,7 +82,7 @@ function addHFR($string) {
$num = ''; $num = '';
if(count($match) == 3) if(count($match) == 3)
$num = $match[2].'/'; $num = $match[2].'/';
return '<img class="hfr" title="'.$match[0].'" alt="'.$match[0].'" src="http://forum-images.hardware.fr/images/perso/'.$num.$match[1].'.gif">'; return '<img class="hfr" title="'.$match[0].'" alt="'.$match[0].'" src="http://forum-images.hardware.fr/images/perso/'.$num.$match[1].'.gif"/>';
}, $string }, $string
); );
} }
@ -335,7 +335,7 @@ function stripTags($string)
function purifyHTML($string) function purifyHTML($string)
{ {
$config = \HTMLPurifier_Config::createDefault(); $config = \HTMLPurifier_Config::createDefault();
$config->set('HTML.Doctype', 'HTML 4.01 Transitional'); $config->set('HTML.Doctype', 'XHTML 1.1');
$config->set('Cache.SerializerPath', '/tmp'); $config->set('Cache.SerializerPath', '/tmp');
$config->set('HTML.DefinitionID', 'html5-definitions'); $config->set('HTML.DefinitionID', 'html5-definitions');
$config->set('HTML.DefinitionRev', 1); $config->set('HTML.DefinitionRev', 1);

View file

@ -221,7 +221,7 @@ class Postn extends Model {
} }
private function typeIsPicture($type) { private function typeIsPicture($type) {
return in_array($type, array('image/jpeg', 'image/png', 'image/jpg')); return in_array($type, array('image/jpeg', 'image/png', 'image/jpg', 'image/gif'));
} }
private function typeIsLink($type) { private function typeIsLink($type) {

View file

@ -1,6 +1,6 @@
<nav class="color dark"> <nav class="color dark">
<?php $this->widget('Navigation');?>
<?php $this->widget('Presence');?> <?php $this->widget('Presence');?>
<?php $this->widget('Navigation');?>
</nav> </nav>
<main> <main>

View file

@ -1,6 +1,6 @@
<nav class="color dark"> <nav class="color dark">
<?php $this->widget('Navigation');?>
<?php $this->widget('Presence');?> <?php $this->widget('Presence');?>
<?php $this->widget('Navigation');?>
</nav> </nav>
<main> <main>

View file

@ -1,16 +1,16 @@
<nav class="color dark"> <nav class="color dark">
<?php $this->widget('Navigation');?>
<?php $this->widget('Presence');?> <?php $this->widget('Presence');?>
<?php $this->widget('Navigation');?>
</nav> </nav>
<main> <main>
<?php $this->widget('Header'); ?> <?php //$this->widget('Header'); ?>
<section> <section>
<div> <div style="background-color: #EEE;">
<?php $this->widget('Notifs');?> <?php $this->widget('Notifs');?>
<?php $this->widget('Roster');?> <?php $this->widget('Roster');?>
</div> </div>
<div id="contact_widget" class="card shadow"> <div id="contact_widget">
<?php $this->widget('Contact');?> <?php $this->widget('Contact');?>
</div> </div>
</section> </section>

View file

@ -1,8 +1,8 @@
<?php $this->widget('Upload'); ?> <?php $this->widget('Upload'); ?>
<nav class="color dark"> <nav class="color dark">
<?php $this->widget('Navigation');?>
<?php $this->widget('Presence');?> <?php $this->widget('Presence');?>
<?php $this->widget('Navigation');?>
</nav> </nav>
<main> <main>

View file

@ -1,6 +1,6 @@
<nav class="color dark"> <nav class="color dark">
<?php $this->widget('Navigation');?>
<?php $this->widget('Presence');?> <?php $this->widget('Presence');?>
<?php $this->widget('Navigation');?>
</nav> </nav>
<main> <main>

View file

@ -1,6 +1,6 @@
<?php $this->widget('Presence'); ?> <?php $this->widget('Presence'); ?>
<main> <main>
<?php $this->widget('Header');?> <?php //$this->widget('Header');?>
<section> <section>
<div> <div>
<?php $this->widget('Login'); ?> <?php $this->widget('Login'); ?>

View file

@ -1,10 +1,10 @@
<nav class="color dark"> <nav class="color dark">
<?php $this->widget('Navigation');?>
<?php $this->widget('Presence');?> <?php $this->widget('Presence');?>
<?php $this->widget('Navigation');?>
</nav> </nav>
<main> <main>
<?php $this->widget('Header');?> <?php //$this->widget('Header');?>
<section> <section>
<?php $this->widget('Hello');?> <?php $this->widget('Hello');?>
</section> </section>

View file

@ -2,12 +2,12 @@
<?php $this->widget('Upload');?> <?php $this->widget('Upload');?>
<nav class="color dark"> <nav class="color dark">
<?php $this->widget('Navigation');?>
<?php $this->widget('Presence');?> <?php $this->widget('Presence');?>
<?php $this->widget('Navigation');?>
</nav> </nav>
<main> <main>
<?php $this->widget('Header');?> <?php //$this->widget('Header');?>
<section> <section>
<?php $this->widget('Menu');?> <?php $this->widget('Menu');?>
<?php $this->widget('Post');?> <?php $this->widget('Post');?>

View file

@ -19,7 +19,9 @@
<?php <?php
$this->addCss('style.css'); $this->addCss('style.css');
$this->addCss('list.css'); $this->addCss('header.css');
//$this->addCss('list.css');
$this->addCss('listn.css');
$this->addCss('grid.css'); $this->addCss('grid.css');
$this->addCss('article.css'); $this->addCss('article.css');
$this->addCss('form.css'); $this->addCss('form.css');

View file

@ -1,31 +1,37 @@
<div class="tabelem" title="{$c->__('page.about')}" id="about"> <div class="tabelem" title="{$c->__('page.about')}" id="about">
<h2 class="padded_top_bottom">Movim {$version} - {$c->__('page.about')} </h2> <h2 class="padded_top_bottom">Movim {$version} - {$c->__('page.about')} </h2>
<ul class="thick divided"> <ul class="list thick divided">
<li class="condensed"> <li>
<span class="icon bubble color green"><i class="zmdi zmdi-info"></i></span> <span class="primary icon bubble color green"><i class="zmdi zmdi-info"></i></span>
<p>{$c->__('page.about')}</p>
<p class="all">{$c->__('about.info')} <a href="http://www.gnu.org/licenses/agpl-3.0.html">GNU Affero General Public License v3</a>.</p> <p class="all">{$c->__('about.info')} <a href="http://www.gnu.org/licenses/agpl-3.0.html">GNU Affero General Public License v3</a>.</p>
</li> </li>
<li class="subheader">{$c->__('about.thanks')}</li> <li class="subheader">
<li class="condensed"> <p>{$c->__('about.thanks')}</p>
<span class="icon bubble color red"><i class="zmdi zmdi-code"></i></span> </li>
<span>{$c->__('about.developers')}</span> <li>
<span class="primary icon bubble color red"><i class="zmdi zmdi-code"></i></span>
<p>{$c->__('about.developers')}</p>
<p class="all"> <p class="all">
<a href="http://edhelas.movim.eu/">Jaussoin Timothée aka edhelas</a><br/> <a href="http://edhelas.movim.eu/">Jaussoin Timothée aka edhelas</a><br/>
<a href="https://launchpad.net/~nodpounod">Ho Christine aka nodpounod</a><br/> <a href="https://launchpad.net/~nodpounod">Ho Christine aka nodpounod</a><br/>
<a href="https://etenil.net/">Pasquet Guillaume aka Etenil</a> <a href="https://etenil.net/">Pasquet Guillaume aka Etenil</a>
</p> </p>
</li> </li>
<li class="condensed"> <li>
<span class="icon bubble color purple"><i class="zmdi zmdi-flag"></i></span> <span class="primary icon bubble color purple"><i class="zmdi zmdi-flag"></i></span>
<span>{$c->__('about.translators')}</span> <p>{$c->__('about.translators')}</p>
<p> <p>
{$c->__('about.translators_text')} <a href="https://www.transifex.com/projects/p/movim/">www.transifex.com/projects/p/movim/</a> {$c->__('about.translators_text')} <a href="https://www.transifex.com/projects/p/movim/">www.transifex.com/projects/p/movim/</a>
</p> </p>
</li> </li>
<li class="subheader">{$c->__('about.software')}</li> <li class="subheader">
<li class="condensed"> <p>{$c->__('about.software')}</p>
<span class="icon bubble color orange"><i class="zmdi zmdi-archive"></i></span> </li>
<li>
<span class="primary icon bubble color orange"><i class="zmdi zmdi-archive"></i></span>
<p>{$c->__('about.software')}</p>
<p class="all"> <p class="all">
Modl - Movim DB Layer - <a href="https://github.com/edhelas/modl">GitHub Modl</a> under AGPLv3<br/> Modl - Movim DB Layer - <a href="https://github.com/edhelas/modl">GitHub Modl</a> under AGPLv3<br/>
Moxl - Movim XMPP Library - <a href="https://github.com/edhelas/moxl">GitHub Moxl</a> under AGPLv3<br/> Moxl - Movim XMPP Library - <a href="https://github.com/edhelas/moxl">GitHub Moxl</a> under AGPLv3<br/>
@ -39,17 +45,17 @@
WebSocket and Daemon engine - ReactPHP - <a href="http://socketo.me/">socketo.me</a> ©Chris Boden<br/> WebSocket and Daemon engine - ReactPHP - <a href="http://socketo.me/">socketo.me</a> ©Chris Boden<br/>
</p> </p>
</li> </li>
<li class="condensed"> <li>
<span class="icon bubble color brown"><i class="zmdi zmdi-mood"></i></span> <span class="primary icon bubble color brown"><i class="zmdi zmdi-mood"></i></span>
<span>{$c->__('about.resources')}</span> <p>{$c->__('about.resources')}</p>
<p class="all"> <p class="all">
Material Design Iconic Font <a href="http://zavoloklom.github.io/material-design-iconic-font/icons.html">by Google and Sergey Kupletsky</a> under SIL OFL 1.1<br/> Material Design Iconic Font <a href="http://zavoloklom.github.io/material-design-iconic-font/icons.html">by Google and Sergey Kupletsky</a> under SIL OFL 1.1<br/>
Twemoji <a href="http://twitter.github.io/twemoji/">by Twitter</a> under MIT and CC-BY<br/> Twemoji <a href="http://twitter.github.io/twemoji/">by Twitter</a> under MIT and CC-BY<br/>
</p> </p>
</li> </li>
<li class="condensed"> <li>
<span class="icon bubble color indigo"><i class="zmdi zmdi-import-export"></i></span> <span class="primary icon bubble color indigo"><i class="zmdi zmdi-import-export"></i></span>
<span>{$c->__('about.api')}</span> <p>{$c->__('about.api')}</p>
<p class="all"> <p class="all">
OpenStreetMap - Nominatim <a href="http://nominatim.openstreetmap.org/">nominatim.openstreetmap.org</a><br/> OpenStreetMap - Nominatim <a href="http://nominatim.openstreetmap.org/">nominatim.openstreetmap.org</a><br/>
Last.fm API - <a href="http://www.last.fm/api">www.last.fm/api</a><br/> Last.fm API - <a href="http://www.last.fm/api">www.last.fm/api</a><br/>

View file

@ -1,25 +1,29 @@
<div class="tabelem" title="{$c->__('account.title')}" id="account_widget"> <div class="tabelem" title="{$c->__('account.title')}" id="account_widget">
{if="isset($gateway)"} {if="isset($gateway)"}
<ul class="active middle divided"> <ul class="list active middle divided">
<li class="subheader">{$c->__('account.gateway_title')}</li> <li class="subheader">
<p>{$c->__('account.gateway_title')}</p>
</li>
{loop="$gateway"} {loop="$gateway"}
<li class="condensed action" onclick="Account_ajaxGetRegistration('{$value->node}')"> <li onclick="Account_ajaxGetRegistration('{$value->node}')">
<div class="action"> <span class="primary icon">
<i class="zmdi zmdi-chevron-right"></i>
</div>
<span class="icon">
<i class="zmdi zmdi-swap"></i> <i class="zmdi zmdi-swap"></i>
</span> </span>
<span>{$value->name}</span> <span class="control icon gray">
<i class="zmdi zmdi-chevron-right"></i>
</span>
<p>{$value->name}</p>
<p>{$value->node}</p> <p>{$value->node}</p>
</li> </li>
{/loop} {/loop}
</ul> </ul>
{/if} {/if}
<ul class="middle active divided "> <ul class="list middle active divided ">
<li class="subheader">{$c->__('account.password_change_title')}</li> <li class="subheader">
<p>{$c->__('account.password_change_title')}</p>
</li>
<li> <li>
<span class="icon gray"> <span class="primary icon gray">
<i class="zmdi zmdi-key"></i> <i class="zmdi zmdi-key"></i>
</span> </span>
<form name="password" class=""> <form name="password" class="">
@ -38,15 +42,17 @@
</a> </a>
</form> </form>
</li> </li>
<li class="subheader">{$c->__('account.delete_title')}</li> <li class="subheader">
<li class="action" onclick="Account_ajaxRemoveAccount()"> <p>{$c->__('account.delete_title')}</p>
<span class="icon red"> </li>
<li onclick="Account_ajaxRemoveAccount()">
<span class="primary icon red">
<i class="zmdi zmdi-delete"></i> <i class="zmdi zmdi-delete"></i>
</span> </span>
<div class="action"> <span class="control icon gray">
<i class="zmdi zmdi-chevron-right"></i> <i class="zmdi zmdi-chevron-right"></i>
</div> </span>
<span>{$c->__('account.delete')}</span> <p class="normal">{$c->__('account.delete')}</p>
</li> </li>
</ul> </ul>
</div> </div>

View file

@ -1,14 +1,16 @@
<ul class="divided active spaced"> <ul class="list middle divided active spaced">
<li class="subheader">{$c->__('adhoc.title')}</li> <li class="subheader">
<p>{$c->__('adhoc.title')}</p>
</li>
{loop="$list"} {loop="$list"}
<li class="action" data-node="{$value->attributes()->node}" data-jid="{$value->attributes()->jid}"> <li data-node="{$value->attributes()->node}" data-jid="{$value->attributes()->jid}">
<span class="icon gray"> <span class="primary icon gray">
<i class="zmdi {$c->getIcon((string)$value->attributes()->node)}"></i> <i class="zmdi {$c->getIcon((string)$value->attributes()->node)}"></i>
</span> </span>
<div class="action"> <span class="control icon gray">
<i class="zmdi zmdi-chevron-right"></i> <i class="zmdi zmdi-chevron-right"></i>
</div> </span>
<span>{$value->attributes()->name}</span> <p class="normal">{$value->attributes()->name}</p>
</li> </li>
{/loop} {/loop}
</ul> </ul>

View file

@ -1,45 +1,47 @@
<div id="admindb" class="tabelem" title="{$c->__('db.legend')}"> <div id="admindb" class="tabelem" title="{$c->__('db.legend')}">
<ul class="flex large"> <ul class="list flex large">
<li class="subheader">{$c->__('db.legend')}</li> <li class="subheader">
<p>{$c->__('db.legend')}</p>
</li>
{if="!$connected"} {if="!$connected"}
<li class="block large condensed"> <li class="block large">
<span class="icon bubble color red"> <span class="primary icon bubble color red">
<i class="zmdi zmdi-code-setting"></i> <i class="zmdi zmdi-code-setting"></i>
</span> </span>
<span>{$c->__('db.connect_error')}</span> <p>{$c->__('db.connect_error')}</p>
<p>{$errors}</p> <p>{$errors}</p>
</li> </li>
{else} {else}
<li class="block large"> <li class="block large">
<span class="icon bubble color green"> <span class="primary icon bubble color green">
<i class="zmdi zmdi-code-setting"></i> <i class="zmdi zmdi-code-setting"></i>
</span> </span>
<span>{$c->__('db.connect_success')}</span> <p class="normal">{$c->__('db.connect_success')}</p>
</li> </li>
{if="null !== $infos"} {if="null !== $infos"}
<li class="block large condensed action"> <li class="block large">
<div class="action"> <span class="primary icon bubble color orange">
<a class="button" onclick="{$db_update}"> {$c->__('button.update')}</a>
</div>
<span class="icon bubble color orange">
<i class="zmdi zmdi-refresh"></i> <i class="zmdi zmdi-refresh"></i>
</span> </span>
<span>{$c->__('db.update')}</span> <span class="control">
<a class="button" onclick="{$db_update}"> {$c->__('button.update')}</a>
</span>
<p>{$c->__('db.update')}</p>
{loop="$infos"} {loop="$infos"}
<p>{$value}</p> <p>{$value}</p>
{/loop} {/loop}
</li> </li>
{else} {else}
<li class="block large"> <li class="block large">
<span class="icon bubble color green"> <span class="primary icon bubble color green">
<i class="zmdi zmdi-refresh"></i> <i class="zmdi zmdi-refresh"></i>
</span> </span>
<span>{$c->__('db.up_to_date')}</span> <p class="normal">{$c->__('db.up_to_date')}</p>
</li> </li>
{/if} {/if}
{/if} {/if}
</ul> </ul>
<form class="flex padded_top_bottom"> <form class="flex padded_top_bottom">
<div class="block"> <div class="block">

View file

@ -1,5 +1,5 @@
<div> <div>
<ul class="simple thick"> <ul class="list thick">
<li> <li>
<form method="post"> <form method="post">
<div> <div>
@ -10,11 +10,11 @@
<input type="password" name="password" class="content" placeholder="{$c->__('input.password')}"> <input type="password" name="password" class="content" placeholder="{$c->__('input.password')}">
<label for="password">{$c->__('input.password')}</label> <label for="password">{$c->__('input.password')}</label>
</div> </div>
<input <input
class="button oppose color" class="button oppose color"
type="submit" type="submit"
name="submit" name="submit"
value="{$c->__('button.validate')}" /> value="{$c->__('button.validate')}" />
</form> </form>
</li> </li>

View file

@ -68,9 +68,9 @@
<label for="xmppwhitelist">{$c->__('whitelist.label')}</label> <label for="xmppwhitelist">{$c->__('whitelist.label')}</label>
</div> </div>
<ul class="thick"> <ul class="list thick">
<li class="condensed"> <li>
<span class="icon bubble color blue"> <span class="primary icon bubble color blue">
<i class="zmdi zmdi-info"></i> <i class="zmdi zmdi-info"></i>
</span> </span>
<p>{$c->__('whitelist.info1')}</p> <p>{$c->__('whitelist.info1')}</p>
@ -92,12 +92,12 @@
<label for="info">{$c->__('information.label')}</label> <label for="info">{$c->__('information.label')}</label>
</div> </div>
<ul class="thick"> <ul class="list thick">
<li class="condensed"> <li>
<span class="icon bubble color blue"> <span class="primary icon bubble color blue">
<i class="zmdi zmdi-info"></i> <i class="zmdi zmdi-info"></i>
</span> </span>
<span>{$c->__('information.info1')}</span> <p>{$c->__('information.info1')}</p>
<p>{$c->__('information.info2')}</p> <p>{$c->__('information.info2')}</p>
</li> </li>
</ul> </ul>

View file

@ -1,69 +1,71 @@
<div id="api" class="tabelem paddedtop" title="{$c->__("api.title")}"> <div id="api" class="tabelem paddedtop" title="{$c->__("api.title")}">
<ul> <ul class="list">
<li class="subheader">{$infos}</li> <li class="subheader">
<p>{$infos}</p>
</li>
{if="isset($json)"} {if="isset($json)"}
{if="$json->status == 200"} {if="$json->status == 200"}
<li> <li>
<span class="icon bubble color green"> <span class="primary icon bubble color green">
<i class="zmdi zmdi-cloud"></i> <i class="zmdi zmdi-cloud"></i>
</span> </span>
{if="!$unregister_status"} {if="!$unregister_status"}
<div class="action"> <span class="control">
<a class="button oppose" onclick="{$unregister}"> <a class="button oppose" onclick="{$unregister}">
{$c->__('button.unregister')} {$c->__('button.unregister')}
</a> </a>
</div> </span>
{/if} {/if}
<span>{$c->__('api.registered')}</span> <p class="normal">{$c->__('api.registered')}</p>
</li> </li>
{if="$json->pod->activated"} {if="$json->pod->activated"}
<li> <li>
<span class="icon bubble color green"> <span class="primary icon bubble color green">
<i class="zmdi zmdi-cloud"></i> <i class="zmdi zmdi-cloud"></i>
</span> </span>
<span>{$c->__('api.validated')}</span> <p class="normal">{$c->__('api.validated')}</p>
</li> </li>
{else} {else}
<li> <li>
<span class="icon bubble color gray"> <span class="primary icon bubble color gray">
<i class="zmdi zmdi-cloud-off"></i> <i class="zmdi zmdi-cloud-off"></i>
</span> </span>
<span>{$c->__('api.wait')}</span> <p class="normal">{$c->__('api.wait')}</p>
</li> </li>
{/if} {/if}
{if="$unregister_status"} {if="$unregister_status"}
<li> <li>
<div class="action"> <span class="control">
<a class="button oppose" onclick="{$unregister}"> <a class="button oppose" onclick="{$unregister}">
{$c->__('button.reset')} {$c->__('button.reset')}
</a> </a>
</div> </span>
<span>{$c->__('api.unregister')}</span> <p class="normal">{$c->__('api.unregister')}</p>
</li> </li>
{/if} {/if}
<script type="text/javascript">AdminTest.enableAPI();</script> <script type="text/javascript">AdminTest.enableAPI();</script>
{else} {else}
<li> <li>
<span class="icon bubble color blue"> <span class="primary icon bubble color blue">
<i class="zmdi zmdi-cloud-off"></i> <i class="zmdi zmdi-cloud-off"></i>
</span> </span>
<div class="action"> <span class="control">
<a class="button oppose" onclick="{$register}"> <a class="button oppose" onclick="{$register}">
{$c->__('button.register')} {$c->__('button.register')}
</a> </a>
</div> </span>
<span>{$c->__('api.register')}</span> <p class="normal">{$c->__('api.register')}</p>
</li> </li>
{/if} {/if}
{else} {else}
<li> <li>
<span class="icon bubble color gray"> <span class="primary icon bubble color gray">
<i class="zmdi zmdi-cloud-off"></i> <i class="zmdi zmdi-cloud-off"></i>
</span> </span>
{$c->__('api.error')} <p class="normal">{$c->__('api.error')}</p>
</li> </li>
{/if} {/if}
</ul> </ul>

View file

@ -24,28 +24,27 @@
</div> </div>
</div> </div>
<div class="block"> <div class="block">
<ul class="thick divided"> <ul class="list thick divided">
<li class="condensed"> <li>
<span class="icon bubble color green"> <span class="primary icon bubble color green">
<i class="zmdi zmdi-attachment-alt"></i> <i class="zmdi zmdi-attachment-alt"></i>
</span> </span>
<span>{$c->__('avatar.file')}</span> <p>{$c->__('avatar.file')}</p>
<p><input type="file" onchange="Avatar.file(this.files);"></p> <p><input type="file" onchange="Avatar.file(this.files);"></p>
</li> </li>
{if="isset($gravatar)"} {if="isset($gravatar)"}
<li class="condensed action"> <li>
<div class="action"> <span class="primary icon bubble color blue">
<img src="http://www.gravatar.com/avatar/{$gravatar->entry[0]->hash}?s=50" />
</span>
<p>Gravatar</p>
<p>We found a Gravatar picture<br />
<a <a
onclick="Avatar.preview('data:image/jpeg;base64,{$gravatar_bin}')" onclick="Avatar.preview('data:image/jpeg;base64,{$gravatar_bin}')"
class="button flat"> class="button flat">
{$c->__('avatar.use_it')} {$c->__('avatar.use_it')}
</a> </a>
</div> </p>
<span class="icon bubble color blue">
<img src="http://www.gravatar.com/avatar/{$gravatar->entry[0]->hash}?s=50" />
</span>
<span>Gravatar</span>
<p>We found a Gravatar picture</p>
</li> </li>
{/if} {/if}
</ul> </ul>

View file

@ -1,8 +1,11 @@
<div class="card shadow" title="{$c->__('page.feed')}" id="blog" > <div class="card shadow" title="{$c->__('page.feed')}" id="blog" >
<ul class="thick"> <ul class="list thick">
{if="$mode == 'blog'"} {if="$mode == 'blog'"}
<li class="action {if="isset($contact->description)"}condensed{/if}"> <li>
<div class="action"> <span class="primary icon gray">
<i class="zmdi zmdi-edit"></i>
</span>
<span class="control icon">
<a <a
href="{$c->route('feed', array($contact->jid))}" href="{$c->route('feed', array($contact->jid))}"
target="_blank" target="_blank"
@ -10,30 +13,27 @@
> >
<i class="zmdi zmdi-portable-wifi"></i> <i class="zmdi zmdi-portable-wifi"></i>
</a> </a>
</div>
<span class="icon gray">
<i class="zmdi zmdi-edit"></i>
</span> </span>
{if="$contact"} {if="$contact"}
<h2> <p>
<a href="{$c->route('blog', array($contact->jid))}"> <a href="{$c->route('blog', array($contact->jid))}">
{$c->__('blog.title', $contact->getTrueName())} {$c->__('blog.title', $contact->getTrueName())}
</a> </a>
</h2> </p>
{else} {else}
<h2> <p>
<a href="{$c->route('blog', array($contact->jid))}"> <a href="{$c->route('blog', array($contact->jid))}">
{$c->__('page.blog')} {$c->__('page.blog')}
</a> </a>
</h2> </p>
{/if} {/if}
{if="isset($contact->description)"} {if="isset($contact->description)"}
<p>{$contact->description}</p> <p>{$contact->description}</p>
{/if} {/if}
</li> </li>
{elseif="$mode == 'tag'"} {elseif="$mode == 'tag'"}
<li class="condensed"> <li>
<span class="icon gray"> <span class="primary icon gray">
<i class="zmdi zmdi-tag"></i> <i class="zmdi zmdi-tag"></i>
</span> </span>
<h2> <h2>
@ -43,37 +43,37 @@
</h2> </h2>
</li> </li>
{else} {else}
<li class="condensed action"> <li>
<div class="action"> <span class="primary icon gray">
<a <i class="zmdi zmdi-pages"></i>
href="{$c->route('feed', array($server, $node))}" </span>
target="_blank" <span class="control icon">
> <a
<i class="zmdi zmdi-portable-wifi"></i> Atom href="{$c->route('feed', array($server, $node))}"
</a> target="_blank"
</div> >
<span class="icon gray"> <i class="zmdi zmdi-portable-wifi"></i>
<i class="zmdi zmdi-pages"></i> </a>
</span> </span>
<h2> <p>
<a href="{$c->route('node', array($server, $node))}"> <a href="{$c->route('node', array($server, $node))}">
{if="$item != null"} {if="$item != null"}
{if="$item->name"} {if="$item->name"}
{$item->name} {$item->name}
{else} {else}
{$item->node} {$item->node}
{/if}
{/if} {/if}
{/if} </a>
</a> </p>
</h2> {if="$item->description"}
{if="$item->description"} <p title="{$item->description|strip_tags}">
<h4 title="{$item->description|strip_tags}"> {$item->description|strip_tags}
{$item->description|strip_tags} </p>
</h4> {else}
{else} <p>{$item->server}</p>
<h4>{$item->server}</h4> {/if}
{/if} </li>
</li>
{/if} {/if}
</ul> </ul>
@ -82,36 +82,34 @@
{/loop} {/loop}
{if="isset($more)"} {if="isset($more)"}
<article> <article>
<ul class="active"> <ul class="list active">
{if="$mode == 'blog'"} {if="$mode == 'blog'"}
<a href="{$c->route('blog', array($contact->jid, $more))}"> <a href="{$c->route('blog', array($contact->jid, $more))}">
{else} {else}
<a href="{$c->route('group', array($server, $node, $more))}"> <a href="{$c->route('group', array($server, $node, $more))}">
{/if} {/if}
<li id="history" class="block large"> <li id="history" class="block large">
<span class="icon"><i class="zmdi zmdi-time-restore"></i></span> <span class="primary icon"><i class="zmdi zmdi-time-restore"></i></span>
<span>{$c->__('post.older')}</span> <p class="normal line">{$c->__('post.older')}</p>
</li> </li>
</a> </a>
</ul> </ul>
</article> </article>
{/if} {/if}
{if="$posts == null"} {if="$posts == null"}
<ul class="simple thick"> <ul class="list simple thick">
<li> <li>
<span>{$c->__('blog.empty')}</span> <p>{$c->__('blog.empty')}</p>
</li> </li>
</ul> </ul>
{/if} {/if}
<ul> <ul class="list">
<li> <li>
<a target="_blank" href="https://movim.eu"> <span class="primary icon gray">
<span class="icon"> <i class="zmdi zmdi-cloud-outline"></i>
<i class="zmdi zmdi-cloud-outline"></i> </span>
</span> <p class="center normal"><a target="_blank" href="https://movim.eu">Powered by Movim</a></p>
<span>Powered by Movim</span>
</a>
</li> </li>
</ul> </ul>
</div> </div>

View file

@ -1,17 +1,17 @@
<div id="{$jid}_discussion" class="contained"> <div id="{$jid}_discussion" class="contained">
<section id="{$jid}_messages"> <section id="{$jid}_messages">
<ul class="{if="$muc"}thin simple{else}middle{/if}" id="{$jid}_conversation"></ul> <ul class="list {if="$muc"}thin simple{else}thick{/if}" id="{$jid}_conversation"></ul>
</section> </section>
</div> </div>
<div class="chat_box"> <div class="chat_box">
<ul class="thin"> <ul class="list thin">
<li class="action"> <li>
<span class="icon gray emojis_open" onclick="Chat_ajaxSmiley()"> <span class="primary icon gray emojis_open" onclick="Chat_ajaxSmiley()">
<img alt=":smiley:" class="emoji large" src="{$c->getSmileyPath('1f603')}"> <img alt=":smiley:" class="emoji large" src="{$c->getSmileyPath('1f603')}">
</span> </span>
<div class="action" data-jid="{$jid}" onclick="Chat.sendMessage(this.dataset.jid, {if="$muc"}true{else}false{/if})"> <span class="control icon gray" data-jid="{$jid}" onclick="Chat.sendMessage(this.dataset.jid, {if="$muc"}true{else}false{/if})">
<i class="zmdi zmdi-mail-send"></i> <i class="zmdi zmdi-mail-send"></i>
</div> </span>
<form> <form>
<div> <div>
<textarea <textarea

View file

@ -1,21 +1,21 @@
<li {if="$me"}class="oppose"{/if}> <li {if="$me"}class="oppose"{/if}>
{$url = $contact->getPhoto('s')} {$url = $contact->getPhoto('s')}
{if="$url"} {if="$url"}
{if="$me == null"}<a href="{$c->route('contact', $contact->jid)}">{/if} <span class="{if="$me"}control{else}primary{/if} icon bubble">
<span class="icon bubble"> {if="$me == null"}<a href="{$c->route('contact', $contact->jid)}">{/if}
<img src="{$url}"> <img src="{$url}">
</span> {if="$me == null"}</a>{/if}
{if="$me == null"}</a>{/if} </span>
{else} {else}
{if="$me == null"}<a href="{$c->route('contact', $contact->jid)}">{/if} <span class="{if="$me"}control{else}primary{/if} icon bubble color {$contact->jid|stringToColor}">
<span class="icon bubble color {$contact->jid|stringToColor}"> {if="$me == null"}<a href="{$c->route('contact', $contact->jid)}">{/if}
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> {if="$me == null"}</a>{/if}
{if="$me == null"}</a>{/if} </span>
{/if} {/if}
<div class="bubble"> <div class="bubble">
<div></div> <p></p>
<span class="info"></span> <span class="info"></span>
</div> </div>
</li> </li>

View file

@ -1,5 +1,5 @@
<li class="room"> <li class="room">
<p class="user"></p>
<span class="info"></span> <span class="info"></span>
<span class="user"></span> <p class="message"></p>
<div></div>
</li> </li>

View file

@ -3,31 +3,33 @@
<h4>{$c->__('chat.empty_text')}</h4> <h4>{$c->__('chat.empty_text')}</h4>
</div> </div>
<ul class="flex middle active"> <ul class="list flex middle active">
{if="$top"} {if="$top"}
<li class="subheader block large">{$c->__('chat.frequent')}</li> <li class="subheader block large">
<p>{$c->__('chat.frequent')}</p>
</li>
{/if} {/if}
{loop="$top"} {loop="$top"}
<li class="condensed block {if="$value->last > 60"} inactive{/if}" <li class="block {if="$value->last > 60"} inactive{/if}"
onclick="Chats_ajaxOpen('{$value->jid}'); Chat_ajaxGet('{$value->jid}');"> onclick="Chats_ajaxOpen('{$value->jid}'); Chat_ajaxGet('{$value->jid}');">
{$url = $value->getPhoto('s')} {$url = $value->getPhoto('s')}
{if="$url"} {if="$url"}
<span class="icon bubble <span class="primary icon bubble
{if="$value->value"} {if="$value->value"}
status {$presencestxt[$value->value]} status {$presencestxt[$value->value]}
{/if}"> {/if}">
<img src="{$url}"> <img src="{$url}">
</span> </span>
{else} {else}
<span class="icon bubble color {$value->jid|stringToColor} <span class="primary icon bubble color {$value->jid|stringToColor}
{if="$value->value"} {if="$value->value"}
status {$presencestxt[$value->value]} status {$presencestxt[$value->value]}
{/if}"> {/if}">
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> </span>
{/if} {/if}
<span>{$value->getTrueName()}</span> <p>{$value->getTrueName()}</p>
<p class="wrap">{$value->jid}</p> <p>{$value->jid}</p>
</li> </li>
{/loop} {/loop}
</ul> </ul>

View file

@ -1,46 +1,40 @@
<div> <div>
<ul class="active"> <ul class="list middle">
<li onclick="Rooms_ajaxAdd()"> <li>
<span class="icon"> <span class="primary on_desktop icon"><i class="zmdi zmdi-comments"></i></span>
<i class="zmdi zmdi-group-add"></i> <p>
</span> {$c->__('page.chats')}
</p>
</li> </li>
</ul> </ul>
<span class="on_desktop icon"><i class="zmdi zmdi-comments"></i></span>
<h2 class="r1">
{$c->__('page.chats')}
</h2>
</div> </div>
<div> <div>
<ul class="active"> <ul class="list middle">
{if="$c->supported('upload')"} <li id="chat_header">
<li onclick="Upload_ajaxRequest()"> <span onclick="
<span class="icon">
<i class="zmdi zmdi-attachment-alt"></i>
</span>
</li>
{/if}
<li onclick="Chats_ajaxClose('{$jid|echapJS}'); MovimTpl.hidePanel();">
<span class="icon">
<i class="zmdi zmdi-close"></i>
</span>
</li>
</ul>
<div
id="chat_header"
class="return active {if="$c->supported('upload')"}r2{else}r1{/if} condensed"
onclick="
MovimTpl.hidePanel(); MovimTpl.hidePanel();
Notification.current('chat'); Notification.current('chat');
Chat_ajaxGet();"> Header_ajaxReset('chat');
<span id="back" class="icon"><i class="zmdi zmdi-arrow-back"></i></span> Chat_ajaxGet();"
<h2> id="back" class="primary icon active">
{if="$contact != null"} <i class="zmdi zmdi-arrow-back"></i>
{$contact->getTrueName()} </span>
{else} <span class="control icon active" onclick="Chats_ajaxClose('{$jid|echapJS}'); MovimTpl.hidePanel();">
{$jid|echapJS} <i class="zmdi zmdi-close"></i>
</span>
{if="$c->supported('upload')"}
<span class="control icon active" onclick="Upload_ajaxRequest()">
<i class="zmdi zmdi-attachment-alt"></i>
</span>
{/if} {/if}
</h2> <p class="line">
<h4 id="{$jid}_state">{$contact->jid}</h4> {if="$contact != null"}
</h2> {$contact->getTrueName()}
{else}
{$jid|echapJS}
{/if}
</p>
<p class="line" id="{$jid}_state">{$contact->jid}</p>
</li>
</ul>
</div> </div>

View file

@ -1,76 +1,75 @@
{$anon = $c->supported('anonymous')} {$anon = $c->supported('anonymous')}
<div> <div>
{if="!$anon"} {if="!$anon"}
<ul class="active"> <!--<ul class="active">
<li onclick="Rooms_ajaxAdd()"> <li onclick="Rooms_ajaxAdd()">
<span class="icon"> <span class="icon">
<i class="zmdi zmdi-group-add"></i> <i class="zmdi zmdi-group-add"></i>
</span> </span>
</li> </li>
</ul> </ul>-->
{/if} {/if}
<span class="on_desktop icon"><i class="zmdi zmdi-comments"></i></span> <ul class="list middle">
{if="!$anon"} <li>
<h2>{$c->__('page.chats')}</h2> <span class="primary on_desktop icon"><i class="zmdi zmdi-comments"></i></span>
{else} {if="!$anon"}
<h2>{$c->__('page.room')}</h2> <p>{$c->__('page.chats')}</p>
{/if} {else}
</div> <p>{$c->__('page.room')}</p>
<div> {/if}
<ul class="active">
{if="$c->supported('upload')"}
<li onclick="Upload_ajaxRequest()">
<span class="icon">
<i class="zmdi zmdi-attachment-alt"></i>
</span>
</li>
{/if}
<li onclick="Rooms_ajaxExit('{$room}'); MovimTpl.hidePanel(); {if="$anon"}Presence_ajaxLogout(){/if}">
<span class="icon">
<i class="zmdi zmdi-close"></i>
</span>
</li>
<li class="thin show_context_menu">
<span class="icon">
<i class="zmdi zmdi-more-vert"></i>
</span>
</li> </li>
</ul> </ul>
<div </div>
class="return {if="!$anon"}active{/if} {if="$c->supported('upload')"}r3{else}r2{/if} {if="$subject != null"}condensed{/if}" <div>
{if="!$anon"}onclick="MovimTpl.hidePanel(); Chat_ajaxGet();"{/if}> <ul class="list middle active">
<span id="back" class="icon" > <li>
{if="!$anon"} <span id="back" class="primary icon active" {if="!$anon"}onclick="Header_ajaxReset('chat'); MovimTpl.hidePanel(); Chat_ajaxGet();"{/if}>
<i class="zmdi zmdi-arrow-back"></i> {if="!$anon"}
{else} <i class="zmdi zmdi-arrow-back"></i>
<i class="zmdi zmdi-comment-text-alt"></i> {else}
{/if} <i class="zmdi zmdi-comment-text-alt"></i>
</span> {/if}
</span>
{if="$conference != null && $conference->name"} <span class="control icon show_context_menu active">
<h2 title="{$room}">{$conference->name}</h2> <i class="zmdi zmdi-more-vert"></i>
{else} </span>
<h2>{$room}</h2>
{/if} {if="$c->supported('upload')"}
{if="$subject != null"} <span class="control icon active" onclick="Upload_ajaxRequest()">
<h4 title="{$subject->subject}">{$subject->subject}</h4> <i class="zmdi zmdi-attachment-alt"></i>
{/if} </span>
</div> {/if}
<ul class="simple context_menu active"> <span class="control icon active" onclick="Rooms_ajaxExit('{$room}'); MovimTpl.hidePanel(); {if="$anon"}Presence_ajaxLogout(){/if}">
<i class="zmdi zmdi-close"></i>
</span>
{if="$conference != null && $conference->name"}
<p class="line" title="{$room}">{$conference->name}</p>
{else}
<p class="line">{$room}</p>
{/if}
{if="$subject != null"}
<p class="line" title="{$subject->subject}">{$subject->subject}</p>
{/if}
</li>
</ul>
<ul class="list context_menu active">
<li onclick="Rooms_ajaxList('{$room}')"> <li onclick="Rooms_ajaxList('{$room}')">
<span>{$c->__('chatroom.members')}</span> <p class="normal">{$c->__('chatroom.members')}</p>
</li> </li>
{if="!$anon"} {if="!$anon"}
<li onclick="Rooms_ajaxRemoveConfirm('{$room}')"> <li onclick="Rooms_ajaxRemoveConfirm('{$room}')">
<span>{$c->__('button.delete')}</span> <p class="normal">{$c->__('button.delete')}</p>
</li> </li>
{/if} {/if}
{if="$presence != null && $presence->mucrole == 'moderator' && !$anon"} {if="$presence != null && $presence->mucrole == 'moderator' && !$anon"}
<li onclick="Chat_ajaxGetRoomConfig('{$room}')"> <li onclick="Chat_ajaxGetRoomConfig('{$room}')">
<span>{$c->__('chatroom.config')}</span> <p class="normal">{$c->__('chatroom.config')}</p>
</li> </li>
<li onclick="Chat_ajaxGetSubject('{$room}')"> <li onclick="Chat_ajaxGetSubject('{$room}')">
<span>{$c->__('chatroom.subject')}</span> <p class="normal">{$c->__('chatroom.subject')}</p>
</li> </li>
{/if} {/if}
</ul> </ul>

View file

@ -23,7 +23,7 @@
} }
#chat_widget .chat_box form { #chat_widget .chat_box form {
width: calc(100% - 1rem); width: calc(100% - 5rem);
} }
#chat_widget .chat_box form > div { #chat_widget .chat_box form > div {
@ -35,25 +35,32 @@
padding: 3rem 0px 1rem; padding: 3rem 0px 1rem;
} }
#chat_widget .chat_box div.action { #chat_widget .chat_box span.control {
font-size: 4rem; font-size: 4rem;
color: gray; color: gray;
} }
#chat_widget .chat_box div.action:hover { #chat_widget .chat_box span.control:hover {
cursor: pointer; cursor: pointer;
color: #333; color: #333;
} }
#chat_widget section { #chat_widget section {
margin-bottom: 1rem; padding-bottom: 2rem;
}
#chat_widget li.oppose span.control {
right: 2rem;
} }
/* Chatroom */ /* Chatroom */
#chat_widget li span.icon { #chat_widget ul.simple {
top: 0%; padding-left: 2rem;
margin-top: 0.85rem; }
#chat_widget div:not(.chat_box) li span.icon {
top: 4rem;
} }
#chat_widget li img:not(.emoji):not(.hfr) { #chat_widget li img:not(.emoji):not(.hfr) {
@ -61,11 +68,51 @@
max-width: 100%; max-width: 100%;
display: block; display: block;
} }
#chat_widget li.room {
padding: 0.25rem 0;
}
#chat_widget li.room > p {
font-size: 2rem;
display: inline;
}
#chat_widget li.room span.info {
float: right;
width: auto;
margin-top: 0.5rem;
}
#chat_widget li.room:first-child {
margin-top: 1rem;
}
#chat_widget li.room p.user {
font-weight: 700;
padding: 0;
}
#chat_widget li.room > p.message {
color: black;
padding-left: 1rem;
}
#chat_widget li.room p.user:hover {
cursor: pointer;
}
#chat_widget ul:after {
content: " ";
display: block;
clear: both;
}
/* /*
#chat_widget li img.emoji { #chat_widget li img.emoji {
padding: 0.25rem; padding: 0.25rem;
} }
*/ */
/*
#chat_widget li.room { #chat_widget li.room {
min-height: 3rem; min-height: 3rem;
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
@ -93,6 +140,7 @@
#chat_widget li.room span.user:hover { #chat_widget li.room span.user:hover {
cursor: pointer; cursor: pointer;
} }
*/
#chat_widget .placeholder { #chat_widget .placeholder {
padding-top: 37em; padding-top: 37em;
@ -117,6 +165,7 @@ table.emojis td:hover {
@media screen and (max-width: 1024px) { @media screen and (max-width: 1024px) {
#chat_widget .chat_box { #chat_widget .chat_box {
width: 100%; width: 100%;
left: 0;
} }
#chat_widget .chat_box ul { #chat_widget .chat_box ul {

View file

@ -88,23 +88,23 @@ var Chat = {
message.body = message.body.substr(4); message.body = message.body.substr(4);
} }
bubble.querySelector('div').innerHTML = message.body; bubble.querySelector('p.message').innerHTML = message.body;
bubble.querySelector('span.info').innerHTML = message.publishedPrepared; bubble.querySelector('span.info').innerHTML = message.publishedPrepared;
bubble.querySelector('span.user').className = 'user ' + message.color; bubble.querySelector('p.user').className = 'user ' + message.color;
bubble.querySelector('span.user').onclick = function(n) { bubble.querySelector('p.user').onclick = function(n) {
var textarea = document.querySelector('#chat_textarea'); var textarea = document.querySelector('#chat_textarea');
textarea.value = this.innerHTML + ', ' + textarea.value; textarea.value = this.innerHTML + ', ' + textarea.value;
textarea.focus(); textarea.focus();
}; };
bubble.querySelector('span.user').innerHTML = message.resource; bubble.querySelector('p.user').innerHTML = message.resource;
var conversation = document.getElementById(id); var conversation = document.getElementById(id);
if(conversation) { if(conversation) {
conversation.appendChild(bubble); conversation.appendChild(bubble);
} }
bubble.querySelector('div').className = ''; //bubble.querySelector('p.message').className = '';
} else if(Chat.left != null) { } else if(Chat.left != null) {
if(message.session == message.jidfrom) { if(message.session == message.jidfrom) {
bubble = Chat.right.cloneNode(true); bubble = Chat.right.cloneNode(true);
@ -130,9 +130,9 @@ var Chat = {
} }
if(bubble) { if(bubble) {
bubble.querySelector('div.bubble div').innerHTML = message.body; bubble.querySelector('div.bubble > p').innerHTML = message.body;
bubble.querySelector('div.bubble span.info').innerHTML = message.publishedPrepared; bubble.querySelector('div.bubble > span.info').innerHTML = message.publishedPrepared;
if(prepend) { if(prepend) {
Chat.date = message.published; Chat.date = message.published;

View file

@ -1,4 +1,4 @@
<div id="chat_widget" {if="$jid"}data-jid="{$jid}"{/if}> <div id="chat_widget" {if="$jid"}data-jid="{$jid}"{/if} style="background-color: #EEE;">
{if="$jid"} {if="$jid"}
{$c->prepareChat($jid)} {$c->prepareChat($jid)}
{else} {else}

View file

@ -1,37 +1,39 @@
<section class="scroll"> <section class="scroll">
<h3>{$c->__('chats.add')}</h3> <h3>{$c->__('chats.add')}</h3>
<ul class="active" id="add_extend"> <ul class="list active" id="add_extend">
<li class="subheader">{$c->__('chats.frequent')}</li> <li class="subheader">
<p>{$c->__('chats.frequent')}</p>
</li>
{loop="$top"} {loop="$top"}
{if="!in_array($value->jid, $chats)"} {if="!in_array($value->jid, $chats)"}
<li class="condensed {if="$value->last > 60"} inactive{/if}" <li class="{if="$value->last > 60"} inactive{/if}"
onclick="Chats_ajaxOpen('{$value->jid}'); Dialog.clear()"> onclick="Chats_ajaxOpen('{$value->jid}'); Dialog.clear()">
{$url = $value->getPhoto('s')} {$url = $value->getPhoto('s')}
{if="$url"} {if="$url"}
<span class="icon bubble <span class="primary icon bubble
{if="$value->value"} {if="$value->value"}
status {$presencestxt[$value->value]} status {$presencestxt[$value->value]}
{/if}"> {/if}">
<img src="{$url}"> <img src="{$url}">
</span> </span>
{else} {else}
<span class="icon bubble color {$value->jid|stringToColor} <span class="primary icon bubble color {$value->jid|stringToColor}
{if="$value->value"} {if="$value->value"}
status {$presencestxt[$value->value]} status {$presencestxt[$value->value]}
{/if}"> {/if}">
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> </span>
{/if} {/if}
<span>{$value->getTrueName()}</span> <p class="line">{$value->getTrueName()}</p>
<p class="wrap">{$value->jid}</p> <p class="line">{$value->jid}</p>
</li> </li>
{/if} {/if}
{/loop} {/loop}
<li onclick="Chats_ajaxAddExtend()"> <li onclick="Chats_ajaxAddExtend()">
<span class="icon"> <span class="primary icon">
<i class="zmdi zmdi-plus"></i> <i class="zmdi zmdi-plus"></i>
</span> </span>
<span>{$c->__('chats.more')}</span> <p class="normal">{$c->__('chats.more')}</p>
</li> </li>
</ul> </ul>
<br /> <br />

View file

@ -2,21 +2,23 @@
{$group = ''} {$group = ''}
{loop="$contacts"} {loop="$contacts"}
{if="$group != $value->groupname"} {if="$group != $value->groupname"}
<li class="subheader">{$value->groupname}</li> <li class="subheader">
<p>{$value->groupname}</p>
</li>
{/if} {/if}
<li class="condensed" onclick="Chats_ajaxOpen('{$value->jid}'); Dialog.clear()"> <li onclick="Chats_ajaxOpen('{$value->jid}'); Dialog.clear()">
{$url = $value->getPhoto('s')} {$url = $value->getPhoto('s')}
{if="$url"} {if="$url"}
<span class="icon bubble"> <span class="primary icon bubble">
<img src="{$url}"> <img src="{$url}">
</span> </span>
{else} {else}
<span class="icon bubble color {$value->jid|stringToColor}"> <span class="primary icon bubble color {$value->jid|stringToColor}">
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> </span>
{/if} {/if}
<span>{$value->getTrueName()}</span> <p class="line">{$value->getTrueName()}</p>
<p class="wrap">{$value->jid}</p> <p class="line">{$value->jid}</p>
</li> </li>
{$group = $value->groupname} {$group = $value->groupname}
{/loop} {/loop}

View file

@ -9,36 +9,39 @@
{/if} {/if}
" "
title="{$contact->jid}"> title="{$contact->jid}">
{if="$caps && in_array($caps->type, array('handheld', 'phone'))"}
<div class="action">
<i class="zmdi zmdi-smartphone"></i>
</div>
{/if}
{if="$caps && $caps->type == 'web'"}
<div class="action">
<i class="zmdi zmdi-globe-alt"></i>
</div>
{/if}
<span data-key="chat|{$contact->jid}" class="counter bottom"></span>
{$url = $contact->getPhoto('s')} {$url = $contact->getPhoto('s')}
{if="$url"} {if="$url"}
<span class="icon bubble {if="isset($presence)"}status {$presence}{/if}"> <span class="primary icon bubble {if="isset($presence)"}status {$presence}{/if}">
<img src="{$url}"> <img src="{$url}">
</span> </span>
{else} {else}
<span class="icon bubble color {$contact->jid|stringToColor} {if="isset($presence)"}status {$presence}{/if}"> <span class="primary icon bubble color {$contact->jid|stringToColor} {if="isset($presence)"}status {$presence}{/if}">
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> </span>
{/if} {/if}
<span>{$contact->getTrueName()}</span>
{if="$caps && in_array($caps->type, array('handheld', 'phone'))"}
<span class="control icon gray">
<i class="zmdi zmdi-smartphone"></i>
</span>
{/if}
{if="$caps && $caps->type == 'web'"}
<span class="control icon gray">
<i class="zmdi zmdi-globe-alt"></i>
</span>
{/if}
<span data-key="chat|{$contact->jid}" class="counter bottom"></span>
<p class="normal">
<span class="info">{$message->published|strtotime|prepareDate}</span>
{$contact->getTrueName()}
</p>
{if="isset($status)"} {if="isset($status)"}
<p>{$status}</p> <p>{$status}</p>
{else} {else}
{if="isset($message)"} {if="isset($message)"}
<span class="info">{$message->published|strtotime|prepareDate}</span>
{if="preg_match('#^\?OTR#', $message->body)"} {if="preg_match('#^\?OTR#', $message->body)"}
<p><i class="zmdi zmdi-lock"></i> {$c->__('message.encrypted')}</p> <p><i class="zmdi zmdi-lock"></i> {$c->__('message.encrypted')}</p>
{else} {elseif="stripTags(prepareString($message->body)) != ''"}
<p>{$message->body|prepareString|stripTags}</p> <p>{$message->body|prepareString|stripTags}</p>
{/if} {/if}
{/if} {/if}

View file

@ -1,4 +1,4 @@
<ul id="chats_widget_list" class="middle active divided spaced">{$list}</ul> <ul id="chats_widget_list" class="list middle active divided spaced">{$list}</ul>
<div class="placeholder icon"> <div class="placeholder icon">
<h1>{$c->__('chats.empty_title')}</h1> <h1>{$c->__('chats.empty_title')}</h1>

View file

@ -38,11 +38,12 @@ class Contact extends WidgetBase
if(!$this->validateJid($jid)) return; if(!$this->validateJid($jid)) return;
$html = $this->prepareContact($jid); $html = $this->prepareContact($jid);
$header = $this->prepareHeader($jid, $page); //$header = $this->prepareHeader($jid, $page);
Header::fill($header); Header::fill($header);
RPC::call('movim_fill', 'contact_widget', $html); RPC::call('movim_fill', 'contact_widget', $html);
RPC::call('MovimTpl.showPanel'); RPC::call('MovimTpl.showPanel');
RPC::call('MovimTpl.scrollHeaders');
} }
function ajaxEditSubmit($form) function ajaxEditSubmit($form)
@ -122,6 +123,7 @@ class Contact extends WidgetBase
Dialog::fill($view->draw('_contact_delete', true)); Dialog::fill($view->draw('_contact_delete', true));
} }
/*
function prepareHeader($jid, $page = 0) function prepareHeader($jid, $page = 0)
{ {
if(!$this->validateJid($jid)) return; if(!$this->validateJid($jid)) return;
@ -156,6 +158,7 @@ class Contact extends WidgetBase
return $view->draw('_contact_header', true); return $view->draw('_contact_header', true);
} }
*/
function prepareEmpty($page = 0, $jid = null) function prepareEmpty($page = 0, $jid = null)
{ {
@ -226,6 +229,15 @@ class Contact extends WidgetBase
$presencestxt = getPresencesTxt(); $presencestxt = getPresencesTxt();
$view->assign('edit',
$this->call(
'ajaxEditContact',
"'".echapJS($jid)."'"));
$view->assign('delete',
$this->call(
'ajaxDeleteContact',
"'".echapJS($jid)."'"));
if(isset($c)) { if(isset($c)) {
$view->assign('mood', getMood()); $view->assign('mood', getMood());

View file

@ -1,95 +1,124 @@
{if="$contact != null"} {if="$contact != null"}
{$url = $contact->getPhoto('s')} {$url = $contact->getPhoto('s')}
<div class="block">
<header class="big" <header class="big"
{if="$url"} {if="$url"}
style="background-image: linear-gradient(to bottom, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0) 100%), url('{$contact->getPhoto('xxl')}');" style="background-image: linear-gradient(to bottom, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0) 100%), url('{$contact->getPhoto('xxl')}');"
{else} {else}
style="background-color: rgba(62,81,181,1);" style="background-color: rgba(62,81,181,1);"
{/if} {/if}
> >
<ul class="thick"> <ul class="list middle">
<li class="condensed"> <li>
{if="$url"} <span class="primary icon active" onclick="MovimTpl.hidePanel(); Contact_ajaxClear({$page});">
<span class="icon bubble color {if="isset($presence)"}status {$presence}{/if}"> <i class="zmdi zmdi-arrow-back"></i>
<img src="{$url}"> </span>
</span> {if="$contactr != null"}
{else} <span class="control icon active" onclick="{$edit}">
<span class="icon bubble color {$contact->jid|stringToColor} {if="isset($presence)"}status {$presence}{/if}"> <i class="zmdi zmdi-edit"></i>
<i class="zmdi zmdi-account"></i>
</span>
{/if}
<span>
<h2>{$contact->getTrueName()}</h2>
</span> </span>
<p>{$contact->jid}</p> <span class="control icon active" onclick="{$delete}">
</li> <i class="zmdi zmdi-delete"></i>
{if="$caps"} </span>
<li>
<span class="icon"> <p class="line">{$contactr->getTrueName()}</p>
<i class="zmdi {else}
{if="$caps->type == 'handheld' || $caps->type == 'phone'"} <span class="control icon active" onclick="Roster_ajaxDisplaySearch('{$contact->jid}')">
zmdi-smartphone-android <i class="zmdi zmdi-account-add"></i>
{elseif="$caps->type == 'bot'"} </span>
zmdi-memory {if="$contact != null"}
{else} <p class="line">{$contact->getTrueName()}</p>
zmdi-laptop {else}
{/if}
"> <p class="line">{$jid}</p>
</i> {/if}
</span>
<span>
{$caps->name}
{if="isset($clienttype[$caps->type])"}
- {$clienttype[$caps->type]}
{/if}
</span>
</li>
{/if} {/if}
</ul> </li>
</header> </ul>
<ul class="list thick">
<li>
{if="$url"}
<span class="primary icon bubble color {if="isset($presence)"}status {$presence}{/if}">
<img src="{$url}">
</span>
{else}
<span class="primary icon bubble color {$contact->jid|stringToColor} {if="isset($presence)"}status {$presence}{/if}">
<i class="zmdi zmdi-account"></i>
</span>
{/if}
<p class="line">{$contact->getTrueName()}</p>
<p class="line">{$contact->jid}</p>
</li>
<!--
{if="$caps"}
<li>
<span class="icon">
<i class="zmdi
{if="$caps->type == 'handheld' || $caps->type == 'phone'"}
zmdi-smartphone-android
{elseif="$caps->type == 'bot'"}
zmdi-memory
{else}
zmdi-laptop
{/if}
">
</i>
</span>
<span>
{$caps->name}
{if="isset($clienttype[$caps->type])"}
- {$clienttype[$caps->type]}
{/if}
</span>
</li>
{/if}-->
</ul>
</header>
<div class="block">
<a onclick="{$chat}" class="button action color red"> <a onclick="{$chat}" class="button action color red">
<i class="zmdi zmdi-comment-text-alt"></i> <i class="zmdi zmdi-comment-text-alt"></i>
</a> </a>
<ul class="flex"> <ul class="list flex">
{if="$contact->delay != null"} {if="$contact->delay != null"}
<li class="condensed block"> <li class="block">
<span class="icon brown"><i class="zmdi zmdi-restore"></i></span> <span class="icon brown"><i class="zmdi zmdi-restore"></i></span>
<span>{$c->__('last.title')}</span> <p>{$c->__('last.title')}</p>
<p>{$contact->delay}</p> <p>{$contact->delay}</p>
</li> </li>
{/if} {/if}
{if="$contact->fn != null"} {if="$contact->fn != null"}
<li class="condensed block"> <li class="block">
<span class="icon gray">{$contact->fn|firstLetterCapitalize}</span> <span class="primary icon gray">{$contact->fn|firstLetterCapitalize}</span>
<span>{$c->__('general.name')}</span> <p>{$c->__('general.name')}</p>
<p>{$contact->fn}</p> <p>{$contact->fn}</p>
</li> </li>
{/if} {/if}
{if="$contact->nickname != null"} {if="$contact->nickname != null"}
<li class="condensed block"> <li class="block">
<span class="icon gray">{$contact->nickname|firstLetterCapitalize}</span> <span class="primary icon gray">{$contact->nickname|firstLetterCapitalize}</span>
<span>{$c->__('general.nickname')}</span> <p>{$c->__('general.nickname')}</p>
<p>{$contact->nickname}</p> <p>{$contact->nickname}</p>
</li> </li>
{/if} {/if}
{if="strtotime($contact->date) != 0"} {if="strtotime($contact->date) != 0"}
<li class="condensed block"> <li class="block">
<span class="icon gray"><i class="zmdi zmdi-cake"></i></span> <span class="primary icon gray"><i class="zmdi zmdi-cake"></i></span>
<span>{$c->__('general.date_of_birth')}</span> <p>{$c->__('general.date_of_birth')}</p>
<p>{$contact->date|strtotime|prepareDate:false}</p> <p>{$contact->date|strtotime|prepareDate:false}</p>
</li> </li>
{/if} {/if}
{if="$contact->url != null"} {if="$contact->url != null"}
<li class="condensed block"> <li class="block">
<span class="icon gray"><i class="zmdi zmdi-link"></i></span> <span class="primary icon gray"><i class="zmdi zmdi-link"></i></span>
<span>{$c->__('general.website')}</span> <p>{$c->__('general.website')}</p>
<p class="wrap"> <p>
{if="filter_var($contact->url, FILTER_VALIDATE_URL)"} {if="filter_var($contact->url, FILTER_VALIDATE_URL)"}
<a href="{$contact->url}" target="_blank">{$contact->url}</a> <a href="{$contact->url}" target="_blank">{$contact->url}</a>
{else} {else}
@ -100,42 +129,42 @@
{/if} {/if}
{if="$contact->email != null"} {if="$contact->email != null"}
<li class="condensed block"> <li class="block">
<span class="icon gray"><i class="zmdi zmdi-email"></i></span> <span class="primary icon gray"><i class="zmdi zmdi-email"></i></span>
<span>{$c->__('general.email')}</span> <p>{$c->__('general.email')}</p>
<p><img src="{$contact->getPhoto('email')}"/></p> <p><img src="{$contact->getPhoto('email')}"/></p>
</li> </li>
{/if} {/if}
{if="$contact->getMarital() != null"} {if="$contact->getMarital() != null"}
<li class="condensed block"> <li class="block">
<span class="icon gray"><i class="zmdi zmdi-accounts"></i></span> <span class="primary icon gray"><i class="zmdi zmdi-accounts"></i></span>
<span>{$c->__('general.marital')}</span> <p>{$c->__('general.marital')}</p>
<p>{$contact->getMarital()}</p> <p>{$contact->getMarital()}</p>
</li> </li>
{/if} {/if}
{if="$contact->getGender() != null"} {if="$contact->getGender() != null"}
<li class="condensed block"> <li class="block">
<span class="icon gray"><i class="zmdi zmdi-face"></i></span> <span class="primary icon gray"><i class="zmdi zmdi-face"></i></span>
<span>{$c->__('general.gender')}</span> <p>{$c->__('general.gender')}</p>
<p>{$contact->getGender()}</p> <p>{$contact->getGender()}</p>
</li> </li>
{/if} {/if}
{if="$contactr->delay != null"} {if="$contactr->delay != null"}
<li class="condensed block"> <li class="block">
<span class="icon gray"><i class="zmdi zmdi-time-countdown"></i></span> <span class="primary icon gray"><i class="zmdi zmdi-time-countdown"></i></span>
<span>{$c->__('last.title')}</span> <p>{$c->__('last.title')}</p>
<p>{$contactr->delay|strtotime|prepareDate}</p> <p>{$contactr->delay|strtotime|prepareDate}</p>
</li> </li>
{/if} {/if}
{if="$contact->mood != null"} {if="$contact->mood != null"}
{$moods = unserialize($contact->mood)} {$moods = unserialize($contact->mood)}
<li class="condensed block"> <li class="block">
<span class="icon gray"><i class="zmdi zmdi-mood"></i></span> <span class="primary icon gray"><i class="zmdi zmdi-mood"></i></span>
<span>{$c->__('mood.title')}</span> <p>{$c->__('mood.title')}</p>
<p>{loop="$moods"} <p>{loop="$moods"}
{$mood[$value]} {$mood[$value]}
{/loop} {/loop}
@ -144,9 +173,9 @@
{/if} {/if}
{if="$contact->description != null && trim($contact->description) != ''"} {if="$contact->description != null && trim($contact->description) != ''"}
<li class="condensed block large"> <li class="pblock large">
<span class="icon gray"><i class="zmdi zmdi-format-align-justify"></i></span> <span class="primary icon gray"><i class="zmdi zmdi-format-align-justify"></i></span>
<span>{$c->__('general.about')}</span> <p>{$c->__('general.about')}</p>
<p class="all">{$contact->description}</p> <p class="all">{$contact->description}</p>
</li> </li>
{/if} {/if}
@ -154,37 +183,39 @@
<br /> <br />
{if="$blog != null"} {if="$blog != null"}
<ul class="active block flex"> <ul class="list middle active block flex">
<li class="block large subheader">{$c->__('blog.last')}</li> <li class="block large subheader">
<p>{$c->__('blog.last')}</p>
</li>
{loop="$blog"} {loop="$blog"}
<li class="block condensed" onclick="movim_reload('{$c->route('news', $value->nodeid)}')"> <li class="block" onclick="movim_reload('{$c->route('news', $value->nodeid)}')">
{$url = $value->getContact()->getPhoto('l')} {$url = $value->getContact()->getPhoto('l')}
{if="$url"} {if="$url"}
<span class="icon bubble" style="background-image: url({$url});"> <span class="primary icon bubble" style="background-image: url({$url});">
</span> </span>
{else} {else}
<span class="icon thumb color {$value->getContact()->jid|stringToColor}"> <span class="primary icon thumb color {$value->getContact()->jid|stringToColor}">
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> </span>
{/if} {/if}
{if="$value->title != null"} {if="$value->title != null"}
<span>{$value->title}</span> <p class="line">{$value->title}</p>
{else} {else}
<span>{$c->__('hello.contact_post')}</span> <p class="line">{$c->__('hello.contact_post')}</p>
{/if} {/if}
<p>{$value->published|strtotime|prepareDate}</p>
<p>{$value->contentcleaned|strip_tags}</p> <p>{$value->contentcleaned|strip_tags}</p>
<span class="info">{$value->published|strtotime|prepareDate}</span>
</li> </li>
{/loop} {/loop}
<a href="{$c->route('blog', array($contact->jid))}" target="_blank" class="block large"> <a href="{$c->route('blog', array($contact->jid))}" target="_blank" class="block large">
<li class="action"> <li>
<div class="action"> <span class="primary icon">
<i class="zmdi zmdi-chevron-right"></i>
</div>
<span class="icon">
<i class="zmdi zmdi-portable-wifi"></i> <i class="zmdi zmdi-portable-wifi"></i>
</span> </span>
<span>{$c->__('blog.visit')}</span> <span class="control icon">
<i class="zmdi zmdi-chevron-right"></i>
</span>
<p class="normal">{$c->__('blog.visit')}</p>
</li> </li>
</a> </a>
</ul> </ul>
@ -192,35 +223,36 @@
{$album = $contact->getAlbum()} {$album = $contact->getAlbum()}
{if="$album"} {if="$album"}
<ul class="flex"> <ul class="list flex">
<li class="subheader block large">{$c->__('general.tune')}</li> <li class="subheader block large">
<p>{$c->__('general.tune')}</p>
</li>
<li class=" <li class="
block block
{if="$contact->tunetitle"}condensed{/if}
action action
"> ">
<div class="action"> <span class="primary icon bubble">
<a href="{$album->url}" target="_blank">
<i class="zmdi zmdi-radio"></i>
</a>
</div>
<span class="icon bubble">
{if="isset($album->url)"} {if="isset($album->url)"}
<img src="{$album->url}"/> <img src="{$album->url}"/>
{else} {else}
<i class="zmdi zmdi-play-circle-fill"></i> <i class="zmdi zmdi-play-circle-fill"></i>
{/if} {/if}
</span> </span>
<span> <span class="control icon">
<a href="{$album->url}" target="_blank">
<i class="zmdi zmdi-radio"></i>
</a>
</span>
<p>
{if="$contact->tuneartist"} {if="$contact->tuneartist"}
{$contact->tuneartist} - {$contact->tuneartist} -
{/if} {/if}
{if="$contact->tunesource"} {if="$contact->tunesource"}
{$contact->tunesource} {$contact->tunesource}
{/if} {/if}
</span> </p>
{if="$contact->tunetitle"} {if="$contact->tunetitle"}
<p>{$contact->tunetitle}</p> <p>{$contact->tunetitle}</p>
{/if} {/if}
@ -230,25 +262,23 @@
{/if} {/if}
{if="$contact->adrlocality != null || $contact->adrcountry != null"} {if="$contact->adrlocality != null || $contact->adrcountry != null"}
<ul class="flex"> <ul class="list flex">
<li class="subheader block large">{$c->__('position.legend')}</li> <li class="subheader block large">
<p>{$c->__('position.legend')}</p>
</li>
{if="$contact->adrlocality != null"} {if="$contact->adrlocality != null"}
<li class="condensed block"> <li class="block">
<span class="icon gray"><i class="zmdi zmdi-city"></i></span> <span class="primary icon gray"><i class="zmdi zmdi-city"></i></span>
<span>{$c->__('position.locality')}</span> <p>{$c->__('position.locality')}</p>
<p> <p>{$contact->adrlocality}</p>
{$contact->adrlocality}
</p>
</li> </li>
{/if} {/if}
{if="$contact->adrcountry != null"} {if="$contact->adrcountry != null"}
<li class="condensed block"> <li class="block">
<span class="icon gray"><i class="zmdi zmdi-pin"></i></span> <span class="primary icon gray"><i class="zmdi zmdi-pin"></i></span>
<span>{$c->__('position.country')}</span> <p>{$c->__('position.country')}</p>
<p> <p>{$contact->adrcountry}</p>
{$contact->adrcountry}
</p>
</li> </li>
{/if} {/if}
</ul> </ul>
@ -257,15 +287,17 @@
<div class="clear"></div> <div class="clear"></div>
{if="$contact->twitter != null || $contact->skype != null || $contact->yahoo != null"} {if="$contact->twitter != null || $contact->skype != null || $contact->yahoo != null"}
<ul class="flex"> <ul class="list flex">
<li class="subheader block large">{$c->__('general.accounts')}</li> <li class="subheader block large">
<p>{$c->__('general.accounts')}</p>
</li>
{if="$contact->twitter != null"} {if="$contact->twitter != null"}
<li class="condensed block"> <li class="block">
<span class="icon gray"> <span class="primary icon gray">
<i class="zmdi zmdi-twitter"></i> <i class="zmdi zmdi-twitter"></i>
</span> </span>
<span>Twitter</span> <p>Twitter</p>
<p> <p>
<a <a
target="_blank" target="_blank"
@ -276,9 +308,9 @@
</li> </li>
{/if} {/if}
{if="$contact->skype != null"} {if="$contact->skype != null"}
<li class="condensed block"> <li class="block">
<span class="icon gray">S</span> <span class="primary icon gray">S</span>
<span>Skype</span> <p>Skype</p>
<p> <p>
<a <a
target="_blank" target="_blank"
@ -289,9 +321,9 @@
</li> </li>
{/if} {/if}
{if="$contact->yahoo != null"} {if="$contact->yahoo != null"}
<li class="condensed block"> <li class="block">
<span class="icon gray">Y</span> <span class="primary icon gray">Y</span>
<span>Yahoo!</span> <p>Yahoo!</p>
<p> <p>
<a <a
target="_blank" target="_blank"
@ -306,8 +338,10 @@
{/if} {/if}
{if="isset($gallery)"} {if="isset($gallery)"}
<ul> <ul class="list">
<li class="subheader">{$c->__('page.gallery')}</li> <li class="subheader">
<p>{$c->__('page.gallery')}</p>
</li>
</ul> </ul>
<ul class="grid active padded"> <ul class="grid active padded">
{loop="$gallery"} {loop="$gallery"}
@ -324,38 +358,44 @@
{if="$contactr && $contactr->rostersubscription != 'both'"} {if="$contactr && $contactr->rostersubscription != 'both'"}
<div class="card"> <div class="card">
<ul class="middle"> <ul class="list middle">
<li class="condensed"> <li>
{if="$contactr->rostersubscription == 'to'"} {if="$contactr->rostersubscription == 'to'"}
<span class="icon gray"> <span class="primary icon gray">
<i class="zmdi zmdi-arrow-in"></i> <i class="zmdi zmdi-arrow-in"></i>
</span> </span>
<span>{$c->__('subscription.to')}</span> <p>{$c->__('subscription.to')}</p>
<p>{$c->__('subscription.to_text')}</p> <p>{$c->__('subscription.to_text')}</p>
<a class="button flat" onclick="Notifs_ajaxAccept('{$contactr->jid}')"> <p>
{$c->__('subscription.to_button')} <a class="button flat" onclick="Notifs_ajaxAccept('{$contactr->jid}')">
</a> {$c->__('subscription.to_button')}
</a>
</p>
{/if} {/if}
{if="$contactr->rostersubscription == 'from'"} {if="$contactr->rostersubscription == 'from'"}
<span class="icon gray"> <span class="primary icon gray">
<i class="zmdi zmdi-arrow-out"></i> <i class="zmdi zmdi-arrow-out"></i>
</span> </span>
<span>{$c->__('subscription.from')}</span> <p>{$c->__('subscription.from')}</p>
<p>{$c->__('subscription.from_text')}</p> <p>{$c->__('subscription.from_text')}</p>
<a class="button flat" onclick="Notifs_ajaxAsk('{$contactr->jid}')"> <p>
{$c->__('subscription.from_button')} <a class="button flat" onclick="Notifs_ajaxAsk('{$contactr->jid}')">
</a> {$c->__('subscription.from_button')}
</a>
</p>
{/if} {/if}
{if="$contactr->rostersubscription == 'none'"} {if="$contactr->rostersubscription == 'none'"}
<span class="icon gray"> <span class="primary icon gray">
<i class="zmdi zmdi-block"></i> <i class="zmdi zmdi-block"></i>
</span> </span>
<span>{$c->__('subscription.nil')}</span> <p>{$c->__('subscription.nil')}</p>
<p>{$c->__('subscription.nil_text')}</p> <p>{$c->__('subscription.nil_text')}</p>
<a class="button flat" onclick="Notifs_ajaxAsk('{$contactr->jid}')"> <p>
{$c->__('subscription.nil_button')} <a class="button flat" onclick="Notifs_ajaxAsk('{$contactr->jid}')">
</a> {$c->__('subscription.nil_button')}
</a>
</p>
{/if} {/if}
</li> </li>
</ul> </ul>

View file

@ -1,6 +1,6 @@
<ul class="thick"> <ul class="list thick">
<li> <li>
<span class="icon bubble color {$jid|stringToColor}">{$jid|firstLetterCapitalize}</span> <span class="primary icon bubble color {$jid|stringToColor}">{$jid|firstLetterCapitalize}</span>
<h2>{$jid}</h2> <p class="normal">{$jid}</p>
</li> </li>
</ul> </ul>

View file

@ -1,6 +1,6 @@
<br /> <br />
<h2>{$c->__('explore.explore')}</h2> <h2>{$c->__('explore.explore')}</h2>
<ul id="public_list" class="flex card shadow active middle"> <ul id="public_list" class="list flex card shadow active middle">
{$users} {$users}
</ul> </ul>

View file

@ -1,24 +1,25 @@
{loop="$users"} {loop="$users"}
<li class="{if="$value->description != ''"}condensed{/if} block" style="background-image: url();" onclick="Contact_ajaxGetContact('{$value->jid}', {$page});"> <li class="block" style="background-image: url();" onclick="Contact_ajaxGetContact('{$value->jid}', {$page});">
{$url = $value->getPhoto('s')} {$url = $value->getPhoto('s')}
{if="$url"} {if="$url"}
<span class="icon bubble"> <span class="primary icon bubble">
<img src="{$url}"> <img src="{$url}">
</span> </span>
{else} {else}
<span class="icon bubble color {$value->jid|stringToColor}"> <span class="primary icon bubble color {$value->jid|stringToColor}">
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> </span>
{/if} {/if}
<span>{$value->getTrueName()}</span> <p class="normal">
{if="$value->getAge()"}
{if="$value->getAge()"} <span class="info">{$c->__('age.years', $value->getAge())}</span>
<span class="info">{$c->__('age.years', $value->getAge())}</span> {/if}
{/if} {if="$value->getGender()"}
{if="$value->getGender()"} <span class="info">{$value->getGender()}</span>
<span class="info">{$value->getGender()}</span> {/if}
{/if} {$value->getTrueName()}
</p>
{if="$value->description != ''"} {if="$value->description != ''"}
<p> <p>
@ -28,12 +29,14 @@
</li> </li>
{/loop} {/loop}
{if="$pages"} {if="$pages"}
<li class="block condensed"> <li class="block">
<span class="icon gray"> <span class="primary icon gray">
<i class="zmdi zmdi-my-library-books"></i> <i class="zmdi zmdi-book"></i>
</span> </span>
{loop="$pages"} {loop="$pages"}
<a onclick="Contact_ajaxPublic('{$key}');" class="button flat {if="$key == $page"}on{/if}">{$key+1}</a> <p>
<a onclick="Contact_ajaxPublic('{$key}');" class="button flat {if="$key == $page"}on{/if}">{$key+1}</a>
</p>
{/loop} {/loop}
</li> </li>
{/if} {/if}

View file

@ -2,34 +2,38 @@
<h1>{$c->__('group.empty_title')}</h1> <h1>{$c->__('group.empty_title')}</h1>
<h4>{$c->__('group.empty_text')}</h4> <h4>{$c->__('group.empty_text')}</h4>
</div> </div>
<ul class="card thick"> <ul class="list card thick">
<li class="block"> <li class="block">
<span class="icon gray"> <span class="primary icon gray">
<i class="zmdi zmdi-help"></i> <i class="zmdi zmdi-help"></i>
</span> </span>
<p class="all"> <p class="all">
{$c->__('group.help_info1')}<br /> {$c->__('group.help_info1')}
<br /> </p>
<p>
{$c->___('group.help_info2', '<i class="zmdi zmdi-bookmark"></i>', '<i class="zmdi zmdi-plus"></i> ')}<br /> {$c->___('group.help_info2', '<i class="zmdi zmdi-bookmark"></i>', '<i class="zmdi zmdi-plus"></i> ')}<br />
{$c->___('group.help_info3', '<i class="zmdi zmdi-edit"></i>')}<br /> {$c->___('group.help_info3', '<i class="zmdi zmdi-edit"></i>')}<br />
<br /> </p>
<p>
{$c->___('group.help_info4', '<a href="'.$c->route('news').'"><i class="zmdi zmdi-receipt"></i> ','</a>')} {$c->___('group.help_info4', '<a href="'.$c->route('news').'"><i class="zmdi zmdi-receipt"></i> ','</a>')}
</p> </p>
</li> </li>
</ul> </ul>
<h2>{$c->__('group.servers')}</h2> <h2>{$c->__('group.servers')}</h2>
<ul class="flex middle active"> <ul class="list flex middle active">
{loop="$servers"} {loop="$servers"}
{if="!filter_var($value->server, FILTER_VALIDATE_EMAIL)"} {if="!filter_var($value->server, FILTER_VALIDATE_EMAIL)"}
<li class="block condensed" onclick="Groups_ajaxDisco('{$value->server}')"> <li class="block" onclick="Groups_ajaxDisco('{$value->server}')">
<span class="icon bubble color {$value->server|stringToColor}">{$value->server|firstLetterCapitalize}</span> <span class="primary icon bubble color {$value->server|stringToColor}">
<span title="{$value->server} - {$value->name}">{$value->server} - {$value->name}</span> {$value->server|firstLetterCapitalize}
</span>
<p title="{$value->server} - {$value->name}">{$value->server} - {$value->name}</p>
<p>{$c->__('group.counter', $value->number)}</p> <p>{$c->__('group.counter', $value->number)}</p>
</li> </li>
{/if} {/if}
{/loop} {/loop}
<li class="block large"> <li class="block large">
<span class="icon"> <span class="primary icon">
<i class="zmdi zmdi-search-for"></i> <i class="zmdi zmdi-search-for"></i>
</span> </span>
<form> <form>

View file

@ -1,64 +1,64 @@
<div> <div>
<span class="on_desktop icon"><i class="zmdi zmdi-pages"></i></span> <ul class="list middle">
<h2> <li>
{$c->__('page.groups')} <span class="primary on_desktop icon"><i class="zmdi zmdi-pages"></i></span>
</h2> <p>
{$c->__('page.groups')}
</p>
</li>
</ul>
</div> </div>
<div> <div>
<ul class="active"> <ul class="list middle">
{if="$subscription == null"} <li>
<li title="{$c->__('group.subscribe')}" <span id="back" class="primary icon active" onclick="MovimTpl.hidePanel(); Group_ajaxClear(); Groups_ajaxHeader();">
onclick="Group_ajaxAskSubscribe('{$item->server}', '{$item->node}')"> <i class="zmdi zmdi-arrow-back"></i>
<span class="icon"> </span>
<i class="zmdi zmdi-bookmark-outline"></i> {if="$role == 'owner'"}
</span> <span class="control show_context_menu icon active">
</li>
{else}
<li title="{$c->__('group.unsubscribe')}"
onclick="Group_ajaxAskUnsubscribe('{$item->server}', '{$item->node}')">
<span class="icon">
<i class="zmdi zmdi-bookmark"></i>
</span>
</li>
{/if}
{if="$role == 'owner'"}
<li class="thin show_context_menu">
<span class="icon">
<i class="zmdi zmdi-more-vert"></i> <i class="zmdi zmdi-more-vert"></i>
</span> </span>
</li>
{/if}
</ul>
<div class="return active condensed {if="$role == 'owner'"}r2{else}r1{/if}"
onclick="MovimTpl.hidePanel(); Group_ajaxClear(); Groups_ajaxHeader();">
<span id="back" class="icon"><i class="zmdi zmdi-arrow-back"></i></span>
<h2>
{if="$item != null"}
{if="$item->name"}
{$item->name}
{else}
{$item->node}
{/if}
{/if} {/if}
</h2> {if="$subscription == null"}
{if="$item->description"} <span class="control icon active" title="{$c->__('group.subscribe')}"
<h4 title="{$item->description|strip_tags}"> onclick="Group_ajaxAskSubscribe('{$item->server}', '{$item->node}')">
{$item->description|strip_tags} <i class="zmdi zmdi-bookmark-outline"></i>
</h4> </span>
{else} {else}
<h4>{$item->server}</h4> <span class="control icon active" title="{$c->__('group.unsubscribe')}"
{/if} onclick="Group_ajaxAskUnsubscribe('{$item->server}', '{$item->node}')">
</div> <i class="zmdi zmdi-bookmark"></i>
</span>
{/if}
<p class="line">
{if="$item != null"}
{if="$item->name"}
{$item->name}
{else}
{$item->node}
{/if}
{/if}
</p>
{if="$item->description"}
<p class="line" title="{$item->description|strip_tags}">
{$item->description|strip_tags}
</p>
{else}
<p class="line">{$item->server}</p>
{/if}
</li>
</ul>
{if="$role == 'owner'"} {if="$role == 'owner'"}
<ul class="simple context_menu active"> <ul class="list context_menu active">
<li onclick="Group_ajaxGetConfig('{$item->server}', '{$item->node}')"> <li onclick="Group_ajaxGetConfig('{$item->server}', '{$item->node}')">
<span>{$c->__('group.configuration')}</span> <p class="normal">{$c->__('group.configuration')}</p>
</li> </li>
<li onclick="Group_ajaxGetSubscriptions('{$item->server}', '{$item->node}', true)"> <li onclick="Group_ajaxGetSubscriptions('{$item->server}', '{$item->node}', true)">
<span>{$c->__('group.subscriptions')}</span> <p class="normal">{$c->__('group.subscriptions')}</p>
</li> </li>
<li onclick="Group_ajaxDelete('{$item->server}', '{$item->node}')"> <li onclick="Group_ajaxDelete('{$item->server}', '{$item->node}')">
<span>{$c->__('button.delete')}</span> <p class="normal">{$c->__('button.delete')}</p>
</li> </li>
</ul> </ul>
{/if} {/if}

View file

@ -1,203 +1,13 @@
{loop="$posts"} {loop="$posts"}
{$c->preparePost($value)} {$c->preparePost($value)}
<!--
{$attachements = $value->getAttachements()}
<article id="{$value->nodeid}" class="block">
{if="isset($attachements.pictures)"}
<header
class="big"
style="
background-image: linear-gradient(to bottom, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.5) 100%), url('{$attachements['pictures'][0]['href']}');">
{else}
<header>
{/if}
<ul class="thick">
<li class="condensed">
{$url = $value->getContact()->getPhoto('s')}
{if="$url"}
<span class="icon bubble">
<img src="{$url}">
</span>
{else}
<span class="icon bubble color {$value->node|stringToColor}">{$value->node|firstLetterCapitalize}</span>
{/if}
<h2>
<a href="{$c->route('news', $value->nodeid)}">
{if="$value->title != null"}
{$value->title}
{else}
{$c->__('post.default_title')}
{/if}
</a>
</h2>
<p>
{if="$value->getContact()->getTrueName() != ''"}
<a href="{$c->route('contact', $value->getContact()->jid)}">
{$value->getContact()->getTrueName()}
</a>
-
{/if}
{$value->published|strtotime|prepareDate}
{if="$value->published != $value->updated"}
- <i class="zmdi zmdi-edit"></i> {$value->updated|strtotime|prepareDate}
{/if}
</p>
</li>
</ul>
</header>
<section>
<content>
{if="$value->isShort() && isset($attachements.pictures)"}
{loop="$attachements.pictures"}
<a href="{$value.href}" class="alternate" target="_blank">
<img class="big_picture" type="{$value.type}" src="{$value.href|urldecode}"/>
</a>
{/loop}
{/if}
{$value->contentcleaned}
</content>
</section>
<footer>
{$tags = $value->getTags()}
{if="isset($tags)"}
<ul class="middle">
<li>
<span class="icon zmdi zmdi-tag gray"></span>
<span>
{loop="$tags"}
<a target="_blank" href="{$c->route('tag', array($value))}">#{$value}</a>
{/loop}
</span>
</li>
</ul>
{/if}
<ul class="thin">
{if="isset($attachements.links)"}
{loop="$attachements.links"}
{if="substr($value.href, 0, 5) != 'xmpp:' && filter_var($value.href, FILTER_VALIDATE_URL)"}
<li>
<span class="icon small"><img src="https://icons.duckduckgo.com/ip2/{$value.url.host}.ico"/></span>
<a href="{$value.href}" class="alternate" target="_blank">
<span>{$value.href|urldecode}</span>
</a>
</li>
{/if}
{/loop}
{/if}
{if="isset($attachements.files)"}
{loop="$attachements.files"}
<li>
<a
href="{$value.href}"
class="enclosure"
type="{$value.type}"
target="_blank">
<span class="icon small gray">
<span class="zmdi zmdi-attachment-alt"></span>
</span>
<span>{$value.href|urldecode}</span>
</a>
</li>
{/loop}
{/if}
</ul>
{if="!$value->isShort() && isset($attachements.pictures)"}
<ul class="flex middle">
{loop="$attachements.pictures"}
<li class="block pic">
<span class="icon small gray">
<i class="zmdi zmdi-image"></i>
</span>
<a href="{$value.href}" class="alternate" target="_blank">
<img type="{$value.type}" src="{$value.href|urldecode}"/>
</a>
</li>
{/loop}
</ul>
{/if}
{if="$value->isMine()"}
<ul class="middle">
<li class="action">
<form>
<div class="action">
<div class="checkbox">
<input
type="checkbox"
id="privacy_{$value->nodeid}"
name="privacy_{$value->nodeid}"
{if="$value->isPublic()"}
checked
{/if}
onclick="Group_ajaxTogglePrivacy('{$value->nodeid}')">
<label for="privacy_{$value->nodeid}"></label>
</div>
</div>
</form>
<span class="icon gray">
<i class="zmdi zmdi-portable-wifi"></i>
</span>
<span>
<a target="_blank" href="{$value->getPublicUrl()}">
{$c->__('post.public')}
</a>
</span>
</li>
</ul>
{/if}
</footer>
{$comments = $c->getComments($value)}
{if="$comments"}
<ul class="divided spaced middle">
<li class="subheader">
{$c->__('post.comments')}
<span class="info">{$comments|count}</span>
</li>
{loop="$comments"}
<li class="condensed">
{$url = $value->getContact()->getPhoto('s')}
{if="$url"}
<span class="icon bubble">
<img src="{$url}">
</span>
{else}
<span class="icon bubble color {$value->getContact()->jid|stringToColor}">
<i class="zmdi zmdi-account"></i>
</span>
{/if}
<span class="info">{$value->published|strtotime|prepareDate}</span>
<span>
<a href="{$c->route('contact', $value->getContact()->jid)}">
{$value->getContact()->getTrueName()}
</a>
</span>
<p class="all">
{$value->contentraw}
</p>
</li>
{/loop}
<a href="{$c->route('news', $value->nodeid)}">
<li class="action">
<div class="action">
<i class="zmdi zmdi-chevron-right"></i>
</div>
<span class="icon">
<i class="zmdi zmdi-comment"></i>
</span>
<span>{$c->__('post.comment_add')}</span>
</li>
</a>
</ul>
{/if}
<br />
</article>-->
{/loop} {/loop}
{if="$posts != null && count($posts) >= $paging-1"} {if="$posts != null && count($posts) >= $paging-1"}
<ul class="active thick"> <ul class="list active thick">
<li onclick="Group_ajaxGetHistory('{$server}', '{$node}', {$page+1}); this.parentNode.parentNode.removeChild(this.parentNode);"> <li onclick="Group_ajaxGetHistory('{$server}', '{$node}', {$page+1}); this.parentNode.parentNode.removeChild(this.parentNode);">
<span class="icon"> <span class="primary icon">
<i class="zmdi zmdi-time-restore"></i> <i class="zmdi zmdi-time-restore"></i>
</span> </span>
{$c->__('post.older')} <p class="normal line">{$c->__('post.older')}</p>
</li> </li>
</ul> </ul>
{/if} {/if}

View file

@ -1,14 +1,15 @@
<section class="scroll"> <section class="scroll">
<ul class="thin divided simple"> <ul class="list thin divided simple">
<li class="subheader"> <li class="subheader">
{$c->__('group.subscriptions')} <p><span class="info">{$subscriptions|count}</span>{$c->__('group.subscriptions')}</p>
<span class="info">{$subscriptions|count}</span>
</li> </li>
{loop="$subscriptions"} {loop="$subscriptions"}
<li> <li>
<a href="{$c->route('contact', $value.jid)}"> <p class="normal">
{$value.jid} <a href="{$c->route('contact', $value.jid)}">
</a> {$value.jid}
</a>
</p>
</li> </li>
{/loop} {/loop}
</ul> </ul>

View file

@ -1,4 +1,4 @@
<div id="group_widget" class="card shadow spinner"> <div id="group_widget" class="card shadow spinner" style="background-color: #EEE;">
{$c->prepareEmpty()} {$c->prepareEmpty()}
{if="$server && $node"} {if="$server && $node"}
<script type="text/javascript"> <script type="text/javascript">

View file

@ -1,18 +1,22 @@
<div> <div>
<span id="menu" class="on_mobile icon active" onclick="MovimTpl.toggleMenu()"><i class="zmdi zmdi-menu"></i></span> <ul class="list middle">
<span class="on_desktop icon"><i class="zmdi zmdi-pages"></i></span> <li>
<form> <span id="menu" class="primary on_mobile icon active" onclick="MovimTpl.toggleMenu()"><i class="zmdi zmdi-menu"></i></span>
<div> <span class="primary on_desktop icon"><i class="zmdi zmdi-pages"></i></span>
<div class="select"> <form>
<select onchange="window[this.value].apply(this, [this.options[this.selectedIndex].dataset['server']]);" name="language" id="language"> <div>
<option value="Groups_ajaxSubscriptions" selected="selected">{$c->__('groups.subscriptions')}</option> <div class="select">
{loop="$servers"} <select onchange="window[this.value].apply(this, [this.options[this.selectedIndex].dataset['server']]);" name="language" id="language">
{if="!filter_var($value->server, FILTER_VALIDATE_EMAIL)"} <option value="Groups_ajaxSubscriptions" selected="selected">{$c->__('groups.subscriptions')}</option>
<option value="Groups_ajaxDisco" data-server="{$value->server}">{$value->server} - {$value->name} ({$value->number})</option> {loop="$servers"}
{/if} {if="!filter_var($value->server, FILTER_VALIDATE_EMAIL)"}
{/loop} <option value="Groups_ajaxDisco" data-server="{$value->server}">{$value->server} - {$value->name} ({$value->number})</option>
</select> {/if}
</div> {/loop}
</div> </select>
</form> </div>
</div>
</form>
</li>
</ul>
</div> </div>

View file

@ -1,4 +1,8 @@
<ul class="middle divided spaced active"> <ul class="list middle divided spaced active all">
<li class="subheader" onclick="Groups_ajaxSubscriptions()">
<span class="primary icon"><i class="zmdi zmdi-arrow-back"></i></span>
<p class="normal"><span class="info">{$nodes|count}</span>{$server}</p>
</li>
{loop="$nodes"} {loop="$nodes"}
<li <li
class=" class="
@ -10,33 +14,36 @@
title="{$value->server} - {$value->node}" title="{$value->server} - {$value->node}"
> >
{if="$value->subscription == 'subscribed'"} {if="$value->subscription == 'subscribed'"}
<div class="action"> <span class="control icon gray">
<i class="zmdi zmdi-bookmark"></i> <i class="zmdi zmdi-bookmark"></i>
</div> </span>
{/if} {/if}
<span class="icon bubble color {$value->node|stringToColor}">{$value->node|firstLetterCapitalize}</span> <span class="primary icon bubble color {$value->node|stringToColor}">{$value->node|firstLetterCapitalize}</span>
<span> <p class="line">
{if="$value->name"} {if="$value->name"}
{$value->name} {$value->name}
{else} {else}
{$value->node} {$value->node}
{/if} {/if}
{if="$value->description"}
<span class="second"> <span class="second">
{$value->description|strip_tags} {if="$value->description"}
{$value->description|strip_tags}
{/if}
</span> </span>
{/if} </p>
</span> <p>
<p class="wrap"> {if="isset($value->sub)"}
{if="$value->sub > 0"} {if="$value->sub > 0"}
{$c->__('groups.sub', $value->sub)} {$c->__('groups.sub', $value->sub)}
{/if} {/if}
{if="$value->sub > 0 && $value->num > 0"} {if="$value->sub > 0 && $value->num > 0"}
- -
{/if} {/if}
{if="$value->num > 0"} {if="$value->num > 0"}
{$c->__('groups.num', $value->num)} {$c->__('groups.num', $value->num)}
{/if}
{else}
{$value->node}
{/if} {/if}
</p> </p>
</li> </li>

View file

@ -7,29 +7,31 @@
</li> </li>
</ul> </ul>
{else} {else}
<ul class="divided spaced middle active"> <ul class="list divided spaced middle active all">
{loop="$subscriptions"} {loop="$subscriptions"}
{if="$c->checkNewServer($value)"} {if="$c->checkNewServer($value)"}
<li class="subheader"> <li class="subheader" onclick="Groups_ajaxDisco('{$value->server}')">
<a href="#" onclick="Groups_ajaxDisco('{$value->server}')">{$value->server} - {$value->servicename}</a> <span class="control icon gray"><i class="zmdi zmdi-chevron-right"></i></span>
<p>
{$value->server} - {$value->servicename}
</p>
</li> </li>
{/if} {/if}
<li <li
{if="$value->description"}class="condensed"{/if}
data-server="{$value->server}" data-server="{$value->server}"
data-node="{$value->node}" data-node="{$value->node}"
title="{$value->server} - {$value->node}" title="{$value->server} - {$value->node}"
> >
<span class="icon bubble color {$value->node|stringToColor}">{$value->node|firstLetterCapitalize}</span> <span class="primary icon bubble color {$value->node|stringToColor}">{$value->node|firstLetterCapitalize}</span>
<span> <p class="line normal">
{if="$value->name"} {if="$value->name"}
{$value->name} {$value->name}
{else} {else}
{$value->node} {$value->node}
{/if} {/if}
</span> </p>
{if="$value->description"} {if="$value->description"}
<p class="wrap">{$value->description|strip_tags}</p> <p class="line">{$value->description|strip_tags}</p>
{/if} {/if}
</li> </li>
{/loop} {/loop}

View file

@ -1,6 +1,9 @@
<div> <div>
<a href="{$c->route('main')}" class="classic"> <ul class="list middle">
<span id="menu" class="icon"><i class="zmdi zmdi-home"></i></span> <li>
</a> <a href="{$c->route('main')}" class="active classic">
<h2>{$c->__('page.administration')}</h2> <span id="menu" class="icon"><i class="zmdi zmdi-home"></i></span>
</a>
</li>
</ul>
</div> </div>

View file

@ -1,5 +1,9 @@
<div> <div>
<span id="menu" class="on_mobile icon active" onclick="MovimTpl.toggleMenu()"><i class="zmdi zmdi-menu"></i></span> <ul class="list middle">
<span class="on_desktop icon"><i class="zmdi zmdi-comments"></i></span> <li>
<h2>{$c->__('page.chats')}</h2> <span id="menu" class="primary on_mobile icon active" onclick="MovimTpl.toggleMenu()"><i class="zmdi zmdi-menu"></i></span>
<span class="primary icon on_desktop icon"><i class="zmdi zmdi-comments"></i></span>
<p>{$c->__('page.chats')}</p>
</li>
</ul>
</div> </div>

View file

@ -1,5 +1,9 @@
<div> <div>
<span id="menu" class="on_mobile icon active" onclick="MovimTpl.toggleMenu()"><i class="zmdi zmdi-menu"></i></span> <ul class="list middle">
<span class="on_desktop icon"><i class="zmdi zmdi-settings"></i></span> <li>
<h2>{$c->__('page.configuration')}</h2> <span id="menu" class="primary on_mobile icon active" onclick="MovimTpl.toggleMenu()"><i class="zmdi zmdi-menu"></i></span>
<span class="primary on_desktop icon"><i class="zmdi zmdi-settings"></i></span>
<p>{$c->__('page.configuration')}</p>
</li>
</ul>
</div> </div>

View file

@ -1,5 +1,9 @@
<div> <div>
<span id="menu" class="on_mobile icon active" onclick="MovimTpl.toggleMenu()"><i class="zmdi zmdi-menu"></i></span> <ul class="list middle">
<span class="on_desktop icon"><i class="zmdi zmdi-pages"></i></span> <li>
<h2>{$c->__('page.groups')}</h2> <span id="menu" class="primary on_mobile icon active" onclick="MovimTpl.toggleMenu()"><i class="zmdi zmdi-menu"></i></span>
<span class="primary on_desktop icon"><i class="zmdi zmdi-pages"></i></span>
<p>{$c->__('page.groups')}</p>
</li>
</ul>
</div> </div>

View file

@ -1,5 +1,9 @@
<div> <div>
<span id="menu" class="on_mobile icon active" onclick="MovimTpl.toggleMenu()"><i class="zmdi zmdi-menu"></i></span> <ul class="list middle">
<span class="on_desktop icon"><i class="zmdi zmdi-help"></i></span> <li>
<h2>{$c->__('page.help')}</h2> <span id="menu" class="primary on_mobile icon active" onclick="MovimTpl.toggleMenu()"><i class="zmdi zmdi-menu"></i></span>
<span class="primary on_desktop icon active"><i class="zmdi zmdi-help"></i></span>
<p>{$c->__('page.help')}</p>
</li>
</ul>
</div> </div>

View file

@ -1,9 +1,11 @@
<div></div>
<div> <div>
<ul class="active"> <ul class="list"><li></li></ul>
</div>
<div>
<ul class="list medium">
<a class="classic" href="{$c->route('pods')}"> <a class="classic" href="{$c->route('pods')}">
<li> <li>
<span class="icon"> <span class="control icon">
<i class="zmdi zmdi-apps"></i> <i class="zmdi zmdi-apps"></i>
</span> </span>
</li> </li>

View file

@ -1,9 +1,2 @@
[menu]
all = All
groups = Groups
contacts = Contacts
refresh = Refresh all the streams
me = My publications
[roster] [roster]
search = Search in your contacts search = Search in your contacts

View file

@ -1,40 +1,52 @@
<header>
<ul class="list middle">
<li>
<span id="menu" class="primary on_mobile icon active" onclick="MovimTpl.toggleMenu()"><i class="zmdi zmdi-menu"></i></span>
<span class="primary on_desktop icon gray"><i class="zmdi zmdi-home"></i></span>
<p class="center">{$c->__('page.home')}</p>
</li>
</ul>
</header>
<div id="hello_widget" class="divided"> <div id="hello_widget" class="divided">
{if="!isset($top) || !isset($news)"} {if="!isset($top) || !isset($news)"}
<ul class="simple thick"> <ul class="list thick">
{$a = '1f600'} {$a = '1f600'}
<li> <li>
<h2>{$c->__('hello.enter_title')}</h2> <p>{$c->__('hello.enter_title')}</p>
<p class="all">{$c->__('hello.enter_paragraph')} <img alt=":smiley:" class="emoji" src="{$a|getSmileyPath}"></p> <p>{$c->__('hello.enter_paragraph')} <img alt=":smiley:" class="emoji" src="{$a|getSmileyPath}"></p>
</li> </li>
</ul> </ul>
<ul class="middle"> <ul class="list middle">
<li class="condensed"> <li>
<span class="icon gray"> <span class="primary icon gray">
<i class="zmdi zmdi-menu on_mobile"></i> <i class="zmdi zmdi-menu on_mobile"></i>
<i class="zmdi zmdi-cloud-outline on_desktop"></i> <i class="zmdi zmdi-cloud-outline on_desktop"></i>
</span> </span>
<span>{$c->__('hello.menu_title')}</span> <p>{$c->__('hello.menu_title')}</p>
<p class="all">{$c->__('hello.menu_paragraph')}</p> <p>{$c->__('hello.menu_paragraph')}</p>
</li> </li>
</ul> </ul>
{/if} {/if}
<ul class="flex active middle"> <ul class="list flex active middle">
<li class="subheader block large">{$c->__('chat.frequent')}</li> <li class="subheader block large">
<p>{$c->__('chat.frequent')}</p>
</li>
{if="empty($top)"} {if="empty($top)"}
<li> <li>
<span class="icon gray"> <span class="primary icon gray">
<i class="zmdi zmdi-info-outline"></i> <i class="zmdi zmdi-info-outline"></i>
</span> </span>
<span>{$c->__('chats.empty_title')}</span> <p class="normal">{$c->__('chats.empty_title')}</p>
</li> </li>
{/if} {/if}
{loop="$top"} {loop="$top"}
<li tabindex="{$key+1}" class="block action {if="$value->status"}condensed{/if}" <li tabindex="{$key+1}" class="block"
onclick="Hello_ajaxChat('{$value->jid}')"> onclick="Hello_ajaxChat('{$value->jid}')">
{$url = $value->getPhoto('s')} {$url = $value->getPhoto('s')}
{if="$url"} {if="$url"}
<span <span
class="icon bubble class="primary icon bubble
{if="$value->value"} {if="$value->value"}
status {$presencestxt[$value->value]} status {$presencestxt[$value->value]}
{/if}"> {/if}">
@ -42,7 +54,7 @@
</span> </span>
{else} {else}
<span <span
class="icon bubble color {$value->jid|stringToColor} class="primary icon bubble color {$value->jid|stringToColor}
{if="$value->value"} {if="$value->value"}
status {$presencestxt[$value->value]} status {$presencestxt[$value->value]}
{/if}"> {/if}">
@ -50,35 +62,41 @@
</span> </span>
{/if} {/if}
<span>{$value->getTrueName()}</span> <p>{$value->getTrueName()}</p>
<p class="wrap">{$value->status}</p> <p>
{if="isset($value->status)"}
{$value->status}
{else}
{$value->jid}
{/if}
</p>
</li> </li>
{/loop} {/loop}
<a class="block large" href="{$c->route('chat')}"> <a class="block large" href="{$c->route('chat')}">
<li class="action"> <li>
<div class="action"> <span class="primary icon">
<i class="zmdi zmdi-chevron-right"></i>
</div>
<span class="icon">
<i class="zmdi zmdi-comments"></i> <i class="zmdi zmdi-comments"></i>
</span> </span>
<span>{$c->__('hello.chat')}</span> <span class="control icon">
<i class="zmdi zmdi-chevron-right"></i>
</span>
<p class="normal">{$c->__('hello.chat')}</p>
</li> </li>
</a> </a>
</ul> </ul>
{if="$c->supported('pubsub')"} {if="$c->supported('pubsub')"}
<ul id="news" class="card shadow flex active"> <ul id="news" class="list card shadow flex active">
{if="empty($news)"} {if="empty($news)"}
<li> <li>
<span class="icon gray"> <span class="control icon gray">
<i class="zmdi zmdi-info-outline"></i> <i class="zmdi zmdi-info-outline"></i>
</span> </span>
<span>{$c->__('menu.empty_title')}</span> <p>{$c->__('menu.empty_title')}</p>
</li> </li>
{/if} {/if}
{loop="$news"} {loop="$news"}
{$attachements = $value->getAttachements()} {$attachements = $value->getAttachements()}
<li class="block condensed" <li class="block "
data-id="{$value->nodeid}" data-id="{$value->nodeid}"
{if="$value->title != null"} {if="$value->title != null"}
title="{$value->title|strip_tags}" title="{$value->title|strip_tags}"
@ -89,29 +107,34 @@
> >
{$picture = $value->getPicture()} {$picture = $value->getPicture()}
{if="current(explode('.', $value->origin)) == 'nsfw'"} {if="current(explode('.', $value->origin)) == 'nsfw'"}
<span class="icon thumb color red tiny"> <span class="primary icon thumb color red tiny">
+18 +18
</span> </span>
{elseif="$picture != null"} {elseif="$picture != null"}
<span class="icon thumb" style="background-image: url({$picture});"></span> <span class="primary icon thumb" style="background-image: url({$picture});"></span>
{elseif="$value->node == 'urn:xmpp:microblog:0'"} {elseif="$value->node == 'urn:xmpp:microblog:0'"}
{$url = $value->getContact()->getPhoto('l')} {$url = $value->getContact()->getPhoto('l')}
{if="$url"} {if="$url"}
<span class="icon thumb" style="background-image: url({$url});"> <span class="primary icon thumb" style="background-image: url({$url});">
</span> </span>
{else} {else}
<span class="icon thumb color {$value->getContact()->jid|stringToColor}"> <span class="primary icon thumb color {$value->getContact()->jid|stringToColor}">
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> </span>
{/if} {/if}
{else} {else}
<span class="icon thumb color {$value->node|stringToColor}">{$value->node|firstLetterCapitalize}</span> <span class="primary icon thumb color {$value->node|stringToColor}">{$value->node|firstLetterCapitalize}</span>
{/if}
{if="$value->privacy"}
<span class="control icon gray" title="{$c->__('menu.public')}">
<i class="zmdi zmdi-portable-wifi"></i>
</span>
{/if} {/if}
{if="$value->title != null"} {if="$value->title != null"}
<span>{$value->title}</span> <p class="line">{$value->title}</p>
{else} {else}
<span>{$c->__('hello.contact_post')}</span> <p class="line">{$c->__('hello.contact_post')}</p>
{/if} {/if}
<p> <p>
{if="$value->node == 'urn:xmpp:microblog:0'"} {if="$value->node == 'urn:xmpp:microblog:0'"}
@ -126,50 +149,44 @@
{/if} {/if}
{$value->published|strtotime|prepareDate} {$value->published|strtotime|prepareDate}
</p> </p>
{if="$value->privacy"}
<span class="info" title="{$c->__('menu.public')}">
<i class="zmdi zmdi-portable-wifi"></i>
</span>
{/if}
<p>{$value->contentcleaned|strip_tags}</p> <p>{$value->contentcleaned|strip_tags}</p>
</li> </li>
{/loop} {/loop}
<a href="{$c->route('news')}"> <a href="{$c->route('news')}">
<li class="action"> <li>
<div class="action"> <span class="primary icon">
<i class="zmdi zmdi-chevron-right"></i>
</div>
<span class="icon">
<i class="zmdi zmdi-receipt"></i> <i class="zmdi zmdi-receipt"></i>
</span> </span>
<span>{$c->__('hello.news_page')}</span> <span class="control icon">
<i class="zmdi zmdi-chevron-right"></i>
</span>
<p class="normal line">{$c->__('hello.news_page')}</p>
</li> </li>
</a> </a>
</ul> </ul>
<br /> <br />
<ul class="active thick on_desktop"> <ul class="list active on_desktop">
<a href="{$c->route('blog', array($jid))}" target="_blank"> <a href="{$c->route('blog', array($jid))}" target="_blank">
<li class="condensed action"> <li>
<div class="action"> <span class="primary icon">
<i class="zmdi zmdi-chevron-right"></i>
</div>
<span class="icon">
<i class="zmdi zmdi-portable-wifi"></i> <i class="zmdi zmdi-portable-wifi"></i>
</span> </span>
<span>{$c->__('hello.blog_title')}</span> <span class="control icon">
<i class="zmdi zmdi-chevron-right"></i>
</span>
<p class="list">{$c->__('hello.blog_title')}</p>
<p>{$c->__('hello.blog_text')}</p> <p>{$c->__('hello.blog_text')}</p>
</li> </li>
<br/> <br/>
</a> </a>
</ul> </ul>
<ul class="thick flex on_desktop"> <ul class="list thick flex on_desktop">
<li class="condensed block"> <li class="block">
<span class="icon bubble color blue"> <span class="primary icon bubble color blue">
<i class="zmdi zmdi-share"></i> <i class="zmdi zmdi-share"></i>
</span> </span>
<span>{$c->__('hello.share_title')}</span> <p class="line">{$c->__('hello.share_title')}</p>
<p>{$c->__('hello.share_text')}</p> <p>{$c->__('hello.share_text')}</p>
</li> </li>
<li class="block"> <li class="block">

View file

@ -1,45 +1,41 @@
<div class="tabelem" title="{$c->__('page.help')}" id="help_widget"> <div class="tabelem" title="{$c->__('page.help')}" id="help_widget">
<ul class="thick active"> <ul class="list thick active">
<li class="condensed action"> <li>
<a href="https://github.com/edhelas/movim/wiki" target="_blank"> <span class="primary icon bubble color blue">
<span class="icon bubble color blue"> <i class="zmdi zmdi-github-alt"></i>
<i class="zmdi zmdi-github-alt"></i> </span>
</span> <span class="control icon gray">
<span>{$c->__('wiki.question')}</span>
<p>{$c->__('wiki.button')}</p>
</a>
<div class="action">
<i class="zmdi zmdi-chevron-right"></i> <i class="zmdi zmdi-chevron-right"></i>
</div> </span>
<p>{$c->__('wiki.question')}</p>
<p><a href="https://github.com/edhelas/movim/wiki" target="_blank">{$c->__('wiki.button')}</a></p>
</li> </li>
<li class="condensed action"> <li>
<a href="https://github.com/edhelas/movim/wiki/Mailing-List" target="_blank"> <span class="primary icon bubble color orange">
<span class="icon bubble color orange"> <i class="zmdi zmdi-email"></i>
<i class="zmdi zmdi-email"></i> </span>
</span> <span class="control icon gray">
<span>{$c->__('ml.question')}</span>
<p>{$c->__('ml.button')}</p>
</a>
<div class="action">
<i class="zmdi zmdi-chevron-right"></i> <i class="zmdi zmdi-chevron-right"></i>
</div> </span>
<p>{$c->__('ml.question')}</p>
<p><a href="https://github.com/edhelas/movim/wiki/Mailing-List" target="_blank">{$c->__('ml.button')}</a></p>
</li> </li>
<li class="condensed action" onclick="Help_ajaxAddChatroom()"> <li class="condensed action" onclick="Help_ajaxAddChatroom()">
<span class="icon bubble color green"> <span class="primary icon bubble color green">
<i class="zmdi zmdi-comment-text-alt"></i> <i class="zmdi zmdi-comment-text-alt"></i>
</span> </span>
<span>{$c->__('chatroom.question')}</span> <span class="control icon gray">
<p>{$c->__('chatroom.button')}<br/>movim@conference.movim.eu</p>
<div class="action">
<i class="zmdi zmdi-accounts-add"></i> <i class="zmdi zmdi-accounts-add"></i>
</div> </span>
<p>{$c->__('chatroom.question')}</p>
<p>{$c->__('chatroom.button')}<br/>movim@conference.movim.eu</p>
</li> </li>
</ul> </ul>
<!-- <!--
<div class="clear spacetop"></div> <div class="clear spacetop"></div>
<h2 class="padded_top_bottom">{$c->__('help.faq')}</h2> <h2 class="padded_top_bottom">{$c->__('help.faq')}</h2>
<div class="card"> <div class="card">
<article> <article>
<header> <header>

View file

@ -1,24 +1,24 @@
<section> <section>
<h3>{$c->__('account.title')}</h3> <h3>{$c->__('account.title')}</h3>
<br /> <br />
<ul class="active"> <ul class="list active middle">
{loop="$sessions"} {loop="$sessions"}
<li id="{$value->jid}" class="action condensed" title="{$value->jid}"> <li id="{$value->jid}" title="{$value->jid}">
<div class="action">
<i class="zmdi zmdi-close"></i>
</div>
{$url = $value->getPhoto('s')} {$url = $value->getPhoto('s')}
{if="$url"} {if="$url"}
<span class="icon bubble"> <span class="primary icon bubble">
<img src="{$url}"> <img src="{$url}">
</span> </span>
{else} {else}
<span class="icon bubble color {$value->jid|stringToColor}"> <span class="primary icon bubble color {$value->jid|stringToColor}">
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> </span>
{/if} {/if}
<span>{$value->getTrueName()}</span> <span class="control icon gray">
<p>{$value->jid}</p> <i class="zmdi zmdi-close"></i>
</span>
<p class="line">{$value->getTrueName()}</p>
<p class="line">{$value->jid}</p>
</li> </li>
{/loop} {/loop}
</ul> </ul>

View file

@ -7,14 +7,8 @@ body main {
background-size: 30rem auto, 100% 100%; background-size: 30rem auto, 100% 100%;
} }
body main > header {
box-shadow: none;
background-color: transparent;
}
@media screen and (max-width: 600px) { @media screen and (max-width: 600px) {
body main { body main {
/*background-image: none;*/
background-image: url(img/logo_cloud.svg); background-image: url(img/logo_cloud.svg);
background-size: auto 2.6rem, 100% 100%; background-size: auto 2.6rem, 100% 100%;
background-position: center 2.25rem; background-position: center 2.25rem;
@ -27,14 +21,6 @@ body main > header {
} }
} }
#login_widget li.new_account {
text-align: center;
}
#login_widget li.info {
padding: 1rem;
}
#login_widget > div { #login_widget > div {
display: none; display: none;
} }
@ -60,7 +46,6 @@ body main > header {
#login_widget form ul input { #login_widget form ul input {
margin: 0; margin: 0;
display: block;
height: 5rem; height: 5rem;
} }

View file

@ -30,47 +30,48 @@
<label for="pass">{$c->__('form.password')}</label> <label for="pass">{$c->__('form.password')}</label>
</div> </div>
<div> <div>
<ul class="simple thin"> <ul class="list thin">
<li class="action"> <li>
<div class="action"> <p class="center">
<a id="return_sessions" class="button flat" href="#" onclick="Login.toChoose()">
{$c->__('account.title')}
</a>
<input <input
type="submit" type="submit"
disabled disabled
data-loading="{$c->__('button.connecting')}" data-loading="{$c->__('button.connecting')}"
value="{$c->__('button.come_in')}" value="{$c->__('button.come_in')}"
class="button flat"/> class="button flat"/>
</div> </p>
<a id="return_sessions" class="button flat" href="#" onclick="Login.toChoose()">
{$c->__('account.title')}
</a>
</li> </li>
</ul> </ul>
</div> </div>
</form> </form>
{if="isset($info) && $info != ''"} {if="isset($info) && $info != ''"}
<ul class="thin simple card"> <ul class="list thin card">
<li class="info"> <li class="info">
<p>{$info}</p> <p class="normal">{$info}</p>
</li> </li>
</ul> </ul>
{/if} {/if}
{if="isset($whitelist) && $whitelist != ''"} {if="isset($whitelist) && $whitelist != ''"}
<ul class="thin simple card"> <ul class="list thin card">
<li class="info"> <li class="info">
<p>{$c->__('whitelist.info')} : {$whitelist}</p> <p class="normal">{$c->__('whitelist.info')} : {$whitelist}</p>
</li> </li>
</ul> </ul>
{/if} {/if}
<ul class="thin simple"> <ul class="list thin">
<li class="new_account"> <li>
<span>{$c->__('form.no_account')}<br /> <p class="normal center">
{$c->__('form.no_account')}
<a class="button flat" href="{$c->route('account')}"> <a class="button flat" href="{$c->route('account')}">
{$c->__('form.create_one')} {$c->__('form.create_one')}
</a> </a>
</span> </p>
</li> </li>
</ul> </ul>
</section> </section>

View file

@ -108,6 +108,7 @@ class Menu extends WidgetBase
RPC::call('movim_posts_unread', 0); RPC::call('movim_posts_unread', 0);
} }
RPC::call('Menu.refresh'); RPC::call('Menu.refresh');
//RPC::call('MovimTpl.scrollTop');
} }
function ajaxRefresh() function ajaxRefresh()
@ -162,6 +163,7 @@ class Menu extends WidgetBase
} }
$view->assign('items', $items); $view->assign('items', $items);
$view->assign('type', $type);
$view->assign('page', $page); $view->assign('page', $page);
$view->assign('paging', $this->_paging); $view->assign('paging', $this->_paging);

View file

@ -1,7 +1,29 @@
{if="$page == 0"}
<header>
<ul class="list middle">
<li>
<span id="menu" class="primary on_mobile icon active" onclick="MovimTpl.toggleMenu()"><i class="zmdi zmdi-menu"></i></span>
<span class="primary on_desktop icon gray"><i class="zmdi zmdi-filter-list"></i></span>
<p class="center line">{$c->__('page.news')}</p>
</li>
</ul>
<ul>
<li>
<ul class="tabs wide">
<li {if="$type == 'all'"}class="active"{/if}><a href="#" onclick="Menu_ajaxGetAll()">{$c->__('menu.all')}</a></li>
<li {if="$type == 'news'"}class="active"{/if} ><a href="#" onclick="Menu_ajaxGetNews()"><i class="zmdi zmdi-pages"></i></a></li>
<li {if="$type == 'feed'"}class="active"{/if}><a href="#" onclick="Menu_ajaxGetFeed()"><i class="zmdi zmdi-accounts"></i></a></li>
<li {if="$type == 'me'"}class="active"{/if}><a href="#" onclick="Menu_ajaxGetMe()"><i class="zmdi zmdi-portable-wifi"></i></a></li>
</ul>
</li>
</ul>
</header>
{/if}
{if="$items"} {if="$items"}
{if="$page == 0"} {if="$page == 0"}
<div id="menu_refresh"></div> <div id="menu_refresh"></div>
<ul class="card shadow active flex stacked" id="menu_wrapper"> <ul class="list card shadow active flex stacked" id="menu_wrapper">
{/if} {/if}
{loop="$items"} {loop="$items"}
@ -24,25 +46,31 @@
+18 +18
</span> </span>
{elseif="$picture != null"} {elseif="$picture != null"}
<span class="icon thumb" style="background-image: url({$picture});"></span> <span class="primary icon thumb" style="background-image: url({$picture});"></span>
{elseif="$value->node == 'urn:xmpp:microblog:0'"} {elseif="$value->node == 'urn:xmpp:microblog:0'"}
{$url = $value->getContact()->getPhoto('l')} {$url = $value->getContact()->getPhoto('l')}
{if="$url"} {if="$url"}
<span class="icon thumb" style="background-image: url({$url});"> <span class="primary icon thumb" style="background-image: url({$url});">
</span> </span>
{else} {else}
<span class="icon thumb color {$value->getContact()->jid|stringToColor}"> <span class="primary icon thumb color {$value->getContact()->jid|stringToColor}">
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> </span>
{/if} {/if}
{else} {else}
<span class="icon thumb color {$value->node|stringToColor}">{$value->node|firstLetterCapitalize}</span> <span class="primary icon thumb color {$value->node|stringToColor}">{$value->node|firstLetterCapitalize}</span>
{/if}
{if="$value->privacy"}
<span class="control icon gray" title="{$c->__('menu.public')}">
<i class="zmdi zmdi-portable-wifi"></i>
</span>
{/if} {/if}
{if="$value->title != null"} {if="$value->title != null"}
<span>{$value->title}</span> <p class="line">{$value->title}</p>
{else} {else}
<span>{$c->__('menu.contact_post')}</span> <p class="line">{$c->__('menu.contact_post')}</p>
{/if} {/if}
<p> <p>
{if="$value->node == 'urn:xmpp:microblog:0'"} {if="$value->node == 'urn:xmpp:microblog:0'"}
@ -58,19 +86,13 @@
{$value->published|strtotime|prepareDate} {$value->published|strtotime|prepareDate}
{if="$value->published != $value->updated"}<i class="zmdi zmdi-edit"></i>{/if} {if="$value->published != $value->updated"}<i class="zmdi zmdi-edit"></i>{/if}
</p> </p>
{if="$value->privacy"}
<span class="info" title="{$c->__('menu.public')}">
<i class="zmdi zmdi-portable-wifi"></i>
</span>
{/if}
<p>{$value->contentcleaned|stripTags}</p> <p>{$value->contentcleaned|stripTags}</p>
</li> </li>
{/loop} {/loop}
{if="count($items) == $paging"} {if="count($items) == $paging"}
<li id="history" class="block large" onclick="{$history} this.parentNode.removeChild(this);"> <li id="history" class="block large" onclick="{$history} this.parentNode.removeChild(this);">
<span class="icon"><i class="zmdi zmdi-time-restore"></i></span> <span class="icon primary"><i class="zmdi zmdi-time-restore"></i></span>
<span>{$c->__('post.older')}</span> <p class="normal center">{$c->__('post.older')}</p>
</li> </li>
{/if} {/if}

View file

@ -1,7 +1,7 @@
<ul class="card thin shadow flex stacked active"> <ul class="list card thin shadow flex stacked active">
<li class="block condensed" onclick="{$refresh} Notification_ajaxClear('news');"> <li class="block" onclick="{$refresh} Notification_ajaxClear('news');">
<span class="icon"><i class="zmdi zmdi-refresh-sync"></i></span> <span class="primary icon"><i class="zmdi zmdi-refresh-sync"></i></span>
<span> {$c->__('button.refresh')}</span> <p>{$c->__('button.refresh')}</p>
<p>{$c->__('post.new_items', $count)}</p> <p>{$c->__('post.new_items', $count)}</p>
</li> </li>
</ul> </ul>

View file

@ -4,3 +4,8 @@ contact_post = Contact post
empty = Welcome on your news feed, here you will see all the posts published by your contacts and in the groups you have subscribed. empty = Welcome on your news feed, here you will see all the posts published by your contacts and in the groups you have subscribed.
refresh = Refreshing all the streams refresh = Refreshing all the streams
public = This post is public public = This post is public
all = All
groups = Groups
contacts = Contacts
refresh = Refresh all the streams

View file

@ -1,48 +1,49 @@
<ul class="active"> <ul class="list active">
<a class="classic on_mobile" href="#"> <a class="classic on_mobile" href="#">
<li class="action" onclick="MovimTpl.toggleMenu()"> <li onclick="MovimTpl.toggleMenu()">
<span class="icon bubble on_mobile"><i class="zmdi zmdi-menu"></i></span> <span class="primary icon bubble on_mobile"><i class="zmdi zmdi-menu"></i></span>
<span>Movim</span> <span class="control icon bubble"><i class="zmdi zmdi-arrow-back"></i></span>
<p class="normal">Movim</p>
</li> </li>
</a> </a>
<a class="classic on_desktop" href="{$c->route('root')}"> <a class="classic on_desktop" href="{$c->route('root')}">
<li class="action {if="$page == 'main'"}active{/if}"> <li class="{if="$page == 'main'"}active{/if}">
<span class="icon bubble"><i class="zmdi zmdi-cloud-outline"></i></span> <span class="primary icon bubble"><i class="zmdi zmdi-cloud-outline"></i></span>
<span>{$c->__('page.home')}</span> <p class="normal">{$c->__('page.home')}</p>
</li> </li>
</a> </a>
<a class="classic on_mobile" href="{$c->route('root')}"> <a class="classic on_mobile" href="{$c->route('root')}">
<li class="action {if="$page == 'main'"}active{/if}"> <li class="{if="$page == 'main'"}active{/if}">
<span class="icon bubble"><i class="zmdi zmdi-home"></i></span> <span class="primary icon bubble"><i class="zmdi zmdi-home"></i></span>
<span>{$c->__('page.home')}</span> <p class="normal">{$c->__('page.home')}</p>
</li> </li>
</a> </a>
<a class="classic {if="!$c->supported('pubsub')"}disabled{/if}" href="{$c->route('news')}"> <a class="classic {if="!$c->supported('pubsub')"}disabled{/if}" href="{$c->route('news')}">
<li {if="$page == 'news'"}class="active"{/if}> <li {if="$page == 'news'"}class="active"{/if}>
<span class="icon"><i class="zmdi zmdi-receipt"></i></span> <span class="primary icon"><i class="zmdi zmdi-receipt"></i></span>
<span data-key="news" class="counter"></span> <span data-key="news" class="counter"></span>
<span>{$c->__('page.news')}</span> <p class="normal">{$c->__('page.news')}</p>
</li> </li>
</a> </a>
<a class="classic" href="{$c->route('contact')}"> <a class="classic" href="{$c->route('contact')}">
<li {if="$page == 'contact'"}class="active"{/if}> <li {if="$page == 'contact'"}class="active"{/if}>
<span class="icon"><i class="zmdi zmdi-accounts"></i></span> <span class="primary icon"><i class="zmdi zmdi-accounts"></i></span>
<span data-key="invite" class="counter"></span> <span data-key="invite" class="counter"></span>
<span>{$c->__('page.contacts')}</span> <p class="normal">{$c->__('page.contacts')}</p>
</li> </li>
</a> </a>
<a class="classic {if="!$c->supported('pubsub')"}disabled{/if}" href="{$c->route('group')}"> <a class="classic {if="!$c->supported('pubsub')"}disabled{/if}" href="{$c->route('group')}">
<li {if="$page == 'group'"}class="active"{/if}> <li {if="$page == 'group'"}class="active"{/if}>
<span class="icon"><i class="zmdi zmdi-pages"></i></span> <span class="primary icon"><i class="zmdi zmdi-pages"></i></span>
<span class="counter"></span> <span class="counter"></span>
<span>{$c->__('page.groups')}</span> <p class="normal">{$c->__('page.groups')}</p>
</li> </li>
</a> </a>
<a class="classic" href="{$c->route('chat')}"> <a class="classic" href="{$c->route('chat')}">
<li {if="$page == 'chat'"}class="active"{/if}> <li {if="$page == 'chat'"}class="active"{/if}>
<span class="icon"><i class="zmdi zmdi-comments"></i></span> <span class="primary icon"><i class="zmdi zmdi-comments"></i></span>
<span data-key="chat" class="counter"></span> <span data-key="chat" class="counter"></span>
<span>{$c->__('page.chats')}</span> <p class="normal">{$c->__('page.chats')}</p>
</li> </li>
</a> </a>
<!-- <!--
@ -54,3 +55,22 @@
</li> </li>
</a>--> </a>-->
</ul> </ul>
<ul class="list oppose active">
<a class="classic {if="!$c->supported('pubsub')"}disabled{/if}" href="{$c->route('conf')}">
<li>
<span class="primary icon">
<i class="zmdi zmdi-settings"></i>
</span>
<p class="normal">{$c->__('page.configuration')}</p>
</li>
</a>
<a class="classic" href="{$c->route('help')}">
<li>
<span class="primary icon">
<i class="zmdi zmdi-help"></i>
</span>
<p class="normal">{$c->__('page.help')}</p>
</li>
</a>
</ul>

View file

@ -1,12 +1,12 @@
{if="isset($action)"} {if="isset($action)"}
<a href="{$action}"> <a href="{$action}">
{/if} {/if}
<ul class="{if="!isset($picture)"}simple{/if}"> <ul class="list">
<li class="{if="isset($body)"}condensed{/if}"> <li>
{if="isset($picture)"} {if="isset($picture)"}
<span class="icon bubble"><img src="{$picture}"></span> <span class="primary icon bubble"><img src="{$picture}"></span>
{/if} {/if}
<span>{$title}</span> <p>{$title}</p>
{if="isset($body)"} {if="isset($body)"}
<p>{$body}</p> <p>{$body}</p>
{/if} {/if}

View file

@ -77,7 +77,7 @@ var Notification = {
if(Notification.favicon != null) if(Notification.favicon != null)
Notification.favicon.badge(Notification.tab_counter1 + Notification.tab_counter2); Notification.favicon.badge(Notification.tab_counter1 + Notification.tab_counter2);
if(Notification.electron != null) if(Notification.electron != null)
Notification.electron.notification(Notification.tab_counter1 + Notification.tab_counter2); Notification.electron.notification(Notification.tab_counter1 + Notification.tab_counter2);
} }

View file

@ -2,18 +2,18 @@
<h3>{$c->__('notifs.manage')}</h3> <h3>{$c->__('notifs.manage')}</h3>
<br /> <br />
<h4 class="gray">{$c->__('notifs.wants_to_talk', $jid)}</h4> <h4 class="gray">{$c->__('notifs.wants_to_talk', $jid)}</h4>
<ul class="active"> <ul class="list active">
<li onclick="Notifs_ajaxAccept('{$jid|echapJS}'); Dialog.clear();"> <li onclick="Notifs_ajaxAccept('{$jid|echapJS}'); Dialog.clear();">
<span class="icon green"> <span class="icon control green">
<i class="zmdi zmdi-account-add"></i> <i class="zmdi zmdi-account-add"></i>
</span> </span>
{$c->__('button.accept')} <p class="normal">{$c->__('button.accept')}</p>
</li> </li>
<li onclick="Notifs_ajaxRefuse('{$jid|echapJS}'); Dialog.clear();"> <li onclick="Notifs_ajaxRefuse('{$jid|echapJS}'); Dialog.clear();">
<span class="icon red"> <span class="control icon red">
<i class="zmdi zmdi-close"></i> <i class="zmdi zmdi-close"></i>
</span> </span>
{$c->__('button.refuse')} <p class="normal">{$c->__('button.refuse')}</p>
</li> </li>
</ul> </ul>

View file

@ -1,31 +1,31 @@
<ul class="active all"> <ul class="list active middle">
{if="$invitations"} {if="$invitations"}
<li class="subheader"> <li class="subheader">
{$c->__('notifs.title')} <p>
<span class="info">{$invitations|count}</span> <span class="info">{$invitations|count}</span>
{$c->__('notifs.title')}
</p>
</li> </li>
{/if} {/if}
{loop="$invitations"} {loop="$invitations"}
{if="isset($value)"} {if="isset($value)"}
<li data-jid="{$value->jid}" class="action"> <li data-jid="{$value->jid}" class="action">
<div class="action">
<a class="button flat" data-jid="{$value->jid}">
{$c->__('notifs.manage')}
</a>
</div>
{$url = $value->getPhoto('s')} {$url = $value->getPhoto('s')}
{if="$url"} {if="$url"}
<span class="icon bubble"> <span class="primary icon bubble">
<img src="{$url}"> <img src="{$url}">
</span> </span>
{else} {else}
<span class="icon bubble color {$value->jid|stringToColor}"> <span class="primary icon bubble color {$value->jid|stringToColor}">
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> </span>
{/if} {/if}
<span href="{$c->route('contact', $value->jid)}"> <span class="control icon active green" data-jid="{$value->jid}">
{$value->getTrueName()} <i class="zmdi zmdi-settings"></i>
</span> </span>
<p class="normal line">
{$value->getTrueName()}
</p>
</li> </li>
{/if} {/if}
{/loop} {/loop}

View file

@ -1,4 +1,3 @@
[notifs] [notifs]
title = Pending Invitations title = Pending Invitations
wants_to_talk= %s wants to talk with you wants_to_talk= %s wants to talk with you
manage = Manage

View file

@ -17,7 +17,7 @@ var Notifs = {
movim_add_class(this, 'active'); movim_add_class(this, 'active');
} }
items[i].querySelector('a.button.flat').onclick = function(e) { items[i].querySelector('span.control.icon').onclick = function(e) {
Notifs_ajaxAsk(this.dataset.jid); Notifs_ajaxAsk(this.dataset.jid);
} }
i++; i++;

View file

@ -31,7 +31,6 @@ class Post extends WidgetBase
{ {
function load() function load()
{ {
$this->addcss('post.css');
$this->addjs('post.js'); $this->addjs('post.js');
$this->registerEvent('microblog_commentsget_handle', 'onComments'); $this->registerEvent('microblog_commentsget_handle', 'onComments');
$this->registerEvent('microblog_commentpublish_handle', 'onCommentPublished'); $this->registerEvent('microblog_commentpublish_handle', 'onCommentPublished');
@ -107,10 +106,11 @@ class Post extends WidgetBase
->request(); ->request();
$html = $this->preparePost($p); $html = $this->preparePost($p);
$header = $this->prepareHeader($id); //$header = $this->prepareHeader($id);
Header::fill($header); //Header::fill($header);
RPC::call('movim_fill', 'post_widget', $html); RPC::call('movim_fill', 'post_widget', $html);
RPC::call('MovimTpl.scrollHeaders');
} }
function ajaxDelete($to, $node, $id) function ajaxDelete($to, $node, $id)
@ -172,6 +172,7 @@ class Post extends WidgetBase
return $view->draw('_post_empty', true); return $view->draw('_post_empty', true);
} }
/*
function prepareHeader($id) function prepareHeader($id)
{ {
$pd = new \Modl\PostnDAO; $pd = new \Modl\PostnDAO;
@ -187,7 +188,7 @@ class Post extends WidgetBase
return $view->draw('_post_header', true); return $view->draw('_post_header', true);
} }
*/
function preparePost($p, $external = false, $public = false) function preparePost($p, $external = false, $public = false)
{ {
$view = $this->tpl(); $view = $this->tpl();

View file

@ -1,89 +1,128 @@
{if="$external || $public"}
<article class="block"> <article class="block">
{if="isset($attachements.pictures)"} {/if}
{if="($public && $post->isPublic()) || !$public"}
<header {if="isset($attachements.pictures)"}
class="big" {if="($public && $post->isPublic()) || !$public"}
style=" <header
background-image: linear-gradient(to bottom, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.5) 100%), url('{$attachements['pictures'][0]['href']}');"> class="big"
{/if} style="
{else} background-image: linear-gradient(to bottom, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.5) 100%), url('{$attachements['pictures'][0]['href']}');">
<header>
{/if} {/if}
<ul class="thick"> {else}
<li class="condensed"> <header>
{if="$recycled"} {/if}
{$contact = $recycled} {if="!$external && !$public"}
{else} <ul class="list middle">
{$contact = $post->getContact()} <li>
<span class="primary icon active" onclick="MovimTpl.hidePanel(); Post_ajaxClear();">
<i class="zmdi zmdi-arrow-back"></i>
</span>
{if="$post->isMine() && !$public"}
{if="$post->isEditable()"}
<span class="control icon active" onclick="Publish_ajaxCreate('{$post->origin}', '{$post->node}', '{$post->nodeid}')" title="{$c->__('button.edit')}">
<i class="zmdi zmdi-edit"></i>
</span>
{/if}
<span class="control icon active" onclick="Post_ajaxDelete('{$post->origin}', '{$post->node}', '{$post->nodeid}')" title="{$c->__('button.delete')}">
<i class="zmdi zmdi-delete"></i>
</span>
{/if} {/if}
{if="$post->node == 'urn:xmpp:microblog:0'"} <p class="line">
<a href="{$c->route('contact', $contact->jid)}"> {if="$post->title != null"}
{$url = $contact->getPhoto('s')} {$post->title}
{if="$url"} {else}
<span class="icon bubble"> {$c->__('post.default_title')}
<img src="{$url}">
</span>
{else}
<span class="icon bubble color {$contact->jid|stringToColor}">
<i class="zmdi zmdi-account"></i>
</span>
{/if}
</a>
{else}
<a href="{$c->route('group', array($post->origin, $post->node))}">
<span class="icon bubble color {$post->node|stringToColor}">{$post->node|firstLetterCapitalize}</span>
</a>
{/if}
<h2 {if="$post->title != null"}title="{$post->title|strip_tags}"{/if}>
<a {if="$public"}
{if="$post->isMicroblog()"}
href="{$c->route('blog', array($post->origin, $post->nodeid))}"
{else}
href="{$c->route('node', array($post->origin, $post->node, $post->nodeid))}"
{/if}
{else}
href="{$c->route('news', $post->nodeid)}"
{/if}
>
{if="$post->title != null"}
{$post->title}
{else}
{$c->__('post.default_title')}
{/if}
</a>
</h2>
<p>
{if="$contact->getTrueName() != ''"}
{if="!$public"}
<a href="{$c->route('contact', $contact->jid)}">
{/if}
<i class="zmdi zmdi-account"></i> {$contact->getTrueName()}
{if="!$public"}</a>{/if}
{/if}
{if="$post->node != 'urn:xmpp:microblog:0'"}
{$post->origin} /
{if="!$public"}
<a href="{$c->route('group', array($post->origin, $post->node))}">
{/if}
<i class="zmdi zmdi-pages"></i> {$post->node}
{if="!$public"}</a>{/if}
{/if}
{$post->published|strtotime|prepareDate}
{if="$post->published != $post->updated"}
- <i class="zmdi zmdi-edit"></i> {$post->updated|strtotime|prepareDate}
{/if} {/if}
</p> </p>
</li> </li>
</ul> </div>
</header> {/if}
<ul class="list thick">
<li>
{if="$recycled"}
{$contact = $recycled}
{else}
{$contact = $post->getContact()}
{/if}
{if="$post->node == 'urn:xmpp:microblog:0'"}
{$url = $contact->getPhoto('s')}
{if="$url"}
<span class="icon primary bubble">
<a href="{$c->route('contact', $contact->jid)}">
<img src="{$url}">
</a>
</span>
{else}
<span class="icon primary bubble color {$contact->jid|stringToColor}">
<a href="{$c->route('contact', $contact->jid)}">
<i class="zmdi zmdi-account"></i>
</a>
</span>
{/if}
{else}
<span class="icon primary bubble color {$post->node|stringToColor}">
{$post->node|firstLetterCapitalize}
</span>
{/if}
<p {if="$post->title != null"}title="{$post->title|strip_tags}"{/if}>
<a {if="$public"}
{if="$post->isMicroblog()"}
href="{$c->route('blog', array($post->origin, $post->nodeid))}"
{else}
href="{$c->route('node', array($post->origin, $post->node, $post->nodeid))}"
{/if}
{else}
href="{$c->route('news', $post->nodeid)}"
{/if}
>
{if="$post->title != null"}
{$post->title}
{else}
{$c->__('post.default_title')}
{/if}
</a>
</p>
<p>
{if="$contact->getTrueName() != ''"}
{if="!$public"}
<a href="{$c->route('contact', $contact->jid)}">
{/if}
<i class="zmdi zmdi-account"></i> {$contact->getTrueName()}
{if="!$public"}</a>{/if}
{/if}
{if="$post->node != 'urn:xmpp:microblog:0'"}
{$post->origin} /
{if="!$public"}
<a href="{$c->route('group', array($post->origin, $post->node))}">
{/if}
<i class="zmdi zmdi-pages"></i> {$post->node}
{if="!$public"}</a>{/if}
{/if}
{$post->published|strtotime|prepareDate}
{if="$post->published != $post->updated"}
- <i class="zmdi zmdi-edit"></i> {$post->updated|strtotime|prepareDate}
{/if}
</p>
</li>
</ul>
</header>
{if="!$external && !$public"}
<article class="block">
{/if}
{if="$public && !$post->isPublic()"} {if="$public && !$post->isPublic()"}
<ul class="thick"> <ul class="list thick">
<li> <li>
<span class="icon color gray bubble"> <span class="primary icon color gray bubble">
<i class="zmdi zmdi-lock"></i> <i class="zmdi zmdi-lock"></i>
</span> </span>
<p class="center"> {$c->__('blog.private')} - <a href="{$c->route('main')}">{$c->__('page.login')}</a></p> <p class="line center normal"> {$c->__('blog.private')} - <a href="{$c->route('main')}">{$c->__('page.login')}</a></p>
</li> </li>
</ul> </ul>
<br /> <br />
@ -108,28 +147,30 @@
<footer> <footer>
{$tags = $post->getTags()} {$tags = $post->getTags()}
{if="isset($tags)"} {if="isset($tags)"}
<ul class="middle"> <ul class="list middle">
<li> <li>
<span class="icon zmdi zmdi-tag gray"></span> <span class="primary icon zmdi zmdi-tag gray"></span>
<span> <p class="normal">
{loop="$tags"} {loop="$tags"}
<a target="_blank" href="{$c->route('tag', array($value))}">#{$value}</a> <a target="_blank" href="{$c->route('tag', array($value))}">#{$value}</a>
{/loop} {/loop}
</span> </p>
</li> </li>
</ul> </ul>
{/if} {/if}
<ul class="middle divided spaced"> <ul class="list middle divided spaced">
{if="isset($attachements.links)"} {if="isset($attachements.links)"}
{loop="$attachements.links"} {loop="$attachements.links"}
{if="substr($value.href, 0, 5) != 'xmpp:' && filter_var($value.href, FILTER_VALIDATE_URL)"} {if="substr($value.href, 0, 5) != 'xmpp:' && filter_var($value.href, FILTER_VALIDATE_URL)"}
<li> <li>
<span class="icon"> <span class="primary icon">
<img src="https://icons.duckduckgo.com/ip2/{$value.url.host}.ico"/> <img src="https://icons.duckduckgo.com/ip2/{$value.url.host}.ico"/>
</span> </span>
<a href="{$value.href}" class="alternate" target="_blank"> <p class="normal line">
<span>{$value.href|urldecode}</span> <a href="{$value.href}" class="alternate" target="_blank">
</a> {$value.href|urldecode}
</a>
</p>
</li> </li>
{/if} {/if}
{/loop} {/loop}
@ -137,25 +178,27 @@
{if="isset($attachements.files)"} {if="isset($attachements.files)"}
{loop="$attachements.files"} {loop="$attachements.files"}
<li> <li>
<a <span class="primary icon gray">
href="{$value.href}" <span class="zmdi zmdi-attachment-alt"></span>
class="enclosure" </span>
type="{$value.type}" <p class="normal line">
target="_blank"> <a
<span class="icon gray"> href="{$value.href}"
<span class="zmdi zmdi-attachment-alt"></span> class="enclosure"
</span> type="{$value.type}"
<span>{$value.href|urldecode}</span> target="_blank">
</a> {$value.href|urldecode}
</a>
</p>
</li> </li>
{/loop} {/loop}
{/if} {/if}
</ul> </ul>
{if="!$post->isShort() && isset($attachements.pictures)"} {if="!$post->isShort() && isset($attachements.pictures)"}
<ul class="flex middle"> <ul class="list flex middle">
{loop="$attachements.pictures"} {loop="$attachements.pictures"}
<li class="block pic"> <li class="block pic">
<span class="icon gray"> <span class="primary icon gray">
<i class="zmdi zmdi-image"></i> <i class="zmdi zmdi-image"></i>
</span> </span>
<a href="{$value.href}" class="alternate" target="_blank"> <a href="{$value.href}" class="alternate" target="_blank">
@ -166,36 +209,38 @@
</ul> </ul>
{/if} {/if}
{if="$post->isMine() && !$public"} {if="$post->isMine() && !$public"}
<ul class="middle"> <ul class="list middle">
<li class="action"> <li>
<form> <span class="primary icon gray">
<div class="action">
<div class="checkbox">
<input
type="checkbox"
id="privacy"
name="privacy"
{if="$post->privacy"}
checked
{/if}
{if="$external"}
onclick="Group_ajaxTogglePrivacy('{$post->nodeid}')"
{else}
onclick="Post_ajaxTogglePrivacy('{$post->nodeid}')"
{/if}
>
<label for="privacy"></label>
</div>
</div>
</form>
<span class="icon gray">
<i class="zmdi zmdi-portable-wifi"></i> <i class="zmdi zmdi-portable-wifi"></i>
</span> </span>
<span> <span class="control">
<form>
<div class="action">
<div class="checkbox">
<input
type="checkbox"
id="privacy"
name="privacy"
{if="$post->privacy"}
checked
{/if}
{if="$external"}
onclick="Group_ajaxTogglePrivacy('{$post->nodeid}')"
{else}
onclick="Post_ajaxTogglePrivacy('{$post->nodeid}')"
{/if}
>
<label for="privacy"></label>
</div>
</div>
</form>
</span>
<p class="line normal">
<a target="_blank" href="{$post->getPublicUrl()}"> <a target="_blank" href="{$post->getPublicUrl()}">
{$c->__('post.public')} {$c->__('post.public')}
</a> </a>
</span> </p>
</li> </li>
</ul> </ul>
{/if} {/if}
@ -203,23 +248,24 @@
{if="$recycled"} {if="$recycled"}
<a href="{$c->route('contact', $post->getContact()->jid)}"> <a href="{$c->route('contact', $post->getContact()->jid)}">
<ul class="active middle"> <ul class="list active middle">
<li class="condensed action"> <li>
<div class="action">
<i class="zmdi zmdi-chevron-right"></i>
</div>
{$url = $post->getContact()->getPhoto('s')} {$url = $post->getContact()->getPhoto('s')}
{if="$url"} {if="$url"}
<span class="icon bubble" style="background-image: url('{$url}');"> <span class="primary icon bubble" style="background-image: url('{$url}');">
<i class="zmdi zmdi-loop"></i> <i class="zmdi zmdi-loop"></i>
</span> </span>
{else} {else}
<span class="icon bubble color {$post->getContact()->jid|stringToColor}"> <span class="primary icon bubble color {$post->getContact()->jid|stringToColor}">
<i class="zmdi zmdi-loop"></i> <i class="zmdi zmdi-loop"></i>
</span> </span>
{/if} {/if}
<span>{$c->__('post.repost', $post->getContact()->getTrueName())}</span> <div class="control">
<i class="zmdi zmdi-chevron-right"></i>
</div>
<p>{$c->__('post.repost', $post->getContact()->getTrueName())}</p>
<p>{$c->__('post.repost_profile', $post->getContact()->getTrueName())}</p> <p>{$c->__('post.repost_profile', $post->getContact()->getTrueName())}</p>
</li> </li>
</ul> </ul>
@ -229,28 +275,30 @@
{if="$external"} {if="$external"}
{$comments = $c->getComments($post)} {$comments = $c->getComments($post)}
{if="$comments"} {if="$comments"}
<ul class="spaced middle"> <ul class="list spaced middle">
<li class="subheader"> <li class="subheader">
{$c->__('post.comments')} <p>
<span class="info">{$comments|count}</span> <span class="info">{$comments|count}</span>
{$c->__('post.comments')}
</p>
</li> </li>
{loop="$comments"} {loop="$comments"}
<li class="condensed"> <li>
{$url = $value->getContact()->getPhoto('s')} {$url = $value->getContact()->getPhoto('s')}
{if="$url"} {if="$url"}
<span class="icon bubble"> <span class="primary icon bubble">
<img src="{$url}"> <img src="{$url}">
</span> </span>
{else} {else}
<span class="icon bubble color {$value->getContact()->jid|stringToColor}"> <span class="primary icon bubble color {$value->getContact()->jid|stringToColor}">
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> </span>
{/if} {/if}
<span class="info">{$value->published|strtotime|prepareDate}</span> <p>
<span>
{$value->getContact()->getTrueName()} {$value->getContact()->getTrueName()}
</span> </p>
<p class="all"> <p>
<span class="info">{$value->published|strtotime|prepareDate}</span>
{if="$value->title"} {if="$value->title"}
{$value->title} {$value->title}
{else} {else}

View file

@ -1,33 +1,35 @@
<ul class="divided spaced middle"> <ul class="list divided spaced middle">
<li class="subheader"> <li class="subheader">
{$c->__('post.comments')} <p><span class="info">{$comments|count}</span> {$c->__('post.comments')}</p>
<span class="info">{$comments|count}</span>
</li> </li>
{loop="$comments"} {loop="$comments"}
<li class="condensed {if="$value->isMine()"}action{/if}"> <li>
{if="$value->isMine()"} {if="$value->isMine()"}
<div class="action" onclick="Post_ajaxDelete('{$value->origin}', '{$value->node}', '{$value->nodeid}')"> <span class="control icon gray active" onclick="Post_ajaxDelete('{$value->origin}', '{$value->node}', '{$value->nodeid}')">
<i class="zmdi zmdi-delete"></i> <i class="zmdi zmdi-delete"></i>
</div> </span>
{/if} {/if}
<a href="{$c->route('contact', $value->getContact()->jid)}">
{$url = $value->getContact()->getPhoto('s')} {$url = $value->getContact()->getPhoto('s')}
{if="$url"} {if="$url"}
<span class="icon bubble"> <span class="primary icon bubble">
<a href="{$c->route('contact', $value->getContact()->jid)}">
<img src="{$url}"> <img src="{$url}">
</span> </a>
{else} </span>
<span class="icon bubble color {$value->getContact()->jid|stringToColor}"> {else}
<span class="primary icon bubble color {$value->getContact()->jid|stringToColor}">
<a href="{$c->route('contact', $value->getContact()->jid)}">
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> </a>
{/if} </span>
</a> {/if}
<span class="info">{$value->published|strtotime|prepareDate}</span> <p>
<span> <span class="info">{$value->published|strtotime|prepareDate}</span>
<a href="{$c->route('contact', $value->getContact()->jid)}"> <a href="{$c->route('contact', $value->getContact()->jid)}">
{$value->getContact()->getTrueName()} {$value->getContact()->getTrueName()}
</a> </a>
</span> </p>
<p class="all"> <p class="all">
{if="$value->contentraw"} {if="$value->contentraw"}
{$value->contentraw} {$value->contentraw}
@ -37,13 +39,13 @@
</p> </p>
</li> </li>
{/loop} {/loop}
<li class="action"> <li>
<div class="action" onclick="Post_ajaxPublishComment(movim_form_to_json('comment'),'{$server}', '{$node}', '{$id}')"> <span class="primary icon gray">
<i class="zmdi zmdi-mail-send"></i>
</div>
<span class="icon gray">
<i class="zmdi zmdi-comment"></i> <i class="zmdi zmdi-comment"></i>
</span> </span>
<span class="control icon gray" onclick="Post_ajaxPublishComment(movim_form_to_json('comment'),'{$server}', '{$node}', '{$id}')">
<i class="zmdi zmdi-mail-send"></i>
</span>
<form name="comment"> <form name="comment">
<div> <div>
<textarea <textarea

View file

@ -1,10 +1,10 @@
<ul class="middle"> <ul class="list middle">
<li> <li>
<span class="icon gray"> <span class="primary icon gray">
<i class="zmdi zmdi-comment"></i> <i class="zmdi zmdi-comment"></i>
</span> </span>
<span> <p class="normal">
{$c->__('post.comments_disabled')} {$c->__('post.comments_disabled')}
</span> </p>
</li> </li>
</ul> </ul>

View file

@ -1,6 +1,7 @@
<br />
<h2 class="thin">{$c->__('post.hot')}</h2> <h2 class="thin">{$c->__('post.hot')}</h2>
<h4 class="gray">{$c->__('post.hot_text')}</h4><br /> <h4 class="gray">{$c->__('post.hot_text')}</h4><br />
<ul class="flex card shadow active"> <ul class="list flex card shadow active">
{loop="$posts"} {loop="$posts"}
{if="!filter_var($value->origin, FILTER_VALIDATE_EMAIL)"} {if="!filter_var($value->origin, FILTER_VALIDATE_EMAIL)"}
{$attachements = $value->getAttachements()} {$attachements = $value->getAttachements()}
@ -11,23 +12,23 @@
data-node="{$value->node}"> data-node="{$value->node}">
{$picture = $value->getPicture()} {$picture = $value->getPicture()}
{if="current(explode('.', $value->origin)) == 'nsfw'"} {if="current(explode('.', $value->origin)) == 'nsfw'"}
<span class="icon thumb color red tiny"> <span class="primary icon thumb color red tiny">
+18 +18
</span> </span>
{elseif="$picture != null"} {elseif="$picture != null"}
<span class="icon thumb" style="background-image: url({$picture});"></span> <span class="primary icon thumb" style="background-image: url({$picture});"></span>
{else} {else}
<span class="icon thumb color {$value->node|stringToColor}"> <span class="primary icon thumb color {$value->node|stringToColor}">
{$value->node|firstLetterCapitalize} {$value->node|firstLetterCapitalize}
</span> </span>
{/if} {/if}
<span> <p class="line">
{if="isset($value->title)"} {if="isset($value->title)"}
{$value->title} {$value->title}
{else} {else}
{$value->node} {$value->node}
{/if} {/if}
</span> </p>
<p> <p>
{$value->origin} / {$value->origin} /
<a href="{$c->route('group', array($value->origin, $value->node))}"> <a href="{$c->route('group', array($value->origin, $value->node))}">
@ -45,14 +46,14 @@
{/if} {/if}
{/loop} {/loop}
</ul> </ul>
<ul class="active thick"> <ul class="list active thick">
<a href="{$c->route('group')}"> <a href="{$c->route('group')}">
<li class="action"> <li>
<div class="action"> <span class="primary icon"><i class="zmdi zmdi-pages"></i></span>
<span class="control icon">
<i class="zmdi zmdi-chevron-right"></i> <i class="zmdi zmdi-chevron-right"></i>
</div> </span>
<span class="icon"><i class="zmdi zmdi-pages"></i></span> <p class="normal">{$c->__('post.discover')}</p>
<span>Discover more articles on the Groups page</span>
</li> </li>
</a> </a>
</ul> </ul>

View file

@ -17,5 +17,7 @@ public_no = This post is now private
delete_title = Delete this post delete_title = Delete this post
delete_text = You are going to delete this post, please confirm your action delete_text = You are going to delete this post, please confirm your action
discover = Discover more articles on the Groups page
comments_disabled = Comments disabled comments_disabled = Comments disabled
comment_published = Comment published comment_published = Comment published

View file

@ -1,4 +1,4 @@
<div id="post_widget" class="card shadow"> <div id="post_widget">
{$c->prepareEmpty()} {$c->prepareEmpty()}
{if="$nodeid"} {if="$nodeid"}
<script type="text/javascript"> <script type="text/javascript">

View file

@ -1,34 +1,19 @@
<li onclick="{$dialog} MovimTpl.hideMenu()" class="condensed action"> <li onclick="{$dialog} MovimTpl.hideMenu()">
<div class="action">
<i class="zmdi zmdi-edit"></i>
</div>
{$url = $me->getPhoto('s')} {$url = $me->getPhoto('s')}
{if="$url"} {if="$url"}
<span <span
class="icon bubble status {if="$presence->value != null"}{$presencetxt[$presence->value]}{/if}" class="primary icon bubble status {if="$presence->value != null"}{$presencetxt[$presence->value]}{/if}"
style="background-image: url({$me->getPhoto('m')})"> style="background-image: url({$me->getPhoto('m')})">
</span> </span>
{else} {else}
<span class="icon bubble color {$me->jid|stringToColor} status {if="$presence->value != null"}{$presencetxt[$presence->value]}{/if}"> <span class="primary icon bubble color {$me->jid|stringToColor} status {if="$presence->value != null"}{$presencetxt[$presence->value]}{/if}">
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> </span>
{/if} {/if}
<span>{$me->getTrueName()}</span> <!--
<p class="wrap">{$presence->status}</p> <span class="control icon gray">
<i class="zmdi zmdi-edit"></i>
</span>-->
<p class="line">{$me->getTrueName()}</p>
<p class="line">{$presence->status}</p>
</li> </li>
<a class="classic {if="!$c->supported('pubsub')"}disabled{/if}" href="{$c->route('conf')}">
<li>
<span class="icon">
<i class="zmdi zmdi-settings"></i>
</span>
<span>{$c->__('page.configuration')}</span>
</li>
</a>
<a class="classic" href="{$c->route('help')}">
<li>
<span class="icon">
<i class="zmdi zmdi-help"></i>
</span>
<span>{$c->__('page.help')}</span>
</li>
</a>

View file

@ -3,7 +3,7 @@
<h3>{$c->__('status.status')}</h3> <h3>{$c->__('status.status')}</h3>
<div> <div>
<textarea <textarea
spellcheck="false" spellcheck="false"
name="status" name="status"
placeholder="{$c->__('status.here')}" placeholder="{$c->__('status.here')}"
@ -12,55 +12,57 @@
</div> </div>
<div> <div>
<ul class="active"> <ul class="list active">
<li class="action"> <li>
<span class="icon bubble color small green"></span> <span class="primary icon bubble color small green"></span>
<div class="action"> <span class="control">
<div class="radio"> <div class="radio">
<input type="radio" name="value" id="chat" value="chat" {if="isset($p) && $p->value == 1"}checked="checked"{/if}/> <input type="radio" name="value" id="chat" value="chat" {if="isset($p) && $p->value == 1"}checked="checked"{/if}/>
<label for="chat"></label> <label for="chat"></label>
</div> </div>
</div> </span>
<span>{$txt[1]}</span> <p class="normal">{$txt[1]}</p>
</li> </li>
<li class="action"> <li>
<span class="icon bubble color small orange"></span> <span class="primary icon bubble color small orange"></span>
<div class="action"> <span class="control">
<div class="radio"> <div class="radio">
<input type="radio" name="value" id="away" value="away" {if="isset($p) && $p->value == 2"}checked="checked"{/if}/> <input type="radio" name="value" id="away" value="away" {if="isset($p) && $p->value == 2"}checked="checked"{/if}/>
<label for="away"></label> <label for="away"></label>
</div> </div>
</div> </span>
<span>{$txt[2]}</span> <p class="normal">{$txt[2]}</p>
</li> </li>
<li class="action"> <li>
<span class="icon bubble color small red"></span> <span class="primary icon bubble color small red"></span>
<div class="action"> <span class="control">
<div class="radio"> <div class="radio">
<input type="radio" name="value" id="dnd" value="dnd" {if="isset($p) && $p->value == 3"}checked="checked"{/if}/> <input type="radio" name="value" id="dnd" value="dnd" {if="isset($p) && $p->value == 3"}checked="checked"{/if}/>
<label for="dnd"></label> <label for="dnd"></label>
</div> </div>
</div> </span>
<span>{$txt[3]}</span> <p class="normal">{$txt[3]}</p>
</li> </li>
<li class="action"> <li>
<span class="icon bubble color small purple"></span> <span class="primary icon bubble color small purple"></span>
<div class="action"> <span class="control">
<div class="radio"> <div class="radio">
<input type="radio" name="value" id="xa" value="xa" {if="isset($p) && $p->value == 4"}checked="checked"{/if}/> <input type="radio" name="value" id="xa" value="xa" {if="isset($p) && $p->value == 4"}checked="checked"{/if}/>
<label for="xa"></label> <label for="xa"></label>
</div> </div>
</div> </span>
<span>{$txt[4]}</span> <p class="normal">{$txt[4]}</p>
</li> </li>
</ul> </ul>
</div> </div>
</form> </form>
<ul class="active"> <ul class="list active">
<li class="subheader">{$c->__('status.disconnect')}</li> <li class="subheader">
<p class="normal">{$c->__('status.disconnect')}</p>
</li>
<li onclick="{$calllogout}"> <li onclick="{$calllogout}">
<span class="icon"><i class="zmdi zmdi-sign-in"></i></span> <span class="primary icon"><i class="zmdi zmdi-sign-in"></i></span>
<span>{$c->__('status.disconnect')}</span> <p class="normal">{$c->__('status.disconnect')}</p>
</li> </li>
</ul> </ul>
<!-- <!--

View file

@ -1,3 +1,3 @@
<ul id="presence_widget" class="active oppose thick"> <ul id="presence_widget" class="list active thick">
{$presence} {$presence}
</ul> </ul>

View file

@ -126,7 +126,7 @@ class Publish extends WidgetBase
{ {
if($form->content->value != '') { if($form->content->value != '') {
$view = $this->tpl(); $view = $this->tpl();
$view->assign('content', Markdown::defaultTransform($form->content->value)); $view->assign('content', addHFR(Markdown::defaultTransform($form->content->value)));
Dialog::fill($view->draw('_publish_preview', true), true); Dialog::fill($view->draw('_publish_preview', true), true);
} else { } else {
@ -175,7 +175,7 @@ class Publish extends WidgetBase
if($form->content->value != '') { if($form->content->value != '') {
$content = $form->content->value; $content = $form->content->value;
$content_xhtml = Markdown::defaultTransform($content); $content_xhtml = addHFR(Markdown::defaultTransform($content));
} }
if($form->id->value != '') { if($form->id->value != '') {

View file

@ -1,4 +1,42 @@
<form name="post" class="block"> <header>
<ul class="list middle">
<li>
<span class="primary icon active" onclick="Publish.headerBack('{$server}', '{$node}', false);">
<i class="zmdi zmdi-arrow-back"></i>
</span>
<span id="button_send" class="control icon active" onclick="Publish.disableSend(); Publish_ajaxPublish(movim_form_to_json('post'));">
<i class="zmdi zmdi-mail-send"></i>
</span>
<span class="control icon active" onclick="Publish_ajaxHelp()">
<i class="zmdi zmdi-help"></i>
</span>
<span class="control icon active" onclick="Publish_ajaxPreview(movim_form_to_json('post'))">
<i class="zmdi zmdi-eye"></i>
</span>
{if="$item != false"}
<p class="line">{$c->__('publish.edit')}</p>
{else}
<p class="line">{$c->__('publish.new')}</p>
{/if}
<!--
<p>
{if="$item != null && $item->node != 'urn:xmpp:microblog:0'"}
{if="$item->name"}
{$item->name}
{else}
{$item->node}
{/if}
{else}
{$c->__('page.blog')}
{/if}
</p>-->
</li>
</ul>
</header>
<form name="post" class="block padded">
<input type="hidden" name="to" value="{$to}"> <input type="hidden" name="to" value="{$to}">
<input type="hidden" name="node" value="{$node}"> <input type="hidden" name="node" value="{$node}">
<input type="hidden" name="id" value="{if="$item != false"}{$item->nodeid}{/if}"> <input type="hidden" name="id" value="{if="$item != false"}{$item->nodeid}{/if}">
@ -38,13 +76,13 @@
<label for="content">{$c->__('post.content_label')}</label> <label for="content">{$c->__('post.content_label')}</label>
</div> </div>
<ul class="middle flex active"> <ul class="list middle flex active">
{if="$c->supported('upload')"} {if="$c->supported('upload')"}
<li class="block large" onclick="Upload_ajaxRequest()"> <li class="block large" onclick="Upload_ajaxRequest()">
<span class="icon"> <span class="primary icon">
<i class="zmdi zmdi-attachment-alt"></i> <i class="zmdi zmdi-attachment-alt"></i>
</span> </span>
<span>{$c->__('publish.attach')}</span> <p class="normal line">{$c->__('publish.attach')}</p>
</li> </li>
{/if} {/if}
</ul> </ul>

View file

@ -1,10 +1,10 @@
<ul class="thick"> <ul class="list thick">
<li class="condensed"> <li>
<span class="icon bubble" style="background-image: url({$embed->images[0]['value']|htmlspecialchars});"> <span class="primary icon bubble" style="background-image: url({$embed->images[0]['value']|htmlspecialchars});">
<i class="zmdi zmdi-image"></i> <i class="zmdi zmdi-image"></i>
</span> </span>
<span>{$c->__('post.gallery')}</span> <p>{$c->__('post.gallery')}</p>
<p> <p class="list">
<a href="{$embed->images[0]['value']|htmlspecialchars}" target="_blank"> <a href="{$embed->images[0]['value']|htmlspecialchars}" target="_blank">
{$embed->images[0]['value']|htmlspecialchars} {$embed->images[0]['value']|htmlspecialchars}
</a> </a>

View file

@ -1,44 +1,44 @@
<div> <div>
<span class="on_desktop icon"><i class="zmdi zmdi-edit"></i></span> <ul class="list middle">
<h2>{$c->__('publish.title')}</h2> <li>
</div> <span class="primary on_desktop icon"><i class="zmdi zmdi-edit"></i></span>
<div> <p>{$c->__('publish.title')}</p>
<div class="return active r3 condensed" </li>
onclick="Publish.headerBack('{$server}', '{$node}', false)"> </ul>
<span id="back" class="icon" ><i class="zmdi zmdi-arrow-back"></i></span> </div>
{if="$post != false"} <div>
<h2>{$c->__('publish.edit')}</h2> <ul class="list middle active">
{else} <li>
<h2>{$c->__('publish.new')}</h2> <span id="back" class="primary icon" onclick="Publish.headerBack('{$server}', '{$node}', false)">
{/if} <i class="zmdi zmdi-arrow-back"></i>
<h4> </span>
{if="$item != null && $item->node != 'urn:xmpp:microblog:0'"} <span class="control icon" onclick="Publish_ajaxHelp()">
{if="$item->name"} <i class="zmdi zmdi-help"></i>
{$item->name} </span>
{else} <span class="control icon" onclick="Publish_ajaxPreview(movim_form_to_json('post'))">
{$item->node} <i class="zmdi zmdi-eye"></i>
{/if} </span>
{else} <span class="control icon" id="button_send"
{$c->__('page.blog')} onclick="Publish.disableSend(); Publish_ajaxPublish(movim_form_to_json('post'));">
{/if} <i class="zmdi zmdi-mail-send"></i>
</h4> </span>
</div>
<ul class="active"> {if="$post != false"}
<li onclick="Publish_ajaxHelp()"> <p>{$c->__('publish.edit')}</p>
<span class="icon"> {else}
<i class="zmdi zmdi-help"></i> <p>{$c->__('publish.new')}</p>
</span> {/if}
</li> <p>
<li onclick="Publish_ajaxPreview(movim_form_to_json('post'))"> {if="$item != null && $item->node != 'urn:xmpp:microblog:0'"}
<span class="icon"> {if="$item->name"}
<i class="zmdi zmdi-eye"></i> {$item->name}
</span> {else}
</li> {$item->node}
<li id="button_send" {/if}
onclick="Publish.disableSend(); Publish_ajaxPublish(movim_form_to_json('post'));"> {else}
<span class="icon"> {$c->__('page.blog')}
<i class="zmdi zmdi-mail-send"></i> {/if}
</span> </p>
</li> </li>
</ul> </ul>
</div> </div>

View file

@ -1,81 +1,86 @@
<section> <section>
<h3>{$c->__('post.help')}</h3> <h3>{$c->__('post.help')}</h3>
<ul class="thick flex"> <ul class="list thick flex">
<li class="block"> <li class="block">
<span class="icon"> <span class="primary icon">
<i class="zmdi zmdi-format-size"></i> <i class="zmdi zmdi-format-size"></i>
</span> </span>
<p># Title H1</p> <p># Title H1</p>
<p>## Title H2…</p> <p>## Title H2…</p>
</li> </li>
<li class="block"> <li class="block">
<span class="icon"> <span class="primary icon">
<i class="zmdi zmdi-format-bold"></i> <i class="zmdi zmdi-format-bold"></i>
</span> </span>
<p>**bolded**</p> <p>**bolded**</p>
<p>__bolded__</p> <p>__bolded__</p>
</li> </li>
<li class="block"> <li class="block">
<span class="icon"> <span class="primary icon">
<i class="zmdi zmdi-format-italic"></i> <i class="zmdi zmdi-format-italic"></i>
</span> </span>
<p>*emphasis*</p> <p>*emphasis*</p>
<p>_emphasis_</p> <p>_emphasis_</p>
</li> </li>
<li class="block"> <li class="block">
<span class="icon"> <span class="primary icon">
<i class="zmdi zmdi-format-quote"></i> <i class="zmdi zmdi-format-quote"></i>
</span> </span>
<p>> Quoted line</p> <p>> Quoted line</p>
<p>> Quoted line</p> <p>> Quoted line</p>
</li> </li>
<li class="block"> <li class="block">
<span class="icon"> <span class="primary icon">
<i class="zmdi zmdi-format-list-bulleted"></i> <i class="zmdi zmdi-format-list-bulleted"></i>
</span> </span>
<p>* Item 1</p> <p>* Item 1</p>
<p>* Item 2</p> <p>* Item 2</p>
</li> </li>
<li class="block"> <li class="block">
<span class="icon"> <span class="primary icon">
<i class="zmdi zmdi-format-list-numbered"></i> <i class="zmdi zmdi-format-list-numbered"></i>
</span> </span>
<p>1. Item 1</p> <p>1. Item 1</p>
<p>2. Item 2</p> <p>2. Item 2</p>
</li> </li>
<li class="block"> <li class="block">
<span class="icon"> <span class="primary icon">
<i class="zmdi zmdi-functions"></i> <i class="zmdi zmdi-functions"></i>
</span> </span>
<p>`Sourcecode`</p> <p class="normal">`Sourcecode`</p>
</li> </li>
<li class="block large"> <li class="block large">
<span class="icon"> <span class="primary icon">
<i class="zmdi zmdi-link"></i> <i class="zmdi zmdi-link"></i>
</span> </span>
<p>[my text](http://my_url/)</p> <p class="normal">[my text](http://my_url/)</p>
</li> </li>
<li class="block large"> <li class="block large">
<span class="icon"> <span class="primary icon">
<i class="zmdi zmdi zmdi-image"></i> <i class="zmdi zmdi zmdi-image"></i>
</span> </span>
<p>![Alt text](http://my_image_url/)</p> <p class="normal">![Alt text](http://my_image_url/)</p>
</li> </li>
</ul> </ul>
<ul class="active"> <ul class="list">
<li class="subheader">{$c->__('post.help_more')}</li> <li class="subheader">
<a href="http://daringfireball.net/projects/markdown/syntax" target="_blank"> <p>{$c->__('post.help_more')}</p>
<li class="condensed action"> </li>
<div class="action"> <li>
<i class="zmdi zmdi-chevron-right"></i> <span class="primary icon color bubble blue">
</div>
<span class="icon color bubble blue">
<i class="zmdi zmdi-star"></i> <i class="zmdi zmdi-star"></i>
</span> </span>
<span> <span class="control icon gray">
{$c->__('post.help_manual')} <i class="zmdi zmdi-chevron-right"></i>
</span> </span>
<p>http://daringfireball.net/projects/markdown/syntax</p> <p class="line">
{$c->__('post.help_manual')}
</p>
<p class="line">
<a href="http://daringfireball.net/projects/markdown/syntax" target="_blank">
http://daringfireball.net/projects/markdown/syntax
</a>
</p>
</li> </li>
</a> </a>
</ul> </ul>

View file

@ -38,7 +38,7 @@ var Publish = {
// We are on the news page // We are on the news page
if(typeof Post_ajaxClear === 'function') { if(typeof Post_ajaxClear === 'function') {
Post_ajaxClear(); Post_ajaxClear();
Header_ajaxReset('news'); //Header_ajaxReset('news');
MovimTpl.hidePanel(); MovimTpl.hidePanel();
} else { } else {
Group_ajaxGetItems(server, node); Group_ajaxGetItems(server, node);

View file

@ -1,30 +1,32 @@
{if="!$c->supported('anonymous') && $c->getView() != 'room'"} {if="!$c->supported('anonymous') && $c->getView() != 'room'"}
<ul class="thin divided spaced active"> <ul class="list divided spaced active">
<li class="subheader"> <li class="subheader">
{$c->__('chatrooms.title')} <p>
<span class="info">{$conferences|count}</span> <span class="info">{$conferences|count}</span>
{$c->__('chatrooms.title')}
</p>
</li> </li>
{loop="$conferences"} {loop="$conferences"}
<li data-jid="{$value->conference}" <li data-jid="{$value->conference}"
{if="$value->nick != null"} data-nick="{$value->nick}" {/if} {if="$value->nick != null"} data-nick="{$value->nick}" {/if}
class="room {if="$value->connected"}online{/if}"> class="room {if="$value->connected"}online{/if}">
{if="$value->connected"} {if="$value->connected"}
<span class="icon small bubble color {$value->name|stringToColor}"><i class="zmdi zmdi-accounts"></i></span> <span class="primary icon small bubble color {$value->name|stringToColor}"><i class="zmdi zmdi-accounts"></i></span>
{else} {else}
<span class="disabled icon small bubble color {$value->name|stringToColor}"><i class="zmdi zmdi-accounts-outline"></i></span> <span class="primary disabled icon small bubble color {$value->name|stringToColor}"><i class="zmdi zmdi-accounts-outline"></i></span>
{/if} {/if}
<span>{$value->name}</span> <p class="normal line">{$value->name} <span class="second">{$value->conference}</span></p>
<span class="second">{$value->conference}</span>
</li> </li>
{/loop} {/loop}
</ul> </ul>
{if="$conferences == null"} {if="$conferences == null"}
<ul class="thick spaced"> <ul class="list thick spaced">
<li class="condensed"> <li>
<span class="icon green"> <span class="primary icon green">
<i class="zmdi zmdi-accounts-outline"></i> <i class="zmdi zmdi-accounts-outline"></i>
</span> </span>
<p>{$c->__('rooms.empty_text1')} {$c->__('rooms.empty_text2')}</p> <p>{$c->__('rooms.empty_text1')}</p>
<p>{$c->__('rooms.empty_text2')}</p>
</li> </li>
</ul> </ul>
{/if} {/if}

View file

@ -1,38 +1,35 @@
<section class="scroll"> <section class="scroll">
<h3>{$c->__('chatrooms.users')}</h3> <h3>{$c->__('chatrooms.users')}</h3>
<br /> <br />
<ul> <ul class="list middle">
{$presence = getPresencesTxt()} {$presence = getPresencesTxt()}
{loop="$list"} {loop="$list"}
<li class=" <li class="{if="$value->last > 60"} inactive{/if}"
action
{if="$value->last > 60"} inactive{/if}
{if="$value->status"}condensed{/if}"
title="{$value->resource}"> title="{$value->resource}">
{$url = $value->getPhoto('s')} {$url = $value->getPhoto('s')}
{if="$url"} {if="$url"}
<span class="icon bubble status {$presence[$value->value]}"> <span class="primary icon bubble status {$presence[$value->value]}">
<img src="{$url}"> <img src="{$url}">
</span> </span>
{else} {else}
<span class="icon bubble color {$value->resource|stringToColor} status {$presence[$value->value]}"> <span class="primary icon bubble color {$value->resource|stringToColor} status {$presence[$value->value]}">
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> </span>
{/if} {/if}
{if="$value->mucaffiliation =='owner'"} {if="$value->mucaffiliation =='owner'"}
<div class="action"> <div class="control">
<i class="zmdi zmdi-beenhere"></i> <i class="zmdi zmdi-beenhere"></i>
</div> </div>
{/if} {/if}
{if="$value->mucjid && strpos($value->mucjid, '/') == false && !$c->supported('anonymous')"} {if="$value->mucjid && strpos($value->mucjid, '/') == false && !$c->supported('anonymous')"}
<a href="{$c->route('contact', $value->mucjid)}"> <p class="line normal">
<span>{$value->resource}</span> <a href="{$c->route('contact', $value->mucjid)}">{$value->resource}</a>
</a> </p>
{else} {else}
<span>{$value->resource}</span> <p class="line normal">{$value->resource}</p>
{/if} {/if}
{if="$value->status"} {if="$value->status"}
<p class="wrap">{$value->status}</p> <p class="line">{$value->status}</p>
{/if} {/if}
</li> </li>
{/loop} {/loop}

View file

@ -1,11 +1,11 @@
<section> <section>
<h3>{$c->__('roster.search')}</h3> <h3>{$c->__('roster.search')}</h3>
<ul class="simple"> <ul class="list">
<li> <li>
<form name="add"> <form name="add">
<div> <div>
<input <input
name="searchjid" name="searchjid"
type="email" type="email"
title="{$c->__('roster.jid')}" title="{$c->__('roster.jid')}"
placeholder="user@server.tld" placeholder="user@server.tld"

View file

@ -1,17 +1,17 @@
<ul class="active"> <ul class="list active middle">
{loop="$contacts"} {loop="$contacts"}
<li class="condensed" onclick="Roster.setFound('{$value->jid}')"> <li onclick="Roster.setFound('{$value->jid}')">
{$url = $value->getPhoto('s')} {$url = $value->getPhoto('s')}
{if="$url"} {if="$url"}
<span class="icon bubble"> <span class="primary icon bubble">
<img src="{$url}"> <img src="{$url}">
</span> </span>
{else} {else}
<span class="icon bubble color {$value->jid|stringToColor}"> <span class="primary icon bubble color {$value->jid|stringToColor}">
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> </span>
{/if} {/if}
<span>{$value->getTrueName()}</span> <p>{$value->getTrueName()}</p>
<p>{$value->jid}</p> <p>{$value->jid}</p>
</li> </li>
{/loop} {/loop}

View file

@ -1,5 +1,10 @@
#roster form { #roster form div {
padding: 0 2rem; min-height: 0;
top: 0;
}
#roster form div input {
padding-top: 2rem;
} }
#roster ul#rosterlist > div > li { #roster ul#rosterlist > div > li {
@ -16,16 +21,17 @@
overflow: hidden; overflow: hidden;
} }
#roster ul#rosterlist > div li:first-child:before { #roster ul#rosterlist > div li:first-child p:before {
font-family: "Material-Design-Iconic-Font"; font-family: "Material-Design-Iconic-Font";
content: "\f2fb"; content: "\f2fb";
display: inline-block; display: inline-block;
float: left;
margin-right: 1rem;
} }
#roster ul#rosterlist > div.groupshown li:first-child:before { #roster ul#rosterlist > div.groupshown li:first-child p:before {
font-family: "Material-Design-Iconic-Font"; font-family: "Material-Design-Iconic-Font";
content: "\f2f9"; content: "\f2f9";
display: inline-block;
} }
#roster ul#rosterlist > div.groupshown { #roster ul#rosterlist > div.groupshown {

View file

@ -1,15 +1,30 @@
<div id="roster" ng-controller="RosterController as rosterCtrl"> <div id="roster" ng-controller="RosterController as rosterCtrl">
<ul id="rosterlist" class="{if="isset($conf) && isset($conf.roster) && $conf.roster == 'show'"}offlineshown{/if} active all"> <header>
<ul class="list">
<li>
<span id="menu" class="primary on_mobile icon active" onclick="MovimTpl.toggleMenu()"><i class="zmdi zmdi-menu"></i></span>
<span class="primary on_desktop icon gray"><i class="zmdi zmdi-search"></i></span>
<form>
<div onclick="Roster.init();">
<input type="text" name="search" id="rostersearch" autocomplete="off" placeholder="{$c->__('roster.search');}"/>
</div>
</form>
</li>
</ul>
</header>
<ul id="rosterlist" class="list {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>
</div> </div>
<li class="subheader search">{$c->__('roster.results')}</li> <li class="subheader search">
<p>{$c->__('roster.results')}</p>
</li>
<div id="spinner"> <div id="spinner">
<img src="{$base_uri}/app/widgets/Roster/img/movim_cloud.svg"/> <img src="{$base_uri}/app/widgets/Roster/img/movim_cloud.svg"/>
</div> </div>
<div <div
ng-if="contacts != null && !group.tombstone" ng-if="contacts != null && !group.tombstone"
@ -18,8 +33,10 @@
ng-class="{groupshown: rosterCtrl.groupIsShown(group.agroup)}" > ng-class="{groupshown: rosterCtrl.groupIsShown(group.agroup)}" >
<li class="subheader" ng-click="rosterCtrl.showHideGroup(group.agroup)"> <li class="subheader" ng-click="rosterCtrl.showHideGroup(group.agroup)">
{{::group.agroup}} <p>
<span class="info">{{rosterCtrl.getOnlineCount(group.agroupitems)}}/{{group.agroupitems.length}}</span> <span class="info">{{rosterCtrl.getOnlineCount(group.agroupitems)}}/{{group.agroupitems.length}}</span>
{{::group.agroup}}
</p>
</li> </li>
<li <li
ng-repeat="myjid in group.agroupitems track by myjid.ajid" ng-repeat="myjid in group.agroupitems track by myjid.ajid"
@ -28,9 +45,20 @@
class="{{myjid.ajiditems.rosterview.inactive}} action {{myjid.ajiditems.rosterview.presencetxt}}" class="{{myjid.ajiditems.rosterview.inactive}} action {{myjid.ajiditems.rosterview.presencetxt}}"
ng-attr-title="{{rosterCtrl.getContactTitle(myjid.ajiditems)}}" ng-attr-title="{{rosterCtrl.getContactTitle(myjid.ajiditems)}}"
ng-class="{condensed: myjid.ajiditems.status != '' && myjid.ajiditems.status != null }"> ng-class="{condensed: myjid.ajiditems.status != '' && myjid.ajiditems.status != null }">
<!--ng-class="rosterCtrl.getContactClient(myjid.ajiditems)"-- >--> <span
<div ng-if="::myjid.ajiditems.rosterview.avatar != false"
class="action" class="primary icon bubble status {{myjid.ajiditems.rosterview.presencetxt}}"
style="background-image: url({{::myjid.ajiditems.rosterview.avatar}})">
</span>
<span
ng-if="::myjid.ajiditems.rosterview.avatar== false"
class="primary icon bubble status {{myjid.ajiditems.rosterview.presencetxt}} color {{myjid.ajiditems.rosterview.color}}">
<i class="zmdi zmdi-account"></i>
</span>
<span
class="control icon gray"
ng-if="myjid.ajiditems.rosterview.tune || myjid.ajiditems.rosterview.type != '' || myjid.ajiditems.rosterview.subscription != 'both'" ng-if="myjid.ajiditems.rosterview.tune || myjid.ajiditems.rosterview.type != '' || myjid.ajiditems.rosterview.subscription != 'both'"
ng-switch on="myjid.ajiditems.rosterview.type"> ng-switch on="myjid.ajiditems.rosterview.type">
<i ng-switch-when="handheld" class="zmdi zmdi-smartphone"></i> <i ng-switch-when="handheld" class="zmdi zmdi-smartphone"></i>
@ -41,23 +69,12 @@
<i ng-if="myjid.ajiditems.rosterview.subscription == 'to'" class="zmdi zmdi-arrow-in"></i> <i ng-if="myjid.ajiditems.rosterview.subscription == 'to'" class="zmdi zmdi-arrow-in"></i>
<i ng-if="myjid.ajiditems.rosterview.subscription == 'from'" class="zmdi zmdi-arrow-out"></i> <i ng-if="myjid.ajiditems.rosterview.subscription == 'from'" class="zmdi zmdi-arrow-out"></i>
<i ng-if="myjid.ajiditems.rosterview.subscription == 'none'" class="zmdi zmdi-block"></i> <i ng-if="myjid.ajiditems.rosterview.subscription == 'none'" class="zmdi zmdi-block"></i>
</div>
<span
ng-if="::myjid.ajiditems.rosterview.avatar != false"
class="icon bubble status {{myjid.ajiditems.rosterview.presencetxt}}"
style="background-image: url({{::myjid.ajiditems.rosterview.avatar}})">
</span> </span>
<span
ng-if="::myjid.ajiditems.rosterview.avatar== false"
class="icon bubble status {{myjid.ajiditems.rosterview.presencetxt}} color {{myjid.ajiditems.rosterview.color}}">
<i class="zmdi zmdi-account"></i>
</span>
<span>{{myjid.ajiditems.rosterview.name}}</span> <p class="normal">{{myjid.ajiditems.rosterview.name}}</p>
<p ng-if="myjid.ajiditems.status != ''" class="wrap"> <p ng-if="myjid.ajiditems.status && myjid.ajiditems.status != ''">
<span>{{myjid.ajiditems.status}}</span> {{myjid.ajiditems.status}}
</p> </p>
</li> </li>
</div> </div>

View file

@ -1,22 +1,22 @@
<div id="statistics" class="tabelem" title="{$c->__("statistics.title")}"> <div id="statistics" class="tabelem" title="{$c->__("statistics.title")}">
<ul class="divided thick"> <ul class="list divided thick">
<li class="subheader"> <li class="subheader">
{$c->__('statistics.sessions')} - {$sessions|count} <p>{$c->__('statistics.sessions')} - {$sessions|count}</p>
</li> </li>
{loop="$sessions"} {loop="$sessions"}
{$user = $c->getContact($value->username, $value->host)} {$user = $c->getContact($value->username, $value->host)}
<li class="condensed"> <li>
{$url = $user->getPhoto('s')} {$url = $user->getPhoto('s')}
{if="$url"} {if="$url"}
<span class="icon bubble"> <span class="primary icon bubble">
<img src="{$url}"> <img src="{$url}">
</span> </span>
{else} {else}
<span class="icon bubble color {$user->jid|stringToColor}"> <span class="primary icon bubble color {$user->jid|stringToColor}">
<i class="zmdi zmdi-account"></i> <i class="zmdi zmdi-account"></i>
</span> </span>
{/if} {/if}
<span>{$user->getTrueName()} - {$value->username}@{$value->host} - {$value->domain}</span> <p>{$user->getTrueName()} - {$value->username}@{$value->host} - {$value->domain}</p>
<p> <p>
{if="isset($value->start)"} {if="isset($value->start)"}
{$c->getTime($value->start)} {$c->getTime($value->start)}

View file

@ -96,8 +96,6 @@ class Syndication extends WidgetBase
$f->appendXML($message->contentcleaned); $f->appendXML($message->contentcleaned);
$div->appendChild($f); $div->appendChild($f);
//$div->appendChild($dom->createCDATASection($message->contentcleaned));
$attachements = $message->getAttachements(); $attachements = $message->getAttachements();
if(isset($attachements['pictures'])) { if(isset($attachements['pictures'])) {
@ -119,7 +117,7 @@ class Syndication extends WidgetBase
} }
if(isset($attachements['links'])) { if(isset($attachements['links'])) {
foreach($attachements['files'] as $value) { foreach($attachements['links'] as $value) {
$entry->appendChild($link = $dom->createElement('link')); $entry->appendChild($link = $dom->createElement('link'));
$link->setAttribute('rel', 'alternate'); $link->setAttribute('rel', 'alternate');
$link->setAttribute('href', $value['href']); $link->setAttribute('href', $value['href']);

View file

@ -1,11 +1,11 @@
<section> <section>
<h3>{$c->__('upload.title')}</h3> <h3>{$c->__('upload.title')}</h3>
<ul class="thick"> <ul class="list thick">
<li class="condensed"> <li>
<span class="icon bubble color green"> <span class="primary icon bubble color green">
<i class="zmdi zmdi-upload"></i> <i class="zmdi zmdi-upload"></i>
</span> </span>
<span>{$c->__('upload.choose')}</span> <p>{$c->__('upload.choose')}</p>
<p> <p>
<input type="file" id="file" /> <input type="file" id="file" />
</p> </p>

View file

@ -1,26 +1,30 @@
<ul> <ul class="list middle">
<li class="subheader"> {$c->__('privacy.privacy_title')}</li> <li class="subheader">
<li class="condensed action"> <p>{$c->__('privacy.privacy_title')}</p>
<form> </li>
<div class="control action"> <li>
<div class="checkbox"> <span class="primary icon bubble color blue">
<input
type="checkbox"
id="privacy"
name="privacy"
{if="$me->privacy"}
checked
{/if}
onchange="{$privacy}">
<label for="privacy"></label>
</div>
</div>
</form>
<span class="icon bubble color blue">
<i class="zmdi zmdi-shield-security"></i> <i class="zmdi zmdi-shield-security"></i>
</span> </span>
<span class="control">
<form>
<div class="control action">
<div class="checkbox">
<input
type="checkbox"
id="privacy"
name="privacy"
{if="$me->privacy"}
checked
{/if}
onchange="{$privacy}">
<label for="privacy"></label>
</div>
</div>
</form>
</span>
<span>{$c->__('privacy.privacy_question')}</span> <p>{$c->__('privacy.privacy_question')}</p>
<p class="all">{$c->__('privacy.privacy_info')}</p> <p class="all">{$c->__('privacy.privacy_info')}</p>
</li> </li>
</ul> </ul>

View file

@ -102,7 +102,7 @@ class XMPPtoForm{
$input->setAttribute('id', $s); $input->setAttribute('id', $s);
$input->setAttribute('name', 'generic_'.$s); $input->setAttribute('name', 'generic_'.$s);
$input->setAttribute('required', 'required'); $input->setAttribute('required', 'required');
$div->appendChild($input); $div->appendChild($input);
$label = $this->html->createElement('label', $s); $label = $this->html->createElement('label', $s);
@ -111,24 +111,28 @@ class XMPPtoForm{
} }
private function outTitle($s){ private function outTitle($s){
$ul = $this->html->createElement('ul'); $ul = $this->html->createElement('ul');
$ul->setAttribute('class', 'thin simple'); $ul->setAttribute('class', 'list thin');
$this->html->appendChild($ul); $this->html->appendChild($ul);
$li = $this->html->createElement('li'); $li = $this->html->createElement('li');
$li->appendChild($this->html->createElement('span', $s)); $title = $this->html->createElement('p', $s);
$title->setAttribute('class', 'normal line');
$li->appendChild($title);
$ul->appendChild($li); $ul->appendChild($li);
} }
private function outP($s){ private function outP($s){
$ul = $this->html->createElement('ul'); $ul = $this->html->createElement('ul');
$ul->setAttribute('class', 'thin simple'); $ul->setAttribute('class', 'list thin');
$this->html->appendChild($ul); $this->html->appendChild($ul);
$li = $this->html->createElement('li'); $li = $this->html->createElement('li');
$ul->appendChild($li); $ul->appendChild($li);
$li->appendChild($this->html->createElement('p', $s)); $title = $this->html->createElement('p', $s);
$title->setAttribute('class', 'normal line');
$li->appendChild($title);
} }
private function outUrl($s) { private function outUrl($s) {
@ -161,7 +165,7 @@ class XMPPtoForm{
if($s->required) if($s->required)
$select->setAttribute('required', 'required'); $select->setAttribute('required', 'required');
$div->appendChild($select); $div->appendChild($select);
$option = $this->html->createElement('option', __('button.bool_yes')); $option = $this->html->createElement('option', __('button.bool_yes'));
@ -203,7 +207,7 @@ class XMPPtoForm{
if(empty($textarea->nodeValue)) { if(empty($textarea->nodeValue)) {
$textarea->nodeValue = ' '; $textarea->nodeValue = ' ';
} }
$container->appendChild($textarea); $container->appendChild($textarea);
$label = $this->html->createElement('label', $s['label']); $label = $this->html->createElement('label', $s['label']);
@ -214,7 +218,7 @@ class XMPPtoForm{
private function outInput($s, $type, $multiple){ private function outInput($s, $type, $multiple){
$container = $this->html->createElement('div'); $container = $this->html->createElement('div');
$this->html->appendChild($container); $this->html->appendChild($container);
$input = $this->html->createElement('input'); $input = $this->html->createElement('input');
$input->setAttribute('id', $s['var']); $input->setAttribute('id', $s['var']);
$input->setAttribute('name', $s['var']); $input->setAttribute('name', $s['var']);
@ -234,7 +238,7 @@ class XMPPtoForm{
if($s['var'] == 'username') if($s['var'] == 'username')
$input->setAttribute('pattern', '[a-z0-9_-]*'); $input->setAttribute('pattern', '[a-z0-9_-]*');
$container->appendChild($input); $container->appendChild($input);
$label = $this->html->createElement('label', $s['label']); $label = $this->html->createElement('label', $s['label']);
@ -267,7 +271,7 @@ class XMPPtoForm{
if($s->required) if($s->required)
$select->setAttribute('required', 'required'); $select->setAttribute('required', 'required');
$div->appendChild($select); $div->appendChild($select);
if(count($s->xpath('option')) > 0){ if(count($s->xpath('option')) > 0){
@ -326,7 +330,7 @@ class FormtoXMPP
{ {
$fields = $this->_form->getElementsByTagName('field'); $fields = $this->_form->getElementsByTagName('field');
$list = $dom->getElementsByTagName('x'); $list = $dom->getElementsByTagName('x');
foreach($fields as $field) { foreach($fields as $field) {
$field = $dom->importNode($field, true); $field = $dom->importNode($field, true);
$list[0]->appendChild($field); $list[0]->appendChild($field);
@ -338,7 +342,7 @@ class FormtoXMPP
foreach($this->_inputs as $key => $value) { foreach($this->_inputs as $key => $value) {
$container = $this->_form->createElement('container'); $container = $this->_form->createElement('container');
$this->_form->appendChild($container); $this->_form->appendChild($container);
$field = $this->_form->createElement('field'); $field = $this->_form->createElement('field');
$container->appendChild($field); $container->appendChild($field);
@ -348,7 +352,7 @@ class FormtoXMPP
if($value === 'true') { if($value === 'true') {
$val->nodeValue = '1'; $val->nodeValue = '1';
} }
if($value === 'false') { if($value === 'false') {
$val->nodeValue = '0'; $val->nodeValue = '0';
} }
@ -362,7 +366,7 @@ class FormtoXMPP
) { ) {
$val->nodeValue = trim($value); $val->nodeValue = trim($value);
} }
$field->setAttribute('var', trim($key)); $field->setAttribute('var', trim($key));
} }

View file

@ -8,16 +8,20 @@ function createEmailPic($jid, $email) {
unlink(DOCUMENT_ROOT.'/cache/'.$jid.'_email.png'); unlink(DOCUMENT_ROOT.'/cache/'.$jid.'_email.png');
$draw = new ImagickDraw(); $draw = new ImagickDraw();
$draw->setFontSize(13); try {
$draw->setGravity(Imagick::GRAVITY_CENTER); $draw->setFontSize(13);
$draw->setGravity(Imagick::GRAVITY_CENTER);
$canvas = new Imagick(); $canvas = new Imagick();
$metrics = $canvas->queryFontMetrics($draw, $email); $metrics = $canvas->queryFontMetrics($draw, $email);
$canvas->newImage($metrics['textWidth'], $metrics['textHeight'], "transparent", "png"); $canvas->newImage($metrics['textWidth'], $metrics['textHeight'], "transparent", "png");
$canvas->annotateImage($draw, 0, 0, 0, $email); $canvas->annotateImage($draw, 0, 0, 0, $email);
$canvas->setImageFormat('PNG'); $canvas->setImageFormat('PNG');
$canvas->writeImage($cachefile); $canvas->writeImage($cachefile);
} catch (ImagickException $e) {
error_log($e->getMessage());
}
} }

View file

@ -10,6 +10,7 @@ article header {
} }
/* We hide the main title because it's already here ? */ /* We hide the main title because it's already here ? */
/*
article section h1 { article section h1 {
display: none; display: none;
} }
@ -23,12 +24,13 @@ article header h2,
li.condensed h2 { li.condensed h2 {
line-height: 3.75rem; line-height: 3.75rem;
} }
*/
article section { article section {
font-size: 2rem; font-size: 2rem;
line-height: 3rem; line-height: 3rem;
font-weight: 500; font-weight: 500;
padding: 0 2rem; padding: 0 2rem;
padding-top: 2rem;
} }
article img, article img,
@ -77,6 +79,14 @@ article section content pre {
font-family: monospace; font-family: monospace;
} }
article section content pre {
color: white;
padding: 1rem;
font-size: 1.5rem;
margin: 1rem 0;
background-color: #333;
}
article section content cite, article section content cite,
article section content blockquote { article section content blockquote {
padding-left: 4rem; padding-left: 4rem;

Some files were not shown because too many files have changed in this diff Show more