All Downloads are FREE. Search and download functionalities are using the official Maven repository.

web.admin.widget.conf_reasoner.js Maven / Gradle / Ivy

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Created by .
 * User: Thomas Kurz
 * Date: 18.02.11
 * Time: 18:46
 * To change this template use File | Settings | File Templates.
 */
(function( $ ){

    var div;

    var title_input;
    var program_input;
    var list;
    
    CodeMirror.commands.autocomplete = function(cm) {
        CodeMirror.showHint(cm, CodeMirror.hint.skwrl);
    };

    $.fn.reasoning_config = function(options) {
        var settings = {
            host: 'http://localhost:8080/LMF/',
            samples :{
                skos:"@prefix skos: \n\n($1 skos:broader $2) -> ($1 skos:broaderTransitive $2)\n($1 skos:narrower $2) -> ($1 skos:narrowerTransitive $2)\n($1 skos:broaderTransitive $2), ($2 skos:broaderTransitive $3) -> ($1 skos:broaderTransitive $3)\n($1 skos:narrowerTransitive $2), ($2 skos:narrowerTransitive $3) -> ($1 skos:narrowerTransitive $3)\n($1 skos:broader $2) -> ($2 skos:narrower $1)\n($1 skos:narrower $2) -> ($2 skos:broader $1)\n($1 skos:broader $2) -> ($1 skos:related $2)\n($1 skos:narrower $2) -> ($1 skos:related $2)\n($1 skos:related $2) -> ($2 skos:related $1)",
                rdfs:"@prefix rdfs: \n@prefix rdf: \n\n($1 rdfs:subClassOf $2), ($2 rdfs:subClassOf $3) -> ($1 rdfs:subClassOf $3)\n($1 rdfs:subPropertyOf $2), ($2 rdfs:subPropertyOf $3) -> ($1 rdfs:subPropertyOf $3)\n($1 rdf:type $2), ($2 rdfs:subClassOf $3) -> ($1 rdf:type $3)\n($p rdfs:range $r), ($1 $p $2) -> ($2 rdf:type $r)\n($p rdfs:domain $d), ($1 $p $2) -> ($1 rdf:type $d)"
            },
            loader:"../../core/public/img/ajax-loader_small.gif"
        }

        var reload = function() {
            $.getJSON(settings.host+"reasoner/program/list",function(data) {
                writePrograms(data);
            });
        }

        var do_remove = function(name) {
            var url = settings.host+"reasoner/program/"+name;
            $(".loader").show();
            $.ajax({
                type:"DELETE",
                url: url,
                success: function() {
                    reload();
                    $(".loader").hide();
                    alert("Program successfully removed");
                },
                error: function(jXHR,textStatus) {
                    $(".loader").hide();
                    alert("Error: "+jXHR.responseText);
                }
            });
        }

        var do_upload = function() {
            var editor = $(program_input)[0]._cmEditor || {};
            if (editor && editor.save) {
                editor.save();
            }
            var data = program_input.val();
            if(data=="" || title_input.val() == "") {
                alert("Values may not be empty!");
                return;
            }
            var url = settings.host+"reasoner/program/"+title_input.val();

            //set img
            $(".loader").show();

            //upload
            $.ajax({
                type:"POST",
                url: url,
                contentType: "text/plain",
                data: data,
                success: function() {
                    reload();
                    $(".loader").hide();
                    alert("program was successfully uploaded");
                },
                error: function(jXHR) {
                    $(".loader").hide();
                    alert("Error: "+jXHR.responseText);
                }
            });
        }

        var writePrograms = function(programs) {
            list.html("");

            function writePS(ps) {
                for(var i=0;i");
                    var button = $("").text("remove");
                    button.bind("click",function(){
                        do_remove($(this).attr('name'));
                    });
                    var title = $("

").text(name); var pr = $("
"); li.append(title); li.append(pr); li.append(button); li.append('
'); list.append(li); createCodeMirror(pr, ps[i].rules, true); } } if(programs.length != 0) { writePS(programs) } else { list.html("
  • no programs loaded
  • "); } } function createCodeMirror(target, content, readOnly) { target = $(target)[0]; if (target._cmEditor || false) { removeCodeMirror(target); } if (readOnly) { target._cmEditor = new CodeMirror(target, { readOnly: true, lineNumbers: true, matchBrackets: true, mode: "skwrl" }); target._cmEditor.toTextArea = function() {}; // To avoid errors because of a missing function in removeCodeMirror() } else { target._cmEditor = CodeMirror.fromTextArea(target, { readOnly: false, lineNumbers : true, matchBrackets : true, extraKeys: {"Ctrl-Space": "autocomplete"}, mode : "skwrl" }); } if (content !== undefined) { target._cmEditor.setValue(content); if (!readOnly) target._cmEditor.save(); } } function removeCodeMirror(target) { if (target._cmEditor || false) { target._cmEditor.toTextArea(); target._cmEditor = null; } } var write = function(programs) { div.html(""); title_input = $(""); program_input = $(""); list = $("
      "); var table = $(""); var tr1=$(""); var tr2=$(""); tr1.append(""); var td1 = $("").append(title_input); tr1.append(td1); tr2.append(""); var td2 = $("").append(program_input); tr2.append(td2); var button = $("").text("upload and run"); button.bind("click",function(){ do_upload(); }); var button2 = $("").text("clear"); button2.bind("click",function(){ title_input.val(""); createCodeMirror(program_input, ""); }); table.append(tr1); table.append(tr2); //set samples var options = ""; for(property in settings.samples) { options += ""; } var sam = $("").html(options); sam.change(function(){ var x = $(this).val(); if(x=="---"){ title_input.val(""); createCodeMirror(program_input, ""); return; } title_input.val(x); createCodeMirror(program_input, settings.samples[x]); }); var sam_div = $('
      Samples:'); sam_div.append(sam); div.append("

      Running Programs

      ") div.append(list); div.append("

      New Program

      "); div.append(sam_div); div.append(table); div.append(button2); div.append(button); div.append('
      '); createCodeMirror(program_input) writePrograms(programs); } return this.each(function() { // merge options if ( options ) { $.extend( settings, options ); } div = $(this); //build skeleton; $.getJSON(settings.host+"reasoner/program/list",function(data) { write(data); }); }); }; })( jQuery );









      Name:Program: