]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/skins/default/media/js/osqa.main.js
OSQA-538, fixing the IE caching issues, now we append the Nocache random number to...
[osqa.git] / forum / skins / default / media / js / osqa.main.js
index 658ac996360697a95a5f12c946059c0af5d34174..2de5ecf56dc70bc74b66babf28e0618f96b91b56 100644 (file)
@@ -53,12 +53,14 @@ var response_commands = {
         var $answer = $('#answer-container-' + id);\r
         $answer.addClass('accepted-answer');\r
         $answer.find('.accept-answer').addClass('on');\r
+        $answer.find('.accept-answer').attr('title', $answer.find('.accept-answer').attr('bn:on'));\r
     },\r
 \r
     unmark_accepted: function(id) {\r
         var $answer = $('#answer-container-' + id);\r
         $answer.removeClass('accepted-answer');\r
         $answer.find('.accept-answer').removeClass('on');\r
+        $answer.find('.accept-answer').attr('title', $answer.find('.accept-answer').attr('bn:off'));\r
     },\r
 \r
     remove_comment: function(id) {\r
@@ -69,7 +71,11 @@ var response_commands = {
         });\r
     },\r
 \r
-    insert_comment: function(post_id, comment_id, comment, username, profile_url, delete_url, edit_url) {\r
+    award_points: function(id) {\r
+        alert('ok');\r
+    },\r
+\r
+    insert_comment: function(post_id, comment_id, comment, username, profile_url, delete_url, edit_url, convert_url) {\r
         var $container = $('#comments-container-' + post_id);\r
         var skeleton = $('#new-comment-skeleton-' + post_id).html().toString();\r
 \r
@@ -78,7 +84,8 @@ var response_commands = {
                 .replace(new RegExp('%USERNAME%', 'g'), username)\r
                 .replace(new RegExp('%PROFILE_URL%', 'g'), profile_url)\r
                 .replace(new RegExp('%DELETE_URL%', 'g'), delete_url)\r
-                .replace(new RegExp('%EDIT_URL%', 'g'), edit_url);\r
+                .replace(new RegExp('%EDIT_URL%', 'g'), edit_url)\r
+                .replace(new RegExp('%CONVERT_URL%', 'g'), convert_url);\r
 \r
         $container.append(skeleton);\r
 \r
@@ -93,12 +100,12 @@ var response_commands = {
     },\r
 \r
     mark_deleted: function(post_type, post_id) {\r
-        if (post_type == 'answer') {\r
-            var $answer = $('#answer-container-' + post_id);\r
-            $answer.addClass('deleted');\r
-        } else {\r
+        if (post_type == 'question') {\r
             var $container = $('#question-table');\r
             $container.addClass('deleted');\r
+        } else {\r
+            var $el = $('#' + post_type + '-container-' + post_id);\r
+            $el.addClass('deleted');\r
         }\r
     },\r
 \r
@@ -118,6 +125,10 @@ var response_commands = {
 \r
     set_subscription_status: function(text) {\r
         $('.subscription-status').html(text);\r
+    },\r
+\r
+    copy_url: function(url) {\r
+        $.copy(url);\r
     }\r
 }\r
 \r
@@ -182,10 +193,29 @@ function show_dialog (extern) {
         top: options.pos.y,\r
         left: options.pos.x\r
     });\r
-\r
+    \r
+    top_position_change = (options.dim.h / 2)\r
+    left_position_change = (options.dim.w / 2)\r
+    \r
+    new_top_position = options.pos.y - top_position_change\r
+    new_left_position = options.pos.x - left_position_change\r
+    \r
+    if (new_left_position < 0) {\r
+        left_position_change = 0\r
+    }\r
+    if (($(window).scrollTop() - new_top_position) > 0) {\r
+        top_position_change = 0\r
+    }\r
+    if ((options.event.pageY + options.dim.h) > ($(window).height() + $(window).scrollTop())) {\r
+        top_position_change = options.dim.h\r
+    }\r
+    if ((options.event.pageX + options.dim.w) > ($(window).width() + $(window).scrollLeft())) {\r
+        left_position_change = options.dim.w\r
+    }\r
+    \r
     $dialog.animate({\r
-        top: "-=" + (options.dim.h / 2),\r
-        left: "-=" + (options.dim.w / 2),\r
+        top: "-=" + top_position_change,\r
+        left: "-=" + left_position_change,\r
         width: options.dim.w,\r
         height: options.dim.h\r
     }, 200, function() {\r
@@ -261,6 +291,8 @@ function process_ajax_response(data, evt, callback) {
     } else if (typeof data['commands'] != undefined){\r
         for (var command in data.commands) {\r
             response_commands[command].apply(null, data.commands[command])\r
+\r
+\r
         }\r
 \r
         if (data['message'] != undefined) {\r
@@ -296,19 +328,22 @@ $(function() {
     $('a.ajax-command').live('click', function(evt) {\r
         if (running) return false;\r
 \r
-        $('.context-menu-dropdown').slideUp('fast');\r
-\r
         var el = $(this);\r
 \r
+        var ajax_url = el.attr('href')\r
+        ajax_url = ajax_url + "?nocache=" + new Date().getTime()\r
+\r
+        $('.context-menu-dropdown').slideUp('fast');\r
+\r
         if (el.is('.withprompt')) {\r
-            load_prompt(evt, el, el.attr('href'));\r
+            load_prompt(evt, el, ajax_url);\r
         } else if(el.is('.confirm')) {\r
             var doptions = {\r
                 html: messages.confirm,\r
                 extra_class: 'confirm',\r
                 yes_callback: function() {\r
                     start_command();\r
-                    $.getJSON(el.attr('href'), function(data) {\r
+                    $.getJSON(ajax_url, function(data) {\r
                         process_ajax_response(data, evt);\r
                         $dialog.fadeOut('fast', function() {\r
                             $dialog.remove();\r
@@ -326,7 +361,7 @@ $(function() {
             var $dialog = show_dialog(doptions);\r
         } else {\r
             start_command();\r
-            $.getJSON(el.attr('href'), function(data) {\r
+            $.getJSON(ajax_url, function(data) {\r
                 process_ajax_response(data, evt);\r
             });\r
         }\r
@@ -535,8 +570,8 @@ $(function() {
         var $previewer = $('#previewer');\r
         var $container = $('#editor-metrics');\r
 \r
-        var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi;\r
-        var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi;\r
+        var initial_whitespace_rExp = /^[^A-Za-zА-Яа-я0-9]+/gi;\r
+        var non_alphanumerics_rExp = rExp = /[^A-Za-zА-Яа-я0-9]+/gi;\r
         var editor_interval = null;\r
 \r
         $editor.focus(function() {\r
@@ -655,7 +690,7 @@ function pickedTags(){
                 tag_link.html(tagname);\r
                 var del_link = $('<img></img>');\r
                 del_link.addClass('delete-icon');\r
-                del_link.attr('src', mediaUrl('/media/images/close-small-dark.png'));\r
+                del_link.attr('src', mediaUrl('media/images/close-small-dark.png'));\r
 \r
                 setupTagDeleteEvents(del_link, to_target, tagname, reason, true);\r
 \r
@@ -892,8 +927,8 @@ var i18nZh = {
        'please confirm offensive':"??????????????????????",\r
        'anonymous users cannot flag offensive posts':'???????????',\r
        'cannot flag message as offensive twice':'???????',\r
-       'flag offensive cap exhausted':'?????????????5?\91??\92???',\r
-       'need >15 points to report spam':"??+15??????\91???\92?",\r
+       'flag offensive cap exhausted':'?????????????5?Â\91??Â\92???',\r
+       'need >15 points to report spam':"??+15??????Â\91???Â\92?",\r
        'confirm delete':"?????/????????",\r
        'anonymous users cannot delete/undelete':"???????????????",\r
        'post recovered':"?????????????",\r
@@ -971,8 +1006,8 @@ var i18nEs = {
        'insufficient privilege':'privilegio insuficiente',\r
        'cannot pick own answer as best':'no puede escoger su propia respuesta como la mejor',\r
        'anonymous users cannot select favorite questions':'usuarios anonimos no pueden seleccionar',\r
-       'please login':'por favor inicie sesión',\r
-       'anonymous users cannot vote':'usuarios anónimos no pueden votar',\r
+       'please login':'por favor inicie sesión',\r
+       'anonymous users cannot vote':'usuarios anónimos no pueden votar',\r
        '>15 points requried to upvote': '>15 puntos requeridos para votar positivamente',\r
        '>100 points required to downvote':'>100 puntos requeridos para votar negativamente',\r
        'please see': 'por favor vea',\r
@@ -980,31 +1015,31 @@ var i18nEs = {
        'daily vote cap exhausted':'cuota de votos diarios excedida',\r
        'cannot revoke old vote':'no puede revocar un voto viejo',\r
        'please confirm offensive':"por favor confirme ofensiva",\r
-       'anonymous users cannot flag offensive posts':'usuarios anónimos no pueden marcar publicaciones como ofensivas',\r
+       'anonymous users cannot flag offensive posts':'usuarios anónimos no pueden marcar publicaciones como ofensivas',\r
        'cannot flag message as offensive twice':'no puede marcar mensaje como ofensivo dos veces',\r
        'flag offensive cap exhausted':'cuota para marcar ofensivas ha sido excedida',\r
        'need >15 points to report spam':"necesita >15 puntos para reportar spam",\r
-       'confirm delete':"¿Está seguro que desea borrar esto?",\r
-       'anonymous users cannot delete/undelete':"usuarios anónimos no pueden borrar o recuperar publicaciones",\r
-       'post recovered':"publicación recuperada",\r
-       'post deleted':"publicación borrada?",\r
+       'confirm delete':"¿Está seguro que desea borrar esto?",\r
+       'anonymous users cannot delete/undelete':"usuarios anónimos no pueden borrar o recuperar publicaciones",\r
+       'post recovered':"publicación recuperada",\r
+       'post deleted':"publicación borrada?",\r
        'add comment':'agregar comentario',\r
-       'community karma points':'reputación comunitaria',\r
-       'to comment, need':'para comentar, necesita reputación',\r
+       'community karma points':'reputación comunitaria',\r
+       'to comment, need':'para comentar, necesita reputación',\r
        'delete this comment':'borrar este comentario',\r
        'hide comments':"ocultar comentarios",\r
        'add a comment':"agregar comentarios",\r
        'comments':"comentarios",\r
-       'confirm delete comment':"¿Realmente desea borrar este comentario?",\r
+       'confirm delete comment':"¿Realmente desea borrar este comentario?",\r
        'characters':'caracteres faltantes',\r
        'can write':'tiene ',\r
        'click to close':'haga click para cerrar',\r
        'loading...':'cargando...',\r
-       'tags cannot be empty':'las etiquetas no pueden estar vacías',\r
+       'tags cannot be empty':'las etiquetas no pueden estar vacías',\r
        'tablimits info':"hasta 5 etiquetas de no mas de 20 caracteres cada una",\r
-       'content cannot be empty':'el contenido no puede estar vacío',\r
+       'content cannot be empty':'el contenido no puede estar vacío',\r
        'content minchars': 'por favor introduzca mas de {0} caracteres',\r
-       'please enter title':'por favor ingrese un título',\r
+       'please enter title':'por favor ingrese un título',\r
        'title minchars':"por favor introduzca al menos {0} caracteres",\r
        'delete':'borrar',\r
        'undelete':     'recuperar',\r
@@ -1043,7 +1078,7 @@ var i18n_dict = i18n[i18nLang];
 /*\r
  * Autocomplete - jQuery plugin 1.0.3\r
  *\r
- * Copyright (c) 2007 Dylan Verheul, Dan G. Switzer, Anjesh Tuladhar, Jörn Zaefferer\r
+ * Copyright (c) 2007 Dylan Verheul, Dan G. Switzer, Anjesh Tuladhar, Jörn Zaefferer\r
  *\r
  * Dual licensed under the MIT and GPL licenses:\r
  *   http://www.opensource.org/licenses/mit-license.php\r