diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-22 09:46:06 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-24 16:48:04 +0200 | 
| commit | 9c91dceeaa2233ed0bb60f88dd0879b04247915a (patch) | |
| tree | f765507272d16ad73ada0198fc30f8afc1b97319 /ishtar_common/static/js | |
| parent | 22dc7bb1454275af103c9f93cca750e4a7987e28 (diff) | |
| download | Ishtar-9c91dceeaa2233ed0bb60f88dd0879b04247915a.tar.bz2 Ishtar-9c91dceeaa2233ed0bb60f88dd0879b04247915a.zip | |
WIP: ajaxify shortcut menu
Diffstat (limited to 'ishtar_common/static/js')
| -rw-r--r-- | ishtar_common/static/js/ishtar.js | 76 | 
1 files changed, 70 insertions, 6 deletions
| diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index fecefe0a9..70b056c63 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -38,22 +38,25 @@ function manage_async_link(event){  function get_next_table_id(){}  function get_previous_table_id(){} +var current_operation_change = function(){ +    $.post('/' + url_path + 'update-current-item/', +           {item:'operation', value:$("#current_operation").val()}, +           load_shortcut_menu +    ); +}; +  function init_shortcut_menu(html){      $("#progress").hide();      $("#context_menu").html(html);      $(".chosen-select").chosen(); +    chosen_ajaxify("current_operation", '/get-operation-cached/?cached_label=', +                   current_operation_change);      $("#current_file").change(function(){          $.post('/' + url_path + 'update-current-item/',                 {item:'file', value:$("#current_file").val()},                 load_shortcut_menu          );      }); -    $("#current_operation").change(function(){ -        $.post('/' + url_path + 'update-current-item/', -               {item:'operation', value:$("#current_operation").val()}, -               load_shortcut_menu -        ); -    });      $("#current_contextrecord").change(function(){          $.post('/' + url_path + 'update-current-item/',                 {item:'contextrecord', value:$("#current_contextrecord").val()}, @@ -267,3 +270,64 @@ function show_hide_flex(id){          $(id).hide();      }  } + +var delay = (function(){ +  var timer = 0; +  return function(callback, ms){ +    clearTimeout (timer); +    timer = setTimeout(callback, ms); +  }; +})(); + + +function chosen_ajaxify(id, ajax_url, current_change_callback){ +    $('div#' + id + '_chosen .chosen-search input').keyup(function(){ +        var keyword = $('div#' + id + '_chosen .chosen-search input').val(); +        var keyword_pattern = new RegExp(keyword, 'gi'); +        $('div#' + id + '_chosen ul.chosen-results').empty(); +        $("#"+id).empty(); +        delay(function(){ +            $.ajax({ +                url: ajax_url + keyword, +                dataType: "json", +                success: function(response){ +                    $('#'+id).append('<option value="">--</option>'); +                    $.map(response['rows'], function(item){ +                        $('#'+id).append('<option value="' + item['id'] + '">' + item['cached_label'] + '</option>'); +                    }); +                    $("#"+id).trigger("chosen:updated"); +                    $('div#' + id + '_chosen .chosen-search input').val(keyword); +                    $('div#' + id + '_chosen').removeClass('chosen-container-single-nosearch'); +                    $('div#' + id + '_chosen .chosen-search input').removeAttr('readonly'); +                    $('div#' + id + '_chosen .chosen-search input').focus(); +                    /* +                    $('div#' + id + '_chosen .active-result').each(function(){ +                        var html = $('div#' + id + '_chosen ul.chosen-results').html(); +                        $('div#' + id + '_chosen ul.chosen-results').html(html.replace(keyword_pattern, function(matched){ +                            return '<em>' + matched + '</em>'; +                        })); +                    });*/ +                    $("#" + id).change(current_change_callback); +                } +            }); +        }, 1000); +    }); +} + + +var activate_all_search_msg = "Searches in the shortcut menu deals with all items."; +var activate_own_search_msg = "Searches in the shortcut menu deals with only your items."; + +function activate_all_search(){ +    $('.activate_all_search').removeClass('disabled'); +    $('.activate_own_search').addClass('disabled'); +    display_info(activate_all_search_msg); +    return false; +} + +function activate_own_search(){ +    $('.activate_own_search').removeClass('disabled'); +    $('.activate_all_search').addClass('disabled'); +    display_info(activate_own_search_msg); +    return false; +} | 
