From be6b5c8e774f9e389e4ff4a817caa3ebf5677182 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 21 Jul 2011 22:01:55 +0200 Subject: [PATCH 01/73] some work on the updated interface --- core/css/styles.css | 49 ++++---------------- core/img/breadcrumb-divider.png | Bin 0 -> 1012 bytes core/templates/layout.user.php | 7 ++- files/css/files.css | 46 ++++++++++++++++++- files/js/filelist.js | 8 +--- files/js/files.js | 68 ++++++++++++++++++++++++---- files/templates/index.php | 24 +++++----- files/templates/part.breadcrumb.php | 5 +- files/templates/part.list.php | 5 +- 9 files changed, 133 insertions(+), 79 deletions(-) create mode 100644 core/img/breadcrumb-divider.png diff --git a/core/css/styles.css b/core/css/styles.css index f9b536a2b0..2bc2988225 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -1,6 +1,6 @@ * { margin:0; padding:0; border:0; } body { background:#fefefe url('../img/body_background.jpg') repeat-y left top; font:normal 80%/1.6em "Lucida Grande", Arial, Verdana, sans-serif; color:#000; } -#header { position:fixed; top:0; z-index:100; width:100%; height:5.5em; padding:0.5em 1.5em; background:url('../img/header-a.png') repeat-x left top; } +#header { position:fixed; top:0; z-index:100; width:100%; height:2.5em; padding:0.5em 1.5em; background:url('../img/header-a.png') repeat-x left top; } #body-settings #header { background-image:url('../img/header-settings-a.png'); } #owncloud { float:left; margin:0 0 0 2em; } h1 { margin:1em 3em 1em 0; border-bottom:1px solid #666; text-transform:uppercase; font-weight:normal; font-style:italic; color:#666; } @@ -20,7 +20,7 @@ form input[type="button"], form input[type="text"] { font-size: 0.9em; } fieldset { padding:1em; background-color:#f7f7f7; border:1px solid #ddd; max-width:600px; margin:2em 2em 2em 3em; } legend { padding: 0.5em; font-size:1.2em; } -div.controls { width:91%; margin:1em 1em 1em 2em; padding:0.5em 0; background-color:#f7f7f7; border:1px solid #eee; } +div.controls { width:100%; margin:0px; background-color:#f7f7f7; border-bottom:1px solid #eee; position:fixed } /* LOG IN & INSTALLATION ------------------------------------------------------------ */ #body-login { width:100%; background-image:none; background-color:#ddd; } @@ -196,17 +196,17 @@ div.controls { width:91%; margin:1em 1em 1em 2em; padding:0.5em 0; background-co .prettybutton:hover, .prettybutton:focus { background-color:#ccc; outline:0; } /* META NAVIGATION (Settings, Log out) ---------------------------------------------------------------- */ -#metanav { float:right; position:relative; top:1.5em; right:2.5em; list-style:none; margin:0; padding:0; } +#metanav { float:right; position:relative; top:0.5em; right:2.5em; list-style:none; margin:0; padding:0; } #metanav li { display:inline; } #metanav li a { margin:.1em; padding:1em; } #metanav li a:hover, #metanav li a:focus { background:rgba(0,0,0,.5); -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px; outline:0; box-shadow:#555 0 1px 0; -moz-box-shadow:#555 0 1px 0; -webkit-box-shadow:#555 0 1px 0; } #metanav li a img { vertical-align:middle; } /* SEARCH --------------------------------------------------------------------- */ -form.searchbox { display:inline; position:fixed; top:2em; right:10em; margin:0; padding:0; } +form.searchbox { display:inline; position:fixed; top:1em; right:10em; margin:0; padding:0; } /* NAVIGATION ------------------------------------------------------------- */ -#plugins { position:fixed; top:7em; float:left; width:15.7em; padding:0; } +#plugins { position:fixed; top:3.5em; float:left; width:15.7em; padding:0; } #plugins ul { list-style-type:none; border-top:1px solid #ccc; } #plugins a { display:block; padding:0.5em 0.5em 0.5em 3em; background-position:1.5em center; background-repeat:no-repeat; border-bottom:1px solid #ddd; border-top:1px solid #fff; text-decoration:none; font-size:1.2em; color:#666; } #plugins a.active, #plugins a:hover, #plugins a:focus, #plugins a.selected { background-color:#ccc; border-top:1px solid #ccc; border-bottom:1px solid #ccc; color:#000; outline:0; } @@ -215,47 +215,16 @@ form.searchbox { display:inline; position:fixed; top:2em; right:10em; margin:0; #plugins .subentry.active { background-color:#bbb; border-top:1px solid #aaa; border-bottom:1px solid #ccc; color:#000; outline:0; } /* CONTENT ------------------------------------------------------------------ */ -#content { margin:7em 0 0 16em; } -table { margin:1em 5em 2em 3em; } -table tr.mouseOver td { background-color:#eee; } -table th, table td { padding:0; border-bottom:1px solid #ddd; text-align:left; font-style:italic; } -table th { padding:0.5em; } -table td { border-bottom:1px solid #eee; font-style:normal; } -table td.filesize, table td.date { width:5em; padding:0.5em 1em; text-align:right; } -table td.date { width:11em; } -table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; } -table td.filename a { display:block; background-image:url('../img/file.png'); text-decoration:none; } -table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:0.5em 0.5em 0.5em 3em; background-position:1em center; background-repeat:no-repeat; } -table td.filename a:hover, table td.filename a:focus { outline:0; } -table td.filename a:active { outline:0; } -table em { font-weight:bold; } -table td.filename a.folder-up { background-image:url('../img/back.png'); font-style:italic; } -table td.filename a.folder { background-image:url('../img/folder.png'); } -table td.filename a.folder-home { background-image:url('../img/home.png'); } -table td.filename a.folder-music { background-image:url('../img/folder-music.png'); } -table td.filename a.folder-videos { background-image:url('../img/folder-video.png'); } -table td.filename a.folder-shared { background-image:url('../img/folder-shared.png'); } -table td.filename a.folder-images { background-image:url('../img/folder-image.png'); } -table td.filename a.file-txt { background-image:url('../img/file-txt.png'); } -table td.filename a.file-python { background-image:url('../img/file-python.png'); } -table td.filename a.file-php { background-image:url('../img/file.png'); } -table td.login { background-image:url('../img/login.png'); } -table td.logout { background-image:url('../img/logout.png'); } -table td.download { background-image:url('../img/download.png'); } -table td.upload { background-image:url('../img/upload.png'); } -table td.create { background-image:url('../img/folder-new.png'); } -table td.delete { background-image:url('../img/delete.png'); } -#fileList tr input[type=checkbox] { display:none; } -#fileList tr input[type=checkbox]:checked { display:inline; } -#fileList tr:hover input[type=checkbox] { display:inline; } +#content { margin:3.5em 0 0 15.7em; } + /* NAVIGATION BAR */ -span.nav { margin:1em 0 0 2em; padding:0.8em; line-height:16px; font-weight:bold; display:block} +span.nav { padding:1em 0 0 2em; } span.nav a { padding:0.5em 1.5em 0.5em 0.5em; background-position:right center; background-repeat:no-repeat; background-image:url('../img/arrow.png'); text-decoration:none; } span.nav a img { height:16px; vertical-align:text-top; } /* ACTIONS BAR */ -p.actions, div.actions { padding:0; } +p.actions, div.actions { padding:7px; float:right; margin-right:16em; } p.actions a, div.actions a { padding:0.5em 0.5em 0.5em 3em; background-position:1em center; background-repeat:no-repeat; background-image:url('../img/action.png'); border-right:1px solid #eee; text-decoration:none; color:#333; } p.actions a:hover, p.actions a:focus, div.actions a:hover, div.actions a:focus { background-color:#eee; color:#000; outline:0; } p.actions a:active, div.actions a:active { outline:0; } diff --git a/core/img/breadcrumb-divider.png b/core/img/breadcrumb-divider.png new file mode 100644 index 0000000000000000000000000000000000000000..52742e37238296beea96a2f932c5870924a3b3bb GIT binary patch literal 1012 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipe~ z4H-H#9^ME500VSML_t(I%av4JZ`x)UJvQJ#4Z$+`zVLn#bj_P zq1kiwzJ7glo^zh}Js4&f-%qL32f18sPEiyG0F=vR3@WnKYE{?P)}G6<93}`NjB^xO zSCslU4<8l_qSzEg(O;|8MmUbcAVv~E`?(}let!HoUl7F$t!DEr{Er&>;{N^j)9Lib z)oRtPf9%Ib8rHRqCr|dax3^DKRh=)F%O(KOTYU-S=Xv-80RVXM_42at+ta7zN~JOi zfR|;N1b|Yh^eR)EAoRWZES)a=_~=m)z-3L-hR&#a+P0b3f3*%SPBgyL&eri$a_=lGj9V<0Z)uu7 z)}KTNL;yfHjjT6r-V9y6awTN5*>Xb^bxd^6y1^m}LPv|o=W|9P5#QA0Bu$d!FRaUT z+Rrhgy7k8F%na*rIG(XAtLV?WHyd;#$mvU$#$(Z_H#{+MN)W{F`Valu)0rHf zT)#fS2ZJQbvRQ}2(a_uKo8
+
+ +
    @@ -45,10 +48,6 @@
- -
- -
diff --git a/files/css/files.css b/files/css/files.css index f4da6fae98..f119fe90a7 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -73,7 +73,9 @@ /* FILE TABLE */ table { - width: 90%; + position:relative; + top:37px; + width: 100%; } tbody tr:hover, tbody tr:active, tbody tr.selected { background-color:#eee; } @@ -118,4 +120,46 @@ span.extention{ div.crumb{ float:left; + background-repeat:no-repeat; + background-position:right 0px; + font-size:20px; + padding:8px; +} + +table tr.mouseOver td { background-color:#eee; } +table th, table td { padding:0; border-bottom:1px solid #ddd; text-align:left; font-style:italic; } +table th { padding:0.5em; } +table td { border-bottom:1px solid #eee; font-style:normal; } +table td.filesize, table td.date { width:5em; padding:0.5em 1em; text-align:right; } +table td.date { width:11em; } +table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; } +table td.filename a { display:block; background-image:url('../img/file.png'); text-decoration:none; } +table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:0.5em 0.5em 0.5em 3em; background-position:1em center; background-repeat:no-repeat; } +table td.filename a:hover, table td.filename a:focus { outline:0; } +table td.filename a:active { outline:0; } +table em { font-weight:bold; } +table td.filename a.folder-up { background-image:url('../img/back.png'); font-style:italic; } +table td.filename a.folder { background-image:url('../img/folder.png'); } +table td.filename a.folder-home { background-image:url('../img/home.png'); } +table td.filename a.folder-music { background-image:url('../img/folder-music.png'); } +table td.filename a.folder-videos { background-image:url('../img/folder-video.png'); } +table td.filename a.folder-shared { background-image:url('../img/folder-shared.png'); } +table td.filename a.folder-images { background-image:url('../img/folder-image.png'); } +table td.filename a.file-txt { background-image:url('../img/file-txt.png'); } +table td.filename a.file-python { background-image:url('../img/file-python.png'); } +table td.filename a.file-php { background-image:url('../img/file.png'); } +table td.login { background-image:url('../img/login.png'); } +table td.logout { background-image:url('../img/logout.png'); } +table td.download { background-image:url('../img/download.png'); } +table td.upload { background-image:url('../img/upload.png'); } +table td.create { background-image:url('../img/folder-new.png'); } +table td.delete { background-image:url('../img/delete.png'); } +#fileList tr input[type=checkbox] { display:none; float:left; margin:0.7em; margin-left:1em; } +#fileList tr input[type=checkbox]:checked { display:inline; } +#fileList tr:hover input[type=checkbox] { display:inline; } +#fileList tr:hover td.filename a{background-image:none !important} +#fileList tr.selected td.filename a{background-image:none !important} +#select_all{float:left; margin:0.2em; margin-left:0.6em; } +#selectedActions{ + float:right; } \ No newline at end of file diff --git a/files/js/filelist.js b/files/js/filelist.js index 2c662087ab..9300e31107 100644 --- a/files/js/filelist.js +++ b/files/js/filelist.js @@ -5,11 +5,9 @@ FileList={ addFile:function(name,size,lastModified,loading){ var img=(loading)?'img/loading.gif':'img/file.png'; var html=''; - html+=''; - html+=''+name+''; + html+=''+name+''; html+=''+size+''; html+=''+lastModified+''; - html+=''; html+=''; FileList.insertElement(name,'file',$(html)); if(loading){ @@ -20,11 +18,9 @@ FileList={ }, addDir:function(name,size,lastModified){ var html=''; - html+=''; - html+=''+name+''; + html+=''+name+''; html+=''+size+''; html+=''+lastModified+''; - html+=''; html+=''; FileList.insertElement(name,'dir',$(html)); diff --git a/files/js/files.js b/files/js/files.js index d419121597..4a3de09550 100644 --- a/files/js/files.js +++ b/files/js/files.js @@ -54,24 +54,27 @@ $(document).ready(function() { $('#select_all').click(function() { if($(this).attr('checked')){ // Check all - $('td.selection input:checkbox').attr('checked', true); - $('td.selection input:checkbox').parent().parent().addClass('selected'); + $('td.filename input:checkbox').attr('checked', true); + $('td.filename input:checkbox').parent().parent().addClass('selected'); }else{ // Uncheck all - $('td.selection input:checkbox').attr('checked', false); - $('td.selection input:checkbox').parent().parent().removeClass('selected'); + $('td.filename input:checkbox').attr('checked', false); + $('td.filename input:checkbox').parent().parent().removeClass('selected'); } + procesSelection(); }); - $('td.selection input:checkbox').live('click',function() { + $('td.filename input:checkbox').live('click',function() { + var selectedCount=$('td.filename input:checkbox:checked').length; $(this).parent().parent().toggleClass('selected'); if(!$(this).attr('checked')){ $('#select_all').attr('checked',false); }else{ - if($('td.selection input:checkbox:checked').length==$('td.selection input:checkbox').length){ + if(selectedCount==$('td.filename input:checkbox').length){ $('#select_all').attr('checked',true); } } + procesSelection(); }); $('#file_newfolder_form').submit(function(event) { @@ -109,7 +112,7 @@ $(document).ready(function() { $('.download').live('click',function(event) { var files=''; - $('td.selection input:checkbox:checked').parent().parent().each(function(i,element){ + $('td.filename input:checkbox:checked').parent().parent().each(function(i,element){ files+=';'+$(element).attr('data-file'); }); files=files.substr(1);//remove leading ; @@ -121,9 +124,9 @@ $(document).ready(function() { return false; }); - $('.delete').live('click',function(event) { + $('.delete').click(function(event) { var files=''; - $('td.selection input:checkbox:checked').parent().parent().each(function(i,element){ + $('td.filename input:checkbox:checked').parent().parent().each(function(i,element){ files+=';'+$(element).attr('data-file'); }); files=files.substr(1);//remove leading ; @@ -133,7 +136,7 @@ $(document).ready(function() { data: "dir="+$('#dir').val()+"&files="+encodeURIComponent(files), complete: function(data){ boolOperationFinished(data, function(){ - $('td.selection input:checkbox:checked').parent().parent().each(function(i,element){ + $('td.filename input:checkbox:checked').parent().parent().each(function(i,element){ FileList.remove($(element).attr('data-file')); }); }); @@ -282,4 +285,49 @@ var folderDropOptions={ });} }); } +} + +function procesSelection(){ + var selectedFiles=$('tr[data-type="file"]>td.filename>input:checkbox:checked').parent().parent(); + var selectedFolders=$('tr[data-type="dir"]>td.filename>input:checkbox:checked').parent().parent(); + if(selectedFiles.length==0 && selectedFolders.length==0){ + $('#headerName>span.name').text('Name'); + $('#headerSize').text('Size (MB)'); + }else{ + var totalSize=0; + selectedFiles.each(function(){ + totalSize+=parseInt($(this).attr('data-size')); + }); + selectedFolders.each(function(){ + totalSize+=parseInt($(this).attr('data-size')); + }); + if(totalSize>0){ + totalSize = Math.round(totalSize/(1024*102.4))/10; + if(totalSize < 0.1) { + totalSize='<0.1'; + }else if(totalSize > 1000) { + totalSize= '>1000'; + } + } + $('#headerSize').text(totalSize+' (MB)'); + var selection=''; + if(selectedFiles.length>0){ + if(selectedFiles.length==1){ + selection+='1 File'; + }else{ + selection+=selectedFiles.length+' Files'; + } + if(selectedFolders.length>0){ + selection+=' ,'; + } + } + if(selectedFolders.length>0){ + if(selectedFolders.length==1){ + selection+='1 Folder'; + }else{ + selection+=selectedFolders.length+' Folders'; + } + } + $('#headerName>span.name').text(selection+' Selected'); + } } \ No newline at end of file diff --git a/files/templates/index.php b/files/templates/index.php index efc9290063..7cdb81b2d6 100644 --- a/files/templates/index.php +++ b/files/templates/index.php @@ -1,4 +1,7 @@
+ + +
" id="max_upload"> @@ -14,26 +17,25 @@  
- t( 'Download' ); ?> - - t( 'Delete' ); ?>
- - - - - - - + + - diff --git a/files/templates/part.breadcrumb.php b/files/templates/part.breadcrumb.php index 64e0a47472..20c436926c 100644 --- a/files/templates/part.breadcrumb.php +++ b/files/templates/part.breadcrumb.php @@ -1,8 +1,5 @@ - -
+
")'> ">
\ No newline at end of file diff --git a/files/templates/part.list.php b/files/templates/part.list.php index d717f28885..1468f485c2 100644 --- a/files/templates/part.list.php +++ b/files/templates/part.list.php @@ -1,9 +1,9 @@ -
- + '> - From bc40532109a334165a7c18f55d3c1abd88b866fe Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 21 Jul 2011 22:37:11 +0200 Subject: [PATCH 02/73] give the file sizes some more space --- files/css/files.css | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/files/css/files.css b/files/css/files.css index f119fe90a7..e0b06ea0cb 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -83,10 +83,13 @@ tbody a { color:#000; } table td.filesize, table td.date { - width: 5em; + width: 7em; padding: 0.5em 1em; text-align: right; } +#headerSize{ + text-align:right; +} table td.date { @@ -130,7 +133,6 @@ table tr.mouseOver td { background-color:#eee; } table th, table td { padding:0; border-bottom:1px solid #ddd; text-align:left; font-style:italic; } table th { padding:0.5em; } table td { border-bottom:1px solid #eee; font-style:normal; } -table td.filesize, table td.date { width:5em; padding:0.5em 1em; text-align:right; } table td.date { width:11em; } table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; } table td.filename a { display:block; background-image:url('../img/file.png'); text-decoration:none; } @@ -162,4 +164,5 @@ table td.delete { background-image:url('../img/delete.png'); } #select_all{float:left; margin:0.2em; margin-left:0.6em; } #selectedActions{ float:right; + display:none; } \ No newline at end of file From aa335f57d627e42b14e350f2bdf43112f1f0f2ef Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 21 Jul 2011 23:26:08 +0200 Subject: [PATCH 03/73] only show actions for selected file if there are selected files --- files/js/files.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/files/js/files.js b/files/js/files.js index 4a3de09550..b097023373 100644 --- a/files/js/files.js +++ b/files/js/files.js @@ -293,7 +293,9 @@ function procesSelection(){ if(selectedFiles.length==0 && selectedFolders.length==0){ $('#headerName>span.name').text('Name'); $('#headerSize').text('Size (MB)'); + $('#selectedActions').hide(); }else{ + $('#selectedActions').show(); var totalSize=0; selectedFiles.each(function(){ totalSize+=parseInt($(this).attr('data-size')); From d9a79c0f7eade4915b236c1581ed30714ecab3ff Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 22 Jul 2011 00:18:41 +0200 Subject: [PATCH 04/73] show fileactions inline on hover --- apps/media/css/jplayer.css | 2 +- files/css/files.css | 30 +++++++++++------------------- files/js/fileactions.js | 26 ++++++++++++++++---------- files/js/files.js | 10 ++++++---- files/templates/index.php | 5 +---- 5 files changed, 35 insertions(+), 38 deletions(-) diff --git a/apps/media/css/jplayer.css b/apps/media/css/jplayer.css index c47d20c722..4fd1788239 100644 --- a/apps/media/css/jplayer.css +++ b/apps/media/css/jplayer.css @@ -45,7 +45,7 @@ div.jp-interface { z-index:100; width:25em; left:201px; - top:-10px; + top:-20px; } div.jp-type-playlist{ width:100%; diff --git a/files/css/files.css b/files/css/files.css index e0b06ea0cb..a886958f13 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -2,22 +2,17 @@ #file_menu { - display: none; - position: absolute; right:0px; - background-color: #EEE; + position:absolute; + top:0; } -#file_menu ul +#file_menu a { - list-style-type: none; -} - -#file_menu li a -{ - display: block; - padding: 0.5em 5em 0.5em 2em; - text-decoration: none; + display:block; + float:left; + background-image:none; + text-decoration: none; } .file_upload_form, #file_newfolder_form { @@ -36,12 +31,12 @@ } .file_upload_filename { - background-image:url(../img/file.png); font-weight:bold; + background-image:url("../img/file.png"); font-weight:bold; } .file_upload_start {opacity:0;filter: alpha(opacity = 0);} #file_newfolder_name { - background-image:url(../img/folder.png); font-weight:bold; + background-image:url("../img/folder.png"); font-weight:bold; width: 14em; } @@ -102,11 +97,8 @@ table td.selection, table th.selection, table td.fileaction text-align: center; } -table td.filename a -{ - display: block; - background-image: url(../img/file.png); - text-decoration: none; +td.filename{ + position:relative; } .dropArrow{ diff --git a/files/js/fileactions.js b/files/js/fileactions.js index b683dc0cd3..3ad417c91c 100644 --- a/files/js/fileactions.js +++ b/files/js/fileactions.js @@ -49,33 +49,39 @@ FileActions={ return actions[name]; }, display:function(parent){ - $('#file_menu ul').empty(); + $('#file_menu').empty(); parent.append($('#file_menu')); var actions=FileActions.get(FileActions.getCurrentMimeType(),FileActions.getCurrentType()); for(name in actions){ - var html='
  • '+name+'
  • '; + var html=''+name+''; var element=$(html); element.data('action',name); element.click(function(event){ + event.stopPropagation(); event.preventDefault(); - $('#file_menu').slideToggle(250); var action=actions[$(this).data('action')]; - $('#file_menu ul').empty(); - action(FileActions.getCurrentFile()); + var currentFile=FileActions.getCurrentFile(); + FileActions.hide(); + action(currentFile); }); - $('#file_menu>ul').append(element); + $('#file_menu').append(element); } - $('#file_menu').slideToggle(250); + $('#file_menu').show(); return false; }, + hide:function(){ + $('#file_menu').hide(); + $('#file_menu').empty(); + $('body').append($('#file_menu')); + }, getCurrentFile:function(){ - return $('#file_menu').parents('tr:first').attr('data-file'); + return $('#file_menu').parent().parent().attr('data-file'); }, getCurrentMimeType:function(){ - return $('#file_menu').parents('tr:first').attr('data-mime'); + return $('#file_menu').parent().parent().attr('data-mime'); }, getCurrentType:function(){ - return $('#file_menu').parents('tr:first').attr('data-type'); + return $('#file_menu').parent().parent().attr('data-type'); } } diff --git a/files/js/files.js b/files/js/files.js index b097023373..f1c00650d0 100644 --- a/files/js/files.js +++ b/files/js/files.js @@ -31,11 +31,13 @@ $(document).ready(function() { }); // Sets the file-action buttons behaviour : - $('td.fileaction a').live('click',function(event) { - event.preventDefault(); - FileActions.display($(this).parent()); + $('tr').live('mouseenter',function(event) { + FileActions.display($(this).children('td.filename')); }); - + $('tr').live('mouseleave',function(event) { + FileActions.hide(); + }); + // Sets the file link behaviour : $('td.filename a').live('click',function(event) { event.preventDefault(); diff --git a/files/templates/index.php b/files/templates/index.php index 7cdb81b2d6..18b805529a 100644 --- a/files/templates/index.php +++ b/files/templates/index.php @@ -43,7 +43,4 @@
    t( 'Name' ); ?>t( 'Size (MB)' ); ?> + + t( 'Name' ); ?> + + Download + + Delete + + t( 'Size (MB)' ); ?> t( 'Modified' ); ?>
    + @@ -14,6 +14,5 @@
    -
    -
      -
    -
    + From 9be2dc8290eac4849c8663e2f8eefa3b8882c4fa Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 22 Jul 2011 00:43:35 +0200 Subject: [PATCH 05/73] show fixed filecontrols over the filelist that can scroll underneath it --- core/css/styles.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/css/styles.css b/core/css/styles.css index 2bc2988225..b48092a9c0 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -20,7 +20,7 @@ form input[type="button"], form input[type="text"] { font-size: 0.9em; } fieldset { padding:1em; background-color:#f7f7f7; border:1px solid #ddd; max-width:600px; margin:2em 2em 2em 3em; } legend { padding: 0.5em; font-size:1.2em; } -div.controls { width:100%; margin:0px; background-color:#f7f7f7; border-bottom:1px solid #eee; position:fixed } +div.controls { width:100%; margin:0px; background-color:#f7f7f7; border-bottom:1px solid #eee; position:fixed; z-index:100 } /* LOG IN & INSTALLATION ------------------------------------------------------------ */ #body-login { width:100%; background-image:none; background-color:#ddd; } From d6bf5cd251e4b3ce8a1bbbe09a029148881eeac9 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 22 Jul 2011 15:48:30 +0200 Subject: [PATCH 06/73] show error when trying to upload to large files --- files/css/files.css | 3 +- files/js/files.js | 79 +++++++++++++++++++++++---------------- files/templates/index.php | 6 +++ 3 files changed, 55 insertions(+), 33 deletions(-) diff --git a/files/css/files.css b/files/css/files.css index a886958f13..d45d93441d 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -157,4 +157,5 @@ table td.delete { background-image:url('../img/delete.png'); } #selectedActions{ float:right; display:none; -} \ No newline at end of file +} +#uploadsize-message{display:none} \ No newline at end of file diff --git a/files/js/files.js b/files/js/files.js index f1c00650d0..dc59dda57e 100644 --- a/files/js/files.js +++ b/files/js/files.js @@ -153,40 +153,55 @@ $(document).ready(function() { var uploadId=form.attr('data-upload-id'); var files=this.files; var target=form.children('iframe'); - target.load(function(){ - var response=jQuery.parseJSON(target.contents().find('body').text()); - //set mimetype and if needed filesize - if(response){ - for(var i=0;i0){ - var size=simpleFileSize(files[i].size); - }else{ - var size='Pending'; - } - FileList.addFile(files[i].name,size,uploadTime,true); + totalSize+=files[i].size; + } + if(totalSize>$('#max_upload').val()){ + $( "#uploadsize-message" ).dialog({ + modal: true, + buttons: { + Close: function() { + $( this ).dialog( "close" ); + } + } + }); + }else{ + target.load(function(){ + var response=jQuery.parseJSON(target.contents().find('body').text()); + //set mimetype and if needed filesize + if(response){ + for(var i=0;i0){ + var size=simpleFileSize(files[i].size); + }else{ + var size='Pending'; + } + FileList.addFile(files[i].name,size,uploadTime,true); + } + + //clone the upload form and hide the new one to allow users to start a new upload while the old one is still uploading + var clone=form.clone(); + uploadId++; + clone.attr('data-upload-id',uploadId); + clone.attr('target','file_upload_target_'+uploadId); + clone.children('iframe').attr('name','file_upload_target_'+uploadId) + clone.insertBefore(form); + form.hide(); } - - //clone the upload form and hide the new one to allow users to start a new upload while the old one is still uploading - var clone=form.clone(); - uploadId++; - clone.attr('data-upload-id',uploadId); - clone.attr('target','file_upload_target_'+uploadId); - clone.children('iframe').attr('name','file_upload_target_'+uploadId) - clone.insertBefore(form); - form.hide(); }); //add multiply file upload attribute to all browsers except konqueror (which crashes when it's used) diff --git a/files/templates/index.php b/files/templates/index.php index 18b805529a..b0d4f556f4 100644 --- a/files/templates/index.php +++ b/files/templates/index.php @@ -43,4 +43,10 @@ +
    +

    + t( 'The files you are trying to upload exceed the maximum size for file uploads on this server.' ); ?> +

    +
    + From ceb711dff4ceb02efd1c96b867df050f15ba4a93 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 22 Jul 2011 16:52:35 +0200 Subject: [PATCH 07/73] some work on the breadcrumb navigation for files --- core/css/styles.css | 4 ++-- core/img/breadcrumb-divider-start.png | Bin 0 -> 495 bytes files/css/files.css | 16 ++++++++++++++-- files/js/files.js | 22 ++++++++++++++++++++++ 4 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 core/img/breadcrumb-divider-start.png diff --git a/core/css/styles.css b/core/css/styles.css index b48092a9c0..7a26c2f670 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -206,7 +206,7 @@ div.controls { width:100%; margin:0px; background-color:#f7f7f7; border-bottom:1 form.searchbox { display:inline; position:fixed; top:1em; right:10em; margin:0; padding:0; } /* NAVIGATION ------------------------------------------------------------- */ -#plugins { position:fixed; top:3.5em; float:left; width:15.7em; padding:0; } +#plugins { position:fixed; top:3.5em; float:left; width:15.7em; padding:0; z-index:100; } #plugins ul { list-style-type:none; border-top:1px solid #ccc; } #plugins a { display:block; padding:0.5em 0.5em 0.5em 3em; background-position:1.5em center; background-repeat:no-repeat; border-bottom:1px solid #ddd; border-top:1px solid #fff; text-decoration:none; font-size:1.2em; color:#666; } #plugins a.active, #plugins a:hover, #plugins a:focus, #plugins a.selected { background-color:#ccc; border-top:1px solid #ccc; border-bottom:1px solid #ccc; color:#000; outline:0; } @@ -219,7 +219,7 @@ form.searchbox { display:inline; position:fixed; top:1em; right:10em; margin:0; /* NAVIGATION BAR */ -span.nav { padding:1em 0 0 2em; } +span.nav { display:block; float:left; /*margin-right:55em;*/ } span.nav a { padding:0.5em 1.5em 0.5em 0.5em; background-position:right center; background-repeat:no-repeat; background-image:url('../img/arrow.png'); text-decoration:none; } span.nav a img { height:16px; vertical-align:text-top; } diff --git a/core/img/breadcrumb-divider-start.png b/core/img/breadcrumb-divider-start.png new file mode 100644 index 0000000000000000000000000000000000000000..24d1eb40857a576564a5145f5272290b7fd3eb73 GIT binary patch literal 495 zcmV3$r%`!Kc6#m zW-&9E*#~zgQZsjdSeE4@0wn`}NqRAC&%^-t&Fpy;&jFjQR%*>2(z2?(3aS=UxZ{%kKUvigEV`X0{W; zK*im+yWQ@s2u9M~Ua!{-;bFjrnH3=n+y literal 0 HcmV?d00001 diff --git a/files/css/files.css b/files/css/files.css index d45d93441d..590c7bac36 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -115,10 +115,13 @@ span.extention{ div.crumb{ float:left; + display:block; background-repeat:no-repeat; background-position:right 0px; font-size:20px; - padding:8px; + padding-top:8px; + padding-left:8px; + height:28px; /*36-8*/ } table tr.mouseOver td { background-color:#eee; } @@ -158,4 +161,13 @@ table td.delete { background-image:url('../img/delete.png'); } float:right; display:none; } -#uploadsize-message{display:none} \ No newline at end of file +#uploadsize-message{display:none} + +/* add breadcrumb divider to the File item in navigation panel */ +#plugins li:first-child{ + background-position: 15.7em 0px; + background-repeat:no-repeat; + background-image: url("/owncloud/core/img/breadcrumb-divider-start.png"); + width:15.7em; + padding-right:11px; +} diff --git a/files/js/files.js b/files/js/files.js index dc59dda57e..49e2f412d4 100644 --- a/files/js/files.js +++ b/files/js/files.js @@ -208,6 +208,28 @@ $(document).ready(function() { if(navigator.userAgent.search(/konqueror/i)==-1){ $('.file_upload_start').attr('multiple','multiple') } + + //if the breadcrumb is to long, start by replacing foldernames with '...' except for the current folder + var crumb=$('div.crumb').first(); + while($('div.controls').height()>40 && crumb.next('div.crumb').length>0){ + crumb.children('a').text('...'); + crumb=crumb.next('div.crumb'); + } + //if that isn't enough, start removing items from the breacrumb except for the current folder and it's parent + var crumb=$('div.crumb').first(); + var next=crumb.next('div.crumb'); + while($('div.controls').height()>40 && next.next('div.crumb').length>0){ + crumb.remove(); + crumb=next; + next=crumb.next('div.crumb'); + } + //still not enough, start shorting down the current folder name + var crumb=$('div.crumb>a').last(); + while($('div.controls').height()>40 && crumb.text().length>6){ + var text=crumb.text() + text=text.substr(0,text.length-6)+'...'; + crumb.text(text); + } }); var adjustNewFolderSize = function() { From b0f166fc836129464a2bdfa03357e844568c1104 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 26 Jul 2011 16:43:12 +0200 Subject: [PATCH 08/73] some javascript changes --- core/js/js.js | 19 ++++++++++ files/js/files.js | 91 +++++++++++++++++++++++++---------------------- 2 files changed, 67 insertions(+), 43 deletions(-) diff --git a/core/js/js.js b/core/js/js.js index 9117f08349..2dac6907d9 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -55,3 +55,22 @@ OC={ $('head').append(style); } } + +if (!Array.prototype.filter) { + Array.prototype.filter = function(fun /*, thisp*/) { + var len = this.length >>> 0; + if (typeof fun != "function") + throw new TypeError(); + + var res = []; + var thisp = arguments[1]; + for (var i = 0; i < len; i++) { + if (i in this) { + var val = this[i]; // in case fun mutates this + if (fun.call(thisp, val, i, this)) + res.push(val); + } + } + return res; + }; +} \ No newline at end of file diff --git a/files/js/files.js b/files/js/files.js index 2f1ba907ba..7842c68030 100644 --- a/files/js/files.js +++ b/files/js/files.js @@ -4,31 +4,8 @@ $(document).ready(function() { //drag/drop of files $('#fileList tr td.filename').draggable(dragOptions); $('#fileList tr[data-type="dir"] td.filename').droppable(folderDropOptions); - $('div.crumb').droppable({ - drop: function( event, ui ) { - var file=ui.draggable.text().trim(); - var target=$(this).attr('data-dir'); - var dir=$('#dir').val(); - while(dir.substr(0,1)=='/'){//remove extra leading /'s - dir=dir.substr(1); - } - dir='/'+dir; - if(dir.substr(-1,1)!='/'){ - dir=dir+'/'; - } - if(target==dir){ - return; - } - $.ajax({ - url: 'ajax/move.php', - data: "dir="+dir+"&file="+file+'&target='+target, - complete: function(data){boolOperationFinished(data, function(){ - FileList.remove(file); - });} - }); - }, - tolerance: 'pointer' - }); + $('div.crumb').droppable(crumbDropOptions); + $('#plugins>ul>li:first-child').droppable(crumbDropOptions); // Sets the file-action buttons behaviour : $('tr').live('mouseenter',function(event) { @@ -41,10 +18,10 @@ $(document).ready(function() { // Sets the file link behaviour : $('td.filename a').live('click',function(event) { event.preventDefault(); - var filename=$(this).parent().parent().attr('data-file'); + var filename=$(this).parent().parent().data('file'); if(!FileList.isLoading(filename)){ - var mime=$(this).parent().parent().attr('data-mime'); - var type=$(this).parent().parent().attr('data-type'); + var mime=$(this).parent().parent().data('mime'); + var type=$(this).parent().parent().data('type'); var action=FileActions.getDefault(mime,type); if(action){ action(filename); @@ -131,7 +108,7 @@ $(document).ready(function() { complete: function(data){ boolOperationFinished(data, function(){ $('td.filename input:checkbox:checked').parent().parent().each(function(i,element){ - FileList.remove($(element).attr('data-file')); + FileList.remove($(element).data('file')); }); }); } @@ -165,7 +142,7 @@ $(document).ready(function() { if(response){ for(var i=0;itd.filename>input:checkbox:checked').parent().parent(); - var selectedFolders=$('tr[data-type="dir"]>td.filename>input:checkbox:checked').parent().parent(); + var selected=getSelectedFiles(); + var selectedFiles=selected.filter(function(el){return el.type=='file'}); + var selectedFolders=selected.filter(function(el){return el.type=='dir'}); if(selectedFiles.length==0 && selectedFolders.length==0){ $('#headerName>span.name').text('Name'); $('#headerSize').text('Size (MB)'); @@ -328,12 +331,12 @@ function procesSelection(){ }else{ $('#selectedActions').show(); var totalSize=0; - selectedFiles.each(function(){ - totalSize+=parseInt($(this).attr('data-size')); - }); - selectedFolders.each(function(){ - totalSize+=parseInt($(this).attr('data-size')); - }); + for(var i=0;i0){ totalSize = Math.round(totalSize/(1024*102.4))/10; if(totalSize < 0.1) { @@ -370,22 +373,24 @@ function procesSelection(){ * @param string property (option) the property of the file requested * @return array * - * possible values for property: name, mime + * possible values for property: name, mime, size and type * if property is set, an array with that property for each file is returnd * if it's ommited an array of objects with all properties is returned */ function getSelectedFiles(property){ - var elements=$('td.selection input:checkbox:checked').parent().parent(); + var elements=$('td.filename input:checkbox:checked').parent().parent(); var files=[]; elements.each(function(i,element){ var file={ - name:$(element).attr('data-file'), - mime:$(element).attr('data-mime') + name:$(element).data('file'), + mime:$(element).data('mime'), + type:$(element).data('type'), + size:$(element).data('size'), }; if(property){ files.push(file[property]); }else{ - files.push(); + files.push(file); } }); return files; From 48fe201dd57e0958ed85a1a174adf3526f622605 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 26 Jul 2011 16:43:41 +0200 Subject: [PATCH 09/73] fit player controls in smaller header --- apps/media/css/player.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/media/css/player.css b/apps/media/css/player.css index bf404f515f..a8c978514d 100644 --- a/apps/media/css/player.css +++ b/apps/media/css/player.css @@ -1,4 +1,4 @@ -#jp-interface{position:fixed;z-index:100;width:25em;left:201px;top:-10px;height:80px;border-bottom:none;} +#jp-interface{position:fixed;z-index:100;width:25em;left:201px;top:-20px;height:80px;border-bottom:none;} #jp-interface.player{display:hidden;} #jp-interface ul.jp-controls{list-style-type:none;padding:0;} #jp-interface ul.jp-controls li{display:inline;} @@ -25,5 +25,5 @@ a.jp-unmute{background:url("../img/jplayer.blue.monday.png") 0 -170px no-repeat; a.jp-unmute:hover{background:url("../img/jplayer.blue.monday.png") -19px -186px no-repeat;} div.jp-volume-bar{position:absolute;overflow:hidden;background:url("../img/jplayer.blue.monday.png") 0 -250px repeat-x;width:46px;height:5px;cursor:pointer;top:37px;left:324px;} div.jp-volume-bar-value{background:url("../img/jplayer.blue.monday.png") 0 -256px repeat-x;width:0;height:5px;} -div.jp-current-time,div.jp-duration{position:absolute;font-size:.64em;font-style:oblique;top:49px;left:164px;width:122px;} +div.jp-current-time,div.jp-duration{position:absolute;font-size:.64em;font-style:oblique;top:45px;left:164px;width:122px;} div.jp-duration{text-align:right;} From be45ad904e46a3d11dccb5cda93e827d7e023910 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 26 Jul 2011 16:58:46 +0200 Subject: [PATCH 10/73] remove debug alert --- files/js/filelist.js | 1 - 1 file changed, 1 deletion(-) diff --git a/files/js/filelist.js b/files/js/filelist.js index 46ddc230cf..973fda23e1 100644 --- a/files/js/filelist.js +++ b/files/js/filelist.js @@ -54,7 +54,6 @@ FileList={ } } } - alert(pos); if(fileElements.length){ if(pos==-1){ $(fileElements[0]).before(element); From 00da23faf6b17cc39c310fab163d122f646098a5 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 26 Jul 2011 17:00:29 +0200 Subject: [PATCH 11/73] no longer show deleted files as selected --- files/js/files.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/files/js/files.js b/files/js/files.js index 7842c68030..e1ac4e172f 100644 --- a/files/js/files.js +++ b/files/js/files.js @@ -107,9 +107,11 @@ $(document).ready(function() { data: "dir="+$('#dir').val()+"&files="+encodeURIComponent(files), complete: function(data){ boolOperationFinished(data, function(){ - $('td.filename input:checkbox:checked').parent().parent().each(function(i,element){ - FileList.remove($(element).data('file')); - }); + var files=getSelectedFiles('name'); + for(var i=0;i Date: Wed, 27 Jul 2011 12:05:41 +0200 Subject: [PATCH 12/73] updated localization script and removed duplicate strings --- l10n/l10n.pl | 12 ++++-------- l10n/templates/admin.pot | 2 +- l10n/templates/core.pot | 2 +- l10n/templates/help.pot | 2 +- l10n/templates/log.pot | 2 +- l10n/templates/settings.pot | 2 +- 6 files changed, 9 insertions(+), 13 deletions(-) diff --git a/l10n/l10n.pl b/l10n/l10n.pl index 0ad33d2116..b993727e8f 100644 --- a/l10n/l10n.pl +++ b/l10n/l10n.pl @@ -3,6 +3,7 @@ use strict; use Locale::PO; use Cwd; use Data::Dumper; +use File::Path; sub crawl{ my( $dir ) = @_; @@ -28,7 +29,7 @@ sub crawl{ my $task = shift( @ARGV ); my $place = '..'; -die( "Usuage: l10n.pl task\ntask: read, write\n") unless $task && $place; +die( "Usage: l10n.pl task\ntask: read, write\n" ) unless $task && $place; # Our current position my $whereami = cwd(); @@ -38,6 +39,7 @@ die( "Program must be executed in a l10n-folder called 'l10n'" ) unless $wheream my @dirs = crawl( $place ); # Languages +rmtree( 'templates' ); mkdir( 'templates' ) unless -d 'templates'; my @languages = (); @@ -55,13 +57,7 @@ if( $task eq 'read' ){ my $app = pop( @temp ); chdir( $dir ); my $output = "${whereami}/templates/$app.pot"; - - if( -e $output ){ - `xgettext --files-from=xgettextfiles --join-existing --output="$output" --keyword=t` - } - else{ - `xgettext --files-from=xgettextfiles --output="$output" --keyword=t` - } + `xgettext --files-from=xgettextfiles --output="$output" --keyword=t`; chdir( $whereami ); } } diff --git a/l10n/templates/admin.pot b/l10n/templates/admin.pot index 411ecacce9..d623336518 100644 --- a/l10n/templates/admin.pot +++ b/l10n/templates/admin.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-07-27 08:52+0200\n" +"POT-Creation-Date: 2011-07-27 12:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index 8b73bf7ef1..6bcadf8cfc 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-07-27 08:52+0200\n" +"POT-Creation-Date: 2011-07-27 12:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/help.pot b/l10n/templates/help.pot index 362fdf123d..e5ffb5a4cf 100644 --- a/l10n/templates/help.pot +++ b/l10n/templates/help.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-07-27 08:52+0200\n" +"POT-Creation-Date: 2011-07-27 12:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/log.pot b/l10n/templates/log.pot index 54b633c2f1..ea98e5c2b1 100644 --- a/l10n/templates/log.pot +++ b/l10n/templates/log.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-07-27 08:52+0200\n" +"POT-Creation-Date: 2011-07-27 12:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index 8c077f5688..24e255fa25 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-07-27 08:52+0200\n" +"POT-Creation-Date: 2011-07-27 12:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" From 6585e83037541bc2126b111b39ce867f9ec09ad3 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 27 Jul 2011 16:38:23 +0200 Subject: [PATCH 13/73] fix flash fallback for media player and bumb version of jplayer to 2.0.23 --- apps/media/css/player.css | 2 +- apps/media/js/Jplayer.swf | Bin 7679 -> 7679 bytes apps/media/js/jquery.jplayer.min.js | 78 +--------------------------- apps/media/js/player.js | 1 + apps/media/templates/player.php | 3 +- 5 files changed, 4 insertions(+), 80 deletions(-) diff --git a/apps/media/css/player.css b/apps/media/css/player.css index bf404f515f..a21b82d1f4 100644 --- a/apps/media/css/player.css +++ b/apps/media/css/player.css @@ -1,5 +1,5 @@ #jp-interface{position:fixed;z-index:100;width:25em;left:201px;top:-10px;height:80px;border-bottom:none;} -#jp-interface.player{display:hidden;} +#jp-interface div.player{height:0px} #jp-interface ul.jp-controls{list-style-type:none;padding:0;} #jp-interface ul.jp-controls li{display:inline;} #jp-interface ul.jp-controls a{position:absolute;overflow:hidden;text-indent:-9999px;} diff --git a/apps/media/js/Jplayer.swf b/apps/media/js/Jplayer.swf index 9487f49b5a6cacf53f320a41c21f94d1cd35feb1..c213fd578e52c04c9d53e32fb8038b75c4d49802 100644 GIT binary patch literal 7679 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 literal 7679 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 tpEwp3y8olRx)HX3>%G!>fvepFu0cZU';f[1]='';f[2]='';f[3]='';f[4]='';b=document.createElement(d);for(d=0;d0?100*d/this.status.duration:0;if(typeof a.seekable==="object"&&a.seekable.length>0){e=this.status.duration>0?100*a.seekable.end(a.seekable.length-1)/this.status.duration:100;g=100*a.currentTime/a.seekable.end(a.seekable.length-1)}else{e=100;g=f}if(b)f=g=d=0;this.status.seekPercent=e;this.status.currentPercentRelative=g;this.status.currentPercentAbsolute=f;this.status.currentTime=d},_resetStatus:function(){this.status=c.extend({},this.status,c.jPlayer.prototype.status)}, -_trigger:function(a,b,d){a=c.Event(a);a.jPlayer={};a.jPlayer.version=c.extend({},this.version);a.jPlayer.status=c.extend(true,{},this.status);a.jPlayer.html=c.extend(true,{},this.html);a.jPlayer.flash=c.extend(true,{},this.flash);if(b)a.jPlayer.error=c.extend({},b);if(d)a.jPlayer.warning=c.extend({},d);this.element.trigger(a)},jPlayerFlashEvent:function(a,b){if(a===c.jPlayer.event.ready&&!this.internal.ready){this.internal.ready=true;this.version.flash=b.version;this.version.needFlash!==this.version.flash&& -this._error({type:c.jPlayer.error.VERSION,context:this.version.flash,message:c.jPlayer.errorMsg.VERSION+this.version.flash,hint:c.jPlayer.errorHint.VERSION});this._trigger(a)}if(this.flash.gate)switch(a){case c.jPlayer.event.progress:this._getFlashStatus(b);this._updateInterface();this._trigger(a);break;case c.jPlayer.event.timeupdate:this._getFlashStatus(b);this._updateInterface();this._trigger(a);break;case c.jPlayer.event.play:this._seeked();this._updateButtons(true);this._trigger(a);break;case c.jPlayer.event.pause:this._updateButtons(false); -this._trigger(a);break;case c.jPlayer.event.ended:this._updateButtons(false);this._trigger(a);break;case c.jPlayer.event.error:this.status.waitForLoad=true;this.status.waitForPlay=true;this.status.video&&this.internal.flash.jq.css({width:"0px",height:"0px"});this._validString(this.status.media.poster)&&this.internal.poster.jq.show();this.css.jq.videoPlay.length&&this.css.jq.videoPlay.show();this.status.video?this._flash_setVideo(this.status.media):this._flash_setAudio(this.status.media);this._error({type:c.jPlayer.error.URL, -context:b.src,message:c.jPlayer.errorMsg.URL,hint:c.jPlayer.errorHint.URL});break;case c.jPlayer.event.seeking:this._seeking();this._trigger(a);break;case c.jPlayer.event.seeked:this._seeked();this._trigger(a);break;default:this._trigger(a)}return false},_getFlashStatus:function(a){this.status.seekPercent=a.seekPercent;this.status.currentPercentRelative=a.currentPercentRelative;this.status.currentPercentAbsolute=a.currentPercentAbsolute;this.status.currentTime=a.currentTime;this.status.duration=a.duration}, -_updateButtons:function(a){this.status.paused=!a;if(this.css.jq.play.length&&this.css.jq.pause.length)if(a){this.css.jq.play.hide();this.css.jq.pause.show()}else{this.css.jq.play.show();this.css.jq.pause.hide()}},_updateInterface:function(){this.css.jq.seekBar.length&&this.css.jq.seekBar.width(this.status.seekPercent+"%");this.css.jq.playBar.length&&this.css.jq.playBar.width(this.status.currentPercentRelative+"%");this.css.jq.currentTime.length&&this.css.jq.currentTime.text(c.jPlayer.convertTime(this.status.currentTime)); -this.css.jq.duration.length&&this.css.jq.duration.text(c.jPlayer.convertTime(this.status.duration))},_seeking:function(){this.css.jq.seekBar.length&&this.css.jq.seekBar.addClass("jp-seeking-bg")},_seeked:function(){this.css.jq.seekBar.length&&this.css.jq.seekBar.removeClass("jp-seeking-bg")},setMedia:function(a){var b=this;this._seeked();clearTimeout(this.internal.htmlDlyCmdId);var d=this.html.audio.gate,f=this.html.video.gate,e=false;c.each(this.formats,function(g,i){var j=b.format[i].media==="video"; -c.each(b.solutions,function(n,k){if(b[k].support[i]&&b._validString(a[i])){var l=k==="html";if(j)if(l){b.html.audio.gate=false;b.html.video.gate=true;b.flash.gate=false}else{b.html.audio.gate=false;b.html.video.gate=false;b.flash.gate=true}else if(l){b.html.audio.gate=true;b.html.video.gate=false;b.flash.gate=false}else{b.html.audio.gate=false;b.html.video.gate=false;b.flash.gate=true}if(b.flash.active||b.html.active&&b.flash.gate||d===b.html.audio.gate&&f===b.html.video.gate)b.clearMedia();else if(d!== -b.html.audio.gate&&f!==b.html.video.gate){b._html_pause();b.status.video&&b.internal.video.jq.css({width:"0px",height:"0px"});b._resetStatus()}if(j){if(l){b._html_setVideo(a);b.html.active=true;b.flash.active=false}else{b._flash_setVideo(a);b.html.active=false;b.flash.active=true}b.css.jq.videoPlay.length&&b.css.jq.videoPlay.show();b.status.video=true}else{if(l){b._html_setAudio(a);b.html.active=true;b.flash.active=false}else{b._flash_setAudio(a);b.html.active=false;b.flash.active=true}b.css.jq.videoPlay.length&& -b.css.jq.videoPlay.hide();b.status.video=false}e=true;return false}});if(e)return false});if(e){if(this._validString(a.poster))if(this.htmlElement.poster.src!==a.poster)this.htmlElement.poster.src=a.poster;else this.internal.poster.jq.show();else this.internal.poster.jq.hide();this.status.srcSet=true;this.status.media=c.extend({},a);this._updateButtons(false);this._updateInterface()}else{this.status.srcSet&&!this.status.waitForPlay&&this.pause();this.html.audio.gate=false;this.html.video.gate=false; -this.flash.gate=false;this.html.active=false;this.flash.active=false;this._resetStatus();this._updateInterface();this._updateButtons(false);this.internal.poster.jq.hide();this.html.used&&this.require.video&&this.internal.video.jq.css({width:"0px",height:"0px"});this.flash.used&&this.internal.flash.jq.css({width:"0px",height:"0px"});this._error({type:c.jPlayer.error.NO_SUPPORT,context:"{supplied:'"+this.options.supplied+"'}",message:c.jPlayer.errorMsg.NO_SUPPORT,hint:c.jPlayer.errorHint.NO_SUPPORT})}}, -clearMedia:function(){this._resetStatus();this._updateButtons(false);this.internal.poster.jq.hide();clearTimeout(this.internal.htmlDlyCmdId);if(this.html.active)this._html_clearMedia();else this.flash.active&&this._flash_clearMedia()},load:function(){if(this.status.srcSet)if(this.html.active)this._html_load();else this.flash.active&&this._flash_load();else this._urlNotSetError("load")},play:function(a){a=typeof a==="number"?a:NaN;if(this.status.srcSet)if(this.html.active)this._html_play(a);else this.flash.active&& -this._flash_play(a);else this._urlNotSetError("play")},videoPlay:function(){this.play()},pause:function(a){a=typeof a==="number"?a:NaN;if(this.status.srcSet)if(this.html.active)this._html_pause(a);else this.flash.active&&this._flash_pause(a);else this._urlNotSetError("pause")},pauseOthers:function(){var a=this;c.each(this.instances,function(b,d){a.element!==d&&d.data("jPlayer").status.srcSet&&d.jPlayer("pause")})},stop:function(){if(this.status.srcSet)if(this.html.active)this._html_pause(0);else this.flash.active&& -this._flash_pause(0);else this._urlNotSetError("stop")},playHead:function(a){a=this._limitValue(a,0,100);if(this.status.srcSet)if(this.html.active)this._html_playHead(a);else this.flash.active&&this._flash_playHead(a);else this._urlNotSetError("playHead")},mute:function(){this.status.muted=true;this.html.used&&this._html_mute(true);this.flash.used&&this._flash_mute(true);this._updateMute(true);this._updateVolume(0);this._trigger(c.jPlayer.event.volumechange)},unmute:function(){this.status.muted=false; -this.html.used&&this._html_mute(false);this.flash.used&&this._flash_mute(false);this._updateMute(false);this._updateVolume(this.status.volume);this._trigger(c.jPlayer.event.volumechange)},_updateMute:function(a){if(this.css.jq.mute.length&&this.css.jq.unmute.length)if(a){this.css.jq.mute.hide();this.css.jq.unmute.show()}else{this.css.jq.mute.show();this.css.jq.unmute.hide()}},volume:function(a){a=this._limitValue(a,0,1);this.status.volume=a;this.html.used&&this._html_volume(a);this.flash.used&&this._flash_volume(a); -this.status.muted||this._updateVolume(a);this._trigger(c.jPlayer.event.volumechange)},volumeBar:function(a){if(!this.status.muted&&this.css.jq.volumeBar){var b=this.css.jq.volumeBar.offset();a=a.pageX-b.left;b=this.css.jq.volumeBar.width();this.volume(a/b)}},volumeBarValue:function(a){this.volumeBar(a)},_updateVolume:function(a){this.css.jq.volumeBarValue.length&&this.css.jq.volumeBarValue.width(a*100+"%")},_volumeFix:function(a){var b=0.0010*Math.random();return a+(a<0.5?b:-b)},_cssSelectorAncestor:function(a, -b){this.options.cssSelectorAncestor=a;b&&c.each(this.options.cssSelector,function(d,f){self._cssSelector(d,f)})},_cssSelector:function(a,b){var d=this;if(typeof b==="string")if(c.jPlayer.prototype.options.cssSelector[a]){this.css.jq[a]&&this.css.jq[a].length&&this.css.jq[a].unbind(".jPlayer");this.options.cssSelector[a]=b;this.css.cs[a]=this.options.cssSelectorAncestor+" "+b;this.css.jq[a]=b?c(this.css.cs[a]):[];this.css.jq[a].length&&this.css.jq[a].bind("click.jPlayer",function(f){d[a](f);c(this).blur(); -return false});b&&this.css.jq[a].length!==1&&this._warning({type:c.jPlayer.warning.CSS_SELECTOR_COUNT,context:this.css.cs[a],message:c.jPlayer.warningMsg.CSS_SELECTOR_COUNT+this.css.jq[a].length+" found for "+a+" method.",hint:c.jPlayer.warningHint.CSS_SELECTOR_COUNT})}else this._warning({type:c.jPlayer.warning.CSS_SELECTOR_METHOD,context:a,message:c.jPlayer.warningMsg.CSS_SELECTOR_METHOD,hint:c.jPlayer.warningHint.CSS_SELECTOR_METHOD});else this._warning({type:c.jPlayer.warning.CSS_SELECTOR_STRING, -context:b,message:c.jPlayer.warningMsg.CSS_SELECTOR_STRING,hint:c.jPlayer.warningHint.CSS_SELECTOR_STRING})},seekBar:function(a){if(this.css.jq.seekBar){var b=this.css.jq.seekBar.offset();a=a.pageX-b.left;b=this.css.jq.seekBar.width();this.playHead(100*a/b)}},playBar:function(a){this.seekBar(a)},currentTime:function(){},duration:function(){},option:function(a,b){var d=a;if(arguments.length===0)return c.extend(true,{},this.options);if(typeof a==="string"){var f=a.split(".");if(b===h){for(var e=c.extend(true, -{},this.options),g=0;g=9||this.htmlElement.media.load()}},_html_load:function(){if(this.status.waitForLoad){this.status.waitForLoad=false;this.htmlElement.media.src=this.status.src; -try{this.htmlElement.media.load()}catch(a){}}clearTimeout(this.internal.htmlDlyCmdId)},_html_play:function(a){var b=this;this._html_load();this.htmlElement.media.play();if(!isNaN(a))try{this.htmlElement.media.currentTime=a}catch(d){this.internal.htmlDlyCmdId=setTimeout(function(){b.play(a)},100);return}this._html_checkWaitForPlay()},_html_pause:function(a){var b=this;a>0?this._html_load():clearTimeout(this.internal.htmlDlyCmdId);this.htmlElement.media.pause();if(!isNaN(a))try{this.htmlElement.media.currentTime= -a}catch(d){this.internal.htmlDlyCmdId=setTimeout(function(){b.pause(a)},100);return}a>0&&this._html_checkWaitForPlay()},_html_playHead:function(a){var b=this;this._html_load();try{if(typeof this.htmlElement.media.seekable==="object"&&this.htmlElement.media.seekable.length>0)this.htmlElement.media.currentTime=a*this.htmlElement.media.seekable.end(this.htmlElement.media.seekable.length-1)/100;else if(this.htmlElement.media.duration>0&&!isNaN(this.htmlElement.media.duration))this.htmlElement.media.currentTime= -a*this.htmlElement.media.duration/100;else throw"e";}catch(d){this.internal.htmlDlyCmdId=setTimeout(function(){b.playHead(a)},100);return}this.status.waitForLoad||this._html_checkWaitForPlay()},_html_checkWaitForPlay:function(){if(this.status.waitForPlay){this.status.waitForPlay=false;this.css.jq.videoPlay.length&&this.css.jq.videoPlay.hide();if(this.status.video){this.internal.poster.jq.hide();this.internal.video.jq.css({width:this.status.width,height:this.status.height})}}},_html_volume:function(a){if(this.html.audio.available)this.htmlElement.audio.volume= -a;if(this.html.video.available)this.htmlElement.video.volume=a},_html_mute:function(a){if(this.html.audio.available)this.htmlElement.audio.muted=a;if(this.html.video.available)this.htmlElement.video.muted=a},_flash_setAudio:function(a){var b=this;try{c.each(this.formats,function(f,e){if(b.flash.support[e]&&a[e]){switch(e){case "m4a":b._getMovie().fl_setAudio_m4a(a[e]);break;case "mp3":b._getMovie().fl_setAudio_mp3(a[e])}b.status.src=a[e];b.status.format[e]=true;b.status.formatType=e;return false}}); -if(this.options.preload==="auto"){this._flash_load();this.status.waitForLoad=false}}catch(d){this._flashError(d)}},_flash_setVideo:function(a){var b=this;try{c.each(this.formats,function(f,e){if(b.flash.support[e]&&a[e]){switch(e){case "m4v":b._getMovie().fl_setVideo_m4v(a[e])}b.status.src=a[e];b.status.format[e]=true;b.status.formatType=e;return false}});if(this.options.preload==="auto"){this._flash_load();this.status.waitForLoad=false}}catch(d){this._flashError(d)}},_flash_clearMedia:function(){this.internal.flash.jq.css({width:"0px", -height:"0px"});try{this._getMovie().fl_clearMedia()}catch(a){this._flashError(a)}},_flash_load:function(){try{this._getMovie().fl_load()}catch(a){this._flashError(a)}this.status.waitForLoad=false},_flash_play:function(a){try{this._getMovie().fl_play(a)}catch(b){this._flashError(b)}this.status.waitForLoad=false;this._flash_checkWaitForPlay()},_flash_pause:function(a){try{this._getMovie().fl_pause(a)}catch(b){this._flashError(b)}if(a>0){this.status.waitForLoad=false;this._flash_checkWaitForPlay()}}, -_flash_playHead:function(a){try{this._getMovie().fl_play_head(a)}catch(b){this._flashError(b)}this.status.waitForLoad||this._flash_checkWaitForPlay()},_flash_checkWaitForPlay:function(){if(this.status.waitForPlay){this.status.waitForPlay=false;this.css.jq.videoPlay.length&&this.css.jq.videoPlay.hide();if(this.status.video){this.internal.poster.jq.hide();this.internal.flash.jq.css({width:this.status.width,height:this.status.height})}}},_flash_volume:function(a){try{this._getMovie().fl_volume(a)}catch(b){this._flashError(b)}}, -_flash_mute:function(a){try{this._getMovie().fl_mute(a)}catch(b){this._flashError(b)}},_getMovie:function(){return document[this.internal.flash.id]},_checkForFlash:function(a){var b=false,d;if(window.ActiveXObject)try{new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+a);b=true}catch(f){}else if(navigator.plugins&&navigator.mimeTypes.length>0)if(d=navigator.plugins["Shockwave Flash"])if(navigator.plugins["Shockwave Flash"].description.replace(/.*\s(\d+\.\d+).*/,"$1")>=a)b=true;return c.browser.msie&& -Number(c.browser.version)>=9?false:b},_validString:function(a){return a&&typeof a==="string"},_limitValue:function(a,b,d){return ad?d:a},_urlNotSetError:function(a){this._error({type:c.jPlayer.error.URL_NOT_SET,context:a,message:c.jPlayer.errorMsg.URL_NOT_SET,hint:c.jPlayer.errorHint.URL_NOT_SET})},_flashError:function(a){this._error({type:c.jPlayer.error.FLASH,context:this.internal.flash.swf,message:c.jPlayer.errorMsg.FLASH+a.message,hint:c.jPlayer.errorHint.FLASH})},_error:function(a){this._trigger(c.jPlayer.event.error, -a);if(this.options.errorAlerts)this._alert("Error!"+(a.message?"\n\n"+a.message:"")+(a.hint?"\n\n"+a.hint:"")+"\n\nContext: "+a.context)},_warning:function(a){this._trigger(c.jPlayer.event.warning,h,a);if(this.options.errorAlerts)this._alert("Warning!"+(a.message?"\n\n"+a.message:"")+(a.hint?"\n\n"+a.hint:"")+"\n\nContext: "+a.context)},_alert:function(a){alert("jPlayer "+this.version.script+" : id='"+this.internal.self.id+"' : "+a)}};c.jPlayer.error={FLASH:"e_flash",NO_SOLUTION:"e_no_solution",NO_SUPPORT:"e_no_support", -URL:"e_url",URL_NOT_SET:"e_url_not_set",VERSION:"e_version"};c.jPlayer.errorMsg={FLASH:"jPlayer's Flash fallback is not configured correctly, or a command was issued before the jPlayer Ready event. Details: ",NO_SOLUTION:"No solution can be found by jPlayer in this browser. Neither HTML nor Flash can be used.",NO_SUPPORT:"It is not possible to play any media format provided in setMedia() on this browser using your current options.",URL:"Media URL could not be loaded.",URL_NOT_SET:"Attempt to issue media playback commands, while no media url is set.", -VERSION:"jPlayer "+c.jPlayer.prototype.version.script+" needs Jplayer.swf version "+c.jPlayer.prototype.version.needFlash+" but found "};c.jPlayer.errorHint={FLASH:"Check your swfPath option and that Jplayer.swf is there.",NO_SOLUTION:"Review the jPlayer options: support and supplied.",NO_SUPPORT:"Video or audio formats defined in the supplied option are missing.",URL:"Check media URL is valid.",URL_NOT_SET:"Use setMedia() to set the media URL.",VERSION:"Update jPlayer files."};c.jPlayer.warning= -{CSS_SELECTOR_COUNT:"e_css_selector_count",CSS_SELECTOR_METHOD:"e_css_selector_method",CSS_SELECTOR_STRING:"e_css_selector_string",OPTION_KEY:"e_option_key"};c.jPlayer.warningMsg={CSS_SELECTOR_COUNT:"The number of methodCssSelectors found did not equal one: ",CSS_SELECTOR_METHOD:"The methodName given in jPlayer('cssSelector') is not a valid jPlayer method.",CSS_SELECTOR_STRING:"The methodCssSelector given in jPlayer('cssSelector') is not a String or is empty.",OPTION_KEY:"The option requested in jPlayer('option') is undefined."}; -c.jPlayer.warningHint={CSS_SELECTOR_COUNT:"Check your css selector and the ancestor.",CSS_SELECTOR_METHOD:"Check your method name.",CSS_SELECTOR_STRING:"Check your css selector is a string.",OPTION_KEY:"Check your option name."}})(jQuery); \ No newline at end of file +(function($,undefined){$.fn.jPlayer=function(options){var name="jPlayer",isMethodCall=typeof options==="string",args=Array.prototype.slice.call(arguments,1),returnValue=this;options=!isMethodCall&&args.length?$.extend.apply(null,[true,options].concat(args)):options;if(isMethodCall&&options.charAt(0)==="_")return returnValue;if(isMethodCall){this.each(function(){var instance=$.data(this,name),methodValue=instance&&$.isFunction(instance[options])?instance[options].apply(instance,args):instance;if(methodValue!==instance&&methodValue!==undefined){returnValue=methodValue;return false}})}else this.each(function(){var instance=$.data(this,name);if(instance){instance.option(options||{})}else $.data(this,name,new $.jPlayer(options,this))});return returnValue};$.jPlayer=function(options,element){if(arguments.length){this.element=$(element);this.options=$.extend(true,{},this.options,options);var self=this;this.element.bind("remove.jPlayer",function(){self.destroy()});this._init()}};$.jPlayer.emulateMethods="load play pause";$.jPlayer.emulateStatus="src readyState networkState currentTime duration paused ended playbackRate";$.jPlayer.emulateOptions="muted volume";$.jPlayer.reservedEvent="ready flashreset resize repeat error warning";$.jPlayer.event={ready:"jPlayer_ready",flashreset:"jPlayer_flashreset",resize:"jPlayer_resize",repeat:"jPlayer_repeat",error:"jPlayer_error",warning:"jPlayer_warning",loadstart:"jPlayer_loadstart",progress:"jPlayer_progress",suspend:"jPlayer_suspend",abort:"jPlayer_abort",emptied:"jPlayer_emptied",stalled:"jPlayer_stalled",play:"jPlayer_play",pause:"jPlayer_pause",loadedmetadata:"jPlayer_loadedmetadata",loadeddata:"jPlayer_loadeddata",waiting:"jPlayer_waiting",playing:"jPlayer_playing",canplay:"jPlayer_canplay",canplaythrough:"jPlayer_canplaythrough",seeking:"jPlayer_seeking",seeked:"jPlayer_seeked",timeupdate:"jPlayer_timeupdate",ended:"jPlayer_ended",ratechange:"jPlayer_ratechange",durationchange:"jPlayer_durationchange",volumechange:"jPlayer_volumechange"};$.jPlayer.htmlEvent=["loadstart","abort","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","ratechange"];$.jPlayer.pause=function(){$.each($.jPlayer.prototype.instances,function(i,element){if(element.data("jPlayer").status.srcSet)element.jPlayer("pause")})};$.jPlayer.timeFormat={showHour:false,showMin:true,showSec:true,padHour:false,padMin:true,padSec:true,sepHour:":",sepMin:":",sepSec:""};$.jPlayer.convertTime=function(s){var myTime=new Date(s*1e3),hour=myTime.getUTCHours(),min=myTime.getUTCMinutes(),sec=myTime.getUTCSeconds(),strHour=($.jPlayer.timeFormat.padHour&&hour<10)?"0"+hour:hour,strMin=($.jPlayer.timeFormat.padMin&&min<10)?"0"+min:min,strSec=($.jPlayer.timeFormat.padSec&&sec<10)?"0"+sec:sec;return(($.jPlayer.timeFormat.showHour)?strHour+$.jPlayer.timeFormat.sepHour:"")+(($.jPlayer.timeFormat.showMin)?strMin+$.jPlayer.timeFormat.sepMin:"")+(($.jPlayer.timeFormat.showSec)?strSec+$.jPlayer.timeFormat.sepSec:"")};$.jPlayer.uaBrowser=function(userAgent){var ua=userAgent.toLowerCase(),rwebkit=/(webkit)[ \/]([\w.]+)/,ropera=/(opera)(?:.*version)?[ \/]([\w.]+)/,rmsie=/(msie) ([\w.]+)/,rmozilla=/(mozilla)(?:.*? rv:([\w.]+))?/,match=rwebkit.exec(ua)||ropera.exec(ua)||rmsie.exec(ua)||ua.indexOf("compatible")<0&&rmozilla.exec(ua)||[];return{browser:match[1]||"",version:match[2]||"0"}};$.jPlayer.uaPlatform=function(userAgent){var ua=userAgent.toLowerCase(),rplatform=/(ipad|iphone|ipod|android|blackberry|playbook|windows ce|webos)/,rtablet=/(ipad|playbook)/,randroid=/(android)/,rmobile=/(mobile)/,platform=rplatform.exec(ua)||[],tablet=rtablet.exec(ua)||!rmobile.exec(ua)&&randroid.exec(ua)||[];return{platform:platform[1]||"",tablet:tablet[1]||""}};$.jPlayer.browser={};$.jPlayer.platform={};var browserMatch=$.jPlayer.uaBrowser(navigator.userAgent);if(browserMatch.browser){$.jPlayer.browser[browserMatch.browser]=true;$.jPlayer.browser.version=browserMatch.version};var platformMatch=$.jPlayer.uaPlatform(navigator.userAgent);if(platformMatch.platform){$.jPlayer.platform[platformMatch.platform]=true;$.jPlayer.platform.mobile=!platformMatch.tablet;$.jPlayer.platform.tablet=!!platformMatch.tablet};$.jPlayer.prototype={count:0,version:{script:"2.0.23",needFlash:"2.0.9",flash:"unknown"},options:{swfPath:"js",solution:"html, flash",supplied:"mp3",preload:'metadata',volume:0.8,muted:false,wmode:"opaque",backgroundColor:"#000000",cssSelectorAncestor:"#jp_container_1",cssSelector:{videoPlay:".jp-video-play",play:".jp-play",pause:".jp-pause",stop:".jp-stop",seekBar:".jp-seek-bar",playBar:".jp-play-bar",mute:".jp-mute",unmute:".jp-unmute",volumeBar:".jp-volume-bar",volumeBarValue:".jp-volume-bar-value",volumeMax:".jp-volume-max",currentTime:".jp-current-time",duration:".jp-duration",fullScreen:".jp-full-screen",restoreScreen:".jp-restore-screen",repeat:".jp-repeat",repeatOff:".jp-repeat-off",gui:".jp-gui"},fullScreen:false,autohide:{restored:false,full:true,fadeIn:200,fadeOut:600,hold:1e3},loop:false,repeat:function(event){if(event.jPlayer.options.loop){$(this).unbind(".jPlayerRepeat").bind($.jPlayer.event.ended+".jPlayer.jPlayerRepeat",function(){$(this).jPlayer("play")})}else $(this).unbind(".jPlayerRepeat")},idPrefix:"jp",noConflict:"jQuery",emulateHtml:false,errorAlerts:false,warningAlerts:false},optionsAudio:{size:{width:"0px",height:"0px",cssClass:""},sizeFull:{width:"0px",height:"0px",cssClass:""}},optionsVideo:{size:{width:"480px",height:"270px",cssClass:"jp-video-270p"},sizeFull:{width:"100%",height:"100%",cssClass:"jp-video-full"}},instances:{},status:{src:"",media:{},paused:true,format:{},formatType:"",waitForPlay:true,waitForLoad:true,srcSet:false,video:false,seekPercent:0,currentPercentRelative:0,currentPercentAbsolute:0,currentTime:0,duration:0,readyState:0,networkState:0,playbackRate:1,ended:0},internal:{ready:false},solution:{html:true,flash:true},format:{mp3:{codec:'audio/mpeg; codecs="mp3"',flashCanPlay:true,media:'audio'},m4a:{codec:'audio/mp4; codecs="mp4a.40.2"',flashCanPlay:true,media:'audio'},oga:{codec:'audio/ogg; codecs="vorbis"',flashCanPlay:false,media:'audio'},wav:{codec:'audio/wav; codecs="1"',flashCanPlay:false,media:'audio'},webma:{codec:'audio/webm; codecs="vorbis"',flashCanPlay:false,media:'audio'},fla:{codec:'audio/x-flv',flashCanPlay:true,media:'audio'},m4v:{codec:'video/mp4; codecs="avc1.42E01E, mp4a.40.2"',flashCanPlay:true,media:'video'},ogv:{codec:'video/ogg; codecs="theora, vorbis"',flashCanPlay:false,media:'video'},webmv:{codec:'video/webm; codecs="vorbis, vp8"',flashCanPlay:false,media:'video'},flv:{codec:'video/x-flv',flashCanPlay:true,media:'video'}},_init:function(){var self=this;this.element.empty();this.status=$.extend({},this.status);this.internal=$.extend({},this.internal);this.internal.domNode=this.element.get(0);this.formats=[];this.solutions=[];this.require={};this.htmlElement={};this.html={};this.html.audio={};this.html.video={};this.flash={};this.css={};this.css.cs={};this.css.jq={};this.ancestorJq=[];this.options.volume=this._limitValue(this.options.volume,0,1);$.each(this.options.supplied.toLowerCase().split(","),function(index1,value1){var format=value1.replace(/^\s+|\s+$/g,"");if(self.format[format]){var dupFound=false;$.each(self.formats,function(index2,value2){if(format===value2){dupFound=true;return false}});if(!dupFound)self.formats.push(format)}});$.each(this.options.solution.toLowerCase().split(","),function(index1,value1){var solution=value1.replace(/^\s+|\s+$/g,"");if(self.solution[solution]){var dupFound=false;$.each(self.solutions,function(index2,value2){if(solution===value2){dupFound=true;return false}});if(!dupFound)self.solutions.push(solution)}});this.internal.instance="jp_"+this.count;this.instances[this.internal.instance]=this.element;if(!this.element.attr("id"))this.element.attr("id",this.options.idPrefix+"_jplayer_"+this.count);this.internal.self=$.extend({},{id:this.element.attr("id"),jq:this.element});this.internal.audio=$.extend({},{id:this.options.idPrefix+"_audio_"+this.count,jq:undefined});this.internal.video=$.extend({},{id:this.options.idPrefix+"_video_"+this.count,jq:undefined});this.internal.flash=$.extend({},{id:this.options.idPrefix+"_flash_"+this.count,jq:undefined,swf:this.options.swfPath+((this.options.swfPath!==""&&this.options.swfPath.slice(-1)!=="/")?"/":"")+"Jplayer.swf"});this.internal.poster=$.extend({},{id:this.options.idPrefix+"_poster_"+this.count,jq:undefined});$.each($.jPlayer.event,function(eventName,eventType){if(self.options[eventName]!==undefined){self.element.bind(eventType+".jPlayer",self.options[eventName]);self.options[eventName]=undefined}});this.require.audio=false;this.require.video=false;$.each(this.formats,function(priority,format){self.require[self.format[format].media]=true});if(this.require.video){this.options=$.extend(true,{},this.optionsVideo,this.options)}else this.options=$.extend(true,{},this.optionsAudio,this.options);this._setSize();this.htmlElement.poster=document.createElement('img');this.htmlElement.poster.id=this.internal.poster.id;this.htmlElement.poster.onload=function(){if(!self.status.video||self.status.waitForPlay)self.internal.poster.jq.show()};this.element.append(this.htmlElement.poster);this.internal.poster.jq=$("#"+this.internal.poster.id);this.internal.poster.jq.css({width:this.status.width,height:this.status.height});this.internal.poster.jq.hide();this.html.audio.available=false;if(this.require.audio){this.htmlElement.audio=document.createElement('audio');this.htmlElement.audio.id=this.internal.audio.id;this.html.audio.available=!!this.htmlElement.audio.canPlayType};this.html.video.available=false;if(this.require.video){this.htmlElement.video=document.createElement('video');this.htmlElement.video.id=this.internal.video.id;this.html.video.available=!!this.htmlElement.video.canPlayType};this.flash.available=this._checkForFlash(10);this.html.canPlay={};this.flash.canPlay={};$.each(this.formats,function(priority,format){self.html.canPlay[format]=self.html[self.format[format].media].available&&""!==self.htmlElement[self.format[format].media].canPlayType(self.format[format].codec);self.flash.canPlay[format]=self.format[format].flashCanPlay&&self.flash.available});this.html.desired=false;this.flash.desired=false;$.each(this.solutions,function(solutionPriority,solution){if(solutionPriority===0){self[solution].desired=true}else{var audioCanPlay=false,videoCanPlay=false;$.each(self.formats,function(formatPriority,format){if(self[self.solutions[0]].canPlay[format])if(self.format[format].media==='video'){videoCanPlay=true}else audioCanPlay=true});self[solution].desired=(self.require.audio&&!audioCanPlay)||(self.require.video&&!videoCanPlay)}});this.html.support={};this.flash.support={};$.each(this.formats,function(priority,format){self.html.support[format]=self.html.canPlay[format]&&self.html.desired;self.flash.support[format]=self.flash.canPlay[format]&&self.flash.desired});this.html.used=false;this.flash.used=false;$.each(this.solutions,function(solutionPriority,solution){$.each(self.formats,function(formatPriority,format){if(self[solution].support[format]){self[solution].used=true;return false}})});this.html.active=false;this.html.audio.gate=false;this.html.video.gate=false;this.flash.active=false;this.flash.gate=false;this._cssSelectorAncestor(this.options.cssSelectorAncestor);if(!(this.html.used||this.flash.used))this._error({type:$.jPlayer.error.NO_SOLUTION,context:"{solution:'"+this.options.solution+"', supplied:'"+this.options.supplied+"'}",message:$.jPlayer.errorMsg.NO_SOLUTION,hint:$.jPlayer.errorHint.NO_SOLUTION});if(this.flash.used){var htmlObj,flashVars='jQuery='+encodeURI(this.options.noConflict)+'&id='+encodeURI(this.internal.self.id)+'&vol='+this.options.volume+'&muted='+this.options.muted;if($.browser.msie&&Number($.browser.version)<=8){var objStr='',paramStr=['','','','',''];htmlObj=document.createElement(objStr);for(var i=0;i0)?100*ct/this.status.duration:0;if((typeof media.seekable==="object")&&(media.seekable.length>0)){sp=(this.status.duration>0)?100*media.seekable.end(media.seekable.length-1)/this.status.duration:100;cpr=100*media.currentTime/media.seekable.end(media.seekable.length-1)}else{sp=100;cpr=cpa};if(override){ct=0;cpr=0;cpa=0};this.status.seekPercent=sp;this.status.currentPercentRelative=cpr;this.status.currentPercentAbsolute=cpa;this.status.currentTime=ct;this.status.readyState=media.readyState;this.status.networkState=media.networkState;this.status.playbackRate=media.playbackRate;this.status.ended=media.ended},_resetStatus:function(){this.status=$.extend({},this.status,$.jPlayer.prototype.status)},_trigger:function(eventType,error,warning){var event=$.Event(eventType);event.jPlayer={};event.jPlayer.version=$.extend({},this.version);event.jPlayer.options=$.extend(true,{},this.options);event.jPlayer.status=$.extend(true,{},this.status);event.jPlayer.html=$.extend(true,{},this.html);event.jPlayer.flash=$.extend(true,{},this.flash);if(error)event.jPlayer.error=$.extend({},error);if(warning)event.jPlayer.warning=$.extend({},warning);this.element.trigger(event)},jPlayerFlashEvent:function(eventType,status){if(eventType===$.jPlayer.event.ready)if(!this.internal.ready){this.internal.ready=true;this.internal.flash.jq.css({width:'0px',height:'0px'});this.version.flash=status.version;if(this.version.needFlash!==this.version.flash)this._error({type:$.jPlayer.error.VERSION,context:this.version.flash,message:$.jPlayer.errorMsg.VERSION+this.version.flash,hint:$.jPlayer.errorHint.VERSION});this._trigger($.jPlayer.event.repeat);this._trigger(eventType)}else if(this.flash.gate){if(this.status.srcSet){var currentTime=this.status.currentTime,paused=this.status.paused;this.setMedia(this.status.media);if(currentTime>0)if(paused){this.pause(currentTime)}else this.play(currentTime)};this._trigger($.jPlayer.event.flashreset)};if(this.flash.gate)switch(eventType){case $.jPlayer.event.progress:this._getFlashStatus(status);this._updateInterface();this._trigger(eventType);break;case $.jPlayer.event.timeupdate:this._getFlashStatus(status);this._updateInterface();this._trigger(eventType);break;case $.jPlayer.event.play:this._seeked();this._updateButtons(true);this._trigger(eventType);break;case $.jPlayer.event.pause:this._updateButtons(false);this._trigger(eventType);break;case $.jPlayer.event.ended:this._updateButtons(false);this._trigger(eventType);break;case $.jPlayer.event.error:this.status.waitForLoad=true;this.status.waitForPlay=true;if(this.status.video)this.internal.flash.jq.css({width:'0px',height:'0px'});if(this._validString(this.status.media.poster))this.internal.poster.jq.show();if(this.css.jq.videoPlay.length)this.css.jq.videoPlay.show();if(this.status.video){this._flash_setVideo(this.status.media)}else this._flash_setAudio(this.status.media);this._error({type:$.jPlayer.error.URL,context:status.src,message:$.jPlayer.errorMsg.URL,hint:$.jPlayer.errorHint.URL});break;case $.jPlayer.event.seeking:this._seeking();this._trigger(eventType);break;case $.jPlayer.event.seeked:this._seeked();this._trigger(eventType);break;case $.jPlayer.event.ready:break;default:this._trigger(eventType)};return false},_getFlashStatus:function(status){this.status.seekPercent=status.seekPercent;this.status.currentPercentRelative=status.currentPercentRelative;this.status.currentPercentAbsolute=status.currentPercentAbsolute;this.status.currentTime=status.currentTime;this.status.duration=status.duration;this.status.readyState=4;this.status.networkState=0;this.status.playbackRate=1;this.status.ended=false},_updateButtons:function(playing){if(playing!==undefined){this.status.paused=!playing;if(this.css.jq.play.length&&this.css.jq.pause.length)if(playing){this.css.jq.play.hide();this.css.jq.pause.show()}else{this.css.jq.play.show();this.css.jq.pause.hide()}};if(this.css.jq.restoreScreen.length&&this.css.jq.fullScreen.length)if(this.options.fullScreen){this.css.jq.fullScreen.hide();this.css.jq.restoreScreen.show()}else{this.css.jq.fullScreen.show();this.css.jq.restoreScreen.hide()};if(this.css.jq.repeat.length&&this.css.jq.repeatOff.length)if(this.options.loop){this.css.jq.repeat.hide();this.css.jq.repeatOff.show()}else{this.css.jq.repeat.show();this.css.jq.repeatOff.hide()}},_updateInterface:function(){if(this.css.jq.seekBar.length)this.css.jq.seekBar.width(this.status.seekPercent+"%");if(this.css.jq.playBar.length)this.css.jq.playBar.width(this.status.currentPercentRelative+"%");if(this.css.jq.currentTime.length)this.css.jq.currentTime.text($.jPlayer.convertTime(this.status.currentTime));if(this.css.jq.duration.length)this.css.jq.duration.text($.jPlayer.convertTime(this.status.duration))},_seeking:function(){if(this.css.jq.seekBar.length)this.css.jq.seekBar.addClass("jp-seeking-bg")},_seeked:function(){if(this.css.jq.seekBar.length)this.css.jq.seekBar.removeClass("jp-seeking-bg")},setMedia:function(media){var self=this;this._seeked();clearTimeout(this.internal.htmlDlyCmdId);var audioGate=this.html.audio.gate,videoGate=this.html.video.gate,supported=false;$.each(this.formats,function(formatPriority,format){var isVideo=self.format[format].media==='video';$.each(self.solutions,function(solutionPriority,solution){if(self[solution].support[format]&&self._validString(media[format])){var isHtml=solution==='html';if(isVideo){if(isHtml){self.html.audio.gate=false;self.html.video.gate=true;self.flash.gate=false}else{self.html.audio.gate=false;self.html.video.gate=false;self.flash.gate=true}}else if(isHtml){self.html.audio.gate=true;self.html.video.gate=false;self.flash.gate=false}else{self.html.audio.gate=false;self.html.video.gate=false;self.flash.gate=true};if(self.flash.active||(self.html.active&&self.flash.gate)||(audioGate===self.html.audio.gate&&videoGate===self.html.video.gate)){self.clearMedia()}else if(audioGate!==self.html.audio.gate&&videoGate!==self.html.video.gate){self._html_pause();if(self.status.video)self.internal.video.jq.css({width:'0px',height:'0px'});self._resetStatus()};if(isVideo){if(isHtml){self._html_setVideo(media);self.html.active=true;self.flash.active=false}else{self._flash_setVideo(media);self.html.active=false;self.flash.active=true};if(self.css.jq.videoPlay.length)self.css.jq.videoPlay.show();self.status.video=true}else{if(isHtml){self._html_setAudio(media);self.html.active=true;self.flash.active=false}else{self._flash_setAudio(media);self.html.active=false;self.flash.active=true};if(self.css.jq.videoPlay.length)self.css.jq.videoPlay.hide();self.status.video=false};supported=true;return false}});if(supported)return false});if(supported){if(this._validString(media.poster)){if(this.htmlElement.poster.src!==media.poster){this.htmlElement.poster.src=media.poster}else this.internal.poster.jq.show()}else this.internal.poster.jq.hide();this.status.srcSet=true;this.status.media=$.extend({},media);this._updateButtons(false);this._updateInterface()}else{if(this.status.srcSet&&!this.status.waitForPlay)this.pause();this.html.audio.gate=false;this.html.video.gate=false;this.flash.gate=false;this.html.active=false;this.flash.active=false;this._resetStatus();this._updateInterface();this._updateButtons(false);this.internal.poster.jq.hide();if(this.html.used&&this.require.video)this.internal.video.jq.css({width:'0px',height:'0px'});if(this.flash.used)this.internal.flash.jq.css({width:'0px',height:'0px'});this._error({type:$.jPlayer.error.NO_SUPPORT,context:"{supplied:'"+this.options.supplied+"'}",message:$.jPlayer.errorMsg.NO_SUPPORT,hint:$.jPlayer.errorHint.NO_SUPPORT})}},clearMedia:function(){this._resetStatus();this._updateButtons(false);this.internal.poster.jq.hide();clearTimeout(this.internal.htmlDlyCmdId);if(this.html.active){this._html_clearMedia()}else if(this.flash.active)this._flash_clearMedia()},load:function(){if(this.status.srcSet){if(this.html.active){this._html_load()}else if(this.flash.active)this._flash_load()}else this._urlNotSetError("load")},play:function(time){time=(typeof time==="number")?time:NaN;if(this.status.srcSet){if(this.html.active){this._html_play(time)}else if(this.flash.active)this._flash_play(time)}else this._urlNotSetError("play")},videoPlay:function(e){this.play()},pause:function(time){time=(typeof time==="number")?time:NaN;if(this.status.srcSet){if(this.html.active){this._html_pause(time)}else if(this.flash.active)this._flash_pause(time)}else this._urlNotSetError("pause")},pauseOthers:function(){var self=this;$.each(this.instances,function(i,element){if(self.element!==element)if(element.data("jPlayer").status.srcSet)element.jPlayer("pause")})},stop:function(){if(this.status.srcSet){if(this.html.active){this._html_pause(0)}else if(this.flash.active)this._flash_pause(0)}else this._urlNotSetError("stop")},playHead:function(p){p=this._limitValue(p,0,100);if(this.status.srcSet){if(this.html.active){this._html_playHead(p)}else if(this.flash.active)this._flash_playHead(p)}else this._urlNotSetError("playHead")},_muted:function(muted){this.options.muted=muted;if(this.html.used)this._html_mute(muted);if(this.flash.used)this._flash_mute(muted);if(this.flash.gate){this._updateMute(muted);this._updateVolume(this.options.volume);this._trigger($.jPlayer.event.volumechange)}},mute:function(mute){mute=mute===undefined?true:!!mute;this._muted(mute)},unmute:function(unmute){unmute=unmute===undefined?true:!!unmute;this._muted(!unmute)},_updateMute:function(mute){if(mute===undefined)mute=this.options.muted;if(this.css.jq.mute.length&&this.css.jq.unmute.length)if(mute){this.css.jq.mute.hide();this.css.jq.unmute.show()}else{this.css.jq.mute.show();this.css.jq.unmute.hide()}},volume:function(v){v=this._limitValue(v,0,1);this.options.volume=v;if(this.html.used)this._html_volume(v);if(this.flash.used)this._flash_volume(v);if(this.flash.gate){this._updateVolume(v);this._trigger($.jPlayer.event.volumechange)}},volumeBar:function(e){if(this.css.jq.volumeBar.length){var offset=this.css.jq.volumeBar.offset(),x=e.pageX-offset.left,w=this.css.jq.volumeBar.width(),v=x/w;this.volume(v)};if(this.options.muted)this._muted(false)},volumeBarValue:function(e){this.volumeBar(e)},_updateVolume:function(v){if(v===undefined)v=this.options.volume;v=this.options.muted?0:v;if(this.css.jq.volumeBarValue.length)this.css.jq.volumeBarValue.width((v*100)+"%")},volumeMax:function(){this.volume(1);if(this.options.muted)this._muted(false)},_cssSelectorAncestor:function(ancestor){var self=this;this.options.cssSelectorAncestor=ancestor;this._removeUiClass();this.ancestorJq=ancestor?$(ancestor):[];if(ancestor&&this.ancestorJq.length!==1)this._warning({type:$.jPlayer.warning.CSS_SELECTOR_COUNT,context:ancestor,message:$.jPlayer.warningMsg.CSS_SELECTOR_COUNT+this.ancestorJq.length+" found for cssSelectorAncestor.",hint:$.jPlayer.warningHint.CSS_SELECTOR_COUNT});this._addUiClass();$.each(this.options.cssSelector,function(fn,cssSel){self._cssSelector(fn,cssSel)})},_cssSelector:function(fn,cssSel){var self=this;if(typeof cssSel==='string'){if($.jPlayer.prototype.options.cssSelector[fn]){if(this.css.jq[fn]&&this.css.jq[fn].length)this.css.jq[fn].unbind(".jPlayer");this.options.cssSelector[fn]=cssSel;this.css.cs[fn]=this.options.cssSelectorAncestor+" "+cssSel;if(cssSel){this.css.jq[fn]=$(this.css.cs[fn])}else this.css.jq[fn]=[];if(this.css.jq[fn].length){var handler=function(e){self[fn](e);$(this).blur();return false};this.css.jq[fn].bind("click.jPlayer",handler)};if(cssSel&&this.css.jq[fn].length!==1)this._warning({type:$.jPlayer.warning.CSS_SELECTOR_COUNT,context:this.css.cs[fn],message:$.jPlayer.warningMsg.CSS_SELECTOR_COUNT+this.css.jq[fn].length+" found for "+fn+" method.",hint:$.jPlayer.warningHint.CSS_SELECTOR_COUNT})}else this._warning({type:$.jPlayer.warning.CSS_SELECTOR_METHOD,context:fn,message:$.jPlayer.warningMsg.CSS_SELECTOR_METHOD,hint:$.jPlayer.warningHint.CSS_SELECTOR_METHOD})}else this._warning({type:$.jPlayer.warning.CSS_SELECTOR_STRING,context:cssSel,message:$.jPlayer.warningMsg.CSS_SELECTOR_STRING,hint:$.jPlayer.warningHint.CSS_SELECTOR_STRING})},seekBar:function(e){if(this.css.jq.seekBar){var offset=this.css.jq.seekBar.offset(),x=e.pageX-offset.left,w=this.css.jq.seekBar.width(),p=100*x/w;this.playHead(p)}},playBar:function(e){this.seekBar(e)},repeat:function(){this._loop(true)},repeatOff:function(){this._loop(false)},_loop:function(loop){if(this.options.loop!==loop){this.options.loop=loop;this._updateButtons();this._trigger($.jPlayer.event.repeat)}},currentTime:function(e){},duration:function(e){},gui:function(e){},option:function(key,value){var options=key;if(arguments.length===0)return $.extend(true,{},this.options);if(typeof key==="string"){var keys=key.split(".");if(value===undefined){var opt=$.extend(true,{},this.options);for(var i=0;i0){this._html_load()}else clearTimeout(this.internal.htmlDlyCmdId);this.htmlElement.media.pause();if(!isNaN(time))try{this.htmlElement.media.currentTime=time}catch(err){this.internal.htmlDlyCmdId=setTimeout(function(){self.pause(time)},100);return};if(time>0)this._html_checkWaitForPlay()},_html_playHead:function(percent){var self=this;this._html_load();try{if((typeof this.htmlElement.media.seekable==="object")&&(this.htmlElement.media.seekable.length>0)){this.htmlElement.media.currentTime=percent*this.htmlElement.media.seekable.end(this.htmlElement.media.seekable.length-1)/100}else if(this.htmlElement.media.duration>0&&!isNaN(this.htmlElement.media.duration)){this.htmlElement.media.currentTime=percent*this.htmlElement.media.duration/100}else throw"e"}catch(err){this.internal.htmlDlyCmdId=setTimeout(function(){self.playHead(percent)},100);return};if(!this.status.waitForLoad)this._html_checkWaitForPlay()},_html_checkWaitForPlay:function(){if(this.status.waitForPlay){this.status.waitForPlay=false;if(this.css.jq.videoPlay.length)this.css.jq.videoPlay.hide();if(this.status.video){this.internal.poster.jq.hide();this.internal.video.jq.css({width:this.status.width,height:this.status.height})}}},_html_volume:function(v){if(this.html.audio.available)this.htmlElement.audio.volume=v;if(this.html.video.available)this.htmlElement.video.volume=v},_html_mute:function(m){if(this.html.audio.available)this.htmlElement.audio.muted=m;if(this.html.video.available)this.htmlElement.video.muted=m},_flash_setAudio:function(media){var self=this;try{$.each(this.formats,function(priority,format){if(self.flash.support[format]&&media[format]){switch(format){case"m4a":case"fla":self._getMovie().fl_setAudio_m4a(media[format]);break;case"mp3":self._getMovie().fl_setAudio_mp3(media[format]);break};self.status.src=media[format];self.status.format[format]=true;self.status.formatType=format;return false}});if(this.options.preload==='auto'){this._flash_load();this.status.waitForLoad=false}}catch(err){this._flashError(err)}},_flash_setVideo:function(media){var self=this;try{$.each(this.formats,function(priority,format){if(self.flash.support[format]&&media[format]){switch(format){case"m4v":case"flv":self._getMovie().fl_setVideo_m4v(media[format]);break};self.status.src=media[format];self.status.format[format]=true;self.status.formatType=format;return false}});if(this.options.preload==='auto'){this._flash_load();this.status.waitForLoad=false}}catch(err){this._flashError(err)}},_flash_clearMedia:function(){this.internal.flash.jq.css({width:'0px',height:'0px'});try{this._getMovie().fl_clearMedia()}catch(err){this._flashError(err)}},_flash_load:function(){try{this._getMovie().fl_load()}catch(err){this._flashError(err)};this.status.waitForLoad=false},_flash_play:function(time){try{this._getMovie().fl_play(time)}catch(err){this._flashError(err)};this.status.waitForLoad=false;this._flash_checkWaitForPlay()},_flash_pause:function(time){try{this._getMovie().fl_pause(time)}catch(err){this._flashError(err)};if(time>0){this.status.waitForLoad=false;this._flash_checkWaitForPlay()}},_flash_playHead:function(p){try{this._getMovie().fl_play_head(p)}catch(err){this._flashError(err)};if(!this.status.waitForLoad)this._flash_checkWaitForPlay()},_flash_checkWaitForPlay:function(){if(this.status.waitForPlay){this.status.waitForPlay=false;if(this.css.jq.videoPlay.length)this.css.jq.videoPlay.hide();if(this.status.video){this.internal.poster.jq.hide();this.internal.flash.jq.css({width:this.status.width,height:this.status.height})}}},_flash_volume:function(v){try{this._getMovie().fl_volume(v)}catch(err){this._flashError(err)}},_flash_mute:function(m){try{this._getMovie().fl_mute(m)}catch(err){this._flashError(err)}},_getMovie:function(){return document[this.internal.flash.id]},_checkForFlash:function(version){var flashIsInstalled=false,flash;if(window.ActiveXObject){try{flash=new ActiveXObject(("ShockwaveFlash.ShockwaveFlash."+version));flashIsInstalled=true}catch(e){}}else if(navigator.plugins&&navigator.mimeTypes.length>0){flash=navigator.plugins["Shockwave Flash"];if(flash){var flashVersion=navigator.plugins["Shockwave Flash"].description.replace(/.*\s(\d+\.\d+).*/,"$1");if(flashVersion>=version)flashIsInstalled=true}};return flashIsInstalled},_validString:function(url){return(url&&typeof url==="string")},_limitValue:function(value,min,max){return(valuemax)?max:value)},_urlNotSetError:function(context){this._error({type:$.jPlayer.error.URL_NOT_SET,context:context,message:$.jPlayer.errorMsg.URL_NOT_SET,hint:$.jPlayer.errorHint.URL_NOT_SET})},_flashError:function(error){var errorType;if(!this.internal.ready){errorType="FLASH"}else errorType="FLASH_DISABLED";this._error({type:$.jPlayer.error[errorType],context:this.internal.flash.swf,message:$.jPlayer.errorMsg[errorType]+error.message,hint:$.jPlayer.errorHint[errorType]})},_error:function(error){this._trigger($.jPlayer.event.error,error);if(this.options.errorAlerts)this._alert("Error!"+(error.message?"\n\n"+error.message:"")+(error.hint?"\n\n"+error.hint:"")+"\n\nContext: "+error.context)},_warning:function(warning){this._trigger($.jPlayer.event.warning,undefined,warning);if(this.options.warningAlerts)this._alert("Warning!"+(warning.message?"\n\n"+warning.message:"")+(warning.hint?"\n\n"+warning.hint:"")+"\n\nContext: "+warning.context)},_alert:function(message){alert("jPlayer "+this.version.script+" : id='"+this.internal.self.id+"' : "+message)},_emulateHtmlBridge:function(){var self=this,methods=$.jPlayer.emulateMethods;$.each($.jPlayer.emulateMethods.split(/\s+/g),function(i,name){self.internal.domNode[name]=function(arg){self[name](arg)}});$.each($.jPlayer.event,function(eventName,eventType){var nativeEvent=true;$.each($.jPlayer.reservedEvent.split(/\s+/g),function(i,name){if(name===eventName){nativeEvent=false;return false}});if(nativeEvent)self.element.bind(eventType+".jPlayer.jPlayerHtml",function(){self._emulateHtmlUpdate();var domEvent=document.createEvent("Event");domEvent.initEvent(eventName,false,true);self.internal.domNode.dispatchEvent(domEvent)})})},_emulateHtmlUpdate:function(){var self=this;$.each($.jPlayer.emulateStatus.split(/\s+/g),function(i,name){self.internal.domNode[name]=self.status[name]});$.each($.jPlayer.emulateOptions.split(/\s+/g),function(i,name){self.internal.domNode[name]=self.options[name]})},_destroyHtmlBridge:function(){var self=this;this.element.unbind(".jPlayerHtml");var emulated=$.jPlayer.emulateMethods+" "+$.jPlayer.emulateStatus+" "+$.jPlayer.emulateOptions;$.each(emulated.split(/\s+/g),function(i,name){delete self.internal.domNode[name]})}};$.jPlayer.error={FLASH:"e_flash",FLASH_DISABLED:"e_flash_disabled",NO_SOLUTION:"e_no_solution",NO_SUPPORT:"e_no_support",URL:"e_url",URL_NOT_SET:"e_url_not_set",VERSION:"e_version"};$.jPlayer.errorMsg={FLASH:"jPlayer's Flash fallback is not configured correctly, or a command was issued before the jPlayer Ready event. Details: ",FLASH_DISABLED:"jPlayer's Flash fallback has been disabled by the browser due to the CSS rules you have used. Details: ",NO_SOLUTION:"No solution can be found by jPlayer in this browser. Neither HTML nor Flash can be used.",NO_SUPPORT:"It is not possible to play any media format provided in setMedia() on this browser using your current options.",URL:"Media URL could not be loaded.",URL_NOT_SET:"Attempt to issue media playback commands, while no media url is set.",VERSION:"jPlayer "+$.jPlayer.prototype.version.script+" needs Jplayer.swf version "+$.jPlayer.prototype.version.needFlash+" but found "};$.jPlayer.errorHint={FLASH:"Check your swfPath option and that Jplayer.swf is there.",FLASH_DISABLED:"Check that you have not display:none; the jPlayer entity or any ancestor.",NO_SOLUTION:"Review the jPlayer options: support and supplied.",NO_SUPPORT:"Video or audio formats defined in the supplied option are missing.",URL:"Check media URL is valid.",URL_NOT_SET:"Use setMedia() to set the media URL.",VERSION:"Update jPlayer files."};$.jPlayer.warning={CSS_SELECTOR_COUNT:"e_css_selector_count",CSS_SELECTOR_METHOD:"e_css_selector_method",CSS_SELECTOR_STRING:"e_css_selector_string",OPTION_KEY:"e_option_key"};$.jPlayer.warningMsg={CSS_SELECTOR_COUNT:"The number of css selectors found did not equal one: ",CSS_SELECTOR_METHOD:"The methodName given in jPlayer('cssSelector') is not a valid jPlayer method.",CSS_SELECTOR_STRING:"The methodCssSelector given in jPlayer('cssSelector') is not a String or is empty.",OPTION_KEY:"The option requested in jPlayer('option') is undefined."};$.jPlayer.warningHint={CSS_SELECTOR_COUNT:"Check your css selector and the ancestor.",CSS_SELECTOR_METHOD:"Check your method name.",CSS_SELECTOR_STRING:"Check your css selector is a string.",OPTION_KEY:"Check your option name."}})(jQuery) diff --git a/apps/media/js/player.js b/apps/media/js/player.js index f638b86e19..f76628110a 100644 --- a/apps/media/js/player.js +++ b/apps/media/js/player.js @@ -62,6 +62,7 @@ var PlayList={ } }, cssSelectorAncestor:'#jp-interface', + swfPath:OC.linkTo('media','js'), }); }, add:function(song){ diff --git a/apps/media/templates/player.php b/apps/media/templates/player.php index abba806510..b307f98473 100644 --- a/apps/media/templates/player.php +++ b/apps/media/templates/player.php @@ -17,7 +17,6 @@ - -
    +
    \ No newline at end of file From 606dec8da026d3aceb75abb64c936a09a3bd9133 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 27 Jul 2011 16:39:44 +0200 Subject: [PATCH 14/73] some minor changes in the javascript translation function also provide Array.prototype.indexOf for browser that don't support it nativale (IE) --- core/js/js.js | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/core/js/js.js b/core/js/js.js index 9117f08349..593a637137 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -1,26 +1,27 @@ -var _l10ncache = {}; function t(app,text){ - if( !( app in _l10ncache )){ - $.post( oc_webroot+'/core/ajax/translations.php', {'app': app}, function(jsondata){ - _l10ncache[app] = jsondata.data; + if( !( app in t.cache )){ + + $.post( OC.filePath('core','ajax','translations.php'), {'app': app}, function(jsondata){ + t.cache[app] = jsondata.data; }); // Bad answer ... - if( !( app in _l10ncache )){ - _l10ncache[app] = []; + if( !( app in t.cache )){ + t.cache[app] = []; } } - if( typeof( _l10ncache[app][text] ) !== 'undefined' ){ - return _l10ncache[app][text]; + if( typeof( t.cache[app][text] ) !== 'undefined' ){ + return t.cache[app][text]; } else{ return text; } } +t.cache={}; OC={ webroot:oc_webroot, - coreApps:['files','admin','log','search','settings'], + coreApps:['files','admin','log','search','settings','core'], linkTo:function(app,file){ return OC.filePath(app,'',file); }, @@ -55,3 +56,25 @@ OC={ $('head').append(style); } } + +if (!Array.prototype.indexOf){ + Array.prototype.indexOf = function(elt /*, from*/) + { + var len = this.length; + + var from = Number(arguments[1]) || 0; + from = (from < 0) + ? Math.ceil(from) + : Math.floor(from); + if (from < 0) + from += len; + + for (; from < len; from++) + { + if (from in this && + this[from] === elt) + return from; + } + return -1; + }; +} \ No newline at end of file From 556bf2ef4ddf1aa47f1ebd90494f562076fdeac2 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 27 Jul 2011 16:57:49 +0200 Subject: [PATCH 15/73] fix broken merge --- core/js/js.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/js/js.js b/core/js/js.js index 3a820544b7..2f74bda258 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -73,6 +73,8 @@ if (!Array.prototype.filter) { } } return res; + } +} if (!Array.prototype.indexOf){ Array.prototype.indexOf = function(elt /*, from*/) { From 7505720350369943d4b1a8be5f3840ada424221b Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 27 Jul 2011 22:44:51 +0200 Subject: [PATCH 16/73] fix log when no tablename prefix is used --- lib/log.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/log.php b/lib/log.php index 894575ef05..764c094c91 100644 --- a/lib/log.php +++ b/lib/log.php @@ -51,7 +51,7 @@ class OC_LOG { * This function adds another entry to the log database */ public static function add( $appid, $subject, $predicate, $object = ' ' ){ - $query=OC_DB::prepare("INSERT INTO *PREFIX*log(moment,appid,user,action,info) VALUES(NOW(),?,?,?,?)"); + $query=OC_DB::prepare("INSERT INTO `*PREFIX*log`(moment,appid,user,action,info) VALUES(NOW(),?,?,?,?)"); $result=$query->execute(array($appid,$subject,$predicate,$object)); // Die if we have an error if( PEAR::isError($result)) { @@ -79,7 +79,7 @@ class OC_LOG { * - app: only entries for this app */ public static function get( $filter = array()){ - $queryString='SELECT * FROM *PREFIX*log WHERE 1=1 ORDER BY moment DESC'; + $queryString='SELECT * FROM `*PREFIX*log` WHERE 1=1 ORDER BY moment DESC'; $params=array(); if(isset($filter['from'])){ $queryString.='AND moment>? '; @@ -116,7 +116,7 @@ class OC_LOG { * This function deletes all entries that are older than $date. */ public static function deleteBefore( $date ){ - $query=OC_DB::prepare("DELETE FROM *PREFIX*log WHERE momentexecute(array($date)); return true; } @@ -128,7 +128,7 @@ class OC_LOG { * This function deletes all log entries. */ public static function deleteAll(){ - $query=OC_DB::prepare("DELETE FROM *PREFIX*log"); + $query=OC_DB::prepare("DELETE FROM `*PREFIX*log`"); $query->execute(); return true; } From 7d5bc7974d9f7e7e3e1380b56fc77fd0eb3b87e1 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 27 Jul 2011 23:23:46 +0200 Subject: [PATCH 17/73] do not show default file action in the file action list on hover --- files/js/fileactions.js | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/files/js/fileactions.js b/files/js/fileactions.js index 3ad417c91c..a6891a5f82 100644 --- a/files/js/fileactions.js +++ b/files/js/fileactions.js @@ -52,19 +52,22 @@ FileActions={ $('#file_menu').empty(); parent.append($('#file_menu')); var actions=FileActions.get(FileActions.getCurrentMimeType(),FileActions.getCurrentType()); + var defaultAction=FileActions.getDefault(FileActions.getCurrentMimeType(),FileActions.getCurrentType()); for(name in actions){ - var html=''+name+''; - var element=$(html); - element.data('action',name); - element.click(function(event){ - event.stopPropagation(); - event.preventDefault(); - var action=actions[$(this).data('action')]; - var currentFile=FileActions.getCurrentFile(); - FileActions.hide(); - action(currentFile); - }); - $('#file_menu').append(element); + if(actions[name]!=defaultAction){ + var html=''+name+''; + var element=$(html); + element.data('action',name); + element.click(function(event){ + event.stopPropagation(); + event.preventDefault(); + var action=actions[$(this).data('action')]; + var currentFile=FileActions.getCurrentFile(); + FileActions.hide(); + action(currentFile); + }); + $('#file_menu').append(element); + } } $('#file_menu').show(); return false; From 90ecd2c293f96a2e5041767afaf4266af30c4601 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 27 Jul 2011 23:31:38 +0200 Subject: [PATCH 18/73] deleting stuff is scary, lets move the button as far to the right as possible it doesn't fit good currently in the column but will be fixed with using icons --- files/css/files.css | 2 +- files/js/fileactions.js | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/files/css/files.css b/files/css/files.css index 590c7bac36..37cb64bff0 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -88,7 +88,7 @@ table td.filesize, table td.date table td.date { - width: 11em; + width: 12em; } table td.selection, table th.selection, table td.fileaction diff --git a/files/js/fileactions.js b/files/js/fileactions.js index a6891a5f82..4920e803b7 100644 --- a/files/js/fileactions.js +++ b/files/js/fileactions.js @@ -54,7 +54,7 @@ FileActions={ var actions=FileActions.get(FileActions.getCurrentMimeType(),FileActions.getCurrentType()); var defaultAction=FileActions.getDefault(FileActions.getCurrentMimeType(),FileActions.getCurrentType()); for(name in actions){ - if(actions[name]!=defaultAction){ + if(actions[name]!=defaultAction && name!='Delete'){ var html=''+name+''; var element=$(html); element.data('action',name); @@ -69,12 +69,27 @@ FileActions={ $('#file_menu').append(element); } } + if(actions['Delete']){ + var html='Delete'; + var element=$(html); + element.data('action','Delete'); + element.click(function(event){ + event.stopPropagation(); + event.preventDefault(); + var action=actions[$(this).data('action')]; + var currentFile=FileActions.getCurrentFile(); + FileActions.hide(); + action(currentFile); + }); + parent.parent().children().last().append(element); + } $('#file_menu').show(); return false; }, hide:function(){ $('#file_menu').hide(); $('#file_menu').empty(); + $('#action_delete').remove(); $('body').append($('#file_menu')); }, getCurrentFile:function(){ From 25c48e6aed35084d3bd49e5b577a4ace9f640bc8 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Thu, 28 Jul 2011 00:21:11 +0200 Subject: [PATCH 19/73] lots of small style fixes for the file list --- core/css/styles.css | 4 ++- files/css/files.css | 65 ++++++++------------------------------- files/js/files.js | 36 ++++++++++++---------- files/templates/index.php | 6 ++-- 4 files changed, 39 insertions(+), 72 deletions(-) diff --git a/core/css/styles.css b/core/css/styles.css index 7a26c2f670..f5f54a1c9f 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -5,7 +5,9 @@ body { background:#fefefe url('../img/body_background.jpg') repeat-y left top; f #owncloud { float:left; margin:0 0 0 2em; } h1 { margin:1em 3em 1em 0; border-bottom:1px solid #666; text-transform:uppercase; font-weight:normal; font-style:italic; color:#666; } p.center { text-align:center; } -a { color:#000; text-decoration:none; } +a { color:#000; text-decoration:none; outline:0; } +table { white-space:nowrap; } +input { background:#fff; cursor:pointer; } form#user_settings { max-width:600px; } form#user_settings p label { display:block; float:left; width:35%; padding:0.4em 0.5em 0 0; text-align:right; } diff --git a/files/css/files.css b/files/css/files.css index 590c7bac36..c00b595fd2 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -17,7 +17,6 @@ .file_upload_form, #file_newfolder_form { display: inline; - margin-left:3em; } #fileSelector, #file_upload_submit, #file_newfolder_submit { @@ -37,14 +36,14 @@ #file_newfolder_name { background-image:url("../img/folder.png"); font-weight:bold; - width: 14em; + width: 11em; } .file_upload_start, .file_upload_filename{ position:absolute; top:0px; left:0px; - width:30ex; + width:11em; font-size: 0.9em; } @@ -54,7 +53,7 @@ left:-2em; display: -moz-inline-box; /* fallback for older firefox versions*/ display: inline-block; - width:30ex; + width:12em; } #file_newfolder_submit, #file_upload_submit { @@ -76,39 +75,6 @@ table { tbody tr:hover, tbody tr:active, tbody tr.selected { background-color:#eee; } tbody a { color:#000; } -table td.filesize, table td.date -{ - width: 7em; - padding: 0.5em 1em; - text-align: right; -} -#headerSize{ - text-align:right; -} - -table td.date -{ - width: 11em; -} - -table td.selection, table th.selection, table td.fileaction -{ - width: 2em; - text-align: center; -} - -td.filename{ - position:relative; -} - -.dropArrow{ - height:16px; - width:16px; - display: -moz-inline-box; /* fallback for older firefox versions*/ - display: inline-block; - background-image:url('../img/drop-arrow.png'); -} - span.extention{ color:#999; } @@ -118,23 +84,23 @@ div.crumb{ display:block; background-repeat:no-repeat; background-position:right 0px; - font-size:20px; + font-weight:bold; padding-top:8px; padding-left:8px; height:28px; /*36-8*/ } table tr.mouseOver td { background-color:#eee; } -table th, table td { padding:0; border-bottom:1px solid #ddd; text-align:left; font-style:italic; } -table th { padding:0.5em; } +table th { padding:.5em; } +table th .name { float:left; margin-left:.5em; } +table th, table td { border-bottom:1px solid #ddd; text-align:left; font-weight:normal; } table td { border-bottom:1px solid #eee; font-style:normal; } -table td.date { width:11em; } +table th#headerSize, table td.filesize, table th#headerDate, table td.date { width:4em; padding:0 1em; text-align:right; cursor:help; } table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; } table td.filename a { display:block; background-image:url('../img/file.png'); text-decoration:none; } -table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:0.5em 0.5em 0.5em 3em; background-position:1em center; background-repeat:no-repeat; } +table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.5em .5em .5em 3em; background-position:1em center; background-repeat:no-repeat; } table td.filename a:hover, table td.filename a:focus { outline:0; } table td.filename a:active { outline:0; } -table em { font-weight:bold; } table td.filename a.folder-up { background-image:url('../img/back.png'); font-style:italic; } table td.filename a.folder { background-image:url('../img/folder.png'); } table td.filename a.folder-home { background-image:url('../img/home.png'); } @@ -151,16 +117,11 @@ table td.download { background-image:url('../img/download.png'); } table td.upload { background-image:url('../img/upload.png'); } table td.create { background-image:url('../img/folder-new.png'); } table td.delete { background-image:url('../img/delete.png'); } -#fileList tr input[type=checkbox] { display:none; float:left; margin:0.7em; margin-left:1em; } -#fileList tr input[type=checkbox]:checked { display:inline; } -#fileList tr:hover input[type=checkbox] { display:inline; } -#fileList tr:hover td.filename a{background-image:none !important} -#fileList tr.selected td.filename a{background-image:none !important} +#fileList tr input[type=checkbox] { display:none; float:left; margin:.7em 0 0 1em; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/ } +#fileList tr input[type=checkbox]:checked, #fileList tr:hover input[type=checkbox] { display:inline; } +#fileList tr.selected td.filename a, #fileList tr:hover td.filename a{background-image:none !important} #select_all{float:left; margin:0.2em; margin-left:0.6em; } -#selectedActions{ - float:right; - display:none; -} +#selectedActions { float:right; display:none; } #uploadsize-message{display:none} /* add breadcrumb divider to the File item in navigation panel */ diff --git a/files/js/files.js b/files/js/files.js index e1ac4e172f..23d4c0205f 100644 --- a/files/js/files.js +++ b/files/js/files.js @@ -328,7 +328,9 @@ function procesSelection(){ var selectedFolders=selected.filter(function(el){return el.type=='dir'}); if(selectedFiles.length==0 && selectedFolders.length==0){ $('#headerName>span.name').text('Name'); - $('#headerSize').text('Size (MB)'); + $('#headerSize').text('Size MB'); + $('#headerDate').text('Modified'); + $('th').css({background:'#fff',fontWeight:'normal'}); $('#selectedActions').hide(); }else{ $('#selectedActions').show(); @@ -347,26 +349,28 @@ function procesSelection(){ totalSize= '>1000'; } } - $('#headerSize').text(totalSize+' (MB)'); + $('#headerSize').text(totalSize+' MB'); var selection=''; - if(selectedFiles.length>0){ - if(selectedFiles.length==1){ - selection+='1 File'; - }else{ - selection+=selectedFiles.length+' Files'; - } - if(selectedFolders.length>0){ - selection+=' ,'; - } - } if(selectedFolders.length>0){ if(selectedFolders.length==1){ - selection+='1 Folder'; + selection+='1 folder'; }else{ - selection+=selectedFolders.length+' Folders'; + selection+=selectedFolders.length+' folders'; + } + if(selectedFiles.length>0){ + selection+=' & '; } } - $('#headerName>span.name').text(selection+' Selected'); + if(selectedFiles.length>0){ + if(selectedFiles.length==1){ + selection+='1 file'; + }else{ + selection+=selectedFiles.length+' files'; + } + } + $('#headerName>span.name').text(selection); + $('#headerDate').text(''); + $('th').css({background:'#ddd', fontWeight:'bold'}); } } @@ -396,4 +400,4 @@ function getSelectedFiles(property){ } }); return files; -} \ No newline at end of file +} diff --git a/files/templates/index.php b/files/templates/index.php index b0d4f556f4..e0c4fd39c1 100644 --- a/files/templates/index.php +++ b/files/templates/index.php @@ -34,8 +34,8 @@ Delete
    - t( 'Size (MB)' ); ?> - t( 'Modified' ); ?> + t( 'Size MB' ); ?> + t( 'Modified' ); ?> @@ -43,7 +43,7 @@ -
    +

    t( 'The files you are trying to upload exceed the maximum size for file uploads on this server.' ); ?>

    From 78f47c07e078aa9cde119c0eb32a8adc111569f8 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Thu, 28 Jul 2011 00:36:31 +0200 Subject: [PATCH 20/73] show arrow cursor instead of text caret by default --- core/css/styles.css | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/css/styles.css b/core/css/styles.css index f5f54a1c9f..ac4a6448af 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -1,4 +1,4 @@ -* { margin:0; padding:0; border:0; } +* { margin:0; padding:0; border:0; cursor:default; } body { background:#fefefe url('../img/body_background.jpg') repeat-y left top; font:normal 80%/1.6em "Lucida Grande", Arial, Verdana, sans-serif; color:#000; } #header { position:fixed; top:0; z-index:100; width:100%; height:2.5em; padding:0.5em 1.5em; background:url('../img/header-a.png') repeat-x left top; } #body-settings #header { background-image:url('../img/header-settings-a.png'); } @@ -7,7 +7,9 @@ h1 { margin:1em 3em 1em 0; border-bottom:1px solid #666; text-transform:uppercas p.center { text-align:center; } a { color:#000; text-decoration:none; outline:0; } table { white-space:nowrap; } -input { background:#fff; cursor:pointer; } +input { background:#fff; } +a, a img, a strong, a span, input, button, select, li { cursor:pointer; } +input[type="text"], input[type="password"] { cursor:text; } form#user_settings { max-width:600px; } form#user_settings p label { display:block; float:left; width:35%; padding:0.4em 0.5em 0 0; text-align:right; } From 9a88f066c58c27152f8c58d5778140b872aa0be6 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Thu, 28 Jul 2011 01:15:36 +0200 Subject: [PATCH 21/73] first part of file action icons implementation --- core/img/actions/delete.png | Bin 0 -> 330 bytes core/img/actions/delete.svg | 70 +++++++++++++++++++++++++++++ core/img/actions/download.png | Bin 0 -> 264 bytes core/img/actions/download.svg | 73 +++++++++++++++++++++++++++++++ core/img/actions/rename.png | Bin 0 -> 339 bytes core/img/actions/rename.svg | 80 ++++++++++++++++++++++++++++++++++ core/img/actions/share.png | Bin 0 -> 478 bytes core/img/actions/share.svg | 70 +++++++++++++++++++++++++++++ files/css/files.css | 5 ++- files/templates/index.php | 4 +- 10 files changed, 298 insertions(+), 4 deletions(-) create mode 100644 core/img/actions/delete.png create mode 100644 core/img/actions/delete.svg create mode 100644 core/img/actions/download.png create mode 100644 core/img/actions/download.svg create mode 100644 core/img/actions/rename.png create mode 100644 core/img/actions/rename.svg create mode 100644 core/img/actions/share.png create mode 100644 core/img/actions/share.svg diff --git a/core/img/actions/delete.png b/core/img/actions/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..97f089524b21449a6c9e1aa4c10c579433221ec7 GIT binary patch literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4$JXnPJT?snqh?n;Vv%U@vAiwIU^#(_ z)8I_KcFgliU zAo!@@1?}|mmbOY}_^f`j`GwZCuPj-kp6W#GJs9}szi}<&-Sa+Q TVy-*`g&KpWtDnm{r-UW|T5o*s literal 0 HcmV?d00001 diff --git a/core/img/actions/delete.svg b/core/img/actions/delete.svg new file mode 100644 index 0000000000..e542b6fed3 --- /dev/null +++ b/core/img/actions/delete.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/core/img/actions/download.png b/core/img/actions/download.png new file mode 100644 index 0000000000000000000000000000000000000000..783ad448449e75e8561aab1e0f468e3ef57f2ff1 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR47K_44#yZiq`J#Fr zW) + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/core/img/actions/rename.png b/core/img/actions/rename.png new file mode 100644 index 0000000000000000000000000000000000000000..9a86919df5a53d7957e25e09564046b8bb41eb78 GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4Ty;Iu2`jNV%(EpP8@3pD)-|pYV^9iOq1A9iLj1tX z)g(b#d&Y{>enAEJ-A_2)ydC)CNSAu evg*{_$ryY;W@8i6^fsX17(8A5T-G@yGywnwAAkM; literal 0 HcmV?d00001 diff --git a/core/img/actions/rename.svg b/core/img/actions/rename.svg new file mode 100644 index 0000000000..adda394ddf --- /dev/null +++ b/core/img/actions/rename.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/core/img/actions/share.png b/core/img/actions/share.png new file mode 100644 index 0000000000000000000000000000000000000000..300ce57544d4d3a4500e2a366e07b440d32ef722 GIT binary patch literal 478 zcmV<40U`d0P)ZfS|(e9h(iB7?K4~HQbqV?wP}gneiVK@(xz3 z)fw-73`~kh!_1DHb3V6#_r3v40hrkV&;ss)JY-c}Zj*mu6$Y$OtJNmbG`EIuVkGVZ-sU@@C(iO7kW%>rXti02&wy`ZWKfC6)Weim7Z z+q97UpVKkfak8~+uQ;GK@jW!H^7UC>;v~OAcH*k22HPj UXsb`a4FCWD07*qoM6N<$f}0Sk literal 0 HcmV?d00001 diff --git a/core/img/actions/share.svg b/core/img/actions/share.svg new file mode 100644 index 0000000000..7812971e38 --- /dev/null +++ b/core/img/actions/share.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/files/css/files.css b/files/css/files.css index c00b595fd2..7db46e3b0a 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -95,7 +95,7 @@ table th { padding:.5em; } table th .name { float:left; margin-left:.5em; } table th, table td { border-bottom:1px solid #ddd; text-align:left; font-weight:normal; } table td { border-bottom:1px solid #eee; font-style:normal; } -table th#headerSize, table td.filesize, table th#headerDate, table td.date { width:4em; padding:0 1em; text-align:right; cursor:help; } +table th#headerSize, table td.filesize, table th#headerDate, table td.date { width:5em; padding:0 1em; text-align:right; cursor:help; } table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; } table td.filename a { display:block; background-image:url('../img/file.png'); text-decoration:none; } table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.5em .5em .5em 3em; background-position:1em center; background-repeat:no-repeat; } @@ -122,7 +122,8 @@ table td.delete { background-image:url('../img/delete.png'); } #fileList tr.selected td.filename a, #fileList tr:hover td.filename a{background-image:none !important} #select_all{float:left; margin:0.2em; margin-left:0.6em; } #selectedActions { float:right; display:none; } -#uploadsize-message{display:none} +#selectedActions a { margin:0 .5em; } +#uploadsize-message{ display:none; } /* add breadcrumb divider to the File item in navigation panel */ #plugins li:first-child{ diff --git a/files/templates/index.php b/files/templates/index.php index e0c4fd39c1..ac89025739 100644 --- a/files/templates/index.php +++ b/files/templates/index.php @@ -29,9 +29,9 @@ t( 'Name' ); ?> - Download + Download - Delete + Delete t( 'Size MB' ); ?> From 7cd7e64498f54bbfff6ffe6d1bce80b844391938 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Thu, 28 Jul 2011 01:26:26 +0200 Subject: [PATCH 22/73] proper CSS formatting for better workflow --- core/css/styles.css | 194 ++++++-------------------------------------- files/css/files.css | 113 ++++---------------------- 2 files changed, 45 insertions(+), 262 deletions(-) diff --git a/core/css/styles.css b/core/css/styles.css index ac4a6448af..0782986ead 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -7,7 +7,7 @@ h1 { margin:1em 3em 1em 0; border-bottom:1px solid #666; text-transform:uppercas p.center { text-align:center; } a { color:#000; text-decoration:none; outline:0; } table { white-space:nowrap; } -input { background:#fff; } +input, select { background:#fff; color:#333; } a, a img, a strong, a span, input, button, select, li { cursor:pointer; } input[type="text"], input[type="password"] { cursor:text; } @@ -20,9 +20,9 @@ form input { padding:0.2em; border:1px solid #ddd; font-size:1.2em; } form input[type="submit"] { padding:0.1em 1em; border:1px solid #999; font-weight:bold; font-size:0.9em; cursor:pointer; } form input[type="submit"]:hover, form input[type="submit"]:focus { border:1px solid #999; background-color:#999; outline:0; } form input[type="submit"]:active { outline:0; } -form input[type="button"], form input[type="text"] { font-size: 0.9em; } +form input[type="button"], form input[type="text"] { font-size:0.9em; } fieldset { padding:1em; background-color:#f7f7f7; border:1px solid #ddd; max-width:600px; margin:2em 2em 2em 3em; } -legend { padding: 0.5em; font-size:1.2em; } +legend { padding:0.5em; font-size:1.2em; } div.controls { width:100%; margin:0px; background-color:#f7f7f7; border-bottom:1px solid #eee; position:fixed; z-index:100 } @@ -30,170 +30,30 @@ div.controls { width:100%; margin:0px; background-color:#f7f7f7; border-bottom:1 #body-login { width:100%; background-image:none; background-color:#ddd; } #body-login p.info { width:16em; margin:4em auto; padding:1em; background-color:#eee; border:1px solid #ccc; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; } -#login -{ - margin: 0 auto 0 auto; - padding: 2em 0 0 0; - background-image: url(../img/header-login.png); - background-position: left 0; - background-repeat: repeat-x; - background-color: #EEE; - border-bottom: 1px solid #FFF; - text-align: center; -} - -#login_form -{ - width: 20em; - margin: 4em auto; - padding: 0; -} - -#login_form fieldset -{ - background-color: transparent; - border: 0; -} - -#login_form fieldset p -{ - margin: 0.5em 0 0 0; - padding: 0; - text-align: left; -} - -#login_form fieldset p.submit -{ - margin: 2em 0 0 0; - padding: 1em 0 0 0; - border-top: 1px solid #DDD; - text-align: right; -} - -#login_form label -{ - font-size: 1em; - color: #666; -} - -#login_form input -{ - width: 100%; - margin: 0 0 0.5em 0; - padding: 0.5em; - border: 1px solid #DDD; - -moz-border-radius: 15px; - -webkit-border-radius: 15px; - border-radius: 15px; - font-size: 1.5em; - color: #333; - text-align: center; -} - -#login_form input[type=submit] -{ - width: auto; - margin: 1em 0 0 0.5em; - text-align: center; - border: 1px solid #DDD; - background-color: #FFF; - -moz-border-radius: 15px; - -webkit-border-radius: 15px; - border-radius: 15px; - font-size: 1.5em -} - -#login_form input[type=submit]:hover -{ - border: 1px solid #666; - background-color: #666; - color: #FFF; -} -#login_form input[type="checkbox"] -{ - width:15px; -} - -#setup_form { - margin: 3em auto; - text-align: left; - width: 720px; -} - -#setup_form #use_mysql { - font-size: 0.9em; - margin: 0 0 0 1em; -} - -#setup_form p.intro { - color: #666; - font-size: 1.3em; - margin: 4em 0 3em 0; - padding: 0; - text-align: center; -} - -#setup_form ul.errors { - background-image: url(images/no.png); - background-position: 1em 1em; - background-repeat: no-repeat; - background-color: #FED7D7; - border: 1px solid #F00; - font-size: 1.2em; - list-style-indent: inside; - margin: 0 0 4em 0; - padding: 1em 1em 1em 5em; -} - -#setup_form fieldset { - margin: 0 0 3em 0; -} - -#setup_form p { - line-height: 1.8em; -} - -#setup_form legend { - font-weight: normal; -} - -#setup_form label { - cursor: pointer; - display: block; - float: left; - margin: 0 0 0.2em 0; - text-align: right; - width: 40%; -} - +#login { margin:0 auto 0 auto; padding:2em 0 0 0; background-image:url(../img/header-login.png); background-position:left 0; background-repeat:repeat-x; background-color:#EEE; border-bottom:1px solid #FFF; text-align:center; } +#login_form { width:20em; margin:4em auto; padding:0; } +#login_form fieldset { background-color:transparent; border:0; } +#login_form fieldset p { margin:0.5em 0 0 0; padding:0; text-align:left; } +#login_form fieldset p.submit { margin:2em 0 0 0; padding:1em 0 0 0; border-top:1px solid #DDD; text-align:right; } +#login_form label { font-size:1em; color:#666; } +#login_form input { width:100%; margin:0 0 0.5em 0; padding:0.5em; border:1px solid #DDD; -moz-border-radius:15px; -webkit-border-radius:15px; border-radius:15px; font-size:1.5em; color:#333; text-align:center; } +#login_form input[type=submit] { width:auto; margin:1em 0 0 0.5em; text-align:center; border:1px solid #DDD; background-color:#FFF; -moz-border-radius:15px; -webkit-border-radius:15px; border-radius:15px; font-size:1.5em } +#login_form input[type=submit]:hover { border:1px solid #666; background-color:#666; color:#FFF; } +#login_form input[type="checkbox"] { width:15px; } +#setup_form { margin:3em auto; text-align:left; width:720px; } +#setup_form #use_mysql { font-size:0.9em; margin:0 0 0 1em; } +#setup_form p.intro { color:#666; font-size:1.3em; margin:4em 0 3em 0; padding:0; text-align:center; } +#setup_form ul.errors { background-image:url(images/no.png); background-position:1em 1em; background-repeat:no-repeat; background-color:#FED7D7; border:1px solid #F00; font-size:1.2em; list-style-indent:inside; margin:0 0 4em 0; padding:1em 1em 1em 5em; } +#setup_form fieldset { margin:0 0 3em 0; } +#setup_form p { line-height:1.8em; } +#setup_form legend { font-weight:normal; } +#setup_form label { cursor:pointer; display:block; float:left; margin:0 0 0.2em 0; text-align:right; width:40%; } #setup_form input[type='text'], -#setup_form input[type='password'] { - font-size: 1em; - margin: 0 0 0 0.5em; - padding: 0.3em; -} - -#setup_form input[type='radio'] { - margin: 0 0 0 1em; -} - -#setup_form input[type='submit'] { - background-color: #DDD; - border: 1px solid #999; - color: #666; - font-size: 1.2em; -} - -#setup_form input[type='submit']:hover { - border-color: #000; - color: #000; -} - -#setup_form p.submit { - padding: 0 0 1em 0; - text-align: center; -} - +#setup_form input[type='password'] { font-size:1em; margin:0 0 0 0.5em; padding:0.3em; } +#setup_form input[type='radio'] { margin:0 0 0 1em; } +#setup_form input[type='submit'] { background-color:#DDD; border:1px solid #999; color:#666; font-size:1.2em; } +#setup_form input[type='submit']:hover { border-color:#000; color:#000; } +#setup_form p.submit { padding:0 0 1em 0; text-align:center; } .prettybutton { margin:0.1em; padding:0.2em 0.5em; border:1px solid #ddd; -moz-border-radius:15px; -webkit-border-radius:15px; border-radius:15px; font-size:1.5em; text-decoration:none; color:#666; background-color:#fff; } @@ -252,4 +112,4 @@ p.actions a.delete, div.actions a.delete { background-image:url('../img/delete.p #logs_options input[type="submit"] { float:right; margin:0 2em 0 0; } #logs_options input[type="submit"].nofloat { float:none; margin:0 2em 0 0; } #logs_options input[type="text"] { margin:0; padding:0; border:1px solid #ccc; text-align:right; } -li.error{ list-style:none; width:640px; margin:4em auto; padding:1em 1em 1em 4em; background-color:#fee; background-image:url('../img/task-attention.png'); background-position:0.8em 0.8em; background-repeat:no-repeat; border:1px solid #ccc; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; } +li.error { list-style:none; width:640px; margin:4em auto; padding:1em 1em 1em 4em; background-color:#fee; background-image:url('../img/task-attention.png'); background-position:0.8em 0.8em; background-repeat:no-repeat; border:1px solid #ccc; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; } diff --git a/files/css/files.css b/files/css/files.css index 7db46e3b0a..e956f8c03a 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -1,95 +1,24 @@ /* FILE MENU */ +#file_menu { right:0px; position:absolute; top:0; } +#file_menu a { display:block; float:left; background-image:none; text-decoration:none; } +.file_upload_form, #file_newfolder_form { display:inline; } +#fileSelector, #file_upload_submit, #file_newfolder_submit { display:none; } +.file_upload_filename, #file_newfolder_name { background-repeat:no-repeat; background-position:0.5em 0; padding-left:2em; } +.file_upload_filename { background-image:url("../img/file.png"); font-weight:bold; }.file_upload_start { opacity:0;filter:alpha(opacity = 0); } -#file_menu -{ - right:0px; - position:absolute; - top:0; -} - -#file_menu a -{ - display:block; - float:left; - background-image:none; - text-decoration: none; -} - -.file_upload_form, #file_newfolder_form { - display: inline; -} - -#fileSelector, #file_upload_submit, #file_newfolder_submit { - display: none; -} - -.file_upload_filename, #file_newfolder_name { - background-repeat: no-repeat; - background-position: 0.5em 0; - padding-left: 2em; -} - -.file_upload_filename { - background-image:url("../img/file.png"); font-weight:bold; -} -.file_upload_start {opacity:0;filter: alpha(opacity = 0);} - -#file_newfolder_name { - background-image:url("../img/folder.png"); font-weight:bold; - width: 11em; -} - -.file_upload_start, .file_upload_filename{ - position:absolute; - top:0px; - left:0px; - width:11em; - font-size: 0.9em; -} - -.file_upload_wrapper{ - position:relative; - top:-1.2em; - left:-2em; - display: -moz-inline-box; /* fallback for older firefox versions*/ - display: inline-block; - width:12em; -} - -#file_newfolder_submit, #file_upload_submit { - width: 3em; -} - -.file_upload_target { - display: none; -} +#file_newfolder_name { background-image:url("../img/folder.png"); font-weight:bold; width:11em; } +.file_upload_start, .file_upload_filename { position:absolute; top:0px; left:0px; width:11em; font-size:0.9em; } +.file_upload_wrapper { position:relative; top:-1.2em; left:-2em; display:-moz-inline-box; /* fallback for older firefox versions*/ display:inline-block; width:12em; } +#file_newfolder_submit, #file_upload_submit { width:3em; } +.file_upload_target { display:none; } /* FILE TABLE */ - -table { - position:relative; - top:37px; - width: 100%; -} - +table { position:relative; top:37px; width:100%; } tbody tr:hover, tbody tr:active, tbody tr.selected { background-color:#eee; } tbody a { color:#000; } -span.extention{ - color:#999; -} - -div.crumb{ - float:left; - display:block; - background-repeat:no-repeat; - background-position:right 0px; - font-weight:bold; - padding-top:8px; - padding-left:8px; - height:28px; /*36-8*/ -} - +span.extention { color:#999; } +div.crumb { float:left; display:block; background-repeat:no-repeat; background-position:right 0px; font-weight:bold; padding-top:8px; padding-left:8px; height:28px; /*36-8*/ } table tr.mouseOver td { background-color:#eee; } table th { padding:.5em; } table th .name { float:left; margin-left:.5em; } @@ -119,17 +48,11 @@ table td.create { background-image:url('../img/folder-new.png'); } table td.delete { background-image:url('../img/delete.png'); } #fileList tr input[type=checkbox] { display:none; float:left; margin:.7em 0 0 1em; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/ } #fileList tr input[type=checkbox]:checked, #fileList tr:hover input[type=checkbox] { display:inline; } -#fileList tr.selected td.filename a, #fileList tr:hover td.filename a{background-image:none !important} -#select_all{float:left; margin:0.2em; margin-left:0.6em; } +#fileList tr.selected td.filename a, #fileList tr:hover td.filename a { background-image:none !important } +#select_all { float:left; margin:0.2em; margin-left:0.6em; } #selectedActions { float:right; display:none; } #selectedActions a { margin:0 .5em; } -#uploadsize-message{ display:none; } +#uploadsize-message { display:none; } /* add breadcrumb divider to the File item in navigation panel */ -#plugins li:first-child{ - background-position: 15.7em 0px; - background-repeat:no-repeat; - background-image: url("/owncloud/core/img/breadcrumb-divider-start.png"); - width:15.7em; - padding-right:11px; -} +#plugins li:first-child { background-position:15.7em 0px; background-repeat:no-repeat; background-image:url("/owncloud/core/img/breadcrumb-divider-start.png"); width:15.7em; padding-right:11px; } From c5bc345604caee2a908c61ac42dad7f025da27de Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Thu, 28 Jul 2011 02:30:09 +0200 Subject: [PATCH 23/73] rewrote header in pure CSS, smaller, less obtrusive --- core/css/styles.css | 21 +- core/img/{layout => actions}/back.png | Bin core/img/actions/back.svg | 121 ++++++++++++ core/img/{layout => actions}/logout.png | Bin core/img/actions/logout.svg | 95 ++++++++++ core/img/{layout => actions}/settings.png | Bin core/img/actions/settings.svg | 221 ++++++++++++++++++++++ core/img/drop-arrow.png | Bin 2899 -> 0 bytes core/img/header-a.png | Bin 2951 -> 0 bytes core/img/header-login.png | Bin 2402 -> 0 bytes core/img/header-settings-a.png | Bin 2885 -> 0 bytes core/img/header-settings.png | Bin 2887 -> 0 bytes core/img/header.png | Bin 2953 -> 0 bytes core/img/owncloud-logo-small-white.png | Bin 5444 -> 5339 bytes core/templates/installation.php | 2 +- core/templates/layout.admin.php | 4 +- core/templates/layout.user.php | 4 +- core/templates/login.php | 2 +- 18 files changed, 459 insertions(+), 11 deletions(-) rename core/img/{layout => actions}/back.png (100%) create mode 100644 core/img/actions/back.svg rename core/img/{layout => actions}/logout.png (100%) create mode 100644 core/img/actions/logout.svg rename core/img/{layout => actions}/settings.png (100%) create mode 100644 core/img/actions/settings.svg delete mode 100644 core/img/drop-arrow.png delete mode 100644 core/img/header-a.png delete mode 100644 core/img/header-login.png delete mode 100644 core/img/header-settings-a.png delete mode 100644 core/img/header-settings.png delete mode 100644 core/img/header.png diff --git a/core/css/styles.css b/core/css/styles.css index 0782986ead..0e4ac7ac3e 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -1,7 +1,7 @@ * { margin:0; padding:0; border:0; cursor:default; } body { background:#fefefe url('../img/body_background.jpg') repeat-y left top; font:normal 80%/1.6em "Lucida Grande", Arial, Verdana, sans-serif; color:#000; } -#header { position:fixed; top:0; z-index:100; width:100%; height:2.5em; padding:0.5em 1.5em; background:url('../img/header-a.png') repeat-x left top; } -#body-settings #header { background-image:url('../img/header-settings-a.png'); } +#header { position:fixed; top:0; z-index:100; width:100%; height:2.5em; padding:0.5em 1.5em; background:#1d2d44; -moz-box-shadow:0 0 10px #000, inset 0 -2px 10px #222; -webkit-box-shadow:0 0 10px #000, inset 0 -2px 10px #222; box-shadow:0 0 10px #000, inset 0 -2px 10px #222; } +#body-settings #header { background:#313131; } #owncloud { float:left; margin:0 0 0 2em; } h1 { margin:1em 3em 1em 0; border-bottom:1px solid #666; text-transform:uppercase; font-weight:normal; font-style:italic; color:#666; } p.center { text-align:center; } @@ -28,9 +28,20 @@ div.controls { width:100%; margin:0px; background-color:#f7f7f7; border-bottom:1 /* LOG IN & INSTALLATION ------------------------------------------------------------ */ #body-login { width:100%; background-image:none; background-color:#ddd; } -#body-login p.info { width:16em; margin:4em auto; padding:1em; background-color:#eee; border:1px solid #ccc; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; } +#body-login p.info { width:16em; margin:2em auto; padding:1em; background-color:#eee; border:1px solid #ccc; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; } +#body-login p.info a { font-weight:bold; } -#login { margin:0 auto 0 auto; padding:2em 0 0 0; background-image:url(../img/header-login.png); background-position:left 0; background-repeat:repeat-x; background-color:#EEE; border-bottom:1px solid #FFF; text-align:center; } +#login header { margin-top:-2em; height:10em; + -moz-box-shadow:0 0 5px #000; -webkit-box-shadow:0 0 20px #000; box-shadow:0 0 20px #000; +background: #1d2d44; /* Old browsers */ +background: -moz-linear-gradient(top, #35537a 0%, #1d2d42 100%); /* FF3.6+ */ +background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#35537a), color-stop(100%,#1d2d42)); /* Chrome,Safari4+ */ +background: -webkit-linear-gradient(top, #35537a 0%,#1d2d42 100%); /* Chrome10+,Safari5.1+ */ +background: -o-linear-gradient(top, #35537a 0%,#1d2d42 100%); /* Opera11.10+ */ +background: -ms-linear-gradient(top, #35537a 0%,#1d2d42 100%); /* IE10+ */ +filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#35537a', endColorstr='#1d2d42',GradientType=0 ); /* IE6-9 */ +background: linear-gradient(top, #35537a 0%,#1d2d42 100%); /* W3C */ } +#login { margin:0 auto 0 auto; padding:2em 0 0 0; border-bottom:1px solid #FFF; text-align:center; background:#eee; } #login_form { width:20em; margin:4em auto; padding:0; } #login_form fieldset { background-color:transparent; border:0; } #login_form fieldset p { margin:0.5em 0 0 0; padding:0; text-align:left; } @@ -62,7 +73,7 @@ div.controls { width:100%; margin:0px; background-color:#f7f7f7; border-bottom:1 /* META NAVIGATION (Settings, Log out) ---------------------------------------------------------------- */ #metanav { float:right; position:relative; top:0.5em; right:2.5em; list-style:none; margin:0; padding:0; } #metanav li { display:inline; } -#metanav li a { margin:.1em; padding:1em; } +#metanav li a { margin:.2em; padding:.7em; } #metanav li a:hover, #metanav li a:focus { background:rgba(0,0,0,.5); -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px; outline:0; box-shadow:#555 0 1px 0; -moz-box-shadow:#555 0 1px 0; -webkit-box-shadow:#555 0 1px 0; } #metanav li a img { vertical-align:middle; } diff --git a/core/img/layout/back.png b/core/img/actions/back.png similarity index 100% rename from core/img/layout/back.png rename to core/img/actions/back.png diff --git a/core/img/actions/back.svg b/core/img/actions/back.svg new file mode 100644 index 0000000000..2bdf50c733 --- /dev/null +++ b/core/img/actions/back.svg @@ -0,0 +1,121 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/layout/logout.png b/core/img/actions/logout.png similarity index 100% rename from core/img/layout/logout.png rename to core/img/actions/logout.png diff --git a/core/img/actions/logout.svg b/core/img/actions/logout.svg new file mode 100644 index 0000000000..d95ac95977 --- /dev/null +++ b/core/img/actions/logout.svg @@ -0,0 +1,95 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/core/img/layout/settings.png b/core/img/actions/settings.png similarity index 100% rename from core/img/layout/settings.png rename to core/img/actions/settings.png diff --git a/core/img/actions/settings.svg b/core/img/actions/settings.svg new file mode 100644 index 0000000000..67473520af --- /dev/null +++ b/core/img/actions/settings.svg @@ -0,0 +1,221 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/drop-arrow.png b/core/img/drop-arrow.png deleted file mode 100644 index 315395d5d4240bb8c2372e92f0af90ce0c9450b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2899 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 diff --git a/core/img/header-a.png b/core/img/header-a.png deleted file mode 100644 index 46fb0977ee2c49444c29312c48acacc4d826131f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2951 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 diff --git a/core/img/header-login.png b/core/img/header-login.png deleted file mode 100644 index b0160e02d1f34172bd4c2e684f8716bdb71c4572..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2402 zcmV-o37z(dP)Px#24YJ`L;yJeR{(rvGGwX%000SaNLh0L01FZT01FZU(%pXi00007bV*G`2ipP( z3o-_~qeKG$00`nqL_t(&-lbaYv1~OAvoh&}I;ezZ=!E8gLRS1pVoOf;G7R_4yt{YL zS59Kfk{tZ{+wYA3@iQVK$O!I#5sY9&1cUp}*hkKfex3{l5D|eOX{P||CLkgZK{61r z&Syj*VxA8{`V;gqSfhd-L%srQ)N&opD57qz|6{#(%>GtuFvw96`E4B!2KT4YM@z0D zv%L@WxO^CE34A4~?{v+J%oQ24=CFnc$~2$lj0miwc@G5E98liUCTg!gd~Bh&A38+X z$+2T#jn3wT%$rXHBM5tPuE$;pK!eQZW0EW4u6fh%c;8-fL1La^Gu+li-yuH_zjr0m zT8W-UCui!C34JMOnC~0myum)6C#;c=O4oW7#z!YSfHmtGm3w7?oz5Bs*lA=#rv@`J z6N20$;95#tlNX+a^71#I+*RW8POA7G2E2 z<_wWBD1Yc%L$bV%C+u!)dYN^I4bJ%W2>YBhdOCh3%q2esvGMo!2nA~M?$1Ohg(%1~d&hQp*2 z3Z7|~XzgTUfS)UEDIv?l*6a~AN0Su&I6Vt|KWbmWUhC;I~+ z6vsf4w$4-pp(5B7A z7O*K}T{F*tg|;^R$%Dvq3ZsS1iUY*QN)}MeoJz(+30BU*DJ&8oolRsQF%jEFP(`6p z3DcB#67WItuKlm-tgJ!OVPNy36moDZ%!E>Chel#&CnpPU8CSuT(i@(QI$&J*^byT+ zem-XzY5L%d0FB^LYvlf3mXT7Sv41N|K|HYSknK*UdNSQ2?0h$?Izte*coA~CzPLD6 zfesZyIK^NEYV1;fAZ)Plp+H=E0m_E4`2!ME>4k(v;WRcfL+L7Z#xrmq_3VojAMwRW z6Dk?k&XC@>F|JX#xZ5zg~eG*yceiAJvT7P!fF z!v^7rIyw7PvMDs@2L~TU_f^=Lm?hNqHl&P9v;R6K?y$^Ux$T&mgPZCi-_(>!6t9a< z#7NRb-aeQZactpzpeA{uB0CbCRFF|Dfx64QQjb-HU1&4{#)PzwA52FRPk!6eXiZEZ)etxXw#ts69xCb`}EI-#lr@#7d&cN7ZdQqv@vd7sunVy)eWZq^UL#0u|z`I(KQ?^f&RU%w-+US{{)t z=xVl0%L3p9szkSE#DwiRqT)VXoQ8Ysi%Zi8>o}a|y`mT|JE1u|!+I;igG}{?(|&C1 z1k*ogwl^ZPuT(q@iB2J&-{PECV(c5XDf^O4cz#DS+f4E>>p~V26Wmp$-N0r{O*Uu` zg|u!DWPP=e&-4k5<5J{wCE2;v;nFDWjOJblok;%-If|3|4C(TKWwznbE>xIDa^_D= zqEU{Gc?2F-C8fE$<-fX{uehwx=u5fz~a+OoQXfoS^qo#uM(G@Z(qJBu$3mjfurcw);y;?2(Jy|+{>9_t6r zz2mJ$&T&qLsZ&%*uYMe4bhH&9qwGK)sEV7pqRAZ!Y7GsTM<>W2oULfrGA2uD$$oXT zX>D^>vre})H0LYekKLzz4#lZr^0_K8w5;ngLd|(;*2Yzx?^bom2Wopj39QzGz9MoI zr$NDTDeFKbPCWV#6sKccVc%hmPWODG&B=<053i=|RrXugYeF_|r~vQgJS4v$1#B*R z54RxLfdc91gD$=aoV_?2#xNHnx7wUghO|;h@edm0z<4FEP;SMwd)fZk6il-KMq^D< zjMZc8CS{58arK({2%g(y$nY3l+Fkt^-j1fyka4&U8kH@X!z}&hv)ZVm6t1?%ikT5? zy++zw4dZ?b`0xHP#pGW%-GvmwO{ zs57B-c&4x`*?+*K`w+kCwG&6BpLpv{=$M=Dy+yYD8cbM!Z0y2YL|$IYygQYTS;wUAJ$LW#j?+4 z^4YQE(?_A20Z>Eo2XC04cO$phx~PxWR+{wD*}4F`FEuFu5m0jF70CR=vtI?Lv|YO_ zwS;^8R diff --git a/core/img/header-settings-a.png b/core/img/header-settings-a.png deleted file mode 100644 index a72271be6a48d44a21a26e99f1e7d69dcbfd802e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2885 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 diff --git a/core/img/header-settings.png b/core/img/header-settings.png deleted file mode 100644 index 7e6b70b5903bcdfb2422e225cf4c17bd2af8ca6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2887 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 diff --git a/core/img/header.png b/core/img/header.png deleted file mode 100644 index d377f65186d24983acf78756db7deff093d566d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2953 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 diff --git a/core/img/owncloud-logo-small-white.png b/core/img/owncloud-logo-small-white.png index 397ddf91341592b1a6a28824db55254a46dd84d5..8374c1335065ce58577b1dc63a144dac5ae5079e 100644 GIT binary patch literal 5339 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 QP#Y2$8JM8T^&MmX1L(OF=>Px# literal 5444 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 - ownCloud +
    ownCloud

    diff --git a/core/templates/layout.admin.php b/core/templates/layout.admin.php index e83cf6861b..78ccf87722 100644 --- a/core/templates/layout.admin.php +++ b/core/templates/layout.admin.php @@ -30,8 +30,8 @@

    diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index ffdb7937ae..f8beb79e81 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -31,8 +31,8 @@ ownCloud
      -
    • -
    • +
    • +
    diff --git a/core/templates/login.php b/core/templates/login.php index 19830a2499..fb3177eb0e 100644 --- a/core/templates/login.php +++ b/core/templates/login.php @@ -1,5 +1,5 @@
    - ownCloud +
    ownCloud
    From 74249c65da5b21c4b191f9792b510268c4b83454 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 28 Jul 2011 04:28:04 +0200 Subject: [PATCH 24/73] give OC.imagePath the ability to detect whether to use svg or png images --- core/js/js.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/js/js.js b/core/js/js.js index 2f74bda258..407c570870 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -40,6 +40,9 @@ OC={ return link; }, imagePath:function(app,file){ + if(file.indexOf('.')==-1){//if no extention is given, use png or svg depending on browser support + file+=(SVGSupport())?'.svg':'.png' + } return OC.filePath(app,'img',file); }, addScript:function(app,script,ready){ @@ -95,4 +98,8 @@ if (!Array.prototype.indexOf){ } return -1; }; -} \ No newline at end of file +} + +function SVGSupport() { + return document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") || document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Shape", "1.0"); +} From ece6bd663cc2a03e339019c29d1ea9170d11c24e Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 28 Jul 2011 04:29:04 +0200 Subject: [PATCH 25/73] show icons instead of text for file actions --- apps/files_imageviewer/js/lightbox.js | 2 +- apps/media/js/files.js | 8 ++--- files/css/files.css | 3 +- files/js/fileactions.js | 45 +++++++++++++++++---------- files/js/filelist.js | 4 +-- files/templates/part.list.php | 2 +- 6 files changed, 38 insertions(+), 26 deletions(-) diff --git a/apps/files_imageviewer/js/lightbox.js b/apps/files_imageviewer/js/lightbox.js index 6e45547ebb..318c764458 100644 --- a/apps/files_imageviewer/js/lightbox.js +++ b/apps/files_imageviewer/js/lightbox.js @@ -7,7 +7,7 @@ $(document).ready(function() { $( 'body' ).append(overlay); var container=$(' +
    +

    These items will be permanently deleted and cannot be recovered. Are you sure?

    +
    + From f1616b0e629ec5fd59a859748e64418862691597 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 29 Jul 2011 00:45:44 +0200 Subject: [PATCH 44/73] implemented relative file size and coloring --- core/css/styles.css | 2 +- files/templates/part.list.php | 7 +++++-- lib/template.php | 23 +++++++++++++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/core/css/styles.css b/core/css/styles.css index 33c1af4436..35b65f9480 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -24,7 +24,7 @@ form input[type="button"], form input[type="text"] { font-size:0.9em; } fieldset { padding:1em; background-color:#f7f7f7; border:1px solid #ddd; max-width:600px; margin:2em 2em 2em 3em; } legend { padding:0.5em; font-size:1.2em; } -div.controls { width:100%; margin:0px; background-color:#f7f7f7; border-bottom:1px solid #eee; position:fixed; z-index:0; } +div.controls { width:100%; margin:0px; background-color:#f7f7f7; border-bottom:1px solid #eee; position:fixed; z-index:2; } /* LOG IN & INSTALLATION ------------------------------------------------------------ */ #body-login { width:100%; background-image:none; background-color:#ddd; } diff --git a/files/templates/part.list.php b/files/templates/part.list.php index 1d78b77ae3..a0ffb4b607 100644 --- a/files/templates/part.list.php +++ b/files/templates/part.list.php @@ -1,6 +1,9 @@ + $simple_size_color = 200-intval(pow(($file['size']/(1024*1024)),2)); + $relative_modified_date = relative_modified_date($file['mtime']); + $relative_date_color = round((time()-$file['mtime'])/60/60/24*5); //days ago + if($relative_date_color>200) $relative_date_color = 200; ?> '> @@ -15,6 +18,6 @@ - + diff --git a/lib/template.php b/lib/template.php index 3c0cdf7e16..99099d49d0 100644 --- a/lib/template.php +++ b/lib/template.php @@ -75,6 +75,29 @@ function simple_file_size($bytes) { else { return number_format($mbytes, 1); } } +function relative_modified_date($timestamp) { + $timediff = time() - $timestamp; + $diffminutes = round($timediff/60); + $diffhours = round($diffminutes/60); + $diffdays = round($diffhours/24); + $diffmonths = round($diffdays/31); + $diffyears = round($diffdays/365); + if($timediff < 60) { return 'seconds ago'; } + else if($timediff < 120) { return '1 minute ago'; } + else if($timediff < 3600) { return $diffminutes.' minutes ago'; } + //else if($timediff < 7200) { return '1 hour ago'; } + //else if($timediff < 86400) { return $diffhours.' hours ago'; } + else if($timediff < 86400) { return 'today'; } + else if($timediff < 172800) { return 'yesterday'; } + else if($timediff < 2678400) { return $diffdays.' days ago'; } + else if($timediff < 5184000) { return 'last month'; } + //else if($timediff < 31556926) { return $diffmonths.' months ago'; } + else if($timediff < 31556926) { return 'months ago'; } + else if($timediff < 63113852) { return 'last year'; } + else { return $diffyears.' years ago'; } +} + + /** * This class provides the templates for owncloud. */ From 82261e99073047dd72ecec927f33ff5fea3cbffd Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Jul 2011 01:10:08 +0200 Subject: [PATCH 45/73] use relative times for new upload files --- files/js/filelist.js | 16 +++++++++++++--- files/js/files.js | 29 +++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/files/js/filelist.js b/files/js/filelist.js index e4ec97e506..252a9c9580 100644 --- a/files/js/filelist.js +++ b/files/js/filelist.js @@ -24,8 +24,10 @@ FileList={ simpleSize='Pending'; } sizeColor = Math.round(200-Math.pow((size/(1024*1024)),2)); + lastModifiedTime=Math.round(lastModified.getTime() / 1000); + modifiedColor=Math.round((Math.round((new Date()).getTime() / 1000)-lastModifiedTime)/60/60/24*5); html+=''+simpleSize+''; - html+=''+lastModified+''; + html+=''+relative_modified_date(lastModified.getTime() / 1000)+''; html+=''; FileList.insertElement(name,'file',$(html)); if(loading){ @@ -37,8 +39,16 @@ FileList={ addDir:function(name,size,lastModified){ var html=''; html+=''+name+''; - html+=''+size+''; - html+=''+lastModified+''; + if(size!='Pending'){ + simpleSize=simpleFileSize(size); + }else{ + simpleSize='Pending'; + } + sizeColor = Math.round(200-Math.pow((size/(1024*1024)),2)); + lastModifiedTime=Math.round(lastModified.getTime() / 1000); + modifiedColor=Math.round((Math.round((new Date()).getTime() / 1000)-lastModifiedTime)/60/60/24*5); + html+=''+simpleSize+''; + html+=''+relative_modified_date(lastModified.getTime() / 1000)+''; html+=''; FileList.insertElement(name,'dir',$(html)); diff --git a/files/js/files.js b/files/js/files.js index cd1689a2dd..60f2b2aec8 100644 --- a/files/js/files.js +++ b/files/js/files.js @@ -62,8 +62,8 @@ $(document).ready(function() { url: 'ajax/newfolder.php', data: "dir="+$('#dir').val()+"&foldername="+$('#file_newfolder_name').val(), complete: function(data){boolOperationFinished(data, function(){ - var date=formatDate(new Date()); - FileList.addDir($('#file_newfolder_name').val(),'0 B',date) + var date=new Date(); + FileList.addDir($('#file_newfolder_name').val(),0,date) });} }); $('#file_newfolder_submit').fadeOut(250).trigger('vanish'); @@ -175,14 +175,13 @@ $(document).ready(function() { }); form.submit(); var date=new Date(); - var uploadTime=formatDate(date); for(var i=0;i0){ var size=files[i].size; }else{ var size='Pending'; } - FileList.addFile(files[i].name,size,uploadTime,true); + FileList.addFile(files[i].name,size,date,true); } //clone the upload form and hide the new one to allow users to start a new upload while the old one is still uploading @@ -416,3 +415,25 @@ function getSelectedFiles(property){ }); return files; } + +function relative_modified_date(timestamp) { + var timediff = Math.round((new Date()).getTime() / 1000) - timestamp; + var diffminutes = Math.round(timediff/60); + var diffhours = Math.round(diffminutes/60); + var diffdays = Math.round(diffhours/24); + var diffmonths = Math.round(diffdays/31); + var diffyears = Math.round(diffdays/365); + if(timediff < 60) { return 'seconds ago'; } + else if(timediff < 120) { return '1 minute ago'; } + else if(timediff < 3600) { return diffminutes+' minutes ago'; } + //else if($timediff < 7200) { return '1 hour ago'; } + //else if($timediff < 86400) { return $diffhours.' hours ago'; } + else if(timediff < 86400) { return 'today'; } + else if(timediff < 172800) { return 'yesterday'; } + else if(timediff < 2678400) { return diffdays+' days ago'; } + else if(timediff < 5184000) { return 'last month'; } + //else if($timediff < 31556926) { return $diffmonths.' months ago'; } + else if(timediff < 31556926) { return 'months ago'; } + else if(timediff < 63113852) { return 'last year'; } + else { return diffyears+' years ago'; } +} From c15db76aa0d86f68242b01e06f982e0ca782fbee Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 29 Jul 2011 01:16:30 +0200 Subject: [PATCH 46/73] icons for music and images --- core/img/mimetypes/image.png | Bin 0 -> 284 bytes core/img/mimetypes/music.png | Bin 0 -> 562 bytes files/img/drop-arrow.png | Bin 2899 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 core/img/mimetypes/image.png create mode 100644 core/img/mimetypes/music.png delete mode 100644 files/img/drop-arrow.png diff --git a/core/img/mimetypes/image.png b/core/img/mimetypes/image.png new file mode 100644 index 0000000000000000000000000000000000000000..06d4024fa23223c190bd38c5fb72df4f8f85b447 GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4A?J_=3=(*BeDY_4qkmXtj;ck;ck4??$Z?&y9i;JCcL-`=<; z*lS^Gj__aJMuwip6=uiYOnGDcyhe!O{olHI&u6#w8Om*AslD&L_Uj5kp2Hs+zVo`c z9R74NqG8?ZD@{{3GF*E#f1^?TCZ}!(hB?LFUN2V(wg^n~HSoR6T5w9>dzALG=eaeE Y|EI}j%s1YC6X-|=Pgg&ebxsLQ0K{i(SpWb4 literal 0 HcmV?d00001 diff --git a/core/img/mimetypes/music.png b/core/img/mimetypes/music.png new file mode 100644 index 0000000000000000000000000000000000000000..6333b947f07c7e4b896639213eea4234defb121e GIT binary patch literal 562 zcmV-20?qx2P)PTDY6-DDcCR?XMpN94c*&~wU|_y^Z+^@x zCNv(85u{3`5(4mnF}6LM&9(t#=ks|6Ko-Ey(P(r60O6p^^?LnSlB7?vEUSv5$dO1y zUY76sK7iGLLZR?Q)3hx@2nl>1Ac;+2AdyJK8DoS}3Q8#$WAjWV^Q%^?O~si|;0p*L zApq$0dUu9lc*SDTRTO0k;L*12v*m0cARPX4>^ROh0FMBkIOqOfZ!7)qr-podsZ)%jJJUj^penlgaPVXf(RALZ{O?jKyL{ zs;a7QL%Ob?rc$YoVpdi4_d7r?m-`xz#|<%SnzjfThOy&$-U3*yRv#91#U`K6CkY`C ztI=rO3$NSl-s-yUrqgM!*=#=a`~6Gdg~V@kUH4)z7#v8F^kSOk)VA&O$z*Z`0G4I# z0%!xE0EV3N>vsUlvi1Oc2Jj5v2Y?&S`7<`?6||IPzX`s{4gdfE07*qoM6N<$f?yZ% AvH$=8 literal 0 HcmV?d00001 diff --git a/files/img/drop-arrow.png b/files/img/drop-arrow.png deleted file mode 100644 index 315395d5d4240bb8c2372e92f0af90ce0c9450b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2899 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 From b88e5ce9a1af81604eec0a5a03d2d1a0428cb693 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 29 Jul 2011 01:19:09 +0200 Subject: [PATCH 47/73] added icon to media app --- apps/media/img/media.png | Bin 0 -> 562 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/media/img/media.png diff --git a/apps/media/img/media.png b/apps/media/img/media.png new file mode 100644 index 0000000000000000000000000000000000000000..6333b947f07c7e4b896639213eea4234defb121e GIT binary patch literal 562 zcmV-20?qx2P)PTDY6-DDcCR?XMpN94c*&~wU|_y^Z+^@x zCNv(85u{3`5(4mnF}6LM&9(t#=ks|6Ko-Ey(P(r60O6p^^?LnSlB7?vEUSv5$dO1y zUY76sK7iGLLZR?Q)3hx@2nl>1Ac;+2AdyJK8DoS}3Q8#$WAjWV^Q%^?O~si|;0p*L zApq$0dUu9lc*SDTRTO0k;L*12v*m0cARPX4>^ROh0FMBkIOqOfZ!7)qr-podsZ)%jJJUj^penlgaPVXf(RALZ{O?jKyL{ zs;a7QL%Ob?rc$YoVpdi4_d7r?m-`xz#|<%SnzjfThOy&$-U3*yRv#91#U`K6CkY`C ztI=rO3$NSl-s-yUrqgM!*=#=a`~6Gdg~V@kUH4)z7#v8F^kSOk)VA&O$z*Z`0G4I# z0%!xE0EV3N>vsUlvi1Oc2Jj5v2Y?&S`7<`?6||IPzX`s{4gdfE07*qoM6N<$f?yZ% AvH$=8 literal 0 HcmV?d00001 From 19d81add3d847da063986b969b1d259de2e897d4 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 29 Jul 2011 01:27:02 +0200 Subject: [PATCH 48/73] remove legacy styles --- files/css/files.css | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/files/css/files.css b/files/css/files.css index d79e75468a..328eaa40f5 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -31,22 +31,6 @@ table td.filename a, table td.login, table td.logout, table td.download, table t table td.filename .nametext, .modified { float:left; padding:.3em 0; } table td.filename .nametext { width:80%; } table td.filename form { float:left; font-size:.85em; } -table td.filename a.folder-up { background-image:url('../img/back.png'); font-style:italic; } -table td.filename a.folder { background-image:url('../img/folder.png'); } -table td.filename a.folder-home { background-image:url('../img/home.png'); } -table td.filename a.folder-music { background-image:url('../img/folder-music.png'); } -table td.filename a.folder-videos { background-image:url('../img/folder-video.png'); } -table td.filename a.folder-shared { background-image:url('../img/folder-shared.png'); } -table td.filename a.folder-images { background-image:url('../img/folder-image.png'); } -table td.filename a.file-txt { background-image:url('../img/file-txt.png'); } -table td.filename a.file-python { background-image:url('../img/file-python.png'); } -table td.filename a.file-php { background-image:url('../img/file.png'); } -table td.login { background-image:url('../img/login.png'); } -table td.logout { background-image:url('../img/logout.png'); } -table td.download { background-image:url('../img/download.png'); } -table td.upload { background-image:url('../img/upload.png'); } -table td.create { background-image:url('../img/folder-new.png'); } -table td.delete { background-image:url('../img/delete.png'); } #fileList tr input[type=checkbox] { display:none; float:left; margin:.7em 0 0 1em; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/ } #fileList tr input[type=checkbox]:checked, #fileList tr:hover input[type=checkbox] { display:inline; } #fileList tr.selected td.filename a, #fileList tr:hover td.filename a { background-image:none !important } From dbcebba8826be76eca141a28c29b4dd8d051291f Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 29 Jul 2011 01:33:03 +0200 Subject: [PATCH 49/73] show media icon in settings as well --- apps/media/appinfo/app.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/media/appinfo/app.php b/apps/media/appinfo/app.php index 22cb10d789..a41e228be4 100644 --- a/apps/media/appinfo/app.php +++ b/apps/media/appinfo/app.php @@ -29,5 +29,5 @@ if(OC_APP::getCurrentApp()=='files'){ OC_APP::register( array( 'order' => 3, 'id' => 'media', 'name' => 'Media' )); OC_APP::addNavigationEntry( array( 'id' => 'media_index', 'order' => 2, 'href' => OC_HELPER::linkTo( 'media', 'index.php' ), 'icon' => OC_HELPER::imagePath( 'media', 'media.png' ), 'name' => 'Media' )); -OC_APP::addSettingsPage( array( 'id' => 'media_settings', 'order' => 5, 'href' => OC_HELPER::linkTo( 'media', 'settings.php' ), 'name' => 'Media', 'icon' => OC_HELPER::imagePath( 'files', 'media.png' ))); +OC_APP::addSettingsPage( array( 'id' => 'media_settings', 'order' => 5, 'href' => OC_HELPER::linkTo( 'media', 'settings.php' ), 'name' => 'Media', 'icon' => OC_HELPER::imagePath( 'media', 'media.png' ))); ?> From 6d0c8ea7e4c15e2a4072e0951eac3c0f64b2fbdc Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Jul 2011 01:36:31 +0200 Subject: [PATCH 50/73] use proper file icons for image and audio files --- core/img/mimetypes/{music.png => audio.png} | Bin files/js/filelist.js | 3 ++- files/js/files.js | 9 +++++++++ lib/helper.php | 5 +++++ 4 files changed, 16 insertions(+), 1 deletion(-) rename core/img/mimetypes/{music.png => audio.png} (100%) diff --git a/core/img/mimetypes/music.png b/core/img/mimetypes/audio.png similarity index 100% rename from core/img/mimetypes/music.png rename to core/img/mimetypes/audio.png diff --git a/files/js/filelist.js b/files/js/filelist.js index 252a9c9580..a53ad672e4 100644 --- a/files/js/filelist.js +++ b/files/js/filelist.js @@ -96,7 +96,8 @@ FileList={ }, loadingDone:function(name){ $('tr[data-file="'+name+'"]').data('loading',false); - $('tr[data-file="'+name+'"] td.filename a').attr('style','background-image:url(img/file.png'); + var mime=$('tr[data-file="'+name+'"]').data('mime'); + $('tr[data-file="'+name+'"] td.filename a').attr('style','background-image:url('+getMimeIcon(mime)+')'); $('tr[data-file="'+name+'"] td.filename').draggable(dragOptions); }, isLoading:function(name){ diff --git a/files/js/files.js b/files/js/files.js index 60f2b2aec8..193c740b6c 100644 --- a/files/js/files.js +++ b/files/js/files.js @@ -437,3 +437,12 @@ function relative_modified_date(timestamp) { else if(timediff < 63113852) { return 'last year'; } else { return diffyears+' years ago'; } } + +function getMimeIcon(mime){ + mime=mime.substr(0,mime.indexOf('/')); + var knownMimes=['image','audio']; + if(knownMimes.indexOf(mime)==-1){ + mime='file'; + } + return OC.imagePath('core','mimetypes/'+mime+'.png'); +} \ No newline at end of file diff --git a/lib/helper.php b/lib/helper.php index 1fbcc589d1..ffb2587743 100755 --- a/lib/helper.php +++ b/lib/helper.php @@ -110,6 +110,11 @@ class OC_HELPER { if( file_exists( "$SERVERROOT/core/img/mimetypes/$mimetype.png" )){ return "$WEBROOT/core/img/mimetypes/$mimetype.png"; } + //try only the first part of the mimetype + $mimetype=substr($mimetype,0,strpos($mimetype,'-')); + if( file_exists( "$SERVERROOT/core/img/mimetypes/$mimetype.png" )){ + return "$WEBROOT/core/img/mimetypes/$mimetype.png"; + } else{ return "$WEBROOT/core/img/mimetypes/file.png"; } From 03713ede032a6fced5ab24d918d424c7585a355e Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 29 Jul 2011 01:42:08 +0200 Subject: [PATCH 51/73] updated ownCloud icon and position --- core/css/styles.css | 2 +- core/img/owncloud-logo-small-white.png | Bin 5339 -> 3550 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/core/css/styles.css b/core/css/styles.css index 35b65f9480..48a36734e5 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -2,7 +2,7 @@ body { background:#fefefe url('../img/body_background.jpg') repeat-y left top; font:normal 80%/1.6em "Lucida Grande", Arial, Verdana, sans-serif; color:#000; } #header { position:fixed; top:0; z-index:100; width:100%; height:2.5em; padding:0.5em 1.5em; background:#1d2d44; -moz-box-shadow:0 0 10px #000, inset 0 -2px 10px #222; -webkit-box-shadow:0 0 10px #000, inset 0 -2px 10px #222; box-shadow:0 0 10px #000, inset 0 -2px 10px #222; } #body-settings #header { background:#313131; } -#owncloud { float:left; margin:0 0 0 2em; } +#owncloud { float:left; } h1 { margin:1em 3em 1em 0; border-bottom:1px solid #666; text-transform:uppercase; font-weight:normal; font-style:italic; color:#666; } p.center { text-align:center; } a { color:#000; text-decoration:none; outline:0; } diff --git a/core/img/owncloud-logo-small-white.png b/core/img/owncloud-logo-small-white.png index 8374c1335065ce58577b1dc63a144dac5ae5079e..c0d8a92d83361509b0364f730aa24a072ede9170 100644 GIT binary patch literal 3550 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 YKN0+wBgq;vG5`Po07*qoM6N<$g7SO$*#H0l literal 5339 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 QP#Y2$8JM8T^&MmX1L(OF=>Px# From ebec36f19019f04d4994ab5980c54208c035a964 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 29 Jul 2011 01:53:29 +0200 Subject: [PATCH 52/73] better image icon --- core/img/mimetypes/image.png | Bin 284 -> 303 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/core/img/mimetypes/image.png b/core/img/mimetypes/image.png index 06d4024fa23223c190bd38c5fb72df4f8f85b447..3dda2729bc996a5883d9cd68a5efdee99be585f0 100644 GIT binary patch delta 201 zcmV;)05<=e033Pya*+0egz)L(?>uaU2gNNC@%j`@UTXj4>x7;ym`P zl+rPqKq*y(0f3oRRzO5G{8Ba_q?G#v%vB$33;r*>1>XC62|}{go;L+C#YuSPf3iZ0KraBCb4yC;su6?`mQ65C k(* Date: Fri, 29 Jul 2011 02:02:17 +0200 Subject: [PATCH 53/73] always show download icon on hover --- files/js/fileactions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/js/fileactions.js b/files/js/fileactions.js index e1f25885fe..4de7fa5542 100644 --- a/files/js/fileactions.js +++ b/files/js/fileactions.js @@ -56,7 +56,7 @@ FileActions={ var actions=FileActions.get(FileActions.getCurrentMimeType(),FileActions.getCurrentType()); var defaultAction=FileActions.getDefault(FileActions.getCurrentMimeType(),FileActions.getCurrentType()); for(name in actions){ - if(actions[name]!=defaultAction && name!='Delete'){ + if((name=='Download' || actions[name]!=defaultAction) && name!='Delete'){ var img=FileActions.icons[name]; var html=''; var element=$(html); From 0e76d06358d6ba8d47a907e64b38f7b63580d33f Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Jul 2011 02:17:40 +0200 Subject: [PATCH 54/73] properly style filenames after renaming --- files/js/filelist.js | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/files/js/filelist.js b/files/js/filelist.js index a53ad672e4..901c4fe218 100644 --- a/files/js/filelist.js +++ b/files/js/filelist.js @@ -121,7 +121,15 @@ FileList={ event.preventDefault(); tr.attr('data-file',newname); td.children('a.name').empty(); - td.children('a.name').text(newname); + if(newname.indexOf('.')>0){ + basename=newname.substr(0,newname.indexOf('.')); + }else{ + basename=newname; + } + td.children('a.name').text(basename); + if(newname.indexOf('.')>0){ + td.children('a.name').append($(''+newname.substr(newname.indexOf('.'))+'')); + } $.ajax({ url: 'ajax/rename.php', data: "dir="+$('#dir').val()+"&newname="+encodeURIComponent(newname)+"&file="+encodeURIComponent(name) @@ -133,7 +141,15 @@ FileList={ }); input.blur(function(){ td.children('a.name').empty(); - td.children('a.name').text(name); + if(name.indexOf('.')>0){ + basename=name.substr(0,name.indexOf('.')); + }else{ + basename=name; + } + td.children('a.name').text(basename); + if(name.indexOf('.')>0){ + td.children('a.name').append($(''+name.substr(name.indexOf('.'))+'')); + } }); } } From 224dbed79c83930b16f2c080a75a0f8cc05bdc61 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 29 Jul 2011 02:19:53 +0200 Subject: [PATCH 55/73] narrow modified column, remove help cursor --- files/css/files.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/files/css/files.css b/files/css/files.css index 328eaa40f5..4665041840 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -23,8 +23,8 @@ table th { padding:.5em; height:2em; } table th .name { float:left; margin-left:.5em; } table th, table td { border-bottom:1px solid #ddd; text-align:left; font-weight:normal; } table td { border-bottom:1px solid #eee; font-style:normal; } -table th#headerSize, table td.filesize { width:5em; padding:0 1em; text-align:right; cursor:help; } -table th#headerDate, table td.date { width:15em; padding:0 .1em 0 1em; text-align:left; } +table th#headerSize, table td.filesize { width:5em; padding:0 1em; text-align:right; } +table th#headerDate, table td.date { width:10em; padding:0 .1em 0 1em; text-align:left; } table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; } table td.filename a.name { display:block; background-image:url('../img/file.png'); height:1.5em; vertical-align:middle; } table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.2em .5em .5em 3em; background-position:1em .5em; background-repeat:no-repeat; } From a7748c14c61fbcf412eb96203f2f70e9ef77a9b9 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Jul 2011 02:26:20 +0200 Subject: [PATCH 56/73] dont need the ok button for renaming --- files/css/files.css | 1 + files/js/fileactions.js | 4 ++++ files/js/filelist.js | 6 +++--- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/files/css/files.css b/files/css/files.css index 4665041840..57dc05d135 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -27,6 +27,7 @@ table th#headerSize, table td.filesize { width:5em; padding:0 1em; text-align:ri table th#headerDate, table td.date { width:10em; padding:0 .1em 0 1em; text-align:left; } table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; } table td.filename a.name { display:block; background-image:url('../img/file.png'); height:1.5em; vertical-align:middle; } +table td.filename a.name input, table td.filename a.name form { width:100% } table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.2em .5em .5em 3em; background-position:1em .5em; background-repeat:no-repeat; } table td.filename .nametext, .modified { float:left; padding:.3em 0; } table td.filename .nametext { width:80%; } diff --git a/files/js/fileactions.js b/files/js/fileactions.js index 4de7fa5542..359e54dda3 100644 --- a/files/js/fileactions.js +++ b/files/js/fileactions.js @@ -54,6 +54,10 @@ FileActions={ display:function(parent){ FileActions.currentFile=parent; var actions=FileActions.get(FileActions.getCurrentMimeType(),FileActions.getCurrentType()); + var file=FileActions.getCurrentFile(); + if($('tr[data-file="'+file+'"]').data('renaming')){ + return; + } var defaultAction=FileActions.getDefault(FileActions.getCurrentMimeType(),FileActions.getCurrentType()); for(name in actions){ if((name=='Download' || actions[name]!=defaultAction) && name!='Delete'){ diff --git a/files/js/filelist.js b/files/js/filelist.js index 901c4fe218..ce90407558 100644 --- a/files/js/filelist.js +++ b/files/js/filelist.js @@ -105,18 +105,17 @@ FileList={ }, rename:function(name){ var tr=$('tr[data-file="'+name+'"]'); + tr.data('renaming',true); var td=tr.children('td.filename'); var input=$(''); - var button=$(''); var form=$('
    ') form.append(input); - form.append(button); td.children('a.name').text(''); td.children('a.name').append(form) input.focus(); - td.children('a.name').append(button); form.submit(function(event){ var newname=input.val(); + tr.data('renaming',false); event.stopPropagation(); event.preventDefault(); tr.attr('data-file',newname); @@ -140,6 +139,7 @@ FileList={ event.preventDefault(); }); input.blur(function(){ + tr.data('renaming',false); td.children('a.name').empty(); if(name.indexOf('.')>0){ basename=name.substr(0,name.indexOf('.')); From 952b83cbdce07eb95ae343fe25c6785b24b43b4b Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Jul 2011 02:28:39 +0200 Subject: [PATCH 57/73] show proper cursor for rename textfield --- files/css/files.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/css/files.css b/files/css/files.css index 57dc05d135..4afec03daa 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -27,7 +27,7 @@ table th#headerSize, table td.filesize { width:5em; padding:0 1em; text-align:ri table th#headerDate, table td.date { width:10em; padding:0 .1em 0 1em; text-align:left; } table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; } table td.filename a.name { display:block; background-image:url('../img/file.png'); height:1.5em; vertical-align:middle; } -table td.filename a.name input, table td.filename a.name form { width:100% } +table td.filename a.name input, table td.filename a.name form { width:100%; cursor:text } table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.2em .5em .5em 3em; background-position:1em .5em; background-repeat:no-repeat; } table td.filename .nametext, .modified { float:left; padding:.3em 0; } table td.filename .nametext { width:80%; } From 3758b0d707d1f4ce5db0b0f465014caa23ed77b1 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Jul 2011 02:33:58 +0200 Subject: [PATCH 58/73] fix size of selected files with new uploaded files --- files/js/filelist.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/files/js/filelist.js b/files/js/filelist.js index ce90407558..0695b48253 100644 --- a/files/js/filelist.js +++ b/files/js/filelist.js @@ -4,7 +4,7 @@ FileList={ }, addFile:function(name,size,lastModified,loading){ var img=(loading)?'img/loading.gif':'img/file.png'; - var html=''; + var html=''; if(name.indexOf('.')!=-1){ var basename=name.substr(0,name.indexOf('.')); var extention=name.substr(name.indexOf('.')); @@ -37,7 +37,7 @@ FileList={ } }, addDir:function(name,size,lastModified){ - var html=''; + var html=''; html+='
    '+name+''; if(size!='Pending'){ simpleSize=simpleFileSize(size); From 23f051ccd6eb3f6964cd6a61d867e367381dd8d4 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 29 Jul 2011 02:35:16 +0200 Subject: [PATCH 59/73] redesigned search box --- core/css/styles.css | 3 ++- core/img/actions/search.png | Bin 0 -> 701 bytes core/templates/part.searchbox.php | 3 +-- 3 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 core/img/actions/search.png diff --git a/core/css/styles.css b/core/css/styles.css index 48a36734e5..55e050b196 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -78,7 +78,8 @@ background: linear-gradient(top, #35537a 0%,#1d2d42 100%); /* W3C */ } #metanav li a img { vertical-align:middle; } /* SEARCH --------------------------------------------------------------------- */ -form.searchbox { display:inline; position:fixed; top:1em; right:10em; margin:0; padding:0; } +form.searchbox { display:inline; position:fixed; top:.9em; right:9em; margin:0; padding:0; } +input[type="search"] { font-size:1em; padding-left:2em; background:#eee url('../img/actions/search.png') .5em center no-repeat; } /* NAVIGATION ------------------------------------------------------------- */ #plugins { position:fixed; top:3.5em; float:left; width:15.7em; padding:0; z-index:0; } diff --git a/core/img/actions/search.png b/core/img/actions/search.png new file mode 100644 index 0000000000000000000000000000000000000000..bfedb80bb578838260c22fc96b2f80ab3d318dbf GIT binary patch literal 701 zcmV;u0z&l0rBdl8%d*P=UXBHLo?oD8 zni56vgQ}`q=lWZsC|*|-2UAm1OR-q&)G&;X06+-2?{>SF7={7I zapiFUr6>vnLGW&FZob{y+wJdv(5jw)xLCu j3vs3aJOZ$xs_O9{Z@l4Aj{;tE00000NkvXXu0mjfyJIfA literal 0 HcmV?d00001 diff --git a/core/templates/part.searchbox.php b/core/templates/part.searchbox.php index 19b089ef84..efce47ecd2 100644 --- a/core/templates/part.searchbox.php +++ b/core/templates/part.searchbox.php @@ -1,4 +1,3 @@ From 468319fe049102bc62c59e81a49cbf5e62e0e0ad Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Jul 2011 02:35:53 +0200 Subject: [PATCH 60/73] no need for an ok button for creating folders --- files/js/files.js | 19 +++---------------- files/templates/index.php | 1 - 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/files/js/files.js b/files/js/files.js index 193c740b6c..4e1de1b04a 100644 --- a/files/js/files.js +++ b/files/js/files.js @@ -63,10 +63,11 @@ $(document).ready(function() { data: "dir="+$('#dir').val()+"&foldername="+$('#file_newfolder_name').val(), complete: function(data){boolOperationFinished(data, function(){ var date=new Date(); - FileList.addDir($('#file_newfolder_name').val(),0,date) + FileList.addDir($('#file_newfolder_name').val(),0,date); + $('#file_newfolder_name').val('New Folder'); + $('#file_newfolder_name').blur(); });} }); - $('#file_newfolder_submit').fadeOut(250).trigger('vanish'); }); $('#file_newfolder_name').click(function(){ @@ -75,20 +76,6 @@ $(document).ready(function() { } }); - $('#file_newfolder_name').bind('keyup', adjustNewFolderSize); - - $('#file_newfolder_submit').bind('vanish', function() { - $('#file_newfolder_name').bind('keyup', adjustNewFolderSize); - unsplitSize($('#file_newfolder_name'),$('#file_newfolder_submit')); - }); - - $('#file_newfolder_name').focusout(function(){ - if($('#file_newfolder_name').val() == '') { - $('#file_newfolder_form')[0].reset(); - $('#file_newfolder_submit').fadeOut(250).trigger('vanish'); - } - }); - $('.download').click('click',function(event) { var files=getSelectedFiles('name').join(';'); diff --git a/files/templates/index.php b/files/templates/index.php index 336cca19cd..9bc939ee90 100644 --- a/files/templates/index.php +++ b/files/templates/index.php @@ -15,7 +15,6 @@
      -
    From 2d43f6e307e407635483ba503c404d5a2d24522d Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Jul 2011 02:47:02 +0200 Subject: [PATCH 61/73] make foldernames also bold after renaming --- files/css/files.css | 1 + files/js/filelist.js | 2 +- files/templates/part.list.php | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/files/css/files.css b/files/css/files.css index 4afec03daa..4f217ff819 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -27,6 +27,7 @@ table th#headerSize, table td.filesize { width:5em; padding:0 1em; text-align:ri table th#headerDate, table td.date { width:10em; padding:0 .1em 0 1em; text-align:left; } table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; } table td.filename a.name { display:block; background-image:url('../img/file.png'); height:1.5em; vertical-align:middle; } +table tr[data-type="dir"] td.filename a.name {font-weight:bold; } table td.filename a.name input, table td.filename a.name form { width:100%; cursor:text } table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.2em .5em .5em 3em; background-position:1em .5em; background-repeat:no-repeat; } table td.filename .nametext, .modified { float:left; padding:.3em 0; } diff --git a/files/js/filelist.js b/files/js/filelist.js index 0695b48253..260ca00b97 100644 --- a/files/js/filelist.js +++ b/files/js/filelist.js @@ -38,7 +38,7 @@ FileList={ }, addDir:function(name,size,lastModified){ var html=''; - html+=''+name+''; + html+=''+name+''; if(size!='Pending'){ simpleSize=simpleFileSize(size); }else{ diff --git a/files/templates/part.list.php b/files/templates/part.list.php index a0ffb4b607..e4e178cba1 100644 --- a/files/templates/part.list.php +++ b/files/templates/part.list.php @@ -10,7 +10,7 @@ - + From 18d8f34f96848c91b4d677951bb2ebe0b7494c3b Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Jul 2011 02:54:19 +0200 Subject: [PATCH 62/73] fix breadcrumb look of Files in navigation panel --- core/css/styles.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/css/styles.css b/core/css/styles.css index 55e050b196..cfb5db55d9 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -82,7 +82,7 @@ form.searchbox { display:inline; position:fixed; top:.9em; right:9em; margin:0; input[type="search"] { font-size:1em; padding-left:2em; background:#eee url('../img/actions/search.png') .5em center no-repeat; } /* NAVIGATION ------------------------------------------------------------- */ -#plugins { position:fixed; top:3.5em; float:left; width:15.7em; padding:0; z-index:0; } +#plugins { position:fixed; top:3.5em; float:left; width:15.7em; padding:0; z-index:50; } #plugins ul { list-style-type:none; border-top:1px solid #ccc; } #plugins a { display:block; padding:0.5em 0.5em 0.5em 3em; background-position:1.5em center; background-repeat:no-repeat; border-bottom:1px solid #ddd; border-top:1px solid #fff; text-decoration:none; font-size:1.2em; color:#666; } #plugins a.active, #plugins a:hover, #plugins a:focus, #plugins a.selected { background-color:#ccc; border-top:1px solid #ccc; border-bottom:1px solid #ccc; color:#000; outline:0; } From d23d4e66c5908fd185f792e790e5e2d544a2bc79 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 29 Jul 2011 03:04:25 +0200 Subject: [PATCH 63/73] revised color calculation for size and age --- files/templates/part.list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/files/templates/part.list.php b/files/templates/part.list.php index e4e178cba1..7fa44d0b31 100644 --- a/files/templates/part.list.php +++ b/files/templates/part.list.php @@ -1,8 +1,8 @@ 200) $relative_date_color = 200; ?> '> From 7e0bbd20c0f4b67d31fbe83669c26605449a48fb Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 29 Jul 2011 03:09:30 +0200 Subject: [PATCH 64/73] revised coloring again --- files/css/files.css | 2 +- files/templates/part.list.php | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/files/css/files.css b/files/css/files.css index 4f217ff819..dd2ed732c7 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -24,7 +24,7 @@ table th .name { float:left; margin-left:.5em; } table th, table td { border-bottom:1px solid #ddd; text-align:left; font-weight:normal; } table td { border-bottom:1px solid #eee; font-style:normal; } table th#headerSize, table td.filesize { width:5em; padding:0 1em; text-align:right; } -table th#headerDate, table td.date { width:10em; padding:0 .1em 0 1em; text-align:left; } +table th#headerDate, table td.date { width:11em; padding:0 .1em 0 1em; text-align:left; } table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; } table td.filename a.name { display:block; background-image:url('../img/file.png'); height:1.5em; vertical-align:middle; } table tr[data-type="dir"] td.filename a.name {font-weight:bold; } diff --git a/files/templates/part.list.php b/files/templates/part.list.php index 7fa44d0b31..54606e083e 100644 --- a/files/templates/part.list.php +++ b/files/templates/part.list.php @@ -1,6 +1,7 @@ 200) $relative_date_color = 200; ?> From 72402ff143468523656090682c0bb1681af0fc32 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 29 Jul 2011 04:24:02 +0200 Subject: [PATCH 65/73] removed some more legacy CSS --- apps/files_publiclink/templates/admin.php | 2 +- core/css/styles.css | 15 --------------- files/css/files.css | 3 ++- 3 files changed, 3 insertions(+), 17 deletions(-) diff --git a/apps/files_publiclink/templates/admin.php b/apps/files_publiclink/templates/admin.php index da4586cb3d..04aaf5c430 100644 --- a/apps/files_publiclink/templates/admin.php +++ b/apps/files_publiclink/templates/admin.php @@ -25,4 +25,4 @@ - \ No newline at end of file + diff --git a/core/css/styles.css b/core/css/styles.css index cfb5db55d9..6fc24d4c21 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -93,21 +93,6 @@ input[type="search"] { font-size:1em; padding-left:2em; background:#eee url('../ /* CONTENT ------------------------------------------------------------------ */ #content { margin:3.5em 0 0 15.7em; } - -/* NAVIGATION BAR */ -span.nav { display:block; float:left; /*margin-right:55em;*/ } -span.nav a { padding:0.5em 1.5em 0.5em 0.5em; background-position:right center; background-repeat:no-repeat; background-image:url('../img/arrow.png'); text-decoration:none; } -span.nav a img { height:16px; vertical-align:text-top; } - -/* ACTIONS BAR */ -p.actions, div.actions { padding:7px; float:right; margin-right:16em; } -p.actions a, div.actions a { padding:0.5em 0.5em 0.5em 3em; background-position:1em center; background-repeat:no-repeat; background-image:url('../img/action.png'); border-right:1px solid #eee; text-decoration:none; color:#333; } -p.actions a:hover, p.actions a:focus, div.actions a:hover, div.actions a:focus { background-color:#eee; color:#000; outline:0; } -p.actions a:active, div.actions a:active { outline:0; } -p.actions a.new-dir, div.actions a.new-dir { background-image:url('../img/folder-new.png'); } -p.actions a.download, div.actions a.download { background-image:url('../img/download.png'); } -p.actions a.delete, div.actions a.delete { background-image:url('../img/delete.png'); } - /* USER SETTINGS ------------------------------------------------------------ */ #quota_indicator { margin:0 4em 1em 0; padding:0; border:1px solid #ddd; border-radius:10px; -webkit-border-radius:10px; -moz-border-radius:10px; } #quota_indicator div { background-color:#76A9EA; border-radius:10px; -webkit-border-radius:10px; -moz-border-radius:10px; } diff --git a/files/css/files.css b/files/css/files.css index dd2ed732c7..56a06a903b 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -1,4 +1,5 @@ /* FILE MENU */ +.actions { padding:.6em; float:right; margin-right:16em; } #file_menu { right:0px; position:absolute; top:0; } #file_menu a { display:block; float:left; background-image:none; text-decoration:none; } .file_upload_form, #file_newfolder_form { display:inline; } @@ -17,7 +18,7 @@ table { position:relative; top:37px; width:100%; } tbody tr:hover, tbody tr:active, tbody tr.selected { background-color:#eee; } tbody a { color:#000; } span.extention, td.date { color:#999; } -div.crumb { float:left; display:block; background-repeat:no-repeat; background-position:right 0px; font-weight:bold; padding-top:8px; padding-left:8px; height:28px; /*36-8*/ } +div.crumb { float:left; display:block; background:no-repeat right 0; font-weight:bold; padding:8px 1.5em 0 1em; height:28px; /*36-8*/ } table tr.mouseOver td { background-color:#eee; } table th { padding:.5em; height:2em; } table th .name { float:left; margin-left:.5em; } From 46400a8124240679b7be4ae50ee932be31b18e2e Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 29 Jul 2011 13:01:15 +0200 Subject: [PATCH 66/73] message and hint for upload if folder is empty --- files/css/files.css | 1 + files/templates/part.list.php | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/files/css/files.css b/files/css/files.css index 56a06a903b..50b61a488d 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -14,6 +14,7 @@ .file_upload_target { display:none; } /* FILE TABLE */ +span#emptyfolder { position:absolute; margin:10em 0 0 10em; font-size:1.5em; font-weight:bold; color:#888; text-shadow:#fff 0 1px 0; } table { position:relative; top:37px; width:100%; } tbody tr:hover, tbody tr:active, tbody tr.selected { background-color:#eee; } tbody a { color:#000; } diff --git a/files/templates/part.list.php b/files/templates/part.list.php index 54606e083e..d249455c55 100644 --- a/files/templates/part.list.php +++ b/files/templates/part.list.php @@ -1,4 +1,5 @@ - Nothing in here. Upload something!'; + foreach($_['files'] as $file): $simple_file_size = simple_file_size($file['size']); $simple_size_color = 200-intval($file['size']/(1024*1024)*5); if($simple_size_color<0) $simple_size_color = 0; From dee7fb3b722388c30a5ca3e69fb3cf846bb48edf Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Jul 2011 16:48:09 +0200 Subject: [PATCH 67/73] fix login header for ie --- core/css/styles.css | 6 +++--- core/templates/login.php | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/core/css/styles.css b/core/css/styles.css index 6fc24d4c21..99090b9171 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -31,7 +31,7 @@ div.controls { width:100%; margin:0px; background-color:#f7f7f7; border-bottom:1 #body-login p.info { width:16em; margin:2em auto; padding:1em; background-color:#eee; border:1px solid #ccc; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; } #body-login p.info a { font-weight:bold; } -#login header { margin-top:-2em; height:10em; +#login div.header { margin-top:-2em; height:10em; -moz-box-shadow:0 0 5px #000; -webkit-box-shadow:0 0 20px #000; box-shadow:0 0 20px #000; background: #1d2d44; /* Old browsers */ background: -moz-linear-gradient(top, #35537a 0%, #1d2d42 100%); /* FF3.6+ */ @@ -39,8 +39,8 @@ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#35537 background: -webkit-linear-gradient(top, #35537a 0%,#1d2d42 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(top, #35537a 0%,#1d2d42 100%); /* Opera11.10+ */ background: -ms-linear-gradient(top, #35537a 0%,#1d2d42 100%); /* IE10+ */ -filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#35537a', endColorstr='#1d2d42',GradientType=0 ); /* IE6-9 */ -background: linear-gradient(top, #35537a 0%,#1d2d42 100%); /* W3C */ } +background: linear-gradient(top, #35537a 0%,#1d2d42 100%); /* W3C */ +filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#35537a', endColorstr='#1d2d42',GradientType=0 ); /* IE6-9 */ } #login { margin:0 auto 0 auto; padding:2em 0 0 0; border-bottom:1px solid #FFF; text-align:center; background:#eee; } #login_form { width:20em; margin:4em auto; padding:0; } #login_form fieldset { background-color:transparent; border:0; } diff --git a/core/templates/login.php b/core/templates/login.php index fb3177eb0e..c3095047f4 100644 --- a/core/templates/login.php +++ b/core/templates/login.php @@ -1,5 +1,9 @@
    -
    ownCloud
    +
    +
    + ownCloud +
    +
    From 2781fdeed8f1d45ebba23fb2b2e22aa3bbd5f2ff Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Jul 2011 16:52:09 +0200 Subject: [PATCH 68/73] automatically replace svg images with png for browsers that dont support svg --- core/js/js.js | 10 ++++++++++ core/templates/layout.admin.php | 4 ++-- core/templates/layout.user.php | 4 ++-- files/templates/index.php | 4 ++-- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/core/js/js.js b/core/js/js.js index 407c570870..db96a1adb3 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -103,3 +103,13 @@ if (!Array.prototype.indexOf){ function SVGSupport() { return document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") || document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Shape", "1.0"); } + +$(document).ready(function(){ + if(!SVGSupport()){//replace all svg images with png images for browser that dont support svg + $('img.svg').each(function(index,element){ + element=$(element); + var src=element.attr('src'); + element.attr('src',src.substr(0,src.length-3)+'png'); + }); + }; +}); diff --git a/core/templates/layout.admin.php b/core/templates/layout.admin.php index 78ccf87722..8077fd304f 100644 --- a/core/templates/layout.admin.php +++ b/core/templates/layout.admin.php @@ -30,8 +30,8 @@ diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index f8beb79e81..a100eed96b 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -31,8 +31,8 @@ ownCloud
      -
    • -
    • +
    • +
    diff --git a/files/templates/index.php b/files/templates/index.php index 9bc939ee90..df78cf0bb2 100644 --- a/files/templates/index.php +++ b/files/templates/index.php @@ -28,12 +28,12 @@ t( 'Name' ); ?> - Download + Download t( 'Size MB' ); ?> - t( 'Modified' ); ?>Delete + t( 'Modified' ); ?>Delete From 98e78c0599a641ed33ed2abd70e540ce43a7ef15 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Jul 2011 17:51:17 +0200 Subject: [PATCH 69/73] some tweaks for renaming --- files/js/filelist.js | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/files/js/filelist.js b/files/js/filelist.js index 260ca00b97..c3a2522fb6 100644 --- a/files/js/filelist.js +++ b/files/js/filelist.js @@ -114,10 +114,10 @@ FileList={ td.children('a.name').append(form) input.focus(); form.submit(function(event){ - var newname=input.val(); - tr.data('renaming',false); event.stopPropagation(); event.preventDefault(); + var newname=input.val(); + tr.data('renaming',false); tr.attr('data-file',newname); td.children('a.name').empty(); if(newname.indexOf('.')>0){ @@ -125,9 +125,11 @@ FileList={ }else{ basename=newname; } - td.children('a.name').text(basename); + var span=$(''); + span.text(basename); + td.children('a.name').append(span); if(newname.indexOf('.')>0){ - td.children('a.name').append($(''+newname.substr(newname.indexOf('.'))+'')); + span.append($(''+newname.substr(newname.indexOf('.'))+'')); } $.ajax({ url: 'ajax/rename.php', @@ -139,17 +141,7 @@ FileList={ event.preventDefault(); }); input.blur(function(){ - tr.data('renaming',false); - td.children('a.name').empty(); - if(name.indexOf('.')>0){ - basename=name.substr(0,name.indexOf('.')); - }else{ - basename=name; - } - td.children('a.name').text(basename); - if(name.indexOf('.')>0){ - td.children('a.name').append($(''+name.substr(name.indexOf('.'))+'')); - } + form.trigger('submit'); }); } } From b6ad416757a78f404d757551ffa1697988bbf5b4 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Jul 2011 18:00:42 +0200 Subject: [PATCH 70/73] you can now move files to the root folder by draging them to the Files entry in the navigation panel --- files/js/files.js | 1 + 1 file changed, 1 insertion(+) diff --git a/files/js/files.js b/files/js/files.js index 4e1de1b04a..be7e48aeee 100644 --- a/files/js/files.js +++ b/files/js/files.js @@ -5,6 +5,7 @@ $(document).ready(function() { $('#fileList tr td.filename').draggable(dragOptions); $('#fileList tr[data-type="dir"] td.filename').droppable(folderDropOptions); $('div.crumb').droppable(crumbDropOptions); + $('#plugins>ul>li:first-child').data('dir',''); $('#plugins>ul>li:first-child').droppable(crumbDropOptions); // Sets the file-action buttons behaviour : From 9f867abe75d6e8bfc6b30a8ddbf5ca2644598601 Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Fri, 29 Jul 2011 12:17:46 -0400 Subject: [PATCH 71/73] Display subnavigation entries in user layout template --- core/templates/layout.user.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index f8beb79e81..4077499a99 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -44,6 +44,11 @@
    From fe47d51598504dacdfce9b84016f8c1fd1af1755 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Jul 2011 19:12:55 +0200 Subject: [PATCH 72/73] some refactoring for subnavigation code --- core/templates/layout.user.php | 5 +++++ lib/app.php | 20 ++++++-------------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index a100eed96b..f8007548fe 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -44,6 +44,11 @@
    diff --git a/lib/app.php b/lib/app.php index 475015f677..bccd0c665f 100644 --- a/lib/app.php +++ b/lib/app.php @@ -310,20 +310,12 @@ class OC_APP{ /// Private foo private static function addSubNavigation( $list ){ - $found = false; - foreach( self::$subnavigation as $parent => $selection ){ - foreach( $selection as $subentry ){ - if( $subentry['id'] == self::$activeapp ){ - foreach( $list as &$naventry ){ - if( $naventry['id'] == $parent ){ - $naventry['active'] = true; - $naventry['subnavigation'] = $selection; - } - else{ - $naventry['active'] = false; - } - } unset( $naventry ); - $found = true; + if(isset(self::$subnavigation[self::$activeapp])){ + $subNav=self::$subnavigation[self::$activeapp]; + foreach( $list as &$naventry ){ + if( $naventry['id'] == self::$activeapp ){ + $naventry['active'] = true; + $naventry['subnavigation'] = $subNav; } } } From d12d08e2f3553b06df6371535f971c9f193bd388 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Jul 2011 19:38:01 +0200 Subject: [PATCH 73/73] some more changes for navigation subentries --- core/css/styles.css | 1 + core/templates/layout.admin.php | 11 ++++++---- core/templates/layout.user.php | 15 ++++++++------ lib/app.php | 36 ++++++++++++++++++++++++--------- 4 files changed, 43 insertions(+), 20 deletions(-) diff --git a/core/css/styles.css b/core/css/styles.css index 99090b9171..00433979d2 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -89,6 +89,7 @@ input[type="search"] { font-size:1em; padding-left:2em; background:#eee url('../ #plugins a:active { outline:0; } #plugins .subentry { background-color:#ddd; border-top:1px solid #aaa; border-bottom:1px solid #ccc; color:#000; outline:0; } #plugins .subentry.active { background-color:#bbb; border-top:1px solid #aaa; border-bottom:1px solid #ccc; color:#000; outline:0; } +#plugins li.subentry a {padding-left:4em;} /* CONTENT ------------------------------------------------------------------ */ #content { margin:3.5em 0 0 15.7em; } diff --git a/core/templates/layout.admin.php b/core/templates/layout.admin.php index 8077fd304f..3aac4c98ac 100644 --- a/core/templates/layout.admin.php +++ b/core/templates/layout.admin.php @@ -48,12 +48,15 @@ -
  • class="active">
  • +
  • class="active"> - -
  • - +
      + +
    • + +
    + diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index 4440ae28b2..8f073914a1 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -43,12 +43,15 @@ diff --git a/lib/app.php b/lib/app.php index bccd0c665f..b6c2512e79 100644 --- a/lib/app.php +++ b/lib/app.php @@ -158,7 +158,10 @@ class OC_APP{ * the navigation. Lower values come first. */ public static function addNavigationEntry( $data ){ - // TODO: write function + $data['active']=false; + if(!isset($data['icon'])){ + $data['icon']=''; + } OC_APP::$navigation[] = $data; return true; } @@ -184,6 +187,10 @@ class OC_APP{ * the navigation. Lower values come first. */ public static function addNavigationSubEntry( $parent, $data ){ + $data['active']=false; + if(!isset($data['icon'])){ + $data['icon']=''; + } if( !array_key_exists( $parent, self::$subnavigation )){ self::$subnavigation[$parent] = array(); } @@ -318,16 +325,25 @@ class OC_APP{ $naventry['subnavigation'] = $subNav; } } - } - - // Mark subentry as active - foreach( $list as &$naventry ){ - if( $naventry['active'] ){ - foreach( $naventry['subnavigation'] as &$subnaventry ){ - $subnaventry['active'] = $subnaventry['id'] == self::$activeapp? true : false; - } unset( $subnaventry ); + }else{ + foreach(self::$subnavigation as $parent=>$entries){ + $activeParent=false; + foreach($entries as &$subNav){ + $subNav['active']=$subNav['id'] == self::$activeapp; + if($subNav['active']){ + $activeParent=true; + } + } + if($activeParent){ + foreach( $list as &$naventry ){ + if( $naventry['id'] == $parent ){ + $naventry['active'] = true; + $naventry['subnavigation'] = $entries; + } + } + } } - } unset( $naventry ); + } return $list; }