Merge branch 'master' of git://anongit.kde.org/owncloud into autoload
Conflicts: lib/base.php lib/filestorage.php
|
@ -2,7 +2,7 @@
|
|||
|
||||
OC_APP::register( array( "order" => 1, "id" => "admin", "name" => "Administration" ));
|
||||
|
||||
OC_APP::addAdminPage( array( "id" => "core_system", "order" => 1, "href" => OC_HELPER::linkTo( "admin", "system.php" ), "name" =>"System", "icon" => OC_HELPER::imagePath( "admin", "administration.png" )));
|
||||
// OC_APP::addAdminPage( array( "id" => "core_system", "order" => 1, "href" => OC_HELPER::linkTo( "admin", "system.php" ), "name" =>"System", "icon" => OC_HELPER::imagePath( "admin", "administration.png" )));
|
||||
OC_APP::addAdminPage( array( "id" => "core_users", "order" => 2, "href" => OC_HELPER::linkTo( "admin", "users.php" ), "name" => "Users", "icon" => OC_HELPER::imagePath( "admin", "users.png" )));
|
||||
OC_APP::addAdminPage( array( "id" => "core_apps", "order" => 3, "href" => OC_HELPER::linkTo( "admin", "apps.php?installed" ), "name" => "Apps", "icon" => OC_HELPER::imagePath( "admin", "apps.png" )));
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ $(document).ready(function() {
|
|||
$( 'body' ).append(overlay);
|
||||
var container=$('<div id="lightbox"/>');
|
||||
$( 'body' ).append(container);
|
||||
FileActions.register('image','View',function(filename){
|
||||
FileActions.register('image','View','',function(filename){
|
||||
var location='ajax/download.php?files='+filename+'&dir='+$('#dir').val();
|
||||
overlay.show();
|
||||
if(!images[location]){
|
||||
|
|
|
@ -105,6 +105,9 @@ if($arguments['action']){
|
|||
|
||||
$ftype=OC_FILESYSTEM::getMimeType( $arguments['path'] );
|
||||
|
||||
$songId=OC_MEDIA_COLLECTION::getSongByPath($arguments['path']);
|
||||
OC_MEDIA_COLLECTION::registerPlay($songId);
|
||||
|
||||
header('Content-Type:'.$ftype);
|
||||
header('Expires: 0');
|
||||
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
|
||||
|
|
|
@ -29,5 +29,5 @@ if(OC_APP::getCurrentApp()=='files'){
|
|||
OC_APP::register( array( 'order' => 3, 'id' => 'media', 'name' => 'Media' ));
|
||||
|
||||
OC_APP::addNavigationEntry( array( 'id' => 'media_index', 'order' => 2, 'href' => OC_HELPER::linkTo( 'media', 'index.php' ), 'icon' => OC_HELPER::imagePath( 'media', 'media.png' ), 'name' => 'Media' ));
|
||||
OC_APP::addSettingsPage( array( 'id' => 'media_settings', 'order' => 5, 'href' => OC_HELPER::linkTo( 'media', 'settings.php' ), 'name' => 'Media', 'icon' => OC_HELPER::imagePath( 'files', 'media.png' )));
|
||||
OC_APP::addSettingsPage( array( 'id' => 'media_settings', 'order' => 5, 'href' => OC_HELPER::linkTo( 'media', 'settings.php' ), 'name' => 'Media', 'icon' => OC_HELPER::imagePath( 'media', 'media.png' )));
|
||||
?>
|
||||
|
|
|
@ -206,6 +206,24 @@
|
|||
<length>4</length>
|
||||
</field>
|
||||
|
||||
<field>
|
||||
<name>song_playcount</name>
|
||||
<type>integer</type>
|
||||
<default>
|
||||
</default>
|
||||
<notnull>true</notnull>
|
||||
<length>4</length>
|
||||
</field>
|
||||
|
||||
<field>
|
||||
<name>song_lastplayed</name>
|
||||
<type>integer</type>
|
||||
<default>
|
||||
</default>
|
||||
<notnull>true</notnull>
|
||||
<length>4</length>
|
||||
</field>
|
||||
|
||||
</declaration>
|
||||
|
||||
</table>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#jp-interface{position:fixed;z-index:100;width:25em;left:201px;top:-10px;height:80px;border-bottom:none;}
|
||||
#jp-interface.player{display:hidden;}
|
||||
#jp-interface{position:fixed;z-index:100;width:25em;left:201px;top:-20px;height:80px;border-bottom:none;}
|
||||
#jp-interface div.player{height:0px}
|
||||
#jp-interface ul.jp-controls{list-style-type:none;padding:0;}
|
||||
#jp-interface ul.jp-controls li{display:inline;}
|
||||
#jp-interface ul.jp-controls a{position:absolute;overflow:hidden;text-indent:-9999px;}
|
||||
|
@ -25,5 +25,5 @@ a.jp-unmute{background:url("../img/jplayer.blue.monday.png") 0 -170px no-repeat;
|
|||
a.jp-unmute:hover{background:url("../img/jplayer.blue.monday.png") -19px -186px no-repeat;}
|
||||
div.jp-volume-bar{position:absolute;overflow:hidden;background:url("../img/jplayer.blue.monday.png") 0 -250px repeat-x;width:46px;height:5px;cursor:pointer;top:37px;left:324px;}
|
||||
div.jp-volume-bar-value{background:url("../img/jplayer.blue.monday.png") 0 -256px repeat-x;width:0;height:5px;}
|
||||
div.jp-current-time,div.jp-duration{position:absolute;font-size:.64em;font-style:oblique;top:49px;left:164px;width:122px;}
|
||||
div.jp-current-time,div.jp-duration{position:absolute;font-size:.64em;font-style:oblique;top:45px;left:164px;width:122px;}
|
||||
div.jp-duration{text-align:right;}
|
||||
|
|
After Width: | Height: | Size: 562 B |
|
@ -40,11 +40,11 @@ function loadPlayer(type,ready){
|
|||
$(document).ready(function() {
|
||||
loadPlayer.done=false
|
||||
|
||||
FileActions.register('audio','Add to playlist',addAudio);
|
||||
FileActions.register('application/ogg','Add to playlist',addAudio);
|
||||
// FileActions.register('audio','Add to playlist','',addAudio);
|
||||
// FileActions.register('application/ogg','Add to playlist','',addAudio);
|
||||
|
||||
FileActions.register('audio','Play',playAudio);
|
||||
FileActions.register('application/ogg','Play',playAudio);
|
||||
FileActions.register('audio','Play','',playAudio);
|
||||
FileActions.register('application/ogg','','Play',playAudio);
|
||||
FileActions.setDefault('audio','Play');
|
||||
FileActions.setDefault('application/ogg','Play');
|
||||
});
|
|
@ -62,6 +62,7 @@ var PlayList={
|
|||
}
|
||||
},
|
||||
cssSelectorAncestor:'#jp-interface',
|
||||
swfPath:OC.linkTo('media','js'),
|
||||
});
|
||||
},
|
||||
add:function(song){
|
||||
|
|
|
@ -270,7 +270,8 @@ class OC_MEDIA_COLLECTION{
|
|||
if($songId!=0){
|
||||
return $songId;
|
||||
}else{
|
||||
$query=OC_DB::prepare("INSERT INTO `*PREFIX*media_songs` (`song_id` ,`song_name` ,`song_artist` ,`song_album` ,`song_path` ,`song_user`,`song_length`,`song_track`,`song_size`) VALUES (NULL , ?, ?, ?, ?,?,?,?,?)");
|
||||
$query=OC_DB::prepare("INSERT INTO `*PREFIX*media_songs` (`song_id` ,`song_name` ,`song_artist` ,`song_album` ,`song_path` ,`song_user`,`song_length`,`song_track`,`song_size`,`song_playcount`,`song_lastplayed`)
|
||||
VALUES (NULL , ?, ?, ?, ?,?,?,?,?,0,0)");
|
||||
$query->execute(array($name,$artist,$album,$path,$uid,$length,$track,$size));
|
||||
$songId=OC_DB::insertid();
|
||||
// self::setLastUpdated();
|
||||
|
@ -346,6 +347,31 @@ class OC_MEDIA_COLLECTION{
|
|||
$query=OC_DB::prepare("DELETE FROM *PREFIX*media_songs WHERE song_path LIKE ?");
|
||||
$query->execute(array("$path%"));
|
||||
}
|
||||
|
||||
/**
|
||||
* increase the play count of a song
|
||||
* @param int songId
|
||||
*/
|
||||
public static function registerPlay($songId){
|
||||
$now=time();
|
||||
$query=OC_DB::prepare('UPDATE *PREFIX*media_songs SET song_playcount=song_playcount+1, song_lastplayed=? WHERE song_id=? AND song_lastplayed<?');
|
||||
$query->execute(array($now,$songId,$now-60));
|
||||
}
|
||||
|
||||
/**
|
||||
* get the id of the song by path
|
||||
* @param string $path
|
||||
* @return int
|
||||
*/
|
||||
public static function getSongByPath($path){
|
||||
$query=OC_DB::prepare("SELECT song_id FROM *PREFIX*media_songs WHERE song_path = ?");
|
||||
$result=$query->execute(array($path))->fetchAll();
|
||||
if(count($result)>0){
|
||||
return $result[0]['song_id'];
|
||||
}else{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -68,10 +68,48 @@ class OC_MEDIA_SCANNER{
|
|||
* @return boolean
|
||||
*/
|
||||
public static function scanFile($path){
|
||||
$file=OC_FILESYSTEM::getLocalFile($path);
|
||||
if(substr($path,-3)=='mp3' and OC_HELPER::canExecute("id3info") and OC_HELPER::canExecute("mp3info")){//use the command line tool id3info if possible
|
||||
$output=array();
|
||||
$size=filesize($file);
|
||||
$length=0;
|
||||
$title='unknown';
|
||||
$album='unknown';
|
||||
$artist='unknown';
|
||||
$track=0;
|
||||
exec('id3info "'.$file.'"',$output);
|
||||
$data=array();
|
||||
foreach($output as $line) {
|
||||
switch(substr($line,0,3)){
|
||||
case '***'://comments
|
||||
break;
|
||||
case '==='://tag information
|
||||
$key=substr($line,4,4);
|
||||
$value=substr($line,strpos($line,':')+2);
|
||||
switch(strtolower($key)){
|
||||
case 'tit1':
|
||||
case 'tit2':
|
||||
$title=$value;
|
||||
break;
|
||||
case 'tpe1':
|
||||
case 'tpe2':
|
||||
$artist=$value;
|
||||
break;
|
||||
case 'talb':
|
||||
$album=$value;
|
||||
break;
|
||||
case 'trck':
|
||||
$track=$value;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
$length=exec('mp3info -p "%S" "'.$file.'"');
|
||||
}else{
|
||||
if(!self::$getID3){
|
||||
self::$getID3=@new getID3();
|
||||
}
|
||||
$file=OC_FILESYSTEM::getLocalFile($path);
|
||||
$data=@self::$getID3->analyze($file);
|
||||
getid3_lib::CopyTagsToComments($data);
|
||||
if(!isset($data['comments'])){
|
||||
|
@ -101,7 +139,8 @@ class OC_MEDIA_SCANNER{
|
|||
}
|
||||
$size=$data['filesize'];
|
||||
$track=(isset($data['comments']['track']))?$data['comments']['track'][0]:0;
|
||||
$length=round($data['playtime_seconds']);
|
||||
$length=isset($data['playtime_seconds'])?round($data['playtime_seconds']):0;
|
||||
}
|
||||
if(!isset(self::$artists[$artist])){
|
||||
$artistId=OC_MEDIA_COLLECTION::addArtist($artist);
|
||||
self::$artists[$artist]=$artistId;
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
<div class="jp-volume-bar-value"></div>
|
||||
</div>
|
||||
<div class="jp-current-time"></div>
|
||||
<div class="jp-current-time"></div>
|
||||
<div class="jp-duration"></div>
|
||||
<div class='player'></div>
|
||||
<div class='player' id='jp-player'></div>
|
||||
</div>
|
|
@ -326,27 +326,27 @@ function checkid ( $wait ) {
|
|||
user_session();
|
||||
|
||||
// Get the options, use defaults as necessary
|
||||
$return_to = @strlen($_REQUEST['openid_return_to'])
|
||||
$return_to = isset($_REQUEST['openid_return_to'])
|
||||
? $_REQUEST['openid_return_to']
|
||||
: error_400('Missing return1_to');
|
||||
: error_400('Missing return_to');
|
||||
|
||||
$identity = @strlen($_REQUEST['openid_identity'])
|
||||
$identity = isset($_REQUEST['openid_identity'])
|
||||
? $_REQUEST['openid_identity']
|
||||
: error_get($return_to, 'Missing identity');
|
||||
|
||||
$assoc_handle = @strlen($_REQUEST['openid_assoc_handle'])
|
||||
$assoc_handle = isset($_REQUEST['openid_assoc_handle'])
|
||||
? $_REQUEST['openid_assoc_handle']
|
||||
: null;
|
||||
|
||||
$trust_root = @strlen($_REQUEST['openid_trust_root'])
|
||||
$trust_root = isset($_REQUEST['openid_trust_root'])
|
||||
? $_REQUEST['openid_trust_root']
|
||||
: $return_to;
|
||||
|
||||
$sreg_required = @strlen($_REQUEST['openid_sreg_required'])
|
||||
$sreg_required = isset($_REQUEST['openid_sreg_required'])
|
||||
? $_REQUEST['openid_sreg.required']
|
||||
: '';
|
||||
|
||||
$sreg_optional = @strlen($_REQUEST['openid_sreg_optional'])
|
||||
$sreg_optional = isset($_REQUEST['openid_sreg_optional'])
|
||||
? $_REQUEST['openid_sreg.optional']
|
||||
: '';
|
||||
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
* { margin:0; padding:0; border:0; }
|
||||
* { margin:0; padding:0; border:0; cursor:default; }
|
||||
body { background:#fefefe url('../img/body_background.jpg') repeat-y left top; font:normal 80%/1.6em "Lucida Grande", Arial, Verdana, sans-serif; color:#000; }
|
||||
#header { position:fixed; top:0; z-index:100; width:100%; height:5.5em; padding:0.5em 1.5em; background:url('../img/header-a.png') repeat-x left top; }
|
||||
#body-settings #header { background-image:url('../img/header-settings-a.png'); }
|
||||
#owncloud { float:left; margin:0 0 0 2em; }
|
||||
#header { position:fixed; top:0; z-index:100; width:100%; height:2.5em; padding:0.5em 1.5em; background:#1d2d44; -moz-box-shadow:0 0 10px #000, inset 0 -2px 10px #222; -webkit-box-shadow:0 0 10px #000, inset 0 -2px 10px #222; box-shadow:0 0 10px #000, inset 0 -2px 10px #222; }
|
||||
#body-settings #header { background:#313131; }
|
||||
#owncloud { float:left; }
|
||||
h1 { margin:1em 3em 1em 0; border-bottom:1px solid #666; text-transform:uppercase; font-weight:normal; font-style:italic; color:#666; }
|
||||
p.center { text-align:center; }
|
||||
a { color:#000; text-decoration:none; }
|
||||
a { color:#000; text-decoration:none; outline:0; }
|
||||
table { white-space:nowrap; }
|
||||
input, select { background:#fff; color:#333; }
|
||||
a, a img, a strong, a span, input, button, select, li { cursor:pointer; }
|
||||
input[type="text"], input[type="password"] { cursor:text; }
|
||||
|
||||
form#user_settings { max-width:600px; }
|
||||
form#user_settings p label { display:block; float:left; width:35%; padding:0.4em 0.5em 0 0; text-align:right; }
|
||||
|
@ -16,252 +20,79 @@ form input { padding:0.2em; border:1px solid #ddd; font-size:1.2em; }
|
|||
form input[type="submit"] { padding:0.1em 1em; border:1px solid #999; font-weight:bold; font-size:0.9em; cursor:pointer; }
|
||||
form input[type="submit"]:hover, form input[type="submit"]:focus { border:1px solid #999; background-color:#999; outline:0; }
|
||||
form input[type="submit"]:active { outline:0; }
|
||||
form input[type="button"], form input[type="text"] { font-size: 0.9em; }
|
||||
form input[type="button"], form input[type="text"] { font-size:0.9em; }
|
||||
fieldset { padding:1em; background-color:#f7f7f7; border:1px solid #ddd; max-width:600px; margin:2em 2em 2em 3em; }
|
||||
legend { padding: 0.5em; font-size:1.2em; }
|
||||
legend { padding:0.5em; font-size:1.2em; }
|
||||
|
||||
div.controls { width:91%; margin:1em 1em 1em 2em; padding:0.5em 0; background-color:#f7f7f7; border:1px solid #eee; }
|
||||
div.controls { width:100%; margin:0px; background-color:#f7f7f7; border-bottom:1px solid #eee; position:fixed; z-index:2; }
|
||||
|
||||
/* LOG IN & INSTALLATION ------------------------------------------------------------ */
|
||||
#body-login { width:100%; background-image:none; background-color:#ddd; }
|
||||
#body-login p.info { width:16em; margin:4em auto; padding:1em; background-color:#eee; border:1px solid #ccc; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; }
|
||||
|
||||
#login
|
||||
{
|
||||
margin: 0 auto 0 auto;
|
||||
padding: 2em 0 0 0;
|
||||
background-image: url(../img/header-login.png);
|
||||
background-position: left 0;
|
||||
background-repeat: repeat-x;
|
||||
background-color: #EEE;
|
||||
border-bottom: 1px solid #FFF;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#login_form
|
||||
{
|
||||
width: 20em;
|
||||
margin: 4em auto;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#login_form fieldset
|
||||
{
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
#login_form fieldset p
|
||||
{
|
||||
margin: 0.5em 0 0 0;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#login_form fieldset p.submit
|
||||
{
|
||||
margin: 2em 0 0 0;
|
||||
padding: 1em 0 0 0;
|
||||
border-top: 1px solid #DDD;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#login_form label
|
||||
{
|
||||
font-size: 1em;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
#login_form input
|
||||
{
|
||||
width: 100%;
|
||||
margin: 0 0 0.5em 0;
|
||||
padding: 0.5em;
|
||||
border: 1px solid #DDD;
|
||||
-moz-border-radius: 15px;
|
||||
-webkit-border-radius: 15px;
|
||||
border-radius: 15px;
|
||||
font-size: 1.5em;
|
||||
color: #333;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#login_form input[type=submit]
|
||||
{
|
||||
width: auto;
|
||||
margin: 1em 0 0 0.5em;
|
||||
text-align: center;
|
||||
border: 1px solid #DDD;
|
||||
background-color: #FFF;
|
||||
-moz-border-radius: 15px;
|
||||
-webkit-border-radius: 15px;
|
||||
border-radius: 15px;
|
||||
font-size: 1.5em
|
||||
}
|
||||
|
||||
#login_form input[type=submit]:hover
|
||||
{
|
||||
border: 1px solid #666;
|
||||
background-color: #666;
|
||||
color: #FFF;
|
||||
}
|
||||
#login_form input[type="checkbox"]
|
||||
{
|
||||
width:15px;
|
||||
}
|
||||
|
||||
#setup_form {
|
||||
margin: 3em auto;
|
||||
text-align: left;
|
||||
width: 720px;
|
||||
}
|
||||
|
||||
#setup_form #use_mysql {
|
||||
font-size: 0.9em;
|
||||
margin: 0 0 0 1em;
|
||||
}
|
||||
|
||||
#setup_form p.intro {
|
||||
color: #666;
|
||||
font-size: 1.3em;
|
||||
margin: 4em 0 3em 0;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#setup_form ul.errors {
|
||||
background-image: url(images/no.png);
|
||||
background-position: 1em 1em;
|
||||
background-repeat: no-repeat;
|
||||
background-color: #FED7D7;
|
||||
border: 1px solid #F00;
|
||||
font-size: 1.2em;
|
||||
list-style-indent: inside;
|
||||
margin: 0 0 4em 0;
|
||||
padding: 1em 1em 1em 5em;
|
||||
}
|
||||
|
||||
#setup_form fieldset {
|
||||
margin: 0 0 3em 0;
|
||||
}
|
||||
|
||||
#setup_form p {
|
||||
line-height: 1.8em;
|
||||
}
|
||||
|
||||
#setup_form legend {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#setup_form label {
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
float: left;
|
||||
margin: 0 0 0.2em 0;
|
||||
text-align: right;
|
||||
width: 40%;
|
||||
}
|
||||
#body-login p.info { width:16em; margin:2em auto; padding:1em; background-color:#eee; border:1px solid #ccc; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; }
|
||||
#body-login p.info a { font-weight:bold; }
|
||||
|
||||
#login div.header { margin-top:-2em; height:10em;
|
||||
-moz-box-shadow:0 0 5px #000; -webkit-box-shadow:0 0 20px #000; box-shadow:0 0 20px #000;
|
||||
background: #1d2d44; /* Old browsers */
|
||||
background: -moz-linear-gradient(top, #35537a 0%, #1d2d42 100%); /* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#35537a), color-stop(100%,#1d2d42)); /* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, #35537a 0%,#1d2d42 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(top, #35537a 0%,#1d2d42 100%); /* Opera11.10+ */
|
||||
background: -ms-linear-gradient(top, #35537a 0%,#1d2d42 100%); /* IE10+ */
|
||||
background: linear-gradient(top, #35537a 0%,#1d2d42 100%); /* W3C */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#35537a', endColorstr='#1d2d42',GradientType=0 ); /* IE6-9 */ }
|
||||
#login { margin:0 auto 0 auto; padding:2em 0 0 0; border-bottom:1px solid #FFF; text-align:center; background:#eee; }
|
||||
#login_form { width:20em; margin:4em auto; padding:0; }
|
||||
#login_form fieldset { background-color:transparent; border:0; }
|
||||
#login_form fieldset p { margin:0.5em 0 0 0; padding:0; text-align:left; }
|
||||
#login_form fieldset p.submit { margin:2em 0 0 0; padding:1em 0 0 0; border-top:1px solid #DDD; text-align:right; }
|
||||
#login_form label { font-size:1em; color:#666; }
|
||||
#login_form input { width:100%; margin:0 0 0.5em 0; padding:0.5em; border:1px solid #DDD; -moz-border-radius:15px; -webkit-border-radius:15px; border-radius:15px; font-size:1.5em; color:#333; text-align:center; }
|
||||
#login_form input[type=submit] { width:auto; margin:1em 0 0 0.5em; text-align:center; border:1px solid #DDD; background-color:#FFF; -moz-border-radius:15px; -webkit-border-radius:15px; border-radius:15px; font-size:1.5em }
|
||||
#login_form input[type=submit]:hover { border:1px solid #666; background-color:#666; color:#FFF; }
|
||||
#login_form input[type="checkbox"] { width:15px; }
|
||||
#setup_form { margin:3em auto; text-align:left; width:720px; }
|
||||
#setup_form #use_mysql { font-size:0.9em; margin:0 0 0 1em; }
|
||||
#setup_form p.intro { color:#666; font-size:1.3em; margin:4em 0 3em 0; padding:0; text-align:center; }
|
||||
#setup_form ul.errors { background-image:url(images/no.png); background-position:1em 1em; background-repeat:no-repeat; background-color:#FED7D7; border:1px solid #F00; font-size:1.2em; list-style-indent:inside; margin:0 0 4em 0; padding:1em 1em 1em 5em; }
|
||||
#setup_form fieldset { margin:0 0 3em 0; }
|
||||
#setup_form p { line-height:1.8em; }
|
||||
#setup_form legend { font-weight:normal; }
|
||||
#setup_form label { cursor:pointer; display:block; float:left; margin:0 0 0.2em 0; text-align:right; width:40%; }
|
||||
#setup_form input[type='text'],
|
||||
#setup_form input[type='password'] {
|
||||
font-size: 1em;
|
||||
margin: 0 0 0 0.5em;
|
||||
padding: 0.3em;
|
||||
}
|
||||
|
||||
#setup_form input[type='radio'] {
|
||||
margin: 0 0 0 1em;
|
||||
}
|
||||
|
||||
#setup_form input[type='submit'] {
|
||||
background-color: #DDD;
|
||||
border: 1px solid #999;
|
||||
color: #666;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
#setup_form input[type='submit']:hover {
|
||||
border-color: #000;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
#setup_form p.submit {
|
||||
padding: 0 0 1em 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#setup_form input[type='password'] { font-size:1em; margin:0 0 0 0.5em; padding:0.3em; }
|
||||
#setup_form input[type='radio'] { margin:0 0 0 1em; }
|
||||
#setup_form input[type='submit'] { background-color:#DDD; border:1px solid #999; color:#666; font-size:1.2em; }
|
||||
#setup_form input[type='submit']:hover { border-color:#000; color:#000; }
|
||||
#setup_form p.submit { padding:0 0 1em 0; text-align:center; }
|
||||
|
||||
|
||||
.prettybutton { margin:0.1em; padding:0.2em 0.5em; border:1px solid #ddd; -moz-border-radius:15px; -webkit-border-radius:15px; border-radius:15px; font-size:1.5em; text-decoration:none; color:#666; background-color:#fff; }
|
||||
.prettybutton:hover, .prettybutton:focus { background-color:#ccc; outline:0; }
|
||||
|
||||
/* META NAVIGATION (Settings, Log out) ---------------------------------------------------------------- */
|
||||
#metanav { float:right; position:relative; top:1.5em; right:2.5em; list-style:none; margin:0; padding:0; }
|
||||
#metanav { float:right; position:relative; top:0.5em; right:2.5em; list-style:none; margin:0; padding:0; }
|
||||
#metanav li { display:inline; }
|
||||
#metanav li a { margin:.1em; padding:1em; }
|
||||
#metanav li a:hover, #metanav li a:focus { background:rgba(0,0,0,.5); -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px; outline:0; box-shadow:#555 0 1px 0; -moz-box-shadow:#555 0 1px 0; -webkit-box-shadow:#555 0 1px 0; }
|
||||
#metanav li a { margin:.2em; padding:.7em; }
|
||||
#metanav li a:hover, #metanav li a:focus { background:rgba(0,0,0,.5); -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px; box-shadow:#555 0 1px 0; -moz-box-shadow:#555 0 1px 0; -webkit-box-shadow:#555 0 1px 0; }
|
||||
#metanav li a img { vertical-align:middle; }
|
||||
|
||||
/* SEARCH --------------------------------------------------------------------- */
|
||||
form.searchbox { display:inline; position:fixed; top:2em; right:10em; margin:0; padding:0; }
|
||||
form.searchbox { display:inline; position:fixed; top:.9em; right:9em; margin:0; padding:0; }
|
||||
input[type="search"] { font-size:1em; padding-left:2em; background:#eee url('../img/actions/search.png') .5em center no-repeat; }
|
||||
|
||||
/* NAVIGATION ------------------------------------------------------------- */
|
||||
#plugins { position:fixed; top:7em; float:left; width:15.7em; padding:0; }
|
||||
#plugins { position:fixed; top:3.5em; float:left; width:15.7em; padding:0; z-index:50; }
|
||||
#plugins ul { list-style-type:none; border-top:1px solid #ccc; }
|
||||
#plugins a { display:block; padding:0.5em 0.5em 0.5em 3em; background-position:1.5em center; background-repeat:no-repeat; border-bottom:1px solid #ddd; border-top:1px solid #fff; text-decoration:none; font-size:1.2em; color:#666; }
|
||||
#plugins a.active, #plugins a:hover, #plugins a:focus, #plugins a.selected { background-color:#ccc; border-top:1px solid #ccc; border-bottom:1px solid #ccc; color:#000; outline:0; }
|
||||
#plugins a:active { outline:0; }
|
||||
#plugins .subentry { background-color:#ddd; border-top:1px solid #aaa; border-bottom:1px solid #ccc; color:#000; outline:0; }
|
||||
#plugins .subentry.active { background-color:#bbb; border-top:1px solid #aaa; border-bottom:1px solid #ccc; color:#000; outline:0; }
|
||||
#plugins li.subentry a {padding-left:4em;}
|
||||
|
||||
/* CONTENT ------------------------------------------------------------------ */
|
||||
#content { margin:7em 0 0 16em; }
|
||||
table { margin:1em 5em 2em 3em; }
|
||||
table tr.mouseOver td { background-color:#eee; }
|
||||
table th, table td { padding:0; border-bottom:1px solid #ddd; text-align:left; font-style:italic; }
|
||||
table th { padding:0.5em; }
|
||||
table td { border-bottom:1px solid #eee; font-style:normal; }
|
||||
table td.filesize, table td.date { width:5em; padding:0.5em 1em; text-align:right; }
|
||||
table td.date { width:11em; }
|
||||
table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; }
|
||||
table td.filename a { display:block; background-image:url('../img/file.png'); text-decoration:none; }
|
||||
table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:0.5em 0.5em 0.5em 3em; background-position:1em center; background-repeat:no-repeat; }
|
||||
table td.filename a:hover, table td.filename a:focus { outline:0; }
|
||||
table td.filename a:active { outline:0; }
|
||||
table em { font-weight:bold; }
|
||||
table td.filename a.folder-up { background-image:url('../img/back.png'); font-style:italic; }
|
||||
table td.filename a.folder { background-image:url('../img/folder.png'); }
|
||||
table td.filename a.folder-home { background-image:url('../img/home.png'); }
|
||||
table td.filename a.folder-music { background-image:url('../img/folder-music.png'); }
|
||||
table td.filename a.folder-videos { background-image:url('../img/folder-video.png'); }
|
||||
table td.filename a.folder-shared { background-image:url('../img/folder-shared.png'); }
|
||||
table td.filename a.folder-images { background-image:url('../img/folder-image.png'); }
|
||||
table td.filename a.file-txt { background-image:url('../img/file-txt.png'); }
|
||||
table td.filename a.file-python { background-image:url('../img/file-python.png'); }
|
||||
table td.filename a.file-php { background-image:url('../img/file.png'); }
|
||||
table td.login { background-image:url('../img/login.png'); }
|
||||
table td.logout { background-image:url('../img/logout.png'); }
|
||||
table td.download { background-image:url('../img/download.png'); }
|
||||
table td.upload { background-image:url('../img/upload.png'); }
|
||||
table td.create { background-image:url('../img/folder-new.png'); }
|
||||
table td.delete { background-image:url('../img/delete.png'); }
|
||||
#fileList tr input[type=checkbox] { display:none; }
|
||||
#fileList tr input[type=checkbox]:checked { display:inline; }
|
||||
#fileList tr:hover input[type=checkbox] { display:inline; }
|
||||
|
||||
/* NAVIGATION BAR */
|
||||
span.nav { margin:1em 0 0 2em; padding:0.8em; line-height:16px; font-weight:bold; display:block}
|
||||
span.nav a { padding:0.5em 1.5em 0.5em 0.5em; background-position:right center; background-repeat:no-repeat; background-image:url('../img/arrow.png'); text-decoration:none; }
|
||||
span.nav a img { height:16px; vertical-align:text-top; }
|
||||
|
||||
/* ACTIONS BAR */
|
||||
p.actions, div.actions { padding:0; }
|
||||
p.actions a, div.actions a { padding:0.5em 0.5em 0.5em 3em; background-position:1em center; background-repeat:no-repeat; background-image:url('../img/action.png'); border-right:1px solid #eee; text-decoration:none; color:#333; }
|
||||
p.actions a:hover, p.actions a:focus, div.actions a:hover, div.actions a:focus { background-color:#eee; color:#000; outline:0; }
|
||||
p.actions a:active, div.actions a:active { outline:0; }
|
||||
p.actions a.new-dir, div.actions a.new-dir { background-image:url('../img/folder-new.png'); }
|
||||
p.actions a.download, div.actions a.download { background-image:url('../img/download.png'); }
|
||||
p.actions a.delete, div.actions a.delete { background-image:url('../img/delete.png'); }
|
||||
#content { margin:3.5em 0 0 15.7em; }
|
||||
|
||||
/* USER SETTINGS ------------------------------------------------------------ */
|
||||
#quota_indicator { margin:0 4em 1em 0; padding:0; border:1px solid #ddd; border-radius:10px; -webkit-border-radius:10px; -moz-border-radius:10px; }
|
||||
|
@ -279,4 +110,4 @@ p.actions a.delete, div.actions a.delete { background-image:url('../img/delete.p
|
|||
#logs_options input[type="submit"] { float:right; margin:0 2em 0 0; }
|
||||
#logs_options input[type="submit"].nofloat { float:none; margin:0 2em 0 0; }
|
||||
#logs_options input[type="text"] { margin:0; padding:0; border:1px solid #ccc; text-align:right; }
|
||||
li.error{ list-style:none; width:640px; margin:4em auto; padding:1em 1em 1em 4em; background-color:#fee; background-image:url('../img/task-attention.png'); background-position:0.8em 0.8em; background-repeat:no-repeat; border:1px solid #ccc; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; }
|
||||
li.error { list-style:none; width:640px; margin:4em auto; padding:1em 1em 1em 4em; background-color:#fee; background-image:url('../img/task-attention.png'); background-position:0.8em 0.8em; background-repeat:no-repeat; border:1px solid #ccc; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; }
|
||||
|
|
Before Width: | Height: | Size: 396 B After Width: | Height: | Size: 396 B |
|
@ -0,0 +1,121 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.0"
|
||||
width="22"
|
||||
height="22"
|
||||
id="svg2423"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.1 r9760"
|
||||
sodipodi:docname="steadyflow-panel.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
inkscape:export-filename="/home/jancborchardt/SparkleShare/playground/ownCloud/elementaryicons/elementary-icon-theme/elementary-mono-dark/panel/22/steadyflow-panel.png"
|
||||
inkscape:export-xdpi="205.86"
|
||||
inkscape:export-ydpi="205.86">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="776"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showgrid="false"
|
||||
inkscape:zoom="18.409653"
|
||||
inkscape:cx="3.1144877"
|
||||
inkscape:cy="10.453039"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:current-layer="svg2423"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2989"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs2425">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3678"
|
||||
id="linearGradient3805"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,0.51263812,0.51263812,0,0.912685,4.921543)"
|
||||
x1="0.98925388"
|
||||
y1="20.108774"
|
||||
x2="26.631666"
|
||||
y2="20.093433" />
|
||||
<linearGradient
|
||||
id="linearGradient3678">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3680" />
|
||||
<stop
|
||||
style="stop-color:#e6e6e6;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3682" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientTransform="matrix(-0.4100229,0,0,0.5447147,78.029995,-3.8459034)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3678"
|
||||
id="linearGradient2388-7"
|
||||
y2="38.279892"
|
||||
x2="159.68553"
|
||||
y1="14.403693"
|
||||
x1="159.68553" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3678"
|
||||
id="linearGradient3793"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-0.4100229,0,0,0.5447147,47.235507,-11.911988)"
|
||||
x1="159.68553"
|
||||
y1="14.403693"
|
||||
x2="159.68553"
|
||||
y2="38.279892" />
|
||||
</defs>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 11.5,19.5 -8,-7 8,-7 0,4 7,0 0,6 -7,0 z"
|
||||
id="path4348-1-1"
|
||||
style="opacity:0.5;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 11.5,18.5 -8,-7 8,-7 0,4 7,0 0,6 -7,0 z"
|
||||
id="path4348-1"
|
||||
style="fill:url(#linearGradient3805);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
</svg>
|
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 330 B |
|
@ -0,0 +1,70 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="16"
|
||||
height="16"
|
||||
id="svg3875"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.1 r9760"
|
||||
sodipodi:docname="drawing.svg">
|
||||
<defs
|
||||
id="defs3877" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="25.345359"
|
||||
inkscape:cx="8.8403833"
|
||||
inkscape:cy="8.3505321"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="776"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3883"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata3880">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1036.3622)">
|
||||
<path
|
||||
style="fill:#808080;fill-opacity:1;stroke:none"
|
||||
d="m 3,1040.3622 1,-1 4,3 4,-3 1,1 -3,4 3,4 -1,1 -4,-3 -4,3 -1,-1 3,-4 z"
|
||||
id="path3086"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccccccccc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 264 B |
|
@ -0,0 +1,73 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="16"
|
||||
height="16"
|
||||
id="svg3875"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.1 r9760"
|
||||
sodipodi:docname="drawing.svg"
|
||||
inkscape:export-filename="/home/jancborchardt/delete.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
id="defs3877" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="8.9609375"
|
||||
inkscape:cx="4.5772403"
|
||||
inkscape:cy="10.15018"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="776"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3883"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata3880">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1036.3622)">
|
||||
<path
|
||||
style="fill:#808080;fill-opacity:1;stroke:none"
|
||||
d="m 6,1037.3622 4,0 1,7 4,0 -7,7 -7,-7 4,0 z"
|
||||
id="path3086"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 657 B After Width: | Height: | Size: 657 B |
|
@ -0,0 +1,95 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.0"
|
||||
width="18"
|
||||
height="16"
|
||||
id="svg2403"
|
||||
inkscape:version="0.48.1 r9760"
|
||||
sodipodi:docname="system-shutdown-panel2.svg">
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="776"
|
||||
id="namedview3047"
|
||||
showgrid="false"
|
||||
inkscape:zoom="17.875"
|
||||
inkscape:cx="9"
|
||||
inkscape:cy="8"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2403" />
|
||||
<metadata
|
||||
id="metadata15">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2405">
|
||||
<linearGradient
|
||||
x1="11.644068"
|
||||
y1="2.4988678"
|
||||
x2="11.644068"
|
||||
y2="15.00281"
|
||||
id="linearGradient2392"
|
||||
xlink:href="#linearGradient3678"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(1.0000001,1.1920928e-8)" />
|
||||
<linearGradient
|
||||
x1="8.4964771"
|
||||
y1="-0.061573759"
|
||||
x2="8.4964771"
|
||||
y2="8.083209"
|
||||
id="linearGradient2395"
|
||||
xlink:href="#linearGradient3678"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0526316,0,0,0.9843625,0.5789474,0.06024281)" />
|
||||
<linearGradient
|
||||
id="linearGradient3678">
|
||||
<stop
|
||||
id="stop3680"
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3682"
|
||||
style="stop-color:#e6e6e6;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path
|
||||
d="M 5.8427514,4.45 C 0.60889,7.192151 2.9756281,15.05 8.959192,15.05 c 5.921233,0 8.575036,-7.449605 3.11644,-10.6 M 9,8 9,1.9996319"
|
||||
id="path3341-5"
|
||||
style="opacity:0.5;fill:none;stroke:#000000;stroke-width:1.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
|
||||
<path
|
||||
d="M 9,7 9,0.99963191"
|
||||
id="path3716"
|
||||
style="fill:none;stroke:url(#linearGradient2395);stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
|
||||
<path
|
||||
d="M 5.8427514,3.45 C 0.60889,6.1921513 2.9756281,14.05 8.959192,14.05 c 5.921233,0 8.575036,-7.4496051 3.11644,-10.6"
|
||||
id="path3341"
|
||||
style="fill:none;stroke:url(#linearGradient2392);stroke-width:1.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
|
||||
</svg>
|
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 339 B |
|
@ -0,0 +1,80 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="16"
|
||||
height="16"
|
||||
id="svg3875"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.1 r9760"
|
||||
sodipodi:docname="drawing.svg"
|
||||
inkscape:export-filename="/home/jancborchardt/rename.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
id="defs3877" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="25.345359"
|
||||
inkscape:cx="10.704484"
|
||||
inkscape:cy="9.4345147"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="776"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3883"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata3880">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1036.3622)">
|
||||
<path
|
||||
style="fill:#808080;fill-opacity:1;stroke:none"
|
||||
d="m 10,3 -7,7 -2,5 5,-2 7,-7 z m -6.5,7.5 2,2 L 3,14 2,13 z"
|
||||
transform="translate(0,1036.3622)"
|
||||
id="path3086"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccccccc" />
|
||||
<path
|
||||
style="fill:#808080;fill-opacity:1;stroke:none"
|
||||
d="m 14,1041.3622 -3,-3 c 2,-2 5,1 3,3 z"
|
||||
id="path3086-3"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 701 B |
Before Width: | Height: | Size: 695 B After Width: | Height: | Size: 695 B |
|
@ -0,0 +1,221 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.0"
|
||||
width="16"
|
||||
height="16"
|
||||
id="svg2457"
|
||||
inkscape:version="0.48.1 r9760"
|
||||
sodipodi:docname="bonobo-component-browser.svg"
|
||||
inkscape:export-filename="/home/jancborchardt/SparkleShare/playground/ownCloud/elementaryicons/elementary-icon-theme/elementary/actions/16/bonobo-component-browser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<metadata
|
||||
id="metadata23">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="776"
|
||||
id="namedview21"
|
||||
showgrid="false"
|
||||
inkscape:zoom="17.875"
|
||||
inkscape:cx="-2.3776224"
|
||||
inkscape:cy="1.2867133"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2457" />
|
||||
<defs
|
||||
id="defs2459">
|
||||
<linearGradient
|
||||
id="linearGradient5128">
|
||||
<stop
|
||||
id="stop5130"
|
||||
style="stop-color:#e5e5e5;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop5132"
|
||||
style="stop-color:#ababab;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="86.132919"
|
||||
y1="105.105"
|
||||
x2="84.63858"
|
||||
y2="20.895"
|
||||
id="linearGradient3260"
|
||||
xlink:href="#linearGradient5128"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(9.6142312e-2,0,0,9.6142312e-2,1.8468935,1.9430362)" />
|
||||
<linearGradient
|
||||
id="linearGradient3397">
|
||||
<stop
|
||||
id="stop3399"
|
||||
style="stop-color:#aaaaaa;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3401"
|
||||
style="stop-color:#8c8c8c;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="21"
|
||||
y1="0"
|
||||
x2="21"
|
||||
y2="16.004715"
|
||||
id="linearGradient3264"
|
||||
xlink:href="#linearGradient3397"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-17.058189,0)" />
|
||||
<linearGradient
|
||||
x1="63.9995"
|
||||
y1="3.1001"
|
||||
x2="63.9995"
|
||||
y2="122.8994"
|
||||
id="linearGradient3309"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
id="stop3311"
|
||||
style="stop-color:#f6f6f6;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3313"
|
||||
style="stop-color:#cccccc;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="25"
|
||||
y1="0"
|
||||
x2="25"
|
||||
y2="16.000105"
|
||||
id="linearGradient3262"
|
||||
xlink:href="#linearGradient3309"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-17.058189,0)" />
|
||||
<linearGradient
|
||||
id="linearGradient3678">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3680" />
|
||||
<stop
|
||||
style="stop-color:#e6e6e6;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3682" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3309-5"
|
||||
id="linearGradient3066-2"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-17.058189,0)"
|
||||
x1="25"
|
||||
y1="0"
|
||||
x2="25"
|
||||
y2="16.000105" />
|
||||
<linearGradient
|
||||
x1="63.9995"
|
||||
y1="3.1001"
|
||||
x2="63.9995"
|
||||
y2="122.8994"
|
||||
id="linearGradient3309-5"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
id="stop3311-3"
|
||||
style="stop-color:#f6f6f6;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3313-3"
|
||||
style="stop-color:#cccccc;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3678"
|
||||
id="linearGradient3920"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-17.058189,-0.444)"
|
||||
x1="25"
|
||||
y1="0"
|
||||
x2="25"
|
||||
y2="16.000105" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3678-0"
|
||||
id="linearGradient3920-6"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-17.058189,-0.444)"
|
||||
x1="25"
|
||||
y1="0"
|
||||
x2="25"
|
||||
y2="16.000105" />
|
||||
<linearGradient
|
||||
id="linearGradient3678-0">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3680-5" />
|
||||
<stop
|
||||
style="stop-color:#e6e6e6;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3682-7" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3678"
|
||||
id="linearGradient3959"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-17.058189,-0.444)"
|
||||
x1="25"
|
||||
y1="0"
|
||||
x2="25"
|
||||
y2="16.000105" />
|
||||
</defs>
|
||||
<g
|
||||
transform="translate(0.027972,0.944)"
|
||||
id="g2479-3"
|
||||
style="opacity:0.5;fill:#000000;fill-opacity:1">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate"
|
||||
id="path2426-2"
|
||||
d="M 6.9375,0.056 C 6.6890831,0.056 6.5,0.245082 6.5,0.4935 l 0,1.25 C 5.9460971,1.885701 5.448836,2.115378 4.96875,2.39975 L 4.0625,1.4935 c -0.1756569,-0.175658 -0.449342,-0.175658 -0.625,0 l -1.5,1.5 c -0.175657,0.175658 -0.175657,0.449342 0,0.625 L 2.84375,4.52475 C 2.5593789,5.004836 2.329701,5.502097 2.1875,6.056 l -1.25,0 C 0.68908301,6.056 0.5,6.245082 0.5,6.4935 l 0,2.125 c 1e-8,0.248418 0.189083,0.4375 0.4375,0.4375 l 1.25,0 c 0.1422009,0.553903 0.371879,1.051164 0.65625,1.53125 L 1.9375,11.4935 c -0.175657,0.175658 -0.175657,0.449342 0,0.625 l 1.5,1.5 c 0.1756579,0.175658 0.449342,0.175658 0.625,0 L 4.96875,12.71225 C 5.4488361,12.996622 5.946097,13.2263 6.5,13.3685 l 0,1.25 c 1e-7,0.248418 0.189083,0.4375 0.4375,0.4375 l 2.125,0 C 9.3109176,15.056 9.5,14.866918 9.5,14.6185 l 0,-1.25 c 0.553903,-0.1422 1.051164,-0.371878 1.53125,-0.65625 l 0.90625,0.90625 c 0.175658,0.175658 0.449342,0.175658 0.625,0 l 1.5,-1.5 c 0.175658,-0.175658 0.175658,-0.449342 0,-0.625 L 13.15625,10.58725 C 13.440622,10.107164 13.6703,9.609903 13.8125,9.056 l 1.25,0 C 15.310918,9.056 15.5,8.866917 15.5,8.6185 l 0,-2.125 C 15.5,6.245082 15.310917,6.056 15.0625,6.056 l -1.25,0 C 13.6703,5.502097 13.440622,5.004836 13.15625,4.52475 L 14.0625,3.6185 c 0.175658,-0.175658 0.175658,-0.449342 0,-0.625 l -1.5,-1.5 c -0.175658,-0.175658 -0.449342,-0.175658 -0.625,0 L 11.03125,2.39975 C 10.551164,2.115378 10.053903,1.885701 9.5,1.7435 l 0,-1.25 C 9.4999996,0.245082 9.310918,0.056 9.0625,0.056 z M 8,4.2133427 c 1.8451469,0 3.342657,1.4975104 3.342657,3.3426573 0,1.8451469 -1.4975101,3.342657 -3.342657,3.342657 C 6.1548531,10.898657 4.6573427,9.4011469 4.6573427,7.556 4.6573427,5.7108531 6.1548531,4.2133427 8,4.2133427 z"
|
||||
sodipodi:nodetypes="ssccssssccssssccssssccssssccssssccssssccssssccssssssss" />
|
||||
</g>
|
||||
<g
|
||||
id="g2479"
|
||||
transform="translate(0,-0.056)">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:url(#linearGradient3959);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate"
|
||||
id="path2426"
|
||||
d="M 6.9375,0.056 C 6.6890831,0.056 6.5,0.245082 6.5,0.4935 l 0,1.25 C 5.9460971,1.885701 5.448836,2.115378 4.96875,2.39975 L 4.0625,1.4935 c -0.1756569,-0.175658 -0.449342,-0.175658 -0.625,0 l -1.5,1.5 c -0.175657,0.175658 -0.175657,0.449342 0,0.625 L 2.84375,4.52475 C 2.5593789,5.004836 2.329701,5.502097 2.1875,6.056 l -1.25,0 C 0.68908301,6.056 0.5,6.245082 0.5,6.4935 l 0,2.125 c 1e-8,0.248418 0.189083,0.4375 0.4375,0.4375 l 1.25,0 c 0.1422009,0.553903 0.371879,1.051164 0.65625,1.53125 L 1.9375,11.4935 c -0.175657,0.175658 -0.175657,0.449342 0,0.625 l 1.5,1.5 c 0.1756579,0.175658 0.449342,0.175658 0.625,0 L 4.96875,12.71225 C 5.4488361,12.996622 5.946097,13.2263 6.5,13.3685 l 0,1.25 c 1e-7,0.248418 0.189083,0.4375 0.4375,0.4375 l 2.125,0 C 9.3109176,15.056 9.5,14.866918 9.5,14.6185 l 0,-1.25 c 0.553903,-0.1422 1.051164,-0.371878 1.53125,-0.65625 l 0.90625,0.90625 c 0.175658,0.175658 0.449342,0.175658 0.625,0 l 1.5,-1.5 c 0.175658,-0.175658 0.175658,-0.449342 0,-0.625 L 13.15625,10.58725 C 13.440622,10.107164 13.6703,9.609903 13.8125,9.056 l 1.25,0 C 15.310918,9.056 15.5,8.866917 15.5,8.6185 l 0,-2.125 C 15.5,6.245082 15.310917,6.056 15.0625,6.056 l -1.25,0 C 13.6703,5.502097 13.440622,5.004836 13.15625,4.52475 L 14.0625,3.6185 c 0.175658,-0.175658 0.175658,-0.449342 0,-0.625 l -1.5,-1.5 c -0.175658,-0.175658 -0.449342,-0.175658 -0.625,0 L 11.03125,2.39975 C 10.551164,2.115378 10.053903,1.885701 9.5,1.7435 l 0,-1.25 C 9.4999996,0.245082 9.310918,0.056 9.0625,0.056 z M 8,4.2133427 c 1.8451469,0 3.342657,1.4975104 3.342657,3.3426573 0,1.8451469 -1.4975101,3.342657 -3.342657,3.342657 C 6.1548531,10.898657 4.6573427,9.4011469 4.6573427,7.556 4.6573427,5.7108531 6.1548531,4.2133427 8,4.2133427 z"
|
||||
sodipodi:nodetypes="ssccssssccssssccssssccssssccssssccssssccssssccssssssss" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 9.9 KiB |
After Width: | Height: | Size: 478 B |
|
@ -0,0 +1,70 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="16"
|
||||
height="16"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.1 r9760"
|
||||
sodipodi:docname="New document 1">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="3.959798"
|
||||
inkscape:cx="32.116036"
|
||||
inkscape:cy="-10.661938"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="776"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2985"
|
||||
empspacing="8"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true"
|
||||
dotted="true" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1036.3622)">
|
||||
<path
|
||||
style="fill:#808080;fill-opacity:1;overflow:visible"
|
||||
d="m 12.227825,1037.3622 c -1.356528,0 -2.45919,1.0977 -2.45919,2.4542 0,0.075 0.0084,0.1504 0.0149,0.2236 l -4.734564,2.4145 c -0.429101,-0.3667 -0.986112,-0.5863 -1.594748,-0.5863 -1.356527,0 -2.454223,1.0977 -2.454223,2.4543 0,1.3565 1.097696,2.4542 2.454223,2.4542 0.546067,0 1.052763,-0.1755 1.46061,-0.477 l 4.863734,2.4741 c -0.0024,0.044 -0.0099,0.089 -0.0099,0.1342 0,1.3565 1.102663,2.4542 2.45919,2.4542 1.356527,0 2.454223,-1.0977 2.454223,-2.4542 0,-1.3565 -1.097696,-2.4592 -2.454223,-2.4592 -0.636532,0 -1.218019,0.2437 -1.654365,0.6409 L 5.878678,1044.7 c 0.01892,-0.1228 0.03478,-0.2494 0.03478,-0.3775 0,-0.072 -0.0089,-0.1437 -0.0149,-0.2137 l 4.73953,-2.4145 c 0.428025,0.3627 0.984876,0.5813 1.58978,0.5813 1.356527,0 2.454223,-1.1027 2.454223,-2.4592 0,-1.3565 -1.097696,-2.4542 -2.454223,-2.4542 z"
|
||||
id="circle54"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 495 B |
After Width: | Height: | Size: 1012 B |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 562 B |
After Width: | Height: | Size: 303 B |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 3.5 KiB |
|
@ -1,26 +1,27 @@
|
|||
var _l10ncache = {};
|
||||
function t(app,text){
|
||||
if( !( app in _l10ncache )){
|
||||
$.post( oc_webroot+'/core/ajax/translations.php', {'app': app}, function(jsondata){
|
||||
_l10ncache[app] = jsondata.data;
|
||||
if( !( app in t.cache )){
|
||||
|
||||
$.post( OC.filePath('core','ajax','translations.php'), {'app': app}, function(jsondata){
|
||||
t.cache[app] = jsondata.data;
|
||||
});
|
||||
|
||||
// Bad answer ...
|
||||
if( !( app in _l10ncache )){
|
||||
_l10ncache[app] = [];
|
||||
if( !( app in t.cache )){
|
||||
t.cache[app] = [];
|
||||
}
|
||||
}
|
||||
if( typeof( _l10ncache[app][text] ) !== 'undefined' ){
|
||||
return _l10ncache[app][text];
|
||||
if( typeof( t.cache[app][text] ) !== 'undefined' ){
|
||||
return t.cache[app][text];
|
||||
}
|
||||
else{
|
||||
return text;
|
||||
}
|
||||
}
|
||||
t.cache={};
|
||||
|
||||
OC={
|
||||
webroot:oc_webroot,
|
||||
coreApps:['files','admin','log','search','settings'],
|
||||
coreApps:['files','admin','log','search','settings','core'],
|
||||
linkTo:function(app,file){
|
||||
return OC.filePath(app,'',file);
|
||||
},
|
||||
|
@ -39,6 +40,9 @@ OC={
|
|||
return link;
|
||||
},
|
||||
imagePath:function(app,file){
|
||||
if(file.indexOf('.')==-1){//if no extention is given, use png or svg depending on browser support
|
||||
file+=(SVGSupport())?'.svg':'.png'
|
||||
}
|
||||
return OC.filePath(app,'img',file);
|
||||
},
|
||||
addScript:function(app,script,ready){
|
||||
|
@ -55,3 +59,57 @@ OC={
|
|||
$('head').append(style);
|
||||
}
|
||||
}
|
||||
|
||||
if (!Array.prototype.filter) {
|
||||
Array.prototype.filter = function(fun /*, thisp*/) {
|
||||
var len = this.length >>> 0;
|
||||
if (typeof fun != "function")
|
||||
throw new TypeError();
|
||||
|
||||
var res = [];
|
||||
var thisp = arguments[1];
|
||||
for (var i = 0; i < len; i++) {
|
||||
if (i in this) {
|
||||
var val = this[i]; // in case fun mutates this
|
||||
if (fun.call(thisp, val, i, this))
|
||||
res.push(val);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
||||
if (!Array.prototype.indexOf){
|
||||
Array.prototype.indexOf = function(elt /*, from*/)
|
||||
{
|
||||
var len = this.length;
|
||||
|
||||
var from = Number(arguments[1]) || 0;
|
||||
from = (from < 0)
|
||||
? Math.ceil(from)
|
||||
: Math.floor(from);
|
||||
if (from < 0)
|
||||
from += len;
|
||||
|
||||
for (; from < len; from++)
|
||||
{
|
||||
if (from in this &&
|
||||
this[from] === elt)
|
||||
return from;
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
}
|
||||
|
||||
function SVGSupport() {
|
||||
return document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") || document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Shape", "1.0");
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
if(!SVGSupport()){//replace all svg images with png images for browser that dont support svg
|
||||
$('img.svg').each(function(index,element){
|
||||
element=$(element);
|
||||
var src=element.attr('src');
|
||||
element.attr('src',src.substr(0,src.length-3)+'png');
|
||||
});
|
||||
};
|
||||
});
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<div id="login">
|
||||
<img src="<?php echo image_path('', 'owncloud-logo-medium-white.png'); ?>" alt="ownCloud" />
|
||||
<header><img src="<?php echo image_path('', 'owncloud-logo-medium-white.png'); ?>" alt="ownCloud" /></header>
|
||||
<form action="index.php" method="post" id="setup_form">
|
||||
<input type="hidden" name="install" value="true" />
|
||||
<p class="intro">
|
||||
|
|
|
@ -30,8 +30,8 @@
|
|||
<div id="header">
|
||||
<a href="<?php echo link_to('', 'index.php'); ?>" title="" id="owncloud"><img src="<?php echo image_path('', 'owncloud-logo-small-white.png'); ?>" alt="ownCloud" /></a>
|
||||
<ul id="metanav">
|
||||
<li><a href="<?php echo link_to('', 'index.php'); ?>" title="Back to files"><img src="<?php echo image_path('', 'layout/back.png'); ?>"></a></li>
|
||||
<li><a href="<?php echo link_to('', 'index.php?logout=true'); ?>" title="Log out"><img src="<?php echo image_path('', 'layout/logout.png'); ?>"></a></li>
|
||||
<li><a href="<?php echo link_to('', 'index.php'); ?>" title="Back to files"><img class='svg' src="<?php echo image_path('', 'actions/back.svg'); ?>"></a></li>
|
||||
<li><a href="<?php echo link_to('', 'index.php?logout=true'); ?>" title="Log out"><img class='svg' src="<?php echo image_path('', 'actions/logout.svg'); ?>"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
@ -48,12 +48,15 @@
|
|||
<?php endforeach; ?>
|
||||
<?php if(isset($_['adminnavigation'])):?>
|
||||
<?php foreach($_['adminnavigation'] as $entry):?>
|
||||
<li><a style="background-image:url(<?php echo $entry['icon']; ?>)" href="<?php echo $entry['href']; ?>" title="" <?php if( $entry["active"] ): ?> class="active"<?php endif; ?>><?php echo $entry['name'] ?></a></li>
|
||||
<li><a style="background-image:url(<?php echo $entry['icon']; ?>)" href="<?php echo $entry['href']; ?>" title="" <?php if( $entry["active"] ): ?> class="active"<?php endif; ?>><?php echo $entry['name'] ?></a>
|
||||
<?php if( sizeof( $entry["subnavigation"] )): ?>
|
||||
<ul>
|
||||
<?php foreach($entry["subnavigation"] as $subentry):?>
|
||||
<li><a class="subentry<?php if( $subentry['active'] ): ?> active<?php endif; ?>" href="<?php echo $subentry['href']; ?>" title=""><?php echo $subentry['name'] ?></a></li>
|
||||
<li class="subentry"><a class="subentry<?php if( $subentry['active'] ): ?> active<?php endif; ?>" href="<?php echo $subentry['href']; ?>" title=""><?php echo $subentry['name'] ?></a></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
|
|
|
@ -31,22 +31,29 @@
|
|||
<a href="<?php echo link_to('', 'index.php'); ?>" title="" id="owncloud"><img src="<?php echo image_path('', 'owncloud-logo-small-white.png'); ?>" alt="ownCloud" /></a>
|
||||
<?php echo $_['searchbox']?>
|
||||
<ul id="metanav">
|
||||
<li><a href="<?php echo link_to('settings', 'index.php'); ?>" title="Settings"><img src="<?php echo image_path('', 'layout/settings.png'); ?>"></a></li>
|
||||
<li><a href="<?php echo link_to('', 'index.php'); ?>?logout=true" title="Log out"><img src="<?php echo image_path('', 'layout/logout.png'); ?>"></a></li>
|
||||
<li><a href="<?php echo link_to('settings', 'index.php'); ?>" title="Settings"><img class='svg' src="<?php echo image_path('', 'actions/settings.svg'); ?>"></a></li>
|
||||
<li><a href="<?php echo link_to('', 'index.php'); ?>?logout=true" title="Log out"><img class='svg' src="<?php echo image_path('', 'actions/logout.svg'); ?>"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="main">
|
||||
<div id="content">
|
||||
<?php echo $_['content']; ?>
|
||||
</div>
|
||||
<div id="plugins">
|
||||
<ul>
|
||||
<?php foreach($_['navigation'] as $entry): ?>
|
||||
<li><a style="background-image:url(<?php echo $entry['icon']; ?>)" href="<?php echo $entry['href']; ?>" title="" <?php if( $entry['active'] ): ?> class="active"<?php endif; ?>><?php echo $entry['name']; ?></a></li>
|
||||
<li><a style="background-image:url(<?php echo $entry['icon']; ?>)" href="<?php echo $entry['href']; ?>" title="" <?php if( $entry['active'] ): ?> class="active"<?php endif; ?>><?php echo $entry['name']; ?></a>
|
||||
<?php if( sizeof( $entry["subnavigation"] )): ?>
|
||||
<ul>
|
||||
<?php foreach($entry["subnavigation"] as $subentry):?>
|
||||
<li class="subentry"><a style="background-image:url(<?php echo $subentry['icon']; ?>)" href="<?php echo $subentry['href']; ?>" title="" <?php if( $subentry['active'] ): ?>class="active"<?php endif; ?>><?php echo $subentry['name'] ?></a></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<?php echo $_['content']; ?>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
<div id="login">
|
||||
<header>
|
||||
<div class='header'>
|
||||
<img src="<?php echo image_path('', 'owncloud-logo-medium-white.png'); ?>" alt="ownCloud" />
|
||||
</div>
|
||||
</header>
|
||||
<form action="index.php" method="post" id="login_form">
|
||||
<fieldset>
|
||||
<?php if($_['error']): ?>
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
<form class="searchbox" action="<?php echo $_['searchurl']?>" method="post">
|
||||
<input type="text" name="query" value="<?php if(isset($_POST['query'])){echo $_POST['query'];};?>" class="prettybutton" />
|
||||
<input type="submit" value="<?php echo $l->t( 'Search' ); ?>" class="prettybutton" />
|
||||
<input type="search" name="query" value="<?php if(isset($_POST['query'])){echo $_POST['query'];};?>" class="prettybutton" />
|
||||
</form>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
// Init owncloud
|
||||
require_once('../lib/base.php');
|
||||
require_once('../../lib/base.php');
|
||||
|
||||
// We send json data
|
||||
header( "Content-Type: application/jsonrequest" );
|
||||
|
|
|
@ -1,121 +1,48 @@
|
|||
/* FILE MENU */
|
||||
.actions { padding:.6em; float:right; margin-right:16em; }
|
||||
#file_menu { right:0px; position:absolute; top:0; }
|
||||
#file_menu a { display:block; float:left; background-image:none; text-decoration:none; }
|
||||
.file_upload_form, #file_newfolder_form { display:inline; }
|
||||
#fileSelector, #file_upload_submit, #file_newfolder_submit { display:none; }
|
||||
.file_upload_filename, #file_newfolder_name { background-repeat:no-repeat; background-position:0.5em 0; padding-left:2em; }
|
||||
.file_upload_filename { background-image:url("../img/file.png"); font-weight:bold; }.file_upload_start { opacity:0;filter:alpha(opacity = 0); }
|
||||
|
||||
#file_menu
|
||||
{
|
||||
display: none;
|
||||
position: absolute;
|
||||
right:0px;
|
||||
background-color: #EEE;
|
||||
}
|
||||
|
||||
#file_menu ul
|
||||
{
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
#file_menu li a
|
||||
{
|
||||
display: block;
|
||||
padding: 0.5em 5em 0.5em 2em;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.file_upload_form, #file_newfolder_form {
|
||||
display: inline;
|
||||
margin-left:3em;
|
||||
}
|
||||
|
||||
#fileSelector, #file_upload_submit, #file_newfolder_submit {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.file_upload_filename, #file_newfolder_name {
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0.5em 0;
|
||||
padding-left: 2em;
|
||||
}
|
||||
|
||||
.file_upload_filename {
|
||||
background-image:url(../img/file.png); font-weight:bold;
|
||||
}
|
||||
.file_upload_start {opacity:0;filter: alpha(opacity = 0);}
|
||||
|
||||
#file_newfolder_name {
|
||||
background-image:url(../img/folder.png); font-weight:bold;
|
||||
width: 14em;
|
||||
}
|
||||
|
||||
.file_upload_start, .file_upload_filename{
|
||||
position:absolute;
|
||||
top:0px;
|
||||
left:0px;
|
||||
width:30ex;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.file_upload_wrapper{
|
||||
position:relative;
|
||||
top:-1.2em;
|
||||
left:-2em;
|
||||
display: -moz-inline-box; /* fallback for older firefox versions*/
|
||||
display: inline-block;
|
||||
width:30ex;
|
||||
}
|
||||
|
||||
#file_newfolder_submit, #file_upload_submit {
|
||||
width: 3em;
|
||||
}
|
||||
|
||||
.file_upload_target {
|
||||
display: none;
|
||||
}
|
||||
#file_newfolder_name { background-image:url("../img/folder.png"); font-weight:bold; width:11em; }
|
||||
.file_upload_start, .file_upload_filename { position:absolute; top:0px; left:0px; width:11em; font-size:0.9em; }
|
||||
.file_upload_wrapper { position:relative; top:-1.2em; left:-2em; display:-moz-inline-box; /* fallback for older firefox versions*/ display:inline-block; width:12em; }
|
||||
#file_newfolder_submit, #file_upload_submit { width:3em; }
|
||||
.file_upload_target { display:none; }
|
||||
|
||||
/* FILE TABLE */
|
||||
|
||||
table {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
span#emptyfolder { position:absolute; margin:10em 0 0 10em; font-size:1.5em; font-weight:bold; color:#888; text-shadow:#fff 0 1px 0; }
|
||||
table { position:relative; top:37px; width:100%; }
|
||||
tbody tr:hover, tbody tr:active, tbody tr.selected { background-color:#eee; }
|
||||
tbody a { color:#000; }
|
||||
span.extention, td.date { color:#999; }
|
||||
div.crumb { float:left; display:block; background:no-repeat right 0; font-weight:bold; padding:8px 1.5em 0 1em; height:28px; /*36-8*/ }
|
||||
table tr.mouseOver td { background-color:#eee; }
|
||||
table th { padding:.5em; height:2em; }
|
||||
table th .name { float:left; margin-left:.5em; }
|
||||
table th, table td { border-bottom:1px solid #ddd; text-align:left; font-weight:normal; }
|
||||
table td { border-bottom:1px solid #eee; font-style:normal; }
|
||||
table th#headerSize, table td.filesize { width:5em; padding:0 1em; text-align:right; }
|
||||
table th#headerDate, table td.date { width:11em; padding:0 .1em 0 1em; text-align:left; }
|
||||
table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; }
|
||||
table td.filename a.name { display:block; background-image:url('../img/file.png'); height:1.5em; vertical-align:middle; }
|
||||
table tr[data-type="dir"] td.filename a.name {font-weight:bold; }
|
||||
table td.filename a.name input, table td.filename a.name form { width:100%; cursor:text }
|
||||
table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.2em .5em .5em 3em; background-position:1em .5em; background-repeat:no-repeat; }
|
||||
table td.filename .nametext, .modified { float:left; padding:.3em 0; }
|
||||
table td.filename .nametext { width:80%; }
|
||||
table td.filename form { float:left; font-size:.85em; }
|
||||
#fileList tr input[type=checkbox] { display:none; float:left; margin:.7em 0 0 1em; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/ }
|
||||
#fileList tr input[type=checkbox]:checked, #fileList tr:hover input[type=checkbox] { display:inline; }
|
||||
#fileList tr.selected td.filename a, #fileList tr:hover td.filename a { background-image:none !important }
|
||||
#select_all { float:left; margin:0.2em; margin-left:0.6em; }
|
||||
#uploadsize-message,#delete-confirm { display:none; }
|
||||
.selectedActions a, a.file_action { float:right; display:inline; margin:0 .5em; padding:.3em .3em 0 .3em !important; }
|
||||
.selectedActions { display:none; }
|
||||
.selectedActions a:hover, a.file_action:hover { background:#fff; -moz-box-shadow:0 0 10px #fff; -webkit-box-shadow:0 0 10px #fff; box-shadow:0 0 10px #fff; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; }
|
||||
|
||||
table td.filesize, table td.date
|
||||
{
|
||||
width: 5em;
|
||||
padding: 0.5em 1em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
table td.date
|
||||
{
|
||||
width: 11em;
|
||||
}
|
||||
|
||||
table td.selection, table th.selection, table td.fileaction
|
||||
{
|
||||
width: 2em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table td.filename a
|
||||
{
|
||||
display: block;
|
||||
background-image: url(../img/file.png);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.dropArrow{
|
||||
height:16px;
|
||||
width:16px;
|
||||
display: -moz-inline-box; /* fallback for older firefox versions*/
|
||||
display: inline-block;
|
||||
background-image:url('../img/drop-arrow.png');
|
||||
}
|
||||
|
||||
span.extention{
|
||||
color:#999;
|
||||
}
|
||||
|
||||
div.crumb{
|
||||
float:left;
|
||||
}
|
||||
/* add breadcrumb divider to the File item in navigation panel */
|
||||
#plugins li:first-child { background-position:15.7em 0px; background-repeat:no-repeat; background-image:url("/owncloud/core/img/breadcrumb-divider-start.png"); width:15.7em; padding-right:11px; }
|
||||
|
|
Before Width: | Height: | Size: 2.8 KiB |
|
@ -1,11 +1,14 @@
|
|||
FileActions={
|
||||
actions:{},
|
||||
defaults:{},
|
||||
register:function(mime,name,action){
|
||||
icons:{},
|
||||
currentFile:null,
|
||||
register:function(mime,name,icon,action){
|
||||
if(!FileActions.actions[mime]){
|
||||
FileActions.actions[mime]={};
|
||||
}
|
||||
FileActions.actions[mime][name]=action;
|
||||
FileActions.icons[name]=icon;
|
||||
},
|
||||
setDefault:function(mime,name){
|
||||
FileActions.defaults[mime]=name;
|
||||
|
@ -49,41 +52,80 @@ FileActions={
|
|||
return actions[name];
|
||||
},
|
||||
display:function(parent){
|
||||
$('#file_menu ul').empty();
|
||||
parent.append($('#file_menu'));
|
||||
FileActions.currentFile=parent;
|
||||
var actions=FileActions.get(FileActions.getCurrentMimeType(),FileActions.getCurrentType());
|
||||
var file=FileActions.getCurrentFile();
|
||||
if($('tr[data-file="'+file+'"]').data('renaming')){
|
||||
return;
|
||||
}
|
||||
var defaultAction=FileActions.getDefault(FileActions.getCurrentMimeType(),FileActions.getCurrentType());
|
||||
for(name in actions){
|
||||
var html='<li><a href="" alt="'+name+'">'+name+'</a></li>';
|
||||
if((name=='Download' || actions[name]!=defaultAction) && name!='Delete'){
|
||||
var img=FileActions.icons[name];
|
||||
var html='<a href="#" title="'+name+'" class="file_action"/>';
|
||||
var element=$(html);
|
||||
if(img){
|
||||
element.append($('<img src="'+img+'"/>'));
|
||||
}
|
||||
element.data('action',name);
|
||||
element.click(function(event){
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
$('#file_menu').slideToggle(250);
|
||||
var action=actions[$(this).data('action')];
|
||||
$('#file_menu ul').empty();
|
||||
action(FileActions.getCurrentFile());
|
||||
var currentFile=FileActions.getCurrentFile();
|
||||
FileActions.hide();
|
||||
action(currentFile);
|
||||
});
|
||||
$('#file_menu>ul').append(element);
|
||||
parent.children('a.name').append(element);
|
||||
}
|
||||
}
|
||||
if(actions['Delete']){
|
||||
var img=FileActions.icons['Delete'];
|
||||
var html='<a href="#" title="Delete" class="file_action"/>';
|
||||
var element=$(html);
|
||||
if(img){
|
||||
element.append($('<img src="'+img+'"/>'));
|
||||
}
|
||||
element.data('action','Delete');
|
||||
element.click(function(event){
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
var action=actions[$(this).data('action')];
|
||||
var currentFile=FileActions.getCurrentFile();
|
||||
FileActions.hide();
|
||||
action(currentFile);
|
||||
});
|
||||
parent.parent().children().last().append(element);
|
||||
}
|
||||
$('#file_menu').slideToggle(250);
|
||||
return false;
|
||||
},
|
||||
hide:function(){
|
||||
$('.file_action').remove();
|
||||
},
|
||||
getCurrentFile:function(){
|
||||
return $('#file_menu').parents('tr:first').attr('data-file');
|
||||
return FileActions.currentFile.parent().attr('data-file');
|
||||
},
|
||||
getCurrentMimeType:function(){
|
||||
return $('#file_menu').parents('tr:first').attr('data-mime');
|
||||
return FileActions.currentFile.parent().attr('data-mime');
|
||||
},
|
||||
getCurrentType:function(){
|
||||
return $('#file_menu').parents('tr:first').attr('data-type');
|
||||
return FileActions.currentFile.parent().attr('data-type');
|
||||
}
|
||||
}
|
||||
|
||||
FileActions.register('all','Download',function(filename){
|
||||
FileActions.register('all','Download',OC.imagePath('core','actions/download'),function(filename){
|
||||
window.location='ajax/download.php?files='+filename+'&dir='+$('#dir').val();
|
||||
});
|
||||
|
||||
FileActions.register('all','Delete',function(filename){
|
||||
FileActions.register('all','Delete',OC.imagePath('core','actions/delete'),function(filename){
|
||||
$( "#delete-confirm" ).dialog({
|
||||
resizable: false,
|
||||
height:200,
|
||||
title:"Delete "+filename,
|
||||
modal: true,
|
||||
buttons: {
|
||||
"Delete": function() {
|
||||
$( this ).dialog( "close" );
|
||||
$.ajax({
|
||||
url: 'ajax/delete.php',
|
||||
data: "dir="+encodeURIComponent($('#dir').val())+"&file="+encodeURIComponent(filename),
|
||||
|
@ -93,11 +135,21 @@ FileActions.register('all','Delete',function(filename){
|
|||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
Cancel: function() {
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
FileActions.register('all','Rename',OC.imagePath('core','actions/rename'),function(filename){
|
||||
FileList.rename(filename);
|
||||
});
|
||||
|
||||
FileActions.setDefault('all','Download');
|
||||
|
||||
FileActions.register('dir','Open',function(filename){
|
||||
FileActions.register('dir','Open','',function(filename){
|
||||
window.location='index.php?dir='+$('#dir').val()+'/'+filename;
|
||||
});
|
||||
|
||||
|
|
|
@ -4,12 +4,30 @@ FileList={
|
|||
},
|
||||
addFile:function(name,size,lastModified,loading){
|
||||
var img=(loading)?'img/loading.gif':'img/file.png';
|
||||
var html='<tr data-file="'+name+'" data-type="file">';
|
||||
html+='<td class="selection"><input type="checkbox" /></td>';
|
||||
html+='<td class="filename"><a style="background-image:url('+img+')" href="download.php?file='+$('#dir').val()+'/'+name+'">'+name+'</a></td>';
|
||||
html+='<td class="filesize">'+size+'</td>';
|
||||
html+='<td class="date">'+lastModified+'</td>';
|
||||
html+='<td class="fileaction"><a href="" title="+" class="dropArrow"></a></td>';
|
||||
var html='<tr data-file="'+name+'" data-type="file" data-size="'+size+'">';
|
||||
if(name.indexOf('.')!=-1){
|
||||
var basename=name.substr(0,name.indexOf('.'));
|
||||
var extention=name.substr(name.indexOf('.'));
|
||||
}else{
|
||||
var basename=name;
|
||||
var extention=false;
|
||||
}
|
||||
html+='<td class="filename"><input type="checkbox" />';
|
||||
html+='<a class="name" style="background-image:url('+img+')" href="download.php?file='+$('#dir').val()+'/'+name+'"><span class="nametext">'+basename
|
||||
if(extention){
|
||||
html+='<span class="extention">'+extention+'</span>';
|
||||
}
|
||||
html+='</span></a></td>';
|
||||
if(size!='Pending'){
|
||||
simpleSize=simpleFileSize(size);
|
||||
}else{
|
||||
simpleSize='Pending';
|
||||
}
|
||||
sizeColor = Math.round(200-Math.pow((size/(1024*1024)),2));
|
||||
lastModifiedTime=Math.round(lastModified.getTime() / 1000);
|
||||
modifiedColor=Math.round((Math.round((new Date()).getTime() / 1000)-lastModifiedTime)/60/60/24*5);
|
||||
html+='<td class="filesize" title="'+humanFileSize(size)+'" style="color:rgb('+sizeColor+','+sizeColor+','+sizeColor+')">'+simpleSize+'</td>';
|
||||
html+='<td class="date" title="'+formatDate(lastModified)+'" style="color:rgb('+modifiedColor+','+modifiedColor+','+modifiedColor+')">'+relative_modified_date(lastModified.getTime() / 1000)+'</td>';
|
||||
html+='</tr>';
|
||||
FileList.insertElement(name,'file',$(html));
|
||||
if(loading){
|
||||
|
@ -19,12 +37,18 @@ FileList={
|
|||
}
|
||||
},
|
||||
addDir:function(name,size,lastModified){
|
||||
var html='<tr data-file="'+name+'" data-type="dir">';
|
||||
html+='<td class="selection"><input type="checkbox" /></td>';
|
||||
html+='<td class="filename"><a style="background-image:url(img/folder.png)" href="index.php?dir='+$('#dir').val()+'/'+name+'"><strong>'+name+'</strong></a></td>';
|
||||
html+='<td class="filesize">'+size+'</td>';
|
||||
html+='<td class="date">'+lastModified+'</td>';
|
||||
html+='<td class="fileaction"><a href="" title="+" class="dropArrow"></a></td>';
|
||||
var html='<tr data-file="'+name+'" data-type="dir" data-size="'+size+'">';
|
||||
html+='<td class="filename"><input type="checkbox" /><a class="name" style="background-image:url(img/folder.png)" href="index.php?dir='+$('#dir').val()+'/'+name+'">'+name+'</a></td>';
|
||||
if(size!='Pending'){
|
||||
simpleSize=simpleFileSize(size);
|
||||
}else{
|
||||
simpleSize='Pending';
|
||||
}
|
||||
sizeColor = Math.round(200-Math.pow((size/(1024*1024)),2));
|
||||
lastModifiedTime=Math.round(lastModified.getTime() / 1000);
|
||||
modifiedColor=Math.round((Math.round((new Date()).getTime() / 1000)-lastModifiedTime)/60/60/24*5);
|
||||
html+='<td class="filesize" title="'+humanFileSize(size)+'" style="color:rgb('+sizeColor+','+sizeColor+','+sizeColor+')">'+simpleSize+'</td>';
|
||||
html+='<td class="date" title="'+formatDate(lastModified)+'" style="color:rgb('+modifiedColor+','+modifiedColor+','+modifiedColor+')">'+relative_modified_date(lastModified.getTime() / 1000)+'</td>';
|
||||
html+='</tr>';
|
||||
|
||||
FileList.insertElement(name,'dir',$(html));
|
||||
|
@ -72,10 +96,52 @@ FileList={
|
|||
},
|
||||
loadingDone:function(name){
|
||||
$('tr[data-file="'+name+'"]').data('loading',false);
|
||||
$('tr[data-file="'+name+'"] td.filename a').attr('style','background-image:url(img/file.png');
|
||||
var mime=$('tr[data-file="'+name+'"]').data('mime');
|
||||
$('tr[data-file="'+name+'"] td.filename a').attr('style','background-image:url('+getMimeIcon(mime)+')');
|
||||
$('tr[data-file="'+name+'"] td.filename').draggable(dragOptions);
|
||||
},
|
||||
isLoading:function(name){
|
||||
return $('tr[data-file="'+name+'"]').data('loading');
|
||||
},
|
||||
rename:function(name){
|
||||
var tr=$('tr[data-file="'+name+'"]');
|
||||
tr.data('renaming',true);
|
||||
var td=tr.children('td.filename');
|
||||
var input=$('<input value='+name+' class="filename"></input>');
|
||||
var form=$('<form action="#"></form>')
|
||||
form.append(input);
|
||||
td.children('a.name').text('');
|
||||
td.children('a.name').append(form)
|
||||
input.focus();
|
||||
form.submit(function(event){
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
var newname=input.val();
|
||||
tr.data('renaming',false);
|
||||
tr.attr('data-file',newname);
|
||||
td.children('a.name').empty();
|
||||
if(newname.indexOf('.')>0){
|
||||
basename=newname.substr(0,newname.indexOf('.'));
|
||||
}else{
|
||||
basename=newname;
|
||||
}
|
||||
var span=$('<span class="nametext"></span>');
|
||||
span.text(basename);
|
||||
td.children('a.name').append(span);
|
||||
if(newname.indexOf('.')>0){
|
||||
span.append($('<span class="extention">'+newname.substr(newname.indexOf('.'))+'</span>'));
|
||||
}
|
||||
$.ajax({
|
||||
url: 'ajax/rename.php',
|
||||
data: "dir="+$('#dir').val()+"&newname="+encodeURIComponent(newname)+"&file="+encodeURIComponent(name)
|
||||
});
|
||||
});
|
||||
form.click(function(event){
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
});
|
||||
input.blur(function(){
|
||||
form.trigger('submit');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,45 +4,25 @@ $(document).ready(function() {
|
|||
//drag/drop of files
|
||||
$('#fileList tr td.filename').draggable(dragOptions);
|
||||
$('#fileList tr[data-type="dir"] td.filename').droppable(folderDropOptions);
|
||||
$('div.crumb').droppable({
|
||||
drop: function( event, ui ) {
|
||||
var file=ui.draggable.text().trim();
|
||||
var target=$(this).attr('data-dir');
|
||||
var dir=$('#dir').val();
|
||||
while(dir.substr(0,1)=='/'){//remove extra leading /'s
|
||||
dir=dir.substr(1);
|
||||
}
|
||||
dir='/'+dir;
|
||||
if(dir.substr(-1,1)!='/'){
|
||||
dir=dir+'/';
|
||||
}
|
||||
if(target==dir){
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
url: 'ajax/move.php',
|
||||
data: "dir="+dir+"&file="+file+'&target='+target,
|
||||
complete: function(data){boolOperationFinished(data, function(){
|
||||
FileList.remove(file);
|
||||
});}
|
||||
});
|
||||
},
|
||||
tolerance: 'pointer'
|
||||
});
|
||||
$('div.crumb').droppable(crumbDropOptions);
|
||||
$('#plugins>ul>li:first-child').data('dir','');
|
||||
$('#plugins>ul>li:first-child').droppable(crumbDropOptions);
|
||||
|
||||
// Sets the file-action buttons behaviour :
|
||||
$('td.fileaction a').live('click',function(event) {
|
||||
event.preventDefault();
|
||||
FileActions.display($(this).parent());
|
||||
$('tr').live('mouseenter',function(event) {
|
||||
FileActions.display($(this).children('td.filename'));
|
||||
});
|
||||
$('tr').live('mouseleave',function(event) {
|
||||
FileActions.hide();
|
||||
});
|
||||
|
||||
// Sets the file link behaviour :
|
||||
$('td.filename a').live('click',function(event) {
|
||||
event.preventDefault();
|
||||
var filename=$(this).parent().parent().attr('data-file');
|
||||
var filename=$(this).parent().parent().data('file');
|
||||
if(!FileList.isLoading(filename)){
|
||||
var mime=$(this).parent().parent().attr('data-mime');
|
||||
var type=$(this).parent().parent().attr('data-type');
|
||||
var mime=$(this).parent().parent().data('mime');
|
||||
var type=$(this).parent().parent().data('type');
|
||||
var action=FileActions.getDefault(mime,type);
|
||||
if(action){
|
||||
action(filename);
|
||||
|
@ -54,24 +34,27 @@ $(document).ready(function() {
|
|||
$('#select_all').click(function() {
|
||||
if($(this).attr('checked')){
|
||||
// Check all
|
||||
$('td.selection input:checkbox').attr('checked', true);
|
||||
$('td.selection input:checkbox').parent().parent().addClass('selected');
|
||||
$('td.filename input:checkbox').attr('checked', true);
|
||||
$('td.filename input:checkbox').parent().parent().addClass('selected');
|
||||
}else{
|
||||
// Uncheck all
|
||||
$('td.selection input:checkbox').attr('checked', false);
|
||||
$('td.selection input:checkbox').parent().parent().removeClass('selected');
|
||||
$('td.filename input:checkbox').attr('checked', false);
|
||||
$('td.filename input:checkbox').parent().parent().removeClass('selected');
|
||||
}
|
||||
procesSelection();
|
||||
});
|
||||
|
||||
$('td.selection input:checkbox').live('click',function() {
|
||||
$('td.filename input:checkbox').live('click',function() {
|
||||
var selectedCount=$('td.filename input:checkbox:checked').length;
|
||||
$(this).parent().parent().toggleClass('selected');
|
||||
if(!$(this).attr('checked')){
|
||||
$('#select_all').attr('checked',false);
|
||||
}else{
|
||||
if($('td.selection input:checkbox:checked').length==$('td.selection input:checkbox').length){
|
||||
if(selectedCount==$('td.filename input:checkbox').length){
|
||||
$('#select_all').attr('checked',true);
|
||||
}
|
||||
}
|
||||
procesSelection();
|
||||
});
|
||||
|
||||
$('#file_newfolder_form').submit(function(event) {
|
||||
|
@ -80,11 +63,12 @@ $(document).ready(function() {
|
|||
url: 'ajax/newfolder.php',
|
||||
data: "dir="+$('#dir').val()+"&foldername="+$('#file_newfolder_name').val(),
|
||||
complete: function(data){boolOperationFinished(data, function(){
|
||||
var date=formatDate(new Date());
|
||||
FileList.addDir($('#file_newfolder_name').val(),'0 B',date)
|
||||
var date=new Date();
|
||||
FileList.addDir($('#file_newfolder_name').val(),0,date);
|
||||
$('#file_newfolder_name').val('New Folder');
|
||||
$('#file_newfolder_name').blur();
|
||||
});}
|
||||
});
|
||||
$('#file_newfolder_submit').fadeOut(250).trigger('vanish');
|
||||
});
|
||||
|
||||
$('#file_newfolder_name').click(function(){
|
||||
|
@ -93,21 +77,7 @@ $(document).ready(function() {
|
|||
}
|
||||
});
|
||||
|
||||
$('#file_newfolder_name').bind('keyup', adjustNewFolderSize);
|
||||
|
||||
$('#file_newfolder_submit').bind('vanish', function() {
|
||||
$('#file_newfolder_name').bind('keyup', adjustNewFolderSize);
|
||||
unsplitSize($('#file_newfolder_name'),$('#file_newfolder_submit'));
|
||||
});
|
||||
|
||||
$('#file_newfolder_name').focusout(function(){
|
||||
if($('#file_newfolder_name').val() == '') {
|
||||
$('#file_newfolder_form')[0].reset();
|
||||
$('#file_newfolder_submit').fadeOut(250).trigger('vanish');
|
||||
}
|
||||
});
|
||||
|
||||
$('.download').live('click',function(event) {
|
||||
$('.download').click('click',function(event) {
|
||||
var files=getSelectedFiles('name').join(';');
|
||||
|
||||
//send the browser to the download location
|
||||
|
@ -117,18 +87,41 @@ $(document).ready(function() {
|
|||
return false;
|
||||
});
|
||||
|
||||
$('.delete').live('click',function(event) {
|
||||
var files=getSelectedFiles('name').join(';');
|
||||
$('.delete').click(function(event) {
|
||||
var fileNames=getSelectedFiles('name');
|
||||
var files=fileNames.join(';');
|
||||
var lastFileName=fileNames.pop();
|
||||
if(fileNames.length>0){
|
||||
fileNames=fileNames.join(', ')+' and '+lastFileName;
|
||||
}else{
|
||||
fileNames=lastFileName;
|
||||
}
|
||||
|
||||
$( "#delete-confirm" ).dialog({
|
||||
resizable: false,
|
||||
height:200,
|
||||
modal: true,
|
||||
title:"Delete "+fileNames,
|
||||
buttons: {
|
||||
"Delete": function() {
|
||||
$( this ).dialog( "close" );
|
||||
$.ajax({
|
||||
url: 'ajax/delete.php',
|
||||
data: "dir="+$('#dir').val()+"&files="+encodeURIComponent(files),
|
||||
complete: function(data){
|
||||
boolOperationFinished(data, function(){
|
||||
$('td.selection input:checkbox:checked').parent().parent().each(function(i,element){
|
||||
FileList.remove($(element).attr('data-file'));
|
||||
var files=getSelectedFiles('name');
|
||||
for(var i=0;i<files.length;i++){
|
||||
FileList.remove(files[i]);
|
||||
}
|
||||
procesSelection();
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
Cancel: function() {
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -140,13 +133,27 @@ $(document).ready(function() {
|
|||
var uploadId=form.attr('data-upload-id');
|
||||
var files=this.files;
|
||||
var target=form.children('iframe');
|
||||
var totalSize=0;
|
||||
for(var i=0;i<files.length;i++){
|
||||
totalSize+=files[i].size;
|
||||
}
|
||||
if(totalSize>$('#max_upload').val()){
|
||||
$( "#uploadsize-message" ).dialog({
|
||||
modal: true,
|
||||
buttons: {
|
||||
Close: function() {
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
}
|
||||
});
|
||||
}else{
|
||||
target.load(function(){
|
||||
var response=jQuery.parseJSON(target.contents().find('body').text());
|
||||
//set mimetype and if needed filesize
|
||||
if(response){
|
||||
for(var i=0;i<response.length;i++){
|
||||
var file=response[i];
|
||||
$('tr[data-file="'+file.name+'"]').attr('data-mime',file.mime);
|
||||
$('tr[data-file="'+file.name+'"]').data('mime',file.mime);
|
||||
if(size=='Pending'){
|
||||
$('tr[data-file='+file.name+'] td.filesize').text(file.size);
|
||||
}
|
||||
|
@ -156,14 +163,13 @@ $(document).ready(function() {
|
|||
});
|
||||
form.submit();
|
||||
var date=new Date();
|
||||
var uploadTime=formatDate(date);
|
||||
for(var i=0;i<files.length;i++){
|
||||
if(files[i].size>0){
|
||||
var size=simpleFileSize(files[i].size);
|
||||
var size=files[i].size;
|
||||
}else{
|
||||
var size='Pending';
|
||||
}
|
||||
FileList.addFile(files[i].name,size,uploadTime,true);
|
||||
FileList.addFile(files[i].name,size,date,true);
|
||||
}
|
||||
|
||||
//clone the upload form and hide the new one to allow users to start a new upload while the old one is still uploading
|
||||
|
@ -174,12 +180,35 @@ $(document).ready(function() {
|
|||
clone.children('iframe').attr('name','file_upload_target_'+uploadId)
|
||||
clone.insertBefore(form);
|
||||
form.hide();
|
||||
}
|
||||
});
|
||||
|
||||
//add multiply file upload attribute to all browsers except konqueror (which crashes when it's used)
|
||||
if(navigator.userAgent.search(/konqueror/i)==-1){
|
||||
$('.file_upload_start').attr('multiple','multiple')
|
||||
}
|
||||
|
||||
//if the breadcrumb is to long, start by replacing foldernames with '...' except for the current folder
|
||||
var crumb=$('div.crumb').first();
|
||||
while($('div.controls').height()>40 && crumb.next('div.crumb').length>0){
|
||||
crumb.children('a').text('...');
|
||||
crumb=crumb.next('div.crumb');
|
||||
}
|
||||
//if that isn't enough, start removing items from the breacrumb except for the current folder and it's parent
|
||||
var crumb=$('div.crumb').first();
|
||||
var next=crumb.next('div.crumb');
|
||||
while($('div.controls').height()>40 && next.next('div.crumb').length>0){
|
||||
crumb.remove();
|
||||
crumb=next;
|
||||
next=crumb.next('div.crumb');
|
||||
}
|
||||
//still not enough, start shorting down the current folder name
|
||||
var crumb=$('div.crumb>a').last();
|
||||
while($('div.controls').height()>40 && crumb.text().length>6){
|
||||
var text=crumb.text()
|
||||
text=text.substr(0,text.length-6)+'...';
|
||||
crumb.text(text);
|
||||
}
|
||||
});
|
||||
|
||||
var adjustNewFolderSize = function() {
|
||||
|
@ -238,7 +267,7 @@ function humanFileSize(bytes){
|
|||
}
|
||||
|
||||
function simpleFileSize(bytes) {
|
||||
mbytes = Math.round(bytes/(1024*1024),1);
|
||||
mbytes = Math.round(bytes/(1024*1024/10))/10;
|
||||
if(bytes == 0) { return '0'; }
|
||||
else if(mbytes < 0.1) { return '< 0.1'; }
|
||||
else if(mbytes > 1000) { return '> 1000'; }
|
||||
|
@ -275,29 +304,133 @@ var folderDropOptions={
|
|||
});
|
||||
}
|
||||
}
|
||||
var crumbDropOptions={
|
||||
drop: function( event, ui ) {
|
||||
var file=ui.draggable.text().trim();
|
||||
var target=$(this).data('dir');
|
||||
var dir=$('#dir').val();
|
||||
while(dir.substr(0,1)=='/'){//remove extra leading /'s
|
||||
dir=dir.substr(1);
|
||||
}
|
||||
dir='/'+dir;
|
||||
if(dir.substr(-1,1)!='/'){
|
||||
dir=dir+'/';
|
||||
}
|
||||
if(target==dir){
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
url: 'ajax/move.php',
|
||||
data: "dir="+dir+"&file="+file+'&target='+target,
|
||||
complete: function(data){boolOperationFinished(data, function(){
|
||||
FileList.remove(file);
|
||||
});}
|
||||
});
|
||||
},
|
||||
tolerance: 'pointer'
|
||||
}
|
||||
|
||||
function procesSelection(){
|
||||
var selected=getSelectedFiles();
|
||||
var selectedFiles=selected.filter(function(el){return el.type=='file'});
|
||||
var selectedFolders=selected.filter(function(el){return el.type=='dir'});
|
||||
if(selectedFiles.length==0 && selectedFolders.length==0){
|
||||
$('#headerName>span.name').text('Name');
|
||||
$('#headerSize').text('Size MB');
|
||||
$('#modified').text('Modified');
|
||||
$('th').css({background:'#fff',fontWeight:'normal'});
|
||||
$('.selectedActions').hide();
|
||||
}else{
|
||||
$('.selectedActions').show();
|
||||
var totalSize=0;
|
||||
for(var i=0;i<selectedFiles.length;i++){
|
||||
totalSize+=selectedFiles[i].size;
|
||||
};
|
||||
for(var i=0;i<selectedFolders.length;i++){
|
||||
totalSize+=selectedFolders[i].size;
|
||||
};
|
||||
simpleSize=simpleFileSize(totalSize);
|
||||
$('#headerSize').text(simpleSize+' MB');
|
||||
$('#headerSize').attr('title',humanFileSize(totalSize));
|
||||
var selection='';
|
||||
if(selectedFolders.length>0){
|
||||
if(selectedFolders.length==1){
|
||||
selection+='1 folder';
|
||||
}else{
|
||||
selection+=selectedFolders.length+' folders';
|
||||
}
|
||||
if(selectedFiles.length>0){
|
||||
selection+=' & ';
|
||||
}
|
||||
}
|
||||
if(selectedFiles.length>0){
|
||||
if(selectedFiles.length==1){
|
||||
selection+='1 file';
|
||||
}else{
|
||||
selection+=selectedFiles.length+' files';
|
||||
}
|
||||
}
|
||||
$('#headerName>span.name').text(selection);
|
||||
$('#modified').text('');
|
||||
$('th').css({background:'#ddd', fontWeight:'bold'});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief get a list of selected files
|
||||
* @param string property (option) the property of the file requested
|
||||
* @return array
|
||||
*
|
||||
* possible values for property: name, mime
|
||||
* possible values for property: name, mime, size and type
|
||||
* if property is set, an array with that property for each file is returnd
|
||||
* if it's ommited an array of objects with all properties is returned
|
||||
*/
|
||||
function getSelectedFiles(property){
|
||||
var elements=$('td.selection input:checkbox:checked').parent().parent();
|
||||
var elements=$('td.filename input:checkbox:checked').parent().parent();
|
||||
var files=[];
|
||||
elements.each(function(i,element){
|
||||
var file={
|
||||
name:$(element).attr('data-file'),
|
||||
mime:$(element).attr('data-mime')
|
||||
name:$(element).data('file'),
|
||||
mime:$(element).data('mime'),
|
||||
type:$(element).data('type'),
|
||||
size:$(element).data('size'),
|
||||
};
|
||||
if(property){
|
||||
files.push(file[property]);
|
||||
}else{
|
||||
files.push();
|
||||
files.push(file);
|
||||
}
|
||||
});
|
||||
return files;
|
||||
}
|
||||
|
||||
function relative_modified_date(timestamp) {
|
||||
var timediff = Math.round((new Date()).getTime() / 1000) - timestamp;
|
||||
var diffminutes = Math.round(timediff/60);
|
||||
var diffhours = Math.round(diffminutes/60);
|
||||
var diffdays = Math.round(diffhours/24);
|
||||
var diffmonths = Math.round(diffdays/31);
|
||||
var diffyears = Math.round(diffdays/365);
|
||||
if(timediff < 60) { return 'seconds ago'; }
|
||||
else if(timediff < 120) { return '1 minute ago'; }
|
||||
else if(timediff < 3600) { return diffminutes+' minutes ago'; }
|
||||
//else if($timediff < 7200) { return '1 hour ago'; }
|
||||
//else if($timediff < 86400) { return $diffhours.' hours ago'; }
|
||||
else if(timediff < 86400) { return 'today'; }
|
||||
else if(timediff < 172800) { return 'yesterday'; }
|
||||
else if(timediff < 2678400) { return diffdays+' days ago'; }
|
||||
else if(timediff < 5184000) { return 'last month'; }
|
||||
//else if($timediff < 31556926) { return $diffmonths.' months ago'; }
|
||||
else if(timediff < 31556926) { return 'months ago'; }
|
||||
else if(timediff < 63113852) { return 'last year'; }
|
||||
else { return diffyears+' years ago'; }
|
||||
}
|
||||
|
||||
function getMimeIcon(mime){
|
||||
mime=mime.substr(0,mime.indexOf('/'));
|
||||
var knownMimes=['image','audio'];
|
||||
if(knownMimes.indexOf(mime)==-1){
|
||||
mime='file';
|
||||
}
|
||||
return OC.imagePath('core','mimetypes/'+mime+'.png');
|
||||
}
|
|
@ -3,8 +3,11 @@
|
|||
<form name="filesForm" action='#' method='post'>
|
||||
<?php if($_['htaccessWorking']):?>
|
||||
<label for="maxUploadSize"><?php echo $l->t( 'Maximum upload size' ); ?> </label><input name='maxUploadSize' id="maxUploadSize" value='<?php echo $_['uploadMaxFilesize'] ?>'/><br/>
|
||||
<input type='submit' value='Save'/>
|
||||
<?php else:?>
|
||||
No settings currently available.
|
||||
<?php endif;?>
|
||||
<input type="checkbox" name="publicEnable" id="publicEnable" /><label for="publicEnable"> <?php echo $l->t( 'Allow public folders' ); ?></label><br>
|
||||
<!-- <input type="checkbox" name="publicEnable" id="publicEnable" /><label for="publicEnable"> <?php echo $l->t( 'Allow public folders' ); ?></label><br>
|
||||
|
||||
<div style="padding-left: 20px">
|
||||
<input type="radio" name="sharingaim" id="separated" /><label for="separated"> <?php echo $l->t( 'separated from webdav storage' ); ?></label><br>
|
||||
|
@ -13,6 +16,5 @@
|
|||
</div>
|
||||
|
||||
<input type="checkbox" id="downloadShared" /><label for="downloadShared"> <?php echo $l->t( 'Allow downloading shared files' ); ?></label><br>
|
||||
<input type="checkbox" id="uploadShared" /><label for="uploadShared"> <?php echo $l->t( 'Allow uploading in shared directory' ); ?></label><br>
|
||||
<input type='submit' value='Save'/>
|
||||
<input type="checkbox" id="uploadShared" /><label for="uploadShared"> <?php echo $l->t( 'Allow uploading in shared directory' ); ?></label><br>-->
|
||||
</form>
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
<div class="controls">
|
||||
<span class="nav">
|
||||
<?php echo($_['breadcrumb']); ?>
|
||||
</span>
|
||||
<div class="actions">
|
||||
<form data-upload-id='1' class="file_upload_form" action="ajax/upload.php" method="post" enctype="multipart/form-data" target="file_upload_target_1">
|
||||
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $_["uploadMaxFilesize"] ?>" id="max_upload">
|
||||
|
@ -12,28 +15,25 @@
|
|||
</form>
|
||||
<form id="file_newfolder_form">
|
||||
<input type="text" class="prettybutton" name="file_newfolder_name" id="file_newfolder_name" value="New Folder" />
|
||||
<input class="prettybutton" type="submit" id="file_newfolder_submit" name="file_newfolder_submit" value="OK" />
|
||||
</form>
|
||||
<a href="" title="" class="download"><?php echo $l->t( 'Download' ); ?></a>
|
||||
<!--<a href="" title="" class="share"><?php echo $l->t( 'Share' ); ?></a>-->
|
||||
<a href="" title="" class="delete"><?php echo $l->t( 'Delete' ); ?></a>
|
||||
</div>
|
||||
<div id="file_action_panel">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<span class="nav">
|
||||
<?php echo($_['breadcrumb']); ?>
|
||||
</span>
|
||||
|
||||
<table cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><input type="checkbox" id="select_all" /></th>
|
||||
<th><?php echo $l->t( 'Name' ); ?></th>
|
||||
<th><?php echo $l->t( 'Size (MB)' ); ?></th>
|
||||
<th><?php echo $l->t( 'Modified' ); ?></th>
|
||||
<th></th>
|
||||
<th id='headerName'>
|
||||
<input type="checkbox" id="select_all" />
|
||||
<span class='name'><?php echo $l->t( 'Name' ); ?></span>
|
||||
<span class='selectedActions'>
|
||||
<a href="" title="Download" class="download"><img class='svg' alt="Download" src="../core/img/actions/download.svg" /></a>
|
||||
<!--<a href="" title="" class="share">Share</a>-->
|
||||
</span>
|
||||
</th>
|
||||
<th id='headerSize'><?php echo $l->t( 'Size MB' ); ?></th>
|
||||
<th id='headerDate'><span id="modified"><?php echo $l->t( 'Modified' ); ?></span><span class='selectedActions'><a href="" title="Delete" class="delete"><img class='svg' alt="Delete" src="../core/img/actions/delete.svg" /></a></span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="fileList">
|
||||
|
@ -41,7 +41,14 @@
|
|||
</tbody>
|
||||
</table>
|
||||
|
||||
<div id="file_menu">
|
||||
<ul>
|
||||
</ul>
|
||||
<div id="uploadsize-message" title="Upload too large">
|
||||
<p>
|
||||
<?php echo $l->t( 'The files you are trying to upload exceed the maximum size for file uploads on this server.' ); ?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="delete-confirm" title="">
|
||||
<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>These items will be permanently deleted and cannot be recovered. Are you sure?</p>
|
||||
</div>
|
||||
|
||||
<span id="file_menu"/>
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
<div class='crumb' data-dir='/'>
|
||||
<a href="<?php echo link_to("files", "index.php"); ?>"><img src="<?php echo image_path("", "actions/go-home.png"); ?>" alt="Root"/></a>
|
||||
</div>
|
||||
<?php foreach($_["breadcrumb"] as $crumb): ?>
|
||||
<div class='crumb' data-dir='<?php echo $crumb["dir"];?>'>
|
||||
<div class='crumb' data-dir='<?php echo $crumb["dir"];?>' style='background-image:url("<?php echo image_path('core','breadcrumb-divider.png');?>")'>
|
||||
<a href="<?php echo link_to("files", "index.php?dir=".$crumb["dir"]); ?>"><?php echo htmlspecialchars($crumb["name"]); ?></a>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
|
@ -1,19 +1,25 @@
|
|||
<?php foreach($_['files'] as $file):
|
||||
<?php if(!$_['files']) echo '<span id="emptyfolder">Nothing in here. Upload something!</span><style>.file_upload_filename { background-color:#ffc100; border:#dda600 1px solid; }</style>';
|
||||
foreach($_['files'] as $file):
|
||||
$simple_file_size = simple_file_size($file['size']);
|
||||
$simple_size_color = 200-intval(pow(($file['size']/(1024*1024)),2)); ?>
|
||||
<tr data-file="<?php echo $file['name'];?>" data-type="<?php echo ($file['type'] == 'dir')?'dir':'file'?>" data-mime="<?php echo $file['mime']?>">
|
||||
<td class="selection"><input type="checkbox" /></td>
|
||||
$simple_size_color = 200-intval($file['size']/(1024*1024)*5);
|
||||
if($simple_size_color<0) $simple_size_color = 0;
|
||||
$relative_modified_date = relative_modified_date($file['mtime']);
|
||||
$relative_date_color = round((time()-$file['mtime'])/60/60/24*7); //days ago
|
||||
if($relative_date_color>200) $relative_date_color = 200; ?>
|
||||
<tr data-file="<?php echo $file['name'];?>" data-type="<?php echo ($file['type'] == 'dir')?'dir':'file'?>" data-mime="<?php echo $file['mime']?>" data-size='<?php echo $file['size'];?>'>
|
||||
<td class="filename">
|
||||
<a style="background-image:url(<?php if($file['type'] == 'dir') echo mimetype_icon('dir'); else echo mimetype_icon($file['mime']); ?>)" href="<?php if($file['type'] == 'dir') echo link_to('files', 'index.php?dir='.$file['directory'].'/'.$file['name']); else echo link_to('files', 'download.php?file='.$file['directory'].'/'.$file['name']); ?>" title="">
|
||||
<input type="checkbox" />
|
||||
<a class="name" style="background-image:url(<?php if($file['type'] == 'dir') echo mimetype_icon('dir'); else echo mimetype_icon($file['mime']); ?>)" href="<?php if($file['type'] == 'dir') echo link_to('files', 'index.php?dir='.$file['directory'].'/'.$file['name']); else echo link_to('files', 'download.php?file='.$file['directory'].'/'.$file['name']); ?>" title="">
|
||||
<span class="nametext">
|
||||
<?php if($file['type'] == 'dir'):?>
|
||||
<strong><?php echo htmlspecialchars($file['name']);?></strong>
|
||||
<?php echo htmlspecialchars($file['name']);?>
|
||||
<?php else:?>
|
||||
<?php echo htmlspecialchars($file['basename']);?><span class='extention'><?php echo $file['extention'];?></span>
|
||||
<?php endif;?>
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td class="filesize" title="<?php echo human_file_size($file['size']); ?>" style="color:rgb(<?php echo $simple_size_color.','.$simple_size_color.','.$simple_size_color ?>)"><?php echo $simple_file_size; ?></td>
|
||||
<td class="date"><?php echo $file['date']; ?></td>
|
||||
<td class="fileaction"><a href="" title="+" class="dropArrow"></a></td>
|
||||
<td class="date"><span class="modified" title="<?php echo $file['date']; ?>" style="color:rgb(<?php echo $relative_date_color.','.$relative_date_color.','.$relative_date_color ?>)"><?php echo $relative_modified_date; ?></span></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
|
12
l10n/l10n.pl
|
@ -3,6 +3,7 @@ use strict;
|
|||
use Locale::PO;
|
||||
use Cwd;
|
||||
use Data::Dumper;
|
||||
use File::Path;
|
||||
|
||||
sub crawl{
|
||||
my( $dir ) = @_;
|
||||
|
@ -28,7 +29,7 @@ sub crawl{
|
|||
my $task = shift( @ARGV );
|
||||
my $place = '..';
|
||||
|
||||
die( "Usuage: l10n.pl task\ntask: read, write\n") unless $task && $place;
|
||||
die( "Usage: l10n.pl task\ntask: read, write\n" ) unless $task && $place;
|
||||
|
||||
# Our current position
|
||||
my $whereami = cwd();
|
||||
|
@ -38,6 +39,7 @@ die( "Program must be executed in a l10n-folder called 'l10n'" ) unless $wheream
|
|||
my @dirs = crawl( $place );
|
||||
|
||||
# Languages
|
||||
rmtree( 'templates' );
|
||||
mkdir( 'templates' ) unless -d 'templates';
|
||||
|
||||
my @languages = ();
|
||||
|
@ -55,13 +57,7 @@ if( $task eq 'read' ){
|
|||
my $app = pop( @temp );
|
||||
chdir( $dir );
|
||||
my $output = "${whereami}/templates/$app.pot";
|
||||
|
||||
if( -e $output ){
|
||||
`xgettext --files-from=xgettextfiles --join-existing --output="$output" --keyword=t`
|
||||
}
|
||||
else{
|
||||
`xgettext --files-from=xgettextfiles --output="$output" --keyword=t`
|
||||
}
|
||||
`xgettext --files-from=xgettextfiles --output="$output" --keyword=t`;
|
||||
chdir( $whereami );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-07-27 08:52+0200\n"
|
||||
"POT-Creation-Date: 2011-07-27 12:03+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-07-27 08:52+0200\n"
|
||||
"POT-Creation-Date: 2011-07-27 12:03+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-07-27 08:52+0200\n"
|
||||
"POT-Creation-Date: 2011-07-27 12:03+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-07-27 08:52+0200\n"
|
||||
"POT-Creation-Date: 2011-07-27 12:03+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-07-27 08:52+0200\n"
|
||||
"POT-Creation-Date: 2011-07-27 12:03+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
48
lib/app.php
|
@ -158,7 +158,10 @@ class OC_APP{
|
|||
* the navigation. Lower values come first.
|
||||
*/
|
||||
public static function addNavigationEntry( $data ){
|
||||
// TODO: write function
|
||||
$data['active']=false;
|
||||
if(!isset($data['icon'])){
|
||||
$data['icon']='';
|
||||
}
|
||||
OC_APP::$navigation[] = $data;
|
||||
return true;
|
||||
}
|
||||
|
@ -184,6 +187,10 @@ class OC_APP{
|
|||
* the navigation. Lower values come first.
|
||||
*/
|
||||
public static function addNavigationSubEntry( $parent, $data ){
|
||||
$data['active']=false;
|
||||
if(!isset($data['icon'])){
|
||||
$data['icon']='';
|
||||
}
|
||||
if( !array_key_exists( $parent, self::$subnavigation )){
|
||||
self::$subnavigation[$parent] = array();
|
||||
}
|
||||
|
@ -310,32 +317,33 @@ class OC_APP{
|
|||
|
||||
/// Private foo
|
||||
private static function addSubNavigation( $list ){
|
||||
$found = false;
|
||||
foreach( self::$subnavigation as $parent => $selection ){
|
||||
foreach( $selection as $subentry ){
|
||||
if( $subentry['id'] == self::$activeapp ){
|
||||
if(isset(self::$subnavigation[self::$activeapp])){
|
||||
$subNav=self::$subnavigation[self::$activeapp];
|
||||
foreach( $list as &$naventry ){
|
||||
if( $naventry['id'] == self::$activeapp ){
|
||||
$naventry['active'] = true;
|
||||
$naventry['subnavigation'] = $subNav;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
foreach(self::$subnavigation as $parent=>$entries){
|
||||
$activeParent=false;
|
||||
foreach($entries as &$subNav){
|
||||
$subNav['active']=$subNav['id'] == self::$activeapp;
|
||||
if($subNav['active']){
|
||||
$activeParent=true;
|
||||
}
|
||||
}
|
||||
if($activeParent){
|
||||
foreach( $list as &$naventry ){
|
||||
if( $naventry['id'] == $parent ){
|
||||
$naventry['active'] = true;
|
||||
$naventry['subnavigation'] = $selection;
|
||||
}
|
||||
else{
|
||||
$naventry['active'] = false;
|
||||
}
|
||||
} unset( $naventry );
|
||||
$found = true;
|
||||
$naventry['subnavigation'] = $entries;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Mark subentry as active
|
||||
foreach( $list as &$naventry ){
|
||||
if( $naventry['active'] ){
|
||||
foreach( $naventry['subnavigation'] as &$subnaventry ){
|
||||
$subnaventry['active'] = $subnaventry['id'] == self::$activeapp? true : false;
|
||||
} unset( $subnaventry );
|
||||
}
|
||||
} unset( $naventry );
|
||||
|
||||
return $list;
|
||||
}
|
||||
|
|
|
@ -110,6 +110,3 @@ OC_UTIL::addStyle( "styles" );
|
|||
if(!$error and !$RUNTIME_NOAPPS ){
|
||||
OC_APP::loadApps();
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
|
|
@ -58,5 +58,3 @@ class OC_FILESTORAGE{
|
|||
public function search($query){}
|
||||
public function getLocalFile($path){}// get a path to a local version of the file, whether the original file is local or remote
|
||||
}
|
||||
|
||||
?>
|
|
@ -138,7 +138,7 @@ class OC_FILESTORAGE_LOCAL extends OC_FILESTORAGE{
|
|||
} else if (function_exists("mime_content_type")) {
|
||||
// use mime magic extension if available
|
||||
$mime_type = mime_content_type($this->datadir.$fspath);
|
||||
} else if (self::canExecute("file")) {
|
||||
} else if (OC_HELPER::canExecute("file")) {
|
||||
// it looks like we have a 'file' command,
|
||||
// lets see it it does have mime support
|
||||
$fp = popen("file -i -b '{$this->datadir}$fspath' 2>/dev/null", "r");
|
||||
|
@ -161,62 +161,6 @@ class OC_FILESTORAGE_LOCAL extends OC_FILESTORAGE{
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* detect if a given program is found in the search PATH
|
||||
*
|
||||
* helper function used by _mimetype() to detect if the
|
||||
* external 'file' utility is available
|
||||
*
|
||||
* @param string program name
|
||||
* @param string optional search path, defaults to $PATH
|
||||
* @return bool true if executable program found in path
|
||||
*/
|
||||
private function canExecute($name, $path = false)
|
||||
{
|
||||
// path defaults to PATH from environment if not set
|
||||
if ($path === false) {
|
||||
$path = getenv("PATH");
|
||||
}
|
||||
|
||||
// check method depends on operating system
|
||||
if (!strncmp(PHP_OS, "WIN", 3)) {
|
||||
// on Windows an appropriate COM or EXE file needs to exist
|
||||
$exts = array(".exe", ".com");
|
||||
$check_fn = "file_exists";
|
||||
} else {
|
||||
// anywhere else we look for an executable file of that name
|
||||
$exts = array("");
|
||||
$check_fn = "is_executable";
|
||||
}
|
||||
|
||||
// Default check will be done with $path directories :
|
||||
$dirs = explode(PATH_SEPARATOR, $path);
|
||||
|
||||
// WARNING : We have to check if open_basedir is enabled :
|
||||
$obd = ini_get('open_basedir');
|
||||
|
||||
if($obd != "none")
|
||||
$obd_values = explode(PATH_SEPARATOR, $obd);
|
||||
|
||||
if(count($obd_values) > 0)
|
||||
{
|
||||
// open_basedir is in effect !
|
||||
// We need to check if the program is in one of these dirs :
|
||||
$dirs = $obd_values;
|
||||
}
|
||||
|
||||
foreach($dirs as $dir)
|
||||
{
|
||||
foreach($exts as $ext)
|
||||
{
|
||||
if($check_fn("$dir/$name".$ext))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function toTmpFile($path){
|
||||
$tmpFolder=sys_get_temp_dir();
|
||||
$filename=tempnam($tmpFolder,'OC_TEMP_FILE_'.substr($path,strrpos($path,'.')));
|
||||
|
@ -411,4 +355,3 @@ class OC_FILESTORAGE_LOCAL extends OC_FILESTORAGE{
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -110,6 +110,11 @@ class OC_HELPER {
|
|||
if( file_exists( "$SERVERROOT/core/img/mimetypes/$mimetype.png" )){
|
||||
return "$WEBROOT/core/img/mimetypes/$mimetype.png";
|
||||
}
|
||||
//try only the first part of the mimetype
|
||||
$mimetype=substr($mimetype,0,strpos($mimetype,'-'));
|
||||
if( file_exists( "$SERVERROOT/core/img/mimetypes/$mimetype.png" )){
|
||||
return "$WEBROOT/core/img/mimetypes/$mimetype.png";
|
||||
}
|
||||
else{
|
||||
return "$WEBROOT/core/img/mimetypes/file.png";
|
||||
}
|
||||
|
@ -267,6 +272,51 @@ class OC_HELPER {
|
|||
if((isset($_REQUEST[$s]) && $_REQUEST[$s]==$v) || $v == $d)
|
||||
print "checked=\"checked\" ";
|
||||
}
|
||||
|
||||
/**
|
||||
* detect if a given program is found in the search PATH
|
||||
*
|
||||
* @param string program name
|
||||
* @param string optional search path, defaults to $PATH
|
||||
* @return bool true if executable program found in path
|
||||
*/
|
||||
public static function canExecute($name, $path = false){
|
||||
// path defaults to PATH from environment if not set
|
||||
if ($path === false) {
|
||||
$path = getenv("PATH");
|
||||
}
|
||||
// check method depends on operating system
|
||||
if (!strncmp(PHP_OS, "WIN", 3)) {
|
||||
// on Windows an appropriate COM or EXE file needs to exist
|
||||
$exts = array(".exe", ".com");
|
||||
$check_fn = "file_exists";
|
||||
} else {
|
||||
// anywhere else we look for an executable file of that name
|
||||
$exts = array("");
|
||||
$check_fn = "is_executable";
|
||||
}
|
||||
// Default check will be done with $path directories :
|
||||
$dirs = explode(PATH_SEPARATOR, $path);
|
||||
// WARNING : We have to check if open_basedir is enabled :
|
||||
$obd = ini_get('open_basedir');
|
||||
if($obd != "none")
|
||||
$obd_values = explode(PATH_SEPARATOR, $obd);
|
||||
if(count($obd_values) > 0 and $obd_values[0])
|
||||
{
|
||||
// open_basedir is in effect !
|
||||
// We need to check if the program is in one of these dirs :
|
||||
$dirs = $obd_values;
|
||||
}
|
||||
foreach($dirs as $dir)
|
||||
{
|
||||
foreach($exts as $ext)
|
||||
{
|
||||
if($check_fn("$dir/$name".$ext))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -51,7 +51,7 @@ class OC_LOG {
|
|||
* This function adds another entry to the log database
|
||||
*/
|
||||
public static function add( $appid, $subject, $predicate, $object = ' ' ){
|
||||
$query=OC_DB::prepare("INSERT INTO *PREFIX*log(moment,appid,user,action,info) VALUES(NOW(),?,?,?,?)");
|
||||
$query=OC_DB::prepare("INSERT INTO `*PREFIX*log`(moment,appid,user,action,info) VALUES(NOW(),?,?,?,?)");
|
||||
$result=$query->execute(array($appid,$subject,$predicate,$object));
|
||||
// Die if we have an error
|
||||
if( PEAR::isError($result)) {
|
||||
|
@ -79,7 +79,7 @@ class OC_LOG {
|
|||
* - app: only entries for this app
|
||||
*/
|
||||
public static function get( $filter = array()){
|
||||
$queryString='SELECT * FROM *PREFIX*log WHERE 1=1 ORDER BY moment DESC';
|
||||
$queryString='SELECT * FROM `*PREFIX*log` WHERE 1=1 ORDER BY moment DESC';
|
||||
$params=array();
|
||||
if(isset($filter['from'])){
|
||||
$queryString.='AND moment>? ';
|
||||
|
@ -116,7 +116,7 @@ class OC_LOG {
|
|||
* This function deletes all entries that are older than $date.
|
||||
*/
|
||||
public static function deleteBefore( $date ){
|
||||
$query=OC_DB::prepare("DELETE FROM *PREFIX*log WHERE moment<?");
|
||||
$query=OC_DB::prepare("DELETE FROM `*PREFIX*log` WHERE moment<?");
|
||||
$query->execute(array($date));
|
||||
return true;
|
||||
}
|
||||
|
@ -128,7 +128,7 @@ class OC_LOG {
|
|||
* This function deletes all log entries.
|
||||
*/
|
||||
public static function deleteAll(){
|
||||
$query=OC_DB::prepare("DELETE FROM *PREFIX*log");
|
||||
$query=OC_DB::prepare("DELETE FROM `*PREFIX*log`");
|
||||
$query->execute();
|
||||
return true;
|
||||
}
|
||||
|
|
76
lib/ocs.php
|
@ -463,7 +463,6 @@ class OC_OCS {
|
|||
$xml[$i]['key']=$log['key'];
|
||||
$xml[$i]['app']=$log['app'];
|
||||
$xml[$i]['value']=$log['value'];
|
||||
$xml[$i]['timestamp']=$log['timestamp'];
|
||||
}
|
||||
|
||||
|
||||
|
@ -511,28 +510,26 @@ class OC_OCS {
|
|||
* @param bool $like use LIKE instead of = when comparing keys
|
||||
* @return array
|
||||
*/
|
||||
public static function getData($user,$app="",$key="",$like=false) {
|
||||
$key="$user::$key";//ugly hack for the sake of keeping database scheme compatibiliy, needs to be replaced with a seperate user field the next time we break db compatibiliy
|
||||
$compareFunction=($like)?'LIKE':'=';
|
||||
|
||||
public static function getData($user,$app="",$key="") {
|
||||
if($app){
|
||||
if (!trim($key)) {
|
||||
$query = OC_DB::prepare('select app, `key`,value,`timestamp` from *PREFIX*privatedata where app=? order by `timestamp` desc');
|
||||
$result=$query->execute(array($app))->fetchAll();
|
||||
} else {
|
||||
$query = OC_DB::prepare("select app, `key`,value,`timestamp` from *PREFIX*privatedata where app=? and `key` $compareFunction ? order by `timestamp` desc");
|
||||
$result=$query->execute(array($app,$key))->fetchAll();
|
||||
}
|
||||
$apps=array($app);
|
||||
}else{
|
||||
if (!trim($key)) {
|
||||
$query = OC_DB::prepare('select app, `key`,value,`timestamp` from *PREFIX*privatedata order by `timestamp` desc');
|
||||
$result=$query->execute()->fetchAll();
|
||||
} else {
|
||||
$query = OC_DB::prepare("select app, `key`,value,`timestamp` from *PREFIX*privatedata where `key` $compareFunction ? order by `timestamp` desc");
|
||||
$result=$query->execute(array($key))->fetchAll();
|
||||
$apps=OC_PREFERENCES::getApps($user);
|
||||
}
|
||||
if($key){
|
||||
$keys=array($key);
|
||||
}else{
|
||||
foreach($apps as $app){
|
||||
$keys=OC_PREFERENCES::getKeys($user,$app);
|
||||
}
|
||||
}
|
||||
$result=array();
|
||||
foreach($apps as $app){
|
||||
foreach($keys as $key){
|
||||
$value=OC_PREFERENCES::getValue($user,$app,$key);
|
||||
$result[]=array('app'=>$app,'key'=>$key,'value'=>$value);
|
||||
}
|
||||
}
|
||||
$result=self::trimKeys($result,$user);
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
@ -545,25 +542,7 @@ class OC_OCS {
|
|||
* @return bool
|
||||
*/
|
||||
public static function setData($user, $app, $key, $value) {
|
||||
$key="$user::$key";//ugly hack for the sake of keeping database scheme compatibiliy
|
||||
//TODO: locking tables, fancy stuff, error checking/handling
|
||||
$query=OC_DB::prepare("select count(*) as co from *PREFIX*privatedata where `key` = ? and app = ?");
|
||||
$result=$query->execute(array($key,$app))->fetchAll();
|
||||
$totalcount=$result[0]['co'];
|
||||
if ($totalcount != 0) {
|
||||
$query=OC_DB::prepare("update *PREFIX*privatedata set value=?, `timestamp` = now() where `key` = ? and app = ?");
|
||||
|
||||
} else {
|
||||
$result = OC_DB::prepare("insert into *PREFIX*privatedata(value, `key`, app, `timestamp`) values(?, ?, ?, now())");
|
||||
}
|
||||
$result = $query->execute(array($value,$key,$app));
|
||||
if (PEAR::isError($result)){
|
||||
$entry='DB Error: "'.$result->getMessage().'"<br />';
|
||||
error_log($entry);
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
return OC_PREFERENCES::setValue($user,$app,$key,$value);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -574,26 +553,7 @@ class OC_OCS {
|
|||
* @return string xml/json
|
||||
*/
|
||||
public static function deleteData($user, $app, $key) {
|
||||
$key="$user::$key";//ugly hack for the sake of keeping database scheme compatibiliy
|
||||
//TODO: prepared statements, locking tables, fancy stuff, error checking/handling
|
||||
$query=OC_DB::prepare("delete from *PREFIX*privatedata where `key` = ? and app = ?");
|
||||
$result = $query->execute(array($key,$app));
|
||||
if (PEAR::isError($result)){
|
||||
$entry='DB Error: "'.$result->getMessage().'"<br />';
|
||||
error_log($entry);
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
//trim username prefixes from $array
|
||||
private static function trimKeys($array,$user){
|
||||
$length=strlen("$user::");
|
||||
foreach($array as &$item){
|
||||
$item['key']=substr($item['key'],$length);
|
||||
}
|
||||
return $array;
|
||||
return OC_PREFERENCES::deleteKey($user,$app,$key);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -76,6 +76,7 @@ class OC_SETUP {
|
|||
//write the config file
|
||||
OC_CONFIG::setValue('datadirectory', $datadir);
|
||||
OC_CONFIG::setValue('dbtype', $dbtype);
|
||||
OC_CONFIG::setValue('version',implode('.',OC_UTIL::getVersion()));
|
||||
if($dbtype == 'mysql') {
|
||||
$dbuser = $options['dbuser'];
|
||||
$dbpass = $options['dbpass'];
|
||||
|
|
|
@ -75,6 +75,29 @@ function simple_file_size($bytes) {
|
|||
else { return number_format($mbytes, 1); }
|
||||
}
|
||||
|
||||
function relative_modified_date($timestamp) {
|
||||
$timediff = time() - $timestamp;
|
||||
$diffminutes = round($timediff/60);
|
||||
$diffhours = round($diffminutes/60);
|
||||
$diffdays = round($diffhours/24);
|
||||
$diffmonths = round($diffdays/31);
|
||||
$diffyears = round($diffdays/365);
|
||||
if($timediff < 60) { return 'seconds ago'; }
|
||||
else if($timediff < 120) { return '1 minute ago'; }
|
||||
else if($timediff < 3600) { return $diffminutes.' minutes ago'; }
|
||||
//else if($timediff < 7200) { return '1 hour ago'; }
|
||||
//else if($timediff < 86400) { return $diffhours.' hours ago'; }
|
||||
else if($timediff < 86400) { return 'today'; }
|
||||
else if($timediff < 172800) { return 'yesterday'; }
|
||||
else if($timediff < 2678400) { return $diffdays.' days ago'; }
|
||||
else if($timediff < 5184000) { return 'last month'; }
|
||||
//else if($timediff < 31556926) { return $diffmonths.' months ago'; }
|
||||
else if($timediff < 31556926) { return 'months ago'; }
|
||||
else if($timediff < 63113852) { return 'last year'; }
|
||||
else { return $diffyears.' years ago'; }
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This class provides the templates for owncloud.
|
||||
*/
|
||||
|
|
|
@ -82,7 +82,7 @@ class OC_UTIL {
|
|||
* @return array
|
||||
*/
|
||||
public static function getVersion(){
|
||||
return array(1,60,0);
|
||||
return array(1,90,0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -242,4 +242,3 @@ class OC_UTIL {
|
|||
return $errors;
|
||||
}
|
||||
}
|
||||
|
||||
|
|