aboutsummaryrefslogtreecommitdiffhomepage
path: root/share
diff options
context:
space:
mode:
authorGravatar Siteshwar Vashisht <siteshwar@gmail.com>2013-09-07 22:57:25 +0530
committerGravatar Siteshwar Vashisht <siteshwar@gmail.com>2013-10-17 19:47:04 +0530
commit171bcb1ccf4368abc197849627c8f6007ca1b8ad (patch)
tree23b4752b2548484dbc88c27d78c404470aad2513 /share
parent5e53c1cde810b2ebff201ca33382545c000fe425 (diff)
Cleaned up index.html
Diffstat (limited to 'share')
-rw-r--r--share/tools/web_config/index.html458
-rw-r--r--share/tools/web_config/webconfig.js19
2 files changed, 21 insertions, 456 deletions
diff --git a/share/tools/web_config/index.html b/share/tools/web_config/index.html
index 698971b1..d79c4af9 100644
--- a/share/tools/web_config/index.html
+++ b/share/tools/web_config/index.html
@@ -10,72 +10,9 @@
<script type="text/javascript">
-function show_error(msg) {
- $('#global_error').text(msg)
-}
-
-function request_failed(jqXHR, textStatus, errorThrown) {
- msg = ''
- if (textStatus == "timeout") {
- msg = 'The request timed out. Perhaps the server has shut down or is hung.'
- } else if (textStatus == "error") {
- msg = 'The request received an error.'
- if (jqXHR.status == 0)
- msg = msg + ' Perhaps the server has shut down.'
- } else if (msg == 'abort') {
- msg = 'The request aborted.'
- } else if (msg == 'parsererror') {
- msg = 'The request experienced a parser error.'
- } else {
- msg = 'The request had an unknown error "' + textStatus + '."'
- }
-
- if (errorThrown.length > 0) {
- msg = msg + ' The HTTP reply returned ' + errorThrown
- }
- show_error(msg)
-}
-
-/* Runs a GET request, parses the JSON, and invokes the handler for each element in it. The JSON result is assumed to be an array. */
-function run_get_request_with_bulk_handler(url, handler) {
- $.ajax({
- type: "GET",
- url: url,
- dataType: "text",
- success: function(data){
- $('#global_error').text('')
- handler($.parseJSON(data))
- },
- error: request_failed
- })
-}
-
-function run_get_request(url, handler) {
- run_get_request_with_bulk_handler(url, function(json_contents){
- $.each(json_contents, function(idx, contents){
- handler(contents)
- })
- })
-}
-
-
-/* As above but with POST request. */
-function run_post_request(url, data_map, handler) {
- $.ajax({
- type: "POST",
- url: url,
- dataType: "text",
- data: data_map,
- success: function(data){
- $('#global_error').text('')
- $.each($.parseJSON(data), function(idx, contents) {
- handler(contents)
- })
- },
- error: request_failed
- })
-}
-
+/*
+Need to find what to do with these functions
+*/
function rgb_to_hsl(r, g, b){
r /= 255, g /= 255, b /= 255;
var max = Math.max(r, g, b), min = Math.min(r, g, b);
@@ -157,175 +94,6 @@ function master_color_for_color(color_str) {
})
}
-/* Update prompt_demo_text with the given text, adjusting the font */
-function set_prompt_demo_text(txt, font_size) {
- /* Set the font size and the text */
- var prompt_demo_text = $('.prompt_demo_text')
- prompt_demo_text.css('font-size', font_size)
- prompt_demo_text.html(txt)
-}
-
-function current_master_element_name() {
- /* Get the name of the current color variable, like 'autosuggestion' */
- var elems = $('.selected_master_elem')
- if (elems.length == 0) {
- return ''
- }
- elem = elems[0]
- if (elem.id.indexOf('master_') != 0) {
- show_error('Unknown master variable')
- return ''
- }
- return elem.id.substring(7)
-}
-
-function is_foreground() {
- /* Returns true if the selected tab is foreground, false if it's background */
- who = $('.colorpicker_target_selected')
- if (who.length == 0) {
- show_error('Not sure if we are in foreground or background')
- return false
- }
- return who[0].id == 'foreground'
-}
-
-function current_style() {
- /* Returns the style object corresponding to the current color variable */
- return style_map[current_master_element_name()]
-}
-
-function reflect_style() {
- /* Unselect everything */
- $('.colorpicker_cell_selected').removeClass('colorpicker_cell_selected')
- $('.modifier_cell_selected').removeClass('modifier_cell_selected')
- $('.master_element_no_border').removeClass('master_element_no_border')
-
- /* Now update the color picker with the current style (if we have one) */
- style = current_style()
- if (style) {
-
- /* Use this function to make a color that contrasts well with the given color */
- var adjust = .5
- function compute_constrast(lightness){
- var new_lightness = lightness + adjust
- if (new_lightness > 1.0 || new_lightness < 0.0) {
- new_lightness -= 2 * adjust
- }
- return new_lightness
- }
-
- color = is_foreground() ? style.color : style.background_color
- var color_cell = $('#color_' + color)
- color_cell.addClass('colorpicker_cell_selected')
- color_cell.css('border-color', adjust_lightness(is_foreground() ? style.color : style.background_color, compute_constrast))
-
- if (style.underline) {
- $('#modifier_underline').addClass('modifier_cell_selected')
- }
-
- /* In the master list, ensure the color is visible against the dark background. If we're deselecting, use COLOR_NORMAL */
- master_color = style.color ? master_color_for_color(style.color) : COLOR_NORMAL
- //$('.selected_master_elem').children('.master_element_text').css({'color': master_color, 'border-bottom-color': master_color})
-
- var selected_elem = $('.selected_master_elem');
- var desc_elems = selected_elem.children('.master_element_description')
- selected_elem.css({'color': master_color})
- selected_elem.children().css({'border-bottom-color': master_color})
- if (desc_elems.length) {
- /* We have a description element, so hide the bottom border of the master element */
- selected_elem.children('.master_element_text').addClass('master_element_no_border')
- }
- }
-}
-
-function cleanup_fish_function(contents) {
- /* Replace leading tabs and groups of four spaces at the beginning of a line with two spaces. */
- lines = contents.split('\n')
- rx = /^[\t ]+/
- for (var i=0; i < lines.length; i++) {
- line = lines[i]
- /* Get leading tabs and spaces */
- whitespace_arr = rx.exec(line)
- if (whitespace_arr) {
- /* Replace four spaces with two spaces, and tabs with two spaces */
- var whitespace = whitespace_arr[0]
- new_whitespace = whitespace.replace(/( )|(\t)/g, ' ')
- lines[i] = new_whitespace + line.slice(whitespace.length)
- }
- }
- return lines.join('\n')
-}
-
-function select_master_element(elem) {
- $('.selected_master_elem').removeClass('selected_master_elem')
- $(elem).addClass('selected_master_elem')
-}
-
-function select_color_master_element(elem) {
- select_master_element(elem)
-
- /* This changed the current style; reflect that */
- reflect_style()
-}
-
-function select_function_master_element(elem) {
- select_master_element(elem)
-
- run_post_request('/get_function/', {
- what: current_master_element_name()
- }, function(contents){
- /* Replace leading tabs and groups of four spaces at the beginning of a line with two spaces. */
- munged_contents = cleanup_fish_function(contents)
- $('#detail_function').text(munged_contents)
- });
-}
-
-var sample_prompts = new Array();
-
-function select_sample_prompt_master_element(elem) {
- $('.prompt_save_button').show()
- select_master_element(elem)
- var name = current_master_element_name()
- sample_prompt = sample_prompts[name]
- run_post_request('/get_sample_prompt/', {
- what: sample_prompt['function']
- }, function(keys_and_values){
- var prompt_func = keys_and_values['function']
- var prompt_demo = keys_and_values['demo']
- var prompt_font_size = keys_and_values['font_size']
- set_prompt_demo_text(prompt_demo, prompt_font_size)
- //$('.prompt_demo_text').html(prompt_demo)
- $('.prompt_function_text').text(cleanup_fish_function(prompt_func))
- })
-}
-
-function select_current_prompt_master_element(elem) {
- $('.prompt_save_button').hide()
- select_master_element(elem)
- run_get_request_with_bulk_handler('/current_prompt/', function(keys_and_values){
- var prompt_func = keys_and_values['function']
- var prompt_demo = keys_and_values['demo']
- var prompt_font_size = keys_and_values['font_size']
- set_prompt_demo_text(prompt_demo, prompt_font_size)
- $('.prompt_function_text').text(cleanup_fish_function(prompt_func))
- })
-}
-
-/* Applies the current prompt */
-function save_current_prompt() {
- var name = current_master_element_name()
- var sample_prompt = sample_prompts[name]
- run_post_request('/set_prompt/', {
- what: sample_prompt['function']
- }, function(contents){
- if (contents == "OK") {
- select_current_prompt_master_element($('#master_Current'))
- } else {
- show_error(contents)
- }
- })
-}
-
function post_style_to_server() {
style = current_style()
if (! style)
@@ -342,60 +110,6 @@ function post_style_to_server() {
})
}
-function picked_color_cell(cell) {
-
- /* Get the color to set */
- if (cell.id.indexOf('color_') != 0) {
- show_error('Unknown cell')
- return
- }
- color = cell.id.substring(6)
-
- /* Determine whether we are going to select or unselect this cell */
- var deselect = $(cell).hasClass('colorpicker_cell_selected')
-
- /* Get the current style */
- style = current_style()
- if (! style)
- return
-
- /* Change the color */
- if (is_foreground()) {
- style.color = deselect ? '' : color
- } else {
- style.background_color = deselect ? '' : color
- }
-
- /* Show our changes */
- reflect_style()
-
- /* Tell the server */
- post_style_to_server()
-}
-
-function picked_modifier(cell) {
- style = current_style()
- if (! style)
- return
- if (cell.id == 'modifier_underline') {
- style.underline = ! style.underline
- } else if (cell.id == 'modifier_bold') {
- style.bold = ! style.bold
- } else {
- show_error('Unknown cell')
- }
-
- reflect_style()
- post_style_to_server()
-}
-
-function picked_colorpicker_target(tab) {
- /* The function that gets called when a tab is selected */
- $('.colorpicker_target_selected').removeClass('colorpicker_target_selected')
- $(tab).addClass('colorpicker_target_selected')
- reflect_style()
-}
-
/* Given a color name, like 'normal' or 'red' or 'FF00F0', return an RGB color string (or empty string) */
function interpret_color(str) {
str = str.toLowerCase()
@@ -413,172 +127,6 @@ function interpret_color(str) {
return str
}
-/* Class representing a color style */
-function Style(stuff) {
- this.color = interpret_color(stuff[0])
- this.background_color = interpret_color(stuff[1])
- this.bold = stuff[2]
- this.underline = stuff[3]
-}
-
-var style_map = new Array();
-
-//var items_per_row = 15
-var show_labels = 0
-
-var COLOR_NORMAL = 'CCC'
-
-/* Adds a new element to master */
-function create_master_element(contents, description_or_false, color, font_size, click_handler) {
- /* In the master list, ensure the color is visible against the dark background */
- var master_color = color ? master_color_for_color(color) : COLOR_NORMAL
- var master_style = 'color: #' + master_color
- var master_children_style = 'border-bottom-color: #' + master_color
- var text_style = ''
-
- if (font_size.length > 0) {
- text_style += 'font-size: ' + font_size + ';'
- }
-
- if (contents.length >= 20) {
- text_style += 'letter-spacing:-2px;'
- }
-
- elem = $('<div/>', {
- class: 'master_element',
- id: 'master_' + contents,
- style: master_style,
- click: function(){
- click_handler(this)
- }
- }).append(
- $("<span/>", {
- class: 'master_element_text',
- style: text_style,
- text: contents,
- })
- )
-
- /* Append description if we have one */
- if (description_or_false) {
- /* Newline between label and description */
- elem.append($('<br/>'))
- elem.append(
- $('<span/>', {
- class: 'master_element_description',
- text: description_or_false
- })
- )
- }
-
- /* Update border color of the master element's children */
- elem.children().css(master_children_style)
-
- elem.appendTo('#master')
- return elem
-}
-
-/* Toggle the no_overflow class */
-function toggle_overflow(who) {
- $(who).toggleClass('no_overflow')
-}
-
-function escape_HTML(foo) {
- return foo.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
-}
-
-/* Given the image, walk up to the table */
-function tell_fish_to_delete_element(idx) {
- var row_elem = $('#data_table_row_' + idx)
- var txt = history_element_map[idx]
- run_post_request('/delete_history_item/', {
- what: txt
- }, function(contents){
- if (contents == "OK") {
- row_elem.remove();
- } else {
- show_error(contents)
- }
- });
-}
-
-
-/* Creates a new row in the data table */
-var last_global_element_identifier = 0
-var history_element_map = new Array();
-
-function create_data_table_element_text(contents_list, show_delete_button) {
- var element_identifier = (++last_global_element_identifier).toString()
- lines = new Array()
- var result_str = '<tr class="data_table_row" id="data_table_row_' + element_identifier + '">'
- for (idx = 0; idx < contents_list.length; idx++) {
- /* If we have more than one, then align the first one right, subsequent ones left */
- if (idx == 0 && contents_list.length > 1) {
- result_str += '<td class="data_table_cell no_overflow" style="text-align: right; padding-right: 30px;">'
- } else {
- result_str += '<td class="data_table_cell no_overflow" style="text-align: left; padding-right: 30px;" onClick:"toggle_overflow(this)">'
- }
- text_list = contents_list[idx].split("\n")
- for (j=0; j < text_list.length; j++) {
- if (j > 0) result_str += '<br>'
- result_str += escape_HTML(text_list[j]);
- }
- result_str += '</td>'
- }
- if (show_delete_button) {
- result_str += '<td class="data_table_cell" style="text-align: right; width: 25px"><a onClick="tell_fish_to_delete_element(' + element_identifier + ')"><img class="delete_icon" src="delete.png"></a></td>'
- }
- result_str += '</tr>'
- return result_str
-}
-
-/* Update the filter text box */
-function update_table_filter_text_box(allow_transient_message) {
- var box = $('#table_filter_text_box')
- var has_transient = box.hasClass('text_box_transient')
- if (! allow_transient_message && has_transient) {
- box.val('')
- box.removeClass('text_box_transient')
- has_transient = false
- } else if (allow_transient_message && ! has_transient && ! box.val().length) {
- box.val('Filter')
- box.addClass('text_box_transient')
- has_transient = true
- }
-
- var search_text = box.val()
- if (has_transient || search_text.length == 0) {
- /* Unfilter all */
- $('.data_table_row_filtered').removeClass('data_table_row_filtered')
- } else {
- /* Helper function to return whether a node (or its descendants) matches the given text */
- function match_text(node) {
- if (node.nodeType == 3) {
- return node.nodeValue.indexOf(search_text) != -1
- } else {
- for (var i = 0, len = node.childNodes.length; i < len; ++i) {
- if (match_text(node.childNodes[i])) {
- return true;
- }
- }
- }
- return false
- }
-
- $('.data_table_row').each(function(idx) {
- var row = $(this)
- var is_hidden = row.hasClass('data_table_row_filtered')
- var should_be_hidden = ! match_text(this)
- if (is_hidden && ! should_be_hidden) {
- row.removeClass('data_table_row_filtered')
- } else if (! is_hidden && should_be_hidden) {
- row.addClass('data_table_row_filtered')
- }
- })
- }
-
- return true
-}
</script>
</head>
diff --git a/share/tools/web_config/webconfig.js b/share/tools/web_config/webconfig.js
index 001e4791..d74c5a9b 100644
--- a/share/tools/web_config/webconfig.js
+++ b/share/tools/web_config/webconfig.js
@@ -164,9 +164,26 @@ webconfig.controller("functionsController", function($scope, $http) {
$scope.selectFunction($scope.functions[0]);
})};
+ $scope.cleanupFishFunction = function (contents) {
+ /* Replace leading tabs and groups of four spaces at the beginning of a line with two spaces. */
+ lines = contents.split('\n')
+ rx = /^[\t ]+/
+ for (var i=0; i < lines.length; i++) {
+ line = lines[i]
+ /* Get leading tabs and spaces */
+ whitespace_arr = rx.exec(line)
+ if (whitespace_arr) {
+ /* Replace four spaces with two spaces, and tabs with two spaces */
+ var whitespace = whitespace_arr[0]
+ new_whitespace = whitespace.replace(/( )|(\t)/g, ' ')
+ lines[i] = new_whitespace + line.slice(whitespace.length)
+ }
+ }
+ return lines.join('\n')
+ }
$scope.fetchFunctionDefinition = function(name) {
$http.post("/get_function/","what=" + name, { headers: {'Content-Type': 'application/x-www-form-urlencoded'} }).success(function(data, status, headers, config) {
- $scope.functionDefinition = data[0];
+ $scope.functionDefinition = $scope.cleanupFishFunction(data[0]);
})};
$scope.fetchFunctions();
});