diff --git a/src/app.rb b/src/app.rb index ec82f7b..ae21a67 100644 --- a/src/app.rb +++ b/src/app.rb @@ -97,6 +97,16 @@ post '/download_charfile' do "/get_file?file=#{key}&download_name=#{data['name']} Character Sheet.char" end +post '/model' do + request.body.rewind + raw = request.body.readpartial(16 * 1024) + data = JSON.parse(raw) + key = "char-#{Time.now.strftime('%Y%m%d%H%M%S%L')}-#{rand(1...10000)}" + CACHE.store key, data + + "/get_file?file=#{key}&download_name=#{data['name']} Character Sheet.model" +end + get '/get_file' do data = nil if params['download_name'].match(/\.pdf$/) @@ -112,4 +122,4 @@ get '/get_file' do end attachment params['download_name'] data -end \ No newline at end of file +end diff --git a/src/public/js/burning.js b/src/public/js/burning.js index 204554d..77253e6 100644 --- a/src/public/js/burning.js +++ b/src/public/js/burning.js @@ -1431,6 +1431,22 @@ function BurningCtrl($scope, $http, $modal, $timeout, settings, appropriateWeapo }); } + $scope.downloadCharacterModel = function(){ + var json = angular.toJson($scope.convertCurrentCharacterToStructForCharSheet(), true); + $http.post("/model", json). + success(function(data,status,headers,config){ + console.log("huzzah, making model succeeded. File URL: " + data); + var frame = document.getElementById("downloadframe"); + if ( frame ){ + frame.src = data; + } + }). + error(function(data,status,headers,config){ + console.log("boo, making model failed: " + data); + $scope.addAlert('tools', "Generating character model failed: " + data); + }); + } + $scope.saveCurrentCharacterToServer = function(){ var nameWarn = "The character must have a name before it can be saved."; if( $scope.name.length == 0 ){ diff --git a/src/views/partials/main.erb b/src/views/partials/main.erb index 35ed950..161b537 100644 --- a/src/views/partials/main.erb +++ b/src/views/partials/main.erb @@ -54,6 +54,11 @@ Upload Character... +
+ + Download Character Model + +
@@ -831,4 +836,4 @@ -Charred v{{serverSettings.versionString}} \ No newline at end of file +Charred v{{serverSettings.versionString}}