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
|
||||
.settings.xml
|
||||
|
||||
# vim ex mode
|
||||
.vimrc
|
||||
|
||||
# Mac OS
|
||||
.DS_Store
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<name>*dbname*</name>
|
||||
<create>true</create>
|
||||
<overwrite>false</overwrite>
|
||||
<charset>latin1</charset>
|
||||
<charset>utf8</charset>
|
||||
<table>
|
||||
<name>*dbprefix*bookmarks</name>
|
||||
<declaration>
|
||||
|
|
|
@ -131,7 +131,7 @@ class OC_Contacts_VCard{
|
|||
foreach($property->parameters as $key=>&$parameter){
|
||||
if(strtoupper($parameter->name) == 'ENCODING') {
|
||||
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]);
|
||||
}
|
||||
} elseif(strtoupper($parameter->name) == 'CHARSET') {
|
||||
|
@ -188,6 +188,7 @@ class OC_Contacts_VCard{
|
|||
if($upgrade && in_array($property->name, $stringprops)) {
|
||||
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)) {
|
||||
$property->value = strip_tags($property->value);
|
||||
}
|
||||
|
|
|
@ -71,7 +71,7 @@ FileActions={
|
|||
}
|
||||
var html='<a href="#" class="action" style="display:none">';
|
||||
if(img) { html+='<img src="'+img+'"/> '; }
|
||||
html += name+'</a>';
|
||||
html += t('files', name) +'</a>';
|
||||
var element=$(html);
|
||||
element.data('action',name);
|
||||
element.click(function(event){
|
||||
|
@ -91,7 +91,7 @@ FileActions={
|
|||
if(img.call){
|
||||
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);
|
||||
if(img){
|
||||
element.append($('<img src="'+img+'"/>'));
|
||||
|
|
|
@ -452,7 +452,7 @@ $(document).ready(function() {
|
|||
input.focus();
|
||||
input.change(function(){
|
||||
var name=$(this).val();
|
||||
if(name.indexOf('/')!=-1){
|
||||
if(type != 'web' && name.indexOf('/')!=-1){
|
||||
$('#notification').text(t('files','Invalid name, \'/\' is not allowed.'));
|
||||
$('#notification').fadeIn();
|
||||
return;
|
||||
|
|
|
@ -3,5 +3,6 @@
|
|||
OCP\Util::addscript( 'files_pdfviewer', 'viewer');
|
||||
OCP\Util::addStyle( 'files_pdfviewer', 'viewer');
|
||||
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>
|
||||
<description>Inline PDF viewer (pdfjs-based)</description>
|
||||
<licence>GPL</licence>
|
||||
<author>Joan Creus</author>
|
||||
<author>Joan Creus, Thomas Müller</author>
|
||||
<require>4</require>
|
||||
<shipped>true</shipped>
|
||||
<default_enable/>
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
/* vim: set shiftwidth=4 tabstop=8 autoindent cindent expandtab: */
|
||||
|
||||
#viewer {
|
||||
background-color: #929292;
|
||||
font-family: 'Lucida Grande', 'Lucida Sans Unicode', Helvetica, Arial, Verdana, sans-serif;
|
||||
/*margin: 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
|
||||
rm 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();
|
||||
$("#content").html(oldcontent+'<div id="loading">Loading... 0%</div><div id="viewer"></div>');
|
||||
showPDFviewer.lastTitle = document.title;
|
||||
if(!showPDFviewer.loaded){
|
||||
OC.addScript( 'files_pdfviewer', 'pdfjs/build/pdf',function(){
|
||||
OC.addScript( 'files_pdfviewer', 'pdfview',function(){
|
||||
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;
|
||||
}
|
||||
PDFView.Ptitle = filename;
|
||||
PDFView.open(url,1.00);
|
||||
PDFView.active=true;
|
||||
$("#pageWidthOption").attr("selected","selected");
|
||||
showPDFviewer.shown = true;
|
||||
}
|
||||
|
@ -46,7 +34,6 @@ function showPDFviewer(dir,filename){
|
|||
showPDFviewer.shown=false;
|
||||
showPDFviewer.oldCode='';
|
||||
showPDFviewer.lastTitle='';
|
||||
showPDFviewer.loaded=false;
|
||||
|
||||
$(document).ready(function(){
|
||||
if(!$.browser.msie){//doesnt work on IE
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<name>*dbname*</name>
|
||||
<create>true</create>
|
||||
<overwrite>false</overwrite>
|
||||
<charset>latin1</charset>
|
||||
<charset>utf8</charset>
|
||||
<table>
|
||||
<name>*dbprefix*sharing</name>
|
||||
<declaration>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<name>*dbname*</name>
|
||||
<create>true</create>
|
||||
<overwrite>false</overwrite>
|
||||
<charset>latin1</charset>
|
||||
<charset>utf8</charset>
|
||||
<table>
|
||||
<name>*dbprefix*pictures_images_cache</name>
|
||||
<declaration>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<create>true</create>
|
||||
<overwrite>false</overwrite>
|
||||
|
||||
<charset>latin1</charset>
|
||||
<charset>utf8</charset>
|
||||
|
||||
<table>
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<name>*dbname*</name>
|
||||
<create>true</create>
|
||||
<overwrite>false</overwrite>
|
||||
<charset>latin1</charset>
|
||||
<charset>utf8</charset>
|
||||
<table>
|
||||
<name>*dbprefix*authtoken</name>
|
||||
<declaration>
|
||||
|
|
|
@ -34,8 +34,8 @@ li.selected { background-color:#ddd; }
|
|||
#content>table:not(.nostyle) { margin-top:3em; }
|
||||
table:not(.nostyle) { width:100%; }
|
||||
#rightcontent { padding-left: 1em; }
|
||||
td.quota { position:relative; }
|
||||
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-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; }
|
||||
|
|
|
@ -95,9 +95,9 @@ $(document).ready(function(){
|
|||
$(this).children('img').click();
|
||||
});
|
||||
|
||||
$('select.quota').live('change',function(){
|
||||
$('select.quota, select.quota-user').live('change',function(){
|
||||
var select=$(this);
|
||||
var uid=$(this).parent().parent().data('uid');
|
||||
var uid=$(this).parent().parent().parent().data('uid');
|
||||
var quota=$(this).val();
|
||||
var other=$(this).next();
|
||||
if(quota!='other'){
|
||||
|
@ -110,7 +110,7 @@ $(document).ready(function(){
|
|||
other.focus();
|
||||
}
|
||||
});
|
||||
$('select.quota').each(function(i,select){
|
||||
$('select.quota, select.quota-user').each(function(i,select){
|
||||
$(select).data('previous',$(select).val());
|
||||
})
|
||||
|
||||
|
@ -207,9 +207,9 @@ $(document).ready(function(){
|
|||
applyMultiplySelect(select);
|
||||
$('#content table tbody').last().append(tr);
|
||||
|
||||
tr.find('select.quota option').attr('selected',null);
|
||||
tr.find('select.quota option').first().attr('selected','selected');
|
||||
tr.find('select.quota').data('previous','default');
|
||||
tr.find('select.quota-user option').attr('selected',null);
|
||||
tr.find('select.quota-user option').first().attr('selected','selected');
|
||||
tr.find('select.quota-user').data('previous','default');
|
||||
}
|
||||
}
|
||||
);
|
||||
|
|
|
@ -12,29 +12,43 @@ foreach($_["groups"] as $group) {
|
|||
|
||||
<div id="controls">
|
||||
<form id="newuser">
|
||||
<input id="newusername" placeholder="<?php echo $l->t('Name')?>" />
|
||||
<input type="password" id="newuserpassword" placeholder="<?php echo $l->t('Password')?>" />
|
||||
<select id="newusergroups" data-placeholder="groups" title="<?php echo $l->t('Groups')?>" multiple="multiple">
|
||||
<?php foreach($_["groups"] as $group): ?>
|
||||
<option value="<?php echo $group['name'];?>"><?php echo $group['name'];?></option>
|
||||
<?php endforeach;?>
|
||||
</select>
|
||||
<input type="submit" value="<?php echo $l->t('Create')?>" />
|
||||
<input id="newusername" placeholder="<?php echo $l->t('Name')?>" /> <input
|
||||
type="password" id="newuserpassword"
|
||||
placeholder="<?php echo $l->t('Password')?>" /> <select
|
||||
id="newusergroups" data-placeholder="groups"
|
||||
title="<?php echo $l->t('Groups')?>" multiple="multiple">
|
||||
<?php foreach($_["groups"] as $group): ?>
|
||||
<option value="<?php echo $group['name'];?>">
|
||||
<?php echo $group['name'];?>
|
||||
</option>
|
||||
<?php endforeach;?>
|
||||
</select> <input type="submit" value="<?php echo $l->t('Create')?>" />
|
||||
</form>
|
||||
<div class="quota">
|
||||
<span><?php echo $l->t('Default Quota');?>:</span>
|
||||
<select class='quota'>
|
||||
<?php foreach($_['quota_preset'] as $preset):?>
|
||||
<div class="quota-select-wrapper">
|
||||
<select class='quota'>
|
||||
<?php foreach($_['quota_preset'] as $preset):?>
|
||||
<?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 endforeach;?>
|
||||
<?php if(array_search($_['default_quota'],$_['quota_preset'])===false):?>
|
||||
<option selected="selected" value='<?php echo $_['default_quota'];?>'><?php echo $_['default_quota'];?></option>
|
||||
<?php endif;?>
|
||||
<option value='other'><?php echo $l->t('Other');?>...</option>
|
||||
</select>
|
||||
<input class='quota-other'></input>
|
||||
<?php endforeach;?>
|
||||
<?php if(array_search($_['default_quota'],$_['quota_preset'])===false):?>
|
||||
<option selected="selected"
|
||||
value='<?php echo $_['default_quota'];?>'>
|
||||
<?php echo $_['default_quota'];?>
|
||||
</option>
|
||||
<?php endif;?>
|
||||
<option value='other'>
|
||||
<?php echo $l->t('Other');?>
|
||||
...
|
||||
</option>
|
||||
</select> <input class='quota-other'></input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -49,38 +63,52 @@ foreach($_["groups"] as $group) {
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach($_["users"] as $user): ?>
|
||||
<?php foreach($_["users"] as $user): ?>
|
||||
<tr data-uid="<?php echo $user["name"] ?>">
|
||||
<td class="name"><?php echo $user["name"]; ?></td>
|
||||
<td class="password">
|
||||
<span>●●●●●●●</span>
|
||||
<img class="svg action" src="<?php echo image_path('core','actions/rename.svg')?>" alt="set new password" title="set new password" />
|
||||
<td class="password"><span>●●●●●●●</span> <img class="svg action"
|
||||
src="<?php echo image_path('core','actions/rename.svg')?>"
|
||||
alt="set new password" title="set new password" />
|
||||
</td>
|
||||
<td class="groups">
|
||||
<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">
|
||||
<td class="groups"><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">
|
||||
<?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;?>
|
||||
</select>
|
||||
</select>
|
||||
</td>
|
||||
<td class="quota">
|
||||
<select class='quota-user'>
|
||||
<?php foreach($_['quota_preset'] as $preset):?>
|
||||
<option <?php if($user['quota']==$preset) echo 'selected="selected"';?> value='<?php echo $preset;?>'><?php echo $preset;?></option>
|
||||
<?php endforeach;?>
|
||||
<?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 class="quota-select-wrapper">
|
||||
<select class='quota-user'>
|
||||
<?php foreach($_['quota_preset'] as $preset):?>
|
||||
<option
|
||||
<?php if($user['quota']==$preset) echo 'selected="selected"';?>
|
||||
value='<?php echo $preset;?>'>
|
||||
<?php echo $preset;?>
|
||||
</option>
|
||||
<?php endforeach;?>
|
||||
<?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 class="remove">
|
||||
<?php if($user['name']!=OC_User::getUser()):?>
|
||||
<img alt="Delete" title="<?php echo $l->t('Delete')?>" class="svg action" src="<?php echo image_path('core','actions/delete.svg') ?>" />
|
||||
<?php endif;?>
|
||||
<td class="remove"><?php if($user['name']!=OC_User::getUser()):?> <img
|
||||
alt="Delete" title="<?php echo $l->t('Delete')?>" class="svg action"
|
||||
src="<?php echo image_path('core','actions/delete.svg') ?>" /> <?php endif;?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
Loading…
Reference in a new issue