Guest User

Untitled

a guest
Dec 4th, 2014
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.05 KB | None | 0 0
  1. @model ExamManagementApplication.Models.BlanksTaskCreateViewModel
  2. @{
  3. ViewBag.Title = "Create";
  4. }
  5.  
  6. <section class="content-header">
  7. <h1>
  8. Zadania
  9. <small>Dodaj zadanie</small>
  10. </h1>
  11. <ol class="breadcrumb">
  12. <li><a href="#"><i class="fa fa-dashboard"></i> Przegląd</a></li>
  13. <li class="active">Zadania</li>
  14. </ol>
  15. </section>
  16. <section class="content">
  17.  
  18. @using (Html.BeginForm())
  19. {
  20. <div class="form-horizontal">
  21. <hr />
  22. @Html.ValidationSummary(true, "", new { @class = "text-danger" })
  23. @Html.HiddenFor(model => model.TaskID)
  24. <div class="form-group">
  25. <div class="col-md-10">
  26. <input data-bind='value: instruction' />
  27. </div>
  28. </div>
  29. <div class="col-md-12">
  30. <div class="questionsEditor">
  31. <div data-bind="foreach: questions">
  32. <div class="box box-primary">
  33. <div class="box-header" data-toggle="tooltip" title="Header tooltip">
  34. <div class="box-tools pull-right">
  35. <button class="btn btn-primary btn-xs" data-widget="collapse"><i class="fa fa-minus"></i></button>
  36. <button id="deleteRow" data-bind='click: $root.removeQuestion' class="btn btn-primary btn-xs" data-widget="remove"><i class="fa fa-times"></i></button>
  37. </div>
  38. </div>
  39. <div class="box-body">
  40.  
  41. <dl class="dl-horizontal">
  42. <dt>
  43. <label>Pytanie</label>
  44.  
  45. </dt>
  46. <dd>
  47. <input data-bind='value: question' class="form-control" />
  48. </dd>
  49. <dt>
  50. <label>Odpowiedzi</label>
  51. </dt>
  52. <dd>
  53. <div data-bind="foreach: answers">
  54. <div><input data-bind='value: answer' class="form-control" /></div>
  55. <div><a href='#' data-bind='click: $root.removeAnswer'><i class="glyphicon glyphicon-remove-sign"></i><span class="sr-only">Delete</span></a></div>
  56. </div>
  57. </dd>
  58.  
  59. </dl>
  60. <button class="btn btn-primary" data-bind='click: $root.addAnswer'>Add answer</button>
  61. </div><!-- /.box-body -->
  62. <div class="box-footer">
  63. </div><!-- /.box-footer-->
  64. </div><!-- /.box -->
  65. </div>
  66. </div>
  67. </div>
  68. <p>
  69. <button data-bind='click: addQuestion' class="btn btn-primary">Add a question</button>
  70. </p>
  71. </div>
  72.  
  73. }
  74. <div>
  75. @Html.ActionLink("Powrót do listy", "Index", "BaseTasks", null, new { @class = "btn btn-default" })
  76. <button data-bind='click: save' class="btn btn-primary">Submit</button>
  77. </div>
  78.  
  79. </section>
  80. <script type="text/javascript">
  81. var QuestionsModel = function (questions, instruction) {
  82. var self = this;
  83. self.TaskID = '@Model.TaskID';
  84. self.instruction = instruction;
  85. self.questions = ko.observableArray(ko.utils.arrayMap(questions, function (question) {
  86. return { question: question.question, answers: ko.observableArray(question.answers) };
  87. }));
  88.  
  89. self.addQuestion = function () {
  90. self.questions.push({
  91. question: "",
  92. answers: ko.observableArray()
  93. });
  94. };
  95.  
  96. self.removeQuestion = function (question) {
  97. self.questions.remove(question);
  98. };
  99.  
  100. self.addAnswer = function (question) {
  101. question.answers.push({
  102. answer: ""
  103. });
  104. };
  105.  
  106. self.removeAnswer = function (answer) {
  107. $.each(self.questions(), function () { this.answers.remove(answer) })
  108. };
  109.  
  110. self.save = function () {
  111. var jsonString = ko.mapping.toJSON(self);
  112. $.ajax({
  113. url: "/BlanksTasks/Create",
  114. data: jsonString,
  115. type: 'POST',
  116. contentType: 'application/json',
  117. // dataType: 'json',
  118. success: function () {
  119. window.location = '/BaseTasks/Index';
  120. },
  121. error: function () {
  122. alert('error');
  123. }
  124. });
  125. };
  126.  
  127. };
  128. ko.applyBindings(new QuestionsModel());
  129. </script>
Advertisement
Add Comment
Please, Sign In to add comment