|
3 | 3 | # You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
|
4 | 4 |
|
5 | 5 | jQuery ->
|
6 |
| - $(".date").datepicker({dateFormat: "yy-mm-dd", defaultValue: $(this).val()}) |
7 |
| - logActor = (name, val) -> |
8 |
| - #console.log(name) |
9 |
| - $("#actor-list").append($("<li>").text(name).attr("data-id", val).append($("<p class=\"delete-actor\">").button( |
10 |
| - icons: |
11 |
| - primary: "ui-icon\-closethick" |
12 |
| - text: false |
13 |
| - ).click( -> |
14 |
| - $(this).parent().remove() |
15 |
| - $("option.actor[value="+val+"]").remove()))) |
16 |
| - $("#movie_actors").append("<option class=\"actor\" selected=\"true\" value=\"" + val + "\">" + name + "</option>") |
17 |
| - $(".delete-actor").button( |
18 |
| - icons: |
19 |
| - primary: "ui-icon\-closethick" |
20 |
| - text: false |
21 |
| - ).click( -> |
22 |
| - id = $(this).parent().attr("data-id") |
23 |
| - $(this).parent().remove() |
24 |
| - $("option.actor[value="+id+"]").remove()) |
25 |
| - $(".actor-picker").autocomplete( |
26 |
| - source: (request, response) -> |
27 |
| - $.getJSON("/actors.json", (rawdata) -> |
28 |
| - matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i") |
29 |
| - data = [] |
30 |
| - for obj in rawdata |
31 |
| - data.push({"label": obj.firstname + " " + obj.lastname, "value": obj.id}) |
32 |
| - response($.grep(data, (el, index) -> |
33 |
| - return matcher.test(el.label) |
34 |
| - )) |
| 6 | + if $("body").data("controller") in ["movies", "genres", "actors"] |
| 7 | + $("#searchbar").autocomplete( |
| 8 | + source: (request, response) -> |
| 9 | + $.getJSON(location.pathname + ".json", (rawdata) -> |
| 10 | + matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i") |
| 11 | + data = [] |
| 12 | + for obj in rawdata |
| 13 | + label = obj.title || obj.name || obj.firstname + " " + obj.lastname |
| 14 | + data.push({"label": label, "value": obj.id}) |
| 15 | + response($.grep(data, (el, index) -> |
| 16 | + return matcher.test(el.label) |
| 17 | + )) |
| 18 | + ) |
| 19 | + select: (event, ui)-> |
| 20 | + if ui.item |
| 21 | + event.preventDefault() |
| 22 | + $(this).autocomplete("close") |
| 23 | + $(this).val(ui.item.label) |
| 24 | + location.href += "/"+ui.item.value |
| 25 | + ) |
| 26 | + $(".date").datepicker({dateFormat: "yy-mm-dd", defaultValue: $(this).val()}) |
| 27 | + logActor = (name, val) -> |
| 28 | + #console.log(name) |
| 29 | + $("#actor-list").append($("<li>").text(name).attr("data-id", val).append($("<p class=\"delete-actor\">").button( |
| 30 | + icons: |
| 31 | + primary: "ui-icon\-closethick" |
| 32 | + text: false |
| 33 | + ).click( -> |
| 34 | + $(this).parent().remove() |
| 35 | + $("option.actor[value="+val+"]").remove()))) |
| 36 | + $("#movie_actors").append("<option class=\"actor\" selected=\"true\" value=\"" + val + "\">" + name + "</option>") |
| 37 | + $(".delete-actor").button( |
| 38 | + icons: |
| 39 | + primary: "ui-icon\-closethick" |
| 40 | + text: false |
| 41 | + ).click( -> |
| 42 | + id = $(this).parent().attr("data-id") |
| 43 | + $(this).parent().remove() |
| 44 | + $("option.actor[value="+id+"]").remove()) |
| 45 | + $(".actor-picker").autocomplete( |
| 46 | + source: (request, response) -> |
| 47 | + $.getJSON("/actors.json", (rawdata) -> |
| 48 | + matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i") |
| 49 | + data = [] |
| 50 | + for obj in rawdata |
| 51 | + data.push({"label": obj.firstname + " " + obj.lastname, "value": obj.id}) |
| 52 | + response($.grep(data, (el, index) -> |
| 53 | + return matcher.test(el.label) |
| 54 | + )) |
| 55 | + ) |
| 56 | + select: (event, ui)-> |
| 57 | + if ui.item && ($("option.actor[value=" + ui.item.value + "]").length == 0) |
| 58 | + logActor(ui.item.label, ui.item.value) |
| 59 | + event.preventDefault() |
| 60 | + $(this).autocomplete("close") |
| 61 | + $(this).val("") |
| 62 | + response: (event, ui) -> |
| 63 | + if ui.content.length == 0 |
| 64 | + strg = this.value |
| 65 | + length = strg.length |
| 66 | + idex = strg.lastIndexOf " " |
| 67 | + fname = strg.substr(0, idex) |
| 68 | + lname = strg.substr(idex+1, length - idex - 1) |
| 69 | + $("#create-new-actor").show().text("Create " + this.value).attr("data-firstname", fname).attr("data-lastname", lname) |
| 70 | + else |
| 71 | + $("#create-new-actor").hide() |
| 72 | + ) |
| 73 | + $("#create-new-actor").click( -> |
| 74 | + firstname = $(this).attr("data-firstname") |
| 75 | + lastname = $(this).attr("data-lastname") |
| 76 | + $.ajax( |
| 77 | + url: "/actors.json", |
| 78 | + type: "POST", |
| 79 | + data: |
| 80 | + "actor[firstname]": firstname, |
| 81 | + "actor[lastname]": lastname, |
| 82 | + success: (a,b,c,d) -> |
| 83 | + logActor(firstname + " " + lastname, a.id) |
| 84 | + $("#create-new-actor").hide() |
| 85 | + failure: (a,b,c,d) -> |
| 86 | + alert "Failure" |
| 87 | + console.log(a, b, c, d) |
35 | 88 | )
|
36 |
| - minLength: 2, |
37 |
| - select: (event, ui)-> |
38 |
| - if ui.item && ($("option.actor[value=" + ui.item.value + "]").length == 0) |
39 |
| - logActor(ui.item.label, ui.item.value) |
40 |
| - event.preventDefault() |
41 |
| - $(this).autocomplete("close") |
42 |
| - $(this).val("") |
43 |
| - response: (event, ui) -> |
44 |
| - if ui.content.length == 0 |
45 |
| - strg = this.value |
46 |
| - length = strg.length |
47 |
| - idex = strg.lastIndexOf " " |
48 |
| - fname = strg.substr(0, idex) |
49 |
| - lname = strg.substr(idex+1, length - idex - 1) |
50 |
| - $("#create-new-actor").show().text("Create " + this.value).attr("data-firstname", fname).attr("data-lastname", lname) |
51 |
| - else |
52 |
| - $("#create-new-actor").hide() |
53 |
| - ) |
54 |
| - $("#create-new-actor").click( -> |
55 |
| - firstname = $(this).attr("data-firstname") |
56 |
| - lastname = $(this).attr("data-lastname") |
57 |
| - $.ajax( |
58 |
| - url: "/actors.json", |
59 |
| - type: "POST", |
60 |
| - data: |
61 |
| - "actor[firstname]": firstname, |
62 |
| - "actor[lastname]": lastname, |
63 |
| - success: (a,b,c,d) -> |
64 |
| - logActor(firstname + " " + lastname, a.id) |
65 |
| - $("#create-new-actor").hide() |
66 |
| - failure: (a,b,c,d) -> |
67 |
| - alert "Failure" |
68 |
| - console.log(a, b, c, d) |
69 | 89 | )
|
| 90 | + |
| 91 | + logGenre = (name, val) -> |
| 92 | + #console.log(name) |
| 93 | + $("#genre-list").append($("<li>").text(name).attr("data-id", val).append($("<p class=\"delete-genre\">").button( |
| 94 | + icons: |
| 95 | + primary: "ui-icon\-closethick" |
| 96 | + text: false |
| 97 | + ).click( -> |
| 98 | + $(this).parent().remove() |
| 99 | + $("option.genre[value="+val+"]").remove()))) |
| 100 | + $("#movie_genres").append("<option class=\"genre\" selected=\"true\" value=\"" + val + "\">" + name + "</option>") |
| 101 | + $(".delete-genre").button( |
| 102 | + icons: |
| 103 | + primary: "ui-icon\-closethick" |
| 104 | + text: false |
| 105 | + ).click( -> |
| 106 | + id = $(this).parent().attr("data-id") |
| 107 | + $(this).parent().remove() |
| 108 | + $("option.genre[value="+id+"]").remove()) |
| 109 | + $(".genre-picker").autocomplete( |
| 110 | + source: (request, response) -> |
| 111 | + $.getJSON("/genres.json", (rawdata) -> |
| 112 | + matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i") |
| 113 | + data = [] |
| 114 | + for obj in rawdata |
| 115 | + data.push({"label": obj.name, "value": obj.id}) |
| 116 | + response($.grep(data, (el, index) -> |
| 117 | + return matcher.test(el.label) |
| 118 | + )) |
| 119 | + ) |
| 120 | + minLength: 2, |
| 121 | + select: (event, ui)-> |
| 122 | + if ui.item && ($("option.genre[value=" + ui.item.value + "]").length == 0) |
| 123 | + logGenre(ui.item.label, ui.item.value) |
| 124 | + event.preventDefault() |
| 125 | + $(this).autocomplete("close") |
| 126 | + $(this).val("") |
| 127 | + response: (event, ui) -> |
| 128 | + if ui.content.length == 0 |
| 129 | + name = this.value |
| 130 | + $("#create-new-genre").show().text("Create genre " + this.value).attr("data-name", name) |
| 131 | + else |
| 132 | + $("#create-new-genre").hide() |
70 | 133 | )
|
71 |
| - |
72 |
| - logGenre = (name, val) -> |
73 |
| - #console.log(name) |
74 |
| - $("#genre-list").append($("<li>").text(name).attr("data-id", val).append($("<p class=\"delete-genre\">").button( |
75 |
| - icons: |
76 |
| - primary: "ui-icon\-closethick" |
77 |
| - text: false |
78 |
| - ).click( -> |
79 |
| - $(this).parent().remove() |
80 |
| - $("option.genre[value="+val+"]").remove()))) |
81 |
| - $("#movie_genres").append("<option class=\"genre\" selected=\"true\" value=\"" + val + "\">" + name + "</option>") |
82 |
| - $(".delete-genre").button( |
83 |
| - icons: |
84 |
| - primary: "ui-icon\-closethick" |
85 |
| - text: false |
86 |
| - ).click( -> |
87 |
| - id = $(this).parent().attr("data-id") |
88 |
| - $(this).parent().remove() |
89 |
| - $("option.genre[value="+id+"]").remove()) |
90 |
| - $(".genre-picker").autocomplete( |
91 |
| - source: (request, response) -> |
92 |
| - $.getJSON("/genres.json", (rawdata) -> |
93 |
| - matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i") |
94 |
| - data = [] |
95 |
| - for obj in rawdata |
96 |
| - data.push({"label": obj.name, "value": obj.id}) |
97 |
| - response($.grep(data, (el, index) -> |
98 |
| - return matcher.test(el.label) |
99 |
| - )) |
| 134 | + $("#create-new-genre").click( -> |
| 135 | + name = $(this).attr("data-name") |
| 136 | + $.ajax( |
| 137 | + url: "/genres.json", |
| 138 | + type: "POST", |
| 139 | + data: |
| 140 | + "genre[name]": name, |
| 141 | + success: (a,b,c,d) -> |
| 142 | + logGenre(name, a.id) |
| 143 | + $("#create-new-genre").hide() |
| 144 | + failure: (a,b,c,d) -> |
| 145 | + alert "Failure" |
| 146 | + console.log(a, b, c, d) |
100 | 147 | )
|
101 |
| - minLength: 2, |
102 |
| - select: (event, ui)-> |
103 |
| - if ui.item && ($("option.genre[value=" + ui.item.value + "]").length == 0) |
104 |
| - logGenre(ui.item.label, ui.item.value) |
105 |
| - event.preventDefault() |
106 |
| - $(this).autocomplete("close") |
107 |
| - $(this).val("") |
108 |
| - response: (event, ui) -> |
109 |
| - if ui.content.length == 0 |
110 |
| - name = this.value |
111 |
| - $("#create-new-genre").show().text("Create genre " + this.value).attr("data-name", name) |
112 |
| - else |
113 |
| - $("#create-new-genre").hide() |
114 |
| - ) |
115 |
| - $("#create-new-genre").click( -> |
116 |
| - name = $(this).attr("data-name") |
117 |
| - $.ajax( |
118 |
| - url: "/genres.json", |
119 |
| - type: "POST", |
120 |
| - data: |
121 |
| - "genre[name]": name, |
122 |
| - success: (a,b,c,d) -> |
123 |
| - logGenre(name, a.id) |
124 |
| - $("#create-new-genre").hide() |
125 |
| - failure: (a,b,c,d) -> |
126 |
| - alert "Failure" |
127 |
| - console.log(a, b, c, d) |
128 | 148 | )
|
129 |
| - ) |
|
0 commit comments