/* Ajax loader */
function ajax_loader(key) {
if (key == "clear") {
$(".ajax-loader").remove();
} else {
$(".ajax-loader").remove();
$(key).after("");
}
}
/**************************** math captcha function ***********************/
var total;
function getRandom(){
return Math.ceil(Math.random()* 20);
}
function createSum(){
var randomNum1 = getRandom(),
randomNum2 = getRandom();
total =randomNum1 + randomNum2;
$("#question" ).text( randomNum1 + " + " + randomNum2 + "=" );
$("#ans").val('');
checkInput();
}
function checkInput(){
var input = $("#ans").val(),
slideSpeed = 200,
hasInput = !!input,
valid = hasInput && input == total;
$('#message').toggle(!hasInput);
$('input[type=submit]').prop('disabled', !valid);
$('#success').toggle(valid);
$('#fail').toggle(hasInput && !valid);
}
/**************************** math captcha function end *******************/
$(document.body).ready(function() {
var editor = CodeMirror.fromTextArea(document.getElementById(
"code"), {
lineNumbers: true,
lineWrapping: true,
theme: "default",
extraKeys: {
"F11": function(cm) {
cm.setOption("fullScreen", !cm.getOption(
"fullScreen"));
},
"Esc": function(cm) {
if (cm.getOption("fullScreen")) cm
.setOption(
"fullScreen", false);
}
}
});
var result = CodeMirror.fromTextArea(document.getElementById(
"result"), {
lineWrapping: true,
theme: "default",
readOnly: true,
extraKeys: {
"F11": function(cm) {
cm.setOption("fullScreen", !cm.getOption(
"fullScreen"));
},
"Esc": function(cm) {
if (cm.getOption("fullScreen")) cm
.setOption(
"fullScreen", false);
}
}
});
var initial_code = '';
// editor.setValue("");
// result.setValue("");
// editor.clearHistory();
// hide revision submit button initially
// $("#submit-revision").show()
/* Code Mirror Controls */
$fullscreen_code = $("#fullscreen-code");
$toggle_code = $("#toggle-code");
$fullscreen_code.click(function(e) {
editor.setOption("fullScreen", !editor.getOption(
"fullScreen"));
editor.focus();
e.preventDefault();
});
$toggle_code.click(function(e) {
if (editor.getOption("theme") == "monokai") {
editor.setOption("theme", "default");
} else {
editor.setOption("theme", "monokai");
}
e.preventDefault();
});
$fullscreen_result = $("#fullscreen-result");
$toggle_result = $("#toggle-result");
$fullscreen_result.click(function(e) {
result.setOption("fullScreen", !result.getOption(
"fullScreen"));
result.focus();
e.preventDefault();
});
$toggle_result.click(function(e) {
if (result.getOption("theme") == "monokai") {
result.setOption("theme", "default");
} else {
result.setOption("theme", "monokai");
}
e.preventDefault();
});
/*
* Selectors function
* Write the queries using .on()
*/
/* Contributor details */
// $(document).on("click", "#bug-form #id_notify", function() {
// $("#id_email_wrapper").toggle(this.checked);
// });
$("#plot_download").hide();
$("#diff-wrapper").hide();
$("#databox-wrapper").hide();
if ($("#main_categories").val() == 0) {
$("#category-wrapper").hide();
$("#books-wrapper").hide();
$("#chapters-wrapper").hide();
$("#examples-wrapper").hide();
$("#revisions-wrapper").hide();
$("#download-book").hide();
$("#diff-wrapper").hide();
$("#contributor").hide();
$("#databox-wrapper").hide();
}
if ($("#categories").val() == 0) {
$("#books-wrapper").hide();
$("#chapters-wrapper").hide();
$("#examples-wrapper").hide();
$("#revisions-wrapper").hide();
$("#download-book").hide();
$("#diff-wrapper").hide();
$("#contributor").hide();
$("#databox-wrapper").hide();
}
if ($("#books").val() == 0) {
$("#chapters-wrapper").hide();
$("#examples-wrapper").hide();
$("#revisions-wrapper").hide();
$("#download-book").hide();
$("#diff-wrapper").hide();
$("#contributor").hide();
$("#databox-wrapper").hide();
} else {
$("#download-book").show();
$("#contributor").show();
}
if ($("#chapters").val() == 0) {
$("#examples-wrapper").hide();
$("#revisions-wrapper").hide();
$("#diff-wrapper").hide();
$("#download-chapter").hide();
} else {
$("#download-chapter").show();
}
if ($("#examples").val() == 0) {
$("#revisions-wrapper").hide();
$("#diff-wrapper").hide();
$("#download-example").hide();
$("#databox-wrapper").hide();
} else {
$("#download-example").show();
}
/*******************************************/
/****** Below removed dajax ***************/
/*******************************************/
/*********** Main categories change ********/
/*******************************************/
$(document.body).on("change", "#main_categories",
function() {
ajax_loader(this);
var maincat_id = $('#main_categories').find(
":selected").val();
if (maincat_id != 0) {
$("#categories").html("");
$("#category-wrapper").show();
$("#books").html("");
editor.setValue("");
result.setValue("");
$("#example_views_count").text("");
$("#chapters-wrapper").hide();
$("#examples-wrapper").hide();
$("#books-wrapper").hide();
$("#revisions-wrapper").hide();
$("#download-book").hide();
$("#submit-revision").hide();
$("#review-link").hide();
$("#contributor").hide();
$("#databox-wrapper").hide();
$.ajax({
url: 'get_subcategories/',
dataType: 'JSON',
type: 'GET',
data: {
maincat_id: maincat_id,
},
success: function(data) {
ajax_loader("clear");
$("#categories").html(
'');
$("#categories").html(
' '
);
var j = 1;
for (var i = 0; i <
data.length; i++) {
$('#categories').append(
''
);
j++;
}
}
});
} else {
ajax_loader("clear");
$("#example_views_count").text("");
editor.setValue("");
result.setValue("");
$("#categories").html("");
$("#category-wrapper").hide();
$("#review-link").hide();
$("#books-wrapper").hide();
$("#chapters-wrapper").hide();
$("#examples-wrapper").hide();
$("#revisions-wrapper").hide();
$("#download-book").hide();
$("#diff-wrapper").hide();
$("#databox-wrapper").hide();
}
});
/*******************************************/
/*******************************************/
/**************** sub categories change ********/
/*******************************************/
$(document.body).on("change", "#categories", function() {
ajax_loader(this);
var maincat_id = $('#main_categories').find(
":selected").val();
var subcat_id = $('#categories').find(
":selected").val();
if (subcat_id != 0) {
$("#books-wrapper").show();
$("#books").html("");
editor.setValue("");
result.setValue("");
$("#example_views_count").text("");
$("#chapters-wrapper").hide();
$("#examples-wrapper").hide();
$("#revisions-wrapper").hide();
$("#download-book").hide();
$("#submit-revision").hide();
$("#review-link").hide();
$.ajax({
url: 'get_books/',
dataType: 'JSON',
type: 'GET',
data: {
maincat_id: maincat_id,
cat_id: subcat_id,
},
success: function(data) {
ajax_loader("clear");
$("#books").html('');
$("#books").html(
' '
);
if(data.length ==0){
alert("No book available in this subcategory");
$("#contributor").hide();
}
var j = 1;
for (var i = 0; i <
data.length; i++) {
$('#books').append(
''
);
j++;
}
}
});
} else {
ajax_loader("clear");
$("#example_views_count").text("");
editor.setValue("");
result.setValue("");
$("#review-link").hide();
$("#books-wrapper").hide();
$("#chapters-wrapper").hide();
$("#examples-wrapper").hide();
$("#revisions-wrapper").hide();
$("#download-book").hide();
$("#diff-wrapper").hide();
$("#contributor").hide();
}
});
/*******************************************/
/*******************************************/
/**************** book change **************/
/*******************************************/
$(document.body).on("change", "#books", function() {
var book_id = $('#books').find(":selected").val();
ajax_loader(this);
$("#chapters-wrapper").show();
console.log(book_id);
if (book_id != 0) {
$("#download-book").show();
$("#contributor").show();
$("#chapters-wrapper").show();
editor.setValue("");
result.setValue("");
$("#example_views_count").text("");
$("#examples-wrapper").hide();
$("#revisions-wrapper").hide();
$("#download-chapter").hide();
$("#submit-revision").hide();
$("#review-link").hide();
$.ajax({
url: 'get_chapters/',
dataType: 'JSON',
type: 'GET',
data: {
book_id: book_id,
},
success: function(data) {
ajax_loader("clear");
$("#chapters").html(
'');
$("#chapters").html(
' '
);
if(data.length ==0){
alert("Chapter is not available from this book for R on cloud, Please try another book/chapter");
}
for (var i = 0; i <
data.length; i++) {
$('#chapters').append(
''
);
}
}
});
} else {
ajax_loader("clear");
$("#example_views_count").text("");
$("#chapters-wrapper").hide();
$("#download-book").hide();
$("#examples-wrapper").hide();
$("#revisions-wrapper").hide();
editor.setValue("");
result.setValue("");
$("#submit-revision").hide();
$("#contributor").hide();
$("#review-link").hide();
$("#diff-wrapper").hide();
}
});
/*******************************************/
/*******************************************/
/************ chapter change ***************/
/*******************************************/
$(document.body).on("change", "#chapters", function() {
ajax_loader(this);
var chapter_id = $('#chapters').find(
":selected").val();
$("#examples-wrapper").show();
console.log(chapter_id);
if (chapter_id != 0) {
$("#examples-wrapper").show();
$("#download-chapter").show();
editor.setValue("");
result.setValue("");
$("#example_views_count").text("");
$("#revisions-wrapper").hide();
$("#download-example").hide();
$("#review-link").hide();
$.ajax({
url: 'get_examples/',
dataType: 'JSON',
type: 'GET',
data: {
chapter_id: chapter_id,
},
success: function(data) {
ajax_loader("clear");
$("#examples").html(
' '
);
if(data.length ==0){
alert("Example is not available from this chapter for R on cloud, Please try another book/chapter/example");
}
for (var i = 0; i <
data.length; i++) {
$('#examples').append(
''
);
}
}
});
} else {
ajax_loader("clear");
$("#example_views_count").text("");
$("#download-chapter").hide();
$("#examples-wrapper").hide();
$("#revisions-wrapper").hide();
editor.setValue("");
result.setValue("");
$("#submit-revision").hide();
$("#review-link").hide();
$("#diff-wrapper").hide();
}
});
/*******************************************/
/*******************************************/
/************ Example change **************/
/*******************************************/
$(document.body).on("change", "#examples", function() {
ajax_loader(this);
var example_id = $('#examples').find(
":selected").val();
//$("#revisions-wrapper").html("");
$("#download-example").show();
if (example_id != 0) {
$("#example_views_count").text("");
$("#revisions-wrapper").show();
$("#download-example").show();
$("#submit-revision").show();
$("#databox-wrapper").hide();
editor.setValue("");
result.setValue("");
ajax_loader('#revisions');
$.ajax({
url: 'get_revisions/',
dataType: 'JSON',
type: 'GET',
data: {
example_id: example_id,
},
success: function(data) {
var ex_id = example_id;
$.ajax({
url: 'update_view_count/',
dataType: 'JSON',
type: 'GET',
data: {
ex_id: ex_id,
},
success: function(data) {
$("#example_views_count").text(data);
}
});
$("#revisions").html(
' '
);
var i = 1;
data.forEach(
function(
item) {
$('#revisions').append(
''
);
i++;
});
$("#revisions-diff").html(
' '
);
var i = 1;
data.forEach(
function(
item) {
$('#revisions-diff').append(
''
);
i++;
});
$(
'#revisions option:eq(1)'
).prop(
'selected',
true);
$.ajax({
url: 'get_code/',
dataType: 'JSON',
type: 'GET',
data: {
commit_sha: $('#revisions').val(),
example_id: example_id,
},
success: function(data) {
if (data.review != 0) {
$("#review").show();
$("#review").attr("href", data.review_url);
$("#review").text(data.review + " " + "Review");
} else {
$("#review").hide();
}
$("#example_views_count").text(data.exmple);
editor.setValue("clear; // Remove clear, clc from code if you want to access existing stored variable from the memory" +
"\n" + "\n" + data.code);
initial_code = editor.getValue();
ajax_loader("clear");
}
});
}
});
} else {
ajax_loader("clear");
$("#example_count").text("");
$("#revisions-wrapper").hide();
$("#download-example").hide();
$("#submit-revision").hide();
editor.setValue("");
result.setValue("");
$("#diff-wrapper").hide();
$("#databox-wrapper").hide();
}
});
/********************************************/
/********************************************/
/********** revision-change ************/
/********************************************/
$(document.body).on("change", "#revisions", function(e) {
ajax_loader(this);
$("#revisions-two").hide()
var example_id = $('#examples').find(
":selected").val();
if ($(this).val()) {
$.ajax({
url: 'get_code/',
dataType: 'JSON',
type: 'GET',
data: {
commit_sha: $('#revisions').val(),
example_id: example_id,
},
success: function(data) {
ajax_loader("clear");
if (data.review != 0) {
$("#review").show();
$("#review").attr("href", data.review_url);
$("#review").text(data.review + " " + "Review");
} else {
$("#review").hide();
}
editor.setValue(data.code);
initial_code = editor.getValue();
}
});
// show revision submit button when a revision is loaded
$("#submit-revision").show();
$("#revisions-two").show();
}
});
/********************************************/
/********************************************/
/********** revision-diff change ************/
/********************************************/
$(document).on("change", "#revisions-diff", function(e) {
var revName = $("#revisions-diff").find(
":selected").text();
var example_id = $('#examples').find(
":selected").val();
if ($(this).val()) {
ajax_loader(this);
$.ajax({
url: 'get_diff/',
dataType: 'JSON',
type: 'GET',
data: {
diff_commit_sha: $(
'#revisions').val(),
example_id: example_id,
},
success: function(data) {
ajax_loader("clear");
$("#diff_wrapper").modal('show');
$("#diff-area").html(
diffString(
editor.getValue(),
data.code2
));
$("#diff-first").html(
'editor code'
);
$("#diff-second").html(
revName);
editor.setValue(data.code2);
initial_code = editor
.getValue()
}
});
}
});
/********************************************/
/********************************************/
/******** Execute the code ******************/
/********************************************/
$plotbox_wrapper = $("#plotbox_wrapper");
$plotbox = $("#plotbox");
$(document).on("click", "#execute", function() {
if(editor.getValue() != ""){
ajax_loader(this);
$("#execute-inner").html("Executing...");
var send_data = {
token: $(
"[name='csrfmiddlewaretoken']"
).val(),
session_id: $("#session_id").val() || 0,
R_file_id: $("#R_file_id").val() || 0,
code: editor.getValue(),
book_id: $("#books").val() || 0,
chapter_id: $("#chapters").val() || 0,
example_id: $("#examples").val() || 0
};
$.post("/execute-code", send_data,
function(data) {
var exists;
$("#execute-inner").html(
"Execute");
ajax_loader('clear');
result.setValue(data.output);
if(data.graph_exist){
$plot = $("");
$plot.attr({
src: data.graph_path,
width: '100%'
});
$plotbox.html($plot);
$plotbox_wrapper.modal('show');
var dt = $(
"#examples option:selected"
)
.text();
$("#plot_download").show();
$("#plot_download").attr(
"download", dt +
'.png');
$("#plot_download").attr(
"href", data.graph_path
);
}
});
}else{
alert("Write a R code for execution.");
}
});
/********************************************/
/********************************************/
/****** Download book, chapter, example *****/
/********************************************/
$(document).on("click", "#download-book", function(e) {
window.location =
"http://r.fossee.in/download/book/" + $(
"#books").val();
e.preventDefault();
});
$(document).on("click", "#download-chapter", function(e) {
window.location =
"http://r.fossee.in/download/chapter/" +
$("#chapters").val();
e.preventDefault();
});
$(document).on("click", "#download-example", function(e) {
window.location =
"http://r.fossee.in/download/example/" +
$("#examples").val();
e.preventDefault();
});
/********************************************/
/********************************************/
/****** Get contributor *********************/
/********************************************/
$(document).on("click", "#contributor", function(e) {
$.ajax({
url: 'get_contributor/',
dataType: 'JSON',
type: 'GET',
data: {
book_id: $("#books").val()
},
success: function(data) {
$('#full_name').html(data
.contributor_name
);
$('#faculty').html(data.proposal_faculty);
$('#reviewer').html(data.proposal_reviewer);
$('#university').html(
data.proposal_university
);
$("#contributor_wrapper").modal('show');
}
});
e.preventDefault();
});
/********************************************/
/********************************************/
/****** Bug form handling *******************/
/********************************************/
$(document).on("click", "#bug", function(e) {
$.ajax({
url: 'get_bug_form/',
dataType: 'JSON',
type: 'GET',
data: {
bug_form: 'bug_form_pop'
},
success: function(data) {
$('#bug_form_wrapper').html(
data);
$("#bug_form_wrapper").modal('show');
/**************** math captcha for form ************************/
//create initial sum
createSum();
// On "reset button" click, generate new random sum
$('button[type=reset]').click(createSum);
// On user input, check value
$( "#ans" ).keyup(checkInput);
/*********************************************************/
}
});
e.preventDefault();
});
/********************************************/
$(document.body).on("click", "#bug-form-submit", function(e) {
ajax_loader(this);
var token = $('input[name="csrfmiddlewaretoken"]').prop('value');
ex_id = $("#examples").val();
cat_id = $("#categories").val();
book_id = $("#books").val();
chapter_id = $("#chapters").val();
issue_id = $("#id_issue").val();
id_description_wrapper = $.trim($("#id_description").val());
id_email = $.trim($("#id_email").val());
console.log(id_description_wrapper.length);
if (issue_id == 0 || id_description_wrapper.length == 0 || id_email.length == 0) {
if (issue_id == 0) {
$('#id_issue').css({
"border": '#FF0000 1px solid'
});
alert("Please select any issues");
} else if (id_description_wrapper.length == 0) {
$('#id_issue').css({
"border": '#FF0000 1px solid'
});
alert("Please insert issue description");
} else if (id_email.length == 0) {
$('#id_email').css({
"border": '#FF0000 1px solid'
});
alert("Please insert email id");
} else {
if (!ex_id) {
ex_id = "NULL";
}
}
} else {
$.ajax({
url: 'get_bug_form_submit/',
dataType: 'JSON',
type: 'POST',
data: {
'csrfmiddlewaretoken': token,
form: $("#bug-form").serialize(true),
cat_id: cat_id,
book_id: book_id,
chapter_id: chapter_id,
ex_id: ex_id,
description: id_description_wrapper,
issue: issue_id,
email: id_email,
},
success: function(data) {
console.log(data);
alert(data);
ajax_loader("clear");
$("#bug_form_wrapper").modal('toggle');
}
});
}
e.preventDefault();
});
/********************************************/
/********************************************/
/************ submit revision handling ******/
/********************************************/
$(document).on("click", "#submit-revision", function(e) {
$.ajax({
url: 'get_submit_revision_form/',
dataType: 'JSON',
type: 'GET',
data: {
code: editor.getValue(),
initial_code: initial_code
},
success: function(data) {
$(
"#submit-revision-wrapper"
).html(data);
$(
"#submit-revision-wrapper"
).lightbox_me({
centered: false
});
}
});
e.preventDefault();
});
/********************************************/
/********************************************/
/********* submit revision form submit ******/
/********************************************/
$(document).on("click", "#revision-form-submit", function(
e) {
ajax_loader(this);
$.ajax({
url: 'get_submit_revision_form_submit/',
dataType: 'JSON',
type: 'GET',
data: {
form: $('#revision-form').serialize(
true),
code: editor.getValue(),
},
success: function(data) {
initial_code = editor.getValue()
alert(data);
$(
"#submit-revision-wrapper"
).trigger("close");
}
});
});
/********************************************/
$(document).on("click", "#search", function() {
ajax_loader(this);
$("#relevant").html('');
var search_string = jQuery.trim($("#search-input").val());
if (search_string == '') {
search_string = 'Null';
}
$.ajax({
url: 'search_book',
dataType: 'JSON',
type: 'GET',
data: {
search_string: search_string,
},
success: function(data) {
$("#relevant").html('