X-Git-Url: https://projects.mako.cc/source/scuttle/blobdiff_plain/c20b44263a89d8bf1a78bfa632daaae3cb4f1da2..1685ba1f8af80489da4f092a0adcced47a60e9fa:/jsScuttle.php diff --git a/jsScuttle.php b/jsScuttle.php index fbe1e20..9c6b9b7 100644 --- a/jsScuttle.php +++ b/jsScuttle.php @@ -1,79 +1,34 @@ -function _playerAdd(anchor) { - var url = anchor.href; - var code = ''; - var code = code + ''; - var code = code + ''; - anchor.parentNode.innerHTML = code +' '+ anchor.parentNode.innerHTML; +$userservice =& ServiceFactory::getServiceInstance('UserService'); +if ($userservice->isLoggedOn()) { + $currentUser = $userservice->getCurrentUser(); + $currentUsername = $currentUser[$userservice->getFieldName('username')]; } - -String.prototype.trim = function() { - return this.replace(/^\s+|\s+$/g, ''); -}; +?> var deleted = false; -function deleteBookmark(ele, input){ - var confirmDelete = " - "; - ele.style.display = 'none'; - ele.parentNode.innerHTML = ele.parentNode.innerHTML + confirmDelete; +function deleteBookmark(ele, input) { + $(ele).hide(); + $(ele).parent().append(" - "); + return false; } - function deleteCancelled(ele) { - var del = previousElement(ele.parentNode); - del.style.display = 'inline'; - ele.parentNode.parentNode.removeChild(ele.parentNode); - return false; -} - -function deleteConfirmed(ele, input, response) { - if (deleted == false) { - deleted = ele.parentNode.parentNode.parentNode; - } - var post = deleted; - post.className = 'xfolkentry deleted'; - if (response != '') { - post.style.display = 'none'; - deleted = false; - } else { - loadXMLDoc('ajaxDelete.php?id=' + input); - } + $(ele).parent().prev().show(); + $(ele).parent().remove(); + return false; } - -function previousElement(ele) { - ele = ele.previousSibling; - while (ele.nodeType != 1) { - ele = ele.previousSibling; - } - return ele; -} - -function isAvailable(input, response){ - var usernameField = document.getElementById("username"); - var username = usernameField.value; - username = username.toLowerCase(); - username = username.trim(); - var availability = document.getElementById("availability"); - if (username != '') { - usernameField.style.backgroundImage = 'url(loading.gif)'; - if (response != '') { - usernameField.style.backgroundImage = 'none'; - if (response == 'true') { - availability.className = 'available'; - availability.innerHTML = ''; - } else { - availability.className = 'not-available'; - availability.innerHTML = ''; - } - } else { - loadXMLDoc('ajaxIsAvailable.php?username=' + username); - } +function deleteConfirmed(ele, input) { + $.get("ajaxDelete.php?id=" + input, function(data) { + if (1 === parseInt(data)) { + $(ele).parents(".xfolkentry").slideUp(); } + }); + return false; } function useAddress(ele) { @@ -87,55 +42,86 @@ function useAddress(ele) { } } -function getTitle(input, response){ - var title = document.getElementById('titleField'); - if (title.value == '') { - title.style.backgroundImage = 'url(loading.gif)'; - if (response != null) { - title.style.backgroundImage = 'none'; - title.value = response; - } else if (input.indexOf('http') > -1) { - loadXMLDoc('ajaxGetTitle.php?url=' + input); - } else { - return false; - } +function getTitle(input) { + var title = $("#titleField").val(); + if (title.length < 1) { + $("#titleField").css("background-image", "url(loading.gif)"); + if (input.indexOf("http") > -1) { + $.get("ajaxGetTitle.php?url=" + input, function(data) { + $("#titleField").css("background-image", "none") + .val(data); + }); } + } } -var xmlhttp; -function loadXMLDoc(url) { - // Native - if (window.XMLHttpRequest) { - xmlhttp = new XMLHttpRequest(); - xmlhttp.onreadystatechange = processStateChange; - xmlhttp.open("GET", url, true); - xmlhttp.send(null); - // ActiveX - } else if (window.ActiveXObject) { - xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); - if (xmlhttp) { - xmlhttp.onreadystatechange = processStateChange; - xmlhttp.open("GET", url, true); - xmlhttp.send(); - } - } +function autocomplete() { + $.ajax({ + url: 'alltags/', + success: function(data) { + //console.log($(data)); + var availableTags = new Array(); + $(data).find('a').each(function() { + availableTags.push($(this).html()); + //console.log($(this).html()); + }); + + $( ".autocomplete" ) + // don't navigate away from the field on tab when selecting an item + .bind( "keydown", function( event ) { + if ( event.keyCode === $.ui.keyCode.TAB && + $( this ).data( "autocomplete" ).menu.active ) { + event.preventDefault(); + } + }) + .autocomplete({ + minLength: 0, + source: function( request, response ) { + // delegate back to autocomplete, but extract the last term + response( $.ui.autocomplete.filter( + availableTags, extractLast( request.term ) ) ); + }, + focus: function() { + // prevent value inserted on focus + return false; + }, + select: function( event, ui ) { + var terms = split( this.value ); + // remove the current input + terms.pop(); + // add the selected item + terms.push( ui.item.value ); + // add placeholder to get the comma-and-space at the end + terms.push( "" ); + this.value = terms.join( ", " ); + return false; + } + }); + } + }); + } -function processStateChange() { - if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { - response = xmlhttp.responseXML.documentElement; - method = response.getElementsByTagName('method')[0].firstChild.data; - result = response.getElementsByTagName('result')[0].firstChild.data; - eval(method + '(\'\', result)'); - } +function split( val ) { + return val.split( /,\s*/ ); + } +function extractLast( term ) { + return split( term ).pop(); } -function playerLoad() { - var anchors = document.getElementsByTagName('a'); - var anchors_length = anchors.length; - for (var i = 0; i < anchors_length; i++) { - if (anchors[i].className == 'taggedlink' && anchors[i].href.match(/\.mp3$/i)) { - _playerAdd(anchors[i]); - } - } -} \ No newline at end of file +/* Page load */ +$(function() { + + autocomplete(); + + // Insert Flash player for MP3 links + if ($("#bookmarks").length > 0) { + $('a[href$=".mp3"].taggedlink').each(function() { + var url = this.href; + var code = ''; + code = code + ''; + code = code + ' '; + $(this).prepend(code); + }); + } +})