diff --git a/.gitignore b/.gitignore index 94de5aec80..33f8e0c524 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ # the default generated dir + db file data owncloud +config/config.php # just sane ignores .*.sw[po] @@ -24,4 +25,6 @@ RCS/* # Lokalize *lokalize* +# eclipse .project +.settings diff --git a/.htaccess b/.htaccess index c818c9ca2e..92825ea92d 100644 --- a/.htaccess +++ b/.htaccess @@ -1,5 +1,5 @@ -ErrorDocument 404 //core/templates/404.php -php_value upload_max_filesize 20M -php_value post_max_size 20M +ErrorDocument 404 //owncloud/core/templates/404.php +php_value upload_max_filesize 512M +php_value post_max_size 512M SetEnv htaccessWorking true Options -Indexes 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/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 27bd704c59..0000000000 --- a/admin/css/users.css +++ /dev/null @@ -1,6 +0,0 @@ -form { display:inline } -td.remove>img,td.select>input { display:none;cursor:pointer } -td.select,td.remove { width:1em } -tr:hover>td.remove>img { display:inline } -li.selected { background-color:#ddd } -#content>table { margin-top:6.5em } diff --git a/admin/img/administration.png b/admin/img/administration.png deleted file mode 100644 index 8f4bb880ae..0000000000 Binary files a/admin/img/administration.png and /dev/null differ diff --git a/admin/img/apps.png b/admin/img/apps.png deleted file mode 100644 index ee3e8355e6..0000000000 Binary files a/admin/img/apps.png and /dev/null differ diff --git a/admin/img/plugins.png b/admin/img/plugins.png deleted file mode 100644 index 1e6f16651c..0000000000 Binary files a/admin/img/plugins.png and /dev/null differ diff --git a/admin/img/users.png b/admin/img/users.png deleted file mode 100644 index ea2ed9e333..0000000000 Binary files a/admin/img/users.png and /dev/null differ diff --git a/admin/js/users.js b/admin/js/users.js deleted file mode 100644 index 7402255750..0000000000 --- a/admin/js/users.js +++ /dev/null @@ -1,78 +0,0 @@ -$(document).ready(function(){ - function applyMultiplySelect(element){ - var checked=[]; - var user=element.data('username') - if(element.data('userGroups')){ - checked=element.data('userGroups').split(', '); - } - if(user){ - var checkHandeler=function(group){ - if(user==OC.currentUser && group=='admin'){ - return false; - } - $.post( - OC.filePath('admin','ajax','togglegroups.php'), - { - username:user, - group:group - }, - function(){} - ); - } - }else{ - checkHandeler=false; - } - element.multiSelect({ - createText:'add group', - checked:checked, - oncheck:checkHandeler, - onuncheck:checkHandeler - }); - } - $('select[multiple]').each(function(index,element){ - applyMultiplySelect($(element)); - }); - - $('td.remove>img').live('click',function(event){ - var uid=$(this).parent().parent().data('uid'); - $.post( - OC.filePath('admin','ajax','removeuser.php'), - {username:uid}, - function(result){ - - } - ); - $(this).parent().parent().remove(); - }); - - $('#newuser').submit(function(event){ - event.preventDefault(); - var username=$('#newusername').val(); - var password=$('#newuserpassword').val(); - var groups=$('#newusergroups').prev().children('div').data('settings').checked; - $.post( - OC.filePath('admin','ajax','createuser.php'), - { - username:username, - password:password, - groups:groups, - }, - function(result){ - - } - ); - var tr=$('#content table tr').first().clone(); - tr.attr('data-uid',username); - tr.find('td.name').text(username); - var select=$(' - - - - - - - - - "> - - - - - - -
- - - - Remove'/> - -
diff --git a/apps/bookmarks/ajax/addBookmark.php b/apps/bookmarks/ajax/addBookmark.php new file mode 100644 index 0000000000..b0d1a73089 --- /dev/null +++ b/apps/bookmarks/ajax/addBookmark.php @@ -0,0 +1,70 @@ +. +* +*/ + +//no apps or filesystem +$RUNTIME_NOSETUPFS=true; + +require_once('../../../lib/base.php'); + +// We send json data +header( "Content-Type: application/jsonrequest" ); + +// Check if we are a user +if( !OC_User::isLoggedIn()){ + echo json_encode( array( "status" => "error", "data" => array( "message" => "Authentication error" ))); + exit(); +} + +$query = OC_DB::prepare(" + INSERT IGNORE INTO *PREFIX*bookmarks + (url, title, description, user_id, public, added, lastmodified) + VALUES (?, ?, ?, ?, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()) + "); + +$params=array( + urldecode($_GET["url"]), + urldecode($_GET["title"]), + urldecode($_GET["description"]), + OC_User::getUser() + ); +$query->execute($params); +$b_id = OC_DB::insertid(); + +if($b_id !== false) { + $query = OC_DB::prepare(" + INSERT INTO *PREFIX*bookmarks_tags + (bookmark_id, tag) + VALUES (?, ?) + "); + + $tags = explode(' ', urldecode($_GET["tags"])); + foreach ($tags as $tag) { + if(empty($tag)) { + //avoid saving blankspaces + continue; + } + $params = array($b_id, trim($tag)); + $query->execute($params); + } +} + diff --git a/apps/bookmarks/ajax/delBookmark.php b/apps/bookmarks/ajax/delBookmark.php new file mode 100644 index 0000000000..a47bd2b9ea --- /dev/null +++ b/apps/bookmarks/ajax/delBookmark.php @@ -0,0 +1,52 @@ +. +* +*/ + +//no apps or filesystem +$RUNTIME_NOSETUPFS=true; + +require_once('../../../lib/base.php'); + +// We send json data +header( "Content-Type: application/jsonrequest" ); + +// Check if we are a user +if( !OC_User::isLoggedIn()){ + echo json_encode( array( "status" => "error", "data" => array( "message" => "Authentication error" ))); + exit(); +} + +$query = OC_DB::prepare(" + DELETE FROM *PREFIX*bookmarks + WHERE url LIKE ? + AND user_id = ? + "); + +$params=array( + urldecode($_GET["url"]), + OC_User::getUser() + ); +$result = $query->execute($params); + +// var_dump($params); + +echo json_encode( array( "status" => "success", "data" => array())); diff --git a/apps/bookmarks/ajax/recordClick.php b/apps/bookmarks/ajax/recordClick.php new file mode 100644 index 0000000000..4dcb0b4a0d --- /dev/null +++ b/apps/bookmarks/ajax/recordClick.php @@ -0,0 +1,47 @@ +. +* +*/ + +//no apps or filesystem +$RUNTIME_NOSETUPFS=true; + +require_once('../../../lib/base.php'); + +// Check if we are a user +if( !OC_User::isLoggedIn()){ + header( "Content-Type: application/jsonrequest" ); + echo json_encode( array( "status" => "error", "data" => array( "message" => "Authentication error" ))); + exit(); +} + +$query = OC_DB::prepare(" + UPDATE *PREFIX*bookmarks + SET clickcount = clickcount + 1 + WHERE user_id = ? + AND url LIKE ? + "); + +$params=array(OC_User::getUser(), urldecode($_GET["url"])); +$bookmarks = $query->execute($params); + +header( "HTTP/1.1 204 No Content" ); + diff --git a/apps/bookmarks/ajax/updateList.php b/apps/bookmarks/ajax/updateList.php new file mode 100644 index 0000000000..d7cf05b7a6 --- /dev/null +++ b/apps/bookmarks/ajax/updateList.php @@ -0,0 +1,66 @@ +. +* +*/ + +//no apps or filesystem +$RUNTIME_NOSETUPFS=true; + +require_once('../../../lib/base.php'); + +// We send json data +header( "Content-Type: application/jsonrequest" ); + +// Check if we are a user +if( !OC_User::isLoggedIn()){ + echo json_encode( array( "status" => "error", "data" => array( "message" => "Authentication error" ))); + exit(); +} + +$params=array(OC_User::getUser()); + +//Filter for tag? +$filterTag = isset($_GET["tag"]) ? urldecode($_GET["tag"]) : false; +if($filterTag){ + $sqlFilterTag = "HAVING INSTR (tags, ?) > 0"; + $params[] = $filterTag; +} else { + $sqlFilterTag = ''; +} + +$offset = isset($_GET["page"]) ? intval($_GET["page"]) * 10 : 0; +$params[] = $offset; + +//FIXME: bookmarks without tags are not being retrieved +$query = OC_DB::prepare(" + SELECT url, title, description, GROUP_CONCAT( tag SEPARATOR ' ' ) AS tags + FROM *PREFIX*bookmarks, *PREFIX*bookmarks_tags + WHERE *PREFIX*bookmarks.id = *PREFIX*bookmarks_tags.bookmark_id + AND *PREFIX*bookmarks.user_id = ? + GROUP BY url + $sqlFilterTag + ORDER BY *PREFIX*bookmarks.id DESC + LIMIT ?, 10"); + + +$bookmarks = $query->execute($params)->fetchAll(); + +echo json_encode( array( "status" => "success", "data" => $bookmarks)); diff --git a/apps/bookmarks/appinfo/app.php b/apps/bookmarks/appinfo/app.php new file mode 100644 index 0000000000..33b7ba6144 --- /dev/null +++ b/apps/bookmarks/appinfo/app.php @@ -0,0 +1,27 @@ +. +* +*/ + +OC_App::register( array( 'order' => 70, 'id' => 'bookmark', 'name' => 'Bookmarks' )); + +OC_App::addNavigationEntry( array( 'id' => 'bookmarks_index', 'order' => 70, 'href' => OC_Helper::linkTo( 'bookmarks', 'index.php' ), 'icon' => OC_Helper::imagePath( 'bookmarks', 'bookmarks.png' ), 'name' => 'Bookmarks' )); + diff --git a/apps/bookmarks/appinfo/database.xml b/apps/bookmarks/appinfo/database.xml new file mode 100644 index 0000000000..8bfb861fc5 --- /dev/null +++ b/apps/bookmarks/appinfo/database.xml @@ -0,0 +1,127 @@ + + + *dbname* + true + false + latin1 + + *dbprefix*bookmarks + + + id + integer + 1 + 0 + true + 64 + + + url + text + + true + 4096 + + + title + text + + true + 140 + + + description + text + + true + 255 + + + user_id + text + + true + 64 + + + public + integer + 0 + 1 + + + added + integer + + false + true + 4 + + + lastmodified + integer + + false + true + 4 + + + clickcount + integer + 0 + true + true + 4 + + + + id + true + + id + descending + + + + +
+ + + *dbprefix*bookmarks_tags + + + bookmark_id + integer + 64 + + + + tag + text + + true + 255 + + + bookmark_tag + true + + bookmark_id + ascending + + + tag + ascending + + + +
+
+ \ No newline at end of file diff --git a/apps/bookmarks/appinfo/info.xml b/apps/bookmarks/appinfo/info.xml new file mode 100644 index 0000000000..23aa6c219a --- /dev/null +++ b/apps/bookmarks/appinfo/info.xml @@ -0,0 +1,10 @@ + + + bookmarks + Bookmarks + Bookmark manager for ownCloud + 0.1 + AGPL + Arthur Schiwon + 2 + \ No newline at end of file diff --git a/apps/bookmarks/css/bookmarks.css b/apps/bookmarks/css/bookmarks.css new file mode 100644 index 0000000000..aa28424c0b --- /dev/null +++ b/apps/bookmarks/css/bookmarks.css @@ -0,0 +1,63 @@ +#content { overflow: auto; } + +.bookmarks_headline { + font-size: large; + font-weight: bold; + margin-left: 2em; + padding: 2.5ex 0.5ex; +} + +.bookmarks_menu { + margin-left: 1.5em; + padding: 0.5ex; +} + +.bookmark_actions { + font-size: smaller; + color: #ff44ff; + padding-left: 4em; +} + +.bookmark_actions span:hover { + cursor: pointer; + text-decoration: underline; +} + +.bookmarks_add { + display: none; +} + +.bookmarks_label { + width: 7em; + display: inline-block; + text-align: right; +} + +.bookmarks_input { + width: 20em; +} + +.bookmark_single { + margin-left: 2em; + margin-top: 3ex; + padding: 0.5ex; +/* border-bottom: 1px solid black; */ +} + +.bookmark_single:hover { + background-color: #ccccff; +} + +.bookmark_title { + font-size: larger; + color: blue; + text-decoration: underline; +} + +.bookmark_url { + color: green; +} + +.bookmark_tags { + color: #ff3333; +} \ No newline at end of file diff --git a/apps/bookmarks/img/bookmarks.png b/apps/bookmarks/img/bookmarks.png new file mode 100644 index 0000000000..b92e4f50a4 Binary files /dev/null and b/apps/bookmarks/img/bookmarks.png differ diff --git a/apps/bookmarks/index.php b/apps/bookmarks/index.php new file mode 100644 index 0000000000..ba9f7cc0c6 --- /dev/null +++ b/apps/bookmarks/index.php @@ -0,0 +1,39 @@ +. +* +*/ + +require_once('../../lib/base.php'); + +// Check if we are a user +if( !OC_User::isLoggedIn()){ + header( "Location: ".OC_Helper::linkTo( '', 'index.php' )); + exit(); +} + +OC_App::setActiveNavigationEntry( 'bookmarks_index' ); + +OC_Util::addScript('bookmarks','bookmarks'); +OC_Util::addStyle('bookmarks', 'bookmarks'); + +$tmpl = new OC_Template( 'bookmarks', 'list', 'user' ); + +$tmpl->printPage(); \ No newline at end of file diff --git a/apps/bookmarks/js/bookmarks.js b/apps/bookmarks/js/bookmarks.js new file mode 100644 index 0000000000..7624ff5d39 --- /dev/null +++ b/apps/bookmarks/js/bookmarks.js @@ -0,0 +1,94 @@ +var bookmarks_page = 0; +var bookmarks_loading = false; + +$(document).ready(function() { + $('.bookmarks_addBtn').click(function(event){ + $('.bookmarks_add').slideToggle(); + }); + + $('#bookmark_add_submit').click(addBookmark); + $(window).scroll(updateOnBottom); + + $('.bookmarks_list').empty(); + getBookmarks(); +}); + +function getBookmarks() { + if(bookmarks_loading) { + //have patience :) + return; + } + $.ajax({ + url: 'ajax/updateList.php', + data: "tag=" + encodeURI($('#bookmarkFilterTag').val()) + "&page=" + bookmarks_page, + success: function(bookmarks){ + bookmarks_page += 1; + $('.bookmark_link').unbind('click', recordClick); + $('.bookmark_delete').unbind('click', delBookmark); + + for(var i in bookmarks.data) { + updateBookmarksList(bookmarks.data[i]); + } + $('.bookmark_link').click(recordClick); + $('.bookmark_delete').click(delBookmark); + bookmarks_loading = false; + } + }); +} + +function addBookmark(event) { + $.ajax({ + url: 'ajax/addBookmark.php', + data: "url=" + encodeURI($('#bookmark_add_url').val()) + "&title=" + encodeURI($('#bookmark_add_title').val()) + "&description=" + encodeURI($('#bookmark_add_description').val()) + "&tags=" + encodeURI($('#bookmark_add_tags').val()), + success: function(data){ $('.bookmarks_add').slideToggle(); $('.bookmarks_add').children('p').children('.bookmarks_input').val(''); } + }); +} + +function delBookmark(event) { + $.ajax({ + url: 'ajax/delBookmark.php', + data: "url=" + encodeURI($(this).parent().parent().children('.bookmark_url:first').text()), + success: function(data){ alert('deleted!'); } + }); +} + +function updateBookmarksList(bookmark) { + var tags = encodeEntities(bookmark.tags).split(" "); + var taglist = ""; + for ( var i=0, len=tags.length; i" + tags[i] + " "; + } + $('.bookmarks_list').append( + "
" + + "

" + encodeEntities(bookmark.title) + "

" + + "

" + encodeEntities(bookmark.url) + "

" + + "

" + encodeEntities(bookmark.description) + "

" + + "

" + taglist + "

" + + "

Delete

" + + "
" + ); +} + +function updateOnBottom() { + //check wether user is on bottom of the page + if ($('body').height() <= ($(window).height() + $(window).scrollTop())) { + getBookmarks(); + } +} + +function recordClick(event) { + $.ajax({ + url: 'ajax/recordClick.php', + data: "url=" + encodeURI($(this).attr('href')), + }); + return false; +} + +function encodeEntities(s){ + try { + return $("
").text(s).html(); + + } catch (ex) { + return ""; + } +} diff --git a/apps/bookmarks/templates/list.php b/apps/bookmarks/templates/list.php new file mode 100644 index 0000000000..278a0db524 --- /dev/null +++ b/apps/bookmarks/templates/list.php @@ -0,0 +1,18 @@ + +

+
+ +
+
+

+

+

+

+

+
+
+ + You have no bookmarks +
\ No newline at end of file diff --git a/apps/contacts/appinfo/app.php b/apps/contacts/appinfo/app.php index 30aa0e1aaa..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( 'contacts', 'icon.png' ), + 'icon' => OC_Helper::imagePath( 'settings', 'users.svg' ), 'name' => 'Contacts' )); diff --git a/apps/contacts/css/styles.css b/apps/contacts/css/styles.css index c7680f4a71..1f95fdb2ad 100644 --- a/apps/contacts/css/styles.css +++ b/apps/contacts/css/styles.css @@ -1 +1,2 @@ -.contacts_propertyname {float:left;} +.contacts_details_left {text-align:right;vertical-align:top;padding:2px;} +.contacts_details_right {text-align:left;vertical-align:top;padding:2px;} diff --git a/apps/contacts/img/icon.png b/apps/contacts/img/icon.png deleted file mode 100644 index ea2ed9e333..0000000000 Binary files a/apps/contacts/img/icon.png and /dev/null differ diff --git a/apps/contacts/js/interface.js b/apps/contacts/js/interface.js index ef2179b372..b8a66d51aa 100644 --- a/apps/contacts/js/interface.js +++ b/apps/contacts/js/interface.js @@ -102,12 +102,12 @@ $(document).ready(function(){ return false; }); - $('.contacts_property [data-use="edit"]').live('click',function(){ + $('.contacts_details_property [data-use="edit"]').live('click',function(){ var id = $('#rightcontent').data('id'); var checksum = $(this).parent().parent().data('checksum'); $.getJSON('ajax/showsetproperty.php',{'id': id, 'checksum': checksum },function(jsondata){ if(jsondata.status == 'success'){ - $('.contacts_property[data-checksum="'+checksum+'"] .contacts_propertyvalue').html(jsondata.data.page); + $('.contacts_details_property[data-checksum="'+checksum+'"] .contacts_details_right').html(jsondata.data.page); } else{ alert(jsondata.data.message); @@ -119,7 +119,7 @@ $(document).ready(function(){ $('#contacts_setpropertyform input[type="submit"]').live('click',function(){ $.post('ajax/setproperty.php',$('#contacts_setpropertyform').serialize(),function(jsondata){ if(jsondata.status == 'success'){ - $('.contacts_property[data-checksum="'+jsondata.data.oldchecksum+'"]').replaceWith(jsondata.data.page); + $('.contacts_details_property[data-checksum="'+jsondata.data.oldchecksum+'"]').replaceWith(jsondata.data.page); } else{ alert(jsondata.data.message); @@ -128,12 +128,12 @@ $(document).ready(function(){ return false; }); - $('.contacts_property [data-use="delete"]').live('click',function(){ + $('.contacts_details_property [data-use="delete"]').live('click',function(){ var id = $('#rightcontent').data('id'); var checksum = $(this).parent().parent().data('checksum'); $.getJSON('ajax/deleteproperty.php',{'id': id, 'checksum': checksum },function(jsondata){ if(jsondata.status == 'success'){ - $('.contacts_property[data-checksum="'+checksum+'"]').remove(); + $('.contacts_details_property[data-checksum="'+checksum+'"]').remove(); } else{ alert(jsondata.data.message); @@ -143,11 +143,11 @@ $(document).ready(function(){ }); - $('.contacts_property').live('mouseenter',function(){ + $('.contacts_details_property').live('mouseenter',function(){ $(this).find('span').show(); }); - $('.contacts_property').live('mouseleave',function(){ + $('.contacts_details_property').live('mouseleave',function(){ $(this).find('span').hide(); }); }); diff --git a/apps/contacts/templates/part.details.php b/apps/contacts/templates/part.details.php index e463459e78..5048349abc 100644 --- a/apps/contacts/templates/part.details.php +++ b/apps/contacts/templates/part.details.php @@ -1,29 +1,35 @@ - - - - - inc('part.property', array('property' => $_['details']['FN'][0])); ?> - + + + + + + + + + inc('part.property', array('property' => $_['details']['FN'][0])); ?> + + + inc('part.property', array('property' => $_['details']['BDAY'][0])); ?> + - - inc('part.property', array('property' => $_['details']['BDAY'][0])); ?> - + + inc('part.property', array('property' => $_['details']['ORG'][0])); ?> + - - inc('part.property', array('property' => $_['details']['ORG'][0])); ?> - - - - -
- - inc('part.property',array('property' => $property )); ?> + + + + inc('part.property',array('property' => $property )); ?> + + - - +
  + +
+
- - + +
diff --git a/apps/contacts/templates/part.property.php b/apps/contacts/templates/part.property.php index 1611e54b65..9e2a5cabad 100644 --- a/apps/contacts/templates/part.property.php +++ b/apps/contacts/templates/part.property.php @@ -1,49 +1,49 @@ -
+ -
t('Name'); ?>
-
+ t('Name'); ?> + - -
+ + -
t('Birthday'); ?>
-
+ t('Birthday'); ?> + l('date',new DateTime($_['property']['value'])); ?> - -
+ + -
t('Organisation'); ?>
-
+ t('Organisation'); ?> + - - -
+ + + -
t('Email'); ?>
-
+ t('Email'); ?> + - - -
+ + + -
t('Telephone'); ?>
-
+ t('Telephone'); ?> + (t('tel_'.strtolower($_['property']['parameters']['TYPE'])); ?>) - - -
+ + + -
+ t('Address'); ?>
(t('adr_'.strtolower($_['property']['parameters']['TYPE'])); ?>) -
-
+ + t('PO Box'); ?>
t('Extended Address'); ?>
t('Street Name'); ?>
@@ -51,8 +51,8 @@ t('Region'); ?>
t('Postal Code'); ?>
t('Country'); ?> - - -
+ + + -
+ diff --git a/apps/files_publiclink/js/admin.js b/apps/files_publiclink/js/admin.js index 20eae19c5d..91ee58beda 100644 --- a/apps/files_publiclink/js/admin.js +++ b/apps/files_publiclink/js/admin.js @@ -31,11 +31,13 @@ $(document).ready(function() { if(token){ var html=""; html+=""+path+""; - html+=""+$('#baseUrl').val()+"?token="+token+"" + html+="" html+="" html+="" $(html).insertAfter($('#newlink_row')); $('#path').val(''); + $('#'+token+' input').focus(); + $('#'+token+' input').select(); } } }); diff --git a/apps/files_publiclink/templates/admin.php b/apps/files_publiclink/templates/admin.php index 4608877e5b..b5c04b838b 100644 --- a/apps/files_publiclink/templates/admin.php +++ b/apps/files_publiclink/templates/admin.php @@ -1,18 +1,18 @@ + + + + + + - - - - - - - - - - - + + + + + diff --git a/apps/files_publiclink/templates/breadcrumb.php b/apps/files_publiclink/templates/breadcrumb.php deleted file mode 100644 index 733531d9e1..0000000000 --- a/apps/files_publiclink/templates/breadcrumb.php +++ /dev/null @@ -1,4 +0,0 @@ - " alt="Root" /> - - "> - \ No newline at end of file diff --git a/apps/files_publiclink/templates/files.php b/apps/files_publiclink/templates/files.php deleted file mode 100644 index 41ff0a1e76..0000000000 --- a/apps/files_publiclink/templates/files.php +++ /dev/null @@ -1,9 +0,0 @@ - - - - )" href="" title=""> - - - - - diff --git a/apps/files_publiclink/templates/index.php b/apps/files_publiclink/templates/index.php deleted file mode 100644 index 759f3ad877..0000000000 --- a/apps/files_publiclink/templates/index.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - -
t( 'Name' ); ?>t( 'Size' ); ?>t( 'Modified' ); ?>
\ No newline at end of file diff --git a/apps/media/appinfo/app.php b/apps/media/appinfo/app.php index ebd360eccb..0d36217bd4 100644 --- a/apps/media/appinfo/app.php +++ b/apps/media/appinfo/app.php @@ -28,5 +28,5 @@ OC_Util::addScript('media','loader'); 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' => $l->t('Music') )); +OC_App::addNavigationEntry( array( 'id' => 'media_index', 'order' => 2, 'href' => OC_Helper::linkTo( 'media', 'index.php' ), 'icon' => OC_Helper::imagePath( 'core', 'filetypes/audio.svg' ), 'name' => $l->t('Music') )); ?> diff --git a/apps/media/css/music.css b/apps/media/css/music.css index dd9b8ea70d..f8e41064fd 100644 --- a/apps/media/css/music.css +++ b/apps/media/css/music.css @@ -1,19 +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;} -#playlist{border-spacing:0;} -#playlist th{background-color:#ccc; text-align:left; font-size:1.2em; padding:0.2em} -#playlist tr.selected{background-color:#eee;} -#playlist tr.current{background-color:#ccc;} -#playlist td.time, #playlist th.time{text-align:right; padding-right:1em;} -#collection li button{float:right;} -#collection li,#playlist li{list-style-type:none;} -.template{display:none} +#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{padding-right:10px;} -img.remove{float:right;} -#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} +#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 6cf424a8ea..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:40px;height:40px;z-index:1;top:0;left:48px;} -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:28px;height:28px;} -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:28px;height:28px;} -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:164px;width:122px;height:15px;} -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:15px;width:18px;top:1em;left:296px;} -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:46px;height:5px;cursor:pointer;top:1.3em;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:1em;left:164px;width:122px;} -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/img/media.png b/apps/media/img/media.png deleted file mode 100644 index 6333b947f0..0000000000 Binary files a/apps/media/img/media.png and /dev/null differ diff --git a/apps/media/js/collection.js b/apps/media/js/collection.js index e49024973f..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(); } } @@ -60,14 +60,18 @@ Collection={ tr.find('td.title a').text(song.song_name); tr.find('td.title a').click(function(event){ event.preventDefault(); - PlayList.add(song); - PlayList.render(); + PlayList.add(song,true); + PlayList.play(0); + Collection.parent.find('tr').removeClass('active'); + tr.addClass('active'); }); if(artist.artist_name!=lastArtist){ tr.find('td.artist a').click(function(event){ event.preventDefault(); - PlayList.add(artist); - PlayList.render(); + PlayList.add(artist,true); + PlayList.play(0); + Collection.parent.find('tr').removeClass('active'); + $('tr[data-artist="'+artist.artist_name+'"]').addClass('active'); }); tr.find('td.artist a').text(artist.artist_name); if(artist.albums.length>1){ @@ -87,8 +91,10 @@ Collection={ if(album.album_name!=lastAlbum){ tr.find('td.album a').click(function(event){ event.preventDefault(); - PlayList.add(album); - PlayList.render(); + PlayList.add(album,true); + PlayList.play(0); + Collection.parent.find('tr').removeClass('active'); + $('tr[data-album="'+album.album_name+'"]').addClass('active'); }); tr.find('td.album a').text(album.album_name); if(album.songs.length>1){ @@ -149,10 +155,11 @@ Collection={ Collection.parent.hide(); } }, - registerPlay:function(){ - var item=PlayList.items[PlayList.current]; - var song=Collection.findSong(item.artist,item.album,item.name); - song.song_playcount++; + registerPlay:function(item){ + if(item){ + var song=Collection.findSong(item.artist,item.album,item.name); + song.song_playcount++; + } }, addButtons:function(parent){ parent.children('button.add').click(function(){ diff --git a/apps/media/js/loader.js b/apps/media/js/loader.js index b7ef2fb7be..ef8647eeca 100644 --- a/apps/media/js/loader.js +++ b/apps/media/js/loader.js @@ -49,6 +49,7 @@ $(document).ready(function() { FileActions.setDefault('audio','Play'); FileActions.setDefault('application/ogg','Play'); } + var oc_current_user=OC.currentUser; if(typeof PlayList==='undefined'){ if(typeof localStorage !== 'undefined' && localStorage){ if(localStorage.hasOwnProperty(oc_current_user+'oc_playlist_items') && localStorage.getItem(oc_current_user+'oc_playlist_items')!='[]' && localStorage.getItem(oc_current_user+'oc_playlist_active')!='true'){ diff --git a/apps/media/js/player.js b/apps/media/js/player.js index 4e1cc3cd75..0b0502c778 100644 --- a/apps/media/js/player.js +++ b/apps/media/js/player.js @@ -5,48 +5,53 @@ var PlayList={ player:null, volume:0.8, active:false, + tempPlaylist:[], + isTemp:true, next:function(){ + var items=(PlayList.isTemp)?PlayList.tempPlaylist:PlayList.items; var next=PlayList.current+1; - if(next>=PlayList.items.length){ + if(next>=items.length){ next=0; } PlayList.play(next); PlayList.render(); }, previous:function(){ + var items=(PlayList.isTemp)?PlayList.tempPlaylist:PlayList.items; var next=PlayList.current-1; if(next<0){ - next=PlayList.items.length-1; + next=items.length-1; } PlayList.play(next); PlayList.render(); }, play:function(index,time,ready){ + var items=(PlayList.isTemp)?PlayList.tempPlaylist:PlayList.items; if(index==null){ index=PlayList.current; } - if(index>-1 && index-1 && index0){ var previous=index-1; }else{ - var previous=PlayList.items.length-1; + var previous=items.length-1; } - if(index+1'); - button.attr('src',OC.imagePath('core','actions/delete')); - $(this).children().last().append(button); - button.click(function(event){ - event.stopPropagation(); - event.preventDefault(); - var index=$(this).parent().parent().data('index'); - PlayList.remove(index); - }); - },function(){ - $(this).children().last().children('img.remove').remove(); - }); - tr.children('td.name').children('input').click(function(event){ + var li=$('
  • '); + li.append(item.name); + var img=$(''); + img.click(function(event){ event.stopPropagation(); - if($(this).attr('checked')){ - $(this).parent().parent().addClass('selected'); - if($('tbody td.name input:checkbox').length==$('tbody td.name input:checkbox:checked').length){ - $('#selectAll').attr('checked',true); - } - }else{ - $(this).parent().parent().removeClass('selected'); - $('#selectAll').attr('checked',false); - } - procesSelection(); + PlayList.remove($(this).parent().data('index')); }); - PlayList.parent.append(tr); + li.click(function(event){ + PlayList.play($(this).data('index')); + }); + li.append(img) + li.data('index',i); + li.addClass('song'); + PlayList.parent.append(li); } } PlayList.getSelected=function(){ @@ -55,78 +27,16 @@ PlayList.hide=function(){ } $(document).ready(function(){ - PlayList.parent=$('#playlist tbody'); - PlayList.template=$('#playlist tr.template'); + PlayList.parent=$('#leftcontent'); $('#selectAll').click(function(){ if($(this).attr('checked')){ // Check all - $('tbody td.name input:checkbox').attr('checked', true); - $('tbody td.name input:checkbox').parent().parent().addClass('selected'); + $('#leftcontent li.song input:checkbox').attr('checked', true); + $('#leftcontent li.song input:checkbox').parent().addClass('selected'); }else{ // Uncheck all - $('tbody td.name input:checkbox').attr('checked', false); - $('tbody td.name input:checkbox').parent().parent().removeClass('selected'); + $('#leftcontent li.song input:checkbox').attr('checked', false); + $('#leftcontent li.song input:checkbox').parent().removeClass('selected'); } - procesSelection(); }); }); - -function procesSelection(){ - var selected=PlayList.getSelected(); - if(selected.length==0){ - $('th.name span').text(t('media','Name')); - $('th.artist').text(t('media','Artist')); - $('th.album').text(t('media','Album')); - $('th.time').text(t('media','Time')); - $('th.plays').empty(); - $('th.plays').text(t('media','Plays')); - }else{ - var name=selected.length+' '+t('media','selected'); - var artist=$(selected[0]).data('artist'); - var album=$(selected[0]).data('album'); - var time=$(selected[0]).data('time'); - var plays=$(selected[0]).data('plays'); - for(var i=1;i'); - button.attr('src',OC.imagePath('core','actions/delete')); - $('th.plays').append(button); - button.click(function(event){ - event.stopPropagation(); - event.preventDefault(); - PlayList.getSelected().each(function(index,element){ - var index=$(element).data('index'); - PlayList.items[index]=null; - }); - PlayList.items=PlayList.items.filter(function(item){return item!==null}); - PlayList.render(); - PlayList.save(); - procesSelection(); - }); - } -} \ No newline at end of file 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 d103e10b75..3cbb1c50a9 100644 --- a/apps/media/templates/music.php +++ b/apps/media/templates/music.php @@ -1,58 +1,35 @@
    + + - - +
    -
    - - - - - - - - - - - - - - - - - - -
    t('Name')?>t('Artist')?>
    - t('The playlist is empty')?> -
    - - -
    -
    +
      - -
      + +
      +
      diff --git a/apps/user_ldap/settings.php b/apps/user_ldap/settings.php index cae3542a65..696b95c37e 100644 --- a/apps/user_ldap/settings.php +++ b/apps/user_ldap/settings.php @@ -24,7 +24,7 @@ require_once('../../lib/base.php'); if( !OC_User::isLoggedIn() || !OC_Group::inGroup( OC_User::getUser(), 'admin' )){ - header( "Location: ".OC_Helper::linkTo( "index.php" )); + header( "Location: ".OC_Helper::linkTo( '', "index.php" )); exit(); } 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/config/.gitignore b/config/.gitignore deleted file mode 100755 index d09f42a238..0000000000 --- a/config/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -#autogenerated -config.php diff --git a/admin/system.php b/core/ajax/grouplist.php similarity index 54% rename from admin/system.php rename to core/ajax/grouplist.php index da77027f7a..9b6c4bfa8a 100644 --- a/admin/system.php +++ b/core/ajax/grouplist.php @@ -1,10 +1,10 @@ $i ); + } + + echo json_encode($groups); } - -OC_App::setActiveNavigationEntry( "administration" ); - -$tmpl = new OC_Template( "admin", "system", "user" ); -$tmpl->printPage(); - ?> - diff --git a/core/ajax/userlist.php b/core/ajax/userlist.php new file mode 100644 index 0000000000..16e89c2ee8 --- /dev/null +++ b/core/ajax/userlist.php @@ -0,0 +1,47 @@ +. +* +*/ + + +// We send json data +header( "Content-Type: application/jsonrequest" ); + +$RUNTIME_NOAPPS = TRUE; //no apps, yet +require_once('../../lib/base.php'); + +if(isset($_GET["user"]) && isset($_GET["password"])) +{ + if(!OC_User::checkPassword($_GET["user"], $_GET["password"])) + exit(); + + $users = array(); + + foreach( OC_User::getUsers() as $i ){ + $users[] = array( "username" => $i, "groups" => join( ", ", OC_Group::getUserGroups( $i ) )); + } + + echo json_encode($users); + + +} + +?> 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 new file mode 100644 index 0000000000..957385a269 --- /dev/null +++ b/core/css/jquery-tipsy.css @@ -0,0 +1,25 @@ +.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 05bb63e0f0..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 img, a strong, a span, input, select, 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,39 +28,36 @@ 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; } #body-login input { font-size:1.5em; } #body-login input[type="submit"] { float:right; margin-right:.8em; } #remember_login { margin:.8em .2em 0 1em; } -form.searchbox input[type="search"] { position:fixed; font-size:1.2em; top:.4em; right:4em; padding:.2em .5em .2em 1.5em; background:#f8f8f8 url('../img/actions/search.png') .5em center no-repeat; border:0; -moz-border-radius:1em; -webkit-border- +form.searchbox input[type="search"] { position:fixed; font-size:1.2em; top:.4em; right:4em; padding:.2em .5em .2em 1.5em; background:#f8f8f8 url('../img/actions/search.svg') .5em center no-repeat; border:0; -moz-border-radius:1em; -webkit-border- 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; } @@ -75,23 +72,39 @@ legend { padding:.2em; font-size:1.2em; } #login form input[type="checkbox"]+label { position:relative; margin:0; font-size:1em; text-shadow:#fff 0 1px 0; } #login form ul.errors { background:#fed7d7; border:1px solid #f00; list-style-indent:inside; margin:0 0 4em 0; padding:1em 1em 1em 5em; } +#login form #selectDbType { text-align:center; } +#login form #selectDbType label { position:static; font-size:1em; margin:0 -.3em 1em; cursor:pointer; padding:.4em; border:1px solid #ddd; font-weight:bold; background:#f8f8f8; color:#555; text-shadow:#eee 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; } +#login form #selectDbType label span { cursor:pointer; font-size:0.9em; } +#login form #selectDbType label.ui-state-hover span, #login form #selectDbType label.ui-state-active span { color:#000; } +#login form #selectDbType label.ui-state-hover, #login form #selectDbType label.ui-state-active { color: #333; background-color: #ccc; } + + /* 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%; } #expand { margin:0 0 .2em 1.2em; cursor:pointer; } #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; } -#logout:hover, #logout:focus { background:rgba(0,0,0,.5); } -/* 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; } -li.error { width:640px; margin:4em auto; padding:1em 1em 1em 4em; background:#fee url('../img/task-attention.png') .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; 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; } +/* 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; } diff --git a/core/img/actions/delete.png b/core/img/actions/delete.png index 97f089524b..bc0c782882 100644 Binary files a/core/img/actions/delete.png and b/core/img/actions/delete.png differ diff --git a/core/img/actions/delete.svg b/core/img/actions/delete.svg index e542b6fed3..86c8317d01 100644 --- a/core/img/actions/delete.svg +++ b/core/img/actions/delete.svg @@ -14,7 +14,7 @@ id="svg3875" version="1.1" inkscape:version="0.48.1 r9760" - sodipodi:docname="drawing.svg"> + sodipodi:docname="delete.svg"> image/svg+xml - + @@ -61,7 +61,7 @@ id="layer1" transform="translate(0,-1036.3622)"> @@ -28,7 +28,7 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="17.921875" - inkscape:cx="4.954364" + inkscape:cx="-5.3403178" inkscape:cy="10.148736" inkscape:document-units="px" inkscape:current-layer="layer1" @@ -54,7 +54,7 @@ image/svg+xml - + @@ -64,7 +64,7 @@ id="layer1" transform="translate(0,-1036.3622)"> + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/core/img/actions/pause.png b/core/img/actions/pause.png new file mode 100644 index 0000000000..ced8c43ab3 Binary files /dev/null and b/core/img/actions/pause.png differ diff --git a/core/img/actions/pause.svg b/core/img/actions/pause.svg new file mode 100644 index 0000000000..ff3c69d6c7 --- /dev/null +++ b/core/img/actions/pause.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/core/img/actions/play-add.png b/core/img/actions/play-add.png index 02d6a122ef..0c330d4ac4 100644 Binary files a/core/img/actions/play-add.png and b/core/img/actions/play-add.png differ diff --git a/core/img/actions/play-add.svg b/core/img/actions/play-add.svg index 4fad895bf4..25ff0b57ee 100644 --- a/core/img/actions/play-add.svg +++ b/core/img/actions/play-add.svg @@ -28,7 +28,7 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="25.345359" - inkscape:cx="-0.081913001" + inkscape:cx="2.4224415" inkscape:cy="8.0693339" inkscape:document-units="px" inkscape:current-layer="layer1" @@ -54,7 +54,7 @@ image/svg+xml - + @@ -63,17 +63,21 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-1036.3622)"> - - + + + + diff --git a/core/img/actions/play-big.png b/core/img/actions/play-big.png new file mode 100644 index 0000000000..3ccd36129e Binary files /dev/null and b/core/img/actions/play-big.png differ diff --git a/core/img/actions/play-big.svg b/core/img/actions/play-big.svg new file mode 100644 index 0000000000..2ef6741532 --- /dev/null +++ b/core/img/actions/play-big.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/core/img/actions/play-next.png b/core/img/actions/play-next.png new file mode 100644 index 0000000000..0c0ccc87cd Binary files /dev/null and b/core/img/actions/play-next.png differ diff --git a/core/img/actions/play-next.svg b/core/img/actions/play-next.svg new file mode 100644 index 0000000000..9a41e4bd9d --- /dev/null +++ b/core/img/actions/play-next.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/core/img/actions/play-previous.png b/core/img/actions/play-previous.png new file mode 100644 index 0000000000..d98cedaa1e Binary files /dev/null and b/core/img/actions/play-previous.png differ diff --git a/core/img/actions/play-previous.svg b/core/img/actions/play-previous.svg new file mode 100644 index 0000000000..31d45dedb4 --- /dev/null +++ b/core/img/actions/play-previous.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/core/img/actions/play.png b/core/img/actions/play.png index 5ddec40518..a252a75155 100644 Binary files a/core/img/actions/play.png and b/core/img/actions/play.png differ diff --git a/core/img/actions/play.svg b/core/img/actions/play.svg index b291eae259..7bb7b5c262 100644 --- a/core/img/actions/play.svg +++ b/core/img/actions/play.svg @@ -14,7 +14,7 @@ id="svg3875" version="1.1" inkscape:version="0.48.1 r9760" - sodipodi:docname="play-add.svg" + sodipodi:docname="play.svg" inkscape:export-filename="/home/jancborchardt/owncloud/core/img/actions/play-add.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90"> @@ -28,7 +28,7 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="17.921875" - inkscape:cx="4.954364" + inkscape:cx="-5.3403178" inkscape:cy="10.148736" inkscape:document-units="px" inkscape:current-layer="layer1" @@ -54,7 +54,7 @@ image/svg+xml - + @@ -64,7 +64,7 @@ id="layer1" transform="translate(0,-1036.3622)"> + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/actions/rename.png b/core/img/actions/rename.png index 9a86919df5..9993a092df 100644 Binary files a/core/img/actions/rename.png and b/core/img/actions/rename.png differ diff --git a/core/img/actions/rename.svg b/core/img/actions/rename.svg index adda394ddf..44b464c850 100644 --- a/core/img/actions/rename.svg +++ b/core/img/actions/rename.svg @@ -14,7 +14,7 @@ id="svg3875" version="1.1" inkscape:version="0.48.1 r9760" - sodipodi:docname="drawing.svg" + sodipodi:docname="rename.svg" inkscape:export-filename="/home/jancborchardt/rename.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90"> @@ -27,9 +27,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="25.345359" - inkscape:cx="10.704484" - inkscape:cy="9.4345147" + inkscape:zoom="8.9609376" + inkscape:cx="13.152158" + inkscape:cy="4.0337477" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -54,7 +54,7 @@ image/svg+xml - + @@ -64,17 +64,9 @@ id="layer1" transform="translate(0,-1036.3622)"> - + id="path3086" /> diff --git a/core/img/actions/search.svg b/core/img/actions/search.svg new file mode 100644 index 0000000000..c8d9d848c4 --- /dev/null +++ b/core/img/actions/search.svg @@ -0,0 +1,1632 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/actions/share.png b/core/img/actions/share.png index 300ce57544..62c4627f31 100644 Binary files a/core/img/actions/share.png and b/core/img/actions/share.png differ diff --git a/core/img/actions/share.svg b/core/img/actions/share.svg index 7812971e38..a5f2f8cb4d 100644 --- a/core/img/actions/share.svg +++ b/core/img/actions/share.svg @@ -14,7 +14,7 @@ id="svg2" version="1.1" inkscape:version="0.48.1 r9760" - sodipodi:docname="New document 1"> + sodipodi:docname="share.svg"> image/svg+xml - + @@ -62,7 +62,7 @@ id="layer1" transform="translate(0,-1036.3622)"> diff --git a/core/img/actions/shared.png b/core/img/actions/shared.png new file mode 100644 index 0000000000..073ff74168 Binary files /dev/null and b/core/img/actions/shared.png differ diff --git a/core/img/actions/shared.svg b/core/img/actions/shared.svg new file mode 100644 index 0000000000..2302cc9891 --- /dev/null +++ b/core/img/actions/shared.svg @@ -0,0 +1,1738 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/actions/sound-off.png b/core/img/actions/sound-off.png new file mode 100644 index 0000000000..7900e500c9 Binary files /dev/null and b/core/img/actions/sound-off.png differ diff --git a/core/img/actions/sound-off.svg b/core/img/actions/sound-off.svg new file mode 100644 index 0000000000..053291311f --- /dev/null +++ b/core/img/actions/sound-off.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/core/img/actions/sound.png b/core/img/actions/sound.png new file mode 100644 index 0000000000..838c9cee17 Binary files /dev/null and b/core/img/actions/sound.png differ diff --git a/core/img/actions/sound.svg b/core/img/actions/sound.svg new file mode 100644 index 0000000000..6feea076a4 --- /dev/null +++ b/core/img/actions/sound.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/core/img/filetypes/audio.png b/core/img/filetypes/audio.png new file mode 100644 index 0000000000..4c844425d6 Binary files /dev/null and b/core/img/filetypes/audio.png differ diff --git a/core/img/filetypes/audio.svg b/core/img/filetypes/audio.svg new file mode 100644 index 0000000000..1f39766097 --- /dev/null +++ b/core/img/filetypes/audio.svg @@ -0,0 +1,1670 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/mimetypes/file.png b/core/img/filetypes/file.png similarity index 100% rename from core/img/mimetypes/file.png rename to core/img/filetypes/file.png diff --git a/core/img/filetypes/file.svg b/core/img/filetypes/file.svg new file mode 100644 index 0000000000..478714b75d --- /dev/null +++ b/core/img/filetypes/file.svg @@ -0,0 +1,1841 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/image.png b/core/img/filetypes/image.png new file mode 100644 index 0000000000..980a7c6981 Binary files /dev/null and b/core/img/filetypes/image.png differ diff --git a/core/img/filetypes/image.svg b/core/img/filetypes/image.svg new file mode 100644 index 0000000000..26c3d6312c --- /dev/null +++ b/core/img/filetypes/image.svg @@ -0,0 +1,1697 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/jquery-tipsy.gif b/core/img/jquery-tipsy.gif new file mode 100644 index 0000000000..eb7718dfc1 Binary files /dev/null and b/core/img/jquery-tipsy.gif differ diff --git a/files/img/loading.gif b/core/img/loading.gif similarity index 100% rename from files/img/loading.gif rename to core/img/loading.gif diff --git a/core/img/logo-wide.png b/core/img/logo-wide.png new file mode 100644 index 0000000000..b2c16a0f60 Binary files /dev/null and b/core/img/logo-wide.png differ diff --git a/core/img/logo-wide.svg b/core/img/logo-wide.svg new file mode 100644 index 0000000000..73b37cc7aa --- /dev/null +++ b/core/img/logo-wide.svg @@ -0,0 +1,875 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/img/mimetypes/audio.png b/core/img/mimetypes/audio.png deleted file mode 100644 index 6333b947f0..0000000000 Binary files a/core/img/mimetypes/audio.png and /dev/null differ diff --git a/core/img/mimetypes/image.png b/core/img/mimetypes/image.png deleted file mode 100644 index 3dda2729bc..0000000000 Binary files a/core/img/mimetypes/image.png and /dev/null differ diff --git a/core/img/owncloud-logo-small-white.png b/core/img/owncloud-logo-small-white.png deleted file mode 100644 index c0d8a92d83..0000000000 Binary files a/core/img/owncloud-logo-small-white.png and /dev/null differ diff --git a/core/img/places/folder.svg b/core/img/places/folder.svg new file mode 100644 index 0000000000..c04b00fedc --- /dev/null +++ b/core/img/places/folder.svg @@ -0,0 +1,1830 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/files/img/home.png b/core/img/places/home.png similarity index 100% rename from files/img/home.png rename to core/img/places/home.png diff --git a/core/img/places/home.svg b/core/img/places/home.svg new file mode 100644 index 0000000000..4b45ef12bc --- /dev/null +++ b/core/img/places/home.svg @@ -0,0 +1,1779 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/js/jquery-showpassword.js b/core/js/jquery-showpassword.js new file mode 100644 index 0000000000..0f4678327a --- /dev/null +++ b/core/js/jquery-showpassword.js @@ -0,0 +1,113 @@ +/* +* @name Show Password +* @descripton +* @version 1.3 +* @requires Jquery 1.5 +* +* @author Jan Jarfalk +* @author-email jan.jarfalk@unwrongest.com +* @author-website http://www.unwrongest.com +* +* @special-thanks Michel Gratton +* +* @licens MIT License - http://www.opensource.org/licenses/mit-license.php +*/ +(function($){ + $.fn.extend({ + showPassword: function(c) { + + // Setup callback object + var callback = {'fn':null,'args':{}} + callback.fn = c; + + // Clones passwords and turn the clones into text inputs + var cloneElement = function( element ) { + + var $element = $(element); + + $clone = $(""); + + // Name added for JQuery Validation compatibility + // Element name is required to avoid script warning. + $clone.attr({ + 'type' : 'text', + 'class' : $element.attr('class'), + 'style' : $element.attr('style'), + 'size' : $element.attr('size'), + 'name' : $element.attr('name')+'-clone', + 'tabindex' : $element.attr('tabindex') + }); + + return $clone; + + }; + + // Transfers values between two elements + var update = function(a,b){ + b.val(a.val()); + }; + + // Shows a or b depending on checkbox + var setState = function( checkbox, a, b ){ + + if(checkbox.is(':checked')){ + update(a,b); + b.show(); + a.hide(); + } else { + update(b,a); + b.hide(); + a.show(); + } + + }; + + return this.each(function() { + + var $input = $(this), + $checkbox = $($input.data('typetoggle')); + + // Create clone + var $clone = cloneElement($input); + $clone.insertAfter($input); + + // Set callback arguments + if(callback.fn){ + callback.args.input = $input; + callback.args.checkbox = $checkbox; + callback.args.clone = $clone; + } + + + + $checkbox.bind('click', function() { + setState( $checkbox, $input, $clone ); + }); + + $input.bind('keyup', function() { + update( $input, $clone ) + }); + + $clone.bind('keyup', function(){ + update( $clone, $input ); + + // Added for JQuery Validation compatibility + // This will trigger validation if it's ON for keyup event + $input.trigger('keyup'); + + }); + + // Added for JQuery Validation compatibility + // This will trigger validation if it's ON for blur event + $clone.bind('blur', function() { $input.trigger('focusout'); }); + + setState( $checkbox, $input, $clone ); + + if( callback.fn ){ + callback.fn( callback.args ); + } + + }); + } + }); +})(jQuery); diff --git a/core/js/jquery-tipsy.js b/core/js/jquery-tipsy.js new file mode 100644 index 0000000000..9567ed3bac --- /dev/null +++ b/core/js/jquery-tipsy.js @@ -0,0 +1,241 @@ +// tipsy, facebook style tooltips for jquery +// version 1.0.0a +// (c) 2008-2010 jason frame [jason@onehackoranother.com] +// released under the MIT license + +(function($) { + + 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': + tp = {top: pos.top + pos.height + this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2}; + break; + case 's': + tp = {top: pos.top - actualHeight - this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2}; + break; + case 'e': + tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth - this.options.offset}; + break; + case 'w': + tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width + this.options.offset}; + break; + } + + if (gravity.length == 2) { + if (gravity.charAt(1) == 'w') { + tp.left = pos.left + pos.width / 2 - 15; + } else { + tp.left = pos.left + pos.width / 2 - actualWidth + 15; + } + } + + $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. + // For example, you could store the gravity in a 'tipsy-gravity' attribute: + // return $.extend({}, options, {gravity: $(ele).attr('tipsy-gravity') || 'n' }); + // (remember - do not modify 'options' in place!) + $.fn.tipsy.elementOptions = function(ele, options) { + return $.metadata ? $.extend({}, options, $(ele).metadata()) : options; + }; + + $.fn.tipsy.autoNS = function() { + return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n'; + }; + + $.fn.tipsy.autoWE = function() { + 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 dc8345545a..2f495321b8 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -27,7 +27,7 @@ t.cache={}; OC={ webroot:oc_webroot, - currentUser:oc_current_user, + currentUser:(typeof oc_current_user!=='undefined')?oc_current_user:false, coreApps:['files','admin','log','search','settings','core','3rdparty'], /** * get an absolute url to a file in an appen @@ -202,6 +202,22 @@ $(document).ready(function(){ var src=element.attr('src'); element.attr('src',src.substr(0,src.length-3)+'png'); }); + $('.svg').each(function(index,element){ + element=$(element); + var background=element.css('background-image'); + if(background && background!='none'){ + background=background.substr(0,background.length-4)+'png)'; + element.css('background-image',background); + } + element.find('*').each(function(index,element) { + element=$(element); + var background=element.css('background-image'); + if(background && background!='none'){ + background=background.substr(0,background.length-4)+'png)'; + element.css('background-image',background); + } + }); + }); }; $('form.searchbox').submit(function(event){ event.preventDefault(); @@ -267,12 +283,38 @@ $(document).ready(function(){ }); if($('body').attr("id")=="body-user") { $('#settings #expanddiv').hide(); } - $('#settings #expand').click(function() { + $('#settings #expand').click(function(event) { $('#settings #expanddiv').slideToggle(); + event.stopPropagation(); }); + $('#settings #expanddiv').click(function(event){ + event.stopPropagation(); + }) $('#settings #expand').hover(function(){ $('#settings #expand+span').fadeToggle(); - }) + }); + $(window).click(function(){//hide the settings menu when clicking oustide it + if($('body').attr("id")=="body-user"){ + $('#settings #expanddiv').slideUp(); + } + }); + + // 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){ @@ -298,118 +340,3 @@ if (!Array.prototype.map){ return res; }; } - - -/* -* @name Show Password -* @descripton -* @version 1.3 -* @requires Jquery 1.5 -* -* @author Jan Jarfalk -* @author-email jan.jarfalk@unwrongest.com -* @author-website http://www.unwrongest.com -* -* @special-thanks Michel Gratton -* -* @licens MIT License - http://www.opensource.org/licenses/mit-license.php -*/ -(function($){ - $.fn.extend({ - showPassword: function(c) { - - // Setup callback object - var callback = {'fn':null,'args':{}} - callback.fn = c; - - // Clones passwords and turn the clones into text inputs - var cloneElement = function( element ) { - - var $element = $(element); - - $clone = $(""); - - // Name added for JQuery Validation compatibility - // Element name is required to avoid script warning. - $clone.attr({ - 'type' : 'text', - 'class' : $element.attr('class'), - 'style' : $element.attr('style'), - 'size' : $element.attr('size'), - 'name' : $element.attr('name')+'-clone', - 'tabindex' : $element.attr('tabindex') - }); - - return $clone; - - }; - - // Transfers values between two elements - var update = function(a,b){ - b.val(a.val()); - }; - - // Shows a or b depending on checkbox - var setState = function( checkbox, a, b ){ - - if(checkbox.is(':checked')){ - update(a,b); - b.show(); - a.hide(); - } else { - update(b,a); - b.hide(); - a.show(); - } - - }; - - return this.each(function() { - - var $input = $(this), - $checkbox = $($input.data('typetoggle')); - - // Create clone - var $clone = cloneElement($input); - $clone.insertAfter($input); - - // Set callback arguments - if(callback.fn){ - callback.args.input = $input; - callback.args.checkbox = $checkbox; - callback.args.clone = $clone; - } - - - - $checkbox.bind('click', function() { - setState( $checkbox, $input, $clone ); - }); - - $input.bind('keyup', function() { - update( $input, $clone ) - }); - - $clone.bind('keyup', function(){ - update( $clone, $input ); - - // Added for JQuery Validation compatibility - // This will trigger validation if it's ON for keyup event - $input.trigger('keyup'); - - }); - - // Added for JQuery Validation compatibility - // This will trigger validation if it's ON for blur event - $clone.bind('blur', function() { $input.trigger('focusout'); }); - - setState( $checkbox, $input, $clone ); - - if( callback.fn ){ - callback.fn( callback.args ); - } - - }); - } - }); -})(jQuery); diff --git a/core/js/listview.js b/core/js/listview.js new file mode 100644 index 0000000000..e3e5ebdab8 --- /dev/null +++ b/core/js/listview.js @@ -0,0 +1,71 @@ +function ListView(element){ + this.element=element; +} + +ListView.generateTable=function(collumns){ + var html='
      '; + html+=''; + $.each(collumns,function(index,collumn){ + html+=''; + }); + html+=''; + html+=''; + html+=''; + html+'' + $.each(collumns,function(index,collumn){ + html+='' + html+=''; + html='
      '+collumn+'
      '; + }); + html+'
      '; + return $(html); +} + +ListView.prototype={ + rows:{}, + hoverElements:{}, + addRow:function(id,data,extraData){ + var tr=this.element.find('tr.template').clone(); + tr.removeClass('template'); + $.each(data,function(name,value){ + tr.children('td.'+name).text(value); + tr.attr('data-'+name,value); + }); + $.each(extraData,function(name,value){ + tr.attr('data-'+name,value); + }); + this.rows[id]=data; + tr.data('id',id); + this.element.children('tbody').append(tr); + }, + removeRow:function(id){ + this.rows[id].remove(); + delete this.rows[id]; + }, + hoverHandeler:function(tr){ + $.each(this.hoverElement,function(index,collumn){ + $.each(collumn,function(index,element){ + var html=''; + var element=$(html); + element.append($('')); + element.click(element.callback); + tr.children('td.'+collumn).append(element) + }); + }); + if(this.deleteCallback){ + + } + }, + hoverHandelerOut:function(tr){ + tr.find('*.hoverElement').remove(); + }, + addHoverElement:function(collumn,icon,title,callback){ + if(!this.hoverElements[collumn]){ + this.hoverElements[collumn]=[]; + } + this.hoverElements[row].push({icon:icon,callback:callback,title:title}); + }, + empty:function(){ + this.element.children('tr:not(.template)').remove(); + } +} \ No newline at end of file diff --git a/core/js/setup.js b/core/js/setup.js index 3fb895cc41..736bedac75 100644 --- a/core/js/setup.js +++ b/core/js/setup.js @@ -1,4 +1,5 @@ $(document).ready(function() { + $('#selectDbType').buttonset(); $('#datadirField').hide(250); if($('#hasSQLite').val()=='true'){ $('#databaseField').hide(250); 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 80c3c27308..ebd726b4fb 100644 --- a/core/templates/installation.php +++ b/core/templates/installation.php @@ -25,34 +25,39 @@
      t( 'Configure the database' ); ?> +
      -

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

      +

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

      -

      />

      + /> + -

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

      +

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

      - /> + /> + -

      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..04bb21896f 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( 'gives you the freedom to control your own data on the internet' ); ?>

      diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index 849d3a1a09..2e70fa2938 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -29,39 +29,27 @@