Mercurial > code > home > repos > href
annotate static/add.js @ 10:e054949143e9
reworking addlink and shareWith support
Ignore-this: b1665b776f3964f7fde219acadc51f32
author | drewp@bigasterisk.com |
---|---|
date | Fri, 15 Mar 2013 00:29:53 -0700 |
parents | f8c4c7ce5f4a |
children | 9fc1f5c8aa4e |
rev | line source |
---|---|
4 | 1 var model = { |
10
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
2 linkRecord: { |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
3 href: ko.observable(""), |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
4 description: ko.observable(""), |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
5 tag: ko.observable(""), |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
6 extended: ko.observable(""), |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
7 private: ko.observable(false), |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
8 shareWith: ko.observableArray([]), // foaf uris |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
9 }, |
5
f8c4c7ce5f4a
lots of href additions: add/edit, nav fixes
Drew Perttula <drewp@bigasterisk.com>
parents:
4
diff
changeset
|
10 submitLabel: ko.observable("Add"), |
4 | 11 }; |
12 | |
13 ko.computed(function() { | |
10
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
14 if (model.linkRecord.href() == "") { |
4 | 15 return; |
16 } | |
17 | |
10
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
18 $.getJSON("addLink/proposedUri", {uri: model.linkRecord.href()}, function (data) { |
5
f8c4c7ce5f4a
lots of href additions: add/edit, nav fixes
Drew Perttula <drewp@bigasterisk.com>
parents:
4
diff
changeset
|
19 // these could arrive after the user has started typing in the fields! |
f8c4c7ce5f4a
lots of href additions: add/edit, nav fixes
Drew Perttula <drewp@bigasterisk.com>
parents:
4
diff
changeset
|
20 |
10
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
21 model.linkRecord.description(data.description); |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
22 model.linkRecord.tag(data.tag); |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
23 model.linkRecord.extended(data.extended); |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
24 model.linkRecord.shareWith(data.shareWith); |
5
f8c4c7ce5f4a
lots of href additions: add/edit, nav fixes
Drew Perttula <drewp@bigasterisk.com>
parents:
4
diff
changeset
|
25 model.submitLabel(data.existed ? "Update existing" : "Add"); |
f8c4c7ce5f4a
lots of href additions: add/edit, nav fixes
Drew Perttula <drewp@bigasterisk.com>
parents:
4
diff
changeset
|
26 |
4 | 27 }); |
28 | |
29 }); | |
30 | |
31 ko.applyBindings(model); | |
10
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
32 |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
33 $("#shareWith").select2({ |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
34 tokenSeparators: [",", " "], |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
35 ajax: { |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
36 url: "/foaf/findPerson", |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
37 data: function (term, page) { |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
38 return {q: term}; |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
39 }, |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
40 results: function (data, page) { |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
41 var ret = {results: data.people.map( |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
42 function (row) { |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
43 return {id: row.uri, text: row.label + " ("+row.uri+")"} |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
44 }), |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
45 more: false, |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
46 context: {} |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
47 }; |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
48 //ret.results.push({id: "new1", text: this.context}); |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
49 return ret; |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
50 } |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
51 }, |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
52 tags: [], |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
53 }); |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
54 $("#shareWith").on('change', function (e) { setModelFromShares(e.val); }); |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
55 |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
56 var setSharesFromModel = ko.computed( |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
57 function () { |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
58 var uris = ko.utils.arrayGetDistinctValues(model.linkRecord.shareWith()); |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
59 console.log("from model", uris) |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
60 $("#shareWith").select2("data", uris.map( |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
61 function (uri) { |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
62 return {id: uri, text: "("+uri+")"}; |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
63 })); |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
64 }); |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
65 |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
66 function setModelFromShares(n) { |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
67 console.log("from val", $("#shareWith").select2("val"), "new", n) |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
68 model.linkRecord.shareWith($("#shareWith").select2("val")); |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
69 } |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
70 |
e054949143e9
reworking addlink and shareWith support
drewp@bigasterisk.com
parents:
5
diff
changeset
|
71 setSharesFromModel(); |