diff options
Diffstat (limited to 'view/js')
-rw-r--r-- | view/js/acl.js | 20 | ||||
-rw-r--r-- | view/js/autocomplete.js | 209 | ||||
-rw-r--r-- | view/js/main.js | 88 | ||||
-rw-r--r-- | view/js/mod_connedit.js | 13 | ||||
-rw-r--r-- | view/js/mod_directory.js | 3 | ||||
-rw-r--r-- | view/js/mod_events.js | 37 | ||||
-rw-r--r-- | view/js/mod_new_channel.js | 5 | ||||
-rw-r--r-- | view/js/mod_photos.js | 13 | ||||
-rw-r--r-- | view/js/mod_settings.js | 16 |
9 files changed, 185 insertions, 219 deletions
diff --git a/view/js/acl.js b/view/js/acl.js index c129634a0..f9428e1c5 100644 --- a/view/js/acl.js +++ b/view/js/acl.js @@ -17,20 +17,24 @@ function ACL(backend_url, preset){ that.item_tpl = unescape($(".acl-list-item[rel=acl-template]").html()); that.showall = $("#acl-showall"); + // set the initial ACL lists in case the enclosing form gets submitted before the ajax loader completes. + that.on_submit(); + if (preset.length==0) that.showall.removeClass("btn-default").addClass("btn-warning"); /*events*/ $(document).ready(function() { - that.showall.click(that.on_showall); - $(document).on('click','.acl-button-show',that.on_button_show); - $(document).on('click','.acl-button-hide',that.on_button_hide); - $("#acl-search").keypress(that.on_search); -// $("#acl-wrapper").parents("form").submit(that.on_submit); +// setTimeout( function() { + that.showall.click(that.on_showall); + $(document).on('click','.acl-button-show',that.on_button_show); + $(document).on('click','.acl-button-hide',that.on_button_hide); + $("#acl-search").keypress(that.on_search); - /* startup! */ - that.get(0,100); - that.on_submit(); + /* startup! */ + that.get(0,100); + that.on_submit(); +// }, 5000 ); }); } diff --git a/view/js/autocomplete.js b/view/js/autocomplete.js index c01ba6990..e62959a6c 100644 --- a/view/js/autocomplete.js +++ b/view/js/autocomplete.js @@ -1,200 +1,59 @@ /** - * Friendica people autocomplete + * Red people autocomplete * - * require jQuery, jquery.textareas + * require jQuery, jquery.textcomplete */ - - - -function ACPopup(elm,backend_url){ - this.idsel=-1; - this.element = elm; - this.searchText=""; - this.ready=true; - this.kp_timer = false; - this.url = backend_url; - - var w = 530; - var h = 130; - - - if(typeof elm.editorId == "undefined") { - style = $(elm).offset(); - w = $(elm).width(); - h = $(elm).height(); - } - else { - var container = elm.getContainer(); - if(typeof container != "undefined") { - style = $(container).offset(); - w = $(container).width(); - h = $(container).height(); - } - } - - if(! w) - w = 530; - - if(! h) - h = 130; - - style.top=style.top+h; - style.width = w; - style.position = 'absolute'; - /* style['max-height'] = '150px'; - style.border = '1px solid red'; - style.background = '#cccccc'; - - style.overflow = 'auto'; - style['z-index'] = '100000'; - */ - style.display = 'none'; - - this.cont = $("<div class='acpopup'></div>"); - this.cont.css(style); - - $("body").append(this.cont); -} -ACPopup.prototype.close = function(){ - $(this.cont).remove(); - this.ready=false; -} -ACPopup.prototype.search = function(text){ - var that = this; - this.searchText=text; - if (this.kp_timer) clearTimeout(this.kp_timer); - this.kp_timer = setTimeout( function(){that._search();}, 500); -} -ACPopup.prototype._search = function(){ - console.log("_search"); - var that = this; +function mysearch(term, callback, backend_url) { var postdata = { start:0, count:100, - search:this.searchText, + //search:term.substring(1), + search:term, type:'c', } $.ajax({ type:'POST', - url: this.url, + url: backend_url, data: postdata, dataType: 'json', success:function(data){ - that.cont.html(""); - if (data.tot>0){ - that.cont.show(); - $(data.items).each(function(){ - html = "<img src='{0}' height='16px' width='16px'>{1} ({2})".format(this.photo, this.name, ((this.label) ? this.nick + ' ' + this.label : this.nick) ) - that.add(this.taggable, html, this.nick.replace(' ','') + '+' + this.id + ' - ' + this.link); - }); - } else { - that.cont.hide(); - } - } - }); - -} -ACPopup.prototype.add = function(taggable, label, value){ - var that=this; - var elm = $("<div class='acpopupitem " + taggable +"' title='"+value+"'>"+label+"</div>"); - elm.click(function(e){ - t = $(this).attr('title').replace(new RegExp(' \- .*'),''); - if(typeof(that.element.container) === "undefined") { - el=$(that.element); - sel = el.getSelection(); - sel.start = sel.start- that.searchText.length; - el.setSelection(sel.start,sel.end).replaceSelectedText(t+' ').collapseSelection(false); - that.close(); - } - else { - txt = tinyMCE.activeEditor.getContent(); - // alert(that.searchText + ':' + t); - newtxt = txt.replace('@' + that.searchText, '@' + t + ' '); - tinyMCE.activeEditor.setContent(newtxt); - tinyMCE.activeEditor.focus(); - that.close(); - } - }); - $(this.cont).append(elm); -} -ACPopup.prototype.onkey = function(event){ - if (event.keyCode == '13') { - if(this.idsel>-1) { - this.cont.children()[this.idsel].click(); - event.preventDefault(); - } - else - this.close(); - } - if (event.keyCode == '38') { //cursor up - cmax = this.cont.children().size()-1; - this.idsel--; - if (this.idsel<0) this.idsel=cmax; - event.preventDefault(); - } - if (event.keyCode == '40' || event.keyCode == '9') { //cursor down - cmax = this.cont.children().size()-1; - this.idsel++; - if (this.idsel>cmax) this.idsel=0; - event.preventDefault(); - } - - if (event.keyCode == '38' || event.keyCode == '40' || event.keyCode == '9') { - this.cont.children().removeClass('selected'); - $(this.cont.children()[this.idsel]).addClass('selected'); - } - - if (event.keyCode == '27') { //ESC - this.close(); - } + callback(data.items); + }, + }).fail(function () {callback([]); }); // Callback must be invoked even if something went wrong. } -function ContactAutocomplete(element,backend_url){ - this.pattern=/@(\!*)([^ \n]+)$/; - this.popup=null; - var that = this; - - $(element).unbind('keydown'); - $(element).unbind('keyup'); - - $(element).keydown(function(event){ - if (that.popup!==null) that.popup.onkey(event); - }); - - $(element).keyup(function(event){ - cpos = $(this).getSelection(); - if (cpos.start==cpos.end){ - match = $(this).val().substring(0,cpos.start).match(that.pattern); - if (match!==null){ - if (that.popup===null){ - that.popup = new ACPopup(this, backend_url); - } - if (that.popup.ready && match[2]!==that.popup.searchText) that.popup.search(match[2]); - if (!that.popup.ready) that.popup=null; - - } else { - if (that.popup!==null) {that.popup.close(); that.popup=null;} - } - - - } - }); - +function format(item) { + return "<img src='{0}' height='16px' width='16px'>{1} ({2})".format(item.photo, item.name, ((item.label) ? item.nick + ' ' + item.label : item.nick) ) } +function replace(item) { + // $2 ensures that prefix (@,@!) is preserved + return '$1$2'+item.nick.replace(' ','') + '+' + item.id; +} /** * jQuery plugin 'contact_autocomplete' */ (function( $ ){ - $.fn.contact_autocomplete = function(backend_url) { - this.each(function(){ - new ContactAutocomplete(this, backend_url); - }); - }; -})( jQuery ); - + $.fn.contact_autocomplete = function(backend_url) { + // Autocomplete contacts + contacts = { + match: /(^|\s)(@!?)(\w{2,})$/, + index: 3, + search: function(term, callback) { mysearch(term, callback, backend_url); }, + replace: replace, + template: format, + } - + smilies = { + match: /(^|\s)(:[a-z]{2,})$/, + index: 2, + search: function(term, callback) { $.getJSON('/smilies/json').done(function(data) { callback($.map(data, function(entry) { return entry['text'].indexOf(term) === 0 ? entry : null })) }) }, + template: function(item) { return item['icon'] + item['text'] }, + replace: function(item) { return "$1"+item['text'] + ' '; }, + } + this.textcomplete([contacts,smilies],{}); + }; +})( jQuery ); diff --git a/view/js/main.js b/view/js/main.js index b5b77d473..a851e7e63 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -113,7 +113,7 @@ } function viewsrc(id) { - $.colorbox({href: 'viewsrc/' + id }); + $.colorbox({href: 'viewsrc/' + id, maxWidth: '80%', maxHeight: '80%' }); } function qCommentInsert(obj,id) { @@ -180,6 +180,13 @@ timer = setTimeout(NavUpdate,2000); } + function markItemRead(itemId) { + $.get('ping?f=&markItemRead='+itemId); + $('.unseen-wall-indicator-'+itemId).hide(); + } + + + var src = null; var prev = null; var livetime = null; @@ -200,6 +207,7 @@ var loadingPage = true; var pageHasMoreContent = true; var updateCountsOnly = false; + var divmore_height = 400; $(function() { $.ajaxSetup({cache: false}); @@ -285,7 +293,7 @@ scroll_next = true; loadingPage = true; - if($('.directory-end').length == 0) + if(($('.directory-end').length == 0) && ($('.photos-end').length == 0)) liveUpdate(); else pageUpdate(); @@ -335,7 +343,7 @@ if($('#live-network').length) { src = 'network'; liveUpdate(); } if($('#live-channel').length) { src = 'channel'; liveUpdate(); } - if($('#live-community').length) { src = 'community'; liveUpdate(); } + if($('#live-home').length) { src = 'home'; liveUpdate(); } if($('#live-display').length) { src = 'display'; liveUpdate(); } if($('#live-search').length) { src = 'search'; liveUpdate(); } @@ -429,6 +437,8 @@ function updatePageItems(mode,data) { pageHasMoreContent = false; } + collapseHeight(); + } @@ -458,25 +468,17 @@ function updateConvItems(mode,data) { if(isVisible) showHideComments(itmId); $(".autotime").timeago(); - // divgrow doesn't prevent itself from attaching a second (or 500th) - // "show more" div to a content region - it also has a few other - // issues related to how we're trying to use it. - // disable for now. - // $("div.wall-item-body").divgrow({ initialHeight: 400 }); } else { $('img',this).each(function() { $(this).attr('src',$(this).attr('dst')); }); - // more FIXME related to expanded comments if($('#collapsed-comments-'+itmId).is(':visible')) isVisible = true; $('#' + ident).replaceWith($(this)); if(isVisible) showHideComments(itmId); $(".autotime").timeago(); - // $("div.wall-item-body").divgrow({ initialHeight: 400 }); - } prev = ident; }); @@ -508,8 +510,6 @@ function updateConvItems(mode,data) { if(isVisible) showHideComments(itmId); $(".autotime").timeago(); - // $("div.wall-item-body").divgrow({ initialHeight: 400 }); - } else { $('img',this).each(function() { @@ -521,7 +521,6 @@ function updateConvItems(mode,data) { if(isVisible) showHideComments(itmId); $(".autotime").timeago(); - // $("div.wall-item-body").divgrow({ initialHeight: 400 }); } }); @@ -557,7 +556,6 @@ function updateConvItems(mode,data) { showHideComments(itmId); $(".autotime").timeago(); - // $("div.wall-item-body").divgrow({ initialHeight: 400 }); } prev = ident; }); @@ -575,7 +573,7 @@ function updateConvItems(mode,data) { } /* autocomplete @nicknames */ - $(".comment-edit-form textarea").contact_autocomplete(baseurl+"/acl"); + $(".comment-edit-form textarea").contact_autocomplete(baseurl+"/acl?f=&n=1"); var bimgs = $(".wall-item-body img").not(function() { return this.complete; }); var bimgcount = bimgs.length; @@ -596,18 +594,16 @@ function updateConvItems(mode,data) { function collapseHeight() { - $(".wall-item-body").each(function() { - if($(this).height() > 410) { + $(".wall-item-body, .contact-info").each(function() { + if($(this).height() > divmore_height + 10) { if(! $(this).hasClass('divmore')) { - $(this).divgrow({ initialHeight: 400, moreText: aStr['divgrowmore'], lessText: aStr['divgrowless'], showBrackets: false }); + $(this).divgrow({ initialHeight: divmore_height, moreText: aStr['divgrowmore'], lessText: aStr['divgrowless'], showBrackets: false }); $(this).addClass('divmore'); } } }); } - - function liveUpdate() { if((src == null) || (stopped) || (! profile_uid)) { $('.like-rotator').spin(false); return; } if(($('.comment-edit-text-full').length) || (in_progress)) { @@ -689,7 +685,7 @@ function updateConvItems(mode,data) { bParam_page = 1; } - update_url = baseurl + '/directory/?f=&aj=1&page=' + bParam_page; + update_url = baseurl + '/' + page_query + '/?f=&aj=1&page=' + bParam_page + extra_args ; $("#page-spinner").spin('small'); update_mode = 'append'; @@ -704,6 +700,25 @@ function updateConvItems(mode,data) { } + function justifyPhotos() { + justifiedGalleryActive = true; + $('#photo-album-contents').justifiedGallery({ + margins: 3, + sizeRangeSuffixes: { + 'lt100': '-2', + 'lt240': '-2', + 'lt320': '-2', + 'lt500': '', + 'lt640': '-1', + 'lt1024': '-0' + } + }).on('jg.complete', function(e){ justifiedGalleryActive = false; }); + } + + function justifyPhotosAjax() { + justifiedGalleryActive = true; + $('#photo-album-contents').justifiedGallery('norewind').on('jg.complete', function(e){ justifiedGalleryActive = false; }); + } function notify_popup_loader(notifyType) { @@ -724,13 +739,13 @@ function updateConvItems(mode,data) { if(data.notify.length==0){ - $("#nav-" + notifyType + "-menu").html(notifications_empty); + $("#nav-" + notifyType + "-menu").html(aStr[nothingnew]); } else { $("#nav-" + notifyType + "-menu").html(notifications_all + notifications_mark); $(data.notify).each(function() { - html = notifications_tpl.format(this.notify_link,this.photo,this.name,this.message,this.when,this.class); + html = notifications_tpl.format(this.notify_link,this.photo,this.name,this.message,this.when,this.hclass); $("#nav-" + notifyType + "-menu").append(html); }); $(".dropdown-menu img[data-src]").each(function(i, el){ @@ -874,12 +889,23 @@ function updateConvItems(mode,data) { return true; } + function importElement(elem) { + $.post( + "impel", + { "element" : elem }, + function(data) { + if(timer) clearTimeout(timer); + timer = setTimeout(NavUpdate,10); + } + ); + return false; + } function preview_post() { $("#jot-preview").val("1"); $("#jot-preview-content").show(); - tinyMCE.triggerSave(); +// tinyMCE.triggerSave(); $.post( "item", $("#profile-jot-form").serialize(), @@ -956,6 +982,7 @@ function updateConvItems(mode,data) { $('body').css('cursor', 'wait'); $.get('contactgroup/' + gid + '/' + cid, function(data) { $('body').css('cursor', 'auto'); + $('#group-' + gid).toggleClass('icon-check icon-check-empty'); }); } @@ -995,6 +1022,8 @@ function fcFileBrowser (field_name, url, type, win) { } function setupFieldRichtext(){ + return; +/* tinyMCE.init({ theme : "advanced", mode : "specific_textareas", @@ -1018,6 +1047,7 @@ function setupFieldRichtext(){ theme_advanced_path : false, file_browser_callback : "fcFileBrowser", }); +*/ } @@ -1089,7 +1119,7 @@ $(document).ready(function() { -$(window).scroll(function () { +$(window).scroll(function () { if(typeof buildCmd == 'function') { // This is a content page with items and/or conversations $('#more').hide(); @@ -1099,7 +1129,7 @@ $(window).scroll(function () { $('#more').css("top","400"); $('#more').show(); } - + if($(window).scrollTop() + $(window).height() > $(document).height() - 100) { if((pageHasMoreContent) && (! loadingPage)) { $('#more').hide(); @@ -1119,9 +1149,9 @@ $(window).scroll(function () { $('#more').css("top","400"); $('#more').show(); } - + if($(window).scrollTop() + $(window).height() > $(document).height() - 100) { - if((pageHasMoreContent) && (! loadingPage)) { + if((pageHasMoreContent) && (! loadingPage) && (! justifiedGalleryActive)) { $('#more').hide(); $('#no-more').hide(); diff --git a/view/js/mod_connedit.js b/view/js/mod_connedit.js index 6231dbd0c..fabf24e95 100644 --- a/view/js/mod_connedit.js +++ b/view/js/mod_connedit.js @@ -6,11 +6,18 @@ function abook_perms_msg() { } $(document).ready(function() { - if(typeof(after_following) !== 'undefined' && after_following) - connectFullShare(); + if(typeof(after_following) !== 'undefined' && after_following) { + if(typeof(connectDefaultShare) !== 'undefined') + connectDefaultShare(); + else + connectFullShare(); + } $('#id_pending').click(function() { - connectFullShare(); + if(typeof(connectDefaultShare) !== 'undefined') + connectDefaultShare(); + else + connectFullShare(); }); $('.abook-edit-me').click(function() { diff --git a/view/js/mod_directory.js b/view/js/mod_directory.js index 291734b4f..74c8b414d 100644 --- a/view/js/mod_directory.js +++ b/view/js/mod_directory.js @@ -6,3 +6,6 @@ function dirdetails(hash) { } +$(document).ready(function() { + collapseHeight(); +});
\ No newline at end of file diff --git a/view/js/mod_events.js b/view/js/mod_events.js new file mode 100644 index 000000000..0ce128fcc --- /dev/null +++ b/view/js/mod_events.js @@ -0,0 +1,37 @@ + +$(document).ready( function() { showHideFinishDate(); }); + +function showHideFinishDate() { + if( $('#event-nofinish-checkbox').is(':checked')) + $('#event-finish-wrapper').hide(); + else + $('#event-finish-wrapper').show(); +} + + + + function eventGetStart() { + //reply = prompt("{{$expirewhen}}", $('#jot-expire').val()); + $('#startModal').modal(); + $('#start-modal-OKButton').on('click', function() { + reply=$('#start-date').val(); + if(reply && reply.length) { + $('#start-text').val(reply); + $('#startModal').modal('hide'); + } + }) + + + } + function eventGetFinish() { + //reply = prompt("{{$expirewhen}}", $('#jot-expire').val()); + $('#finishModal').modal(); + $('#finish-modal-OKButton').on('click', function() { + reply=$('#finish-date').val(); + if(reply && reply.length) { + $('#finish-text').val(reply); + $('#finishModal').modal('hide'); + } + }) + + } diff --git a/view/js/mod_new_channel.js b/view/js/mod_new_channel.js index a3c1dd05c..492267ff9 100644 --- a/view/js/mod_new_channel.js +++ b/view/js/mod_new_channel.js @@ -1,16 +1,21 @@ $(document).ready(function() { +// $("#privacy-role-select").sSelect(); $("#newchannel-name").blur(function() { + $("#name-spinner").spin('small'); var zreg_name = $("#newchannel-name").val(); $.get("new_channel/autofill.json?f=&name=" + encodeURIComponent(zreg_name),function(data) { $("#newchannel-nickname").val(data); zFormError("#newchannel-name-feedback",data.error); + $("#name-spinner").spin(false); }); }); $("#newchannel-nickname").blur(function() { + $("#nick-spinner").spin('small'); var zreg_nick = $("#newchannel-nickname").val(); $.get("new_channel/checkaddr.json?f=&nick=" + encodeURIComponent(zreg_nick),function(data) { $("#newchannel-nickname").val(data); zFormError("#newchannel-nickname-feedback",data.error); + $("#nick-spinner").spin(false); }); }); diff --git a/view/js/mod_photos.js b/view/js/mod_photos.js index aaa86df40..8b7706f16 100644 --- a/view/js/mod_photos.js +++ b/view/js/mod_photos.js @@ -13,6 +13,19 @@ $(document).ready(function() { 'transition' : 'elastic' }); + var a; + a = $("#photo-edit-newtag").autocomplete({ + serviceUrl: baseurl + '/acl', + minChars: 2, + width: 250, + id: 'newtag-ac', + onSelect: function(value,data) { + $("#photo-edit-newtag").val(data); + }, + }); + a.setOptions({ params: { type: 'p' }}); + + $('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() { var selstr; $('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() { diff --git a/view/js/mod_settings.js b/view/js/mod_settings.js index 77c9d0ced..87c8c3a2b 100644 --- a/view/js/mod_settings.js +++ b/view/js/mod_settings.js @@ -3,10 +3,18 @@ var ispublic = aStr['everybody'] ; $(document).ready(function() { - $("a#settings-default-perms-menu").colorbox({ - 'inline' : true, - 'transition' : 'elastic' - }); + $("a#settings-default-perms-menu").colorbox({ + 'inline' : true, + 'transition' : 'elastic' + }); + + $("#privacy-role-select").change(function() { + var role = $("#privacy-role-select").val(); + if(role == 'custom') + $('#advanced-perm').show(); + else + $('#advanced-perm').hide(); + }); $('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() { var selstr; |