Guest User

Untitled

a guest
Oct 15th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. define [
  2. 'bootstrap-modal'
  3. 'jquery'
  4. ], (Bootstrap, $) ->
  5. markup = """
  6. <div class="modal">
  7. <div class="modal-header">
  8. <button class="close" data-dismiss="modal">×</button>
  9. <h3 class="title"></h3>
  10. </div>
  11. <div class="modal-body">
  12.  
  13. </div>
  14. <div class="modal-footer">
  15. <a href="#" class="btn cancel">Peruuta</a>
  16. <a href="#" class="btn btn-primary confirm">OK</a>
  17. </div>
  18. </div>
  19. """
  20. promptMarkup = """
  21. <div class="control-group">
  22. <label class="prompt"></label>
  23. <input type="text" class="prompt-key">
  24. </div>
  25. """
  26. skeleton = $(markup)
  27. promptSkeleton = $(promptMarkup)
  28. createPromptInput = (key, prompt) =>
  29. inst = promptSkeleton.clone()
  30. $('.prompt', inst).html(prompt)
  31. $('.prompt-key', inst).attr('name', key)
  32. inst
  33.  
  34. prompt = (title, prompts, callback) =>
  35. inst = skeleton.clone()
  36. body = $('.modal-body', inst)
  37. titleEl = $('.title', inst)
  38. okButton = $('.confirm', inst)
  39. cancelButton = $('.cancel', inst)
  40. body.append(createPromptInput(key, prompt)) for key, prompt of prompts
  41. titleEl.html title
  42. okButton.on('click', (ev) =>
  43. ev.preventDefault()
  44. if callback
  45. data = {}
  46. for key, prompt of prompts
  47. data[key] = $("input[name='#{key}']", inst).val()
  48. callback(data)
  49. inst.modal('hide')
  50. )
  51. cancelButton.on('click', (ev) =>
  52. ev.preventDefault()
  53. if callback
  54. callback null
  55. inst.modal('hide')
  56. )
  57.  
  58. inst.modal()
  59.  
  60. {
  61. prompt: prompt
  62. }
Add Comment
Please, Sign In to add comment