diff --git a/system/User.php b/system/User.php
index 4a37a6332..7925bffaa 100644
--- a/system/User.php
+++ b/system/User.php
@@ -8,9 +8,14 @@
class User {
private $xmppSession;
- private $username = '';
+ public $username = '';
private $password = '';
private $config = array();
+
+ public $userdir;
+ public $useruri;
+
+ public $sizelimit;
/**
* Class constructor. Reloads the user's session or attempts to authenticate
@@ -23,9 +28,28 @@ class User {
global $session;
$this->username = $session['user'].'@'.$session['host'];
$this->config = $session['config'];
-
+
+ $this->sizelimit = (int)Conf::getServerConfElement('sizeLimit');
+
+ $this->userdir = BASE_PATH.'users/'.$this->username.'/';
+ $this->useruri = BASE_URI.'users/'.$this->username.'/';
}
}
+
+ /**
+ * Get the current size in bytes of the user directory
+ */
+ function dirSize()
+ {
+ $sum = 0;
+
+ foreach(scandir($this->userdir) as $s) {
+ if($s != '.' && $s != '..' && $s != 'index.html')
+ $sum = $sum + filesize($this->userdir.$s);
+ }
+
+ return $sum;
+ }
/**
* Checks if the user has an open session.
diff --git a/system/Widget/widgets/Media/Media.php b/system/Widget/widgets/Media/Media.php
index a989c4579..f87b98eec 100644
--- a/system/Widget/widgets/Media/Media.php
+++ b/system/Widget/widgets/Media/Media.php
@@ -19,23 +19,15 @@
*/
class Media extends WidgetBase {
-
- private $_userdir;
- private $_useruri;
- public $_sizelimit;
-
function WidgetLoad()
{
$this->addcss('media.css');
$this->addjs('media.js');
- $this->_sizelimit = (int)Conf::getServerConfElement('sizeLimit');
-
- $this->_userdir = BASE_PATH.'users/'.$this->user->getLogin().'/';
- $this->_useruri = BASE_URI.'users/'.$this->user->getLogin().'/';
-
- if(!is_dir($this->_userdir))
- mkdir($this->_userdir);
+ if(!is_dir($this->user->userdir)) {
+ mkdir($this->user->userdir);
+ touch($this->user->userdir.'index.html');
+ }
$this->registerEvent('media', 'onMediaUploaded');
}
@@ -47,32 +39,33 @@ class Media extends WidgetBase {
RPC::commit();
}
- function dirSize()
+ function ajaxDeleteItem($name)
{
- $sum = 0;
-
- foreach(scandir($this->_userdir) as $s) {
- if($s != '.' && $s != '..')
- $sum = $sum + filesize($this->_userdir.$s);
- }
+ unlink($this->user->userdir.'thumb_'.$name);
+ unlink($this->user->userdir.'medium_'.$name);
+ unlink($this->user->userdir.$name);
- return $sum;
+ $this->ajaxRefreshMedia();
}
function listFiles()
{
$html = '
';
- foreach(scandir($this->_userdir) as $s) {
+ foreach(scandir($this->user->userdir) as $s) {
if(
$s != '.' &&
$s != '..' &&
substr($s, 0, 6) != 'thumb_' &&
- substr($s, 0, 7) != 'medium_')
+ substr($s, 0, 7) != 'medium_'
+ && $s != 'index.html')
$html .=
- '
-
- ';
+ '-
+
+
+
x
+
+ ';
}
$html .= '
';
@@ -82,12 +75,12 @@ class Media extends WidgetBase {
function mainFolder()
{
- $percent = number_format(($this->dirSize()/$this->_sizelimit)*100, 2);
+ $percent = number_format(($this->user->dirSize()/$this->user->sizelimit)*100, 2);
$html =
$this->listFiles().'
- '.sizeToCleanSize($this->dirSize()).' '.t('on').' '.sizeToCleanSize($this->_sizelimit).
+ '.sizeToCleanSize($this->user->dirSize()).' '.t('on').' '.sizeToCleanSize($this->user->sizelimit).
' - '.
$percent.'%
';
@@ -99,9 +92,9 @@ class Media extends WidgetBase {
{
//var_dump(exif_read_data($this->_userdir.$f));
- if(file_exists($this->_userdir.$f) && getimagesize($this->_userdir.$f) != 0) {
+ if(file_exists($this->user->userdir.$f) && getimagesize($this->user->userdir.$f) != 0) {
- $er = @exif_read_data($this->_userdir.$f);
+ $er = @exif_read_data($this->user->userdir.$f);
$exif = '';
@@ -123,11 +116,11 @@ class Media extends WidgetBase {
$exif .= ''.t('Artist').''.$er['Artist'].'';
}
- $exif .= ''.t('Original').''.t('Link').'';
+ $exif .= ''.t('Original').''.t('Link').'';
$html = '
-

+
diff --git a/system/Widget/widgets/Media/media.css b/system/Widget/widgets/Media/media.css
index db5b7647b..00b7b5b17 100644
--- a/system/Widget/widgets/Media/media.css
+++ b/system/Widget/widgets/Media/media.css
@@ -19,6 +19,34 @@
border-color: #222;
}
+#media ul.thumb a {
+ position: relative;
+}
+
+#media ul.thumb li div.remove {
+ position: absolute;
+ bottom: 0px;
+ right: 0px;
+ background-color: rgba(0, 0, 0, 0.6);
+ border-radius: 3px 0px 0px 0px;
+ font-weight: bold;
+ width: 26px;
+ height: 26px;
+ text-align: center;
+ line-height: 26px;
+ font-size: 16px;
+ display: none;
+}
+
+#media ul.thumb li:hover div.remove {
+ display: block;
+}
+
+#media ul.thumb li:hover div.remove:hover {
+ background-color: black;
+ cursor: pointer;
+}
+
#media a:link, #media a:visited,
#viewer a:link, #viewer a:visited {
color: #DDD;
diff --git a/system/Widget/widgets/MediaUpload/MediaUpload.php b/system/Widget/widgets/MediaUpload/MediaUpload.php
index 0b329181b..91d2a708d 100644
--- a/system/Widget/widgets/MediaUpload/MediaUpload.php
+++ b/system/Widget/widgets/MediaUpload/MediaUpload.php
@@ -25,10 +25,8 @@ class MediaUpload extends WidgetBase {
}
function build()
- {
- $media = new Media();
-
- if($media->dirSize() < $media->_sizelimit) {
+ {
+ if($this->user->dirSize() < $this->user->sizelimit) {
?>