Browse Source

- Refactor the Admin panel and include WebSocket

- Put color in the daemon
- Add new tests to AdminTest
pull/16/head
Jaussoin Timothée 11 years ago
parent
commit
b4562d8325
  1. 7
      app/helpers/StringHelper.php
  2. 6
      app/models/config/Config.php
  3. 10
      app/models/config/ConfigDAO.php
  4. 23
      app/views/admin.tpl
  5. 5
      app/widgets/AdminDB/AdminDB.php
  6. 10
      app/widgets/AdminDB/admindb.tpl
  7. 2
      app/widgets/AdminDB/locales.ini
  8. 6
      app/widgets/AdminMain/AdminMain.php
  9. 82
      app/widgets/AdminMain/adminmain.tpl
  10. 13
      app/widgets/AdminMain/locales.ini
  11. 8
      app/widgets/AdminTest/AdminTest.php
  12. 112
      app/widgets/AdminTest/admintest.css
  13. 48
      app/widgets/AdminTest/admintest.js
  14. 137
      app/widgets/AdminTest/admintest.tpl
  15. 14
      app/widgets/AdminTest/locales.ini
  16. 1
      app/widgets/Api/api.tpl
  17. 4
      app/widgets/Login/login.js
  18. 7
      app/widgets/Tabs/tabs.css
  19. 4
      bootstrap.php
  20. 17
      daemon.php
  21. 25
      src/Movim/Daemon/Behaviour.php
  22. 4
      system/Sessionx.php
  23. 52
      themes/movim/css/forms.css
  24. 9
      themes/movim/css/style.css

7
app/helpers/StringHelper.php

@ -239,10 +239,13 @@ function sizeToCleanSize($size)
*/
function colorize($string, $color) {
$colors = array(
'black' => 30,
'red' => 31,
'blue' => 34,
'yellow' => 33,
'green' => 32,
'yellow' => 33,
'blue' => 34,
'purple' => 35,
'turquoise' => 36,
'white' => 37
);

6
app/models/config/Config.php

@ -10,7 +10,7 @@ class Config extends Model {
public $maxusers;
public $loglevel;
public $timezone;
public $boshurl;
public $websocketurl;
public $xmppwhitelist;
public $info;
public $unregister;
@ -35,7 +35,7 @@ class Config extends Model {
{"type":"string", "size":16, "mandatory":true },
"timezone" :
{"type":"string", "size":16, "mandatory":true },
"boshurl" :
"websocketurl" :
{"type":"string", "size":128, "mandatory":true },
"xmppwhitelist" :
{"type":"text" },
@ -60,7 +60,7 @@ class Config extends Model {
$this->maxusers = -1;
$this->loglevel = 'empty';
$this->timezone = 'Etc/GMT';
$this->boshurl = 'http://localhost:5280/http-bind';
$this->websocketurl = 'ws://localhost:5280';
$this->xmppwhitelist = '';
$this->info = '';
$this->unregister = false;

10
app/models/config/ConfigDAO.php

@ -13,7 +13,7 @@ class ConfigDAO extends SQL {
maxusers = :maxusers,
loglevel = :loglevel,
timezone = :timezone,
boshurl = :boshurl,
websocketurl = :websocketurl,
xmppwhitelist = :xmppwhitelist,
info = :info,
unregister = :unregister,
@ -31,7 +31,7 @@ class ConfigDAO extends SQL {
'maxusers' => $c->maxusers,
'loglevel' => $c->loglevel,
'timezone' => $c->timezone,
'boshurl' => $c->boshurl,
'websocketurl' => $c->websocketurl,
'xmppwhitelist'=> $c->xmppwhitelist,
'info' => $c->info,
'unregister' => $c->unregister,
@ -65,7 +65,7 @@ class ConfigDAO extends SQL {
maxusers,
loglevel,
timezone,
boshurl,
websocketurl,
xmppwhitelist,
info,
unregister,
@ -82,7 +82,7 @@ class ConfigDAO extends SQL {
:maxusers,
:loglevel,
:timezone,
:boshurl,
:websocketurl,
:xmppwhitelist,
:info,
:unregister,
@ -102,7 +102,7 @@ class ConfigDAO extends SQL {
'maxusers' => $c->maxusers,
'loglevel' => $c->loglevel,
'timezone' => $c->timezone,
'boshurl' => $c->boshurl,
'websocketurl' => $c->websocketurl,
'xmppwhitelist'=> $c->xmppwhitelist,
'info' => $c->info,
'unregister' => $c->unregister,

23
app/views/admin.tpl

@ -1,17 +1,18 @@
<div id="main">
<?php $this->widget('Tabs');?>
<?php $this->widget('Tabs');?>
<div id="center" >
<div class="fixed_block">
<h1 class="paddedtopbottom">
<div class="fixed_block">
<h1 class="paddedtopbottom">
<i class="fa fa-cogs"></i> <?php echo __('page.administration'); ?>
</h1>
</div>
<div>
<?php $this->widget('AdminMain');?>
<?php $this->widget('AdminDB');?>
<?php $this->widget('AdminTest');?>
<?php $this->widget('Statistics');?>
<?php $this->widget('Api');?>
</div>
</div>
<div>
<?php $this->widget('AdminTest');?>
<?php $this->widget('AdminMain');?>
<?php $this->widget('AdminDB');?>
<?php $this->widget('Statistics');?>
<?php $this->widget('Api');?>
</div>
</div>
</div>

5
app/widgets/AdminDB/AdminDB.php

@ -28,6 +28,11 @@ class AdminDB extends WidgetBase
RPC::call('movim_reload_this');
}
public function hidePassword($pass)
{
return str_repeat('*', strlen($pass));
}
function display()
{
$md = \modl\Modl::getInstance();

10
app/widgets/AdminDB/admindb.tpl

@ -12,7 +12,7 @@
</div>
{else}
<div class="message success">
{$c->__('db.connect_success')}
<i class="fa fa-plug"></i> {$c->__('db.connect_success')}
</div>
{if="null !== $infos"}
<p>{$c->__('db.update')}</p>
@ -21,14 +21,14 @@
<p>{$value}</p>
{/loop}
<a class="button color green icon refresh"
<a class="button color green"
onclick="{$db_update}"
style="float: right;">{$c->__('button.update')}</a>
style="float: right;"><i class="fa fa-refresh"></i> {$c->__('button.update')}</a>
<div class="clear"></div>
</div>
{else}
<div class="message success">
{$c->__('db.up_to_date')}
<i class="fa fa-refresh"></i> {$c->__('db.up_to_date')}
</div>
{/if}
{/if}
@ -44,7 +44,7 @@
</div>
<div class="element">
<label for="dbPassword">{$c->__('db.password')}</label>
<span>Password</span>
<span>{$c->hidePassword($conf.password)}</span>
</div>
<div class="element">
<label for="dbHost">{$c->__('db.host')}</label>

2
app/widgets/AdminDB/locales.ini

@ -1,5 +1,5 @@
[db]
db.legend = 'Database Settings'
db.legend = 'Database'
db.connect_error = "Modl wasn't able to connect to the database"
db.connect_success = 'Movim is connected to the database'
db.update = 'The database need to be updated'

6
app/widgets/AdminMain/AdminMain.php

@ -80,11 +80,11 @@ class AdminMain extends WidgetBase
$this->view->assign('bosh_info4',
$this->__('bosh.info4', '<a href="http://wiki.movim.eu/en:install">', '</a>'));
$json = requestURL(MOVIM_API.'boshs', 1);
$json = requestURL(MOVIM_API.'websockets', 1);
$json = json_decode($json);
if(isset($json)) {
$this->view->assign('boshs', $json);
if(isset($json) && $json->status != 404) {
$this->view->assign('websockets', $json);
}
$this->view->assign('timezones', getTimezoneList());

82
app/widgets/AdminMain/adminmain.tpl

@ -1,7 +1,7 @@
<form name="admin" id="adminform" action="#" method="post">
<div id="admingen" class="tabelem paddedtop" title="{$c->__('admin.general')}">
<fieldset>
<legend>{$c->__('admin.general')}</legend>
<legend><i class="fa fa-wrench"></i> {$c->__('admin.general')}</legend>
<div class="element">
<label for="da">{$c->__('general.language')}</label>
@ -79,58 +79,62 @@
<fieldset>
<legend>{$c->__('bosh.title')}</legend>
<div class="clear"></div>
<p>
{$c->__('bosh.info1')}<br />
{$bosh_info4}
</p>
{if="!$c->testBosh($conf->boshurl)"}
<div class="message error">
{$c->__('bosh.not_recheable')}
</div>
{/if}
<div class="element">
<label for="boshurl">{$c->__('bosh.label')}</label>
<input type="text" id="boshurl" name="boshurl" value="{$conf->boshurl}"/>
<legend><i class="fa fa-code"></i> {$c->__('websocket.title')}</legend>
<div class="clear"></div>
<p>
{$c->__('websocket.info')}: <code>ws(s)://domain:port</code>
</p>
<!--{if="!$c->testBosh($conf->boshurl)"}
<div class="message error">
{$c->__('bosh.not_recheable')}
</div>
{/if}-->
<div class="element">
<label for="websocketurl"></label>
<input type="text" id="websocketurl" name="websocketurl" placeholder="{$c->__('websocket.label')}" value="{$conf->websocketurl}"/>
</div>
{if="isset($boshs)"}
<div class="element simple">
<label for="boshurl">
{$c->__('bosh.publics')} -
<a target="_blank" href="https://api.movim.eu/">Movim API</a>
</label>
<dl>
{loop="$boshs->boshs"}
<dt>{$value->name}</dt>
<dd>{$value->url}</dd>
{/loop}
</dl>
</div>
{/if}
{if="isset($websockets)"}
<div class="element simple">
<label for="websocketurl">
{$c->__('websocket.publics')} -
<a target="_blank" href="https://api.movim.eu/">Movim API</a>
</label>
<dl>
{loop="$websockets->websockets"}
<dt>{$value->name}</dt>
<dd>{$value->url}</dd>
{/loop}
</dl>
</div>
{/if}
<div class="message info block">
<i class="fa fa-exclamation-triangle"></i> {$c->__('websocket.save_info')}
</div>
</fieldset>
<fieldset>
<legend>{$c->__('whitelist.title')}</legend>
<legend><i class="fa fa-check-square-o"></i> {$c->__('whitelist.title')}</legend>
<div class="clear"></div>
<div class="element large">
<label for="xmppwhiteiist">{$c->__('whitelist.label')}</label>
<div class="element">
<label for="xmppwhitelist">{$c->__('whitelist.label')}</label>
<p>{$c->__('whitelist.info1')}</p>
<p>{$c->__('whitelist.info2')}</p>
<input type="text" name="xmppwhitelist" id="xmppwhitelist" value="{$conf->xmppwhitelist}" />
<br />
<input type="text" name="xmppwhitelist" id="xmppwhitelist" placeholder="{$c->__('whitelist.label')}" value="{$conf->xmppwhitelist}" />
</div>
</fieldset>
<fieldset>
<legend>{$c->__('information.title')}</legend>
<legend><i class="fa fa-comment"></i> {$c->__('information.title')}</legend>
<div class="clear"></div>
<div class="element large">
@ -149,7 +153,7 @@
<fieldset>
<legend>{$c->__('credentials.title')}</legend>
<legend><i class="fa fa-user"></i> {$c->__('credentials.title')}</legend>
{if="$conf->user == 'admin' || $conf->pass == sha1('password')"}
<div class="message error">

13
app/widgets/AdminMain/locales.ini

@ -8,13 +8,12 @@ general.log_verbosity = 'Log verbosity'
general.timezone = 'Server Timezone'
general.limit = 'User folder size limit (in bytes)'
[bosh]
bosh.title = 'Bosh Configuration'
bosh.info1 = 'Enter here the BOSH-URL in the form: http(s)://domain:port/path.'
bosh.info4 = 'If you are unsure about this config option visit the %swiki%s.'
bosh.not_recheable = 'Your Bosh URL is not reachable'
bosh.label = 'Bosh URL'
bosh.publics = 'Public BOSH'
[websocket]
websocket.title = 'WebSocket Configuration'
websocket.info = 'Enter here a valid WebSocket URI in the form'
websocket.label = 'WebSocket URI'
websocket.save_info = 'If you change the URI, please restart the daemon to reload the configuration'
websocket.publics = 'Public WebSockets'
[credentials]
credentials.title = 'Administration Credential'

8
app/widgets/AdminTest/AdminTest.php

@ -22,14 +22,6 @@ class AdminTest extends WidgetBase
$this->addcss('admintest.css');
}
public function valid($what)
{
if($what)
return "message success";
else
return "message error";
}
public function version()
{
return (version_compare(PHP_VERSION, '5.3.0') >= 0);

112
app/widgets/AdminTest/admintest.css

@ -0,0 +1,112 @@
figure {
width: 100%;
height: 40em;
position: relative;
}
figure div {
display: block;
width: 20%;
margin-top: -2.5em;
margin-left: -10%;
background-color: #EEE;
border-radius: 0.2em;
text-align: center;
position: absolute;
line-height: 5em;
font-weight: bold;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
figure div#webserver {
width: 50%;
height: 30em;
border: 0.5em solid gray;
width: 26%;
border-radius: 0.2em;
height: 22em;
border: 0.5em dashed #F5F5F5;
left: 46%;
background-color: transparent;
top: 10%;
}
figure div#movim_block { left: 50%; top: 50%; }
figure div#database_block { left: 50%; top: 85%; }
figure div#xmpp_block { left: 85%; top: 15%; }
figure div#browser_block { left: 15%; top: 15%; line-height: 19em; }
figure div#daemon_block { left: 50%; top: 15%; }
figure div#api_block { left: 85%; top: 50%; }
figure div.link {
width: 0;
height: 0;
border-radius: 1em;
padding: 0.25em;
line-height: 0em;
overflow: initial;
}
figure div.link i {
background-color: white;
margin-top: -0.75em;
padding: 0.25em;
border-radius: 2em;
font-size: 2em;
}
figure div.disabled { background-color: rgba(0, 0, 0, 0.1); color: white;}
figure div.success { background-color: #6FCC43; color: white; }
figure div.warning { background-color: #FC8F12; color: white; }
figure div.error { background-color: #D92727; color: white; }
figure div.link.disabled { color: #CCC; }
figure div.link.success { color: #6FCC43; }
figure div.link.warning { color: #FC8F12; }
figure div.link.error { color: #D92727; }
figure div.link.horizontal {
width: 35%;
}
figure div.link.vertical {
height: 35%;
}
figure div.link.vertical i {
top: 50%;
position: absolute;
margin-left: -0.75em;
}
figure div.link#movim-daemon {
left: 60%;
top: 20%;
}
figure div.link#movim-database {
left: 60%;
top: 55%;
}
figure div.link#movim-browser {
left: 25%;
top: 55%;
}
figure div.link#browser-daemon {
left: 25%;
top: 20%;
}
figure div.link#daemon-xmpp {
left: 60%;
top: 20%;
}
figure div.link#movim-api {
left: 60%;
top: 55%;
}

48
app/widgets/AdminTest/admintest.js

@ -0,0 +1,48 @@
var AdminTest = {
databaseOK : false,
weksocketOK : false,
apiOK : false,
movimOK : true,
toggleConfiguration : function() {
if(this.databaseOK && this.websocketOK && this.movimOK) {
movim_remove_class('li.admingen', 'disabled');
movim_remove_class('li.api', 'disabled');
} else {
movim_add_class('li.admingen', 'disabled');
movim_add_class('li.api', 'disabled');
}
},
enableWebsocket : function() {
this.websocketOK = true;
this.toggleConfiguration();
movim_remove_class('figure #browser-daemon', 'error');
movim_add_class('figure #browser-daemon', 'success');
movim_toggle_display('#websocket_error');
},
enableAPI : function() {
this.apiOK = true;
movim_remove_class('figure #movim-api', 'disabled');
movim_add_class('figure #movim-api', 'success');
},
disableMovim : function() {
this.movimOK = false;
movim_add_class('figure #movim_block', 'error');
}
}
MovimWebsocket.attach(function() {
AdminTest.enableWebsocket();
});
movim_add_onload(function() {
AdminTest.toggleConfiguration();
movim_toggle_display('#websocket_error');
});

137
app/widgets/AdminTest/admintest.tpl

@ -1,68 +1,87 @@
<div id="admincomp" class="tabelem paddedtop" title="{$c->__('admin.compatibility')}">
<figure class="block">
<div id="webserver">
</div>
<div id="movim-daemon" class="link vertical disabled"><i class="fa fa-cog"></i></div>
<div id="movim-browser" class="link horizontal success"><i class="fa fa-globe"></i></div>
<div id="browser-daemon" class="link horizontal error"><i class="fa fa-plug"></i></div>
<div id="daemon-xmpp" class="link horizontal success"><i class="fa fa-code"></i></div>
<div id="movim-database" class="link vertical {if="$dbconnected"}success {if="$dbinfos > 0"}warning{/if} {else}error{/if}">
<i class="fa fa-database"></i>
</div>
<div id="movim-api" class="link horizontal error"><i class="fa fa-puzzle-piece"></i></div>
<div id="browser">
Browser
</div>
<div id="movim">
Movim Core
</div>
<div id="daemon">
Movim Daemon
</div>
<div id="database" class="{if="$dbconnected"}success {if="$dbinfos > 0"}warning{/if} {else}error{/if}">
Database
</div>
<div id="api">
API
</div>
<div id="xmpp">
XMPP
</div>
</figure>
<div id="admincomp" class="tabelem" title="{$c->__('admin.compatibility')}">
<div class="block">
<figure>
<div id="webserver">
</div>
<div id="movim-daemon" class="link vertical disabled"><i class="fa fa-cog"></i></div>
<div id="movim-browser" class="link horizontal success"><i class="fa fa-globe"></i></div>
<div id="browser-daemon" class="link horizontal error"><i class="fa fa-plug"></i></div>
<div id="daemon-xmpp" class="link horizontal success"><i class="fa fa-code"></i></div>
<div id="movim-database" class="link vertical {if="$dbconnected"}success {if="$dbinfos > 0"}warning{/if} {else}error{/if}">
<i class="fa fa-database"></i>
</div>
<div id="movim-api" class="link horizontal disabled"><i class="fa fa-puzzle-piece"></i></div>
<div id="browser_block">
Browser
</div>
<div id="movim_block">
Movim Core
</div>
<div id="daemon_block">
Movim Daemon
</div>
<div id="database_block" class="{if="$dbconnected"}success {if="$dbinfos > 0"}warning{/if} {else}error{/if}">
Database
</div>
<div id="api_block">
API
</div>
<div id="xmpp_block">
XMPP
</div>
</figure>
</div>
<fieldset>
<legend>{$c->__('admin.compatibility')}</legend>
<div class="clear"></div>
<div class="block">
<p>
{$c->__('compatibility.info')}
</p><br />
<div class="{$c->valid($c->version())}">
{$c->__('compatibility.php', PHP_VERSION)}
</div>
<div class="{$c->valid(extension_loaded('gd'))}">
{$c->__('compatibility.gd')}
</div>
<div class="{$c->valid(extension_loaded('SimpleXml'))}">
{$c->__('compatibility.simplexml')}
</div>
<div class="{$c->valid($c->testDir(DOCUMENT_ROOT))}">
{$c->__('compatibility.rights')}
</div>
<div class="{$c->valid(extension_loaded('OpenSSL'))}">
{$c->__('compatibility.openssl')}
</p>
{if="$dbconnected"}
{if="$dbinfos > 0"}
<div class="message warning">
<i class="fa fa-refresh"></i> The database need to be updated, go to the database panel to fix this
</div>
{else}
<script type="text/javascript">AdminTest.databaseOK = true</script>
{/if}
{else}
<div class="message error">
<i class="fa fa-database"></i> Database connection error, check if database configuration exist in the <code>config/</code> folder and fill it with proper values
</div>
{/if}
<div id="websocket_error" class="message error">
<i class="fa fa-plug"></i> WebSocket connection error, check if the Movim Daemon is running and is reacheable
</div>
</fieldset>
<fieldset>
<legend>{$c->__('compatibility.rewrite')}</legend>
<div class="clear"></div>
<div class="{$c->valid($_SERVER['HTTP_MOD_REWRITE'])}">
{$c->__('compatibility.rewrite')}
{if="!$c->version()"}
<div class="message error">
<i class="fa fa-code"></i> {$c->__('compatibility.php', PHP_VERSION)}
</div>
</fieldset>
<script type="text/javascript">AdminTest.disableMovim()</script>
{/if}
{if="!extension_loaded('gd')"}
<div class="message error">
<i class="fa fa-file-image-o"></i> {$c->__('compatibility.gd')}
</div>
<script type="text/javascript">AdminTest.disableMovim()</script>
{/if}
{if="!$c->testDir(DOCUMENT_ROOT)"}
<div class="message error">
<i class="fa fa-folder"></i> {$c->__('compatibility.rights')}
</div>
<script type="text/javascript">AdminTest.disableMovim()</script>
{/if}
{if="!$_SERVER['HTTP_MOD_REWRITE']"}
<div class="message info">
<i class="fa fa-pencil"></i> {$c->__('compatibility.rewrite')}
</div>
{/if}
</div>
</div>

14
app/widgets/AdminTest/locales.ini

@ -1,11 +1,9 @@
admin.compatibility = 'Compatibility Check'
admin.compatibility = 'General Overview'
[compatibility]
compatibility.info = 'Movim requires certain external components. Please install them before you can succeed:'
compatibility.php = 'Your PHP-Version: %s <br>Required: 5.3.0'
compatibility.curl = 'CURL-Library'
compatibility.gd = 'GD'
compatibility.simplexml = 'SimpleXML'
compatibility.info = 'Movim has found some issues or things that need to be fixed or improved'
compatibility.php = 'Update your PHP-Version: %s <br>Required: 5.3.0'
compatibility.curl = 'Install the php5-curl library'
compatibility.gd = 'Install the php5-gd library'
compatibility.rights = "Read and write rights for the webserver in Movim's root directory"
compatibility.openssl = 'OpenSSL'
compatibility.rewrite = 'URL Rewriting support'
compatibility.rewrite = 'The URL Rewriting support is currently disabled'

1
app/widgets/Api/api.tpl

@ -29,6 +29,7 @@
<div class="clear"></div>
</div>
{/if}
<script type="text/javascript">AdminTest.enableAPI();</script>
{else}
<div class="message info">
{$c->__('api.register')}

4
app/widgets/Login/login.js

@ -113,3 +113,7 @@ MovimWebsocket.attach(function()
movim_add_class('#loginpage', 'choose');
}
});
movim_add_onload(function() {
//MovimWebsocket.unregister();
});

7
app/widgets/Tabs/tabs.css

@ -19,6 +19,12 @@
transition: background 0.5s;
}
#navtabs li.disabled {
pointer-events: none;
opacity: 0.5;
}
#navtabs li a {
display: block;
line-height: 3em;
@ -26,6 +32,7 @@
width:100%;
text-decoration: none;
color: #555;
border-bottom: 2px solid transparent;
}
#navtabs li:hover a {

4
bootstrap.php

@ -99,7 +99,9 @@ class Bootstrap {
define('APP_TITLE', 'Movim');
define('APP_NAME', 'movim');
define('APP_VERSION', $this->getVersion());
define('BASE_HOST', $_SERVER['HTTP_HOST']);
if(isset($_SERVER['HTTP_HOST'])) {
define('BASE_HOST', $_SERVER['HTTP_HOST']);
}
define('BASE_URI', $this->getBaseUri());
define('CACHE_URI', $this->getBaseUri() . 'cache/');

17
daemon.php

@ -6,13 +6,24 @@ use Movim\Daemon\Behaviour;
require dirname(__FILE__) . '/vendor/autoload.php';
define('DOCUMENT_ROOT', dirname(__FILE__));
require_once(DOCUMENT_ROOT.'/bootstrap.php');
$bootstrap = new Bootstrap();
$booted = $bootstrap->boot();
$argsize = count($argv);
if($argsize == 1) {
echo "Please specify a base uri eg. http://myhost.com/movim/\n";
echo colorize("Please specify a base uri eg.", "red"). colorize(" http://myhost.com/movim/\n", 'yellow');
exit;
}
if($argsize == 2) {
echo colorize("Please specify a port eg.", "red"). colorize(" 8080\n", 'yellow');
exit;
}
$server = new Behaviour($argv[1]);
$server = new Behaviour($argv[1], $argv[2]);
$server = IoServer::factory(
new HttpServer(
@ -20,7 +31,7 @@ $server = IoServer::factory(
$server
)
),
8080
$argv[2]
);
$server->run();

25
src/Movim/Daemon/Behaviour.php

@ -9,8 +9,10 @@ class Behaviour implements MessageComponentInterface {
//protected $process;
protected $baseuri;
public function __construct($baseuri) {
echo "Movim daemon launched - Base URI : {$baseuri}\n";
public function __construct($baseuri, $port) {
echo colorize("Movim daemon launched\n", 'green');
echo colorize("Base URI :", 'green')." {$baseuri}\n";
echo colorize("WebSocket URL :", 'green')." http(s)://[your host adress]:{$port}\n";
$this->baseuri = $baseuri;
}
@ -35,16 +37,7 @@ class Behaviour implements MessageComponentInterface {
$this->sessions[$sid]['process']->start($loop);
}
echo "{$cookies['MOVIM_SESSION_ID']} : {$conn->resourceId} connected\n";
} else {
//var_dump(get_class_methods($conn->WebSocket->request));
//var_dump($conn->WebSocket->request->getBody());
//var_dump($conn->WebSocket->request->getHeaders());
//var_dump($conn->WebSocket->request->getParams());
//var_dump($conn->WebSocket->request->getCookies());
//var_dump($conn->WebSocket->request->getUrl());
//var_dump($conn->WebSocket->request->getState());
//var_dump($conn->WebSocket->request->getHeaderLines());
echo colorize($cookies['MOVIM_SESSION_ID'], 'yellow'). " : ".colorize($conn->resourceId." connected\n", 'green');
}
}
@ -83,7 +76,7 @@ class Behaviour implements MessageComponentInterface {
}
$session_size = count($this->sessions[$from->sid]);
echo "{$from->sid} : {$from->resourceId} linker registered - session size {$session_size}\n";
echo colorize($from->sid, 'yellow')." : ".colorize($from->resourceId.' linker registered', 'green')." - session size {$session_size}\n";
break;
// A message is received !
@ -138,10 +131,12 @@ class Behaviour implements MessageComponentInterface {
echo "{$client->resourceId} disconnected to login\n";
}
}
echo "{$conn->resourceId} linker disconnected - session size {$session_size}\n";
echo colorize($sid, 'yellow')." : ".
colorize($conn->resourceId.' linker disconnected', 'red')." - session size {$session_size}\n";
unset($this->sessions[$sid]);
} else {
echo "{$conn->resourceId} disconnected - session size {$session_size}\n";
echo colorize($sid, 'yellow')." : ".
colorize($conn->resourceId.' disconnected', 'red')." - session size {$session_size}\n";
unset($this->sessions[$sid][$conn->resourceId]);
}
}

4
system/Sessionx.php

@ -49,7 +49,7 @@ class Sessionx {
} elseif(SESSION_ID) {
self::$_sessionid = SESSION_ID;
} else {
$key = generateKey(64);
$key = generateKey(32);
setcookie("MOVIM_SESSION_ID", $key, time()+$this->_max_age, '/');
self::$_sessionid = $key;
}
@ -92,7 +92,7 @@ class Sessionx {
$cd = new \Modl\ConfigDAO();
$config = $cd->get();
$this->_url = $config->boshurl;
$this->_url = $config->websocketurl;
$this->_port = 5222;
$this->_host = $host;
$this->_domain = $domain;

52
themes/movim/css/forms.css

@ -103,16 +103,15 @@ legend {
background-color: white;
overflow-y: hidden;
font-size: 1em;
border: none;
border: 1px solid #DDD;
}
/* Select input CSS */
.element .select {
position: relative;
padding: 0px;
padding: 0;
overflow: hidden;
background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.04) 2px);
background-image: -moz-linear-gradient(bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.04) 2px);
background-image: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.04) 2px);
background-color: white;
background-size: 100% 100%;
@ -123,9 +122,9 @@ legend {
width: 130%;
background-color: transparent;
display: block;
padding-top: 0.3em;
padding-top: 0em;
padding-left: 0.3em;
height: 2em;
height: 1.7em;
}
.element .select:before {
@ -359,44 +358,3 @@ legend {
.button[disabled] {
opacity: 0.5;
}
/*
.icon.yes:before { background-image: url(../img/icons/button/checkmark.svg); }
.icon.no:before { background-image: url(../img/icons/button/close.svg); }
.icon.chat:before { background-image: url(../img/icons/button/bubbles.svg);}
.icon.image:before { background-image: url(../img/icons/button/image.svg);}
.icon.images:before { background-image: url(../img/icons/button/images.svg);}
.icon.add:before { background-image: url(../img/icons/button/plus.svg); }
.icon.rm:before { background-image: url(../img/icons/button/minus.svg); }
.icon.write:before { background-image: url(../img/icons/button/pencil.svg); }
.icon.help:before { background-image: url(../img/icons/button/support.svg); }
.icon.upload:before { background-image: url(../img/icons/button/upload.svg); }
.icon.search:before { background-image: url(../img/icons/button/search.svg); }
.icon.refresh:before{ background-image: url(../img/icons/button/loop.svg); }
.icon.blog:before { background-image: url(../img/icons/button/quill.svg); }
.icon.feed:before { background-image: url(../img/icons/button/feed.svg); }
.icon.back:before { background-image: url(../img/icons/button/arrow-left.svg); }
.icon.next:before { background-image: url(../img/icons/button/arrow-right.svg); }
.icon.geo:before { background-image: url(../img/icons/button/location.svg); }
.icon.preview:before{ background-image: url(../img/icons/button/eye.svg); }
.icon.share:before { background-image: url(../img/icons/button/share.svg); }
.icon.mail:before { background-image: url(../img/icons/button/envelope.svg); }
.icon.tag:before { background-image: url(../img/icons/button/tag.svg); }
.icon.users:before { background-image: url(../img/icons/button/users.svg); }
.icon.loading:before{ background-image: url(../img/icons/button/loop.svg); }
.icon.user:before { background-image: url(../img/icons/button/user.svg); }
.icon.link:before { background-image: url(../img/icons/button/link.svg); }
.icon.call:before { background-image: url(../img/icons/button/call.svg); }
.icon.hang-up:before{ background-image: url(../img/icons/button/hang-up.svg); }
.icon.expand:before { background-image: url(../img/icons/button/expand.svg); }
.icon.gear:before { background-image: url(../img/icons/button/gear.svg); }
.icon.contract:before{ background-image: url(../img/icons/button/contract.svg); }
.icon.skype:before{ background-image: url(../img/icons/button/skype.svg); }
.icon.twitter:before{ background-image: url(../img/icons/button/twitter.svg); }
.icon.yahoo:before{ background-image: url(../img/icons/button/yahoo.svg); }
.icon.camera:before{ background-image: url(../img/icons/button/camera.svg); }
.icon.camera-off:before{ background-image: url(../img/icons/button/camera-off.svg); }
.icon.microphone:before{ background-image: url(../img/icons/button/microphone.svg); }
.icon.microphone-off:before{ background-image: url(../img/icons/button/microphone-off.svg); }
*/

9
themes/movim/css/style.css

@ -81,11 +81,13 @@ a:link, a:visited {
position: absolute;
top: 0em;
right: 0em;
width: 3em;
height: 3em;
width: 2.6em;
height: 2.6em;
margin: 0.2em;
background-size: 2em 2em;
background-repeat: no-repeat;
background-position: center center;
border-radius: 0.2em;
}
.protect.white:after {
@ -526,6 +528,9 @@ dl dt {
text-align: right;
font-weight: bold;
width: 25%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
dl dd {

Loading…
Cancel
Save