Browse Source

- Roster scrollbar is hidden except on hover

pull/16/head
Christine Ho 11 years ago
parent
commit
b361ceaf55
  1. 37
      app/assets/js/movim_map.js
  2. 34
      app/widgets/ContactSummary/ContactSummary.php
  3. 33
      app/widgets/ContactSummary/_contactsummary_content.tpl
  4. 12
      app/widgets/ContactSummary/contactsummary.css
  5. 3
      app/widgets/ContactSummary/contactsummary.tpl
  6. 9
      app/widgets/Roster/roster.css
  7. 17
      app/widgets/Roster/roster.js
  8. 1
      app/widgets/Wall/Wall.php
  9. 64
      app/widgets/WidgetCommon/WidgetCommon.php
  10. 8
      system/Sessionx.php
  11. 3
      system/controllers/FrontController.php

37
app/assets/js/movim_map.js

@ -3,7 +3,9 @@
*/
var MovimMap = {
init: function() {
MovimMap.postsmap = L.map("postsmap").setView([40,0], 2);
if(document.getElementById('postsmap') == null) return;
MovimMap.postsmap = L.map('postsmap').setView([40,0], 2);
L.tileLayer("http://tile.openstreetmap.org/{z}/{x}/{y}.png", {
attribution: "Map data &copy; <a href=\"http://openstreetmap.org\">OpenStreetMap</a> contributors, <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>, Mapnik ©",
@ -15,6 +17,8 @@ var MovimMap = {
MovimMap.layerGroup = new L.LayerGroup().addTo(MovimMap.postsmap);
},
refresh: function() {
if(document.getElementById('postsmap') == null) return;
if(MovimMap.postsmap != null) {
MovimMap.layerGroup.clearLayers();
}
@ -27,7 +31,33 @@ var MovimMap = {
}
}
MovimMap.postsmap.fitBounds(MovimMap.bound);
MovimMap.addContact();
MovimMap.fit();
},
addContact: function() {
if(document.getElementById('postsmap') == null) return;
var profile = document.querySelector('#contactsummary_widget .profile');
if(profile.dataset != null) {
var popup = "<img style='float: left; margin-right: 1em;' src='" + profile.dataset.avatar + "'/>" +
"<div style='padding: 0.5em;'>" + profile.dataset.date + '</div>';
var red = L.icon({
iconUrl: BASE_URI + '/themes/movim/img/marker-icon.png',
iconSize: [25,41], // size of the icon
shadowSize: [50, 64], // size of the shadow
iconAnchor: [13, 41]
});
var marker = L.marker([profile.dataset.lat ,profile.dataset.lon], {icon: red}).addTo(MovimMap.postsmap);
marker.bindPopup(popup).openPopup();
MovimMap.bound.push([profile.dataset.lat, profile.dataset.lon]);
MovimMap.fit();
}
},
addMarker: function(lat, lon, id) {
var marker = L.marker([lat, lon]);
@ -37,4 +67,7 @@ var MovimMap = {
MovimMap.bound.push([lat, lon]);
},
fit: function() {
MovimMap.postsmap.fitBounds(MovimMap.bound);
},
}

34
app/widgets/ContactSummary/ContactSummary.php

@ -3,17 +3,14 @@
/**
* @package Widgets
*
* @file Roster.php
* @file ContactSummary.php
* This file is part of MOVIM.
*
* @brief The Roster widget
* @brief Contact Summary widget
*
* @author Jaussoin Timothée <edhelas@gmail.com>
* @author Jaussoin Timothée <edhelas@movim.eu>
*
* @version 1.0
* @date 30 August 2010
*
* Copyright (C)2010 MOVIM project
* Copyright (C)2014 MOVIM project
*
* See COPYING for licensing information.
*/
@ -31,14 +28,7 @@ class ContactSummary extends WidgetCommon
function display()
{
$cd = new \Modl\ContactDAO();
if($_GET['f'] == $this->user->getLogin()) {
$contact = $cd->get($this->user->getLogin());
}
if(!isset($contact)) {
$contact = $cd->getRosterItem($_GET['f']);
}
$contact = $cd->getRosterItem($_GET['f']);
if(!isset($contact)) {
$contact = $cd->get($_GET['f']);
@ -46,9 +36,8 @@ class ContactSummary extends WidgetCommon
if(isset($contact)) {
$this->view->assign('contact', $contact);
$this->view->assign('refresh', false);
} else {
$contact = new modl\Contact();
$contact = new \Modl\Contact();
$contact->jid = $_GET['f'];
$this->view->assign('contact', $contact);
}
@ -59,7 +48,16 @@ class ContactSummary extends WidgetCommon
function onVcard($packet)
{
$contact = $packet->content;
$html = $this->prepareContactSummary($contact);
// We try to get more informations on the contact
$cd = new \Modl\ContactDAO();
$contact_roster = $cd->getRosterItem($contact->jid);
if(!isset($contact_roster)) {
$contact_roster = $contact;
}
$html = $this->prepareContactSummary($contact_roster);
RPC::call('movim_fill', 'contactsummary', $html);
}

33
app/widgets/ContactSummary/_contactsummary_content.tpl

@ -1,15 +1,20 @@
<a
class="avatar"
style="background-image: url({$contact->getPhoto('l')}"
href="{$c->route('friend',$contact->jid)}">
</a>
<h1 class="paddedbottom">{$contact->getTrueName()}</h1>
{if="isset($contact->url) && filter_var($contact->url, FILTER_VALIDATE_URL)"}
<a target="_blank" class="paddedtopbottom url" href="{$contact->url}">{$contact->url}</a>
{/if}
<div class="profile"
{if="$contact->loclatitude"}
data-lat="{$contact->loclatitude}"
data-lon="{$contact->loclongitude}"
data-avatar="{$contact->getPhoto('s')}"
data-date="{$contact->loctimestamp|strtotime|prepareDate}"
{/if}>
<a
class="avatar"
style="background-image: url({$contact->getPhoto('l')}"
href="{$c->route('friend',$contact->jid)}">
</a>
<h1 class="paddedbottom">{$contact->getTrueName()}</h1>
{if="$contact->status"}
<div class="status">
{$contact->status|prepareString}
</div>
{/if}
{if="$contact->status"}
<div class="status">
{$contact->status|prepareString}
</div>
{/if}
</div>

12
app/widgets/ContactSummary/contactsummary.css

@ -1,18 +1,16 @@
#contactsummary {
/* background-color: rgba(20, 20, 20, 0.5);*/
#contactsummary_widget {
line-height: 1.5em;
padding-bottom: 1rem;
}
#contactsummary h1 {
/*color: white;*/
#contactsummary_widget h1 {
text-align: center;
color: #333;
margin-bottom: 0.5em;
line-height: 1.5em;
}
#contactsummary a.avatar {
#contactsummary_widget a.avatar {
width: 92%;
padding-bottom: 92%;
box-shadow: 0 0.1em 0.2em rgba(0, 0, 0, 0.25), 0 0.1em 0.5em rgba(0, 0, 0, 0.20);
@ -22,7 +20,7 @@
border-radius: 0.5em;
}
#contactsummary a.url {
#contactsummary_widget a.url {
width: 100%;
display: block;
white-space: nowrap;
@ -34,6 +32,6 @@
-moz-box-sizing: border-box;
}
#contactsummary .status {
#contactsummary_widget .status {
text-align: center;
}

3
app/widgets/ContactSummary/contactsummary.tpl

@ -1,10 +1,11 @@
<div id="contactsummary">
<div id="contactsummary_widget">
{$c->prepareContactSummary($contact)}
<script type="text/javascript">
MovimWebsocket.attach(function()
{
{$refresh}
MovimMap.addContact();
});
</script>
</div>

9
app/widgets/Roster/roster.css

@ -5,14 +5,9 @@
pointer-events: auto;
/*height: 100%;*/
height: calc(100% - 6em);
overflow: hidden;
}
/*#roster:after {
content: "";
display: block;
height: 3em;
}*/
#roster span.nocontacts {
color: white;
margin: 1.5em;
@ -22,7 +17,7 @@
text-align: center;
}
#roster/*:hover */{
#roster:hover {
overflow: auto;
}

17
app/widgets/Roster/roster.js

@ -15,8 +15,8 @@
$scope.groups = [];
this.lsRoster = localStorage.getObject(localStorage.getItem("username") + "_Roster");
this.lsGroupState = lsRoster ? lsRoster["groupState"] : null;
this.lsCache = localStorage.getObject(localStorage.getItem("username") + "_cache")["Roster"];
this.lsGroupState = this.lsRoster ? this.lsRoster["groupState"] : null;
this.lsCache = localStorage.getObject(localStorage.getItem("username") + "_cache")? localStorage.getObject(localStorage.getItem("username") + "_cache")["Roster"] : null;
/* Dictionaries */
$scope.lookupgroups = {};
@ -73,6 +73,17 @@
};
$scope.initGroups = function(list){
/*if(this.lsRoster === null){
for (var i in list){
if(localStorage.getObject("rosterGroup_"+i) === null){
list[i] = true;
localStorage.setObject("rosterGroup_"+i, true);
}
else list[i] = localStorage.getObject("rosterGroup_"+i);
}
}
else{*/
console.log(list);
for (var i in list){
if(localStorage.getObject("rosterGroup_"+i) === null){
list[i] = true;
@ -81,8 +92,6 @@
else list[i] = localStorage.getObject("rosterGroup_"+i);
}
if(this.lsRoster === null)
this.lsRoster = list;
$scope.groups = list;
$scope.$apply();

1
app/widgets/Wall/Wall.php

@ -89,7 +89,6 @@ class Wall extends WidgetCommon
$wallhead->assign('from', $from);
$wallhead->assign('posts', $htmlmessages);
$wallhead->assign('pl', $pl);
//$wallhead->assign('map', $this->printMap($pl, $c));
$wallhead->assign('refresh', $this->genCallAjax('ajaxWall', "'".$from."'"));
$wallhead->assign('older', $this->genCallAjax('ajaxGetFeed', "'".$next."'", "'".$from."'"));
$html = $wallhead->draw('_wall_head', true);

64
app/widgets/WidgetCommon/WidgetCommon.php

@ -358,70 +358,6 @@ class WidgetCommon extends WidgetBase {
}
protected function printMap($posts, $c = null) {
$html = '<div style="height: 13em;" id="postsmap"></div>';
$javascript = '
<script type="text/javascript">
var postsmap = L.map("postsmap").setView([40,0], 2);
L.tileLayer("http://tile.openstreetmap.org/{z}/{x}/{y}.png", {
attribution: "Map data &copy; <a href=\"http://openstreetmap.org\">OpenStreetMap</a> contributors, <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>, Mapnik ©",
maxZoom: 18
}).addTo(postsmap);';
$id = 0;
$posfound = false;
$bound = '';
foreach($posts as $post) {
if($post->getPlace() != false) {
$posfound = true;
$javascript .= "
var marker".$id." = L.marker([".$post->lat.",".$post->lon."]).addTo(postsmap);
marker".$id.".on('click', function() {document.location = '#".md5($post->nodeid)."'});
";
$bound .= '['.$post->lat.','.$post->lon.'],';
$id++;
}
}
if(isset($c) && $c->loclatitude != '' && $c->loclongitude != '') {
$posfound = true;
$popup = '<img style=\'float: left; margin-right: 1em;\' src=\''.$c->getPhoto('s').'\'/>';
$popup .= '<div style=\'padding: 0.5em;\'>'.$c->getPlace().'<br />'.prepareDate(strtotime($c->loctimestamp)).'</div>';
$popup .= '<div class=\'clear\'></div>';
$javascript .= '
var red = L.icon({
iconUrl: "'.BASE_URI.'/themes/movim/img/marker-icon.png",
iconSize: [25,41], // size of the icon
shadowSize: [50, 64], // size of the shadow
iconAnchor: [13, 41]
});
var marker = L.marker(['.$c->loclatitude.' ,'.$c->loclongitude.'], {icon: red}).addTo(postsmap);
marker.bindPopup("'.$popup.'").openPopup();
';
$bound .= '['.$c->loclatitude.','.$c->loclongitude.'],';
}
$javascript .= '
postsmap.fitBounds(['.$bound.']);
</script>';
if($posfound)
return $html.$javascript;
else
return '';
}
/*
* @desc Prepare a group of messages
* @param array of messages

8
system/Sessionx.php

@ -55,6 +55,13 @@ class Sessionx {
}
}
public function refreshCookie()
{
if(isset($_COOKIE['MOVIM_SESSION_ID'])) {
setcookie("MOVIM_SESSION_ID", $_COOKIE['MOVIM_SESSION_ID'], time()+$this->_max_age, '/');
}
}
public static function start()
{
if(!isset(self::$_instance)) {
@ -67,7 +74,6 @@ class Sessionx {
/*
* Session management part
*/
private function inject() {
$s = new modl\Sessionx();
$s->session = self::$_sessionid;

3
system/controllers/FrontController.php

@ -44,6 +44,9 @@ class FrontController extends BaseController
public function runRequest($request) {
$c = $this->loadController($request);
$sess = Sessionx::start();
$sess->refreshCookie();
if(is_callable(array($c, 'load'))) {
$c->name = $request;
$c->load();

Loading…
Cancel
Save