Merge branch 'master' into filesystem
This commit is contained in:
commit
4d2669f6b3
2 changed files with 87 additions and 82 deletions
|
@ -4,14 +4,15 @@ var FileList={
|
|||
$('#fileList').empty().html(fileListHtml);
|
||||
},
|
||||
addFile:function(name,size,lastModified,loading,hidden){
|
||||
var img=(loading)?OC.imagePath('core', 'loading.gif'):OC.imagePath('core', 'filetypes/file.png');
|
||||
var html='<tr data-type="file" data-size="'+size+'" data-permissions="'+$('#permissions').val()+'">';
|
||||
var basename, extension, simpleSize, sizeColor, lastModifiedTime, modifiedColor,
|
||||
img=(loading)?OC.imagePath('core', 'loading.gif'):OC.imagePath('core', 'filetypes/file.png'),
|
||||
html='<tr data-type="file" data-size="'+size+'" data-permissions="'+$('#permissions').val()+'">';
|
||||
if(name.indexOf('.')!=-1){
|
||||
var basename=name.substr(0,name.lastIndexOf('.'));
|
||||
var extension=name.substr(name.lastIndexOf('.'));
|
||||
basename=name.substr(0,name.lastIndexOf('.'));
|
||||
extension=name.substr(name.lastIndexOf('.'));
|
||||
}else{
|
||||
var basename=name;
|
||||
var extension=false;
|
||||
basename=name;
|
||||
extension=false;
|
||||
}
|
||||
html+='<td class="filename" style="background-image:url('+img+')"><input type="checkbox" />';
|
||||
html+='<a class="name" href="download.php?file='+$('#dir').val().replace(/</, '<').replace(/>/, '>')+'/'+name+'"><span class="nametext">'+basename;
|
||||
|
@ -41,10 +42,11 @@ var FileList={
|
|||
}
|
||||
},
|
||||
addDir:function(name,size,lastModified,hidden){
|
||||
var html, td, link_elem, sizeColor, lastModifiedTime, modifiedColor;
|
||||
html = $('<tr></tr>').attr({ "data-type": "dir", "data-size": size, "data-file": name, "data-permissions": $('#permissions').val()});
|
||||
td = $('<td></td>').attr({"class": "filename", "style": 'background-image:url('+OC.imagePath('core', 'filetypes/folder.png')+')' });
|
||||
td.append('<input type="checkbox" />');
|
||||
var link_elem = $('<a></a>').attr({ "class": "name", "href": OC.linkTo('files', 'index.php')+"&dir="+ encodeURIComponent($('#dir').val()+'/'+name).replace(/%2F/g, '/') });
|
||||
link_elem = $('<a></a>').attr({ "class": "name", "href": OC.linkTo('files', 'index.php')+"&dir="+ encodeURIComponent($('#dir').val()+'/'+name).replace(/%2F/g, '/') });
|
||||
link_elem.append($('<span></span>').addClass('nametext').text(name));
|
||||
link_elem.append($('<span></span>').attr({'class': 'uploadtext', 'currentUploads': 0}));
|
||||
td.append(link_elem);
|
||||
|
@ -71,7 +73,7 @@ var FileList={
|
|||
}
|
||||
},
|
||||
refresh:function(data) {
|
||||
result = jQuery.parseJSON(data.responseText);
|
||||
var result = jQuery.parseJSON(data.responseText);
|
||||
if(typeof(result.data.breadcrumb) != 'undefined'){
|
||||
updateBreadcrumb(result.data.breadcrumb);
|
||||
}
|
||||
|
@ -88,14 +90,13 @@ var FileList={
|
|||
},
|
||||
insertElement:function(name,type,element){
|
||||
//find the correct spot to insert the file or folder
|
||||
var fileElements=$('tr[data-file][data-type="'+type+'"]:visible');
|
||||
var pos;
|
||||
var pos, fileElements=$('tr[data-file][data-type="'+type+'"]:visible');
|
||||
if(name.localeCompare($(fileElements[0]).attr('data-file'))<0){
|
||||
pos=-1;
|
||||
}else if(name.localeCompare($(fileElements[fileElements.length-1]).attr('data-file'))>0){
|
||||
pos=fileElements.length-1;
|
||||
}else{
|
||||
for(var pos=0;pos<fileElements.length-1;pos++){
|
||||
for(pos=0;pos<fileElements.length-1;pos++){
|
||||
if(name.localeCompare($(fileElements[pos]).attr('data-file'))>0 && name.localeCompare($(fileElements[pos+1]).attr('data-file'))<0){
|
||||
break;
|
||||
}
|
||||
|
@ -116,9 +117,9 @@ var FileList={
|
|||
$('.file_upload_filename').removeClass('highlight');
|
||||
},
|
||||
loadingDone:function(name){
|
||||
var tr=$('tr').filterAttr('data-file',name);
|
||||
var mime, tr=$('tr').filterAttr('data-file',name);
|
||||
tr.data('loading',false);
|
||||
var mime=tr.data('mime');
|
||||
mime=tr.data('mime');
|
||||
tr.attr('data-mime',mime);
|
||||
getMimeIcon(mime,function(path){
|
||||
tr.find('td.filename').attr('style','background-image:url('+path+')');
|
||||
|
@ -129,14 +130,15 @@ var FileList={
|
|||
return $('tr').filterAttr('data-file',name).data('loading');
|
||||
},
|
||||
rename:function(name){
|
||||
var tr=$('tr').filterAttr('data-file',name);
|
||||
var tr, td, input, form;
|
||||
tr=$('tr').filterAttr('data-file',name);
|
||||
tr.data('renaming',true);
|
||||
var td=tr.children('td.filename');
|
||||
var input=$('<input class="filename"></input>').val(name);
|
||||
var form=$('<form></form>')
|
||||
td=tr.children('td.filename');
|
||||
input=$('<input class="filename"></input>').val(name);
|
||||
form=$('<form></form>');
|
||||
form.append(input);
|
||||
td.children('a.name').text('');
|
||||
td.children('a.name').append(form)
|
||||
td.children('a.name').append(form);
|
||||
input.focus();
|
||||
form.submit(function(event){
|
||||
event.stopPropagation();
|
||||
|
@ -317,7 +319,7 @@ var FileList={
|
|||
FileList.finishDelete(null, true);
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(function(){
|
||||
$('#notification').hide();
|
||||
|
@ -363,7 +365,7 @@ $(document).ready(function(){
|
|||
FileList.finishDelete(null, true);
|
||||
}
|
||||
});
|
||||
FileList.useUndo=('onbeforeunload' in window)
|
||||
FileList.useUndo=(window.onbeforeunload)?true:false;
|
||||
$(window).bind('beforeunload', function (){
|
||||
if (FileList.lastAction) {
|
||||
FileList.lastAction();
|
||||
|
|
127
core/js/js.js
127
core/js/js.js
|
@ -4,21 +4,20 @@
|
|||
* @param text the string to translate
|
||||
* @return string
|
||||
*/
|
||||
var OC;
|
||||
|
||||
function t(app,text){
|
||||
if( !( app in t.cache )){
|
||||
if( !( t.cache[app] )){
|
||||
$.ajax(OC.filePath('core','ajax','translations.php'),{
|
||||
async:false,//todo a proper sollution for this without sync ajax calls
|
||||
data:{'app': app},
|
||||
type:'POST',
|
||||
success:function(jsondata){
|
||||
t.cache[app] = jsondata.data;
|
||||
},
|
||||
}
|
||||
});
|
||||
|
||||
// Bad answer ...
|
||||
if( !( app in t.cache )){
|
||||
if( !( t.cache[app] )){
|
||||
t.cache[app] = [];
|
||||
}
|
||||
}
|
||||
|
@ -41,7 +40,7 @@ function fileDownloadPath(dir, file) {
|
|||
return OC.filePath('files', 'ajax', 'download.php')+encodeURIComponent('?files='+encodeURIComponent(file)+'&dir='+encodeURIComponent(dir));
|
||||
}
|
||||
|
||||
OC={
|
||||
var OC={
|
||||
PERMISSION_CREATE:4,
|
||||
PERMISSION_READ:1,
|
||||
PERMISSION_UPDATE:2,
|
||||
|
@ -68,9 +67,9 @@ OC={
|
|||
* @return string
|
||||
*/
|
||||
filePath:function(app,type,file){
|
||||
var isCore=OC.coreApps.indexOf(app)!=-1;
|
||||
var link=OC.webroot;
|
||||
if((file.substring(file.length-3) == 'php' || file.substring(file.length-3) == 'css') && !isCore){
|
||||
var isCore=OC.coreApps.indexOf(app)!==-1,
|
||||
link=OC.webroot;
|
||||
if((file.substring(file.length-3) === 'php' || file.substring(file.length-3) === 'css') && !isCore){
|
||||
link+='/?app=' + app;
|
||||
if (file != 'index.php') {
|
||||
link+='&getfile=';
|
||||
|
@ -79,20 +78,21 @@ OC={
|
|||
}
|
||||
link+= file;
|
||||
}
|
||||
}else if(file.substring(file.length-3) != 'php' && !isCore){
|
||||
}else if(file.substring(file.length-3) !== 'php' && !isCore){
|
||||
link=OC.appswebroots[app];
|
||||
if(type){
|
||||
link+= '/'+type+'/';
|
||||
}
|
||||
if(link.substring(link.length-1) != '/')
|
||||
if(link.substring(link.length-1) !== '/'){
|
||||
link+='/';
|
||||
}
|
||||
link+=file;
|
||||
}else{
|
||||
link+='/';
|
||||
if(!isCore){
|
||||
link+='apps/';
|
||||
}
|
||||
if (app != '') {
|
||||
if (app !== '') {
|
||||
app+='/';
|
||||
link+=app;
|
||||
}
|
||||
|
@ -126,12 +126,12 @@ OC={
|
|||
* if the script is already loaded, the event handeler will be called directly
|
||||
*/
|
||||
addScript:function(app,script,ready){
|
||||
var path=OC.filePath(app,'js',script+'.js');
|
||||
var deferred, path=OC.filePath(app,'js',script+'.js');
|
||||
if(!OC.addScript.loaded[path]){
|
||||
if(ready){
|
||||
var deferred=$.getScript(path,ready);
|
||||
deferred=$.getScript(path,ready);
|
||||
}else{
|
||||
var deferred=$.getScript(path);
|
||||
deferred=$.getScript(path);
|
||||
}
|
||||
OC.addScript.loaded[path]=deferred;
|
||||
}else{
|
||||
|
@ -148,9 +148,9 @@ OC={
|
|||
*/
|
||||
addStyle:function(app,style){
|
||||
var path=OC.filePath(app,'css',style+'.css');
|
||||
if(OC.addStyle.loaded.indexOf(path)==-1){
|
||||
if(OC.addStyle.loaded.indexOf(path)===-1){
|
||||
OC.addStyle.loaded.push(path);
|
||||
var style=$('<link rel="stylesheet" type="text/css" href="'+path+'"/>');
|
||||
style=$('<link rel="stylesheet" type="text/css" href="'+path+'"/>');
|
||||
$('head').append(style);
|
||||
}
|
||||
},
|
||||
|
@ -158,7 +158,7 @@ OC={
|
|||
return path.replace(/\\/g,'/').replace( /.*\//, '' );
|
||||
},
|
||||
dirname: function(path) {
|
||||
return path.replace(/\\/g,'/').replace(/\/[^\/]*$/, '');;
|
||||
return path.replace(/\\/g,'/').replace(/\/[^\/]*$/, '');
|
||||
},
|
||||
/**
|
||||
* do a search query and display the results
|
||||
|
@ -175,10 +175,9 @@ OC={
|
|||
},
|
||||
dialogs:OCdialogs,
|
||||
mtime2date:function(mtime) {
|
||||
mtime = parseInt(mtime);
|
||||
mtime = parseInt(mtime,10);
|
||||
var date = new Date(1000*mtime);
|
||||
var ret = date.getDate()+'.'+(date.getMonth()+1)+'.'+date.getFullYear()+', '+date.getHours()+':'+date.getMinutes();
|
||||
return ret;
|
||||
return date.getDate()+'.'+(date.getMonth()+1)+'.'+date.getFullYear()+', '+date.getHours()+':'+date.getMinutes();
|
||||
},
|
||||
/**
|
||||
* Opens a popup with the setting for an app.
|
||||
|
@ -285,33 +284,33 @@ OC.Breadcrumb={
|
|||
OC.Breadcrumb.container.find('div.crumb').remove();
|
||||
OC.Breadcrumb.crumbs=[];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
if(typeof localStorage !='undefined' && localStorage != null){
|
||||
//user and instance awere localstorage
|
||||
if(typeof localStorage !=='undefined' && localStorage !== null){
|
||||
//user and instance aware localstorage
|
||||
OC.localStorage={
|
||||
namespace:'oc_'+OC.currentUser+'_'+OC.webroot+'_',
|
||||
hasItem:function(name){
|
||||
return OC.localStorage.getItem(name)!=null;
|
||||
return OC.localStorage.getItem(name)!==null;
|
||||
},
|
||||
setItem:function(name,item){
|
||||
return localStorage.setItem(OC.localStorage.namespace+name,JSON.stringify(item));
|
||||
},
|
||||
getItem:function(name){
|
||||
if(localStorage.getItem(OC.localStorage.namespace+name)==null){return null;}
|
||||
if(localStorage.getItem(OC.localStorage.namespace+name)===null){return null;}
|
||||
return JSON.parse(localStorage.getItem(OC.localStorage.namespace+name));
|
||||
}
|
||||
};
|
||||
}else{
|
||||
//dummy localstorage
|
||||
OC.localStorage={
|
||||
hasItem:function(name){
|
||||
hasItem:function(){
|
||||
return false;
|
||||
},
|
||||
setItem:function(name,item){
|
||||
setItem:function(){
|
||||
return false;
|
||||
},
|
||||
getItem:function(name){
|
||||
getItem:function(){
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
@ -323,8 +322,9 @@ if(typeof localStorage !='undefined' && localStorage != null){
|
|||
if (!Array.prototype.filter) {
|
||||
Array.prototype.filter = function(fun /*, thisp*/) {
|
||||
var len = this.length >>> 0;
|
||||
if (typeof fun != "function")
|
||||
if (typeof fun !== "function"){
|
||||
throw new TypeError();
|
||||
}
|
||||
|
||||
var res = [];
|
||||
var thisp = arguments[1];
|
||||
|
@ -347,17 +347,16 @@ if (!Array.prototype.indexOf){
|
|||
var len = this.length;
|
||||
|
||||
var from = Number(arguments[1]) || 0;
|
||||
from = (from < 0)
|
||||
? Math.ceil(from)
|
||||
: Math.floor(from);
|
||||
if (from < 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)
|
||||
if (from in this && this[from] === elt){
|
||||
return from;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
|
@ -378,16 +377,16 @@ SVGSupport.checkMimeType=function(){
|
|||
$.each(headerParts,function(i,text){
|
||||
if(text){
|
||||
var parts=text.split(':',2);
|
||||
if(parts.length==2){
|
||||
if(parts.length===2){
|
||||
var value=parts[1].trim();
|
||||
if(value[0]=='"'){
|
||||
if(value[0]==='"'){
|
||||
value=value.substr(1,value.length-2);
|
||||
}
|
||||
headers[parts[0]]=value;
|
||||
}
|
||||
}
|
||||
});
|
||||
if(headers["Content-Type"]!='image/svg+xml'){
|
||||
if(headers["Content-Type"]!=='image/svg+xml'){
|
||||
replaceSVG();
|
||||
SVGSupport.checkMimeType.correct=false;
|
||||
}
|
||||
|
@ -444,27 +443,29 @@ function object(o) {
|
|||
* Fills height of window. (more precise than height: 100%;)
|
||||
*/
|
||||
function fillHeight(selector) {
|
||||
if (selector.length == 0) {
|
||||
if (selector.length === 0) {
|
||||
return;
|
||||
}
|
||||
var height = parseFloat($(window).height())-selector.offset().top;
|
||||
selector.css('height', height + 'px');
|
||||
if(selector.outerHeight() > selector.height())
|
||||
if(selector.outerHeight() > selector.height()){
|
||||
selector.css('height', height-(selector.outerHeight()-selector.height()) + 'px');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fills height and width of window. (more precise than height: 100%; or width: 100%;)
|
||||
*/
|
||||
function fillWindow(selector) {
|
||||
if (selector.length == 0) {
|
||||
if (selector.length === 0) {
|
||||
return;
|
||||
}
|
||||
fillHeight(selector);
|
||||
var width = parseFloat($(window).width())-selector.offset().left;
|
||||
selector.css('width', width + 'px');
|
||||
if(selector.outerWidth() > selector.width())
|
||||
if(selector.outerWidth() > selector.width()){
|
||||
selector.css('width', width-(selector.outerWidth()-selector.width()) + 'px');
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
|
@ -485,26 +486,26 @@ $(document).ready(function(){
|
|||
event.preventDefault();
|
||||
});
|
||||
$('#searchbox').keyup(function(event){
|
||||
if(event.keyCode==13){//enter
|
||||
if(event.keyCode===13){//enter
|
||||
if(OC.search.currentResult>-1){
|
||||
var result=$('#searchresults tr.result a')[OC.search.currentResult];
|
||||
window.location = $(result).attr('href');
|
||||
}
|
||||
}else if(event.keyCode==38){//up
|
||||
}else if(event.keyCode===38){//up
|
||||
if(OC.search.currentResult>0){
|
||||
OC.search.currentResult--;
|
||||
OC.search.renderCurrent();
|
||||
}
|
||||
}else if(event.keyCode==40){//down
|
||||
}else if(event.keyCode===40){//down
|
||||
if(OC.search.lastResults.length>OC.search.currentResult+1){
|
||||
OC.search.currentResult++;
|
||||
OC.search.renderCurrent();
|
||||
}
|
||||
}else if(event.keyCode==27){//esc
|
||||
}else if(event.keyCode===27){//esc
|
||||
OC.search.hide();
|
||||
}else{
|
||||
var query=$('#searchbox').val();
|
||||
if(OC.search.lastQuery!=query){
|
||||
if(OC.search.lastQuery!==query){
|
||||
OC.search.lastQuery=query;
|
||||
OC.search.currentResult=-1;
|
||||
if(query.length>2){
|
||||
|
@ -524,10 +525,10 @@ $(document).ready(function(){
|
|||
//use infield labels
|
||||
$("label.infield").inFieldLabels();
|
||||
|
||||
checkShowCredentials = function() {
|
||||
var checkShowCredentials = function() {
|
||||
var empty = false;
|
||||
$('input#user, input#password').each(function() {
|
||||
if ($(this).val() == '') {
|
||||
if ($(this).val() === '') {
|
||||
empty = true;
|
||||
}
|
||||
});
|
||||
|
@ -540,14 +541,14 @@ $(document).ready(function(){
|
|||
$('#remember_login').show();
|
||||
$('#remember_login+label').fadeIn();
|
||||
}
|
||||
}
|
||||
};
|
||||
// hide log in button etc. when form fields not filled
|
||||
// commented out due to some browsers having issues with it
|
||||
// checkShowCredentials();
|
||||
// $('input#user, input#password').keyup(checkShowCredentials);
|
||||
|
||||
$('#settings #expand').keydown(function(event) {
|
||||
if (event.which == 13 || event.which == 32) {
|
||||
if (event.which === 13 || event.which === 32) {
|
||||
$('#expand').click()
|
||||
}
|
||||
});
|
||||
|
@ -558,8 +559,8 @@ $(document).ready(function(){
|
|||
$('#settings #expanddiv').click(function(event){
|
||||
event.stopPropagation();
|
||||
});
|
||||
$(window).click(function(){//hide the settings menu when clicking oustide it
|
||||
if($('body').attr("id")=="body-user"){
|
||||
$(window).click(function(){//hide the settings menu when clicking outside it
|
||||
if($('body').attr("id")==="body-user"){
|
||||
$('#settings #expanddiv').slideUp();
|
||||
}
|
||||
});
|
||||
|
@ -586,13 +587,15 @@ if (!Array.prototype.map){
|
|||
Array.prototype.map = function(fun /*, thisp */){
|
||||
"use strict";
|
||||
|
||||
if (this === void 0 || this === null)
|
||||
if (this === void 0 || this === null){
|
||||
throw new TypeError();
|
||||
}
|
||||
|
||||
var t = Object(this);
|
||||
var len = t.length >>> 0;
|
||||
if (typeof fun !== "function")
|
||||
if (typeof fun !== "function"){
|
||||
throw new TypeError();
|
||||
}
|
||||
|
||||
var res = new Array(len);
|
||||
var thisp = arguments[1];
|
||||
|
@ -614,13 +617,13 @@ $.fn.filterAttr = function(attr_name, attr_value) {
|
|||
};
|
||||
|
||||
function humanFileSize(size) {
|
||||
humanList = ['B', 'kB', 'MB', 'GB', 'TB'];
|
||||
var humanList = ['B', 'kB', 'MB', 'GB', 'TB'];
|
||||
// Calculate Log with base 1024: size = 1024 ** order
|
||||
order = Math.floor(Math.log(size) / Math.log(1024));
|
||||
var order = Math.floor(Math.log(size) / Math.log(1024));
|
||||
// Stay in range of the byte sizes that are defined
|
||||
order = Math.min(humanList.length - 1, order);
|
||||
readableFormat = humanList[order];
|
||||
relativeSize = (size / Math.pow(1024, order)).toFixed(1);
|
||||
var readableFormat = humanList[order];
|
||||
var relativeSize = (size / Math.pow(1024, order)).toFixed(1);
|
||||
if(relativeSize.substr(relativeSize.length-2,2)=='.0'){
|
||||
relativeSize=relativeSize.substr(0,relativeSize.length-2);
|
||||
}
|
||||
|
@ -628,7 +631,7 @@ function humanFileSize(size) {
|
|||
}
|
||||
|
||||
function simpleFileSize(bytes) {
|
||||
mbytes = Math.round(bytes/(1024*1024/10))/10;
|
||||
var mbytes = Math.round(bytes/(1024*1024/10))/10;
|
||||
if(bytes == 0) { return '0'; }
|
||||
else if(mbytes < 0.1) { return '< 0.1'; }
|
||||
else if(mbytes > 1000) { return '> 1000'; }
|
||||
|
@ -660,7 +663,7 @@ OC.get=function(name) {
|
|||
}
|
||||
}
|
||||
return context[tail];
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* set a variable by name
|
||||
|
@ -679,4 +682,4 @@ OC.set=function(name, value) {
|
|||
context = context[namespaces[i]];
|
||||
}
|
||||
context[tail]=value;
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue