From 35c2a4ac2c89033df3b9914b59b7733177d0dad0 Mon Sep 17 00:00:00 2001 From: CyberLeo Date: Thu, 29 Jan 2015 14:28:31 -0600 Subject: [PATCH] Hopefully the last screwing around --- app.rb | 21 +++++++++++++++++++++ tmp/.gitignore | 1 + views/handler_js.erb | 41 +++++++++++++++++++++++++++++++++++++++-- views/index.erb | 6 ++++-- views/meta_css.erb | 1 - 5 files changed, 65 insertions(+), 5 deletions(-) create mode 100644 tmp/.gitignore diff --git a/app.rb b/app.rb index 3e91276..becc9c9 100644 --- a/app.rb +++ b/app.rb @@ -5,6 +5,7 @@ require 'yajl/json_gem' require 'csv' $set = "cheesy2" +$metafile = "tmp/songtitle" def load_tracklist() file = "sets/#{$set}.csv" @@ -30,6 +31,26 @@ class App < Sinatra::Base json $tracklist end + post '/commit' do + index = params["index"].to_i + if ( index < 0 || index > $tracklist.length ) + status 404 + return "No such track index." + end + + title = ( index < 1 ) ? "-" : $tracklist[index - 1]["title"] + + File.open($metafile, "a+") do |fp| + fp.flock(File::LOCK_EX) + fp.seek(0) + fp.truncate(0) + fp.puts(title) + fp.flush() + fp.flock(File::LOCK_UN) + end + "Updated." + end + get '/js/handler.js' do content_type 'text/javascript' erb :handler_js diff --git a/tmp/.gitignore b/tmp/.gitignore new file mode 100644 index 0000000..72e8ffc --- /dev/null +++ b/tmp/.gitignore @@ -0,0 +1 @@ +* diff --git a/views/handler_js.erb b/views/handler_js.erb index c1925a2..fc379b9 100644 --- a/views/handler_js.erb +++ b/views/handler_js.erb @@ -6,11 +6,11 @@ function format_track(index, title, length, bpm, notes) { if ( notes == null ) notes = '-'; entry = $('
'); entry.append($('' + index + '')); - entry.append($('' + title + '')); + entry.append($('' + title.slice(0,65) + '')); entry.append($('' + length + '')); entry.append($('')); entry.append($('' + bpm + ' BPM')); - entry.append($('' + notes + '')); + entry.append($('' + notes.slice(0,80) + '')); return entry; } @@ -59,6 +59,43 @@ function prev() { function commit() { running(current_index); + commit_update(); + + params = { + url: "/commit", + type: "POST", + data: { index: current_index } + }; + + var req = $.ajax(params) + .done(function(data, textStatus, req) { + commit_ready(); + }) + .fail(function(req, textStatus, errorThrown) { + console.log("AjaxFailed:" + textStatus + " - " + errorThrown); + commit_failed(); + }); +} + +function commit_ready() { + var e = $('#commit'); + e.removeClass('update'); + e.removeClass('failed'); + e.html('✓'); +} + +function commit_update() { + var e = $('#commit'); + e.removeClass('failed'); + e.addClass('update'); + e.html('…'); +} + +function commit_failed() { + var e = $('#commit'); + e.removeClass('update'); + e.addClass('failed'); + e.html('✗'); } maximum_index = tracklist.length; diff --git a/views/index.erb b/views/index.erb index 940752b..5fc5bc9 100644 --- a/views/index.erb +++ b/views/index.erb @@ -17,7 +17,10 @@ .button#commit { color: green; } -.button#cancel { +.button#commit.update { + color: yellow; +} +.button#commit.failed { color: red; } #controls { @@ -32,7 +35,6 @@ var tracklist = <%= tracklist %>;
-
diff --git a/views/meta_css.erb b/views/meta_css.erb index 3dfe83e..ba1ef01 100644 --- a/views/meta_css.erb +++ b/views/meta_css.erb @@ -53,7 +53,6 @@ body { } .track > .title { - border: 1px dashed red; float: left; font-size: 16pt; white-space: nowrap; -- 2.42.0