~fabiocbalbuquerque/sahana-agasti/web-services

« back to all changes in this revision

Viewing changes to web/js/agModal.js

  • Committer: Chad Heuschober
  • Date: 2011-03-24 16:30:40 UTC
  • mto: (1.26.1 push-trunk) (7.1.1 mayon)
  • mto: This revision was merged to the branch mainline in revision 6.
  • Revision ID: chad.heuschober@mail.cuny.edu-20110324163040-j81stk9su46i41er
Committed additional license changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/**
2
 
* buildModal creates a jQuery UI modal dialog window.
3
 
*
4
 
* @param  element  A DOM element, most likely a div, that will display content inside the
5
 
*                  modal window.
6
 
* @param  title    The title for the modal window.
7
 
* @return $dialog  A configured modal dialog.
8
 
*
9
 
* @todo   Add more params for greater configurability.
10
 
**/
11
 
function buildModal(element, title) {
12
 
  var $dialog = $(element)
13
 
  .dialog({
14
 
    title: title,
15
 
    autoOpen: false,
16
 
    resizable: false,
17
 
    width: 'auto',
18
 
    height: 'auto',
19
 
    draggable: false,
20
 
    modal: true
21
 
  });
22
 
  return $dialog;
23
 
}
 
1
$(document).ready(function() {
 
2
  var $dialog = $('<div id="modalContent"></div>')
 
3
    .dialog({
 
4
      autoOpen: false,
 
5
      resizable: false,
 
6
      width: 'auto',
 
7
      height: 'auto',
 
8
      draggable: false,
 
9
      modal: true
 
10
      });
24
11
 
25
 
/**
26
 
* This unnamed function catches the click of an element with .modalTrigger class. It calls
27
 
* buildModal and then loads and opens the modal dialog.
28
 
*
29
 
* @return false  Return false is used here to prevent the clicked link from returning and sending
30
 
*                the user forward in the browser.
31
 
**/
32
 
$(document).ready(function() {
33
12
  $('.modalTrigger').live('click', function() {
34
 
    var $dialog = buildModal('<div id="modalContent"></div>', $(this).attr('title'));
 
13
    $dialog.dialog("option", "title", $(this).attr('title'));
35
14
    $dialog.load($(this).attr('href'), function() {$dialog.dialog('open')});
 
15
 
36
16
    return false;
37
17
  });
38
18
});
39
19
 
40
 
/**
41
 
* This unnamed function catches the click event on an element (most likely a form submit) with the
42
 
* .modalSubmit class. The complete function of the .ajax call makes a call to showFeedback, which
43
 
* handles user feedback and the loading of any other data that may be necessary.
44
 
*
45
 
* @return false  The click on .modalSubmit returns false to prevent the clicked link from retunring
46
 
*                and sending the user forward in the browser.
47
 
*
48
 
**/
 
20
 
49
21
$(document).ready(function() {
50
22
  $('.modalSubmit').live('click',function(){
51
 
    var $submitter = $(this);
 
23
    var ble = $(this).parent().attr('name') + ' :input';
 
24
    var blere = '#' + $(this).parent().attr('id') + ' :input';
52
25
    $.ajax({
53
 
      context: $submitter,
54
 
      url: $(this).parent().attr('action'),
55
 
      type: "POST",
56
 
      data: $('#' + $(this).parent().attr('id') + ' :input'),
57
 
      success:
58
 
        function (data) {
59
 
          showFeedBack(data, $(this), processReturn);
60
 
        }
 
26
     url: $(this).parent().attr('action'),
 
27
     type: "POST",
 
28
     data: $('#' + $(this).parent().attr('id') + ' :input'),
 
29
     complete:
 
30
       function(data) {
 
31
         var boo = data.responseText;
 
32
         $('#modalContent').append('<h2 class="overlay">Status Changed</h2>');
 
33
         $('.overlay').fadeIn(1200, function() {
 
34
           $('.overlay').fadeOut(1200, function() {
 
35
             $('.overlay').remove();
 
36
//             pattern = /event\/[a-zA-Z_0-9\+\%\-]*\/facilitygroups/;
 
37
             pattern = /event\/[a-zA-Z_0-9\+\%\-]*\/facilityresource\/[a-zA-Z_0-9\+\%\-]*/;
 
38
             var theer = pattern.exec(data.responseText);
 
39
             if(data.responseText == pattern.exec(data.responseText)) {
 
40
               var $fgroupDialog = $('<div id="#modalFgroup"></div>')
 
41
                 .dialog({
 
42
                   autoOpen: false,
 
43
                   resizable: false,
 
44
                   width: 'auto',
 
45
                   height: 'auto',
 
46
                   draggable: false,
 
47
                   modal: true
 
48
               });
 
49
               $fgroupDialog.dialog("option", "title", "yeah");
 
50
//               Get the name in there somehow.
 
51
               $.post('facilityresource/FF11EC', function(data) {
 
52
                 $fgroupDialog.html(data);
 
53
                 $fgroupDialog.dialog('open');
 
54
               });
 
55
             }
 
56
             $('#modalContent').load($(this).parent().attr('action'));
 
57
           })
 
58
         })
 
59
       }
61
60
    });
 
61
 
62
62
    return false;
63
63
  });
64
 
  $('#modalContent').bind('dialogclose', function() {
65
 
    $('#tableContainer').load(window.location.pathname + ' .singleTable');
66
 
  });
67
 
});
68
 
 
69
 
/**
70
 
* showFeedBack is used to confirm to the user that a modal form has successfully submitted to the
71
 
* server. It simply appends a new <h2>, fades it in, then out, then drops it, and calls a callback
72
 
* function, if necessary.
73
 
*
74
 
* @param data          The data created by a call to .ajax.
75
 
* @param callBackFunc  A function to call after completion of the feedback animation.
76
 
*
77
 
* @todo  Abstract and parametize this function.
78
 
**/
79
 
function showFeedBack(data, $submitter, callBackFunc) {
80
 
  $('#modalContent').append('<h2 class="overlay">Status Changed</h2>');
81
 
  $('.overlay').fadeIn(1200, function() {
82
 
    $('.overlay').fadeOut(1200, function() {
83
 
      $('.overlay').remove();
84
 
      if($.isFunction(callBackFunc)) {
85
 
        callBackFunc.call($submitter, data);
86
 
      }
87
 
    });
88
 
  });
89
 
}
90
 
 
91
 
/**
92
 
* returnContent handles the data returned to the browser by an .ajax call. It is used to launch a
93
 
* second modal dialog, should the returned data dictate so.
94
 
*
95
 
* @param data  The returned data from a call to .ajax.
96
 
**/
97
 
function returnContent(data) {
98
 
    var $dialog = buildModal('<div id="#modalFgroup"></div>', 'Set Facility Resource Activation Time');
99
 
    $.post(data, function(data) {
100
 
      $dialog.html(data);
101
 
      $dialog.dialog('open');
102
 
    });
103
 
}
104
 
 
105
 
/**
106
 
* @todo refactor so we can pass pattern to this. JSON stuff, probably.
107
 
**/
108
 
function processReturn(data) {
109
 
  pattern = /facilityresource\/[\w\d+%-]*/
110
 
  if(data == $(this).attr('id')) {
111
 
    appendContent($(this), data);
112
 
//    returnContent(data);
113
 
  }
114
 
}
115
 
 
116
 
function appendContent($submitter, data) {
117
 
  $('#modalAppend').load(($submitter).attr('id'), function() {
118
 
    $('#modalAppend').slideDown(1000);
119
 
  });
120
 
}
 
 
b'\\ No newline at end of file'
 
64
   $('#modalContent').bind('dialogclose', function() {
 
65
     $('#tableContainer').load(window.location.pathname + ' .singleTable');
 
66
   });
 
67
});
 
 
b'\\ No newline at end of file'