summaryrefslogtreecommitdiff
path: root/ishtar_common/static/js/ishtar.js
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-09-24 16:13:16 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-09-24 16:48:04 +0200
commit58f9b60015a1d83ccfbeb202aaf3f9ac6c351b38 (patch)
tree354a5f8d9b9c2b226c7fae104a4f799d6a8fceef /ishtar_common/static/js/ishtar.js
parent457fd420d45b0563d65277896c8e06bdf3403bf6 (diff)
downloadIshtar-58f9b60015a1d83ccfbeb202aaf3f9ac6c351b38.tar.bz2
Ishtar-58f9b60015a1d83ccfbeb202aaf3f9ac6c351b38.zip
WIP: ajaxify shortcut menu - 3
Diffstat (limited to 'ishtar_common/static/js/ishtar.js')
-rw-r--r--ishtar_common/static/js/ishtar.js144
1 files changed, 41 insertions, 103 deletions
diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js
index 393603b6c..9021dc4f5 100644
--- a/ishtar_common/static/js/ishtar.js
+++ b/ishtar_common/static/js/ishtar.js
@@ -37,62 +37,43 @@ function get_next_table_id(){}
function get_previous_table_id(){}
var shortcut_url = '';
-var get_file_url = '/get-file-shortcut/';
-var get_own_file_url = '/get-file-shortcut/own/';
-var get_operation_url = '/get-operation-shortcut/';
-var get_own_operation_url = '/get-operation-shortcut/own/';
-var get_contextrecord_url = '/get-contextrecord-shortcut/';
-var get_own_contextrecord_url = '/get-contextrecord-shortcut/own/';
-var get_find_url = '/get-find-shortcut/';
-var get_own_find_url = '/get-find-shortcut/own/';
-var shortcut_get_attr = '?submited=1&page=1&rows=10&cached_label=';
+var activate_all_search_url = '/activate-all-search/';
+var activate_own_search_url = '/activate-own-search/';
-var current_file_change = function(){
- $.post('/' + url_path + 'update-current-item/',
- {item:'file', value:$("#current_file").val()},
- load_shortcut_menu
- );
-};
-
-var current_operation_change = function(){
- $.post('/' + url_path + 'update-current-item/',
- {item:'operation', value:$("#current_operation").val()},
- load_shortcut_menu
- );
-};
-
-var current_contextrecord_change = function(){
- $.post('/' + url_path + 'update-current-item/',
- {item:'contextrecord', value:$("#current_contextrecord").val()},
- load_shortcut_menu
- );
-};
-
-var current_find_change = function(){
- $.post('/' + url_path + 'update-current-item/',
- {item:'find', value:$("#current_find").val()},
- load_shortcut_menu
- );
-};
function init_shortcut_fields(){
- var is_own = $('.activate_all_search').hasClass('disabled');
- var file_url = get_file_url;
- if (is_own) file_url = get_own_file_url;
- chosen_ajaxify("current_file", file_url + shortcut_get_attr,
- current_file_change);
- var operation_url = get_operation_url;
- if (is_own) operation_url = get_own_operation_url;
- chosen_ajaxify("current_operation", operation_url + shortcut_get_attr,
- current_operation_change);
- var contextrecord_url = get_contextrecord_url;
- if (is_own) contextrecord_url = get_own_contextrecord_url;
- chosen_ajaxify("current_contextrecord", contextrecord_url + shortcut_get_attr,
- current_contextrecord_change);
- var find_url = get_find_url;
- if (is_own) find_url = get_own_find_url;
- chosen_ajaxify("current_find", find_url + shortcut_get_attr,
- current_find_change);
+ $('#id_file-shortcut').change(function(){
+ $("#id_select_file-shortcut").attr(
+ 'title', $('#id_select_file-shortcut').val());
+ $.post('/' + url_path + 'update-current-item/',
+ {item: "file", value:$("#id_file-shortcut").val()},
+ load_shortcut_menu
+ );
+ });
+ $('#id_operation-shortcut').change(function(){
+ $("#id_select_operation-shortcut").attr(
+ 'title', $('#id_select_operation-shortcut').val());
+ $.post('/' + url_path + 'update-current-item/',
+ {item: "operation", value:$("#id_operation-shortcut").val()},
+ load_shortcut_menu
+ );
+ });
+ $('#id_contextrecord-shortcut').change(function(){
+ $("#id_select_contextrecord-shortcut").attr(
+ 'title', $('#id_select_contextrecord-shortcut').val());
+ $.post('/' + url_path + 'update-current-item/',
+ {item: "contextrecord", value:$("#id_contextrecord-shortcut").val()},
+ load_shortcut_menu
+ );
+ });
+ $('#id_find-shortcut').change(function(){
+ $("#id_select_find-shortcut").attr(
+ 'title', $('#id_select_find-shortcut').val());
+ $.post('/' + url_path + 'update-current-item/',
+ {item: "find", value:$("#id_find-shortcut").val()},
+ load_shortcut_menu
+ );
+ });
}
function init_shortcut_menu(html){
@@ -225,7 +206,7 @@ function load_window(url, speed, on_success){
}
function load_current_window(url, model_name){
- var id = $("#current_" + model_name).val();
+ var id = $("#id_" + model_name + "-shortcut").val();
if (!id) return;
url = url.split('/');
url[url.length - 1] = id;
@@ -302,66 +283,23 @@ function show_hide_flex(id){
}
}
-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>');
- if ('rows' in response){
- $.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');
- init_shortcut_fields();
- display_info(activate_all_search_msg);
+ $.get(activate_all_search_url, function(data) {
+ display_info(activate_all_search_msg);
+ });
return false;
}
function activate_own_search(){
$('.activate_own_search').removeClass('disabled');
$('.activate_all_search').addClass('disabled');
- init_shortcut_fields();
- display_info(activate_own_search_msg);
+ $.get(activate_own_search_url, function(data) {
+ display_info(activate_own_search_msg);
+ });
return false;
}