source: trunk/web/addons/job_monarch/lib/extjs/air/samples/tasks/js/Exporter.js @ 619

Last change on this file since 619 was 619, checked in by ramonb, 15 years ago

lib/:

  • added new AJAX dependancies: ExtJS, pChart, Lightbox2
File size: 1.6 KB
Line 
1/*
2 * Ext JS Library 0.30
3 * Copyright(c) 2006-2009, Ext JS, LLC.
4 * licensing@extjs.com
5 *
6 * http://extjs.com/license
7 */
8
9tx.Exporter = function(){
10        var lists = tx.data.conn.query('select * from list');
11       
12        var doc = new runtime.flash.xml.XMLDocument();
13       
14        var root = doc.createElement('simple-tasks');
15        doc.appendChild(root);
16       
17        root.attributes['version'] = '2.0';
18       
19        for(var i = 0, len = lists.length; i < len; i++){
20                var list = lists[i];
21               
22                var listNode = doc.createElement('list');
23                root.appendChild(listNode);
24               
25                for(var k in list){
26                        if(list.hasOwnProperty(k)){
27                                listNode.attributes[k] = String(list[k]);
28                        }
29                }
30               
31                var tasks = tx.data.conn.queryBy('select * from task where listId = ?', [list.listId]);
32                for(var j = 0, jlen = tasks.length; j < jlen; j++){
33                        var task = tasks[j];
34                       
35                        var taskNode = doc.createElement('task');
36                        listNode.appendChild(taskNode);
37                       
38                        for(var t in task){
39                                if(task.hasOwnProperty(t)){
40                                        taskNode.attributes[t] = String(task[t]);
41                                }
42                        }
43                }
44        }
45       
46        var file = new air.File(air.File.documentsDirectory.nativePath + air.File.separator + 'tasks.xml');
47       
48        file.addEventListener('select', function(e){
49                var target = e.target;
50                var stream = new air.FileStream();
51        stream.open(target, air.FileMode.WRITE);
52                stream.writeUTFBytes('<?xml version="1.0" encoding="UTF-8"?>');
53        stream.writeUTFBytes(doc.toString());
54        stream.close();
55        });
56       
57        // I wonder why no filter for Save As?
58        // var filter = new air.FileFilter("Tasks XML File", "*.xml");
59        file.browseForSave('Save As');
60};
Note: See TracBrowser for help on using the repository browser.