2 var JS = Elm.JavaScript;
3 var toElmString = Elm.JavaScript.castJSStringToString;
4 function request(verb) { return function(url) { return function(data) {
5 return function(headers) {
8 verb : JS.castStringToJSString(verb),
9 url : JS.castStringToJSString(url),
10 data : data === null ? null : JS.castStringToJSString(data),
11 headers : headers }; }; }; };
13 function get(url) { return request("GET")(url)(null)(["Nil"]); }
14 function post(url) { return function(data) {
15 return request("POST")(url)(data)(["Nil"]); }; }
17 function registerReq(queue,responses) { return function(req) {
18 if (req.url !== "") { sendReq(queue,responses,req); }
22 function updateQueue(queue,responses) {
23 if (queue.length > 0) {
24 Dispatcher.notify(responses.id, queue[0].value);
25 if (queue[0].value[0] !== "Waiting") {
27 setTimeout(function() { updateQueue(queue,responses); }, 0);
32 function sendReq(queue,responses,req) {
33 var response = { value: ["Waiting"] };
37 if (window.ActiveXObject) { request = new ActiveXObject("Microsoft.XMLHTTP"); }
38 if (window.XMLHttpRequest) { request = new XMLHttpRequest(); }
39 request.onreadystatechange = function(e) {
40 if (request.readyState === 4) {
41 response.value = (request.status === 200
42 ? ["Success", toElmString(request.responseText)]
43 : ["Failure", request.status,
44 toElmString(request.statusText)]);
45 setTimeout(function() { updateQueue(queue,responses); }, 0);
48 request.open(req.verb, req.url, true);
49 Elm.List.map(function(pair) {
50 request.setRequestHeader(
51 JS.castStringToJSString(pair[1]),
52 JS.castStringToJSString(pair[2]));
54 request.send(req.data);
58 function send(requests) {
59 var responses = Elm.Signal.constant(["Waiting"]);
60 var sender = Elm.Signal.lift(registerReq([],responses))(requests);
61 function f(x) { return function(y) { return x; } }
62 var combine = Elm.Signal.lift2(f)(responses)(sender);
70 sendGet : function(urls){return send(Elm.Signal.lift(get)(urls));}
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list