Skip to content

Commit

Permalink
fixed issue #1 by moving the <script> block before </body> from </hea…
Browse files Browse the repository at this point in the history
…d> tag.
  • Loading branch information
limcheekin committed Dec 20, 2011
1 parent 611d30d commit 2564e18
Show file tree
Hide file tree
Showing 3 changed files with 143 additions and 135 deletions.
2 changes: 1 addition & 1 deletion MahoutRecommenderGrailsPlugin.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
*/
class MahoutRecommenderGrailsPlugin {
// the plugin version
def version = "0.5"
def version = "0.5.1"
// the version or versions of Grails the plugin is designed for
def grailsVersion = "1.3 > *"
// the other plugins this plugin depends on
Expand Down
274 changes: 141 additions & 133 deletions grails-app/views/recommender/evaluator.gsp
Original file line number Diff line number Diff line change
Expand Up @@ -18,143 +18,19 @@
* @since 0.5
*/
--%>
<g:set var="grailsMajorVersion" value="${grailsApplication.metadata['app.grails.version'].charAt(0) as Integer}" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="layout" content="main" />
<title>Finding an effective recommender by average difference</title>
<g:javascript library="jquery" plugin="jquery" />
<script type="text/javascript">
$(function() {
$('#evaluatorMenuButton').click(runEvaluator);
});
function runEvaluator(event) {
evaluateUserBasedRecommender('fixedSizeNeighborhoodWithPref', true);
scrollToElement('thresholdNeighborhoodWithPrefHeader');
evaluateUserBasedRecommender('thresholdNeighborhoodWithPref', true);
evaluateUserBasedRecommender('fixedSizeNeighborhoodWithoutPref', false);
scrollToElement('thresholdNeighborhoodWithoutPrefHeader');
evaluateUserBasedRecommender('thresholdNeighborhoodWithoutPref', false);
evaluateItemBasedRecommender('itemWithPref', true);
evaluateItemBasedRecommender('itemWithoutPref', false);
scrollToElement('slopeOneRecommender');
evaluateSlopeOneRecommender('#weight', true);
evaluateSlopeOneRecommender('#unweight', false);
return false;
}
function evaluateUserBasedRecommender(tableId, hasPreference) {
var $table = $('#' + tableId);
var $rowHeaders = $('tr th', $table);
var $rowDatas = $('tr td', $table);
var j = 0;
var similarity;
var weightingIndex;
var withWeighting;
var data = new Object();
var $td;
for (var i = 0; i < $rowDatas.length; i++) {
j = i % 11;
$td = $($rowDatas[i]);
if (j == 0) {
similarity = $td.text();
weightingIndex = similarity.indexOf('+');
withWeighting = weightingIndex > -1;
if (withWeighting) {
similarity = similarity.substring(0, weightingIndex - 1);
}
} else {
data['recommenderSelected'] = 1;
data['hasPreference'] = hasPreference;
data['similarity'] = similarity;
data['withWeighting'] = withWeighting;
data['neighborhood'] = $($rowHeaders[j]).text();
$.ajax({
url : 'evaluateAverageDiff',
dataType: "text",
data: data,
async: false,
success : function(response) {
$td.text(response);
},
error : function() {
$td.html('<span style="color:red">Err</span>');
}
});
}
}
}
function evaluateItemBasedRecommender(tableId, hasPreference) {
var $table = $('#' + tableId);
var $rowDatas = $('tr td', $table);
var j = 0;
var similarity;
var weightingIndex;
var withWeighting;
var data = new Object();
var $td;
for (var i = 0; i < $rowDatas.length; i++) {
j = i % 2;
$td = $($rowDatas[i]);
if (j == 0) {
similarity = $td.text();
weightingIndex = similarity.indexOf('+');
withWeighting = weightingIndex > -1;
if (withWeighting) {
similarity = similarity.substring(0, weightingIndex - 1);
}
} else {
data['recommenderSelected'] = 2;
data['hasPreference'] = hasPreference;
data['similarity'] = similarity;
data['withWeighting'] = withWeighting;
$.ajax({
url : 'evaluateAverageDiff',
dataType: "text",
data: data,
async: false,
success : function(response) {
$td.text(response);
},
error : function() {
$td.html('<span style="color:red">Err</span>');
}
});
}
}
}
function evaluateSlopeOneRecommender(selector, withWeighting) {
var data = new Object();
var $td = $(selector);
data['withWeighting'] = withWeighting;
data['recommenderSelected'] = 3;
$.ajax({
url : 'evaluateAverageDiff',
dataType: "text",
data: data,
async: false,
success : function(response) {
$td.text(response);
},
error : function() {
$td.html('<span style="color:red">Err</span>');
}
});
}
function scrollToElement(id) {
var new_position = $('#' + id).offset();
window.scrollTo(new_position.left,new_position.top);
}
</script>
<g:if test="${grailsMajorVersion == 2}">
<r:require module="jquery"/>
<r:layoutResources/>
</g:if>
<g:else>
<g:javascript library="jquery" plugin="jquery" />
</g:else>
<style type="text/css">
.mask{
position: relative;
Expand Down Expand Up @@ -595,7 +471,139 @@ neighborhood.
</tbody>
</table>
</div>

</div>
<g:if test="${grailsMajorVersion == 2}">
<r:layoutResources/>
</g:if>
<script type="text/javascript">
$(function() {
$('#evaluatorMenuButton').click(runEvaluator);
});
function runEvaluator(event) {
evaluateUserBasedRecommender('fixedSizeNeighborhoodWithPref', true);
scrollToElement('thresholdNeighborhoodWithPrefHeader');
evaluateUserBasedRecommender('thresholdNeighborhoodWithPref', true);
evaluateUserBasedRecommender('fixedSizeNeighborhoodWithoutPref', false);
scrollToElement('thresholdNeighborhoodWithoutPrefHeader');
evaluateUserBasedRecommender('thresholdNeighborhoodWithoutPref', false);
evaluateItemBasedRecommender('itemWithPref', true);
evaluateItemBasedRecommender('itemWithoutPref', false);
scrollToElement('slopeOneRecommender');
evaluateSlopeOneRecommender('#weight', true);
evaluateSlopeOneRecommender('#unweight', false);
return false;
}
function evaluateUserBasedRecommender(tableId, hasPreference) {
var $table = $('#' + tableId);
var $rowHeaders = $('tr th', $table);
var $rowDatas = $('tr td', $table);
var j = 0;
var similarity;
var weightingIndex;
var withWeighting;
var data = new Object();
var $td;
for (var i = 0; i < $rowDatas.length; i++) {
j = i % 11;
$td = $($rowDatas[i]);
if (j == 0) {
similarity = $td.text();
weightingIndex = similarity.indexOf('+');
withWeighting = weightingIndex > -1;
if (withWeighting) {
similarity = similarity.substring(0, weightingIndex - 1);
}
} else {
data['recommenderSelected'] = 1;
data['hasPreference'] = hasPreference;
data['similarity'] = similarity;
data['withWeighting'] = withWeighting;
data['neighborhood'] = $($rowHeaders[j]).text();
$.ajax({
url : 'evaluateAverageDiff',
dataType: "text",
data: data,
async: false,
success : function(response) {
$td.text(response);
},
error : function() {
$td.html('<span style="color:red">Err</span>');
}
});
}
}
}
function evaluateItemBasedRecommender(tableId, hasPreference) {
var $table = $('#' + tableId);
var $rowDatas = $('tr td', $table);
var j = 0;
var similarity;
var weightingIndex;
var withWeighting;
var data = new Object();
var $td;
for (var i = 0; i < $rowDatas.length; i++) {
j = i % 2;
$td = $($rowDatas[i]);
if (j == 0) {
similarity = $td.text();
weightingIndex = similarity.indexOf('+');
withWeighting = weightingIndex > -1;
if (withWeighting) {
similarity = similarity.substring(0, weightingIndex - 1);
}
} else {
data['recommenderSelected'] = 2;
data['hasPreference'] = hasPreference;
data['similarity'] = similarity;
data['withWeighting'] = withWeighting;
$.ajax({
url : 'evaluateAverageDiff',
dataType: "text",
data: data,
async: false,
success : function(response) {
$td.text(response);
},
error : function() {
$td.html('<span style="color:red">Err</span>');
}
});
}
}
}
function evaluateSlopeOneRecommender(selector, withWeighting) {
var data = new Object();
var $td = $(selector);
data['withWeighting'] = withWeighting;
data['recommenderSelected'] = 3;
$.ajax({
url : 'evaluateAverageDiff',
dataType: "text",
data: data,
async: false,
success : function(response) {
$td.text(response);
},
error : function() {
$td.html('<span style="color:red">Err</span>');
}
});
}
function scrollToElement(id) {
var new_position = $('#' + id).offset();
window.scrollTo(new_position.left,new_position.top);
}
</script>
</body>
</html>
2 changes: 1 addition & 1 deletion scripts/ImportData.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ target(main: "Insert data file to database") {
}
}
fr.close()
println "[Done. $lineCount rows imported.]"
printMessage "[Done. $lineCount rows imported.]"
}
}

Expand Down

0 comments on commit 2564e18

Please sign in to comment.