Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- define [
- 'bootstrap-modal'
- 'jquery'
- ], (Bootstrap, $) ->
- markup = """
- <div class="modal">
- <div class="modal-header">
- <button class="close" data-dismiss="modal">×</button>
- <h3 class="title"></h3>
- </div>
- <div class="modal-body">
- </div>
- <div class="modal-footer">
- <a href="#" class="btn cancel">Peruuta</a>
- <a href="#" class="btn btn-primary confirm">OK</a>
- </div>
- </div>
- """
- promptMarkup = """
- <div class="control-group">
- <label class="prompt"></label>
- <input type="text" class="prompt-key">
- </div>
- """
- skeleton = $(markup)
- promptSkeleton = $(promptMarkup)
- createPromptInput = (key, prompt) =>
- inst = promptSkeleton.clone()
- $('.prompt', inst).html(prompt)
- $('.prompt-key', inst).attr('name', key)
- inst
- prompt = (title, prompts, callback) =>
- inst = skeleton.clone()
- body = $('.modal-body', inst)
- titleEl = $('.title', inst)
- okButton = $('.confirm', inst)
- cancelButton = $('.cancel', inst)
- body.append(createPromptInput(key, prompt)) for key, prompt of prompts
- titleEl.html title
- okButton.on('click', (ev) =>
- ev.preventDefault()
- if callback
- data = {}
- for key, prompt of prompts
- data[key] = $("input[name='#{key}']", inst).val()
- callback(data)
- inst.modal('hide')
- )
- cancelButton.on('click', (ev) =>
- ev.preventDefault()
- if callback
- callback null
- inst.modal('hide')
- )
- inst.modal()
- {
- prompt: prompt
- }
Add Comment
Please, Sign In to add comment