From 05e25dadcf2afda51b06c6551d91d61a3ad08cf7 Mon Sep 17 00:00:00 2001 From: Julian Arni Date: Wed, 30 Jan 2013 13:34:16 -0500 Subject: [PATCH] Added validation warnings --- common/static/js/capa/editamolecule.js | 45 ++++++++++++++++++++------ 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/common/static/js/capa/editamolecule.js b/common/static/js/capa/editamolecule.js index c5f38c2ded..21bb5b1e4b 100644 --- a/common/static/js/capa/editamolecule.js +++ b/common/static/js/capa/editamolecule.js @@ -58,6 +58,12 @@ var input_field = parent.find('input[type=hidden]'); var reset_button = parent.find('button.reset'); + // Add div for error messages + + $('

').appendTo(parent); + // Applet options applet.setAntialias(true); @@ -72,12 +78,16 @@ reset_button.on('click', function() { requestAppletData(element, applet, input_field); + + // Make sure remaining error messages are cleared + var errordiv = $(element).parent().find('.errormsgs')[0]; + errordiv.style.visibility = 'hidden'; }); // Update the input element everytime the is an interaction // with the applet (click, drag, etc) $(element).on('mouseup', function() { - updateInput(applet, input_field); + updateInput(applet, input_field, element); }); } @@ -102,31 +112,46 @@ updateInput(applet, input_field); } - function updateInput(applet, input_field) { + function updateInput(applet, input_field, element) { var mol = applet.molFile(); var smiles = applet.smiles(); var jme = applet.jmeFile(); - var info = jsmol.API.getInfo(mol, smiles, jme).toString(); - var err = jsmol.API.getErrors(mol, smiles, jme).toString(); + var info = formatInfo(jsmol.API.getInfo(mol, smiles, jme).toString(), + input_field, element); var value = { mol: mol, info: info }; console.log("Molecule info:"); console.log(info); - console.log(err); input_field.val(JSON.stringify(value)); return value; } - function formatInfo(info) { + function formatInfo(info, input_field, element) { var results = []; + var errordiv = $(element).parent().find('.errormsgs')[0]; + console.log(errordiv); - var fragment = $('
').append(info); - fragment.find('font').each(function () { - results.push($(this).html()); - }); + if (info.search("It is not possible") == -1) { + errordiv.innerHTML = ''; + errordiv.style.visibility = 'hidden'; + var fragment = $('
').append(info); + fragment.find('font').each(function () { + results.push($(this).html()); + }); + } + else { + console.log("err"); + + // remove Brian's html tags + var tags = /<((\/)?\w{1,7})>/g; + var errmsg = info.replace(tags, ' '); + console.log(errmsg); + errordiv.innerHTML = errmsg; + errordiv.style.visibility = 'visible'; + } return results; }