X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=js%2Fmain.js;h=bd6dfc852033948f366e951dcb11f208114ba1a9;hb=4832bc74f55e7d3e6f66d281f5de3a071fe1e071;hp=430f216d148203b905e8d3c3d7f309672f40a824;hpb=209958a58434ba7740f762ed2026e04254edbf9c;p=friendica.git diff --git a/js/main.js b/js/main.js index 430f216d14..bd6dfc8520 100644 --- a/js/main.js +++ b/js/main.js @@ -16,25 +16,29 @@ document.getElementById(theID).style.display = "none" } - + + var src = null; var prev = null; var livetime = null; var msie = false; var stopped = false; + var totStopped = false; var timer = null; var pr = 0; var liking = 0; var in_progress = false; var langSelect = false; var commentBusy = false; + var last_popup_menu = null; + var last_popup_button = null; $(function() { $.ajaxSetup({cache: false}); msie = $.browser.msie ; - /* setup tooltips */ + /* setup tooltips *//* $("a,.tt").each(function(){ var e = $(this); var pos="bottom"; @@ -42,8 +46,8 @@ if (e.hasClass("ttbottom")) pos="bottom"; if (e.hasClass("ttleft")) pos="left"; if (e.hasClass("ttright")) pos="right"; - e.tipTip({defaultPosition: pos}); - }); + e.tipTip({defaultPosition: pos, edgeOffset: 8}); + });*/ @@ -69,24 +73,53 @@ setupFieldRichtext(); /* popup menus */ + function close_last_popup_menu() { + if(last_popup_menu) { + last_popup_menu.hide(); + last_popup_button.removeClass("selected"); + last_popup_menu = null; + last_popup_button = null; + } + } $('a[rel^=#]').click(function(e){ + close_last_popup_menu(); menu = $( $(this).attr('rel') ); e.preventDefault(); e.stopPropagation(); if (menu.attr('popup')=="false") return false; $(this).parent().toggleClass("selected"); menu.toggle(); + if (menu.css("display") == "none") { + last_popup_menu = null; + last_popup_button = null; + } else { + last_popup_menu = menu; + last_popup_button = $(this).parent(); + } return false; }); + $('html').click(function() { + close_last_popup_menu(); + }); + // fancyboxes + $("a.popupbox").fancybox({ + 'transitionIn' : 'elastic', + 'transitionOut' : 'elastic' + }); /* notifications template */ var notifications_tpl= unescape($("#nav-notifications-template[rel=template]").html()); + var notifications_all = unescape($('
').append( $("#nav-notifications-see-all").clone() ).html()); //outerHtml hack + var notifications_mark = unescape($('
').append( $("#nav-notifications-mark-all").clone() ).html()); //outerHtml hack var notifications_empty = unescape($("#nav-notifications-menu").html()); /* nav update event */ $('nav').bind('nav-update', function(e,data){; + var invalid = $(data).find('invalid').text(); + if(invalid == 1) { window.location.href=window.location.href } + var net = $(data).find('net').text(); if(net == 0) { net = ''; $('#net-update').removeClass('show') } else { $('#net-update').addClass('show') } $('#net-update').html(net); @@ -94,7 +127,7 @@ var home = $(data).find('home').text(); if(home == 0) { home = ''; $('#home-update').removeClass('show') } else { $('#home-update').addClass('show') } $('#home-update').html(home); - + var intro = $(data).find('intro').text(); if(intro == 0) { intro = ''; $('#intro-update').removeClass('show') } else { $('#intro-update').addClass('show') } $('#intro-update').html(intro); @@ -102,25 +135,58 @@ var mail = $(data).find('mail').text(); if(mail == 0) { mail = ''; $('#mail-update').removeClass('show') } else { $('#mail-update').addClass('show') } $('#mail-update').html(mail); + + var intro = $(data).find('intro').text(); + if(intro == 0) { intro = ''; $('#intro-update-li').removeClass('show') } else { $('#intro-update-li').addClass('show') } + $('#intro-update-li').html(intro); + + var mail = $(data).find('mail').text(); + if(mail == 0) { mail = ''; $('#mail-update-li').removeClass('show') } else { $('#mail-update-li').addClass('show') } + $('#mail-update-li').html(mail); + var allevents = $(data).find('all-events').text(); + if(allevents == 0) { allevents = ''; $('#allevents-update').removeClass('show') } else { $('#allevents-update').addClass('show') } + $('#allevents-update').html(allevents); + + var alleventstoday = $(data).find('all-events-today').text(); + if(alleventstoday == 0) { $('#allevents-update').removeClass('notif-allevents-today') } else { $('#allevents-update').addClass('notif-allevents-today') } + + var events = $(data).find('events').text(); + if(events == 0) { events = ''; $('#events-update').removeClass('show') } else { $('#events-update').addClass('show') } + $('#events-update').html(events); + + var eventstoday = $(data).find('events-today').text(); + if(eventstoday == 0) { $('#events-update').removeClass('notif-events-today') } else { $('#events-update').addClass('notif-events-today') } + + var birthdays = $(data).find('birthdays').text(); + if(birthdays == 0) {birthdays = ''; $('#birthdays-update').removeClass('show') } else { $('#birthdays-update').addClass('show') } + $('#birthdays-update').html(birthdays); + + var birthdaystoday = $(data).find('birthdays-today').text(); + if(birthdaystoday == 0) { $('#birthdays-update').removeClass('notif-birthdays-today') } else { $('#birthdays-update').addClass('notif-birthdays-today') } + var eNotif = $(data).find('notif') - notif = eNotif.attr('count'); - if (notif>0){ - $("#nav-notifications-linkmenu").addClass("on"); + + if (eNotif.children("note").length==0){ + $("#nav-notifications-menu").html(notifications_empty); + } else { nnm = $("#nav-notifications-menu"); - nnm.html(""); + nnm.html(notifications_all + notifications_mark); //nnm.attr('popup','true'); eNotif.children("note").each(function(){ e = $(this); text = e.text().format(""+e.attr('name')+""); - html = notifications_tpl.format(e.attr('href'),e.attr('photo'), text, e.attr('date')); + html = notifications_tpl.format(e.attr('href'),e.attr('photo'), text, e.attr('date'), e.attr('seen')); nnm.append(html); }); + } + notif = eNotif.attr('count'); + if (notif>0){ + $("#nav-notifications-linkmenu").addClass("on"); } else { $("#nav-notifications-linkmenu").removeClass("on"); - $("#nav-notifications-menu").html(notifications_empty); } if(notif == 0) { notif = ''; $('#notify-update').removeClass('show') } else { $('#notify-update').addClass('show') } $('#notify-update').html(notif); @@ -132,7 +198,7 @@ }); eSysmsg.children("info").each(function(){ text = $(this).text(); - $.jGrowl(text, { sticky: false, theme: 'info' }); + $.jGrowl(text, { sticky: false, theme: 'info', life: 10000 }); }); }); @@ -140,66 +206,84 @@ NavUpdate(); // Allow folks to stop the ajax page updates with the pause/break key - $(document).keypress(function(event) { - if(event.keyCode == '19') { + $(document).keydown(function(event) { + if(event.keyCode == '8') { + var target = event.target || event.srcElement; + if (!/input|textarea/i.test(target.nodeName)) { + return false; + } + } + if(event.keyCode == '19' || (event.ctrlKey && event.which == '32')) { event.preventDefault(); if(stopped == false) { stopped = true; + if (event.ctrlKey) { + totStopped = true; + } $('#pause').html('pause'); + } else { + unpause(); } - else { - stopped = false; - $('#pause').html(''); - } - } - else { - // any key to resume - if(stopped == true) { - stopped = false; - $('#pause').html(''); + } else { + if (!totStopped) { + unpause(); } } - - }); + }); + + }); function NavUpdate() { + if(! stopped) { - $.get("ping",function(data) { + var pingCmd = 'ping' + ((localUser != 0) ? '?f=&uid=' + localUser : ''); + $.get(pingCmd,function(data) { $(data).find('result').each(function() { // send nav-update event $('nav').trigger('nav-update', this); + + + // start live update + + if($('#live-network').length) { src = 'network'; liveUpdate(); } + if($('#live-profile').length) { src = 'profile'; liveUpdate(); } + if($('#live-community').length) { src = 'community'; liveUpdate(); } + if($('#live-notes').length) { src = 'notes'; liveUpdate(); } + if($('#live-display').length) { + if(liking) { + liking = 0; + window.location.href=window.location.href + } + } + if($('#live-photos').length) { + if(liking) { + liking = 0; + window.location.href=window.location.href + } + } + + + + }); }) ; } - - - if($('#live-network').length) { src = 'network'; liveUpdate(); } - if($('#live-profile').length) { src = 'profile'; liveUpdate(); } - if($('#live-community').length) { src = 'community'; liveUpdate(); } - if($('#live-notes').length) { src = 'notes'; liveUpdate(); } - if($('#live-display').length) { - if(liking) { - liking = 0; - window.location.href=window.location.href - } - } - if($('#live-photos').length) { - if(liking) { - liking = 0; - window.location.href=window.location.href - } - } - - timer = setTimeout(NavUpdate,30000); + timer = setTimeout(NavUpdate,updateInterval); } function liveUpdate() { if((src == null) || (stopped) || (! profile_uid)) { $('.like-rotator').hide(); return; } if(($('.comment-edit-text-full').length) || (in_progress)) { + if(livetime) { + clearTimeout(livetime); + } livetime = setTimeout(liveUpdate, 10000); return; } + if(livetime != null) + livetime = null; + prev = 'live-' + src; in_progress = true; @@ -208,28 +292,53 @@ $.get(update_url,function(data) { in_progress = false; - $('.ccollapse-wrapper',data).each(function() { + // $('.collapsed-comments',data).each(function() { + // var ident = $(this).attr('id'); + // var is_hidden = $('#' + ident).is(':hidden'); + // if($('#' + ident).length) { + // $('#' + ident).replaceWith($(this)); + // if(is_hidden) + // $('#' + ident).hide(); + // } + //}); + + // add a new thread + $('.toplevel_item',data).each(function() { var ident = $(this).attr('id'); - var is_hidden = $('#' + ident).is(':hidden'); - if($('#' + ident).length) { + + if($('#' + ident).length == 0 && profile_page == 1) { + $('img',this).each(function() { + $(this).attr('src',$(this).attr('dst')); + }); + $('#' + prev).after($(this)); + } + else { + $('img',this).each(function() { + $(this).attr('src',$(this).attr('dst')); + }); $('#' + ident).replaceWith($(this)); - if(is_hidden) - $('#' + ident).hide(); } + prev = ident; }); + + // reset vars for inserting individual items + + /* prev = 'live-' + src; + $('.wall-item-outside-wrapper',data).each(function() { var ident = $(this).attr('id'); - if($('#' + ident).length == 0) { - $('img',this).each(function() { - $(this).attr('src',$(this).attr('dst')); - }); - $('#' + prev).after($(this)); + + if($('#' + ident).length == 0 && prev != 'live-' + src) { + $('img',this).each(function() { + $(this).attr('src',$(this).attr('dst')); + }); + $('#' + prev).after($(this)); } else { - $('#' + ident + ' ' + '.wall-item-ago').replaceWith($(this).find('.wall-item-ago')); if($('#' + ident + ' ' + '.comment-edit-text-empty').length) $('#' + ident + ' ' + '.wall-item-comment-wrapper').replaceWith($(this).find('.wall-item-comment-wrapper')); + $('#' + ident + ' ' + '.hide-comments-total').replaceWith($(this).find('.hide-comments-total')); $('#' + ident + ' ' + '.wall-item-like').replaceWith($(this).find('.wall-item-like')); $('#' + ident + ' ' + '.wall-item-dislike').replaceWith($(this).find('.wall-item-dislike')); $('#' + ident + ' ' + '.my-comment-photo').each(function() { @@ -238,11 +347,14 @@ } prev = ident; }); + */ $('.like-rotator').hide(); if(commentBusy) { commentBusy = false; $('body').css('cursor', 'auto'); } + /* autocomplete @nicknames */ + $(".comment-edit-form textarea").contact_autocomplete(baseurl+"/acl"); }); } @@ -265,13 +377,20 @@ // is delayed and NavUpdate runs before it completes. function dolike(ident,verb) { + unpause(); $('#like-rotator-' + ident.toString()).show(); - $.get('like/' + ident.toString() + '?verb=' + verb ); - if(timer) clearTimeout(timer); - timer = setTimeout(NavUpdate,3000); + $.get('like/' + ident.toString() + '?verb=' + verb, NavUpdate ); liking = 1; } + function dosubthread(ident) { + unpause(); + $('#like-rotator-' + ident.toString()).show(); + $.get('subthread/' + ident.toString(), NavUpdate ); + liking = 1; + } + + function dostar(ident) { ident = ident.toString(); $('#like-rotator-' + ident).show(); @@ -337,8 +456,10 @@ } function post_comment(id) { + unpause(); commentBusy = true; $('body').css('cursor', 'wait'); + $("#comment-preview-inp-" + id).val("0"); $.post( "item", $("#comment-edit-form-" + id).serialize(), @@ -362,6 +483,54 @@ } + function preview_comment(id) { + $("#comment-preview-inp-" + id).val("1"); + $("#comment-edit-preview-" + id).show(); + $.post( + "item", + $("#comment-edit-form-" + id).serialize(), + function(data) { + if(data.preview) { + + $("#comment-edit-preview-" + id).html(data.preview); + $("#comment-edit-preview-" + id + " a").click(function() { return false; }); + } + }, + "json" + ); + return true; + } + + + + function preview_post() { + $("#jot-preview").val("1"); + $("#jot-preview-content").show(); + tinyMCE.triggerSave(); + $.post( + "item", + $("#profile-jot-form").serialize(), + function(data) { + if(data.preview) { + $("#jot-preview-content").html(data.preview); + $("#jot-preview-content" + " a").click(function() { return false; }); + } + }, + "json" + ); + $("#jot-preview").val("0"); + return true; + } + + + function unpause() { + // unpause auto reloads if they are currently stopped + totStopped = false; + stopped = false; + $('#pause').html(''); + } + + function bin2hex(s){ // Converts the binary representation of data to hex // @@ -385,9 +554,9 @@ return a.join(''); } - function groupChangeMember(gid,cid) { + function groupChangeMember(gid, cid, sec_token) { $('body .fakelink').css('cursor', 'wait'); - $.get('group/' + gid + '/' + cid, function(data) { + $.get('group/' + gid + '/' + cid + "?t=" + sec_token, function(data) { $('#group-update-wrapper').html(data); $('body .fakelink').css('cursor', 'auto'); }); @@ -418,12 +587,44 @@ function checkboxhighlight(box) { } } +function notifyMarkAll() { + $.get('notify/mark/all', function(data) { + if(timer) clearTimeout(timer); + timer = setTimeout(NavUpdate,1000); + }); +} + + +// code from http://www.tinymce.com/wiki.php/How-to_implement_a_custom_file_browser +function fcFileBrowser (field_name, url, type, win) { + /* TODO: If you work with sessions in PHP and your client doesn't accept cookies you might need to carry + the session name and session ID in the request string (can look like this: "?PHPSESSID=88p0n70s9dsknra96qhuk6etm5"). + These lines of code extract the necessary parameters and add them back to the filebrowser URL again. */ + + + var cmsURL = baseurl+"/fbrowser/"+type+"/"; + + tinyMCE.activeEditor.windowManager.open({ + file : cmsURL, + title : 'File Browser', + width : 420, // Your dimensions may differ - toy around with them! + height : 400, + resizable : "yes", + inline : "yes", // This parameter only has an effect if you use the inlinepopups plugin! + close_previous : "no" + }, { + window : win, + input : field_name + }); + return false; + } + function setupFieldRichtext(){ tinyMCE.init({ theme : "advanced", mode : "specific_textareas", editor_selector: "fieldRichtext", - plugins : "bbcode,paste", + plugins : "bbcode,paste, inlinepopups", theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code", theme_advanced_buttons2 : "", theme_advanced_buttons3 : "", @@ -440,9 +641,11 @@ function setupFieldRichtext(){ convert_urls: false, content_css: baseurl+"/view/custom_tinymce.css", theme_advanced_path : false, + file_browser_callback : "fcFileBrowser", }); } + /** * sprintf in javascript * "{0} and {1}".format('zero','uno'); @@ -463,3 +666,10 @@ Array.prototype.remove = function(item) { return this.push.apply(this, rest); }; +function previewTheme(elm) { + theme = $(elm).val(); + $.getJSON('pretheme?f=&theme=' + theme,function(data) { + $('#theme-preview').html('
' + data.desc + '
' + data.version + '
' + data.credits + '
' + theme + ''); + }); + +}