X-Git-Url: https://projects.mako.cc/source/scuttle/blobdiff_plain/c20b44263a89d8bf1a78bfa632daaae3cb4f1da2..3a514e232443be05939c0ad98f5f2b48a6637b56:/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 = '';
- 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 = ' ';
+ $(this).prepend(code);
+ });
+ }
+})