]> git.mxchange.org Git - friendica.git/blobdiff - include/main.js
move icons style in new file
[friendica.git] / include / main.js
index 34045f57f2b47b5f8e259f51db4a5f343d73ab44..83dcc720c7a165d55a57a2f85ec771cbc6f05067 100644 (file)
        var langSelect = false;
        var commentBusy = false;
 
-       $(document).ready(function() {
+       $(function() {
                $.ajaxSetup({cache: false});
 
                msie = $.browser.msie ;
+               
+               /* setup navbar menus */
+               
+               
+               
+               /* setup onoff widgets */
+               $(".onoff input").each(function(){
+                       val = $(this).val();
+                       id = $(this).attr("id");
+                       $("#"+id+"_onoff ."+ (val==0?"on":"off")).addClass("hidden");
+                       
+               });
+               $(".onoff > a").click(function(event){
+                       event.preventDefault(); 
+                       var input = $(this).siblings("input");
+                       var val = 1-input.val();
+                       var id = input.attr("id");
+                       $("#"+id+"_onoff ."+ (val==0?"on":"off")).addClass("hidden");
+                       $("#"+id+"_onoff ."+ (val==1?"on":"off")).removeClass("hidden");
+                       input.val(val);
+                       //console.log(id);
+               });
+               
+               /* setup field_richtext */
+               setupFieldRichtext();
+
+               /* popup menus */
+               $('a[rel^=#]').click(function(e){
+                       menu = $( $(this).attr('rel') );
+                       e.stopPropagation();
+                       if (menu.attr('popup')=="false") return false;
+                       $(this).parent().toggleClass("selected");
+                       menu.toggle();
+                       return false;
+               });
+               
+               
+
+               /* notifications template */
+               var notifications_tpl= unescape($("#nav-notifications-template[rel=template]").html());
+               var notifications_empty = unescape($("#nav-notifications-menu").html());
+               
+               /* nav update event  */
+               $('nav').bind('nav-update', function(e,data){;
+                       var net = $(data).find('net').text();
+                       if(net == 0) { net = ''; $('#net-update').removeClass('show') } else { $('#net-update').addClass('show') }
+                       $('#net-update').html(net);
+
+                       var home = $(data).find('home').text();
+                       if(home == 0) { home = '';  $('#home-update').removeClass('show') } else { $('#home-update').addClass('show') }
+                       $('#home-update').html(home);
+
+                       var eNotif = $(data).find('notif')
+                       notif = eNotif.attr('count');
+                       if (notif>0){
+                               nnm = $("#nav-notifications-menu");
+                               nnm.html("");
+                               nnm.attr('popup','true');
+                               eNotif.children("note").each(function(){
+                                       e = $(this);
+                                       text = e.text().format("<span class='contactname'>"+e.attr('name')+"</span>");
+                                       html = notifications_tpl.format(e.attr('href'),e.attr('photo'), text, e.attr('date'));
+                                       nnm.append(html);
+                               });
+                       } else {
+                               $("#nav-notifications-menu").html(notifications_empty);
+                       }
+                       if(notif == 0) { notif = ''; $('#notify-update').removeClass('show') } else { $('#notify-update').addClass('show') }
+                       $('#notify-update').html(notif);
+                       
+               });
+               
+               
                NavUpdate(); 
                // Allow folks to stop the ajax page updates with the pause/break key
                $(document).keypress(function(event) {
                                        $('#pause').html('');
                                }
                        }
-//                     // F8 - show/hide language selector
-//                     if(event.keyCode == '119') {
-//                             if(langSelect) {
-//                                     langSelect = false;
-//                                     $('#language-selector').hide();
-//                             }
-//                             else {
-//                                     langSelect = true;
-//                                     $('#language-selector').show();
-//                             }
-//                     }               
-//
-// this is shift-home on FF, but $ on IE, disabling until I figure out why the diff.
-// update: incompatible usage of onKeyDown vs onKeyPress
-//                     if(event.keyCode == '36' && event.shiftKey == true) {
-//                             if(homebase !== undefined) {
-//                                     event.preventDefault();
-//                                     document.location = homebase;
-//                             }
-//                     }
+                       else {
+                               // any key to resume
+                               if(stopped == true) {
+                                       stopped = false;
+                                       $('#pause').html('');
+                               }
+                       }
+
                });                                     
        });
 
        function NavUpdate() {
 
-               if($('#live-network').length) { src = 'network'; liveUpdate(); }
-               if($('#live-profile').length) { src = 'profile'; liveUpdate(); }
+               if($('#live-network').length)   { src = 'network'; liveUpdate(); }
+               if($('#live-profile').length)   { src = 'profile'; liveUpdate(); }
+               if($('#live-community').length) { src = 'community'; liveUpdate(); }
                if($('#live-display').length) { 
                        if(liking) {
                                liking = 0;
                if(! stopped) {
                        $.get("ping",function(data) {
                                $(data).find('result').each(function() {
-                                       var net = $(this).find('net').text();
-                                       if(net == 0) { net = ''; $('#net-update').hide() } else { $('#net-update').show() }
-                                       $('#net-update').html(net);
-                                       var home = $(this).find('home').text();
-                                       if(home == 0) { home = '';  $('#home-update').hide() } else { $('#home-update').show() }
-                                       $('#home-update').html(home);
-                                       var mail = $(this).find('mail').text();
-                                       if(mail == 0) { mail = '';  $('#mail-update').hide() } else { $('#mail-update').show() }
-                                       $('#mail-update').html(mail);
-                                       var intro = $(this).find('intro').text();
-                                       var register = $(this).find('register').text();
-                                       if(intro == 0) { intro = ''; }
-                                       if(register != 0 && intro != '') { intro = intro+'/'+register; }
-                                       if(register != 0 && intro == '') { intro = '0/'+register; }
-                                       if (intro == '') { $('#notify-update').hide() } else { $('#notify-update').show() }
-                                       $('#notify-update').html(intro);
-
+                                       // send nav-update event
+                                       $('nav').trigger('nav-update', this);
                                });
                        }) ;
                }
 
                in_progress = true;
                var udargs = ((netargs.length) ? '/' + netargs : '');
-               var update_url = 'update_' + src + udargs + '?p=' + profile_uid + '&page=' + profile_page + '&msie=' + ((msie) ? 1 : 0);
+               var update_url = 'update_' + src + udargs + '&p=' + profile_uid + '&page=' + profile_page + '&msie=' + ((msie) ? 1 : 0);
 
                $.get(update_url,function(data) {
                        in_progress = false;
                                else { 
 
                                        $('#' + ident + ' ' + '.wall-item-ago').replaceWith($(this).find('.wall-item-ago')); 
-                                       $('#' + ident + ' ' + '.wall-item-comment-wrapper').replaceWith($(this).find('.wall-item-comment-wrapper'));
+                                       if($('#' + ident + ' ' + '.comment-edit-text-empty').length)
+                                               $('#' + ident + ' ' + '.wall-item-comment-wrapper').replaceWith($(this).find('.wall-item-comment-wrapper'));
                                        $('#' + 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() {
                liking = 1;
        }
 
+       function dostar(ident) {
+               $('#like-rotator-' + ident.toString()).show();
+               $.get('starred/' + ident.toString(), function(data) {
+                       if(data.match(/1/)) {
+                               $('#starred-' + ident.toString()).addClass('starred');
+                               $('#starred-' + ident.toString()).removeClass('unstarred');
+                       }
+                       else {                  
+                               $('#starred-' + ident.toString()).addClass('unstarred');
+                               $('#starred-' + ident.toString()).removeClass('starred');
+                       }
+                       $('#like-rotator-' + ident.toString()).hide();  
+               });
+       }
+
        function getPosition(e) {
                var cursor = {x:0, y:0};
                if ( e.pageX || e.pageY  ) {
                });
        }
 
+       function contactgroupChangeMember(gid,cid) {
+               $('body').css('cursor', 'wait');
+               $.get('contactgroup/' + gid + '/' + cid, function(data) {
+                               $('body').css('cursor', 'auto');
+               });
+       }
+
+
+function checkboxhighlight(box) {
+  if($(box).is(':checked')) {
+       $(box).addClass('checkeditem');
+  }
+  else {
+       $(box).removeClass('checkeditem');
+  }
+}
+
+function setupFieldRichtext(){
+       tinyMCE.init({
+               theme : "advanced",
+               mode : "specific_textareas",
+               editor_selector: "fieldRichtext",
+               plugins : "bbcode,paste",
+               theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
+               theme_advanced_buttons2 : "",
+               theme_advanced_buttons3 : "",
+               theme_advanced_toolbar_location : "top",
+               theme_advanced_toolbar_align : "center",
+               theme_advanced_blockformats : "blockquote,code",
+               paste_text_sticky : true,
+               entity_encoding : "raw",
+               add_unload_trigger : false,
+               remove_linebreaks : false,
+               force_p_newlines : false,
+               force_br_newlines : true,
+               forced_root_block : '',
+               convert_urls: false,
+               content_css: baseurl+"/view/custom_tinymce.css",
+               theme_advanced_path : false,
+       });
+}
+
+/** 
+ * sprintf in javascript 
+ *     "{0} and {1}".format('zero','uno'); 
+ **/
+String.prototype.format = function() {
+    var formatted = this;
+    for (var i = 0; i < arguments.length; i++) {
+        var regexp = new RegExp('\\{'+i+'\\}', 'gi');
+        formatted = formatted.replace(regexp, arguments[i]);
+    }
+    return formatted;
+};
+// Array Remove
+Array.prototype.remove = function(item) {
+  to=undefined; from=this.indexOf(item);
+  var rest = this.slice((to || from) + 1 || this.length);
+  this.length = from < 0 ? this.length + from : from;
+  return this.push.apply(this, rest);
+};
+