def drop(self): """ """ ajaxObject = AresJs.XsCallFile(self.reportName) ajaxObject.url = 'upload' ajaxObject.async = 'false' ajaxObject.success('location.href = "/reports/page/%s";' % self.reportName) return ajaxObject.ajax('form_data')
def js(self, evenType, jsDef, url=None): """ Add a Javascript Event to an HTML object """ self.aresObj.jsOnLoadFnc.add( AresJs.JQueryEvents(self.htmlId, self.jqId, evenType, jsDef, url=url))
def jsFromFile(self, evenType, fileName, variables=None): """ Add a Javascript even by loading a file """ jsFile = open( os.path.join(self.aresObj.http["DIRECTORY"], 'js', fileName)) jsDef = jsFile.read() if variables is not None: jsDef = jsDef % variables self.jsEvent[evenType] = AresJs.JQueryEvents(self.htmlId, self.jqId, evenType, jsDef)
def json(self, evenType, url, data, jsDef): """ Special function to input Json data http://api.jquery.com/jquery.getjson/ """ data = 'eval(%s)' % json.dumps(data) jsDef = '$.getJSON("%s", %s, function(data) { %s });' % (url, data, jsDef) self.jsEvent[evenType] = AresJs.JQueryEvents(self.htmlId, self.jqId, evenType, jsDef, data=data, url=url)
def post(self, evenType, url, data, jsDef, preAjaxJs='', redirectUrl=''): """ Post method to get data directly by interacting with the page https://api.jquery.com/jquery.post/ """ data = '%s' % json.dumps(data) jsDef = '%s $.post("%s", %s, function(data) { %s } );' % ( preAjaxJs, url, data, jsDef) self.jsEvent[evenType] = AresJs.JQueryEvents(self.htmlId, self.jqId, evenType, jsDef, data=data, url=url)
def post(self, evenType, url, data, jsDef, dstFolder, preAjaxJs=''): """ Post method to get data directly by interacting with the page https://api.jquery.com/jquery.post/ """ jsRef = self.jqId if evenType == 'click': #jsDef = '$("#value_%s").val(%s); %s' % (self.htmlId, self.jsVal(), jsDef) jsRef = "$('#button_%s')" % self.htmlId jsDef = ''' var file = $('#%s').prop('files')[0]; // FileList object. var form_data = new FormData(); form_data.append('file_0', file); form_data.append('DESTINATION', '%s'); %s $.ajax({url: "%s", method: "POST", data: form_data, contentType: false, cache: false, processData: false, async: false}).done(function(data) {%s location.reload(); } ); ''' % (self.htmlId, dstFolder, preAjaxJs, url, jsDef) self.aresObj.jsOnLoadFnc.add(AresJs.JQueryEvents(self.htmlId, jsRef, evenType, jsDef, data=data, url=url))
def update_cell(self): """ Update a cell in the table """ jsFnc = ''' var html = '<div id="dialog" title="update value">' ; html = html + '<div class="form-group">'; html = html + '<label for="formgroupexampleinput">example label</label>'; html = html + '<input id="temp_cell" type="text" class="form-control">'; html = html + '</div>'; html = html + '<button type="submit" id="temp_submit" class="btn btn-primary">submit</button>' ; html = html + '</div>'; $('body').append(html) ; $('#temp_cell').val($(event.target).html()); $("#dialog").dialog(); // Update the data to the table $( "#temp_submit" ).on( "click", { item: $(event.target) }, function (event){ event.data.item.html($('#temp_cell').val()); $( "#dialog" ).remove(); }); ''' self.aresObj.jsFnc.add( AresJs.JQueryEvents(self.htmlId, "$('#%s td')" % self.htmlId, 'dblclick', jsFnc))
def row_dblclick(self, jsFnc): """ Add an event on the cells, $(this).html() will return the selected value """ self.aresObj.jsFnc( AresJs.JQueryEvents(self.htmlId, "$('#%s tr')" % self.htmlId, 'dblclick', jsFnc))