summaryrefslogtreecommitdiff
path: root/js/api
diff options
context:
space:
mode:
Diffstat (limited to 'js/api')
-rw-r--r--js/api/get.js92
-rw-r--r--js/api/set.js39
2 files changed, 131 insertions, 0 deletions
diff --git a/js/api/get.js b/js/api/get.js
new file mode 100644
index 0000000..dd43130
--- /dev/null
+++ b/js/api/get.js
@@ -0,0 +1,92 @@
+;var ShaderAPI = {}
+ShaderAPI.limit = 24
+
+// info - fetch a single shader
+// id: shader id
+ShaderAPI.info = function(id, cb){
+ ShaderAPI.fetch({
+ f: "info",
+ id: id
+ }, cb)
+}
+
+// all - fetch all shaders
+ShaderAPI.all = function(cb){
+ ShaderAPI.fetch({
+ f: "all"
+ }, cb)
+}
+
+// range - fetch a pageful of results
+// limit: number of shaders to fetch
+// offset: number of results to skip
+ShaderAPI.range = function(limit, offset, cb){
+ ShaderAPI.fetch({
+ f: "range",
+ limit: limit || ShaderAPI.limit,
+ last: offset
+ }, cb)
+}
+
+// latest - get the latest N shaders
+// limit: number of shaders to fetch
+ShaderAPI.latest = function(limit, cb){
+ ShaderAPI.fetch({
+ f: "range",
+ limit: limit || ShaderAPI.limit
+ }, cb)
+}
+
+// page - get a page of N results
+// page: page number, start counting at 1
+// limit: number of shaders to fetch
+ShaderAPI.page = function(page, limit, cb){
+ ShaderAPI.fetch({
+ f: "range",
+ last: (page-1) * limit,
+ limit: limit || ShaderAPI.limit
+ }, cb)
+}
+
+// history - get all previous versions of a shader
+// id: shader id
+ShaderAPI.history = function(id, cb){
+ ShaderAPI.fetch({
+ f: "history",
+ id: id
+ }, cb)
+}
+
+// username - get all ids by a user
+ShaderAPI.username = function(username, cb){
+ ShaderAPI.fetch({
+ f: "username",
+ username: username
+ }, cb)
+}
+
+// list_users - list all users
+ShaderAPI.list_users = function(list_users, cb){
+ ShaderAPI.fetch({
+ f: "list_users"
+ }, cb)
+}
+
+// originals - get the earliest version of all named shaders
+ShaderAPI.originals = function(cb){
+ ShaderAPI.fetch({
+ f: "originals"
+ }, cb)
+}
+
+// fetch - AJAX wrapper
+ShaderAPI.fetch = function(params, cb){
+ $.getJSON("/cgi-bin/im/shader/view", params, function(data){
+ if (data.SUCCESS) {
+ cb(null, data.data)
+ }
+ else if (data.ERROR) {
+ cb(data.ERROR, data.data)
+ }
+ })
+}
diff --git a/js/api/set.js b/js/api/set.js
new file mode 100644
index 0000000..1e7e31f
--- /dev/null
+++ b/js/api/set.js
@@ -0,0 +1,39 @@
+function save_shader(){
+ typeof shader_id_root == 'undefined' ? shader_id_root = "" : shader_id_root
+ var params = {
+ script : $("#shader").val(),
+ image_url : $("#url").val(),
+ username : user.username,
+ shader_id : shader_id_root
+ }
+ console.log(params)
+ $.post("/cgi-bin/im/shader/save", params, function(resp){
+ console.log(resp);
+ data = JSON.parse(resp)
+ if (data.ERROR ){
+ alert(data.ERROR)
+ return false
+ }
+ if (! shader_id_root) {
+ shader_id_root = data.id;
+ }
+
+ var blob = dataUriToBlob(cc.clone().resize(200,200).canvas.toDataURL("image/png"))
+ var form = new FormData();
+
+ form.append("id", data.id);
+ form.append("qqfile", blob);
+ $.ajax({
+ url: "/cgi-bin/im/shader/thumbnail_upload",
+ type: "POST",
+ data: form,
+ processData: false,
+ contentType: false,
+ }).done(function(resp){
+ console.log(resp);
+ });
+
+ })
+ //maintain the shader_id_root...
+ return shader_id_root;
+}