|
<!doctype html> |
|
<html class="no-js" lang="en-US"> |
|
<head> |
|
|
|
<script src="https://code.jquery.com/jquery-3.7.1.js" integrity="sha256-eKhayi8LEQwp4NKxN+CfCh+3qOVUtJn3QNZ0TciWLP4=" crossorigin="anonymous"></script> |
|
|
|
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/knockout/knockout-3.5.0.js"></script> |
|
<!-- <script src="model.js" type="text/javascript"></script> |
|
--> |
|
<script> |
|
|
|
|
|
|
|
$(document).ready(function() { |
|
|
|
|
|
var speakersModel = function(speakers) { |
|
var self = this; |
|
|
|
self.speakers = ko.observableArray(ko.utils.arrayMap(speakers, function(speaker) { |
|
return { introduction: speaker.introduction, opinionsStatus: ko.observableArray(speaker.opinionsStatus), speaker: ko.observableArray(speaker.speakerl) }; |
|
})); |
|
|
|
|
|
|
|
self.addSpeaker = function() { |
|
self.speakers.push({ |
|
speaker: [ |
|
{ id: 1, name: "Apple" , selected:true}, |
|
{ id: 55, name: "Orange",selected:false}, |
|
{ id: 78, name: "Watermelon",selected:false}, |
|
{ id: 3, name: "Banana",selected:false} |
|
], |
|
introduction: "", |
|
opinionsStatus: [ |
|
{ id: 1, name: "FOR" , selected:true}, |
|
{ id: 2, name: "AGAINST",selected:false} |
|
], |
|
|
|
}); |
|
}; |
|
|
|
self.removeSpeaker = function(speaker) { |
|
self.speakers.remove(speaker); |
|
}; |
|
|
|
|
|
|
|
|
|
self.save2 = function() { |
|
self.lastSavedJson(JSON.stringify(ko.toJS(self.speakers), null, 2)); |
|
}; |
|
|
|
self.lastSavedJson = ko.observable("") |
|
}; |
|
|
|
|
|
var initialData = [ |
|
{ introduction: "Danny", |
|
opinionsStatus:[ |
|
{ id: 1, name: "FOR" , selected:false}, |
|
{ id: 2, name: "AGAINST",selected:true} |
|
], |
|
speakerl: [ |
|
{ id: 1, name: "Apple" , selected:false}, |
|
{ id: 55, name: "Orange",selected:true}, |
|
{ id: 78, name: "Watermelon",selected:false}, |
|
{ id: 3, name: "Banana",selected:false} |
|
] |
|
}, |
|
{ introduction: "Shane", |
|
opinionsStatus:[ |
|
{ id: 1, name: "FOR" , selected:true}, |
|
{ id: 2, name: "AGAINST",selected:false} |
|
], |
|
speakerl: [ |
|
{ id: 1, name: "Apple" , selected:false}, |
|
{ id: 55, name: "Orange",selected:false}, |
|
{ id: 78, name: "Watermelon",selected:true}, |
|
{ id: 3, name: "Banana",selected:false} |
|
] |
|
} |
|
]; |
|
|
|
|
|
|
|
|
|
ko.applyBindings(new speakersModel(initialData)); |
|
|
|
|
|
|
|
|
|
}); |
|
</script> |
|
</head> |
|
<body class="jquery home page-template-default page page-id-6 page-slug-index single-author singular"> |
|
|
|
<div id='speakersList'> |
|
<table class='speakersEditor'> |
|
<tr> |
|
<th style="color:red">Select Speaker </th> |
|
<th style="color:blue"> Introduction </th> |
|
<th style="color:orange"> Opinions</th> |
|
<th></th> |
|
</tr> |
|
<tbody data-bind="foreach: speakers"> |
|
<tr> |
|
<td> |
|
<select data-bind="foreach: speaker"> |
|
<option data-bind="value: id, text: name , attr: { selected : (selected == false) ? selected : '' }"></option> |
|
</select> |
|
|
|
|
|
</td> |
|
|
|
<td> |
|
<input class="form-control" id="introduction" data-bind='value: introduction' type="text"> |
|
</td> |
|
|
|
<td> |
|
<select data-bind="foreach: opinionsStatus"> |
|
<option data-bind="value: id, text: name , attr: { selected : (selected == false) ? selected : '' }"></option> |
|
</select> |
|
</td> |
|
|
|
<td> |
|
<a href='#' data-bind='click: $root.removeSpeaker'>Delete</a> |
|
</td> |
|
</tr> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</tbody> |
|
</table> |
|
<button id="addSpeakerEvent" data-bind='click: addSpeaker'>New Speaker Add</button> |
|
<button style="display: block" id="SaveJson" data-bind='click: save2, enable: speakers().length > 0'>Save to |
|
JSON</button> |
|
<textarea name="tvsDebateMB_selectSpeakerData[]" style="display: block;" data-bind='value: lastSavedJson' rows='5' |
|
cols='60'> </textarea> |
|
</div> |
|
|
|
</body> |
|
</html> |