boris-vlasenko

Untitled

Oct 30th, 2015
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 16.70 KB | None | 0 0
  1. <!-- локальный!!!! -->
  2.  
  3.  
  4. function send(this_form){
  5.       var msg   = $(this_form).serialize();
  6.         $.ajax({
  7.           type: 'POST',
  8.           url: 'test_answer',
  9.           data: msg,
  10.           success: function(data) {
  11.             //$('#result' + this_form.task_id.value).html(data);
  12.             if (data == '+') {
  13.                 $('#' + this_form.task_id.value).removeClass('alert-warning');
  14.                 $('#' + this_form.task_id.value).removeClass('alert-danger');
  15.                 $('#' + this_form.task_id.value).addClass('alert-success');
  16.             }
  17.             else {
  18.                 $('#' + this_form.task_id.value).removeClass('alert-success');
  19.                 $('#' + this_form.task_id.value).removeClass('alert-warning');
  20.                 $('#' + this_form.task_id.value).addClass('alert-danger');
  21.             }
  22.           },
  23.           error:  function(xhr, str){
  24.                 alert('Ошибка связи с сервером. Невозможно проверить ответ: ' + xhr.responseCode);
  25.             }
  26.         });
  27. }
  28.  
  29.  
  30. function get_answer(this_form){
  31.     var msg = $(this_form).serialize();
  32.     $.ajax({
  33.         type: 'POST',
  34.         url: 'get_answer',
  35.         data: msg,
  36.         success: function (data) {
  37.             $('#get_answer' + this_form.task_id.value).html(data);
  38.             $('#' + this_form.task_id.value).removeClass('alert-success');
  39.             $('#' + this_form.task_id.value).removeClass('alert-warning');
  40.             $('#' + this_form.task_id.value).addClass('alert-danger');
  41.             //$('#answer' + this_form.task_id.value).html(data);
  42.             //$('#answer_button' + this_form.task_id.value).html(data);
  43.         },
  44.         error: function (xhr, str) {
  45.             alert('Ошибка связи с сервером. Невозможно получить ответ: ' + xhr.responseCode);
  46.         }
  47.     });
  48.  
  49. }
  50.  
  51.  
  52.  
  53. function show_message_about_error(this_form) {
  54.     $('#show_error_popup_task_id').val(this_form.task_id.value);
  55.     var message = '';
  56.     var mes1 = this_form.answer_text.value;
  57.     if (mes1){
  58.         message += "Мое решение:\n" + mes1 + '\n';
  59.     }
  60.     var mes2 = this_form.answer.value;
  61.     if (mes2){
  62.         message += "Мой ответ: " + mes2 + "\n";
  63.     }
  64.     message += "Выделенный текст:\n" + window.getSelection();
  65.     $('#show_error_popup_message').val(message);
  66.     $('#show_error_popup').modal('show');
  67. }
  68.  
  69.  
  70. function send_message_about_error(this_form) {
  71.       var msg   = $(this_form).serialize();
  72.         $.ajax({
  73.           type: 'POST',
  74.           url: 'message_about_error',
  75.           data: msg,
  76.           success: function(data) {
  77.                  alert(data);
  78.           },
  79.           error:  function(xhr, str){
  80.                 alert('Ошибка связи с сервером. ' + xhr.responseCode);
  81.             }
  82.         });
  83. }
  84.  
  85.  
  86. function show_help_me_form(this_form) {
  87.     $('#help_me_task_id').val(this_form.task_id.value);
  88.     var message = '';
  89.     var mes1 = this_form.answer_text.value;
  90.     if (mes1){
  91.         message += "Мое решение:\n" + mes1 + '\n';
  92.     }
  93.     var mes2 = this_form.answer.value;
  94.     if (mes2){
  95.         message += "Мой ответ: " + mes2 + "\n";
  96.     }
  97.     message += "Выделенный текст:\n" + window.getSelection();
  98.     $('#help_me_message').val(message);
  99.     $('#help_me').modal('show');
  100. }
  101.  
  102.  
  103. function send_help_me(this_form){
  104.       var msg   = $(this_form).serialize();
  105.         $.ajax({
  106.           type: 'POST',
  107.           url: 'help_me',
  108.           data: msg,
  109.           success: function(data) {
  110.                  alert(data);
  111.           },
  112.           error:  function(xhr, str){
  113.                 alert('Ошибка связи с сервером. ' + xhr.responseCode);
  114.             }
  115.         });
  116. }
  117.  
  118.  
  119.  
  120. function get_ticket_from_topic(this_form) {
  121.     var msg = $(this_form).serialize();
  122.     $.ajax({
  123.         type: 'POST',
  124.         url: 'get_ticket_from_topic',
  125.         data: msg,
  126.         success: function (data) {
  127.             $('#ticket_select').html(data);
  128.         },
  129.         error: function (xhr, str) {
  130.             <!--alert('Ошибка связи с сервером. Невозможно получить список типов: ' + xhr.responseCode);
  131.             -->
  132.         }
  133.     });
  134. }
  135.  
  136.  
  137. function get_tasks_from_ticket(this_form){
  138.           var msg   = $(this_form).serialize();
  139.             $.ajax({
  140.               type: 'POST',
  141.               url: 'get_tasks_from_ticket',
  142.               data: msg,
  143.               success: function(data) {
  144.                 $('#task_list').html(data);
  145.               },
  146.               error:  function(xhr, str){
  147.                     <!--alert('Ошибка связи с сервером. Невозможно получить список типов: ' + xhr.responseCode);
  148.                     -->
  149.                 }
  150.             });
  151.  
  152. };
  153.  
  154. function get_task_from_id(this_form){
  155.           var msg   = $(this_form).serialize();
  156.             $.ajax({
  157.               type: 'POST',
  158.               url: 'get_task_from_id',
  159.               data: msg,
  160.               success: function(data) {
  161.                 $('#task').html(data);
  162.               },
  163.               error:  function(xhr, str){
  164.                     <!--alert('Ошибка связи с сервером.  ' + xhr.responseCode);
  165.                     -->
  166.                 }
  167.             });
  168.  
  169. };
  170.  
  171.  
  172. function get_kind_from_ticket(this_form){
  173.           var msg   = $(this_form).serialize();
  174.             $.ajax({
  175.               type: 'POST',
  176.               url: 'get_kind_from_ticket',
  177.               data: msg,
  178.               success: function(data) {
  179.                 $('#kind_select').html(data);
  180.               },
  181.               error:  function(xhr, str){
  182.                     <!--alert('Ошибка связи с сервером. Невозможно получить список типов: ' + xhr.responseCode);
  183.                     -->
  184.                 }
  185.             });
  186.     get_tasks_from_ticket(this_form);
  187.  
  188. }
  189.  
  190.  
  191.  
  192. function save_task_from_list(this_form){
  193.         $('#result').html('Отправляю...');
  194.           var msg   = $(this_form).serialize();
  195.             $.ajax({
  196.               type: 'POST',
  197.               url: 'new_task',
  198.               data: msg,
  199.               success: function(data) {
  200.                   if (this_form.task_id === undefined){
  201.                       id = ''}
  202.                   else{
  203.                       id = this_form.task_id.value
  204.                   }
  205.                   $('#result'+id).html(data);
  206.                   get_tasks_from_ticket(this_form);
  207.               },
  208.               error:  function(xhr, str){
  209.                 $('#result').html('Невозможно отправить. Ошибка: ' + xhr.responseCode);
  210.  
  211.                     <!--alert('Ошибка связи с сервером. Невозможно получить список типов: ' + xhr.responseCode);
  212.                     -->
  213.                 }
  214.             });
  215.  
  216. }
  217.  
  218.  
  219. function insert_text_cursor(area, _text){
  220.     /* _obj_name - name объекта - как правило, textarea, но при желании можно сделать любой
  221.        указываем именно NAME, так как согласно стандартам DOCTYPE HTML 4.01 strict и выше
  222.        свойство ID у объектов ввода является не приемлемым и требуется обращаться только name
  223.        _text - текст, который требуется вставить в том место, где сейчас находится курсор
  224.     */
  225.  
  226.     // берем объект
  227.     //var area=document.getElementsByName(_obj_name).item(0);
  228.  
  229.     // ЕСЛИ Mozilla и другие НОРМАЛЬНЫЕ браузеры, ТО
  230.     if ((area.selectionStart)||(area.selectionStart=='0'))
  231.         { // определяем, где начало выделения, если оно существует
  232.          var p_start=area.selectionStart;
  233.  
  234.          // определяем, где заканчивается выделение, если оно существует
  235.          var p_end=area.selectionEnd;
  236.  
  237.          // вставляем соответствующий текст в указанное место
  238.          area.value=area.value.substring(0,p_start)+_text+area.value.substring(p_end,area.value.length);
  239.          // дописал отсюда ---
  240.          area.focus();
  241.          var len = _text.length;
  242.          area.setSelectionRange(p_end+len,p_end+len);
  243.  
  244.         }
  245.  
  246.     // Исправляем очередной геморрой с Internet Explorer
  247.     // единственный НЕ человеческий браузер
  248.     // ЕСЛИ объект может иметь выделения, ТО
  249.     if (document.selection)
  250.         { // передаем фокус ввода на нужный нам объект
  251.          area.focus();
  252.  
  253.          // узнаем выделение, если оно существует
  254.          sel=document.selection.createRange();
  255.  
  256.          // вставляет текст в указанное место
  257.          sel.text=_text;
  258.         }
  259.  
  260. }// end function
  261.  
  262.  
  263. function paint(id){
  264.     /*
  265.     Должен быть создан canvas с id "draw"+id
  266.     Элемент, с "task_html_"+id с текстом задачи (координаты концов: [3,6]
  267.     Поле ввода "strA"+id со координатами отрезка А (два числа с любым разделителем)
  268.  
  269.      */
  270.     var canvas=document.getElementById("draw"+id);
  271.     var cont=canvas.getContext("2d");
  272.     cont.clearRect(0, 0, canvas.width, canvas.height);
  273.  
  274.     var coords = new Array();
  275.     var str = document.getElementById("task_html_"+id).innerHTML;
  276.     var re = new RegExp("([A-Z])\\s*=\\s*\\[(\\d+)[,|.|;|\\s|]*(\\d+)\\]", "g");
  277.     var res = Array();
  278.     while ((res = re.exec(str)) != null) {
  279.         coords.push([+res[2],+res[3],res[1]]);
  280.     }
  281.     var strA = document.getElementById("strA"+id).value;
  282.     var reA = new RegExp("(\\d+)[,|.|;|\\s|]*(\\d+)");
  283.     res = reA.exec(strA);
  284.     coords.push([+res[1],+res[2],'A']);
  285.  
  286.     var y0 = 20;
  287.     var x0 = 20;
  288.     var my = 30;
  289.     var min_x = coords[0][0];
  290.     var max_x = coords[0][0];
  291.     var n = coords.length;
  292.     for (i = 0; i < n; i++) {
  293.         for (j = 0; j <= 1; j++) {
  294.             if (coords[i][j] < min_x) {
  295.                 min_x = coords[i][j];
  296.             };
  297.             if (coords[i][j] > max_x) {
  298.                 max_x = coords[i][j];
  299.             };
  300.         };
  301.     };
  302.  
  303.     min_x -= 5;
  304.     max_x += 5;
  305.     var mx = (500-x0)/(max_x-min_x);
  306.     x0 = x0 - min_x*mx;
  307.     var colors = Array('rgb(16,155,252)','rgb(0,200,50)','orange','olive','black','yellow');
  308.  
  309.     for (i = 0; i < n; i++){
  310.         cont.beginPath();
  311.         cont.lineWidth = 7;
  312.         cont.strokeStyle = colors[i];
  313.         cont.moveTo(x0+coords[i][0]*mx,y0 + i*my);
  314.         cont.lineTo(x0+coords[i][1]*mx,y0 + i*my);
  315.         cont.stroke();
  316.  
  317.         cont.beginPath();
  318.         cont.lineWidth = 1;
  319.         cont.strokeStyle = colors[i];
  320.         cont.moveTo(x0+coords[i][0]*mx,y0 + i*my-3);
  321.         cont.lineTo(x0+coords[i][0]*mx,y0 + (n+1)*my);
  322.         cont.stroke();
  323.  
  324.         cont.beginPath();
  325.         cont.lineWidth = 1;
  326.         cont.strokeStyle = colors[i];
  327.         cont.moveTo(x0+coords[i][1]*mx,y0 + i*my-3);
  328.         cont.lineTo(x0+coords[i][1]*mx,y0 + (n+1)*my);
  329.         cont.stroke();
  330.  
  331.         cont.font = '14pt Georgia';
  332.         cont.fillStyle = colors[i];
  333.         cont.fillText(coords[i][2], 0,y0+(i+0.2)*my);
  334.  
  335.         cont.font = '8pt Tahoma';
  336.         cont.fillText(coords[i][0], x0+coords[i][0]*mx-5,y0+(n+1.5)*my);
  337.         cont.fillText(coords[i][1], x0+coords[i][1]*mx-5,y0+(n+1.5)*my);
  338.  
  339.     };
  340.  
  341.     cont.beginPath();
  342.     cont.lineWidth = 1;
  343.     cont.strokeStyle = 'black';
  344.     cont.moveTo(0,y0 + (n+1)*my);
  345.     cont.lineTo(500,y0 + (n+1)*my);
  346.     cont.stroke();
  347. };
  348.  
  349. function paint_eiler(id,n){
  350.     /*
  351.     Должен быть создан canvas с id "draw"+id
  352.     Элемент, с "task_html_"+id с текстом задачи (координаты концов: [3,6]
  353.     Поле ввода "strA"+id со координатами отрезка А (два числа с любым разделителем)
  354.  
  355.      */
  356.     var canvas=document.getElementById("draw"+id);
  357.     var cont=canvas.getContext("2d");
  358.     cont.clearRect(0, 0, canvas.width, canvas.height);
  359.  
  360.     var colors = Array('','rgba(0,200,50,50)','orange','olive','black','yellow');
  361.     cont.strokeStyle = "blue";
  362.     cont.beginPath();
  363.     var x1 = 100;
  364.     var y1 = 65;
  365.     var r1 = 60;
  366.     if (n == 3){
  367.         cont.arc(x1, y1, r1, 0, Math.PI*2, true);
  368.         cont.closePath();
  369.         cont.stroke();
  370.  
  371.         cont.strokeStyle = "orange";
  372.         cont.beginPath();
  373.         cont.arc(x1+r1, y1,r1, 0, Math.PI*2, true);
  374.         cont.closePath();
  375.         cont.stroke();
  376.  
  377.         cont.strokeStyle = "green";
  378.         cont.beginPath();
  379.         cont.arc(x1+r1/2, y1+r1,r1, 0, Math.PI*2, true);
  380.         cont.closePath();
  381.         cont.stroke();
  382.  
  383.         cont.fillStyle  = "black";
  384.         cont.fillColor = "black";
  385.         cont.font = '14pt Tahoma';
  386.         cont.fillText('1',x1-r1*0.5,y1-r1*0.25);
  387.  
  388.         cont.font = '14pt Tahoma';
  389.         cont.fillText('2',x1+r1*1.42,y1-r1*0.25);
  390.  
  391.         cont.font = '14pt Tahoma';
  392.         cont.fillText('3',x1+r1*0.42,y1+r1*1.7);
  393.  
  394.         cont.font = '14pt Tahoma';
  395.         cont.fillText('4',x1-r1/8,y1+r1*0.8);
  396.  
  397.         cont.font = '14pt Tahoma';
  398.         cont.fillText('5',x1+r1*0.42,y1-r1*0.25);
  399.  
  400.         cont.font = '14pt Tahoma';
  401.         cont.fillText('6',x1+r1,y1+r1*0.8);
  402.  
  403.         cont.font = '14pt Tahoma';
  404.         cont.fillText('7',x1+r1*0.42,y1+r1*0.5);
  405.     };
  406.     if (n == 1) {
  407.         cont.arc(x1, y1, r1, 0, Math.PI * 2, true);
  408.         cont.closePath();
  409.         cont.stroke();
  410.  
  411.         cont.strokeStyle = "orange";
  412.         cont.beginPath();
  413.         cont.arc(x1 + r1, y1, r1, 0, Math.PI * 2, true);
  414.         cont.closePath();
  415.         cont.stroke();
  416.  
  417.         cont.font = '14pt Tahoma';
  418.         cont.fillText('1', x1 - r1 * 0.5, y1);
  419.  
  420.         cont.font = '14pt Tahoma';
  421.         cont.fillText('2', x1 + r1 * 1.5, y1);
  422.  
  423.         cont.font = '14pt Tahoma';
  424.         cont.fillText('3', x1+r1/2, y1);
  425.     };
  426.  
  427.     if (n == 2){
  428.         cont.arc(x1, y1, r1, 0, Math.PI*2, true);
  429.         cont.closePath();
  430.         cont.stroke();
  431.  
  432.         cont.strokeStyle = "orange";
  433.         cont.beginPath();
  434.         cont.arc(x1+r1*1.25, y1,r1, 0, Math.PI*2, true);
  435.         cont.closePath();
  436.         cont.stroke();
  437.  
  438.         cont.strokeStyle = "green";
  439.         cont.beginPath();
  440.         cont.arc(x1+r1*2.5, y1,r1, 0, Math.PI*2, true);
  441.         cont.closePath();
  442.         cont.stroke();
  443.  
  444.         cont.font = '14pt Tahoma';
  445.         cont.fillText('1',x1-r1*0.5,y1);
  446.  
  447.         cont.font = '14pt Tahoma';
  448.         cont.fillText('2',x1+r1*1.2,y1);
  449.  
  450.         cont.font = '14pt Tahoma';
  451.         cont.fillText('4',x1+r1/2,y1);
  452.  
  453.         cont.font = '14pt Tahoma';
  454.         cont.fillText('5',x1+r1*1.8,y1);
  455.  
  456.         cont.font = '14pt Tahoma';
  457.         cont.fillText('3',x1+r1*2.9,y1);
  458.     };
  459.  
  460.  
  461.  
  462.     cont.stroke();
  463.  
  464. };
  465.  
  466.  
  467. function clean_logic(str){
  468.     // очистить формулу и заменить всякую фигню на нормальные знаки HTML
  469.     // в дальнейшем добавить генерацию изображения, формулы и других форматах
  470.     var op = ['&isin;','&#notin;','&and;','&or;','&rArr;','&#8654;','&not;','&and;','&or;','&rArr;','&hArr;','&#8654;','&not;','&and;','&or;','&not;','&and;','&or;','&or;','&and;','&rArr;'];
  471.     var txt_op =  ['','','^','v','->','!=','-',' and ',' or ',' imp ',' eq ',' neq ',' not ','\\*','\\+','¬','','','\\\\/','\\/\\\\','→'];
  472.     var i;
  473.     console.log(str);
  474.     for (i = 0; i < txt_op.length; i++){
  475.         console.log(txt_op[i],op[i]);
  476.         var re = new RegExp(txt_op[i],"g");
  477.         str = str.replace(re,op[i]);
  478.     }
  479.  
  480.     document.getElementById("output").value = str;
  481.  
  482. };
  483.  
  484.  
  485. function draw_chart(data,id,kind,options) {
  486.     //console.log('!!!');
  487.     //google.setOnLoadCallback(drawChart);
  488.     //alert(options);
  489.     var datatable = google.visualization.arrayToDataTable(data);
  490.     if (kind == "pie") {
  491.         var chart = new google.visualization.PieChart(document.getElementById(id));
  492.     }
  493.     else if (kind == "column"){
  494.         var chart = new google.visualization.ColumnChart(document.getElementById(id));
  495.     }
  496.     else if (kind == "line"){
  497.         var chart = new google.visualization.LineChart(document.getElementById(id));
  498.     }
  499.     chart.draw(datatable,options);
  500.  
  501. };
Advertisement
Add Comment
Please, Sign In to add comment