admin/js/models.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
(function(){ window.Page = {}; window.Info = {}; window.Doc = {}; var app = window.LS || (window.LS = {}); var u = app.utils; app.host = 'http://localhost:9500'; var host = location.origin === app.host ? "" : app.host; Page.get = function(id) { var content = m.prop(""); return m.request({ method: "GET", url: host+"/docs/admin/md/"+id+".md", deserialize: function(value) { return value; } }).then(function(content){ return u.markdown(content); }); }; Info.get = function(){ var content = m.prop(""); return m.request({ method: "GET", url: host+"/info" }).then(content); }; Doc.getByTag = function(tag, offset, limit) { offset = offset || 0; limit = limit || 10; var docs = m.prop(""); return m.request({ method: "GET", url: host+"/docs?contents=false&tags="+tag+"&limit="+limit+"&offset="+offset }).then(docs); }; Doc.search = function(search, offset, limit){ offset = offset || 0; limit = limit || 10; var docs = m.prop(""); return m.request({ method: "GET", url: host+"/docs?contents=false&search="+search+"&limit="+limit+"&offset="+offset, }).then(docs); }; Doc.get = function(id) { var doc = m.prop(""); return m.request({ method: "GET", url: host+"/docs/"+id+"?raw=true" }).then(doc); }; Doc.delete = function(id){ return m.request({ method: "DELETE", url: host+"/docs/"+id }); }; Doc.put = function(doc, contentType){ xhrcfg = u.setContentType(doc, contentType); console.log("Doc.put - Saving Document:", doc); return m.request({ method: "PUT", url: host+"/docs/"+doc.id, data: doc.data, serialize: function(data){ return data; }, config: xhrcfg }); }; Doc.upload = function(doc) { console.log("Doc.put - Uploading Document:", doc); return m.request({ method: "PUT", url: host+"/docs/"+doc.id, data: doc.data, serialize: function(data) { return data; } }); }; Doc.patch = function(id, updatedTags){ return Doc.get(id).then(function(doc){ var tags = doc.tags; var count = 0; var ops = []; tags.forEach(function(tag){ if (updatedTags[count]){ if (updatedTags[count] != tag){ // update tag ops.push({"op": "replace", "path": "/tags/"+count, "value": updatedTags[count]}); } } else { // delete tag ops.push({"op": "remove", "path": "/tags/"+count}); } count++; }); if (updatedTags.length > tags.length) { for (i = tags.length; i< updatedTags.length; i++){ // add tag ops.push({"op": "add", "path": "/tags/"+i, "value": updatedTags[i]}); } } console.log("Doc.patch - Saving Tags:", ops); return m.request({ method: "PATCH", url: host+"/docs/"+id, data: ops }); }); }; }()); |