filebrowser: massive improvements (fix https://github.com/rabuzarus/frio/issues/3 , integrate fbrowser into jot)
This commit is contained in:
parent
dceee050e7
commit
dab12f0b93
7 changed files with 246 additions and 125 deletions
|
@ -77,8 +77,13 @@ var FileBrowser = {
|
||||||
|
|
||||||
if (hash!=="") {
|
if (hash!=="") {
|
||||||
var h = hash.replace("#","");
|
var h = hash.replace("#","");
|
||||||
FileBrowser.event = FileBrowser.event + "." + h.split("-")[0];
|
var destination = h.split("-")[0];
|
||||||
FileBrowser.id = h.split("-")[1];
|
FileBrowser.id = h.split("-")[1];
|
||||||
|
FileBrowser.event = FileBrowser.event + "." + destination;
|
||||||
|
if (destination == "comment") {
|
||||||
|
// get the comment textimput field
|
||||||
|
var commentElm = document.getElementById("comment-edit-text-" + FileBrowser.id);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log("FileBrowser:", nickname, type,FileBrowser.event, FileBrowser.id );
|
console.log("FileBrowser:", nickname, type,FileBrowser.event, FileBrowser.id );
|
||||||
|
@ -90,16 +95,15 @@ var FileBrowser = {
|
||||||
|
|
||||||
$(".folders a, .path a").on("click", function(e){
|
$(".folders a, .path a").on("click", function(e){
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var url = baseurl + "/fbrowser/" + FileBrowser.type + "/" + this.dataset.folder + "?mode=modal"+ location['hash'];
|
var url = baseurl + "/fbrowser/" + FileBrowser.type + "/" + this.dataset.folder + "?mode=modal";
|
||||||
|
|
||||||
// load new content to modal
|
// load new content to fbrowser window
|
||||||
$('.modal-body').load(url,function(){
|
$(".fbrowser").load(url,function(){
|
||||||
$(function() {
|
$(function() {FileBrowser.init(nickname, type, hash);});
|
||||||
FileBrowser.init(nickname, type, hash);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//embed on click
|
||||||
$(".photo-album-photo-link").on('click', function(e){
|
$(".photo-album-photo-link").on('click', function(e){
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
|
@ -111,6 +115,21 @@ var FileBrowser = {
|
||||||
// attachment links are "baseurl/attach/id"; we need id
|
// attachment links are "baseurl/attach/id"; we need id
|
||||||
embed = "[attachment]"+this.dataset.link.split("/").pop()+"[/attachment]";
|
embed = "[attachment]"+this.dataset.link.split("/").pop()+"[/attachment]";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete prefilled Text of the comment input
|
||||||
|
// Note: not the best solution but function commentOpenUI don't
|
||||||
|
// work as expected (we need a way to wait until commentOpenUI would be finished).
|
||||||
|
// As for now we insert pieces of this function here
|
||||||
|
if ((commentElm !== null) && (typeof commentElm !== "undefined")) {
|
||||||
|
if (commentElm.value == aStr.comment){
|
||||||
|
commentElm.value = "";
|
||||||
|
$("#comment-edit-text-" + FileBrowser.id).addClass("comment-edit-text-full").removeClass("comment-edit-text-empty");
|
||||||
|
$("#comment-edit-submit-wrapper-" + FileBrowser.id).show();
|
||||||
|
$("#comment-edit-text-" + FileBrowser.id).attr('tabindex','9');
|
||||||
|
$("#comment-edit-submit-" + FileBrowser.id).attr('tabindex','10');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
console.log(FileBrowser.event, this.dataset.filename, embed, FileBrowser.id);
|
console.log(FileBrowser.event, this.dataset.filename, embed, FileBrowser.id);
|
||||||
parent.$("body").trigger(FileBrowser.event, [
|
parent.$("body").trigger(FileBrowser.event, [
|
||||||
this.dataset.filename,
|
this.dataset.filename,
|
||||||
|
@ -120,11 +139,10 @@ var FileBrowser = {
|
||||||
|
|
||||||
// close model
|
// close model
|
||||||
$('#modal').modal('hide');
|
$('#modal').modal('hide');
|
||||||
if (id!=="") {
|
// if (id!=="") {
|
||||||
$("#comment-edit-text-" + FileBrowser.id).empty();
|
// commentExpand(FileBrowser.id);
|
||||||
commentExpand(FileBrowser.id);
|
// //$("#comment-edit-text-558").empty();
|
||||||
//$("#comment-edit-text-558").empty();
|
// };
|
||||||
};
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -142,8 +160,14 @@ var FileBrowser = {
|
||||||
$('#profile-rotator').hide();
|
$('#profile-rotator').hide();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
location = baseurl + "/fbrowser/image/?mode=minimal"+location['hash'];
|
// location = baseurl + "/fbrowser/image/?mode=modal"+location['hash'];
|
||||||
location.reload(true);
|
// location.reload(true);
|
||||||
|
|
||||||
|
var url = baseurl + "/fbrowser/" + FileBrowser.type + "?mode=modal"
|
||||||
|
// load new content to fbrowser window
|
||||||
|
$(".fbrowser").load(url,function(){
|
||||||
|
$(function() {FileBrowser.init(nickname, type, hash);});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -161,11 +185,17 @@ var FileBrowser = {
|
||||||
$('#profile-rotator').hide();
|
$('#profile-rotator').hide();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
location = baseurl + "/fbrowser/file/?mode=minimal"+location['hash'];
|
// location = baseurl + "/fbrowser/file/?mode=modal"+location['hash'];
|
||||||
location.reload(true);
|
// location.reload(true);
|
||||||
|
|
||||||
|
var url = baseurl + "/fbrowser/" + FileBrowser.type + "?mode=modal"
|
||||||
|
// load new content to fbrowser window
|
||||||
|
$(".fbrowser").load(url,function(){
|
||||||
|
$(function() {FileBrowser.init(nickname, type, hash);});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
141
js/modal.js
141
js/modal.js
|
@ -1,15 +1,113 @@
|
||||||
/*
|
/*
|
||||||
* @brief contains functions for bootstrap modal handling
|
* @brief contains functions for bootstrap modal handling
|
||||||
*/
|
*/
|
||||||
|
$(document).ready(function(){
|
||||||
|
// Clear bs modal on close
|
||||||
|
// We need this to prevent that the modal displays old content
|
||||||
|
$('body, footer').on('hidden.bs.modal', '.modal', function () {
|
||||||
|
$(this).removeData('bs.modal');
|
||||||
|
$("#modal-title").empty();
|
||||||
|
$('#modal-body').empty();
|
||||||
|
// remove the file browser from jot (else we would have problems
|
||||||
|
// with ajaxupload
|
||||||
|
$(".fbrowser").remove();
|
||||||
|
});
|
||||||
|
|
||||||
// Clear bs modal on close
|
// Add Colorbox for viewing Network page images
|
||||||
// We need this to prevent that the modal displays old content
|
//var cBoxClasses = new Array();
|
||||||
$('body').on('hidden.bs.modal', '.modal', function () {
|
$(".wall-item-body a img").each(function(){
|
||||||
$(this).removeData('bs.modal');
|
var aElem = $(this).parent();
|
||||||
$("#modal-title").empty();
|
var imgHref = aElem.attr("href");
|
||||||
$('#modal-body').empty();
|
|
||||||
|
// We need to make sure we only put a Colorbox on links to Friendica images
|
||||||
|
// We'll try to do this by looking for links of the form
|
||||||
|
// .../photo/ab803d8eg08daf85023adfec08 (with nothing more following), in hopes
|
||||||
|
// that that will be unique enough
|
||||||
|
if(imgHref.match(/\/photo\/[a-fA-F0-9]+(-[0-9]\.[\w]+?)?$/)) {
|
||||||
|
|
||||||
|
// Add a unique class to all the images of a certain post, to allow scrolling through
|
||||||
|
var cBoxClass = $(this).closest(".wall-item-body").attr("id") + "-lightbox";
|
||||||
|
$(this).addClass(cBoxClass);
|
||||||
|
|
||||||
|
// if( $.inArray(cBoxClass, cBoxClasses) < 0 ) {
|
||||||
|
// cBoxClasses.push(cBoxClass);
|
||||||
|
// }
|
||||||
|
|
||||||
|
aElem.colorbox({
|
||||||
|
maxHeight: '90%',
|
||||||
|
photo: true, // Colorbox doesn't recognize a URL that don't end in .jpg, etc. as a photo
|
||||||
|
rel: cBoxClass //$(this).attr("class").match(/wall-item-body-[\d]+-lightbox/)[0]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Jot nav menu.
|
||||||
|
$("body").on("click", "#jot-modal .jot-nav li a", function(e){
|
||||||
|
e.preventDefault();
|
||||||
|
toggleJotNav(this);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// overwrite Dialog.show from main js to load the filebrowser into a bs modal
|
||||||
|
Dialog.show = function(url) {
|
||||||
|
var modal = $('#modal').modal();
|
||||||
|
modal
|
||||||
|
.find('#modal-body')
|
||||||
|
.load(url, function (responseText, textStatus) {
|
||||||
|
if ( textStatus === 'success' ||
|
||||||
|
textStatus === 'notmodified')
|
||||||
|
{
|
||||||
|
modal.show();
|
||||||
|
|
||||||
|
$(function() {Dialog._load(url);});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// overwrite the function _get_url from main.js
|
||||||
|
Dialog._get_url = function(type, name, id) {
|
||||||
|
var hash = name;
|
||||||
|
if (id !== undefined) hash = hash + "-" + id;
|
||||||
|
return "fbrowser/"+type+"/?mode=modal#"+hash;
|
||||||
|
};
|
||||||
|
|
||||||
|
// does load the filebrowser into the jot modal
|
||||||
|
Dialog.showJot = function() {
|
||||||
|
var type = "image";
|
||||||
|
var name = "main";
|
||||||
|
|
||||||
|
var url = Dialog._get_url(type, name);
|
||||||
|
if(($(".modal-body #jot-fbrowser-wrapper .fbrowser").length) < 1 ) {
|
||||||
|
// load new content to fbrowser window
|
||||||
|
$("#jot-fbrowser-wrapper").load(url,function(responseText, textStatus){
|
||||||
|
if ( textStatus === 'success' ||
|
||||||
|
textStatus === 'notmodified')
|
||||||
|
{
|
||||||
|
$(function() {Dialog._load(url);});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// init the filebrowser after page load
|
||||||
|
Dialog._load = function(url) {
|
||||||
|
// get nickname & filebrowser type from the modal content
|
||||||
|
var nickname = $("#fb-nickname").attr("value");
|
||||||
|
var type = $("#fb-type").attr("value");
|
||||||
|
|
||||||
|
// try to fetch the hash form the url
|
||||||
|
var match = url.match(/fbrowser\/[a-z]+\/\?mode=modal(.*)/);
|
||||||
|
var hash = match[1];
|
||||||
|
|
||||||
|
// initialize the filebrowser
|
||||||
|
var jsbrowser = function() {
|
||||||
|
FileBrowser.init(nickname, type, hash);
|
||||||
|
}
|
||||||
|
loadScript("view/theme/frio/js/filebrowser.js", jsbrowser);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Add first h3 element as modal title
|
* @brief Add first h3 element as modal title
|
||||||
*
|
*
|
||||||
|
@ -33,7 +131,8 @@ function loadModalTitle() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This function loads html content from a friendica page
|
||||||
|
// into a modal
|
||||||
function addToModal(url) {
|
function addToModal(url) {
|
||||||
var char = qOrAmp(url);
|
var char = qOrAmp(url);
|
||||||
|
|
||||||
|
@ -54,11 +153,13 @@ function addToModal(url) {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// function to load the html from the edit post page into
|
||||||
|
// the jot modal
|
||||||
function editpost(url) {
|
function editpost(url) {
|
||||||
var modal = $('#jot-modal').modal();
|
var modal = $('#jot-modal').modal();
|
||||||
var url = url + " #profile-jot-form";
|
var url = url + " #profile-jot-form";
|
||||||
//var rand_num = random_digits(12);
|
//var rand_num = random_digits(12);
|
||||||
$("#jot-perms-lnk").hide();
|
$(".jot-nav #jot-perms-lnk").parent("li").hide();
|
||||||
|
|
||||||
// rename the the original div jot-preview-content because the edit function
|
// rename the the original div jot-preview-content because the edit function
|
||||||
// does load the content for the modal from another source and preview won't work
|
// does load the content for the modal from another source and preview won't work
|
||||||
|
@ -97,22 +198,23 @@ function editpost(url) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// remove content from the jot modal
|
||||||
function jotreset() {
|
function jotreset() {
|
||||||
// Clear bs modal on close
|
// Clear bs modal on close
|
||||||
// We need this to prevent that the modal displays old content
|
// We need this to prevent that the modal displays old content
|
||||||
$('body').on('hidden.bs.modal', '#jot-modal', function () {
|
$('body').on('hidden.bs.modal', '#jot-modal', function () {
|
||||||
$(this).removeData('bs.modal');
|
$(this).removeData('bs.modal');
|
||||||
$("#jot-perms-lnk").show();
|
$(".jot-nav #jot-perms-lnk").parent("li").show();
|
||||||
$("#profile-jot-form #jot-title-wrap").show();
|
$("#profile-jot-form #jot-title-wrap").show();
|
||||||
$("#profile-jot-form #jot-category-wrap").show();
|
$("#profile-jot-form #jot-category-wrap").show();
|
||||||
|
|
||||||
// the following was commented out because it is needed anymore
|
// the following was commented out because it is needed anymore
|
||||||
// because we changed the behavior at an other place
|
// because we changed the behavior at an other place
|
||||||
// var rand_num = random_digits(12);
|
// var rand_num = random_digits(12);
|
||||||
// $('#jot-title, #jot-category, #profile-jot-text').val("");
|
// $('#jot-title, #jot-category, #profile-jot-text').val("");
|
||||||
// $( "#profile-jot-form input[name='type']" ).val("wall");
|
// $( "#profile-jot-form input[name='type']" ).val("wall");
|
||||||
// $( "#profile-jot-form input[name='post_id']" ).val("");
|
// $( "#profile-jot-form input[name='post_id']" ).val("");
|
||||||
// $( "#profile-jot-form input[name='post_id_random']" ).val(rand_num);
|
// $( "#profile-jot-form input[name='post_id_random']" ).val(rand_num);
|
||||||
$("#jot-modal-body").empty();
|
$("#jot-modal-body").empty();
|
||||||
|
|
||||||
// rename the div #jot-preview-content-renamed back to it's original
|
// rename the div #jot-preview-content-renamed back to it's original
|
||||||
|
@ -123,5 +225,14 @@ function jotreset() {
|
||||||
// Move the original jot back to it's old place in the html structure
|
// Move the original jot back to it's old place in the html structure
|
||||||
// For explaination have a look at function editpost()
|
// For explaination have a look at function editpost()
|
||||||
$("footer #cache-container #profile-jot-form").appendTo("section #jot-content");
|
$("footer #cache-container #profile-jot-form").appendTo("section #jot-content");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Give the active "jot-nav" list element the class "active"
|
||||||
|
function toggleJotNav (elm) {
|
||||||
|
// select all li of jot-nav and remove the active class
|
||||||
|
$(elm).closest(".jot-nav").children("li").removeClass("active");
|
||||||
|
// add the active class to the parent of the link which was selected
|
||||||
|
$(elm).parent("li").addClass("active");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,6 @@ function hideThread(id) {
|
||||||
$("#collapsed-comments-" + id + " .collapsed-comments").hide()
|
$("#collapsed-comments-" + id + " .collapsed-comments").hide()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function cmtBbOpen(id) {
|
function cmtBbOpen(id) {
|
||||||
$("#comment-edit-bb-" + id).show();
|
$("#comment-edit-bb-" + id).show();
|
||||||
}
|
}
|
||||||
|
@ -115,6 +114,24 @@ function commentCloseUI(obj, id) {
|
||||||
|
|
||||||
$(document).bind( "click.commentClose", handler );
|
$(document).bind( "click.commentClose", handler );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// test if there is default content in the jot text box and remove it
|
||||||
|
function jotTextOpenUI(obj) {
|
||||||
|
if(obj.value == aStr.share) {
|
||||||
|
obj.value = '';
|
||||||
|
$(".modal-body #profile-jot-text").addClass("profile-jot-text-full").removeClass("profile-jot-text-empty");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// insert default content into the jot text box
|
||||||
|
// if it's empty
|
||||||
|
function jotTextCloseUI(obj) {
|
||||||
|
if(obj.value === '') {
|
||||||
|
obj.value = aStr.share;
|
||||||
|
$(".modal-body #profile-jot-text").removeClass("profile-jot-text-full").addClass("profile-jot-text-empty");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function commentOpen(obj,id) {
|
function commentOpen(obj,id) {
|
||||||
if(obj.value == aStr.comment) {
|
if(obj.value == aStr.comment) {
|
||||||
obj.value = '';
|
obj.value = '';
|
||||||
|
|
63
js/theme.js
63
js/theme.js
|
@ -89,69 +89,6 @@ $(document).ready(function(){
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Add Colorbox for viewing Network page images
|
|
||||||
//var cBoxClasses = new Array();
|
|
||||||
$(".wall-item-body a img").each(function(){
|
|
||||||
var aElem = $(this).parent();
|
|
||||||
var imgHref = aElem.attr("href");
|
|
||||||
|
|
||||||
// We need to make sure we only put a Colorbox on links to Friendica images
|
|
||||||
// We'll try to do this by looking for links of the form
|
|
||||||
// .../photo/ab803d8eg08daf85023adfec08 (with nothing more following), in hopes
|
|
||||||
// that that will be unique enough
|
|
||||||
if(imgHref.match(/\/photo\/[a-fA-F0-9]+(-[0-9]\.[\w]+?)?$/)) {
|
|
||||||
|
|
||||||
// Add a unique class to all the images of a certain post, to allow scrolling through
|
|
||||||
var cBoxClass = $(this).closest(".wall-item-body").attr("id") + "-lightbox";
|
|
||||||
$(this).addClass(cBoxClass);
|
|
||||||
|
|
||||||
// if( $.inArray(cBoxClass, cBoxClasses) < 0 ) {
|
|
||||||
// cBoxClasses.push(cBoxClass);
|
|
||||||
// }
|
|
||||||
|
|
||||||
aElem.colorbox({
|
|
||||||
maxHeight: '90%',
|
|
||||||
photo: true, // Colorbox doesn't recognize a URL that don't end in .jpg, etc. as a photo
|
|
||||||
rel: cBoxClass //$(this).attr("class").match(/wall-item-body-[\d]+-lightbox/)[0]
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// overwrite Dialog.show from main js to load the filebrowser into a bs modal
|
|
||||||
Dialog.show = function(url) {
|
|
||||||
var modal = $('#modal').modal();
|
|
||||||
modal
|
|
||||||
.find('#modal-body')
|
|
||||||
.load(url, function (responseText, textStatus) {
|
|
||||||
if ( textStatus === 'success' ||
|
|
||||||
textStatus === 'notmodified')
|
|
||||||
{
|
|
||||||
modal.show();
|
|
||||||
|
|
||||||
// get nickname & filebrowser type from the modal content
|
|
||||||
var nickname = $("#fb-nickname").attr("value");
|
|
||||||
var type = $("#fb-type").attr("value");
|
|
||||||
|
|
||||||
// try to fetch the hash form the url
|
|
||||||
var match = url.match(/fbrowser\/[a-z]+\/\?mode=modal(.*)/);
|
|
||||||
var hash = match[1];
|
|
||||||
|
|
||||||
// initialize the filebrowser
|
|
||||||
var jsbrowser = function() {
|
|
||||||
FileBrowser.init(nickname, type, hash);
|
|
||||||
}
|
|
||||||
loadScript("view/theme/frio/js/filebrowser.js", jsbrowser);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
// overwrite the function _get_url from main.js
|
|
||||||
Dialog._get_url = function(type, name, id) {
|
|
||||||
var hash = name;
|
|
||||||
if (id !== undefined) hash = hash + "-" + id;
|
|
||||||
return "fbrowser/"+type+"/?mode=modal#"+hash;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
//function commentOpenUI(obj, id) {
|
//function commentOpenUI(obj, id) {
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
<style>
|
<style>
|
||||||
#buglink_wrapper{display:none;} /* hide buglink. only in this page */
|
#buglink_wrapper{display:none;} /* hide buglink. only in this page */
|
||||||
</style>
|
</style>
|
||||||
<script type="text/javascript" src="{{$baseurl}}/js/ajaxupload.js" ></script>
|
{{*<script type="text/javascript" src="{{$baseurl}}/js/ajaxupload.js" ></script>*}}
|
||||||
{{**<script type="text/javascript" src="view/theme/frio/js/filebrowser.js"></script>*}}
|
{{*<script type="text/javascript" src="view/theme/frio/js/filebrowser.js"></script>*}}
|
||||||
|
|
||||||
<div class="fbrowser {{$type}}">
|
<div class="fbrowser {{$type}}">
|
||||||
<input id="fb-nickname" type="hidden" name="type" value="{{$nickname}}" />
|
<input id="fb-nickname" type="hidden" name="type" value="{{$nickname}}" />
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
|
|
||||||
|
|
||||||
<script language="javascript" type="text/javascript">
|
{{*<script language="javascript" type="text/javascript">*}}
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
var editor=false;
|
var editor=false;
|
||||||
var textlen = 0;
|
var textlen = 0;
|
||||||
var plaintext = '{{$editselect}}';
|
var plaintext = '{{$editselect}}';
|
||||||
|
@ -11,7 +13,7 @@ function initEditor(cb){
|
||||||
$("#profile-jot-text-loading").show();
|
$("#profile-jot-text-loading").show();
|
||||||
if(plaintext == 'none') {
|
if(plaintext == 'none') {
|
||||||
$("#profile-jot-text-loading").hide();
|
$("#profile-jot-text-loading").hide();
|
||||||
$("#profile-jot-text").addClass("profile-jot-text-full").removeClass("profile-jot-text-empty");
|
//$("#profile-jot-text").addClass("profile-jot-text-full").removeClass("profile-jot-text-empty");
|
||||||
$("#jot-category").show();
|
$("#jot-category").show();
|
||||||
$("#jot-category").addClass("jot-category-ex");
|
$("#jot-category").addClass("jot-category-ex");
|
||||||
$("#jot-profile-jot-wrapper").show();
|
$("#jot-profile-jot-wrapper").show();
|
||||||
|
@ -108,13 +110,16 @@ function initEditor(cb){
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
editor = true;
|
editor = true;
|
||||||
|
|
||||||
// setup acl popup
|
// setup acl popup
|
||||||
$("a#jot-perms-icon").colorbox({
|
$("a#jot-perms-icon").colorbox({
|
||||||
'inline' : true,
|
'inline' : true,
|
||||||
'transition' : 'elastic'
|
'transition' : 'elastic'
|
||||||
});
|
});
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (typeof cb!="undefined") cb();
|
if (typeof cb!="undefined") cb();
|
||||||
}
|
}
|
||||||
|
@ -150,20 +155,25 @@ function enableOnUser(){
|
||||||
|
|
||||||
/* callback */
|
/* callback */
|
||||||
$('body').on('fbrowser.image.main', function(e, filename, embedcode, id) {
|
$('body').on('fbrowser.image.main', function(e, filename, embedcode, id) {
|
||||||
$.colorbox.close();
|
///@todo this part isn't ideal and need to be done in a better way
|
||||||
|
jotTextOpenUI(document.getElementById("profile-jot-text"));
|
||||||
|
jotActive();
|
||||||
addeditortext(embedcode);
|
addeditortext(embedcode);
|
||||||
});
|
});
|
||||||
$('body').on('fbrowser.file.main', function(e, filename, embedcode, id) {
|
$('body').on('fbrowser.file.main', function(e, filename, embedcode, id) {
|
||||||
$.colorbox.close();
|
jotTextOpenUI(document.getElementById("profile-jot-text"));
|
||||||
|
jotActive();
|
||||||
addeditortext(embedcode);
|
addeditortext(embedcode);
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#wall-image-upload').on('click', function(){
|
$('#wall-image-upload').on('click', function(){
|
||||||
Dialog.doImageBrowser("main");
|
Dialog.doImageBrowser("main");
|
||||||
|
jotActive();
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#wall-file-upload').on('click', function(){
|
$('#wall-file-upload').on('click', function(){
|
||||||
Dialog.doFileBrowser("main");
|
Dialog.doFileBrowser("main");
|
||||||
|
jotActive();
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -388,24 +398,32 @@ function enableOnUser(){
|
||||||
// the following functions show/hide the specific jot content
|
// the following functions show/hide the specific jot content
|
||||||
// in dependence of the selected nav
|
// in dependence of the selected nav
|
||||||
function aclActive() {
|
function aclActive() {
|
||||||
$(".modal-body #profile-jot-wrapper, .modal-body #jot-preview-content").hide();
|
$(".modal-body #profile-jot-wrapper, .modal-body #jot-preview-content, .modal-body #jot-fbrowser-wrapper").hide();
|
||||||
$(".modal-body #profile-jot-acl-wrapper").show();
|
$(".modal-body #profile-jot-acl-wrapper").show();
|
||||||
$("#jot-text-lnk, #jot-preview-lnk").parent("li").removeClass("active");
|
}
|
||||||
$("#jot-perms-lnk").parent("li").addClass("active");
|
|
||||||
|
|
||||||
|
function previewActive() {
|
||||||
|
$(".modal-body #profile-jot-wrapper, .modal-body #profile-jot-acl-wrapper,.modal-body #jot-fbrowser-wrapper").hide();
|
||||||
|
preview_post();
|
||||||
}
|
}
|
||||||
|
|
||||||
function jotActive() {
|
function jotActive() {
|
||||||
$(".modal-body #profile-jot-acl-wrapper, .modal-body #jot-preview-content").hide();
|
$(".modal-body #profile-jot-acl-wrapper, .modal-body #jot-preview-content, .modal-body #jot-fbrowser-wrapper").hide();
|
||||||
$(".modal-body #profile-jot-wrapper").show();
|
$(".modal-body #profile-jot-wrapper").show();
|
||||||
$("#jot-perms-lnk, #jot-preview-lnk").parent("li").removeClass("active");
|
|
||||||
$("#jot-text-lnk").parent("li").addClass("active");
|
//make sure jot text does have really the active class (we do this because there are some
|
||||||
|
// other events which trigger jot text
|
||||||
|
toggleJotNav($("#jot-modal .jot-nav #jot-text-lnk"));
|
||||||
}
|
}
|
||||||
|
|
||||||
function previewActive() {
|
function fbrowserActive() {
|
||||||
$(".modal-body #profile-jot-wrapper, .modal-body #profile-jot-acl-wrapper").hide();
|
$(".modal-body #profile-jot-wrapper, .modal-body #jot-preview-content, .modal-body #profile-jot-acl-wrapper").hide();
|
||||||
$("#jot-text-lnk, #jot-perms-lnk").parent("li").removeClass("active");
|
|
||||||
$("#jot-preview-lnk").parent("li").addClass("active");
|
$(".modal-body #jot-fbrowser-wrapper").show();
|
||||||
preview_post();
|
|
||||||
|
$(function() {Dialog.showJot();});
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -3,9 +3,6 @@
|
||||||
<button class="btn btn-sm btn-main pull-right" id="jotOpen" onclick="jotShow(); return false;"><i class="fa fa-pencil-square-o fa-2x"></i></button>
|
<button class="btn btn-sm btn-main pull-right" id="jotOpen" onclick="jotShow(); return false;"><i class="fa fa-pencil-square-o fa-2x"></i></button>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="jot-content">
|
<div id="jot-content">
|
||||||
<form id="profile-jot-form" action="{{$action}}" method="post">
|
<form id="profile-jot-form" action="{{$action}}" method="post">
|
||||||
<div id="profile-jot-wrapper">
|
<div id="profile-jot-wrapper">
|
||||||
|
@ -35,16 +32,18 @@
|
||||||
|
|
||||||
{{* The jot text field in which the post text is inserted *}}
|
{{* The jot text field in which the post text is inserted *}}
|
||||||
<div id="jot-text-wrap">
|
<div id="jot-text-wrap">
|
||||||
<textarea rows="2" cols="64" class="profile-jot-text form-control" id="profile-jot-text" name="body" style="min-width:100%; max-width:100%;">{{if $content}}{{$content}}{{else}}{{$share}}{{/if}}</textarea>
|
<textarea rows="2" cols="64" class="profile-jot-text form-control" id="profile-jot-text" name="body" onFocus="jotTextOpenUI(this);" onBlur="jotTextCloseUI(this);" style="min-width:100%; max-width:100%;">{{if $content}}{{$content}}{{else}}{{$share}}{{/if}}</textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ul id="profile-jot-submit-wrapper" class="jothidden nav nav-pills">
|
<ul id="profile-jot-submit-wrapper" class="jothidden nav nav-pills">
|
||||||
<li><a id="profile-location" onclick="jotGetLocation();return false;" title="{{$setloc}}"><i class="fa fa-map-marker"></i></a></li>
|
{{* uncomment the button for "wall-immage-upload" because we have integrated it directly in the jot modal
|
||||||
<li><a href="#" id="wall-image-upload" title="{{$upload}}" data-toggle="modal" data-target="#PhotoModal"><i class="fa fa-picture-o"></i></a></li>
|
<li><a href="#" id="wall-image-upload" title="{{$upload}}"><i class="fa fa-picture-o"></i></a></li>
|
||||||
|
*}}
|
||||||
<li><a href="#" onclick="return false;" id="wall-file-upload" title="{{$attach}}"><i class="fa fa-paperclip"></i></a></li>
|
<li><a href="#" onclick="return false;" id="wall-file-upload" title="{{$attach}}"><i class="fa fa-paperclip"></i></a></li>
|
||||||
<li><a id="profile-link" ondragenter="return linkdropper(event);" ondragover="return linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink(); return false;" title="{{$weblink}}"><i class="fa fa-link"></i></a></li>
|
<li><a id="profile-link" ondragenter="return linkdropper(event);" ondragover="return linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink(); return false;" title="{{$weblink}}"><i class="fa fa-link"></i></a></li>
|
||||||
<li><a id="profile-video" onclick="jotVideoURL();return false;" title="{{$video}}"><i class="fa fa-film"></i></a></li>
|
<li><a id="profile-video" onclick="jotVideoURL();return false;" title="{{$video}}"><i class="fa fa-film"></i></a></li>
|
||||||
<li><a id="profile-audio" onclick="jotAudioURL();return false;" title="{{$audio}}"><i class="fa fa-music"></i></a></li>
|
<li><a id="profile-audio" onclick="jotAudioURL();return false;" title="{{$audio}}"><i class="fa fa-music"></i></a></li>
|
||||||
|
<li><a id="profile-location" onclick="jotGetLocation();return false;" title="{{$setloc}}"><i class="fa fa-map-marker"></i></a></li>
|
||||||
<!-- TODO: waiting for a better placement
|
<!-- TODO: waiting for a better placement
|
||||||
<li><a id="profile-nolocation" onclick="jotClearLocation();return false;" title="{{$noloc}}">{{$shortnoloc}}</a></li>
|
<li><a id="profile-nolocation" onclick="jotClearLocation();return false;" title="{{$noloc}}">{{$shortnoloc}}</a></li>
|
||||||
-->
|
-->
|
||||||
|
@ -65,6 +64,8 @@
|
||||||
|
|
||||||
<div id="jot-preview-content" style="display:none;"></div>
|
<div id="jot-preview-content" style="display:none;"></div>
|
||||||
|
|
||||||
|
<div id="jot-fbrowser-wrapper" style="display: none"></div>
|
||||||
|
|
||||||
{{if $content}}<script>initEditor();</script>{{/if}}
|
{{if $content}}<script>initEditor();</script>{{/if}}
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -78,12 +79,14 @@
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||||
<!--<h4 class="modal-title">Modal Header</h4>-->
|
<!--<h4 class="modal-title">Modal Header</h4>-->
|
||||||
<ul class="nav nav-tabs hidden-xs" role="menubar" data-tabs="tabs">
|
{{* The Jot navigation menu (text input, permissions, preview, filebrowser) *}}
|
||||||
{{* mark the first list entry as active because it is the first which is active after opening
|
<ul class="nav nav-tabs hidden-xs jot-nav" role="menubar" data-tabs="tabs">
|
||||||
|
{{* Mark the first list entry as active because it is the first which is active after opening
|
||||||
the modal. Changing of the activity status is done by js in jot.tpl-header *}}
|
the modal. Changing of the activity status is done by js in jot.tpl-header *}}
|
||||||
<li class="active" role="menuitem"><a id="jot-text-lnk" onclick="jotActive(); return false;">Text</a></li>
|
<li class="active" role="menuitem"><a id="jot-text-lnk" onclick="jotActive(); return false;">Text</a></li>
|
||||||
{{if $acl}}<li role="menuitem"><a id="jot-perms-lnk" onclick="aclActive();return false;">Permissions</a></li>{{/if}}
|
{{if $acl}}<li role="menuitem"><a id="jot-perms-lnk" onclick="aclActive();return false;">Permissions</a></li>{{/if}}
|
||||||
<li role="menuitem"><a id="jot-preview-lnk" onclick="previewActive();return false;">{{$preview}}</a></li>
|
<li role="menuitem"><a id="jot-preview-lnk" onclick="previewActive();return false;">{{$preview}}</a></li>
|
||||||
|
<li role="menuitem"><a id="jot-preview-link" onclick="fbrowserActive(); return false;"> Browser </a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="dropdown hidden-lg hidden-md hidden-sm" role="menubar" data-tabs="tabs">
|
<div class="dropdown hidden-lg hidden-md hidden-sm" role="menubar" data-tabs="tabs">
|
||||||
|
@ -111,7 +114,12 @@
|
||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
$('iframe').load(function() {
|
$('iframe').load(function() {
|
||||||
this.style.height = this.contentWindow.document.body.offsetHeight + 'px';
|
this.style.height = this.contentWindow.document.body.offsetHeight + 'px';
|
||||||
});
|
});
|
||||||
</script>
|
|
||||||
|
// insert new object with value to aStr
|
||||||
|
// function jotTextOpenUI does make use of it
|
||||||
|
aStr.share = "{{$share}}";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue