X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=js%2Fmain.js;h=bd6dfc852033948f366e951dcb11f208114ba1a9;hb=4832bc74f55e7d3e6f66d281f5de3a071fe1e071;hp=829af2258f03bae1591be2f09f431e48f9664534;hpb=f6f151433c7ecdbfc1bf443880eb63841c61eb7e;p=friendica.git diff --git a/js/main.js b/js/main.js index 829af2258f..bd6dfc8520 100644 --- a/js/main.js +++ b/js/main.js @@ -16,6 +16,8 @@ document.getElementById(theID).style.display = "none" } + + var src = null; var prev = null; var livetime = null; @@ -28,13 +30,15 @@ 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"; @@ -43,7 +47,7 @@ if (e.hasClass("ttleft")) pos="left"; if (e.hasClass("ttright")) pos="right"; e.tipTip({defaultPosition: pos, edgeOffset: 8}); - }); + });*/ @@ -69,15 +73,34 @@ 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({ @@ -88,10 +111,15 @@ /* 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); @@ -99,9 +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); @@ -109,26 +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("
  • Show All Notifications
  • "); - + 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); @@ -149,6 +207,12 @@ NavUpdate(); // Allow folks to stop the ajax page updates with the pause/break key $(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) { @@ -173,7 +237,8 @@ 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); @@ -204,15 +269,21 @@ }); }) ; } - 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; @@ -232,29 +303,36 @@ //}); // add a new thread - - $('.tread-wrapper',data).each(function() { + $('.toplevel_item',data).each(function() { var ident = $(this).attr('id'); - if($('#' + ident).length == 0) { + + 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)); + } prev = ident; }); // reset vars for inserting individual items - prev = 'live-' + src; + /* 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')); @@ -269,14 +347,14 @@ } prev = ident; }); - + */ $('.like-rotator').hide(); if(commentBusy) { commentBusy = false; $('body').css('cursor', 'auto'); } /* autocomplete @nicknames */ - $(".comment-edit-wrapper textarea").contact_autocomplete(baseurl+"/acl"); + $(".comment-edit-form textarea").contact_autocomplete(baseurl+"/acl"); }); } @@ -301,12 +379,18 @@ 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(); @@ -375,6 +459,7 @@ unpause(); commentBusy = true; $('body').css('cursor', 'wait'); + $("#comment-preview-inp-" + id).val("0"); $.post( "item", $("#comment-edit-form-" + id).serialize(), @@ -397,6 +482,47 @@ return false; } + + 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; @@ -428,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'); }); @@ -461,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 : "", @@ -483,6 +641,7 @@ function setupFieldRichtext(){ convert_urls: false, content_css: baseurl+"/view/custom_tinymce.css", theme_advanced_path : false, + file_browser_callback : "fcFileBrowser", }); } @@ -507,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 + ''); + }); + +}