Transitioned to using SASS and CoffeeScript for assets; using Grunt.js for compiling
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Gregory Ballantine 2024-06-12 22:19:46 -04:00
parent d899ffe58a
commit e3a334546f
10 changed files with 2013 additions and 80 deletions

6
.gitignore vendored
View File

@ -59,3 +59,9 @@ build-iPhoneSimulator/
# Ignore local data # Ignore local data
data/ data/
# Node modules
node_modules/
# Compiled assets
public/css/
public/js/

65
Gruntfile.js Normal file
View File

@ -0,0 +1,65 @@
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
sass: {
dist: {
options: {
style: 'compressed'
},
files: [{
expand: true,
cwd: 'assets/styles',
src: ['**/*.sass'],
dest: 'public/css',
ext: '.css'
}]
}
},
coffee: {
options: {
sourceMap: true,
style: 'compressed'
},
files: {
expand: true,
flatten: true,
cwd: 'assets/scripts',
src: ['*.coffee'],
dest: 'public/js',
ext: '.js'
}
},
watch: {
css: {
files: ['assets/styles/**/*.sass'],
tasks: ['sass'],
options: {
atBegin: true,
spawn: false
}
},
js: {
files: ['assets/scripts/**/*.js'],
tasks: ['coffee'],
options: {
atBegin: true,
spawn: false
}
}
}
});
// Load plugins.
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-coffee');
// CLI tasks.
grunt.registerTask('default', ['sass', 'coffee']);
};

View File

@ -0,0 +1,2 @@
$ ->
$(document).foundation()

View File

@ -0,0 +1,54 @@
$(document).ready ->
$('#generate_button').on 'click', (e) ->
e.preventDefault()
$.ajax(
method: 'POST'
url: '/reports'
data:
type: $('#report_type').val()
choice: $('#report_choice').val()
compare: $('#report_compare').val()).done (data) ->
benchChart.options.title.text = data.choice
benchChart.data.labels = data.names
benchChart.data.datasets[0].data = data.avg_results
benchChart.data.datasets[1].data = data.min_results
benchChart.update()
return
return
return
benchChart = new Chart(document.getElementById('chart_canvas').getContext('2d'),
type: 'horizontalBar'
data:
labels: []
datasets: [
{
label: 'Average FPS'
data: []
backgroundColor: 'hotpink'
borderColor: '#212121'
borderWidth: 1
}
{
label: 'Minimum FPS'
data: []
backgroundColor: 'cornflowerblue'
borderColor: '#212121'
borderWidth: 1
}
]
options:
title:
display: true
text: 'N/a'
scales: xAxes: [ {
display: true
ticks: beginAtZero: true
} ]
animation: onComplete: ->
dwnbtn = $('#download_button')
dwnbtn.attr 'href', benchChart.toBase64Image()
dwnbtn.attr 'download', 'benchmark_chart.png'
dwnbtn.attr 'disabled', false
return
)

View File

@ -0,0 +1,5 @@
#main-nav
margin-bottom: 15px
h1.invalid
color: red

1853
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

28
package.json Normal file
View File

@ -0,0 +1,28 @@
{
"name": "game-data",
"description": "PC hardware benchmarking data logger",
"version": "0.1.0",
"main": "src/server.rb",
"scripts": {
"grunt": "grunt"
},
"repository": {
"type": "git",
"url": "https://git.metaunix.net/BitGoblin/game-data"
},
"keywords": [
"pc",
"hardware",
"benchmarking"
],
"author": "Gregory Ballantine <gballantine@bitgoblin.tech>",
"license": "BSD-2-Clause",
"devDependencies": {
"grunt": "^1.6.1",
"grunt-cli": "^1.4.3",
"grunt-contrib-coffee": "^2.1.0",
"grunt-contrib-sass": "^2.0.0",
"grunt-contrib-watch": "^1.1.0",
"sass": "^1.77.4"
}
}

View File

@ -1,7 +0,0 @@
#main-nav{
margin-bottom: 15px;
}
h1.invalid{
color: red;
}

View File

@ -1,5 +0,0 @@
$(document).ready(function() {
$(document).foundation();
});

View File

@ -1,68 +0,0 @@
$(document).ready(function() {
$('#generate_button').on('click', function(e) {
e.preventDefault();
$.ajax({
method: 'POST',
url: '/reports',
data: {
type: $('#report_type').val(),
choice: $('#report_choice').val(),
compare: $('#report_compare').val(),
}
}).done(function(data) {
benchChart.options.title.text = data.choice;
benchChart.data.labels = data.names;
benchChart.data.datasets[0].data = data.avg_results;
benchChart.data.datasets[1].data = data.min_results;
benchChart.update();
});
});
});
var benchChart = new Chart(document.getElementById('chart_canvas').getContext('2d'), {
type: 'horizontalBar',
data: {
labels: [],
datasets: [
{
label: 'Average FPS',
data: [],
backgroundColor: 'hotpink',
borderColor: '#212121',
borderWidth: 1,
},
{
label: 'Minimum FPS',
data: [],
backgroundColor: 'cornflowerblue',
borderColor: '#212121',
borderWidth: 1,
}
]
},
options: {
title: {
display: true,
text: 'N/a'
},
scales: {
xAxes: [{
display: true,
ticks: {
beginAtZero: true
}
}]
},
animation: {
onComplete: function() {
var dwnbtn = $('#download_button');
dwnbtn.attr('href', benchChart.toBase64Image());
dwnbtn.attr('download', 'benchmark_chart.png');
dwnbtn.attr('disabled', false);
},
}
}
});