Merge branch 'master' into calendar_repeat
This commit is contained in:
commit
71573f7934
20 changed files with 4559 additions and 721 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -40,6 +40,9 @@ nbproject
|
||||||
# Cloud9IDE
|
# Cloud9IDE
|
||||||
.settings.xml
|
.settings.xml
|
||||||
|
|
||||||
|
# vim ex mode
|
||||||
|
.vimrc
|
||||||
|
|
||||||
# Mac OS
|
# Mac OS
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<name>*dbname*</name>
|
<name>*dbname*</name>
|
||||||
<create>true</create>
|
<create>true</create>
|
||||||
<overwrite>false</overwrite>
|
<overwrite>false</overwrite>
|
||||||
<charset>latin1</charset>
|
<charset>utf8</charset>
|
||||||
<table>
|
<table>
|
||||||
<name>*dbprefix*bookmarks</name>
|
<name>*dbprefix*bookmarks</name>
|
||||||
<declaration>
|
<declaration>
|
||||||
|
|
|
@ -131,7 +131,7 @@ class OC_Contacts_VCard{
|
||||||
foreach($property->parameters as $key=>&$parameter){
|
foreach($property->parameters as $key=>&$parameter){
|
||||||
if(strtoupper($parameter->name) == 'ENCODING') {
|
if(strtoupper($parameter->name) == 'ENCODING') {
|
||||||
if(strtoupper($parameter->value) == 'QUOTED-PRINTABLE') { // what kind of other encodings could be used?
|
if(strtoupper($parameter->value) == 'QUOTED-PRINTABLE') { // what kind of other encodings could be used?
|
||||||
$property->value = str_replace("\r\n", "\n", mb_convert_encoding(quoted_printable_decode($property->value), 'utf-8', 'auto'));
|
$property->value = quoted_printable_decode($property->value);
|
||||||
unset($property->parameters[$key]);
|
unset($property->parameters[$key]);
|
||||||
}
|
}
|
||||||
} elseif(strtoupper($parameter->name) == 'CHARSET') {
|
} elseif(strtoupper($parameter->name) == 'CHARSET') {
|
||||||
|
@ -188,6 +188,7 @@ class OC_Contacts_VCard{
|
||||||
if($upgrade && in_array($property->name, $stringprops)) {
|
if($upgrade && in_array($property->name, $stringprops)) {
|
||||||
self::decodeProperty($property);
|
self::decodeProperty($property);
|
||||||
}
|
}
|
||||||
|
$property->value = str_replace("\r\n", "\n", iconv(mb_detect_encoding($property->value, 'UTF-8, ISO-8859-1'), 'utf-8', $property->value));
|
||||||
if(in_array($property->name, $stringprops)) {
|
if(in_array($property->name, $stringprops)) {
|
||||||
$property->value = strip_tags($property->value);
|
$property->value = strip_tags($property->value);
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,7 +71,7 @@ FileActions={
|
||||||
}
|
}
|
||||||
var html='<a href="#" class="action" style="display:none">';
|
var html='<a href="#" class="action" style="display:none">';
|
||||||
if(img) { html+='<img src="'+img+'"/> '; }
|
if(img) { html+='<img src="'+img+'"/> '; }
|
||||||
html += name+'</a>';
|
html += t('files', name) +'</a>';
|
||||||
var element=$(html);
|
var element=$(html);
|
||||||
element.data('action',name);
|
element.data('action',name);
|
||||||
element.click(function(event){
|
element.click(function(event){
|
||||||
|
@ -91,7 +91,7 @@ FileActions={
|
||||||
if(img.call){
|
if(img.call){
|
||||||
img=img(file);
|
img=img(file);
|
||||||
}
|
}
|
||||||
var html='<a href="#" original-title="Delete" class="action delete" style="display:none" />';
|
var html='<a href="#" original-title="' + t('files', 'Delete') + '" class="action delete" style="display:none" />';
|
||||||
var element=$(html);
|
var element=$(html);
|
||||||
if(img){
|
if(img){
|
||||||
element.append($('<img src="'+img+'"/>'));
|
element.append($('<img src="'+img+'"/>'));
|
||||||
|
|
|
@ -452,7 +452,7 @@ $(document).ready(function() {
|
||||||
input.focus();
|
input.focus();
|
||||||
input.change(function(){
|
input.change(function(){
|
||||||
var name=$(this).val();
|
var name=$(this).val();
|
||||||
if(name.indexOf('/')!=-1){
|
if(type != 'web' && name.indexOf('/')!=-1){
|
||||||
$('#notification').text(t('files','Invalid name, \'/\' is not allowed.'));
|
$('#notification').text(t('files','Invalid name, \'/\' is not allowed.'));
|
||||||
$('#notification').fadeIn();
|
$('#notification').fadeIn();
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -3,5 +3,6 @@
|
||||||
OCP\Util::addscript( 'files_pdfviewer', 'viewer');
|
OCP\Util::addscript( 'files_pdfviewer', 'viewer');
|
||||||
OCP\Util::addStyle( 'files_pdfviewer', 'viewer');
|
OCP\Util::addStyle( 'files_pdfviewer', 'viewer');
|
||||||
OCP\Util::addscript( 'files_pdfviewer', 'pdfjs/build/pdf');
|
OCP\Util::addscript( 'files_pdfviewer', 'pdfjs/build/pdf');
|
||||||
OCP\Util::addscript( 'files_pdfviewer', 'pdfview');
|
OCP\Util::addscript( 'files_pdfviewer', 'pdfjs/compatibility');
|
||||||
|
OCP\Util::addscript( 'files_pdfviewer', 'pdfjs/viewer');
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<name>PDF Viewer</name>
|
<name>PDF Viewer</name>
|
||||||
<description>Inline PDF viewer (pdfjs-based)</description>
|
<description>Inline PDF viewer (pdfjs-based)</description>
|
||||||
<licence>GPL</licence>
|
<licence>GPL</licence>
|
||||||
<author>Joan Creus</author>
|
<author>Joan Creus, Thomas Müller</author>
|
||||||
<require>4</require>
|
<require>4</require>
|
||||||
<shipped>true</shipped>
|
<shipped>true</shipped>
|
||||||
<default_enable/>
|
<default_enable/>
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
/* vim: set shiftwidth=4 tabstop=8 autoindent cindent expandtab: */
|
/* vim: set shiftwidth=4 tabstop=8 autoindent cindent expandtab: */
|
||||||
|
|
||||||
#viewer {
|
#viewer {
|
||||||
background-color: #929292;
|
|
||||||
font-family: 'Lucida Grande', 'Lucida Sans Unicode', Helvetica, Arial, Verdana, sans-serif;
|
font-family: 'Lucida Grande', 'Lucida Sans Unicode', Helvetica, Arial, Verdana, sans-serif;
|
||||||
/*margin: 0px;*/
|
/*margin: 0px;*/
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
|
|
File diff suppressed because it is too large
Load diff
340
apps/files_pdfviewer/js/pdfjs/compatibility.js
Normal file
340
apps/files_pdfviewer/js/pdfjs/compatibility.js
Normal file
|
@ -0,0 +1,340 @@
|
||||||
|
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// Checking if the typed arrays are supported
|
||||||
|
(function checkTypedArrayCompatibility() {
|
||||||
|
if (typeof Uint8Array !== 'undefined') {
|
||||||
|
// some mobile version might not support Float64Array
|
||||||
|
if (typeof Float64Array === 'undefined')
|
||||||
|
window.Float64Array = Float32Array;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
function subarray(start, end) {
|
||||||
|
return new TypedArray(this.slice(start, end));
|
||||||
|
}
|
||||||
|
|
||||||
|
function setArrayOffset(array, offset) {
|
||||||
|
if (arguments.length < 2)
|
||||||
|
offset = 0;
|
||||||
|
for (var i = 0, n = array.length; i < n; ++i, ++offset)
|
||||||
|
this[offset] = array[i] & 0xFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
function TypedArray(arg1) {
|
||||||
|
var result;
|
||||||
|
if (typeof arg1 === 'number') {
|
||||||
|
result = [];
|
||||||
|
for (var i = 0; i < arg1; ++i)
|
||||||
|
result[i] = 0;
|
||||||
|
} else
|
||||||
|
result = arg1.slice(0);
|
||||||
|
|
||||||
|
result.subarray = subarray;
|
||||||
|
result.buffer = result;
|
||||||
|
result.byteLength = result.length;
|
||||||
|
result.set = setArrayOffset;
|
||||||
|
|
||||||
|
if (typeof arg1 === 'object' && arg1.buffer)
|
||||||
|
result.buffer = arg1.buffer;
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
window.Uint8Array = TypedArray;
|
||||||
|
|
||||||
|
// we don't need support for set, byteLength for 32-bit array
|
||||||
|
// so we can use the TypedArray as well
|
||||||
|
window.Uint32Array = TypedArray;
|
||||||
|
window.Int32Array = TypedArray;
|
||||||
|
window.Uint16Array = TypedArray;
|
||||||
|
window.Float32Array = TypedArray;
|
||||||
|
window.Float64Array = TypedArray;
|
||||||
|
})();
|
||||||
|
|
||||||
|
// Object.create() ?
|
||||||
|
(function checkObjectCreateCompatibility() {
|
||||||
|
if (typeof Object.create !== 'undefined')
|
||||||
|
return;
|
||||||
|
|
||||||
|
Object.create = function objectCreate(proto) {
|
||||||
|
var constructor = function objectCreateConstructor() {};
|
||||||
|
constructor.prototype = proto;
|
||||||
|
return new constructor();
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
|
// Object.defineProperty() ?
|
||||||
|
(function checkObjectDefinePropertyCompatibility() {
|
||||||
|
if (typeof Object.defineProperty !== 'undefined')
|
||||||
|
return;
|
||||||
|
|
||||||
|
Object.defineProperty = function objectDefineProperty(obj, name, def) {
|
||||||
|
delete obj[name];
|
||||||
|
if ('get' in def)
|
||||||
|
obj.__defineGetter__(name, def['get']);
|
||||||
|
if ('set' in def)
|
||||||
|
obj.__defineSetter__(name, def['set']);
|
||||||
|
if ('value' in def) {
|
||||||
|
obj.__defineSetter__(name, function objectDefinePropertySetter(value) {
|
||||||
|
this.__defineGetter__(name, function objectDefinePropertyGetter() {
|
||||||
|
return value;
|
||||||
|
});
|
||||||
|
return value;
|
||||||
|
});
|
||||||
|
obj[name] = def.value;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
|
// Object.keys() ?
|
||||||
|
(function checkObjectKeysCompatibility() {
|
||||||
|
if (typeof Object.keys !== 'undefined')
|
||||||
|
return;
|
||||||
|
|
||||||
|
Object.keys = function objectKeys(obj) {
|
||||||
|
var result = [];
|
||||||
|
for (var i in obj) {
|
||||||
|
if (obj.hasOwnProperty(i))
|
||||||
|
result.push(i);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
|
// No XMLHttpRequest.response ?
|
||||||
|
(function checkXMLHttpRequestResponseCompatibility() {
|
||||||
|
var xhrPrototype = XMLHttpRequest.prototype;
|
||||||
|
if ('response' in xhrPrototype ||
|
||||||
|
'mozResponseArrayBuffer' in xhrPrototype ||
|
||||||
|
'mozResponse' in xhrPrototype ||
|
||||||
|
'responseArrayBuffer' in xhrPrototype)
|
||||||
|
return;
|
||||||
|
// IE ?
|
||||||
|
if (typeof VBArray !== 'undefined') {
|
||||||
|
Object.defineProperty(xhrPrototype, 'response', {
|
||||||
|
get: function xmlHttpRequestResponseGet() {
|
||||||
|
return new Uint8Array(new VBArray(this.responseBody).toArray());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(xhrPrototype, 'overrideMimeType', {
|
||||||
|
value: function xmlHttpRequestOverrideMimeType(mimeType) {}
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// other browsers
|
||||||
|
function responseTypeSetter() {
|
||||||
|
// will be only called to set "arraybuffer"
|
||||||
|
this.overrideMimeType('text/plain; charset=x-user-defined');
|
||||||
|
}
|
||||||
|
if (typeof xhrPrototype.overrideMimeType === 'function') {
|
||||||
|
Object.defineProperty(xhrPrototype, 'responseType',
|
||||||
|
{ set: responseTypeSetter });
|
||||||
|
}
|
||||||
|
function responseGetter() {
|
||||||
|
var text = this.responseText;
|
||||||
|
var i, n = text.length;
|
||||||
|
var result = new Uint8Array(n);
|
||||||
|
for (i = 0; i < n; ++i)
|
||||||
|
result[i] = text.charCodeAt(i) & 0xFF;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Object.defineProperty(xhrPrototype, 'response', { get: responseGetter });
|
||||||
|
})();
|
||||||
|
|
||||||
|
// window.btoa (base64 encode function) ?
|
||||||
|
(function checkWindowBtoaCompatibility() {
|
||||||
|
if ('btoa' in window)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var digits =
|
||||||
|
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
||||||
|
|
||||||
|
window.btoa = function windowBtoa(chars) {
|
||||||
|
var buffer = '';
|
||||||
|
var i, n;
|
||||||
|
for (i = 0, n = chars.length; i < n; i += 3) {
|
||||||
|
var b1 = chars.charCodeAt(i) & 0xFF;
|
||||||
|
var b2 = chars.charCodeAt(i + 1) & 0xFF;
|
||||||
|
var b3 = chars.charCodeAt(i + 2) & 0xFF;
|
||||||
|
var d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4);
|
||||||
|
var d3 = i + 1 < n ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64;
|
||||||
|
var d4 = i + 2 < n ? (b3 & 0x3F) : 64;
|
||||||
|
buffer += (digits.charAt(d1) + digits.charAt(d2) +
|
||||||
|
digits.charAt(d3) + digits.charAt(d4));
|
||||||
|
}
|
||||||
|
return buffer;
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
|
// Function.prototype.bind ?
|
||||||
|
(function checkFunctionPrototypeBindCompatibility() {
|
||||||
|
if (typeof Function.prototype.bind !== 'undefined')
|
||||||
|
return;
|
||||||
|
|
||||||
|
Function.prototype.bind = function functionPrototypeBind(obj) {
|
||||||
|
var fn = this, headArgs = Array.prototype.slice.call(arguments, 1);
|
||||||
|
var bound = function functionPrototypeBindBound() {
|
||||||
|
var args = Array.prototype.concat.apply(headArgs, arguments);
|
||||||
|
return fn.apply(obj, args);
|
||||||
|
};
|
||||||
|
return bound;
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
|
// IE9 text/html data URI
|
||||||
|
(function checkDocumentDocumentModeCompatibility() {
|
||||||
|
if (!('documentMode' in document) || document.documentMode !== 9)
|
||||||
|
return;
|
||||||
|
// overriding the src property
|
||||||
|
var originalSrcDescriptor = Object.getOwnPropertyDescriptor(
|
||||||
|
HTMLIFrameElement.prototype, 'src');
|
||||||
|
Object.defineProperty(HTMLIFrameElement.prototype, 'src', {
|
||||||
|
get: function htmlIFrameElementPrototypeSrcGet() { return this.$src; },
|
||||||
|
set: function htmlIFrameElementPrototypeSrcSet(src) {
|
||||||
|
this.$src = src;
|
||||||
|
if (src.substr(0, 14) != 'data:text/html') {
|
||||||
|
originalSrcDescriptor.set.call(this, src);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// for text/html, using blank document and then
|
||||||
|
// document's open, write, and close operations
|
||||||
|
originalSrcDescriptor.set.call(this, 'about:blank');
|
||||||
|
setTimeout((function htmlIFrameElementPrototypeSrcOpenWriteClose() {
|
||||||
|
var doc = this.contentDocument;
|
||||||
|
doc.open('text/html');
|
||||||
|
doc.write(src.substr(src.indexOf(',') + 1));
|
||||||
|
doc.close();
|
||||||
|
}).bind(this), 0);
|
||||||
|
},
|
||||||
|
enumerable: true
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
|
||||||
|
// HTMLElement dataset property
|
||||||
|
(function checkDatasetProperty() {
|
||||||
|
var div = document.createElement('div');
|
||||||
|
if ('dataset' in div)
|
||||||
|
return; // dataset property exists
|
||||||
|
|
||||||
|
Object.defineProperty(HTMLElement.prototype, 'dataset', {
|
||||||
|
get: function() {
|
||||||
|
if (this._dataset)
|
||||||
|
return this._dataset;
|
||||||
|
|
||||||
|
var dataset = {};
|
||||||
|
for (var j = 0, jj = this.attributes.length; j < jj; j++) {
|
||||||
|
var attribute = this.attributes[j];
|
||||||
|
if (attribute.name.substring(0, 5) != 'data-')
|
||||||
|
continue;
|
||||||
|
var key = attribute.name.substring(5).replace(/\-([a-z])/g,
|
||||||
|
function(all, ch) { return ch.toUpperCase(); });
|
||||||
|
dataset[key] = attribute.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.defineProperty(this, '_dataset', {
|
||||||
|
value: dataset,
|
||||||
|
writable: false,
|
||||||
|
enumerable: false
|
||||||
|
});
|
||||||
|
return dataset;
|
||||||
|
},
|
||||||
|
enumerable: true
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
|
||||||
|
// HTMLElement classList property
|
||||||
|
(function checkClassListProperty() {
|
||||||
|
var div = document.createElement('div');
|
||||||
|
if ('classList' in div)
|
||||||
|
return; // classList property exists
|
||||||
|
|
||||||
|
function changeList(element, itemName, add, remove) {
|
||||||
|
var s = element.className || '';
|
||||||
|
var list = s.split(/\s+/g);
|
||||||
|
if (list[0] == '') list.shift();
|
||||||
|
var index = list.indexOf(itemName);
|
||||||
|
if (index < 0 && add)
|
||||||
|
list.push(itemName);
|
||||||
|
if (index >= 0 && remove)
|
||||||
|
list.splice(index, 1);
|
||||||
|
element.className = list.join(' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
var classListPrototype = {
|
||||||
|
add: function(name) {
|
||||||
|
changeList(this.element, name, true, false);
|
||||||
|
},
|
||||||
|
remove: function(name) {
|
||||||
|
changeList(this.element, name, false, true);
|
||||||
|
},
|
||||||
|
toggle: function(name) {
|
||||||
|
changeList(this.element, name, true, true);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Object.defineProperty(HTMLElement.prototype, 'classList', {
|
||||||
|
get: function() {
|
||||||
|
if (this._classList)
|
||||||
|
return this._classList;
|
||||||
|
|
||||||
|
var classList = Object.create(classListPrototype, {
|
||||||
|
element: {
|
||||||
|
value: this,
|
||||||
|
writable: false,
|
||||||
|
enumerable: true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(this, '_classList', {
|
||||||
|
value: classList,
|
||||||
|
writable: false,
|
||||||
|
enumerable: false
|
||||||
|
});
|
||||||
|
return classList;
|
||||||
|
},
|
||||||
|
enumerable: true
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
|
||||||
|
// Check console compatability
|
||||||
|
(function checkConsoleCompatibility() {
|
||||||
|
if (typeof console == 'undefined') {
|
||||||
|
console = {log: function() {}};
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
// Check onclick compatibility in Opera
|
||||||
|
(function checkOnClickCompatibility() {
|
||||||
|
// workaround for reported Opera bug DSK-354448:
|
||||||
|
// onclick fires on disabled buttons with opaque content
|
||||||
|
function ignoreIfTargetDisabled(event) {
|
||||||
|
if (isDisabled(event.target)) {
|
||||||
|
event.stopPropagation();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function isDisabled(node) {
|
||||||
|
return node.disabled || (node.parentNode && isDisabled(node.parentNode));
|
||||||
|
}
|
||||||
|
if (navigator.userAgent.indexOf('Opera') != -1) {
|
||||||
|
// use browser detection since we cannot feature-check this bug
|
||||||
|
document.addEventListener('click', ignoreIfTargetDisabled, true);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
// Checks if navigator.language is supported
|
||||||
|
(function checkNavigatorLanguage() {
|
||||||
|
if ('language' in navigator)
|
||||||
|
return;
|
||||||
|
Object.defineProperty(navigator, 'language', {
|
||||||
|
get: function navigatorLanguage() {
|
||||||
|
var language = navigator.userLanguage || 'en-US';
|
||||||
|
return language.substring(0, 2).toLowerCase() +
|
||||||
|
language.substring(2).toUpperCase();
|
||||||
|
},
|
||||||
|
enumerable: true
|
||||||
|
});
|
||||||
|
})();
|
|
@ -1,3 +1,6 @@
|
||||||
cd build
|
cd build
|
||||||
rm pdf.js
|
rm pdf.js
|
||||||
wget http://mozilla.github.com/pdf.js/build/pdf.js
|
wget http://mozilla.github.com/pdf.js/build/pdf.js
|
||||||
|
wget http://mozilla.github.com/pdf.js/web/compatibility.js
|
||||||
|
wget http://mozilla.github.com/pdf.js/web/viewer.js
|
||||||
|
|
||||||
|
|
1936
apps/files_pdfviewer/js/pdfjs/viewer.js
Normal file
1936
apps/files_pdfviewer/js/pdfjs/viewer.js
Normal file
File diff suppressed because it is too large
Load diff
|
@ -24,21 +24,9 @@ function showPDFviewer(dir,filename){
|
||||||
var oldcontent = $("#content").html();
|
var oldcontent = $("#content").html();
|
||||||
$("#content").html(oldcontent+'<div id="loading">Loading... 0%</div><div id="viewer"></div>');
|
$("#content").html(oldcontent+'<div id="loading">Loading... 0%</div><div id="viewer"></div>');
|
||||||
showPDFviewer.lastTitle = document.title;
|
showPDFviewer.lastTitle = document.title;
|
||||||
if(!showPDFviewer.loaded){
|
PDFView.Ptitle = filename;
|
||||||
OC.addScript( 'files_pdfviewer', 'pdfjs/build/pdf',function(){
|
PDFView.open(url,1.00);
|
||||||
OC.addScript( 'files_pdfviewer', 'pdfview',function(){
|
PDFView.active=true;
|
||||||
showPDFviewer.loaded=true;
|
|
||||||
PDFJS.workerSrc = OC.filePath('files_pdfviewer','js','pdfjs/build/pdf.js');
|
|
||||||
PDFView.Ptitle = filename;
|
|
||||||
PDFView.open(url,1.00);
|
|
||||||
PDFView.active=true;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}else{
|
|
||||||
PDFView.Ptitle = filename;
|
|
||||||
PDFView.open(url,1.00);
|
|
||||||
PDFView.active=true;
|
|
||||||
}
|
|
||||||
$("#pageWidthOption").attr("selected","selected");
|
$("#pageWidthOption").attr("selected","selected");
|
||||||
showPDFviewer.shown = true;
|
showPDFviewer.shown = true;
|
||||||
}
|
}
|
||||||
|
@ -46,7 +34,6 @@ function showPDFviewer(dir,filename){
|
||||||
showPDFviewer.shown=false;
|
showPDFviewer.shown=false;
|
||||||
showPDFviewer.oldCode='';
|
showPDFviewer.oldCode='';
|
||||||
showPDFviewer.lastTitle='';
|
showPDFviewer.lastTitle='';
|
||||||
showPDFviewer.loaded=false;
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
if(!$.browser.msie){//doesnt work on IE
|
if(!$.browser.msie){//doesnt work on IE
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<name>*dbname*</name>
|
<name>*dbname*</name>
|
||||||
<create>true</create>
|
<create>true</create>
|
||||||
<overwrite>false</overwrite>
|
<overwrite>false</overwrite>
|
||||||
<charset>latin1</charset>
|
<charset>utf8</charset>
|
||||||
<table>
|
<table>
|
||||||
<name>*dbprefix*sharing</name>
|
<name>*dbprefix*sharing</name>
|
||||||
<declaration>
|
<declaration>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<name>*dbname*</name>
|
<name>*dbname*</name>
|
||||||
<create>true</create>
|
<create>true</create>
|
||||||
<overwrite>false</overwrite>
|
<overwrite>false</overwrite>
|
||||||
<charset>latin1</charset>
|
<charset>utf8</charset>
|
||||||
<table>
|
<table>
|
||||||
<name>*dbprefix*pictures_images_cache</name>
|
<name>*dbprefix*pictures_images_cache</name>
|
||||||
<declaration>
|
<declaration>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<create>true</create>
|
<create>true</create>
|
||||||
<overwrite>false</overwrite>
|
<overwrite>false</overwrite>
|
||||||
|
|
||||||
<charset>latin1</charset>
|
<charset>utf8</charset>
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<name>*dbname*</name>
|
<name>*dbname*</name>
|
||||||
<create>true</create>
|
<create>true</create>
|
||||||
<overwrite>false</overwrite>
|
<overwrite>false</overwrite>
|
||||||
<charset>latin1</charset>
|
<charset>utf8</charset>
|
||||||
<table>
|
<table>
|
||||||
<name>*dbprefix*authtoken</name>
|
<name>*dbprefix*authtoken</name>
|
||||||
<declaration>
|
<declaration>
|
||||||
|
|
|
@ -34,8 +34,8 @@ li.selected { background-color:#ddd; }
|
||||||
#content>table:not(.nostyle) { margin-top:3em; }
|
#content>table:not(.nostyle) { margin-top:3em; }
|
||||||
table:not(.nostyle) { width:100%; }
|
table:not(.nostyle) { width:100%; }
|
||||||
#rightcontent { padding-left: 1em; }
|
#rightcontent { padding-left: 1em; }
|
||||||
td.quota { position:relative; }
|
|
||||||
div.quota { float:right; display:block; position:absolute; right:25em; top:0; }
|
div.quota { float:right; display:block; position:absolute; right:25em; top:0; }
|
||||||
|
div.quota-select-wrapper { position: relative; }
|
||||||
select.quota { position:absolute; left:0; top:0; width:10em; }
|
select.quota { position:absolute; left:0; top:0; width:10em; }
|
||||||
select.quota-user { position:relative; left:0; top:0; width:10em; }
|
select.quota-user { position:relative; left:0; top:0; width:10em; }
|
||||||
input.quota-other { display:none; position:absolute; left:0.1em; top:0.1em; width:7em; border:none; -webkit-box-shadow: none -mox-box-shadow:none ; box-shadow:none; }
|
input.quota-other { display:none; position:absolute; left:0.1em; top:0.1em; width:7em; border:none; -webkit-box-shadow: none -mox-box-shadow:none ; box-shadow:none; }
|
||||||
|
|
|
@ -95,9 +95,9 @@ $(document).ready(function(){
|
||||||
$(this).children('img').click();
|
$(this).children('img').click();
|
||||||
});
|
});
|
||||||
|
|
||||||
$('select.quota').live('change',function(){
|
$('select.quota, select.quota-user').live('change',function(){
|
||||||
var select=$(this);
|
var select=$(this);
|
||||||
var uid=$(this).parent().parent().data('uid');
|
var uid=$(this).parent().parent().parent().data('uid');
|
||||||
var quota=$(this).val();
|
var quota=$(this).val();
|
||||||
var other=$(this).next();
|
var other=$(this).next();
|
||||||
if(quota!='other'){
|
if(quota!='other'){
|
||||||
|
@ -110,7 +110,7 @@ $(document).ready(function(){
|
||||||
other.focus();
|
other.focus();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$('select.quota').each(function(i,select){
|
$('select.quota, select.quota-user').each(function(i,select){
|
||||||
$(select).data('previous',$(select).val());
|
$(select).data('previous',$(select).val());
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -207,9 +207,9 @@ $(document).ready(function(){
|
||||||
applyMultiplySelect(select);
|
applyMultiplySelect(select);
|
||||||
$('#content table tbody').last().append(tr);
|
$('#content table tbody').last().append(tr);
|
||||||
|
|
||||||
tr.find('select.quota option').attr('selected',null);
|
tr.find('select.quota-user option').attr('selected',null);
|
||||||
tr.find('select.quota option').first().attr('selected','selected');
|
tr.find('select.quota-user option').first().attr('selected','selected');
|
||||||
tr.find('select.quota').data('previous','default');
|
tr.find('select.quota-user').data('previous','default');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -12,29 +12,43 @@ foreach($_["groups"] as $group) {
|
||||||
|
|
||||||
<div id="controls">
|
<div id="controls">
|
||||||
<form id="newuser">
|
<form id="newuser">
|
||||||
<input id="newusername" placeholder="<?php echo $l->t('Name')?>" />
|
<input id="newusername" placeholder="<?php echo $l->t('Name')?>" /> <input
|
||||||
<input type="password" id="newuserpassword" placeholder="<?php echo $l->t('Password')?>" />
|
type="password" id="newuserpassword"
|
||||||
<select id="newusergroups" data-placeholder="groups" title="<?php echo $l->t('Groups')?>" multiple="multiple">
|
placeholder="<?php echo $l->t('Password')?>" /> <select
|
||||||
<?php foreach($_["groups"] as $group): ?>
|
id="newusergroups" data-placeholder="groups"
|
||||||
<option value="<?php echo $group['name'];?>"><?php echo $group['name'];?></option>
|
title="<?php echo $l->t('Groups')?>" multiple="multiple">
|
||||||
<?php endforeach;?>
|
<?php foreach($_["groups"] as $group): ?>
|
||||||
</select>
|
<option value="<?php echo $group['name'];?>">
|
||||||
<input type="submit" value="<?php echo $l->t('Create')?>" />
|
<?php echo $group['name'];?>
|
||||||
|
</option>
|
||||||
|
<?php endforeach;?>
|
||||||
|
</select> <input type="submit" value="<?php echo $l->t('Create')?>" />
|
||||||
</form>
|
</form>
|
||||||
<div class="quota">
|
<div class="quota">
|
||||||
<span><?php echo $l->t('Default Quota');?>:</span>
|
<span><?php echo $l->t('Default Quota');?>:</span>
|
||||||
<select class='quota'>
|
<div class="quota-select-wrapper">
|
||||||
<?php foreach($_['quota_preset'] as $preset):?>
|
<select class='quota'>
|
||||||
|
<?php foreach($_['quota_preset'] as $preset):?>
|
||||||
<?php if($preset!='default'):?>
|
<?php if($preset!='default'):?>
|
||||||
<option <?php if($_['default_quota']==$preset) echo 'selected="selected"';?> value='<?php echo $preset;?>'><?php echo $preset;?></option>
|
<option
|
||||||
|
<?php if($_['default_quota']==$preset) echo 'selected="selected"';?>
|
||||||
|
value='<?php echo $preset;?>'>
|
||||||
|
<?php echo $preset;?>
|
||||||
|
</option>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
<?php endforeach;?>
|
<?php endforeach;?>
|
||||||
<?php if(array_search($_['default_quota'],$_['quota_preset'])===false):?>
|
<?php if(array_search($_['default_quota'],$_['quota_preset'])===false):?>
|
||||||
<option selected="selected" value='<?php echo $_['default_quota'];?>'><?php echo $_['default_quota'];?></option>
|
<option selected="selected"
|
||||||
<?php endif;?>
|
value='<?php echo $_['default_quota'];?>'>
|
||||||
<option value='other'><?php echo $l->t('Other');?>...</option>
|
<?php echo $_['default_quota'];?>
|
||||||
</select>
|
</option>
|
||||||
<input class='quota-other'></input>
|
<?php endif;?>
|
||||||
|
<option value='other'>
|
||||||
|
<?php echo $l->t('Other');?>
|
||||||
|
...
|
||||||
|
</option>
|
||||||
|
</select> <input class='quota-other'></input>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -49,38 +63,52 @@ foreach($_["groups"] as $group) {
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<?php foreach($_["users"] as $user): ?>
|
<?php foreach($_["users"] as $user): ?>
|
||||||
<tr data-uid="<?php echo $user["name"] ?>">
|
<tr data-uid="<?php echo $user["name"] ?>">
|
||||||
<td class="name"><?php echo $user["name"]; ?></td>
|
<td class="name"><?php echo $user["name"]; ?></td>
|
||||||
<td class="password">
|
<td class="password"><span>●●●●●●●</span> <img class="svg action"
|
||||||
<span>●●●●●●●</span>
|
src="<?php echo image_path('core','actions/rename.svg')?>"
|
||||||
<img class="svg action" src="<?php echo image_path('core','actions/rename.svg')?>" alt="set new password" title="set new password" />
|
alt="set new password" title="set new password" />
|
||||||
</td>
|
</td>
|
||||||
<td class="groups">
|
<td class="groups"><select
|
||||||
<select data-username="<?php echo $user['name'] ;?>" data-user-groups="<?php echo $user['groups'] ;?>" data-placeholder="groups" title="<?php echo $l->t('Groups')?>" multiple="multiple">
|
data-username="<?php echo $user['name'] ;?>"
|
||||||
|
data-user-groups="<?php echo $user['groups'] ;?>"
|
||||||
|
data-placeholder="groups" title="<?php echo $l->t('Groups')?>"
|
||||||
|
multiple="multiple">
|
||||||
<?php foreach($_["groups"] as $group): ?>
|
<?php foreach($_["groups"] as $group): ?>
|
||||||
<option value="<?php echo $group['name'];?>"><?php echo $group['name'];?></option>
|
<option value="<?php echo $group['name'];?>">
|
||||||
|
<?php echo $group['name'];?>
|
||||||
|
</option>
|
||||||
<?php endforeach;?>
|
<?php endforeach;?>
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
<td class="quota">
|
<td class="quota">
|
||||||
<select class='quota-user'>
|
<div class="quota-select-wrapper">
|
||||||
<?php foreach($_['quota_preset'] as $preset):?>
|
<select class='quota-user'>
|
||||||
<option <?php if($user['quota']==$preset) echo 'selected="selected"';?> value='<?php echo $preset;?>'><?php echo $preset;?></option>
|
<?php foreach($_['quota_preset'] as $preset):?>
|
||||||
<?php endforeach;?>
|
<option
|
||||||
<?php if(array_search($user['quota'],$_['quota_preset'])===false):?>
|
<?php if($user['quota']==$preset) echo 'selected="selected"';?>
|
||||||
<option selected="selected" value='<?php echo $user['quota'];?>'><?php echo $user['quota'];?></option>
|
value='<?php echo $preset;?>'>
|
||||||
<?php endif;?>
|
<?php echo $preset;?>
|
||||||
<option value='other'><?php echo $l->t('Other');?>...</option>
|
</option>
|
||||||
</select>
|
<?php endforeach;?>
|
||||||
<input class='quota-other'></input>
|
<?php if(array_search($user['quota'],$_['quota_preset'])===false):?>
|
||||||
|
<option selected="selected" value='<?php echo $user['quota'];?>'>
|
||||||
|
<?php echo $user['quota'];?>
|
||||||
|
</option>
|
||||||
|
<?php endif;?>
|
||||||
|
<option value='other'>
|
||||||
|
<?php echo $l->t('Other');?>
|
||||||
|
...
|
||||||
|
</option>
|
||||||
|
</select> <input class='quota-other'></input>
|
||||||
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="remove">
|
<td class="remove"><?php if($user['name']!=OC_User::getUser()):?> <img
|
||||||
<?php if($user['name']!=OC_User::getUser()):?>
|
alt="Delete" title="<?php echo $l->t('Delete')?>" class="svg action"
|
||||||
<img alt="Delete" title="<?php echo $l->t('Delete')?>" class="svg action" src="<?php echo image_path('core','actions/delete.svg') ?>" />
|
src="<?php echo image_path('core','actions/delete.svg') ?>" /> <?php endif;?>
|
||||||
<?php endif;?>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
Loading…
Reference in a new issue