upload images to the selected album
This commit is contained in:
parent
2633e820ab
commit
835e54dfc3
4 changed files with 83 additions and 10 deletions
|
@ -7,6 +7,7 @@ function wall_upload_post(App $a, $desktopmode = true) {
|
||||||
logger("wall upload: starting new upload", LOGGER_DEBUG);
|
logger("wall upload: starting new upload", LOGGER_DEBUG);
|
||||||
|
|
||||||
$r_json = (x($_GET,'response') && $_GET['response']=='json');
|
$r_json = (x($_GET,'response') && $_GET['response']=='json');
|
||||||
|
$album = (x($_GET, 'album') ? notags(trim($_GET['album'])) : '');
|
||||||
|
|
||||||
if($a->argc > 1) {
|
if($a->argc > 1) {
|
||||||
if(! x($_FILES,'media')) {
|
if(! x($_FILES,'media')) {
|
||||||
|
@ -211,9 +212,14 @@ function wall_upload_post(App $a, $desktopmode = true) {
|
||||||
|
|
||||||
$smallest = 0;
|
$smallest = 0;
|
||||||
|
|
||||||
|
// If we don't have an album name use the Wall Photos album
|
||||||
|
if (! strlen($album)) {
|
||||||
|
$album = t('Wall Photos');
|
||||||
|
}
|
||||||
|
|
||||||
$defperm = '<' . $default_cid . '>';
|
$defperm = '<' . $default_cid . '>';
|
||||||
|
|
||||||
$r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 0, 0, $defperm);
|
$r = $ph->store($page_owner_uid, $visitor, $hash, $filename, $album, 0, 0, $defperm);
|
||||||
|
|
||||||
if(! $r) {
|
if(! $r) {
|
||||||
$msg = t('Image upload failed.');
|
$msg = t('Image upload failed.');
|
||||||
|
@ -227,14 +233,14 @@ function wall_upload_post(App $a, $desktopmode = true) {
|
||||||
|
|
||||||
if($width > 640 || $height > 640) {
|
if($width > 640 || $height > 640) {
|
||||||
$ph->scaleImage(640);
|
$ph->scaleImage(640);
|
||||||
$r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 1, 0, $defperm);
|
$r = $ph->store($page_owner_uid, $visitor, $hash, $filename, $album, 1, 0, $defperm);
|
||||||
if($r)
|
if($r)
|
||||||
$smallest = 1;
|
$smallest = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($width > 320 || $height > 320) {
|
if($width > 320 || $height > 320) {
|
||||||
$ph->scaleImage(320);
|
$ph->scaleImage(320);
|
||||||
$r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 2, 0, $defperm);
|
$r = $ph->store($page_owner_uid, $visitor, $hash, $filename, $album, 2, 0, $defperm);
|
||||||
if($r AND ($smallest == 0))
|
if($r AND ($smallest == 0))
|
||||||
$smallest = 2;
|
$smallest = 2;
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,6 +68,7 @@ var FileBrowser = {
|
||||||
nickname : "",
|
nickname : "",
|
||||||
type : "",
|
type : "",
|
||||||
event: "",
|
event: "",
|
||||||
|
folder: "",
|
||||||
id : null,
|
id : null,
|
||||||
|
|
||||||
init: function(nickname, type, hash) {
|
init: function(nickname, type, hash) {
|
||||||
|
@ -99,6 +100,7 @@ var FileBrowser = {
|
||||||
$(".fbrowser").on("click", ".folders a, .path a", function(e) {
|
$(".fbrowser").on("click", ".folders a, .path a", function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var url = baseurl + "/fbrowser/" + FileBrowser.type + "/" + this.dataset.folder + "?mode=none";
|
var url = baseurl + "/fbrowser/" + FileBrowser.type + "/" + this.dataset.folder + "?mode=none";
|
||||||
|
FileBrowser.folder = this.dataset.folder;
|
||||||
|
|
||||||
FileBrowser.loadContent(url);
|
FileBrowser.loadContent(url);
|
||||||
});
|
});
|
||||||
|
@ -134,7 +136,7 @@ var FileBrowser = {
|
||||||
this.dataset.filename,
|
this.dataset.filename,
|
||||||
embed,
|
embed,
|
||||||
FileBrowser.id,
|
FileBrowser.id,
|
||||||
this.dataset.img,
|
this.dataset.img
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Close model
|
// Close model
|
||||||
|
@ -157,9 +159,12 @@ var FileBrowser = {
|
||||||
// Initialize the AjaxUpload for the upload buttons
|
// Initialize the AjaxUpload for the upload buttons
|
||||||
uploadButtons: function() {
|
uploadButtons: function() {
|
||||||
if ($("#upload-image").length) {
|
if ($("#upload-image").length) {
|
||||||
|
// To get the albumname we need to convert it from hex
|
||||||
|
var albumname = hex2bin(FileBrowser.folder);
|
||||||
|
//AjaxUpload for images
|
||||||
var image_uploader = new window.AjaxUpload(
|
var image_uploader = new window.AjaxUpload(
|
||||||
'upload-image',
|
'upload-image',
|
||||||
{ action: 'wall_upload/'+FileBrowser.nickname+'?response=json',
|
{ action: 'wall_upload/'+FileBrowser.nickname+'?response=json&album=' + albumname,
|
||||||
name: 'userfile',
|
name: 'userfile',
|
||||||
responseType: 'json',
|
responseType: 'json',
|
||||||
onSubmit: function(file,ext) {
|
onSubmit: function(file,ext) {
|
||||||
|
@ -178,7 +183,7 @@ var FileBrowser = {
|
||||||
// location = baseurl + "/fbrowser/image/?mode=none"+location['hash'];
|
// location = baseurl + "/fbrowser/image/?mode=none"+location['hash'];
|
||||||
// location.reload(true);
|
// location.reload(true);
|
||||||
|
|
||||||
var url = baseurl + "/fbrowser/" + FileBrowser.type + "?mode=none"
|
var url = baseurl + "/fbrowser/" + FileBrowser.type + "/" + FileBrowser.folder + "?mode=none";
|
||||||
// load new content to fbrowser window
|
// load new content to fbrowser window
|
||||||
FileBrowser.loadContent(url);
|
FileBrowser.loadContent(url);
|
||||||
}
|
}
|
||||||
|
@ -187,9 +192,10 @@ var FileBrowser = {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($("#upload-file").length) {
|
if ($("#upload-file").length) {
|
||||||
|
//AjaxUpload for files
|
||||||
var file_uploader = new window.AjaxUpload(
|
var file_uploader = new window.AjaxUpload(
|
||||||
'upload-file',
|
'upload-file',
|
||||||
{ action: 'wall_attach/'+FileBrowser.nickname+'?response=json',
|
{ action: 'wall_attach/' + FileBrowser.nickname + '?response=json',
|
||||||
name: 'userfile',
|
name: 'userfile',
|
||||||
onSubmit: function(file,ext) {
|
onSubmit: function(file,ext) {
|
||||||
$(".fbrowser-content").hide();
|
$(".fbrowser-content").hide();
|
||||||
|
@ -207,15 +213,16 @@ var FileBrowser = {
|
||||||
// location = baseurl + "/fbrowser/file/?mode=none"+location['hash'];
|
// location = baseurl + "/fbrowser/file/?mode=none"+location['hash'];
|
||||||
// location.reload(true);
|
// location.reload(true);
|
||||||
|
|
||||||
var url = baseurl + "/fbrowser/" + FileBrowser.type + "?mode=none"
|
var url = baseurl + "/fbrowser/" + FileBrowser.type + "?mode=none";
|
||||||
// Load new content to fbrowser window
|
// Load new content to fbrowser window
|
||||||
FileBrowser.loadContent(url)
|
FileBrowser.loadContent(url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Stuff which should be executed if ne content was loaded
|
||||||
postLoad: function() {
|
postLoad: function() {
|
||||||
FileBrowser.initGallery();
|
FileBrowser.initGallery();
|
||||||
$(".fbrowser .fbswitcher .btn").removeClass("active");
|
$(".fbrowser .fbswitcher .btn").removeClass("active");
|
||||||
|
@ -225,6 +232,7 @@ var FileBrowser = {
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Load new content (e.g. change photo album)
|
||||||
loadContent: function(url) {
|
loadContent: function(url) {
|
||||||
$(".fbrowser-content").hide();
|
$(".fbrowser-content").hide();
|
||||||
$(".fbrowser .profile-rotator-wrapper").show();
|
$(".fbrowser .profile-rotator-wrapper").show();
|
||||||
|
@ -239,6 +247,7 @@ var FileBrowser = {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Initialize justified Gallery
|
||||||
initGallery: function() {
|
initGallery: function() {
|
||||||
$(".fbrowser.image .fbrowser-content-container").justifiedGallery({
|
$(".fbrowser.image .fbrowser-content-container").justifiedGallery({
|
||||||
'rowHeight': 80,
|
'rowHeight': 80,
|
||||||
|
|
|
@ -617,3 +617,53 @@ function htmlToText(htmlString) {
|
||||||
|
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Decodes a hexadecimally encoded binary string
|
||||||
|
function hex2bin (s) {
|
||||||
|
// discuss at: http://locutus.io/php/hex2bin/
|
||||||
|
// original by: Dumitru Uzun (http://duzun.me)
|
||||||
|
// example 1: hex2bin('44696d61')
|
||||||
|
// returns 1: 'Dima'
|
||||||
|
// example 2: hex2bin('00')
|
||||||
|
// returns 2: '\x00'
|
||||||
|
// example 3: hex2bin('2f1q')
|
||||||
|
// returns 3: false
|
||||||
|
var ret = [];
|
||||||
|
var i = 0;
|
||||||
|
var l;
|
||||||
|
s += '';
|
||||||
|
|
||||||
|
for (l = s.length; i < l; i += 2) {
|
||||||
|
var c = parseInt(s.substr(i, 1), 16);
|
||||||
|
var k = parseInt(s.substr(i + 1, 1), 16);
|
||||||
|
if (isNaN(c) || isNaN(k)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
ret.push((c << 4) | k);
|
||||||
|
}
|
||||||
|
return String.fromCharCode.apply(String, ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert binary data into hexadecimal representation
|
||||||
|
function bin2hex (s) {
|
||||||
|
// From: http://phpjs.org/functions
|
||||||
|
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
|
||||||
|
// + bugfixed by: Onno Marsman
|
||||||
|
// + bugfixed by: Linuxworld
|
||||||
|
// + improved by: ntoniazzi (http://phpjs.org/functions/bin2hex:361#comment_177616)
|
||||||
|
// * example 1: bin2hex('Kev');
|
||||||
|
// * returns 1: '4b6576'
|
||||||
|
// * example 2: bin2hex(String.fromCharCode(0x00));
|
||||||
|
// * returns 2: '00'
|
||||||
|
|
||||||
|
var i, l, o = "", n;
|
||||||
|
|
||||||
|
s += "";
|
||||||
|
|
||||||
|
for (i = 0, l = s.length; i < l; i++) {
|
||||||
|
n = s.charCodeAt(i).toString(16);
|
||||||
|
o += n.length < 2 ? "0" + n : n;
|
||||||
|
}
|
||||||
|
|
||||||
|
return o;
|
||||||
|
}
|
|
@ -16,8 +16,11 @@
|
||||||
<span></span> <a href="#" class='close'>X</a>
|
<span></span> <a href="#" class='close'>X</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{* The breadcrumb navigation *}}
|
||||||
<ol class="path breadcrumb">
|
<ol class="path breadcrumb">
|
||||||
{{foreach $path as $p}}<li><a href="#" data-folder="{{$p.0}}">{{$p.1}}</a></li>{{/foreach}}
|
{{foreach $path as $p}}<li><a href="#" data-folder="{{$p.0}}">{{$p.1}}</a></li>{{/foreach}}
|
||||||
|
|
||||||
|
{{* Switch between image and file mode *}}
|
||||||
<div class="fbswitcher btn-group btn-group-xs pull-right">
|
<div class="fbswitcher btn-group btn-group-xs pull-right">
|
||||||
<button type="button" class="btn btn-default" data-mode="image"><i class="fa fa-picture-o" aria-hidden="true"></i></button>
|
<button type="button" class="btn btn-default" data-mode="image"><i class="fa fa-picture-o" aria-hidden="true"></i></button>
|
||||||
<button type="button" class="btn btn-default" data-mode="file"><i class="fa fa-file-o" aria-hidden="true"></i></button>
|
<button type="button" class="btn btn-default" data-mode="file"><i class="fa fa-file-o" aria-hidden="true"></i></button>
|
||||||
|
@ -25,6 +28,8 @@
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<div class="media">
|
<div class="media">
|
||||||
|
|
||||||
|
{{* List of photo albums *}}
|
||||||
{{if $folders }}
|
{{if $folders }}
|
||||||
<div class="folders media-left">
|
<div class="folders media-left">
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -33,6 +38,7 @@
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
{{* The main content (images or files) *}}
|
||||||
<div class="list {{$type}} media-body">
|
<div class="list {{$type}} media-body">
|
||||||
<div class="fbrowser-content-container">
|
<div class="fbrowser-content-container">
|
||||||
{{foreach $files as $f}}
|
{{foreach $files as $f}}
|
||||||
|
@ -48,9 +54,11 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="upload">
|
<div class="upload">
|
||||||
<button id="upload-{{$type}}"><img id="profile-rotator" src="images/rotator.gif" alt="{{$wait}}" title="{{$wait|escape:'html'}}" style="display: none;" /> {{"Upload"|t}}</button>
|
<button id="upload-{{$type}}">{{"Upload"|t}}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{* This part contains the conent loader icon which is visible when new conent is loaded *}}
|
||||||
<div class="profile-rotator-wrapper" style="display: none;">
|
<div class="profile-rotator-wrapper" style="display: none;">
|
||||||
<i class="fa fa-circle-o-notch fa-spin" aria-hidden="true"></i>
|
<i class="fa fa-circle-o-notch fa-spin" aria-hidden="true"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue