Project

General

Profile

Download (23.2 KB) Statistics
| Branch: | Tag: | Revision:
1 2cd6010c Scott Ullrich
<?php
2 b46bfcf5 Bill Marquette
/* $Id$ */
3 5b237745 Scott Ullrich
/*
4 b49448ac Scott Ullrich
    index.php
5
    Copyright (C) 2004, 2005 Scott Ullrich
6
    All rights reserved.
7
8
    Originally part of m0n0wall (http://m0n0.ch/wall)
9
    Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
10
    All rights reserved.
11
12
    Redistribution and use in source and binary forms, with or without
13
    modification, are permitted provided that the following conditions are met:
14
15
    1. Redistributions of source code must retain the above copyright notice,
16
       this list of conditions and the following disclaimer.
17
18
    2. Redistributions in binary form must reproduce the above copyright
19
       notice, this list of conditions and the following disclaimer in the
20
       documentation and/or other materials provided with the distribution.
21
22
    THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
23
    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
24
    AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
    AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
26 0682e26b Colin Smith
    oR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 b49448ac Scott Ullrich
    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28
    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29
    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30
    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31
    POSSIBILITY OF SUCH DAMAGE.
32 5b237745 Scott Ullrich
*/
33 7ac5a4cb Scott Ullrich
/*
34
	pfSense_BUILDER_BINARIES:	/sbin/ifconfig
35
	pfSense_MODULE:	interfaces
36
*/
37 5b237745 Scott Ullrich
38 6b07c15a Matthew Grooms
##|+PRIV
39
##|*IDENT=page-system-login/logout
40 b7ccf315 Erik Fonnesbeck
##|*NAME=System: Login / Logout page / Dashboard
41
##|*DESCR=Allow access to the 'System: Login / Logout' page and Dashboard.
42 6b07c15a Matthew Grooms
##|*MATCH=index.php*
43
##|-PRIV
44
45 acc5dd59 jim-p
// Turn on buffering to speed up rendering
46
ini_set('output_buffering','true');
47
48
// Start buffering with a cache size of 100000
49
ob_start(null, "1000");
50 880637d2 Scott Ullrich
51 acc5dd59 jim-p
## Load Essential Includes
52
require_once('functions.inc');
53
require_once('guiconfig.inc');
54
require_once('notices.inc');
55
56
##build list of widgets
57
$directory = "/usr/local/www/widgets/widgets/";
58
$dirhandle  = opendir($directory);
59
$filename = "";
60
$widgetnames = array();
61
$widgetfiles = array();
62
$widgetlist = array();
63
64
while (false !== ($filename = readdir($dirhandle))) {
65
	$periodpos = strpos($filename, ".");
66
	$widgetname = substr($filename, 0, $periodpos);
67
	$widgetnames[] = $widgetname;
68
	if ($widgetname != "system_information")
69
		$widgetfiles[] = $filename;
70
}
71
72
##sort widgets alphabetically
73
sort($widgetfiles);
74
75
##insert the system information widget as first, so as to be displayed first
76
array_unshift($widgetfiles, "system_information.widget.php");
77
78
##if no config entry found, initialize config entry
79
if (!is_array($config['widgets'])) {
80
	$config['widgets'] = array();
81
}
82 d772ac32 Erik Kristensen
83 8191b36e Scott Ullrich
	if ($_POST && $_POST['submit']) {
84
		$config['widgets']['sequence'] = $_POST['sequence'];
85
86
		foreach ($widgetnames as $widget){
87
			if ($_POST[$widget . '-config']){
88
				$config['widgets'][$widget . '-config'] = $_POST[$widget . '-config'];
89
			}
90
		}
91
92 5493fad2 Rafael Lucas
		write_config(gettext("Widget configuration has been changed."));
93 8191b36e Scott Ullrich
		header("Location: index.php");
94
		exit;
95
	}
96
97 1df0159c Erik Kristensen
	## Load Functions Files
98
	require_once('includes/functions.inc.php');
99 65d4de2e Scott Dale
	
100 1df0159c Erik Kristensen
	## Check to see if we have a swap space,
101
	## if true, display, if false, hide it ...
102 746ca58a Scott Ullrich
	if(file_exists("/usr/sbin/swapinfo")) {
103
		$swapinfo = `/usr/sbin/swapinfo`;
104
		if(stristr($swapinfo,'%') == true) $showswap=true;
105
	}
106 d772ac32 Erik Kristensen
107 1df0159c Erik Kristensen
	## User recently restored his config.
108
	## If packages are installed lets resync
109 1abb04ea Scott Ullrich
	if(file_exists('/conf/needs_package_sync')) {
110 1df0159c Erik Kristensen
		if($config['installedpackages'] <> '') {
111 d4b17d7c jim-p
			conf_mount_rw();
112
			@unlink('/conf/needs_package_sync');
113
			conf_mount_ro();
114 dc7c57ac Ermal Lu?i
			if($g['platform'] == "pfSense" || $g['platform'] == "nanobsd") {
115 6cc843c3 Scott Ullrich
				header('Location: pkg_mgr_install.php?mode=reinstallall');
116
				exit;
117
			}
118 1df0159c Erik Kristensen
		}
119
	}
120 8fecad11 Scott Ullrich
121 709cc6e0 Bill Marquette
	## If it is the first time webConfigurator has been
122 1df0159c Erik Kristensen
	## accessed since initial install show this stuff.
123 1abb04ea Scott Ullrich
	if(file_exists('/conf/trigger_initial_wizard')) {
124 702b324e Scott Ullrich
		echo <<<EOF
125
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
126
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
127
<html>
128
<head>
129 f99c6a23 Erik Fonnesbeck
	<title>{$g['product_name']}.localdomain - {$g['product_name']} first time setup</title>
130 702b324e Scott Ullrich
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
131
	<link rel="stylesheet" type="text/css" href="/niftycssprintCode.css" media="print" />
132
	<script type="text/javascript">var theme = "nervecenter"</script>
133
	<script type="text/javascript" src="/themes/nervecenter/loader.js"></script>
134
		
135
EOF;
136 1df0159c Erik Kristensen
137
		echo "<body link=\"#0000CC\" vlink=\"#0000CC\" alink=\"#0000CC\">\n";
138 5d9f9191 Scott Ullrich
139
		if(file_exists("/usr/local/www/themes/{$g['theme']}/wizard.css")) 
140
			echo "<link rel=\"stylesheet\" href=\"/themes/{$g['theme']}/wizard.css\" media=\"all\" />\n";
141
		else 
142
			echo "<link rel=\"stylesheet\" href=\"/themes/{$g['theme']}/all.css\" media=\"all\" />";
143
144 1df0159c Erik Kristensen
		echo "<form>\n";
145
		echo "<center>\n";
146
		echo "<img src=\"/themes/{$g['theme']}/images/logo.gif\" border=\"0\"><p>\n";
147
		echo "<div \" style=\"width:700px;background-color:#ffffff\" id=\"nifty\">\n";
148 fffbf46d Carlos Eduardo Ramos
		echo sprintf(gettext("Welcome to %s!\n"),$g['product_name']) . "<p>";
149
		echo gettext("One moment while we start the initial setup wizard.") . "<p>\n";
150
		echo gettext("Embedded platform users: Please be patient, the wizard takes a little longer to run than the normal GUI.") . "<p>\n";
151 c0686139 Carlos Eduardo Ramos
		echo sprintf(gettext("To bypass the wizard, click on the %s logo on the initial page."),$g['product_name']) . "\n";
152 1df0159c Erik Kristensen
		echo "</div>\n";
153
		echo "<meta http-equiv=\"refresh\" content=\"1;url=wizard.php?xml=setup_wizard.xml\">\n";
154
		echo "<script type=\"text/javascript\">\n";
155
		echo "NiftyCheck();\n";
156 702b324e Scott Ullrich
		echo "Rounded(\"div#nifty\",\"all\",\"#AAA\",\"#FFFFFF\",\"smooth\");\n";
157 1df0159c Erik Kristensen
		echo "</script>\n";
158 1ca54f04 Scott Ullrich
		exit;
159
	}
160
161 bf787c0a Scott Ullrich
162 a5e9c284 Renato Botelho
	## Find out whether there's hardware encryption or not
163 1df0159c Erik Kristensen
	unset($hwcrypto);
164
	$fd = @fopen("{$g['varlog_path']}/dmesg.boot", "r");
165
	if ($fd) {
166
		while (!feof($fd)) {
167
			$dmesgl = fgets($fd);
168 6aa9ddce jim-p
			if (preg_match("/^hifn.: (.*?),/", $dmesgl, $matches) or preg_match("/.*(VIA Padlock)/", $dmesgl, $matches) or preg_match("/^safe.: (\w.*)/", $dmesgl, $matches) or preg_match("/^ubsec.: (.*?),/", $dmesgl, $matches) or preg_match("/^padlock.: <(.*?)>,/", $dmesgl, $matches) or preg_match("/^glxsb.: (.*?),/", $dmesgl, $matches)) {
169 1df0159c Erik Kristensen
				$hwcrypto = $matches[1];
170
				break;
171
			}
172 5b237745 Scott Ullrich
		}
173 1df0159c Erik Kristensen
		fclose($fd);
174 5b237745 Scott Ullrich
	}
175 45ee90ed Matthew Grooms
176 7abf7db5 Scott Dale
##build widget saved list information
177 019a94df Scott Dale
if ($config['widgets'] && $config['widgets']['sequence'] != "") {
178
	$pconfig['sequence'] = $config['widgets']['sequence'];
179 3e4e94ce Scott Dale
	
180 bf5ad142 Scott Dale
	$widgetlist = $pconfig['sequence'];
181
	$colpos = array();
182
	$savedwidgetfiles = array();
183
	$widgetname = "";
184
	$widgetlist = explode(",",$widgetlist);
185 019a94df Scott Dale
	
186
	##read the widget position and display information
187 bf5ad142 Scott Dale
	foreach ($widgetlist as $widget){
188
		$dashpos = strpos($widget, "-");		
189
		$widgetname = substr($widget, 0, $dashpos);
190
		$colposition = strpos($widget, ":");		
191
		$displayposition = strrpos($widget, ":");
192
		$colpos[] = substr($widget,$colposition+1, $displayposition - $colposition-1);
193
		$displayarray[] = substr($widget,$displayposition+1);
194
		$savedwidgetfiles[] = $widgetname . ".widget.php";
195 1db766df Scott Dale
	}
196 019a94df Scott Dale
	
197 7abf7db5 Scott Dale
	##add widgets that may not be in the saved configuration, in case they are to be displayed later
198
    foreach ($widgetfiles as $defaultwidgets){         
199
         if (!in_array($defaultwidgets, $savedwidgetfiles)){
200
             $savedwidgetfiles[] = $defaultwidgets;
201
         }
202
     }   
203
	
204 019a94df Scott Dale
	##find custom configurations of a particular widget and load its info to $pconfig
205
	foreach ($widgetnames as $widget){
206
        if ($config['widgets'][$widget . '-config']){
207
            $pconfig[$widget . '-config'] = $config['widgets'][$widget . '-config'];
208
        }
209
    }   
210
	
211 f617ecbd Scott Dale
	$widgetlist = $savedwidgetfiles;	
212 483e6de8 Scott Ullrich
} else{
213
	// no saved widget sequence found, build default list.
214 8b06c9ff Scott Dale
	$widgetlist = $widgetfiles;
215 3e4e94ce Scott Dale
}
216
217 019a94df Scott Dale
##build list of php include files
218 8b06c9ff Scott Dale
$phpincludefiles = array();
219
$directory = "/usr/local/www/widgets/include/";
220 bf5ad142 Scott Dale
$dirhandle  = opendir($directory);
221
$filename = "";
222
while (false !== ($filename = readdir($dirhandle))) {
223
	$phpincludefiles[] = $filename;
224
}
225
foreach($phpincludefiles as $includename) {
226
	if(!stristr($includename, ".inc"))
227
		continue;	
228
	include($directory . $includename);
229
}
230 81db9b7b Scott Dale
231 019a94df Scott Dale
##begin AJAX
232 1db766df Scott Dale
$jscriptstr = <<<EOD
233
<script language="javascript" type="text/javascript">
234
235 65d4de2e Scott Dale
236
function widgetAjax(widget) {	
237 34eac803 Scott Dale
	uri = "widgets/widgets/" + widget + ".widget.php";
238
	var opt = {
239
	    // Use GET
240
	    method: 'get',
241
		evalScripts: 'true',
242
	    asynchronous: true,
243
	    // Handle 404
244
	    on404: function(t) {
245
	        alert('Error 404: location "' + t.statusText + '" was not found.');
246
	    },
247
	    // Handle other errors
248
	    onFailure: function(t) {
249
	        alert('Error ' + t.status + ' -- ' + t.statusText);
250
	    },
251
		onSuccess: function(t) {
252
			widget2 = widget + "-loader";
253
			Effect.Fade(widget2, {queue:'front'});
254
			Effect.Appear(widget, {queue:'end'});			
255
	    }	
256
	}
257
	new Ajax.Updater(widget, uri, opt);
258
}
259 65d4de2e Scott Dale
260
261 7abf7db5 Scott Dale
function addWidget(selectedDiv){	
262 65d4de2e Scott Dale
	selectedDiv2 = selectedDiv + "-container";
263
	d = document;
264
	textlink = d.getElementById(selectedDiv2);
265 34eac803 Scott Dale
	Effect.Appear(selectedDiv2, {duration:1});
266 5eafc6de Scott Dale
	if (textlink.style.display != "none")
267
	{
268 65d4de2e Scott Dale
		Effect.Shake(selectedDiv2);	
269 5eafc6de Scott Dale
	}
270
	else
271
	{
272 65d4de2e Scott Dale
		widgetAjax(selectedDiv);
273
		selectIntLink = selectedDiv2 + "-input";
274 5eafc6de Scott Dale
		textlink = d.getElementById(selectIntLink);
275
		textlink.value = "show";	
276
		showSave();
277
	}
278 bf5ad142 Scott Dale
}
279 1db766df Scott Dale
280 7abf7db5 Scott Dale
function configureWidget(selectedDiv){
281 25d2d037 Scott Dale
	selectIntLink = selectedDiv + "-settings";	
282
	d = document;
283
	textlink = d.getElementById(selectIntLink);
284
	if (textlink.style.display == "none")
285
		Effect.BlindDown(selectIntLink, {duration:1});
286
	else
287
		Effect.BlindUp(selectIntLink, {duration:1});
288
}
289
290 7abf7db5 Scott Dale
function showWidget(selectedDiv,swapButtons){
291 65d4de2e Scott Dale
	//appear element
292 1db766df Scott Dale
    Effect.BlindDown(selectedDiv, {duration:1});      
293 bf5ad142 Scott Dale
    showSave();    
294
	d = document;	
295 1db766df Scott Dale
    if (swapButtons){
296
	    selectIntLink = selectedDiv + "-min";
297
		textlink = d.getElementById(selectIntLink);
298
		textlink.style.display = "inline";
299
	    
300
	    
301
	    selectIntLink = selectedDiv + "-open";
302
		textlink = d.getElementById(selectIntLink);
303
		textlink.style.display = "none";
304 bf5ad142 Scott Dale
305 1db766df Scott Dale
    }
306 65d4de2e Scott Dale
	selectIntLink = selectedDiv + "-container-input";
307 bf5ad142 Scott Dale
	textlink = d.getElementById(selectIntLink);
308
	textlink.value = "show";	
309
    
310 f5cfdc98 Scott Dale
}
311
	
312 7abf7db5 Scott Dale
function minimizeWidget(selectedDiv,swapButtons){
313 1db766df Scott Dale
	//fade element
314
    Effect.BlindUp(selectedDiv, {duration:1});      
315 bf5ad142 Scott Dale
    showSave();
316
	d = document;	
317 1db766df Scott Dale
    if (swapButtons){
318
	    selectIntLink = selectedDiv + "-open";
319
		textlink = d.getElementById(selectIntLink);
320
		textlink.style.display = "inline";	    
321
	    
322
	    selectIntLink = selectedDiv + "-min";
323
		textlink = d.getElementById(selectIntLink);
324
		textlink.style.display = "none";
325 bf5ad142 Scott Dale
    }  		
326 65d4de2e Scott Dale
	selectIntLink = selectedDiv + "-container-input";
327 bf5ad142 Scott Dale
	textlink = d.getElementById(selectIntLink);
328
	textlink.value = "hide";	  
329
    
330 1db766df Scott Dale
}
331
332 7abf7db5 Scott Dale
function closeWidget(selectedDiv){	
333 bf5ad142 Scott Dale
	showSave();
334 65d4de2e Scott Dale
	selectedDiv = selectedDiv + "-container";
335 bf5ad142 Scott Dale
	Effect.Fade(selectedDiv, {duration:1});
336
	d = document;
337 1db766df Scott Dale
	selectIntLink = selectedDiv + "-input";
338
	textlink = d.getElementById(selectIntLink);
339
	textlink.value = "close";	
340
}
341
342 bf5ad142 Scott Dale
function showSave(){
343
	d = document;
344
	selectIntLink = "submit";
345
	textlink = d.getElementById(selectIntLink);
346
	textlink.style.display = "inline";	
347 1db766df Scott Dale
}
348
349 bf5ad142 Scott Dale
function updatePref(){	
350
	var widgets = document.getElementsByClassName('widgetdiv');
351
	var widgetSequence = "";
352
	var firstprint = false;	
353
	d = document;
354
	for (i=0; i<widgets.length; i++){
355
		if (firstprint)
356
			widgetSequence += ",";
357
		var widget = widgets[i].id;
358
		widgetSequence += widget + ":" + widgets[i].parentNode.id + ":";
359
		widget = widget + "-input";
360
		textlink = d.getElementById(widget).value;
361
		widgetSequence += textlink;
362
		firstprint = true;		
363
	}
364
	selectLink = "sequence";
365
	textlink = d.getElementById(selectLink);
366
	textlink.value = widgetSequence;
367
	return true;	
368
}
369 1db766df Scott Dale
370 5eafc6de Scott Dale
function hideAllWidgets(){		
371
		Effect.Fade('niftyOutter', {to: 0.2});
372
}
373
374
function showAllWidgets(){		
375
		Effect.Fade('niftyOutter', {to: 1.0});
376
}
377
378 b9b45ddb Scott Dale
379
function changeTabDIV(selectedDiv){
380
	var dashpos = selectedDiv.indexOf("-");
381
	var tabclass = selectedDiv.substring(0,dashpos);
382
	d = document;
383
384
	//get deactive tabs first
385
	tabclass = tabclass + "-class-tabdeactive"; 
386
	var tabs = document.getElementsByClassName(tabclass);
387
	var incTabSelected = selectedDiv + "-deactive";
388
	for (i=0; i<tabs.length; i++){
389
		var tab = tabs[i].id;
390
		dashpos = tab.lastIndexOf("-");
391
		var tab2 = tab.substring(0,dashpos) + "-deactive";
392
		if (tab2 == incTabSelected){
393
			tablink = d.getElementById(tab2);
394
			tablink.style.display = "none";
395
			tab2 = tab.substring(0,dashpos) + "-active";
396
			tablink = d.getElementById(tab2);
397
			tablink.style.display = "table-cell";
398
			
399
			//now show main div associated with link clicked
400
			tabmain = d.getElementById(selectedDiv);
401
			tabmain.style.display = "block";
402
		}
403
		else
404
		{	
405
			tab2 = tab.substring(0,dashpos) + "-deactive";
406
			tablink = d.getElementById(tab2);
407
			tablink.style.display = "table-cell";
408
			tab2 = tab.substring(0,dashpos) + "-active";
409
			tablink = d.getElementById(tab2);
410
			tablink.style.display = "none";		
411
			
412
			//hide sections we don't want to see
413
			tab2 = tab.substring(0,dashpos);
414
			tabmain = d.getElementById(tab2);
415
			tabmain.style.display = "none";
416
				
417
		}
418
	}	
419
}
420
421 f5cfdc98 Scott Dale
</script>
422
EOD;
423 1db766df Scott Dale
$closehead = false;
424 3e4e94ce Scott Dale
425 1db766df Scott Dale
## Set Page Title and Include Header
426 a6e0e07b Scott Ullrich
$pgtitle = array(gettext("Status: Dashboard"));
427 1db766df Scott Dale
include("head.inc");
428 f6f6947e Scott Ullrich
429
echo "\t<script type=\"text/javascript\" src=\"javascript/domTT/domLib.js\"></script>\n";
430
echo "\t<script type=\"text/javascript\" src=\"javascript/domTT/domTT.js\"></script>\n";
431
echo "\t<script type=\"text/javascript\" src=\"javascript/domTT/behaviour.js\"></script>\n";
432
echo "\t<script type=\"text/javascript\" src=\"javascript/domTT/fadomatic.js\"></script>\n";
433
434 a8726a3d Scott Ullrich
?>
435 8dbbc3ed Scott Ullrich
436 5b237745 Scott Ullrich
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
437 1db766df Scott Dale
<form action="index.php" method="post">
438
<script language="javascript" type="text/javascript">
439
// <![CDATA[
440
columns = ['col1','col2'];
441
// ]]>
442
443 670fe849 Scott Ullrich
</script>
444 1db766df Scott Dale
445 5ffe7500 Scott Ullrich
<?php
446
include("fbegin.inc");
447 f5cfdc98 Scott Dale
echo $jscriptstr;
448 5e237c18 Erik Kristensen
	if(!file_exists("/usr/local/www/themes/{$g['theme']}/no_big_logo"))
449
		echo "<center><img src=\"./themes/".$g['theme']."/images/logobig.jpg\"></center><br>";
450 0682e26b Colin Smith
?>
451 1db766df Scott Dale
<div id="widgetcontainer" style="display:none">
452 fffbf46d Carlos Eduardo Ramos
		<div id="content1"><h1><?=gettext("Available Widgets"); ?></h1><p><?php
453 16f556c5 Scott Dale
			$widgetfiles_add = $widgetfiles;
454
			sort($widgetfiles_add);
455
			foreach($widgetfiles_add as $widget) {			
456 1db766df Scott Dale
				if(!stristr($widget, "widget.php"))
457
					continue;		
458
				
459
				$periodpos = strpos($widget, ".");
460
				$widgetname = substr($widget, 0, $periodpos);
461
				$nicename = $widgetname;
462 f69aa687 Scott Dale
				$nicename = str_replace("_", " ", $nicename);
463 1db766df Scott Dale
				//make the title look nice
464 16f556c5 Scott Dale
				$nicename = ucwords($nicename);
465
				
466
				$widgettitle = $widgetname . "_title";
467
				$widgettitlelink = $widgetname . "_title_link";
468
					if ($$widgettitle != "")
469
					{
470 88f71068 Scott Dale
						//echo widget title 
471
						?>
472 7abf7db5 Scott Dale
						<span style="cursor: pointer;" onclick='return addWidget("<?php echo $widgetname; ?>")'>
473 16f556c5 Scott Dale
						<u><?php echo $$widgettitle; ?></u></span><br>
474
						<?php 
475
					}
476
					else {?>
477 7abf7db5 Scott Dale
						<span style="cursor: pointer;" onclick='return addWidget("<?php echo $widgetname; ?>")'>
478 16f556c5 Scott Dale
						<u><?php echo $nicename; ?></u></span><br><?php
479
					}
480 1db766df Scott Dale
			}
481 f5cfdc98 Scott Dale
		?>
482 1db766df Scott Dale
		</p>
483
	</div>
484
</div>
485
486 d72fc17b Scott Dale
<div id="welcomecontainer" style="display:none">
487 65d4de2e Scott Dale
		<div id="welcome-container">
488 d72fc17b Scott Dale
			<h1>
489 16f556c5 Scott Dale
				<div style="float:left;width:80%;padding: 2px">
490 fffbf46d Carlos Eduardo Ramos
					<?=gettext("Welcome to the Dashboard page"); ?>!
491 d72fc17b Scott Dale
				</div>
492 16f556c5 Scott Dale
				<div onclick="domTT_close(this);showAllWidgets();" style="float:right;width:8%; cursor:pointer;padding: 5px;" >
493 d72fc17b Scott Dale
					<img src="./themes/<?= $g['theme']; ?>/images/icons/icon_close.gif" />
494
				</div>
495
				<div style="clear:both;"></div>
496
			</h1>
497
			<p>
498 5493fad2 Rafael Lucas
			<?=gettext("This page allows you to customize the information you want to be displayed!");?><br/>
499
			<?=gettext("To get started click the");?> <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif"> <?=gettext("icon to add widgets.");?><br/>
500 d72fc17b Scott Dale
			<br/>
501 5493fad2 Rafael Lucas
			<?=gettext("You can move any widget around by clicking and dragging the title.");?>			
502 d72fc17b Scott Dale
			</p>
503
	</div>
504
</div>
505
506 bf5ad142 Scott Dale
<input type="hidden" value="" name="sequence" id="sequence">
507 fffbf46d Carlos Eduardo Ramos
<img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" alt="<?=gettext("Click here to add widgets"); ?>" style="cursor: pointer;" onmouseup="domTT_activate(this, event, 'content', document.getElementById('content1'), 'type', 'velcro', 'delay', 0, 'fade', 'both', 'fadeMax', 100, 'styleClass', 'niceTitle');" />
508 5eafc6de Scott Dale
509 fffbf46d Carlos Eduardo Ramos
<img src="./themes/<?= $g['theme']; ?>/images/icons/icon_info_pkg.gif" alt="<?=gettext("Click here for help"); ?>" style="cursor: help;" onmouseup="hideAllWidgets();domTT_activate(this, event, 'content', document.getElementById('welcome-container'), 'type', 'sticky', 'closeLink', '','delay', 0, 'fade', 'both', 'fadeMax', 100, 'styleClass', 'niceTitle');" />
510 5eafc6de Scott Dale
511
512 bf5ad142 Scott Dale
&nbsp;&nbsp;&nbsp;
513 5493fad2 Rafael Lucas
		<input id="submit" name="submit" type="submit" style="display:none" onclick="return updatePref();" class="formbtn" value="<?=gettext("Save Settings");?>" />
514 bf5ad142 Scott Dale
</p>
515 1db766df Scott Dale
516
<div id="niftyOutter">
517
	<?php
518
	$totalwidgets = count($widgetfiles);
519 c9cfb807 Scott Dale
	$halftotal = $totalwidgets / 2 - 2;
520
	$widgetcounter = 0;
521 8b06c9ff Scott Dale
	$directory = "/usr/local/www/widgets/widgets/";
522 1db766df Scott Dale
	$printed = false;
523
	$firstprint = false;
524
	?> 
525 ea298b82 Scott Dale
	<div id="col1" style="float:left;width:49%;padding-bottom:40px">		
526 8b06c9ff Scott Dale
	<?php	
527 135e9b3b Scott Dale
		
528 bf5ad142 Scott Dale
	foreach($widgetlist as $widget) {
529 c9cfb807 Scott Dale
		
530 1db766df Scott Dale
		if(!stristr($widget, "widget.php"))
531 3f304727 Scott Dale
					continue;
532 1db766df Scott Dale
		$periodpos = strpos($widget, ".");
533
		$widgetname = substr($widget, 0, $periodpos);	
534 bf5ad142 Scott Dale
		if ($widgetname != ""){
535 3f304727 Scott Dale
			$nicename = $widgetname;
536
			$nicename = str_replace("_", " ", $nicename);
537
			
538
			//make the title look nice
539
			$nicename = ucwords($nicename);
540 8b06c9ff Scott Dale
		}
541 1db766df Scott Dale
		
542 135e9b3b Scott Dale
		if ($config['widgets'] && $pconfig['sequence'] != ""){
543 01da41cf Bill Marquette
			switch($displayarray[$widgetcounter]){
544
				case "show":
545 8b06c9ff Scott Dale
					$divdisplay = "block";
546
					$display = "block";
547
					$inputdisplay = "show";					
548 7abf7db5 Scott Dale
					$showWidget = "none";
549 8b06c9ff Scott Dale
					$mindiv = "inline";
550 01da41cf Bill Marquette
					break;
551
				case "hide":
552 8b06c9ff Scott Dale
					$divdisplay = "block";
553 01da41cf Bill Marquette
					$display = "none";
554
					$inputdisplay = "hide";		
555
					$showWidget = "inline";
556
					$mindiv = "none";
557 a6efee26 jim-p
					break;
558 01da41cf Bill Marquette
				case "close":
559
					$divdisplay = "none";
560 8b06c9ff Scott Dale
					$display = "block";
561 01da41cf Bill Marquette
					$inputdisplay = "close";			
562 7abf7db5 Scott Dale
					$showWidget = "none";
563 8b06c9ff Scott Dale
					$mindiv = "inline";
564 01da41cf Bill Marquette
					break;
565
				default:
566 8b06c9ff Scott Dale
					$divdisplay = "none";
567
					$display = "block";
568 01da41cf Bill Marquette
					$inputdisplay = "none";
569 7abf7db5 Scott Dale
					$showWidget = "none";
570 8b06c9ff Scott Dale
					$mindiv = "inline";
571 01da41cf Bill Marquette
					break;
572
			}
573
		} else {
574
			if ($firstprint == false){
575
				$divdisplay = "block";
576
				$display = "block";
577
				$inputdisplay = "show";
578
				$showWidget = "none";
579
				$mindiv = "inline";
580
				$firstprint = true;
581
			} else {
582
				switch ($widget) {
583
					case "interfaces.widget.php":
584
					case "traffic_graphs.widget.php":
585
						$divdisplay = "block";
586
						$display = "block";
587
						$inputdisplay = "show";
588
						$showWidget = "none";
589
						$mindiv = "inline";
590
						break;
591
					default:
592
						$divdisplay = "none";
593
						$display = "block";
594
						$inputdisplay = "close";
595
						$showWidget = "none";
596
						$mindiv = "inline";
597
						break;
598 8b06c9ff Scott Dale
				}
599 775d112b Scott Dale
			}
600 bf5ad142 Scott Dale
		}
601 1db766df Scott Dale
		
602 135e9b3b Scott Dale
		if ($config['widgets'] && $pconfig['sequence'] != ""){
603 bf5ad142 Scott Dale
			if ($colpos[$widgetcounter] == "col2" && $printed == false)
604
			{
605
				$printed = true;
606
				?>
607
				</div>
608 ea298b82 Scott Dale
				<div id="col2" style="float:right;width:49%;padding-bottom:40px">		
609 bf5ad142 Scott Dale
				<?php
610
			}
611
		}
612
		else if ($widgetcounter >= $halftotal && $printed == false){
613 1db766df Scott Dale
			$printed = true;
614
			?>
615
			</div>
616 8b06c9ff Scott Dale
			<div id="col2" style="float:right;width:49%;padding-bottom:40px">		
617 1db766df Scott Dale
			<?php
618 bf5ad142 Scott Dale
		}
619 16f556c5 Scott Dale
		
620
		?>
621 1db766df Scott Dale
		<div style="clear:both;"></div>
622 65d4de2e Scott Dale
		<div  id="<?php echo $widgetname;?>-container" class="widgetdiv" style="display:<?php echo $divdisplay; ?>;">
623
			<input type="hidden" value="<?php echo $inputdisplay;?>" id="<?php echo $widgetname;?>-container-input" name="<?php echo $widgetname;?>-container-input">
624 3da0d006 Scott Dale
			<div id="<?php echo $widgetname;?>-topic" class="widgetheader" style="cursor:move">
625 1db766df Scott Dale
				<div style="float:left;">
626 16f556c5 Scott Dale
					<?php 
627
					
628
					$widgettitle = $widgetname . "_title";
629
					$widgettitlelink = $widgetname . "_title_link";
630
					if ($$widgettitle != "")
631
					{
632
						//only show link if defined
633
						if ($$widgettitlelink != "") {?>						
634
						<u><span onClick="location.href='/<?php echo $$widgettitlelink;?>'" style="cursor:pointer">
635
						<?php }
636
							//echo widget title
637
							echo $$widgettitle; 
638
						if ($$widgettitlelink != "") { ?>
639
						</span></u>						
640
						<?php }
641
					}
642
					else{		
643
						if ($$widgettitlelink != "") {?>						
644
						<u><span onClick="location.href='/<?php echo $$widgettitlelink;?>'" style="cursor:pointer">
645
						<?php }
646
						echo $nicename;
647
							if ($$widgettitlelink != "") { ?>
648
						</span></u>						
649
						<?php }
650
					}
651
					?>
652 1db766df Scott Dale
				</div>
653 bf5ad142 Scott Dale
				<div align="right" style="float:right;">	
654 7abf7db5 Scott Dale
					<div id="<?php echo $widgetname;?>-configure" onclick='return configureWidget("<?php echo $widgetname;?>")' style="display:none; cursor:pointer" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_configure.gif" /></div>									
655
					<div id="<?php echo $widgetname;?>-open" onclick='return showWidget("<?php echo $widgetname;?>",true)' style="display:<?php echo $showWidget;?>; cursor:pointer" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_open.gif" /></div>	
656
					<div id="<?php echo $widgetname;?>-min" onclick='return minimizeWidget("<?php echo $widgetname;?>",true)' style="display:<?php echo $mindiv;?>; cursor:pointer" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_minus.gif"/></div>												
657
					<div id="<?php echo $widgetname;?>-close" onclick='return closeWidget("<?php echo $widgetname;?>",true)' style="display:inline; cursor:pointer" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_close.gif" /></div>	
658 1db766df Scott Dale
				</div>
659
				<div style="clear:both;"></div>
660
			</div>
661 3da0d006 Scott Dale
			<?php if ($divdisplay != "block") { ?>
662
			<div id="<?php echo $widgetname;?>-loader" style="display:<?php echo $display; ?>;">
663
				<br>	
664
					<center>
665 fffbf46d Carlos Eduardo Ramos
						<img src="./themes/<?= $g['theme']; ?>/images/misc/widget_loader.gif" width=25 height=25 alt="<?=gettext("Loading selected widget"); ?>...">
666 3da0d006 Scott Dale
					</center>	
667
				<br>
668
			</div> <?php } if ($divdisplay != "block") $display = none; ?>
669 34eac803 Scott Dale
			<div id="<?php echo $widgetname;?>" style="display:<?php echo $display; ?>;">				
670 b9b45ddb Scott Dale
				<?php 
671 3da0d006 Scott Dale
					if ($divdisplay == "block")
672 b9b45ddb Scott Dale
					{
673
						include($directory . $widget);
674 34eac803 Scott Dale
					}	
675 b9b45ddb Scott Dale
				 ?>
676 1db766df Scott Dale
			</div>
677
			<div style="clear:both;"></div>
678
		</div>
679
		<?php 	
680
	$widgetcounter++;
681 8b06c9ff Scott Dale
		
682 1db766df Scott Dale
	}//end foreach	
683
	?>			
684 8b06c9ff Scott Dale
		</div>
685 1db766df Scott Dale
	<div style="clear:both;"></div>
686 d772ac32 Erik Kristensen
</div>
687 561d55ff Erik Kristensen
688 d772ac32 Erik Kristensen
<?php include("fend.inc"); ?>
689 7f1f5492 Scott Ullrich
	    
690
<script type="text/javascript">
691 8bf02470 Bill Marquette
	document.observe('dom:loaded', function(in_event)
692 5eafc6de Scott Dale
	{		
693 24f53f5c Scott Ullrich
			Sortable.create("col1", {tag:'div',dropOnEmpty:true,containment:columns,handle:'widgetheader',constraint:false,only:'widgetdiv',onChange:showSave});	
694
			Sortable.create("col2", {tag:'div',dropOnEmpty:true,containment:columns,handle:'widgetheader',constraint:false,only:'widgetdiv',onChange:showSave});		
695
	<?php if (!$config['widgets']  && $pconfig['sequence'] != ""){ ?>
696 5eafc6de Scott Dale
			hideAllWidgets();		    
697 65d4de2e Scott Dale
			domTT_activate('welcome1', null, 'x', 287, 'y', 107, 'content', document.getElementById('welcome-container'), 'type', 'sticky', 'closeLink', '','delay', 1000, 'fade', 'both', 'fadeMax', 100, 'styleClass', 'niceTitle');		
698 d72fc17b Scott Dale
	<?php } ?>
699 8bf02470 Bill Marquette
	});
700 838fa668 Scott Ullrich
</script>
701
<?php
702 1db766df Scott Dale
	//build list of javascript include files
703 775d112b Scott Dale
	$jsincludefiles = array();
704 1db766df Scott Dale
	$directory = "widgets/javascript/";
705
	$dirhandle  = opendir($directory);
706
	$filename = "";
707
	while (false !== ($filename = readdir($dirhandle))) {
708
   		$jsincludefiles[] = $filename;
709
	}
710
	foreach($jsincludefiles as $jsincludename) {
711
		if(!stristr($jsincludename, ".js"))
712 838fa668 Scott Ullrich
			continue;
713
		echo "<script src='{$directory}{$jsincludename}' type='text/javascript'></script>\n";	
714 1db766df Scott Dale
	}
715 838fa668 Scott Ullrich
?>
716 1db766df Scott Dale
</script>
717
</form>
718 5b237745 Scott Ullrich
</body>
719 dc7c57ac Ermal Lu?i
</html>