Created
February 17, 2012 05:19
-
-
Save ggoodman/1850886 to your computer and use it in GitHub Desktop.
Plunker Testing Script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html><html><head><title>Plunker testbed</title><link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css"><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script><script type="text/javascript"> | |
(function() { | |
$(function() { | |
var addFile, buildPlunk, loadPlunk; | |
addFile = (function() { | |
var counter; | |
counter = 0; | |
return function(file) { | |
var $content, $controls, $delete, $fieldset, $filename, $input, $label; | |
if (file == null) { | |
file = { | |
filename: "", | |
content: "" | |
}; | |
} | |
counter++; | |
$fieldset = $("<fieldset></fieldset>").addClass("plunk-file"); | |
$filename = $("<div>").addClass("control-group").appendTo($fieldset); | |
$label = $("<label>Filename</label>").addClass("control-label").attr("for", "files-" + counter + "-filename").appendTo($filename); | |
$controls = $("<div>").addClass("controls").appendTo($filename); | |
$input = $("<input>").addClass("plunk-filename").addClass("input-xlarge").attr("id", "files-" + counter + "-filename").attr("placeholder", "filename.ext").appendTo($controls).val(file.filename); | |
$delete = $("<button>Delete</button>").addClass("remove-file").addClass("btn").addClass("btn-danger").appendTo($controls); | |
$content = $("<div>").addClass("control-group").appendTo($fieldset); | |
$label = $("<label>Content</label>").addClass("control-label").attr("for", "files-" + counter + "-content").appendTo($content); | |
$controls = $("<div>").addClass("controls").appendTo($content); | |
$input = $("<textarea>").addClass("plunk-content").addClass("input-xxlarge").attr("id", "files-" + counter + "-content").attr("rows", "5").appendTo($controls).val(file.content); | |
return $fieldset.appendTo("#plunk-files"); | |
}; | |
})(); | |
loadPlunk = function(plunk) { | |
var file, filename, _ref, _results; | |
$("#plunk-id").val(plunk.id); | |
$("#plunk-description").val(plunk.description); | |
$("#plunk-index").val(plunk.index); | |
_ref = plunk.files; | |
_results = []; | |
for (filename in _ref) { | |
file = _ref[filename]; | |
_results.push(addFile(file)); | |
} | |
return _results; | |
}; | |
buildPlunk = function() { | |
var plunk; | |
plunk = { | |
id: $("#plunk-id").val(), | |
description: $("#plunk-description").val(), | |
index: $("#plunk-index").val(), | |
files: {} | |
}; | |
$("fieldset.plunk-file").each(function(el) { | |
var filename; | |
if (filename = $("input.plunk-filename", el).val()) { | |
return plunk.files[filename] = $("textarea.plunk-content", el).val(); | |
} | |
}); | |
return plunk; | |
}; | |
$("#search").on("reset", function(e) { | |
return $("#plunk :input").val(); | |
}); | |
$("#search").on("submit", function(e) { | |
var id; | |
e.preventDefault(); | |
$("input", this).removeClass("error"); | |
if (id = $("input", this).val()) { | |
return $.ajax("/api/v1/plunks/" + id, { | |
type: "get", | |
success: loadPlunk, | |
error: function() { | |
return $("#search input").addClass("error"); | |
} | |
}); | |
} | |
}); | |
$("#add-file").on("click", function(e) { | |
e.preventDefault(); | |
return addFile(); | |
}); | |
$("#plunk-files").on("click", ".remove-file", function(e) { | |
e.preventDefault(); | |
return $(e.target).parents("fieldset").remove(); | |
}); | |
return $("#update").on("click", function(e) { | |
var plunk, url; | |
e.preventDefault(); | |
plunk = buildPlunk(); | |
url = "/api/v1/plunks"; | |
if (plunk.id) url += "/" + plunk.id; | |
return $.ajax(url, { | |
type: "post", | |
contentType: "application/json", | |
dataType: "json", | |
data: JSON.stringify(plunk), | |
success: loadPlunk | |
}); | |
}); | |
}); | |
}).call(this); | |
</script></head><body style="padding-top: 60px"><div class="navbar navbar-fixed-top"><div class="navbar-inner"><div class="container"><a href="./" class="brand">Plunker tester</a><form id="search" class="navbar-search pull-right"><input placeholder="Plunk ID" class="search-query"><input type="reset"></form></div></div></div><div class="container"><div class="row"><div class="span12"><form id="plunk" class="form-horizontal"><input id="plunk-id" type="hidden"><fieldset><legend>Plunk info</legend><div class="control-group plunk-description"><label for="plunk-description" class="control-label">Plunk ID</label><div class="controls"><input id="plunk-description" placeholder="Plunk description" class="input-xlarge"><span class="help-inline">Optional</span></div></div><div class="control-group plunk-index"><label for="plunk-iindex" class="control-label">Index file</label><div class="controls"><input id="plunk-index" placeholder="index.html" class="input-small"><span class="help-inline">Optional</span><p class="help-block">This will default to index.html or the first .html file or otherwise an arbitrary file</p></div></div></fieldset><div id="plunk-files"></div><fieldset><div class="control-group"><div class="controls"><button id="add-file" class="btn btn-success">Add file</button></div></div></fieldset><fieldset><div class="form-actions"><button id="update" class="btn">Update</button></div></fieldset></form></div></div></div></body></html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment