Widget:KeywordSearch: Difference between revisions

Jump to navigation Jump to search
Matt Pijoan (talk | contribs)
No edit summary
Matt Pijoan (talk | contribs)
No edit summary
 
(100 intermediate revisions by the same user not shown)
Line 1: Line 1:
<includeonly>
<includeonly>
<style type="text/css">
.WBRButton{
font-family:Arial;
float:left;
background-color:#3366CC;
height:40px;
font-weight:bold;
width:150px;
display: table-cell;
cursor: pointer;
color:#FFFFFF;
text-align: center;
vertical-align: middle;
margin-right:10px;
}
</style>
<script type="text/javascript">
<script type="text/javascript">
$(document).ready(function(){CoK();});


$(document).ready(function () {
function CoK() {
        var stuffs ="<div id='formSpace'></div><div class='WBRButton' id='orOp'><br />OR</div><div class='WBRButton' id='andOp'><br />AND</div><div class='WBRButton' id='showQueries'><br />SHOW</div>";
        $("#examSpace").append(stuffs);
var orBox = "<div class='query'> <input type='text' class='queryString' /> </div><br />";
var orBox = "<div class='query'> <input type='text' class='queryString' /> </div><br />";
var andBox = " <input type='text' class='queryString' /> ";
var andBox = " <input type='text' class='queryString' /> ";
$("#formSpace").html(orBox);
$("#formSpace").html(orBox);
$(".queryString").focus(function () {
$(".queryString").focusin(function () {
$(".focused").removeClass("focused");
$(".focused").removeClass("focused");
$(this).parent().addClass("focused");
$(this).parent().addClass("focused");
Line 13: Line 33:
$(this).remove();
$(this).remove();
}
}
                        clearEmptyDivs();
});
});
});
});
 
function clearEmptyDivs(){
$.each($(":br"), function(){
console.log($(this).parent());
}
$.each($(".query"), function(){
if($(this).children().length === 0){
$(this).remove();
}
});
}
$("#orOp").click(function () {
$("#orOp").click(function () {
$("#formSpace").append(orBox);
$("#formSpace").append(orBox);
Line 25: Line 55:
$(this).remove();
$(this).remove();
}
}
clearEmptyDivs();
});
});
});
});
Line 39: Line 70:
$(this).remove();
$(this).remove();
}
}
clearEmptyDivs();
});
});
});
});
});
});


$("#showQueries").click(function () {
$("#showQueries").click({}, showQueries);
var testVar = [];
function showQueries(event) {
testVar = $(".query").map(function () {
                event.data.queries = [];
return getStrings($(this).children());
                event.data.questionListAll = [];
});
                event.data.keyword = {};
      var testVar2 = testVar[0].makeArray();
                event.data.keyword.iterator = 0;
      console.log(testVar2);
$.each($(".query"),function (index, value) {
});
                                event.data.queries[index] = "";
function getStrings(obj) {
$.each($(this).children(), function(ind, val){
var outArr = [];
                                    event.data.queries[index] += "[[WBRKeyword::" + $(this).val() + "]]";
outArr[outArr.length] = $.each(obj, function (ind, tal) {
                                });
var string = $(this).val();
return string;
});
});
return outArr;
                                runQueries(event.data);
}
}
});
function runQueries(obj) {
var api = new mw.Api();
api.get({
action : 'ask',
query : obj.queries[obj.keyword.iterator],
format : 'json'
})
.always(function (data) {
        $.each(data.query.results, function(index, value){
              obj.questionListAll.push(value.fulltext);
        });
if ((obj.keyword.iterator+1) < obj.queries.length) {
        obj.keyword.iterator++;
        runQueries(obj);       
} else {
        removeDuplicates(obj);
        }
});
}
function removeDuplicates(obj){
        for(var i=0;i<obj.questionListAll.length;i++){
              $.each(obj.questionListAll, function(index, value){
                  if(obj.questionListAll[i] === value && i != index){
                    console.log(value);
                    console.log(obj.questionListAll[i]);
                    obj.questionListAll.splice(index, 1);
                    return false;
                  }
              });
        }
console.log(obj.questionListAll);
}
}


</script>
</script>
<form>
<div id="examSpace"></div>
<div id="formSpace"></div>
 
<input type='button' id='orOp' value='OR' />
<input type='button' id='andOp' value='AND' />
<input type='button' id='showQueries' value='SHOW' />
</form>
</includeonly>
</includeonly>

Latest revision as of 15:59, 23 October 2013