<script type="text/javascript" src="{{$baseurl}}/view/js/ajaxupload.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script> <script type="text/javascript" src="{{$baseurl}}/view/js/linkPreview.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script> <script type="text/javascript" src="{{$baseurl}}/view/theme/frio/js/jot.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script> <script type="text/javascript"> var editor = false; var textlen = 0; function initEditor(callback) { if (editor == false) { $("#profile-jot-text-loading").show(); $("#profile-jot-text-loading").hide(); //$("#profile-jot-text").addClass("profile-jot-text-full").removeClass("profile-jot-text-empty"); $("#jot-category").show(); $("#jot-category").addClass("jot-category-ex"); $("#jot-profile-jot-wrapper").show(); $("#profile-jot-text").editor_autocomplete(baseurl + '/search/acl'); $("#profile-jot-text").bbco_autocomplete('bbcode'); $("a#jot-perms-icon").colorbox({ 'inline' : true, 'transition' : 'elastic' }); $(".jothidden").show(); $("#profile-jot-text").keyup(function(){ var textlen = $(this).val().length; $('#character-counter').text(textlen); }); editor = true; } if (typeof callback != "undefined") { callback(); } } function enableOnUser(){ initEditor(); } </script> <script type="text/javascript"> var ispublic = '{{$ispublic nofilter}}'; aStr.linkurl = '{{$linkurl}}'; $(document).ready(function() { /* enable editor on focus and click */ $("#profile-jot-text").focus(enableOnUser); $("#profile-jot-text").click(enableOnUser); // When clicking on a forum in acl we should remove the profile jot textarea // default value before inserting the forum mention $("body").on('click', '#jot-modal .acl-list-item.forum', function(){ jotTextOpenUI(document.getElementById("profile-jot-text")); }); /* show images / file browser window * **/ /* callback */ $('body').on('fbrowser.image.main', function(e, filename, embedcode, id) { ///@todo this part isn't ideal and need to be done in a better way jotTextOpenUI(document.getElementById("profile-jot-text")); jotActive(); addeditortext(embedcode); }) .on('fbrowser.file.main', function(e, filename, embedcode, id) { jotTextOpenUI(document.getElementById("profile-jot-text")); jotActive(); addeditortext(embedcode); }) // Asynchronous jot submission .on('submit', '#profile-jot-form', function (e) { e.preventDefault(); // Disable jot submit buttons during processing let $share = $('#profile-jot-submit').button('loading'); let $sharePreview = $('#profile-jot-preview-submit').button('loading'); let formData = new FormData(e.target); // This cancels the automatic redirection after item submission formData.delete('return'); $.ajax({ url: 'item', data: formData, processData: false, contentType: false, type: 'POST', }) .then(function () { // Reset to form for jot reuse in the same page e.target.reset(); $('#jot-modal').modal('hide'); }) .always(function() { // Reset the post_id_random to avoid duplicate post errors let new_post_id_random = Math.floor(Math.random() * (Number.MAX_SAFE_INTEGER - (Number.MAX_SAFE_INTEGER / 10))) + Number.MAX_SAFE_INTEGER / 10; $('#profile-jot-form [name=post_id_random]').val(new_post_id_random); // Reset jot submit button state $share.button('reset'); $sharePreview.button('reset'); // Force the display update of the edited post/comment if (formData.get('post_id')) { force_update = true; update_item = formData.get('post_id'); } NavUpdate(); }) }); $('#wall-image-upload').on('click', function(){ Dialog.doImageBrowser("main"); jotActive(); }); $('#wall-file-upload').on('click', function(){ Dialog.doFileBrowser("main"); jotActive(); }); $('body').on('click', '.p-category .filerm', function(e){ e.preventDefault(); let $href = $(e.target).attr('href'); // Prevents arbitrary Ajax requests if ($href.substr(0, 7) === 'filerm/') { $(e.target).parent().removeClass('btn-success btn-danger'); $.post($href) .done(function() { liking = 1; force_update = true; }) .always(function () { NavUpdate(); }); } }); }); function deleteCheckedItems() { if(confirm('{{$delitems}}')) { var checkedstr = ''; var ItemsToDelete = {}; $("#item-delete-selected").hide(); $('#item-delete-selected-rotator').show(); $('body').css('cursor', 'wait'); $('.item-select').each( function() { if($(this).is(':checked')) { if(checkedstr.length != 0) { checkedstr = checkedstr + ',' + $(this).val(); var deleteItem = this.closest(".wall-item-container"); ItemsToDelete[deleteItem.id] = deleteItem; } else { checkedstr = $(this).val(); } // Get the corresponding item container var deleteItem = this.closest(".wall-item-container"); ItemsToDelete[deleteItem.id] = deleteItem; } }); // Fade the the the container from the items we want to delete for(var key in ItemsToDelete) { $(ItemsToDelete[key]).fadeTo('fast', 0.33); }; $.post('item', { dropitems: checkedstr }, function(data) { }).done(function() { // Loop through the ItemsToDelete Object and remove // corresponding item div for(var key in ItemsToDelete) { $(ItemsToDelete[key]).remove(); } $('body').css('cursor', 'auto'); $('#item-delete-selected-rotator').hide(); }); } } function jotVideoURL() { reply = prompt("{{$vidurl}}"); if(reply && reply.length) { addeditortext('[video]' + reply + '[/video]'); } } function jotAudioURL() { reply = prompt("{{$audurl}}"); if(reply && reply.length) { addeditortext('[audio]' + reply + '[/audio]'); } } function jotGetLocation() { reply = prompt("{{$whereareu}}", $('#jot-location').val()); if(reply && reply.length) { $('#jot-location').val(reply); } } function jotShare(id) { $.get('post/' + id + '/share', function(data) { // remove the former content of the text input $("#profile-jot-text").val(""); initEditor(function(){ addeditortext(data); }); }); jotShow(); $("#jot-popup").show(); } function linkDropper(event) { var linkFound = event.dataTransfer.types.contains("text/uri-list"); if(linkFound) event.preventDefault(); } function linkDrop(event) { var reply = event.dataTransfer.getData("text/uri-list"); var noAttachment = ''; event.target.textContent = reply; event.preventDefault(); if(reply && reply.length) { reply = bin2hex(reply); $('#profile-rotator').show(); if (currentText.includes("[attachment") && currentText.includes("[/attachment]")) { noAttachment = '&noAttachment=1'; } $.get('parseurl?binurl=' + reply + noAttachment, function(data) { if (!editor) $("#profile-jot-text").val(""); initEditor(function(){ addeditortext(data); $('#profile-rotator').hide(); }); }); autosize.update($("#profile-jot-text")); } } function itemTag(id) { reply = prompt("{{$term}}"); if(reply && reply.length) { reply = reply.replace('#',''); if(reply.length) { commentBusy = true; $('body').css('cursor', 'wait'); $.post('post/' + id + '/tag/add', {term: reply}); if(timer) clearTimeout(timer); timer = setTimeout(NavUpdate,3000); liking = 1; } } } function itemFiler(id) { var bordercolor = $("input").css("border-color"); $.get('filer/', function(data){ $.colorbox({html:data}); $("#id_term").keypress(function(){ $(this).css("border-color",bordercolor); }) $("#select_term").change(function(){ $("#id_term").css("border-color",bordercolor); }) $("#filer_save").click(function(e){ e.preventDefault(); reply = $("#id_term").val(); if(reply && reply.length) { commentBusy = true; $('body').css('cursor', 'wait'); $.get('filer/' + id + '?term=' + reply, NavUpdate); // if(timer) clearTimeout(timer); // timer = setTimeout(NavUpdate,3000); liking = 1; force_update = true; $.colorbox.close(); } else { $("#id_term").css("border-color","#FF0000"); } return false; }); }); } function jotClearLocation() { $('#jot-coord').val(''); $('#profile-nolocation-wrapper').hide(); } function addeditortext(data) { // get the textfield var textfield = document.getElementById("profile-jot-text"); // check if the textfield does have the default-value jotTextOpenUI(textfield); // save already existent content var currentText = $("#profile-jot-text").val(); //insert the data as new value textfield.value = currentText + data; autosize.update($("#profile-jot-text")); } {{$geotag nofilter}} function jotShow() { var modal = $('#jot-modal').modal(); jotcache = $("#jot-sections"); // Auto focus on the first enabled field in the modal modal.on('shown.bs.modal', function (e) { $('#jot-modal-content').find('select:not([disabled]), input:not([type=hidden]):not([disabled]), textarea:not([disabled])').first().focus(); }) modal .find('#jot-modal-content') .append(jotcache) .modal.show; // Jot attachment live preview. linkPreview = $('#profile-jot-text').linkPreview(); } // Activate the jot text section in the jot modal function jotActive() { // Make sure jot text does have really the active class (we do this because there are some // other events which trigger jot text (we need to do this for the desktop and mobile // jot nav var elem = $("#jot-modal .jot-nav #jot-text-lnk"); var elemMobile = $("#jot-modal .jot-nav #jot-text-lnk-mobile") toggleJotNav(elem[0]); toggleJotNav(elemMobile[0]); } </script>