Subversion Repositories eFlore/Archives.eflore-xul

Rev

Rev 12 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 12 Rev 23
1
var projects = new Array( );
1
var projects = new Array( );
2
var projectID = "";
2
var projectID = "";
3
var selectID = "";
3
var selectID = "";
4
 
4
 
5
function project_view( ) {
5
function project_view( ) {
6
  return openTopWin( "http://freshmeat.net/projects/" + selectID + "/" );
6
  return openTopWin( "http://freshmeat.net/projects/" + selectID + "/" );
7
}
7
}
8
 
8
 
9
function project_home( ) {
9
function project_home( ) {
10
  if( projects[selectID]["url_homepage"] ) {
10
  if( projects[selectID]["url_homepage"] ) {
11
    return openTopWin( projects[selectID]["url_homepage"] );
11
    return openTopWin( projects[selectID]["url_homepage"] );
12
  }
12
  }
13
}
13
}
14
 
14
 
15
function project_info( ) {
15
function project_info( ) {
16
  alert( projects[selectID]["name_full"] + "\n" +  projects[selectID]["desc_full"] + "\n Added : " +  projects[selectID]["date_added"] + "\n" + "Update : " +  projects[selectID]["date_updated" ] );
16
  alert( projects[selectID]["name_full"] + "\n" +  projects[selectID]["desc_full"] + "\n Added : " +  projects[selectID]["date_added"] + "\n" + "Update : " +  projects[selectID]["date_updated" ] );
17
}
17
}
18
 
18
 
19
function search( ) {
19
function search( ) {
20
  projects = new Array( );
20
  projects = new Array( );
21
  projectID = "";
21
  projectID = "";
22
  selectID = ""; 
22
  selectID = ""; 
23
  document.getElementById( "loadprogress" ).setAttribute("mode","undetermined");
23
  document.getElementById( "loadprogress" ).setAttribute("mode","undetermined");
24
 
24
 
25
  var rootNode = document.getElementById( "root" );
25
  var rootNode = document.getElementById( "root" );
26
  removeNode( rootNode, rootNode, 0 );
26
  removeNode( rootNode, rootNode, 0 );
27
 
27
 
28
  var search = document.getElementById( "prjfind" ).value;
28
  var search = document.getElementById( "prjfind" ).value;
29
  var url = "http://freshmeat.net/search-xml/?q=" + search;
29
  var url = "http://freshmeat.net/search-xml/?q=" + search;
30
  
30
  
31
  connectionType = "direct";
31
  connectionType = "direct";
32
  timeOut = 120;
32
  timeOut = 120;
33
  connection( url );
33
  connection( url );
34
}
34
}
35
 
35
 
36
function parseCallback( xml ) {
36
function parseCallback( xml ) {
37
  var DOM = new DOMParser().parseFromString( xml, 'text/xml' );
37
  var DOM = new DOMParser().parseFromString( xml, 'text/xml' );
38
  try {
38
  try {
39
    var rootNodes = DOM.getElementsByTagName( 'search-results' );
39
    var rootNodes = DOM.getElementsByTagName( 'search-results' );
40
    var rootNode = rootNodes.item( 0 );
40
    var rootNode = rootNodes.item( 0 );
41
  
41
  
42
    parseNode( rootNode );
42
    parseNode( rootNode );
43
  } catch(e) {
43
  } catch(e) {
44
    alert( "Parse error : " + e );
44
    alert( "Parse error : " + e );
45
  }
45
  }
46
 
46
 
47
}
47
}
48
 
48
 
49
function parseNode( node ) {
49
function parseNode( node ) {
50
  var nodes = node.childNodes;
50
  var nodes = node.childNodes;
51
  var i;
51
  var i;
52
  
52
  
53
  for( i=0; i<nodes.length; i++ ) {
53
  for( i=0; i<nodes.length; i++ ) {
54
    child = nodes.item(i);
54
    child = nodes.item(i);
55
    if( child.nodeName == "match" ) {
55
    if( child.nodeName == "match" ) {
56
      var childs = child.childNodes;
56
      var childs = child.childNodes;
57
      var project = new Array( );
57
      var project = new Array( );
58
 
58
 
59
      var j;
59
      var j;
60
      for( j = 0; j < childs.length; j++ ) {
60
      for( j = 0; j < childs.length; j++ ) {
61
        childchild = childs.item(j);
61
        childchild = childs.item(j);
62
        if( childchild.firstChild ) {
62
        if( childchild.firstChild ) {
63
          switch( childchild.nodeName ) {
63
          switch( childchild.nodeName ) {
64
            case "projectname_short":
64
            case "projectname_short":
65
                project["name_short"] = childchild.firstChild.nodeValue;
65
                project["name_short"] = childchild.firstChild.nodeValue;
66
              break;
66
              break;
67
            case "projectname_full":
67
            case "projectname_full":
68
                project["name_full"] = childchild.firstChild.nodeValue;
68
                project["name_full"] = childchild.firstChild.nodeValue;
69
              break;
69
              break;
70
            case "desc_short":
70
            case "desc_short":
71
                project["desc_short"] = childchild.firstChild.nodeValue;
71
                project["desc_short"] = childchild.firstChild.nodeValue;
72
              break;
72
              break;
73
            case "desc_full":
73
            case "desc_full":
74
                project["desc_full"] = childchild.firstChild.nodeValue;
74
                project["desc_full"] = childchild.firstChild.nodeValue;
75
              break;
75
              break;
76
            case "url_homepage":
76
            case "url_homepage":
77
                project["url_homepage"] = childchild.firstChild.nodeValue;
77
                project["url_homepage"] = childchild.firstChild.nodeValue;
78
              break;
78
              break;
79
            case "date_added":
79
            case "date_added":
80
                project["date_added"] = childchild.firstChild.nodeValue;
80
                project["date_added"] = childchild.firstChild.nodeValue;
81
              break;
81
              break;
82
            case "date_updated":
82
            case "date_updated":
83
                project["date_updated"] = childchild.firstChild.nodeValue;
83
                project["date_updated"] = childchild.firstChild.nodeValue;
84
              break;
84
              break;
85
            case "project_id":
85
            case "project_id":
86
                project["project_id"] = childchild.firstChild.nodeValue;
86
                project["project_id"] = childchild.firstChild.nodeValue;
87
              break;
87
              break;
88
            default:
88
            default:
89
              break;
89
              break;
90
          }
90
          }
91
        }
91
        }
92
      }
92
      }
93
      
93
      
94
      projects[project["name_short"]] = new Array( );
94
      projects[project["name_short"]] = new Array( );
95
      projects[project["name_short"]] = project;
95
      projects[project["name_short"]] = project;
96
 
96
 
97
      var children = document.getElementById( "root" );
97
      var children = document.getElementById( "root" );
98
      
98
      
99
      var item = document.createElement ("treeitem");
99
      var item = document.createElement ("treeitem");
100
      item.setAttribute ("id", project["name_short"]);
100
      item.setAttribute ("id", project["name_short"]);
101
      
101
      
102
      var row  = document.createElement ("treerow");
102
      var row  = document.createElement ("treerow");
103
      
103
      
104
      var cellname = document.createElement ("treecell");
104
      var cellname = document.createElement ("treecell");
105
      cellname.setAttribute ("label", project["name_full"]);
105
      cellname.setAttribute ("label", project["name_full"]);
106
      var celldesc = document.createElement ("treecell");
106
      var celldesc = document.createElement ("treecell");
107
      celldesc.setAttribute ("label", project["desc_short"]);
107
      celldesc.setAttribute ("label", project["desc_short"]);
108
      
108
      
109
      row.appendChild (cellname);
109
      row.appendChild (cellname);
110
      row.appendChild (celldesc);
110
      row.appendChild (celldesc);
111
      item.appendChild (row);
111
      item.appendChild (row);
112
      children.appendChild( item );        
112
      children.appendChild( item );
113
 
113
 
114
    }
114
    }
115
  }
115
  }
116
  document.getElementById( "loadprogress" ).setAttribute("mode","determined");
116
  document.getElementById( "loadprogress" ).setAttribute("mode","determined");
117
}
117
}
118
 
118
 
119
function removeNode( node, parent, bdel ) {
119
function removeNode( node, parent, bdel ) {
120
  var nodes = node.childNodes;
120
  var nodes = node.childNodes;
121
 
121
 
122
  var i;
122
  var i;
123
  for( i=0; i<nodes.length; i++ ) {
123
  for( i=0; i<nodes.length; i++ ) {
124
    child = nodes.item(i);
124
    child = nodes.item(i);
125
    removeNode( child, node, 1 );
125
    removeNode( child, node, 1 );
126
    node.removeChild( child );
126
    node.removeChild( child );
127
  }
127
  }
128
 
128
 
129
  if( bdel == 1 ) {
129
  if( bdel == 1 ) {
130
    parent.removeChild( node );
130
    parent.removeChild( node );
131
  }
131
  }
132
}
132
}
133
 
133
 
134
function treeSelect( mbut ) {
134
function treeSelect( mbut ) {
135
  var tree = document.getElementById( "projectTree" );
135
  var tree = document.getElementById( "projectTree" );
136
  var numRanges = tree.view.selection.getRangeCount();
136
  var numRanges = tree.view.selection.getRangeCount();
137
  var start = new Object();
137
  var start = new Object();
138
  var end = new Object();
138
  var end = new Object();
139
  tree.view.selection.getRangeAt(0,start,end);
139
  tree.view.selection.getRangeAt(0,start,end);
140
      
140
      
141
  var dom = tree.view.getItemAtIndex( start.value );
141
  var dom = tree.view.getItemAtIndex( start.value );
142
  selectID = dom.getAttributeNode( "id" ).value;
142
  selectID = dom.getAttributeNode( "id" ).value;
143
      
143
      
144
  if( mbut == 0 ) { 
144
  if( mbut == 0 ) { 
145
    if( projectID != selectID ) {
145
    if( projectID != selectID ) {
146
      projectID = selectID;
146
      projectID = selectID;
147
      var url = "http://freshmeat.net/projects/" + projectID + "/";
147
      var url = "http://freshmeat.net/projects/" + projectID + "/";
148
      openTopWin( url );
148
      openTopWin( url );
149
    }   
149
    }   
150
  }   
150
  }   
151
}   
151
}   
152
 
152
 
153
// ----------------------------------------------------------------------------
153
// ----------------------------------------------------------------------------
154
 
154
 
155
function openTopWin( url )
155
function openTopWin( url )
156
{
156
{
157
    if ((url == null) || (url == "")) return null;
157
    if ((url == null) || (url == "")) return null;
158
 
158
 
159
    if (url == "") {
159
    if (url == "") {
160
        url = "about:blank";
160
        url = "about:blank";
161
    }
161
    }
162
 
162
 
163
    var topWindowOfType = getTopWin();
163
    var topWindowOfType = getTopWin();
164
    if ( topWindowOfType )
164
    if ( topWindowOfType )
165
    {
165
    {
166
        topWindowOfType.focus();
166
        topWindowOfType.focus();
167
        topWindowOfType.loadURI(url);
167
        topWindowOfType.loadURI(url);
168
        return topWindowOfType;
168
        return topWindowOfType;
169
    }
169
    }
170
    return window.openDialog( getBrowserURL(), "_blank", "chrome,all,dialog=no", url );
170
    return window.openDialog( getBrowserURL(), "_blank", "chrome,all,dialog=no", url );
171
}
171
}
172
 
172
 
173
function getTopWin()
173
function getTopWin()
174
{
174
{
175
    var windowManager = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService();
175
    var windowManager = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService();
176
    var windowManagerInterface = windowManager.QueryInterface( Components.interfaces.nsIWindowMediator);
176
    var windowManagerInterface = windowManager.QueryInterface( Components.interfaces.nsIWindowMediator);
177
    var topWindowOfType = windowManagerInterface.getMostRecentWindow( "navigator:browser" );
177
    var topWindowOfType = windowManagerInterface.getMostRecentWindow( "navigator:browser" );
178
 
178
 
179
    if (topWindowOfType) {
179
    if (topWindowOfType) {
180
        return topWindowOfType;
180
        return topWindowOfType;
181
    }
181
    }
182
    return null;
182
    return null;
183
}
183
}
184
 
184
 
185
function getBrowserURL() {
185
function getBrowserURL() {
186
 
186
 
187
  try {
187
  try {
188
    var prefs = Components.classes["@mozilla.org/preferences-service;1"]
188
    var prefs = Components.classes["@mozilla.org/preferences-service;1"]
189
                         .getService(Components.interfaces.nsIPrefBranch);
189
                         .getService(Components.interfaces.nsIPrefBranch);
190
    var url = prefs.getCharPref("browser.chromeURL");
190
    var url = prefs.getCharPref("browser.chromeURL");
191
    if (url)
191
    if (url)
192
      return url;
192
      return url;
193
  } catch(e) {
193
  } catch(e) {
194
  }
194
  }
195
  return "chrome://navigator/content/navigator.xul";
195
  return "chrome://navigator/content/navigator.xul";
196
}
196
}
197
 
197