diff --git a/.tx/config b/.tx/config index 55ae6df0f4..0648c8e09b 100644 --- a/.tx/config +++ b/.tx/config @@ -1,28 +1,31 @@ [main] host = https://www.transifex.net -[owncloud.admin] -file_filter = l10n//admin.po -source_file = l10n/templates/admin.pot -source_lang = en - [owncloud.core] file_filter = l10n//core.po +host = http://www.transifex.net source_file = l10n/templates/core.pot source_lang = en -[owncloud.help] -file_filter = l10n//help.po -source_file = l10n/templates/help.pot -source_lang = en - -[owncloud.log] -file_filter = l10n//log.po -source_file = l10n/templates/log.pot -source_lang = en - [owncloud.settings] file_filter = l10n//settings.po +host = http://www.transifex.net source_file = l10n/templates/settings.pot source_lang = en +[owncloud.files] +file_filter = translations/owncloud.files/.po +host = http://www.transifex.net +source_file = l10n/templates/files.pot +source_lang = en +trans.de = l10n/de/files.po +trans.fr = l10n/fr/files.po + +[owncloud.media] +file_filter = translations/owncloud.media/.po +host = http://www.transifex.net +source_file = l10n/templates/media.pot +source_lang = en +trans.de = l10n/de/media.po +trans.fr = l10n/fr/media.po + diff --git a/AUTHORS b/AUTHORS index 5f992b932e..02439884d2 100644 --- a/AUTHORS +++ b/AUTHORS @@ -4,13 +4,7 @@ ownCloud is written by: Jakob Sack Jan-Christoph Borchardt Michael Gapczynski - François Kubler - Kunal Ghosh - Antonio José Gallo Sánchez Arthur Schiwon - Kamil Domański - Aldo Giambelluca - Dominik Schmidt … With help from many libraries and frameworks including: diff --git a/admin/ajax/changepassword.php b/admin/ajax/changepassword.php deleted file mode 100644 index 98c2a8b37a..0000000000 --- a/admin/ajax/changepassword.php +++ /dev/null @@ -1,26 +0,0 @@ - "error", "data" => array( "message" => "Authentication error" ))); - exit(); -} - -$username = $_POST["username"]; -$password = $_POST["password"]; - -// Return Success story -if( OC_User::setPassword( $username, $password )){ - echo json_encode( array( "status" => "success", "data" => array( "username" => $username ))); -} -else{ - echo json_encode( array( "status" => "error", "data" => array( "message" => "Unable to change password" ))); -} - -?> diff --git a/admin/appinfo/app.php b/admin/appinfo/app.php deleted file mode 100644 index 80850638f7..0000000000 --- a/admin/appinfo/app.php +++ /dev/null @@ -1,5 +0,0 @@ - 1, "id" => "admin", "name" => "Administration" )); - -?> diff --git a/admin/css/apps.css b/admin/css/apps.css deleted file mode 100644 index 6106ff3f7e..0000000000 --- a/admin/css/apps.css +++ /dev/null @@ -1,3 +0,0 @@ -li{color:#888} -li.active{color:#000} -span.version{margin-left:3em;color:#ddd} diff --git a/admin/css/users.css b/admin/css/users.css deleted file mode 100644 index 977e06e41c..0000000000 --- a/admin/css/users.css +++ /dev/null @@ -1,13 +0,0 @@ -form { display:inline; } -td.name, td.password { padding-left:.8em; } -td.password>img, td.remove>img { display:none; cursor:pointer; } -td.password>span { margin-right:1.2em; } -td.password { width:12em; cursor:pointer; } - -td.remove { width:1em; } -tr:hover>td.password>span { margin:0; cursor:pointer; } -tr:hover>td.remove>img, tr:hover>td.password>img { display:inline; cursor:pointer; } -tr:hover>td.remove>img { float:right; } -li.selected { background-color:#ddd; } -#content>table { margin-top:6.5em; } -table { width:100%; } diff --git a/admin/l10n/da.php b/admin/l10n/da.php deleted file mode 100644 index 467c259dc3..0000000000 --- a/admin/l10n/da.php +++ /dev/null @@ -1,19 +0,0 @@ - "læs mere", -"INSTALL" => "INSTALLER", -"Apps Repository" => "Applikation arkiv", -"Cannot connect to apps repository" => "Kan ikke oprette forbindelse til applikations arkivet", -"Name" => "Navn", -"Modified" => "Ændret", -"Administration" => "Administration", -"System Settings" => "System indstillinger", -"Users" => "Brugere", -"Groups" => "Grupper", -"Password" => "Kodeord", -"remove" => "slet", -"Create group" => "Lav gruppe", -"Force new password:" => "Tving ny adgangskode", -"Set" => "Indstil", -"Do you really want to delete user" => "Vil du virkelig slette denne bruger?", -"Do you really want to delete group" => "Vil du virkelig slette denne gruppe?" -); diff --git a/admin/l10n/de.php b/admin/l10n/de.php deleted file mode 100644 index a1a0ec099e..0000000000 --- a/admin/l10n/de.php +++ /dev/null @@ -1,20 +0,0 @@ - "mehr …", -"INSTALL" => "Installieren", -"Apps Repository" => "Anwendungen", -"Cannot connect to apps repository" => "Verbindung fehlgeschlagen", -"Name" => "Name", -"Modified" => "Änderungsdatum", -"Administration" => "Verwaltung", -"System Settings" => "Systemeinstellungen", -"Users" => "Nutzer", -"Groups" => "Gruppen", -"Password" => "Passwort", -"Create" => "Erstellen", -"remove" => "entfernen", -"Create group" => "Gruppe erstellen", -"Force new password:" => "Neues Passwort:", -"Set" => "OK", -"Do you really want to delete user" => "Möchtest du den Nutzer wirklich entfernen?", -"Do you really want to delete group" => "Möchtest du die Gruppe wirklich entfernen?" -); diff --git a/admin/l10n/es.php b/admin/l10n/es.php deleted file mode 100644 index 5902eb2c24..0000000000 --- a/admin/l10n/es.php +++ /dev/null @@ -1,20 +0,0 @@ - "leer más", -"INSTALL" => "Instalar", -"Apps Repository" => "Repositorio de aplicaciones ", -"Cannot connect to apps repository" => "No se pudo conectar con el repositorio de aplicaciones", -"Name" => "Nombre", -"Modified" => "Modificado", -"Administration" => "Administración", -"System Settings" => "Ajustes del Sistema", -"Users" => "Usuarios", -"Groups" => "Grupos", -"Password" => "Contraseña", -"Create" => "Crear", -"remove" => "Eliminar", -"Create group" => "Crear grupo", -"Force new password:" => "Forzar una nueva contraseña", -"Set" => "Aplicar", -"Do you really want to delete user" => "¿Seguro que quieres eliminar este usuario?", -"Do you really want to delete group" => "¿Seguro que quieres eliminar este grupo?" -); diff --git a/admin/l10n/fr.php b/admin/l10n/fr.php deleted file mode 100644 index e8d41a4be7..0000000000 --- a/admin/l10n/fr.php +++ /dev/null @@ -1,20 +0,0 @@ - "en lire plus", -"INSTALL" => "INSTALLATION", -"Apps Repository" => "Répertoire d'applications", -"Cannot connect to apps repository" => "Impossible de se connecter au répertoire d'applications", -"Name" => "Nom", -"Modified" => "Modifié le", -"Administration" => "Administration", -"System Settings" => "Préférences Système", -"Users" => "Utilisateurs", -"Groups" => "Groupes", -"Password" => "Mot de passe", -"Create" => "Créer", -"remove" => "retirer", -"Create group" => "Créer un groupe", -"Force new password:" => "Forcer un nouveau mot de passe :", -"Set" => "Appliquer", -"Do you really want to delete user" => "Voulez-vous réellement supprimer cet utilisateur", -"Do you really want to delete group" => "Voulez-vous réellement supprimer ce groupe" -); diff --git a/admin/l10n/nl.php b/admin/l10n/nl.php deleted file mode 100644 index 138c95d2c9..0000000000 --- a/admin/l10n/nl.php +++ /dev/null @@ -1,19 +0,0 @@ - "Meer informatie", -"INSTALL" => "Installeer", -"Apps Repository" => "Applicatiedatabase", -"Cannot connect to apps repository" => "Kan geen verbinding maken met de applicatiedatabase", -"Name" => "Naam", -"Modified" => "Laatst aangepast", -"Administration" => "Administratie", -"System Settings" => "Systeeminstellingen", -"Users" => "Gebruikers", -"Groups" => "Groepen", -"Password" => "Wachtwoord", -"remove" => "verwijder", -"Create group" => "Groep aanmaken", -"Force new password:" => "Forceer nieuw wachtwoord:", -"Set" => "Ok", -"Do you really want to delete user" => "Wilt u deze gebruiker verwijderen", -"Do you really want to delete group" => "Wilt u deze groep verwijderen" -); diff --git a/admin/l10n/pl.php b/admin/l10n/pl.php deleted file mode 100644 index 169bb37b10..0000000000 --- a/admin/l10n/pl.php +++ /dev/null @@ -1,19 +0,0 @@ - "czytaj więcej", -"INSTALL" => "INSTALUJ", -"Apps Repository" => "Repozytorium aplikacji", -"Cannot connect to apps repository" => "Nie można połączyć się z repozytorium aplikacji", -"Name" => "Nazwa", -"Modified" => "Zmodyfikowano", -"Administration" => "Administracja", -"System Settings" => "Ustawienia systemowe", -"Users" => "Użytkownicy", -"Groups" => "Grupy", -"Password" => "Hasło", -"remove" => "usuń", -"Create group" => "Utwórz grupę", -"Force new password:" => "Wymuś nowe hasło", -"Set" => "Ustaw", -"Do you really want to delete user" => "Czy naprawdę chcesz usunąć użytkownika", -"Do you really want to delete group" => "Czy naprawdę chcesz usunąć grupę" -); diff --git a/admin/system.php b/admin/system.php deleted file mode 100644 index 42ae8a6c2d..0000000000 --- a/admin/system.php +++ /dev/null @@ -1,36 +0,0 @@ -. -* -*/ - -require_once('../lib/base.php'); -if( !OC_User::isLoggedIn() || !OC_Group::inGroup( OC_User::getUser(), 'admin' )){ - header( "Location: ".OC_Helper::linkTo( "", "index.php" )); - exit(); -} - -OC_App::setActiveNavigationEntry( "administration" ); - -$tmpl = new OC_Template( "admin", "system", "user" ); -$tmpl->printPage(); - -?> - diff --git a/admin/templates/system.php b/admin/templates/system.php deleted file mode 100644 index bbe4d2757a..0000000000 --- a/admin/templates/system.php +++ /dev/null @@ -1,2 +0,0 @@ -

t( 'System Settings' ); ?>

-#TBD diff --git a/apps/contacts/appinfo/app.php b/apps/contacts/appinfo/app.php index 4fbbd9c638..7ae6be5d6e 100644 --- a/apps/contacts/appinfo/app.php +++ b/apps/contacts/appinfo/app.php @@ -14,5 +14,5 @@ OC_App::addNavigationEntry( array( 'id' => 'contacts_index', 'order' => 10, 'href' => OC_Helper::linkTo( 'contacts', 'index.php' ), - 'icon' => OC_Helper::imagePath( 'admin', 'users.svg' ), + 'icon' => OC_Helper::imagePath( 'settings', 'users.svg' ), 'name' => 'Contacts' )); diff --git a/apps/contacts/templates/part.details.php b/apps/contacts/templates/part.details.php index 4277357b75..119c88486a 100644 --- a/apps/contacts/templates/part.details.php +++ b/apps/contacts/templates/part.details.php @@ -24,6 +24,6 @@
- - + +
diff --git a/apps/contacts/templates/part.property.php b/apps/contacts/templates/part.property.php index 0658726920..cdb0306812 100644 --- a/apps/contacts/templates/part.property.php +++ b/apps/contacts/templates/part.property.php @@ -3,27 +3,27 @@
t('Name'); ?>
- +
t('Birthday'); ?>
l('date',new DateTime($_['property']['value'])); ?> - +
t('Organisation'); ?>
- - + +
t('Email'); ?>
- - + +
t('Telephone'); ?>
@@ -32,8 +32,8 @@ (t('tel_'.strtolower($_['property']['parameters']['TYPE'])); ?>) - - + +
@@ -51,8 +51,8 @@ t('Region'); ?>
t('Postal Code'); ?>
t('Country'); ?> - - + +
diff --git a/apps/media/css/music.css b/apps/media/css/music.css index f9c3b955d6..f8e41064fd 100644 --- a/apps/media/css/music.css +++ b/apps/media/css/music.css @@ -1,16 +1,16 @@ -#folderlist li{list-style-type:none;margin-bottom:10px;} -#folderlist button.prettybutton{font-size:1em;width:10ex;} -li button.right.prettybutton{font-size:1em;} -#collection{padding-top:1em;position:relative;width:70ex;float:left;} -#collection li.album,#collection li.song{margin-left:3ex;} +#folderlist li { margin-bottom:1em; } +#folderlist button.prettybutton { font-size:1em; width:10em; } +li button.right.prettybutton { font-size:1em; } +#collection { padding-top:1em; position:relative; width:70em; float:left; } +#collection li.album,#collection li.song { margin-left:3em; } #leftcontent img.remove { display:none; float:right; cursor:pointer; } #leftcontent li:hover img.remove { display:inline; } -#collection li button{float:right;} -#collection li,#playlist li{list-style-type:none;} -.template{display:none} +#collection li button { float:right; } +#collection li,#playlist li { list-style-type:none; } +.template { display:none; } -#collection li{padding-right:10px;} -#searchresults input.play, #searchresults input.add{float:right; height:16px; width:16px;} -#collection tr.collapsed td.album, #collection tr.collapsed td.title{color:#ddd} -a.expander{ float:right; display:block; } -tr.active { background-color:#ccc; } +#collection li { padding-right:10px; } +#searchresults input.play, #searchresults input.add { float:left; height:1em; width:1em; } +#collection tr.collapsed td.album, #collection tr.collapsed td.title { color:#ddd; } +a.expander { float:right; display:block; } +tr.active { background-color:#eee; } diff --git a/apps/media/css/player.css b/apps/media/css/player.css index 42ef219994..98a76e82f0 100644 --- a/apps/media/css/player.css +++ b/apps/media/css/player.css @@ -1,25 +1,16 @@ -#controls ul.jp-controls{list-style-type:none;padding:0;} -#controls ul.jp-controls li{display:inline;} -#controls ul.jp-controls a{position:absolute;overflow:hidden;text-indent:-9999px;} -a.jp-play,a.jp-pause{width:3.1em;height:3.1em;z-index:1;top:0;left:3.8em;} -a.jp-play{background:url("../img/jplayer.blue.monday.png") 0 0 no-repeat;} -a.jp-play:hover{background:url("../img/jplayer.blue.monday.png") -41px 0 no-repeat;} -a.jp-pause{background:url("../img/jplayer.blue.monday.png") 0 -42px no-repeat;display:none;} -a.jp-pause:hover{background:url("../img/jplayer.blue.monday.png") -41px -42px no-repeat;} -a.jp-previous{left:20px;top:.5em;background:url("../img/jplayer.blue.monday.png") 0 -112px no-repeat;width:2.3em;height:2.3em;} -a.jp-previous:hover{background:url("../img/jplayer.blue.monday.png") -29px -112px no-repeat;} -a.jp-next{left:88px;top:.5em;background:url("../img/jplayer.blue.monday.png") 0 -141px no-repeat;width:2.3em;height:2.3em;} -a.jp-next:hover{background:url("../img/jplayer.blue.monday.png") -29px -141px no-repeat;} -div.jp-progress{position:absolute;overflow:hidden;background-color:#293b51;top:1em;left:10em;width:15em;height:1.2em;} -div.jp-seek-bar{background:url("../img/jplayer.blue.monday.png") 0 -202px repeat-x;width:0;height:100%;cursor:pointer;} -div.jp-play-bar{background:url("../img/jplayer.blue.monday.png") 0 -218px repeat-x;width:0;height:100%;} -div.jp-seeking-bg{background:url("../img/pbar-ani.gif");} -a.jp-mute,a.jp-unmute{height:1.2em;width:1.5em;top:1em;left:26em;} -a.jp-mute{background:url("../img/jplayer.blue.monday.png") 0 -186px no-repeat;} -a.jp-mute:hover{background:url("../img/jplayer.blue.monday.png") -19px -170px no-repeat;} -a.jp-unmute{background:url("../img/jplayer.blue.monday.png") 0 -170px no-repeat;display:none;} -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:4em;height:0.4em;cursor:pointer;top:1.3em;left:28em;} -div.jp-volume-bar-value{background:url("../img/jplayer.blue.monday.png") 0 -256px repeat-x;width:0;height:0.4em;} -div.jp-current-time,div.jp-duration{position:absolute;font-size:.64em;font-style:oblique;top:1em;left:16.8em;width:22em;} -div.jp-duration{text-align:right;} +#controls ul.jp-controls { padding:0; } +#controls ul.jp-controls li { display:inline; } +#controls ul.jp-controls li a { position:absolute; padding:.8em 1em; } +a.jp-play, a.jp-pause { left:2.5em; } +a.jp-next { left:5em; } + +div.jp-progress { position:absolute; overflow:hidden; top:.5em; left:8em; width:15em; height:1.2em; padding:0; } +div.jp-seek-bar { background:#eee; width:0; height:100%; cursor:pointer; } +div.jp-play-bar { background:#ccc; width:0; height:100%; } +div.jp-seeking-bg { background:url("../img/pbar-ani.gif"); } +div.jp-current-time,div.jp-duration { position:absolute; font-size:.64em; font-style:oblique; top:1em; left:13.5em; width:22em; } +div.jp-duration { text-align:right; } + +a.jp-mute,a.jp-unmute { left:24em; } +div.jp-volume-bar { position:absolute; overflow:hidden; background:#eee; width:4em; height:0.4em; cursor:pointer; top:1.3em; left:27em; } +div.jp-volume-bar-value { background:#ccc; width:0; height:0.4em; } diff --git a/apps/media/js/collection.js b/apps/media/js/collection.js index 8ef10951b6..98d21b236e 100644 --- a/apps/media/js/collection.js +++ b/apps/media/js/collection.js @@ -34,7 +34,7 @@ Collection={ } if(collection.length==0){ $('#scan input.start').val(t('media','Scan Collection')); - $('#plugins a[href="#collection"]').trigger('click'); + $('#scan input.start').click(); } } diff --git a/apps/media/js/player.js b/apps/media/js/player.js index d37196a89f..0b0502c778 100644 --- a/apps/media/js/player.js +++ b/apps/media/js/player.js @@ -204,4 +204,7 @@ $(document).ready(function(){ $(window).bind('beforeunload', function (){ PlayList.save(); }); + + $('jp-previous').tipsy({gravity:'n', fade:true, live:true}); + $('jp-next').tipsy({gravity:'n', fade:true, live:true}); }) diff --git a/apps/media/js/playlist.js b/apps/media/js/playlist.js index 778939db01..cb7f24522a 100644 --- a/apps/media/js/playlist.js +++ b/apps/media/js/playlist.js @@ -5,7 +5,7 @@ PlayList.render=function(){ var item=PlayList.items[i]; var li=$('
  • '); li.append(item.name); - var img=$(''); + var img=$(''); img.click(function(event){ event.stopPropagation(); PlayList.remove($(this).parent().data('index')); diff --git a/apps/media/l10n/de.php b/apps/media/l10n/de.php new file mode 100644 index 0000000000..9f664b78d8 --- /dev/null +++ b/apps/media/l10n/de.php @@ -0,0 +1,9 @@ + "Musik", +"Songs scanned" => "Lieder gescannt", +"Rescan Collection" => "Sammlung scannen", +"Pause" => "Pause", +"Artist" => "Künstler", +"Album" => "Album", +"Title" => "Titel" +); diff --git a/apps/media/l10n/fr.php b/apps/media/l10n/fr.php new file mode 100644 index 0000000000..619ee9bc83 --- /dev/null +++ b/apps/media/l10n/fr.php @@ -0,0 +1,9 @@ + "Musique", +"Songs scanned" => "Pistes scannées", +"Rescan Collection" => "Réanalyser la Collection", +"Pause" => "Pause", +"Artist" => "Artiste", +"Album" => "Album", +"Title" => "Titre" +); diff --git a/apps/media/templates/music.php b/apps/media/templates/music.php index a89c5421b4..3cbb1c50a9 100644 --- a/apps/media/templates/music.php +++ b/apps/media/templates/music.php @@ -1,22 +1,23 @@
    + + - - +
    @@ -24,10 +25,11 @@
    - -
    + +
    +
    diff --git a/apps/user_openid/js/settings.js b/apps/user_openid/js/settings.js index b85ce2d352..cfecd7b1cb 100644 --- a/apps/user_openid/js/settings.js +++ b/apps/user_openid/js/settings.js @@ -1,5 +1,5 @@ $(document).ready(function(){ - $('#openidform input').blur(function(event){ + $('#openidform #identity').blur(function(event){ event.preventDefault(); var post = $( "#openidform" ).serialize(); $.post( 'ajax/openid.php', post, function(data){ @@ -9,4 +9,12 @@ $(document).ready(function(){ } }); }); + + // reset value when edited, workaround because of .select() not working with disabled inputs + $('#openid').focus(function(event){ + openidValue = $('#openid').val(); + }); + $('#openid').blur(function(event){ + $('#openid').val(openidValue); + }); }); diff --git a/apps/user_openid/templates/settings.php b/apps/user_openid/templates/settings.php index fff1eff09e..51c80e566b 100644 --- a/apps/user_openid/templates/settings.php +++ b/apps/user_openid/templates/settings.php @@ -1,6 +1,8 @@ -
    - t( 'OpenID' );?> - +
    + + + +
    - \ No newline at end of file + diff --git a/core/ajax/validateuser.php b/core/ajax/validateuser.php new file mode 100644 index 0000000000..967a5184a2 --- /dev/null +++ b/core/ajax/validateuser.php @@ -0,0 +1,57 @@ +. +* +*/ + +header("Content-Type: application/jsonrequest"); + +$RUNTIME_NOAPPS = TRUE; //no apps, yet + +require_once('../../lib/base.php'); + +$not_installed = !OC_Config::getValue('installed', false); + +// First step : check if the server is correctly configured for ownCloud : +$errors = OC_Util::checkServer(); +if(count($errors) > 0) { + echo json_encode(array("user_valid" => "false", "comment" => $errors)); +} + +// Setup required : +elseif($not_installed) { + echo json_encode(array("user_valid" => "false", "comment" => "not_installed")); + +} + +// Someone wants to check a user: +elseif(isset($_GET["user"]) and isset($_GET["password"])) { + if(OC_User::checkPassword($_GET["user"], $_GET["password"])) + echo json_encode(array("user_valid" => "true", "comment" => "")); + else + echo json_encode(array("user_valid" => "false", "comment" => "")); +} + +// For all others cases: +else { + echo json_encode(array("user_valid" => "false", "comment" => "unknown")); +} + +?> diff --git a/core/css/jquery-tipsy.css b/core/css/jquery-tipsy.css index 5075f41c9f..957385a269 100644 --- a/core/css/jquery-tipsy.css +++ b/core/css/jquery-tipsy.css @@ -1,7 +1,25 @@ -.tipsy { padding: 5px; font-size: 10px; opacity: 0.8; filter: alpha(opacity=80); background-repeat: no-repeat; background-image: url(../img/jquery-tipsy.gif); } - .tipsy-inner { padding: 5px 8px 4px 8px; background-color: black; color: white; max-width: 200px; text-align: center; } - .tipsy-inner { -moz-border-radius:3px; -webkit-border-radius:3px; } - .tipsy-north { background-position: top center; } - .tipsy-south { background-position: bottom center; } - .tipsy-east { background-position: right center; } - .tipsy-west { background-position: left center; } +.tipsy { font-size:10px; position:absolute; padding:5px; z-index:100000; } +.tipsy-inner { background-color:#000; color:#FFF; max-width:200px; padding:5px 8px 4px 8px; text-align:center; } + +/* Rounded corners */ +.tipsy-inner { border-radius:3px; -moz-border-radius:3px; -webkit-border-radius:3px; } + +/* Uncomment for shadow */ +/*.tipsy-inner { box-shadow:0 0 5px #000000; -webkit-box-shadow:0 0 5px #000000; -moz-box-shadow:0 0 5px #000000; }*/ + +.tipsy-arrow { position:absolute; width:0; height:0; border:5px solid transparent; } + +/* Rules to colour arrows */ +.tipsy-arrow-n { border-bottom-color:#000; } +.tipsy-arrow-s { border-top-color:#000; } +.tipsy-arrow-e { border-left-color:#000; } +.tipsy-arrow-w { border-right-color:#000; } + +.tipsy-n .tipsy-arrow, .tipsy-nw .tipsy-arrow, .tipsy-ne .tipsy-arrow { top:0; border-top:none; } +.tipsy-s .tipsy-arrow, .tipsy-sw .tipsy-arrow, .tipsy-se .tipsy-arrow { bottom:0; border-bottom:none; } +.tipsy-n .tipsy-arrow, .tipsy-s .tipsy-arrow { left:50%; margin-left:-5px; } +.tipsy-nw .tipsy-arrow, .tipsy-sw .tipsy-arrow { left:10px; } +.tipsy-ne .tipsy-arrow, .tipsy-se .tipsy-arrow { right:10px; } +.tipsy-e .tipsy-arrow, .tipsy-w .tipsy-arrow { top:50%; margin-top:-5px; } +.tipsy-e .tipsy-arrow { right:0; border-right:none; } +.tipsy-w .tipsy-arrow { left:0; border-left:none; } diff --git a/core/css/multiselect.css b/core/css/multiselect.css index d78dede95c..22e5098d3b 100644 --- a/core/css/multiselect.css +++ b/core/css/multiselect.css @@ -1,6 +1,6 @@ -ul.multiselectoptions { z-index:49; position:absolute; background-color:#fff; padding-top:.5em; border-bottom-left-radius:.5em; border-bottom-right-radius:.5em; border:1px solid #ddd; border-top:none; } +ul.multiselectoptions { z-index:49; position:absolute; background-color:#fff; padding-top:.5em; border:1px solid #ddd; border-top:none; -moz-border-radius-bottomleft:.5em; -webkit-border-bottom-left-radius:.5em; border-bottom-left-radius:.5em; -moz-border-radius-bottomright:.5em; -webkit-border-bottom-right-radius:.5em; border-bottom-right-radius:.5em; -moz-box-shadow:0 1px 1px #ddd; -webkit-box-shadow:0 1px 1px #ddd; box-shadow:0 1px 1px #ddd; } div.multiselect { padding-right:.6em; display:inline; position:relative; display:inline-block } div.multiselect.active { background-color:#fff; border-bottom:none; border-bottom-left-radius:0; border-bottom-right-radius:0; z-index:50; position:relative } -div.multiselect>span:first-child { margin-right:2em; } +div.multiselect>span:first-child { margin-right:2em; float:left; } div.multiselect>span:last-child { float:right; position:relative } ul.multiselectoptions input.new{ margin:0; padding-bottom:0.2em; padding-top:0.2em; border-top-left-radius:0; border-top-right-radius:0; } diff --git a/core/css/styles.css b/core/css/styles.css index ff12ab1e07..d1a7515bb8 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -2,16 +2,16 @@ This file is licensed under the Affero General Public License version 3 or later. See the COPYING-README file. */ -html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section { margin:0; padding:0; border:0; outline:0; font-weight:inherit; font-style:inherit; font-size:100%; font-family:inherit; vertical-align:baseline; cursor:default; } +html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section { margin:0; padding:0; border:0; outline:0; font-weight:inherit; font-size:100%; font-family:inherit; vertical-align:baseline; cursor:default; } article, aside, dialog, figure, footer, header, hgroup, nav, section { display:block; } body { line-height:1.5; } table { border-collapse:separate; border-spacing:0; white-space:nowrap; } caption, th, td { text-align:left; font-weight:normal; } table, td, th { vertical-align:middle; } a { border:0; color:#000; text-decoration:none;} -a, a *, input, input *, select, .button span, li { cursor:pointer; } +a, a *, input, input *, select, .button span, li, label { cursor:pointer; } ul { list-style:none; } -body { background:#fefefe; font:normal 80%/1.6em "Lucida Grande", Arial, Verdana, sans-serif; color:#000; margin-bottom:2em; } +body { background:#fefefe; font:normal .8em/1.6em "Lucida Grande", Arial, Verdana, sans-serif; color:#000; } /* HEADERS */ @@ -28,16 +28,15 @@ background: linear-gradient(top, #35537a 0%,#1d2d42 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#35537a', endColorstr='#1d2d42',GradientType=0 ); /* IE6-9 */ } #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; } /* INPUTS */ input[type="text"], input[type="password"] { cursor:text; } -input, select, .button { font-size:1em; width:10em; margin:.3em; padding:.6em .5em .4em; background:#fff; color:#333; border:1px solid #ddd; -moz-box-shadow:0 1px 1px #fff, 0 2px 0 #bbb inset; -webkit-box-shadow:0 1px 1px #fff, 0 1px 0 #bbb inset; box-shadow:0 1px 1px #fff, 0 1px 0 #bbb inset; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em; } +input, select, .button, #quota, div.jp-progress { font-size:1em; width:10em; margin:.3em; padding:.6em .5em .4em; background:#fff; color:#333; border:1px solid #ddd; -moz-box-shadow:0 1px 1px #fff, 0 2px 0 #bbb inset; -webkit-box-shadow:0 1px 1px #fff, 0 1px 0 #bbb inset; box-shadow:0 1px 1px #fff, 0 1px 0 #bbb inset; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em; } input[type="text"], input[type="password"] { background:#f8f8f8; color:#555; cursor:text; } input[type="text"]:hover, input[type="text"]:focus, input[type="password"]:hover, input[type="password"]:focus { background:#fff; color:#333; } -input[type="submit"], input[type="button"], .button { width:auto; padding:.4em; border:1px solid #ddd; font-weight:bold; cursor:pointer; background:#f8f8f8; color:#555; text-shadow:#fff 0 1px 0; -moz-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; -webkit-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em; } +input[type="submit"], input[type="button"], .button, #quota, div.jp-progress { width:auto; padding:.4em; border:1px solid #ddd; font-weight:bold; cursor:pointer; background:#f8f8f8; color:#555; text-shadow:#fff 0 1px 0; -moz-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; -webkit-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em; } input[type="submit"]:hover, input[type="submit"]:focus, input[type="button"]:hover, input[type="button"]:focus, .button:hover { background:#fff; color:#333; } input[type="checkbox"] { width:auto; } @@ -49,18 +48,16 @@ radius:1em; border-radius:1em; } input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; -webkit-box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; } input[type="submit"].highlight{ background:#ffc100; border:1px solid #db0; text-shadow:#ffeedd 0 1px 0; -moz-box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #ffeedd inset; -webkit-box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #ffeedd inset; box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #ffeedd inset; } -form label { cursor:pointer; } -#body-settings fieldset { padding:1em; width:40em; margin:1em; -border:1px solid #ddd; font-weight:bold; background:#f2f2f2; color:#555; text-shadow:#fff 0 1px 0; -moz-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; -webkit-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em;} -legend { padding:.2em; font-size:1.2em; } -.template{display:none;} /* CONTENT ------------------------------------------------------------------ */ #controls { width:100%; top:3.5em; height:2.8em; margin:0; background:#f7f7f7; border-bottom:1px solid #eee; position:fixed; z-index:50; -moz-box-shadow:0 -3px 7px #000; -webkit-box-shadow:0 -3px 7px #000; box-shadow:0 -3px 7px #000; } #content { margin:3.5em 0 0 12.5em; padding-bottom:10em; } #leftcontent { position:absolute; top:6.4em; width:20em; background:#f8f8f8; height:100%; border-right:1px solid #ddd; } +#leftcontent li { padding:.3em .8em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; -webkit-transition:background-color 500ms; -moz-transition:background-color 500ms; -o-transition:background-color 500ms; transition:background-color 500ms; } +#leftcontent li:hover, #leftcontent li:active { background:#eee; } #rightcontent { position:absolute; top:6.4em; left:33em; } + /* LOG IN & INSTALLATION ------------------------------------------------------------ */ #body-login { background:#ddd; } #body-login p.info { width:16em; margin:2em auto; padding:1em; background:#eee; -moz-box-shadow:0 1px 0 #bbb inset; -webkit-box-shadow:0 1px 0 #bbb inset; box-shadow:0 1px 0 #bbb inset; -moz-border-radius:1em; -webkit-border-radius:1em; border-radius:1em; } @@ -84,7 +81,7 @@ legend { padding:.2em; font-size:1.2em; } /* NAVIGATION ------------------------------------------------------------- */ #navigation { position:fixed; top:3.5em; float:left; width:12.5em; padding:0; z-index:75; height:100%; background:#eee; border-right: 1px #ccc solid; -moz-box-shadow: -3px 0 7px #000; -webkit-box-shadow: -3px 0 7px #000; box-shadow: -3px 0 7px #000; } -#navigation a { display:block; padding:.6em .5em .4em 2.5em; background:#eee 1em center no-repeat; border-bottom:1px solid #ddd; border-top:1px solid #fff; text-decoration:none; font-size:1.2em; color:#666; text-shadow:#f8f8f8 0 1px 0; } +#navigation a { display:block; padding:.6em .5em .4em 2.5em; background:#eee 1em center no-repeat; border-bottom:1px solid #ddd; border-top:1px solid #fff; text-decoration:none; font-size:1.2em; color:#666; text-shadow:#f8f8f8 0 1px 0; -webkit-transition:background 300ms; -moz-transition:background 300ms; -o-transition:background 300ms; transition:background 300ms; } #navigation a.active, #navigation a:hover, #navigation a:focus { background-color:#dbdbdb; border-top:1px solid #d4d4d4; border-bottom:1px solid #ccc; color:#333; } #navigation a.active { background-color:#ddd; } #navigation #settings { position:absolute; bottom:3.5em; width:100%; } @@ -92,15 +89,22 @@ legend { padding:.2em; font-size:1.2em; } #expand+span { position:relative; bottom:.4em; left:.2em; font-size:1.2em; color:#666; text-shadow:#f8f8f8 0 1px 0; } #logout { position:absolute; right:0; top:0; padding:1.2em 2em .55em 1.2em; } -/* USER SETTINGS ------------------------------------------------------------ */ -#quota_indicator { margin:0 4em 1em 0; padding:0; border:1px solid #ccc; border-radius:10px; -webkit-border-radius:10px; -moz-border-radius:10px; } -#quota_indicator div { background:#76a9ea; border-radius:10px; -webkit-border-radius:10px; -moz-border-radius:10px; } + +/* VARIOUS REUSABLE SELECTORS */ +.hidden { display:none; } + +#notification { z-index:101; cursor:pointer; background-color:#fc4; border:0; padding:0 .7em .3em; display:block; position:fixed; left:50%; top:0; -moz-border-radius-bottomleft:1em; -webkit-border-bottom-left-radius:1em; border-bottom-left-radius:1em; -moz-border-radius-bottomright:1em; -webkit-border-bottom-right-radius:1em; border-bottom-right-radius:1em; } + +.action, .selectedActions a, #logout { opacity:.3; -webkit-transition:opacity 500ms; -moz-transition:opacity 500ms; -o-transition:opacity 500ms; transition:opacity 500ms; } +.action:hover, .selectedActions a:hover, #logout:hover { opacity:1; } + +table tr { -webkit-transition:background-color 500ms; -moz-transition:background-color 500ms; -o-transition:background-color 500ms; transition:background-color 500ms; } +tbody tr:hover, tr:active { background-color:#f8f8f8; } + +#body-settings .personalblock { padding:.5em 1em; margin:1em; background:#f8f8f8; color:#555; text-shadow:#fff 0 1px 0; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em;} +#body-settings div.personalblock:first-child { position:relative; margin-top:4.5em; padding:0; } + +#quota div, div.jp-play-bar, div.jp-seek-bar { padding:.6em 1em; background:#e6e6e6; font-weight:normal; white-space:nowrap; } +div.jp-play-bar, div.jp-seek-bar { padding:0; } li.error { width:640px; margin:4em auto; padding:1em 1em 1em 4em; background:#ffe .8em .8em no-repeat; border:1px solid #ccc; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; } -.hidden{ display:none; } -#notification{ z-index:101; cursor:pointer; background-color:#fc4; border:0; padding:0 .7em .3em; display:block; position:fixed; left:50%; top:0; --moz-border-radius-bottomleft:1em; -webkit-border-bottom-left-radius:1em; border-bottom-left-radius:1em; --moz-border-radius-bottomright:1em; -webkit-border-bottom-right-radius:1em; border-bottom-right-radius:1em; } - -.file_action, .selectedActions a, #logout { opacity:.5; } -.file_action:hover, .selectedActions a:hover, #logout:hover { opacity:1; } diff --git a/core/js/jquery-tipsy.js b/core/js/jquery-tipsy.js index 58d834771f..9567ed3bac 100644 --- a/core/js/jquery-tipsy.js +++ b/core/js/jquery-tipsy.js @@ -1,84 +1,194 @@ -// tipsy - Facebook-style tooltip plugin for jQuery -// (c) 2008-2009 Jason Frame (jason@onehackoranother.com) -// Released under The MIT License. +// tipsy, facebook style tooltips for jquery +// version 1.0.0a +// (c) 2008-2010 jason frame [jason@onehackoranother.com] +// released under the MIT license (function($) { - $.fn.tipsy = function(options) { - - options = $.extend({}, $.fn.tipsy.defaults, options); - - return this.each(function() { - - var opts = $.fn.tipsy.elementOptions(this, options); - - $(this).hover(function() { - - $.data(this, 'cancel.tipsy', true); - - var tip = $.data(this, 'active.tipsy'); - if (!tip) { - tip = $('
    '); - tip.css({position: 'absolute', zIndex: 100000}); - $.data(this, 'active.tipsy', tip); - } - - if ($(this).attr('title') || typeof($(this).attr('original-title')) != 'string') { - $(this).attr('original-title', $(this).attr('title') || '').removeAttr('title'); - } - - var title; - if (typeof opts.title == 'string') { - title = $(this).attr(opts.title == 'title' ? 'original-title' : opts.title); - } else if (typeof opts.title == 'function') { - title = opts.title.call(this); - } - - tip.find('.tipsy-inner')[opts.html ? 'html' : 'text'](title || opts.fallback); - - var pos = $.extend({}, $(this).offset(), {width: this.offsetWidth, height: this.offsetHeight}); - tip.get(0).className = 'tipsy'; // reset classname in case of dynamic gravity - tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).appendTo(document.body); - var actualWidth = tip[0].offsetWidth, actualHeight = tip[0].offsetHeight; - var gravity = (typeof opts.gravity == 'function') ? opts.gravity.call(this) : opts.gravity; - + + function maybeCall(thing, ctx) { + return (typeof thing == 'function') ? (thing.call(ctx)) : thing; + }; + + function Tipsy(element, options) { + this.$element = $(element); + this.options = options; + this.enabled = true; + this.fixTitle(); + }; + + Tipsy.prototype = { + show: function() { + var title = this.getTitle(); + if (title && this.enabled) { + var $tip = this.tip(); + + $tip.find('.tipsy-inner')[this.options.html ? 'html' : 'text'](title); + $tip[0].className = 'tipsy'; // reset classname in case of dynamic gravity + $tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).prependTo(document.body); + + var pos = $.extend({}, this.$element.offset(), { + width: this.$element[0].offsetWidth, + height: this.$element[0].offsetHeight + }); + + var actualWidth = $tip[0].offsetWidth, + actualHeight = $tip[0].offsetHeight, + gravity = maybeCall(this.options.gravity, this.$element[0]); + + var tp; switch (gravity.charAt(0)) { case 'n': - tip.css({top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-north'); + tp = {top: pos.top + pos.height + this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2}; break; case 's': - tip.css({top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-south'); + tp = {top: pos.top - actualHeight - this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2}; break; case 'e': - tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}).addClass('tipsy-east'); + tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth - this.options.offset}; break; case 'w': - tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}).addClass('tipsy-west'); + tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width + this.options.offset}; break; } - - if (opts.fade) { - tip.css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: 0.8}); - } else { - tip.css({visibility: 'visible'}); - } - - }, function() { - $.data(this, 'cancel.tipsy', false); - var self = this; - setTimeout(function() { - if ($.data(this, 'cancel.tipsy')) return; - var tip = $.data(self, 'active.tipsy'); - if (opts.fade) { - tip.stop().fadeOut(function() { $(this).remove(); }); + + if (gravity.length == 2) { + if (gravity.charAt(1) == 'w') { + tp.left = pos.left + pos.width / 2 - 15; } else { - tip.remove(); + tp.left = pos.left + pos.width / 2 - actualWidth + 15; } - }, 100); - - }); - - }); + } + + $tip.css(tp).addClass('tipsy-' + gravity); + $tip.find('.tipsy-arrow')[0].className = 'tipsy-arrow tipsy-arrow-' + gravity.charAt(0); + if (this.options.className) { + $tip.addClass(maybeCall(this.options.className, this.$element[0])); + } + + if (this.options.fade) { + $tip.stop().css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: this.options.opacity}); + } else { + $tip.css({visibility: 'visible', opacity: this.options.opacity}); + } + } + }, + hide: function() { + if (this.options.fade) { + this.tip().stop().fadeOut(function() { $(this).remove(); }); + } else { + this.tip().remove(); + } + }, + + fixTitle: function() { + var $e = this.$element; + if ($e.attr('title') || typeof($e.attr('original-title')) != 'string') { + $e.attr('original-title', $e.attr('title') || '').removeAttr('title'); + } + }, + + getTitle: function() { + var title, $e = this.$element, o = this.options; + this.fixTitle(); + var title, o = this.options; + if (typeof o.title == 'string') { + title = $e.attr(o.title == 'title' ? 'original-title' : o.title); + } else if (typeof o.title == 'function') { + title = o.title.call($e[0]); + } + title = ('' + title).replace(/(^\s*|\s*$)/, ""); + return title || o.fallback; + }, + + tip: function() { + if (!this.$tip) { + this.$tip = $('
    ').html('
    '); + } + return this.$tip; + }, + + validate: function() { + if (!this.$element[0].parentNode) { + this.hide(); + this.$element = null; + this.options = null; + } + }, + + enable: function() { this.enabled = true; }, + disable: function() { this.enabled = false; }, + toggleEnabled: function() { this.enabled = !this.enabled; } + }; + + $.fn.tipsy = function(options) { + + if (options === true) { + return this.data('tipsy'); + } else if (typeof options == 'string') { + var tipsy = this.data('tipsy'); + if (tipsy) tipsy[options](); + return this; + } + + options = $.extend({}, $.fn.tipsy.defaults, options); + + function get(ele) { + var tipsy = $.data(ele, 'tipsy'); + if (!tipsy) { + tipsy = new Tipsy(ele, $.fn.tipsy.elementOptions(ele, options)); + $.data(ele, 'tipsy', tipsy); + } + return tipsy; + } + + function enter() { + var tipsy = get(this); + tipsy.hoverState = 'in'; + if (options.delayIn == 0) { + tipsy.show(); + } else { + tipsy.fixTitle(); + setTimeout(function() { if (tipsy.hoverState == 'in') tipsy.show(); }, options.delayIn); + } + }; + + function leave() { + var tipsy = get(this); + tipsy.hoverState = 'out'; + if (options.delayOut == 0) { + tipsy.hide(); + } else { + setTimeout(function() { if (tipsy.hoverState == 'out') tipsy.hide(); }, options.delayOut); + } + }; + + if (!options.live) this.each(function() { get(this); }); + + if (options.trigger != 'manual') { + var binder = options.live ? 'live' : 'bind', + eventIn = options.trigger == 'hover' ? 'mouseenter' : 'focus', + eventOut = options.trigger == 'hover' ? 'mouseleave' : 'blur'; + this[binder](eventIn, enter)[binder](eventOut, leave); + } + + return this; + + }; + + $.fn.tipsy.defaults = { + className: null, + delayIn: 0, + delayOut: 0, + fade: false, + fallback: '', + gravity: 'n', + html: false, + live: false, + offset: 0, + opacity: 0.8, + title: 'title', + trigger: 'hover' }; // Overwrite this method to provide options on a per-element basis. @@ -89,14 +199,6 @@ return $.metadata ? $.extend({}, options, $(ele).metadata()) : options; }; - $.fn.tipsy.defaults = { - fade: false, - fallback: '', - gravity: 'n', - html: false, - title: 'title' - }; - $.fn.tipsy.autoNS = function() { return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n'; }; @@ -105,4 +207,35 @@ return $(this).offset().left > ($(document).scrollLeft() + $(window).width() / 2) ? 'e' : 'w'; }; + /** + * yields a closure of the supplied parameters, producing a function that takes + * no arguments and is suitable for use as an autogravity function like so: + * + * @param margin (int) - distance from the viewable region edge that an + * element should be before setting its tooltip's gravity to be away + * from that edge. + * @param prefer (string, e.g. 'n', 'sw', 'w') - the direction to prefer + * if there are no viewable region edges effecting the tooltip's + * gravity. It will try to vary from this minimally, for example, + * if 'sw' is preferred and an element is near the right viewable + * region edge, but not the top edge, it will set the gravity for + * that element's tooltip to be 'se', preserving the southern + * component. + */ + $.fn.tipsy.autoBounds = function(margin, prefer) { + return function() { + var dir = {ns: prefer[0], ew: (prefer.length > 1 ? prefer[1] : false)}, + boundTop = $(document).scrollTop() + margin, + boundLeft = $(document).scrollLeft() + margin, + $this = $(this); + + if ($this.offset().top < boundTop) dir.ns = 'n'; + if ($this.offset().left < boundLeft) dir.ew = 'w'; + if ($(window).width() + $(document).scrollLeft() - $this.offset().left < margin) dir.ew = 'e'; + if ($(window).height() + $(document).scrollTop() - $this.offset().top < margin) dir.ns = 's'; + + return dir.ns + (dir.ew ? dir.ew : ''); + } + }; + })(jQuery); diff --git a/core/js/js.js b/core/js/js.js index 677cd5fbb7..2f495321b8 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -298,10 +298,23 @@ $(document).ready(function(){ $('#settings #expanddiv').slideUp(); } }); - - $('.file_action').tipsy({gravity:'s', live:true}); - $('.selectedActions a').tipsy({gravity:'n', live:true}); - $('.selectedActions a.delete').tipsy({gravity: 'ne', live:true}); + + // all the tipsy stuff needs to be here (in reverse order) to work + $('.jp-controls .jp-previous').tipsy({gravity:'nw', fade:true, live:true}); + $('.jp-controls .jp-next').tipsy({gravity:'n', fade:true, live:true}); + $('.remove .action').tipsy({gravity:'se', fade:true, live:true}); + $('.date .action').tipsy({gravity:'se', fade:true, live:true}); + $('.action').tipsy({gravity:'s', fade:true, live:true}); + $('.selectedActions a.delete').tipsy({gravity: 'ne', fade:true, live:true}); + $('.selectedActions a').tipsy({gravity:'n', fade:true, live:true}); + $('.file_upload_button_wrapper').tipsy({gravity:'e', fade:true}); + $('td.filesize').tipsy({gravity:'s', fade:true, live:true}); + $('td .modified').tipsy({gravity:'s', fade:true, live:true}); + + $('input').tipsy({gravity:'w', fade:true}); + $('input[type=text]').focus(function(){ + this.select(); + }); }); if (!Array.prototype.map){ diff --git a/core/l10n/bg_BG.php b/core/l10n/bg_BG.php index bd9886fcd9..a23561e999 100644 --- a/core/l10n/bg_BG.php +++ b/core/l10n/bg_BG.php @@ -1,17 +1,14 @@ "Грешка 404, обклакът не намерен", -"Advanced" => "Разширено", -"Set where to store the data." => "Изберете къде да записва данните", -"Data directory:" => "Директория за данни:", -"SQLite" => "SQLite", -"Database name:" => "Име на базата:", -"Host:" => "хост:", -"Table prefix:" => "Префикс за таблиците:", -"Finish setup" => "Завършване на настройките", -"ownCloud is a personal cloud which runs on your own server.

    " => "ownCloud е персонален облак който работи от Ваш собствен сървър.

    ", "Login failed!" => "Входа пропадна!", -"You are logged out." => "Вие излязохте.", +"Database name" => "Име на базата", +"Advanced" => "Разширено", +"Host" => "хост", +"Table prefix" => "Префикс за таблиците", +"Data folder" => "Директория за данни", +"Finish setup" => "Завършване на настройките", +"Cloud not found" => "обклакът не намерен", +"is a personal cloud which runs on your own server" => "е персонален облак който работи от Ваш собствен сървър", "prev" => "пред.", "next" => "следващо", -"Search" => "Търсене" +"You are logged out." => "Вие излязохте." ); diff --git a/core/l10n/da.php b/core/l10n/da.php index 20d769f385..b10f6e19d1 100644 --- a/core/l10n/da.php +++ b/core/l10n/da.php @@ -1,17 +1,8 @@ "Fejl 404, Skyen kan ikke findes", -"Advanced" => "Avanceret", -"Set where to store the data." => "Indstil data mappe.", -"Data directory:" => "Data mappe:", -"SQLite" => "SQLite", -"Database name:" => "Database navn:", -"Host:" => "Host:", -"Table prefix:" => "Tabel prefix:", -"Finish setup" => "Afslut installation", -"ownCloud is a personal cloud which runs on your own server.

    " => "ownCloud er din personly sky der køre på din egen server.

    ", "Login failed!" => "Login mislykkedes", -"You are logged out." => "Du er nu logget ud", +"Advanced" => "Avanceret", +"Finish setup" => "Afslut installation", "prev" => "forrige", "next" => "næste", -"Search" => "Søg" +"You are logged out." => "Du er nu logget ud" ); diff --git a/core/l10n/de.php b/core/l10n/de.php index 9b5225dd0f..e6bc00513e 100644 --- a/core/l10n/de.php +++ b/core/l10n/de.php @@ -1,28 +1,24 @@ "Cloud konnte nicht gefunden werden.", -"ownCloud is your personal web storage." => "ownCloud ist dein persönlicher Online-Speicher.", -"Finish the setup by following the steps below." => "Die Installation ist fast abgeschlossen.", -"Create an admin account." => "Verwalter-Konto erstellen", +"Login failed!" => "Anmeldung fehlgeschlagen!", +"remember" => "merken", +"Create an admin account" => "Admin-Konto anlegen", "Username" => "Nutzername", "Password" => "Passwort", +"Configure the database" => "Datenbank einrichten", +"will be used" => "wird genutzt", +"Database user" => "Datenbanknutzer", +"Database password" => "Datenbankpasswort", +"Database name" => "Datenbankname", "Advanced" => "Erweitert", -"Set where to store the data." => "Speicherort der Daten", -"Data directory:" => "Datenverzeichnis:", -"Configure the database." => "Datenbank einrichten", -"SQLite will be used for the database. You have nothing to do." => "SQLite wird als Datenbank genutzt.", -"SQLite" => "SQLite", -"MySQL will be used for the database." => "MySQL wird als Datenbank genutzt.", -"MySQL username:" => "MySQL-Nutzername:", -"MySQL password:" => "MySQL-Passwort:", -"Database name:" => "Datenbankname:", -"Host:" => "Host:", -"Table prefix:" => "Tabellenpräfix:", +"Host" => "Host", +"Table prefix" => "Tabellenpräfix", +"Data folder" => "Datenverzeichnis", "Finish setup" => "Installation abschließen", -"ownCloud is a personal cloud which runs on your own server.

    " => "ownCloud ist ein privater Online-Speicher für deinen eigenen Server.

    ", -"Login failed!" => "Anmeldung fehlgeschlagen!", -"Remember login" => "Anmeldung merken", -"You are logged out." => "Erfolgreich abgemeldet.", +"Cloud not found" => "Cloud nicht verfügbar", +"is a personal cloud which runs on your own server" => "ist ein persönlicher Online-Speicher für deinen eigenen Server", "prev" => "Zurück", "next" => "Weiter", -"Search" => "Suchen" +"You are logged out." => "Erfolgreich abgemeldet.", +"Log out" => "Abmelden", +"Settings" => "Einstellungen" ); diff --git a/core/l10n/es.php b/core/l10n/es.php index 564bd79563..c602bc58e4 100644 --- a/core/l10n/es.php +++ b/core/l10n/es.php @@ -1,28 +1,10 @@ "Error 404, La pagina no se pudo encontrar", -"ownCloud is your personal web storage." => "ownCloud es tu web de almacenamiento personal.", -"Finish the setup by following the steps below." => "Completa la instalación mediante los siguientes pasos.", -"Create an admin account." => "Crear una cuenta de administrador.", +"Login failed!" => "¡No se pudo iniciar sesión!", "Username" => "Nombre de usuario", "Password" => "Contraseña", "Advanced" => "Avanzado", -"Set where to store the data." => "Selecciona donde quieres almacenar los datos.", -"Data directory:" => "Directorio de almacenamiento:", -"Configure the database." => "Configurar la base de datos.", -"SQLite will be used for the database. You have nothing to do." => "Se utilizará SQLite para la base de datos. No necesitas configurar nada más.", -"SQLite" => "SQLite", -"MySQL will be used for the database." => "Se utilizará MySQL para la base de datos.", -"MySQL username:" => "Nombre de usuario de MySQL:", -"MySQL password:" => "Contraseña de MySQL:", -"Database name:" => "Nombre de la base de datos:", -"Host:" => "Host:", -"Table prefix:" => "Prefijo de la tabla:", "Finish setup" => "Completar la instalación", -"ownCloud is a personal cloud which runs on your own server.

    " => "ownCloud es tu nube personal que corre en tu propio servidor.

    ", -"Login failed!" => "¡No se pudo iniciar sesión!", -"Remember login" => "Recordarme", -"You are logged out." => "Has cerrado sesión.", "prev" => "anterior", "next" => "siguiente", -"Search" => "Buscar" +"You are logged out." => "Has cerrado sesión." ); diff --git a/core/l10n/fr.php b/core/l10n/fr.php index 996d37dcc8..087cad0fa1 100644 --- a/core/l10n/fr.php +++ b/core/l10n/fr.php @@ -1,28 +1,24 @@ "Erreur 404, la page demandée n'existe pas", -"ownCloud is your personal web storage." => "ownCloud est votre espace de stockage web personnel.", -"Finish the setup by following the steps below." => "Terminez l'installation en suivant les étapes ci-dessous.", -"Create an admin account." => "Veuillez créer un compte administrateur.", +"Login failed!" => "Échec de la connexion !", +"remember" => "se souvenir de moi", +"Create an admin account" => "Créer un compte administrateur", "Username" => "Nom d'utilisateur", "Password" => "Mot de passe", +"Configure the database" => "Configurer la base de données", +"will be used" => "sera utilisé", +"Database user" => "Utilisateur de la base de données", +"Database password" => "Mot de passe de la base de données", +"Database name" => "Nom de la base de données", "Advanced" => "Avancé", -"Set where to store the data." => "Sélectionnez où sauvegarder les données", -"Data directory:" => "Répertoire de données", -"Configure the database." => "Configurez la base de données.", -"SQLite will be used for the database. You have nothing to do." => "SQLite sera utilisé comme moteur pour la base de données. Vous n'avez rien de plus à faire.", -"SQLite" => "SQLite", -"MySQL will be used for the database." => "MySQL sera utilisé comme moteur pour la base de données.", -"MySQL username:" => "Nom d'utilisateur MySQL :", -"MySQL password:" => "Mot de passe MySQL :", -"Database name:" => "Nom de la base de données :", -"Host:" => "Hôte :", -"Table prefix:" => "Préfixe de table :", +"Host" => "Hôte", +"Table prefix" => "Préfixe des tables", +"Data folder" => "Répertoire des données", "Finish setup" => "Terminer l'installation", -"ownCloud is a personal cloud which runs on your own server.

    " => "ownCloud est votre solution cloud personnelle propulsée par votre propre serveur.

    ", -"Login failed!" => "Échec de la connexion !", -"Remember login" => "Se souvenir de moi", -"You are logged out." => "Vous êtes désormais déconnecté.", +"Cloud not found" => "Introuvable", +"is a personal cloud which runs on your own server" => "est un service de cloud personnel propulsé par votre propre serveur", "prev" => "précédent", "next" => "suivant", -"Search" => "Rechercher" +"You are logged out." => "Vous êtes désormais déconnecté.", +"Log out" => "Se déconnecter", +"Settings" => "Paramètres" ); diff --git a/core/l10n/nl.php b/core/l10n/nl.php index 033adc0e43..281de52ce4 100644 --- a/core/l10n/nl.php +++ b/core/l10n/nl.php @@ -1,17 +1,8 @@ "Fout 404, Cloud niet gevonden.", -"Advanced" => "Geavanceerd", -"Set where to store the data." => "Bepaal de opslaglocatie.", -"Data directory:" => "Gegevensmap:", -"SQLite" => "SQLite", -"Database name:" => "Databasenaam:", -"Host:" => "Host:", -"Table prefix:" => "Voorvoegsel voor tabelnamen:", -"Finish setup" => "Installatie afronden", -"ownCloud is a personal cloud which runs on your own server.

    " => "ownCloud is een persoonlijke cloud die op uw eigen server draait.

    ", "Login failed!" => "Aanmelden mislukt.", -"You are logged out." => "U bent afgemeld.", +"Advanced" => "Geavanceerd", +"Finish setup" => "Installatie afronden", "prev" => "vorige", "next" => "volgende", -"Search" => "Zoeken" +"You are logged out." => "U bent afgemeld." ); diff --git a/core/l10n/pl.php b/core/l10n/pl.php index 3e4993d482..79ba6162df 100644 --- a/core/l10n/pl.php +++ b/core/l10n/pl.php @@ -1,17 +1,8 @@ "Błąd 404, Chmura nie znaleziona", -"Advanced" => "Zaawansowane", -"Set where to store the data." => "Ustaw, gdzie przechowywać dane.", -"Data directory:" => "Katalog danych:", -"SQLite" => "SQLite", -"Database name:" => "Nazwa bazy:", -"Host:" => "Host:", -"Table prefix:" => "Przedrostek tabeli:", -"Finish setup" => "Zakończ instalację", -"ownCloud is a personal cloud which runs on your own server.

    " => "ownCloud jest osobistą chmurą działającą na Twoim własnym serwerze.

    ", "Login failed!" => "Nie udało się zalogować!", -"You are logged out." => "Jesteś wylogowany.", +"Advanced" => "Zaawansowane", +"Finish setup" => "Zakończ instalację", "prev" => "wstecz", "next" => "dalej", -"Search" => "Szukaj" +"You are logged out." => "Jesteś wylogowany." ); diff --git a/core/templates/installation.php b/core/templates/installation.php index 4371c4b17b..ebd726b4fb 100644 --- a/core/templates/installation.php +++ b/core/templates/installation.php @@ -29,18 +29,18 @@ -

    t( 'SQLite will be used.' ); ?>

    +

    SQLite t( 'will be used' ); ?>.

    /> - + -

    t( 'MySQL will be used.' ); ?>

    +

    MySQL t( 'will be used' ); ?>.

    /> @@ -50,7 +50,7 @@ -

    t( 'PostgreSQL will be used.' ); ?>

    +

    PostgreSQL t( 'will be used' ); ?>.

    diff --git a/core/templates/layout.guest.php b/core/templates/layout.guest.php index 21388509f3..42c2539af1 100644 --- a/core/templates/layout.guest.php +++ b/core/templates/layout.guest.php @@ -35,6 +35,6 @@
    -

    t( 'ownCloud is a personal cloud which runs on your own server.

    ' ); ?>

    +

    ownCloud t( 'is a personal cloud which runs on your own server' ); ?>.

    diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index 81c0e73ea4..2e70fa2938 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -31,22 +31,15 @@
    printPage(); ?> diff --git a/settings/templates/index.php b/settings/templates/index.php deleted file mode 100644 index 48c3f54201..0000000000 --- a/settings/templates/index.php +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    - t( 'Account information' );?> -
     
    -

    t( 'You\'re currently using' );?> % () t( 'of your' );?> t( 'space' );?>.

    -
    -
    - -
    -
    - t( 'Change Password' );?> -
    t( 'Your password got changed');?>
    -
    - - - - -
    -
    - -
    -
    - t( 'Language' );?> - - -
    -
    - - diff --git a/settings/templates/personal.php b/settings/templates/personal.php new file mode 100644 index 0000000000..95df4d8c71 --- /dev/null +++ b/settings/templates/personal.php @@ -0,0 +1,35 @@ +
    +

    t('You use');?> t('of the available');?>

    +
    + +
    +
    +
    t('Your password got changed');?>
    +
    + + + + +
    +
    + +
    +
    + + + t('Help translating');?> +
    +
    + +

    + + +

    + + diff --git a/admin/templates/users.php b/settings/templates/users.php similarity index 85% rename from admin/templates/users.php rename to settings/templates/users.php index 77a4f0c0d5..01e2adf4e9 100644 --- a/admin/templates/users.php +++ b/settings/templates/users.php @@ -22,7 +22,7 @@ foreach($_["groups"] as $group) { ●●●●●●● - + set new password