migrating SQL reports
This commit is contained in:
parent
10f3b3578d
commit
adef55be5f
11 changed files with 344 additions and 137 deletions
|
|
@ -67,4 +67,8 @@ WebGUI::Form::dateTime() and WebGUI::HTMLForm->dateTime() no longer have
|
|||
because there is only one field to represent both the date and the time,
|
||||
unlike before.
|
||||
|
||||
5.2 Database Links
|
||||
|
||||
The database links API was changed in 6.0. The getHash function was removed and
|
||||
replaced with a getList function that returns a hash reference.
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -323,6 +323,98 @@ WebGUI::SQL->write("delete from incrementer where incrementerId='LinkList_linkId
|
|||
|
||||
|
||||
|
||||
#--------------------------------------------
|
||||
print "\tUpdating SQL Reports.\n" unless ($quiet);
|
||||
my %dblink;
|
||||
$dblink{$session{config}{dsn}} = (
|
||||
id=>0,
|
||||
user=>$session{config}{dbuser}
|
||||
);
|
||||
my $sth = WebGUI::SQL->read("select DSN, databaseLinkId, username, identifier, wobjectId from SQLReport");
|
||||
while (my $data = $sth->hashRef) {
|
||||
my $id = undef;
|
||||
next if ($data->{databaseLinkId} > 0);
|
||||
foreach my $dsn (keys %dblink) {
|
||||
if ($dsn eq $data->{dsn} && $dblink{$dsn}{user} eq $data->{username}) {
|
||||
$id = $dblink{$dsn}{id};
|
||||
last;
|
||||
}
|
||||
}
|
||||
unless (defined $id) {
|
||||
$id = getNextId("databaseLinkId");
|
||||
my $title = $data->{username}.'@'.$data->{DSN};
|
||||
WebGUI::SQL->write("insert into databaseLink (databaseLinkId, title, DSN, username, identifier) values ($id, ".quote($title).",
|
||||
".quote($data->{DSN}).", ".quote($data->{username}).", ".quote($data->{identifier}).")");
|
||||
$dblink{$data->{DSN}} = (
|
||||
id=>$id,
|
||||
user=>$data->{username}
|
||||
);
|
||||
}
|
||||
WebGUI::SQL->write("update SQLReport set databaseLinkId=".$id." where wobjectId=".$data->{wobjectId});
|
||||
}
|
||||
$sth->finish;
|
||||
WebGUI::SQL->write("alter table SQLReport drop column DSN");
|
||||
WebGUI::SQL->write("alter table SQLReport drop column username");
|
||||
WebGUI::SQL->write("alter table SQLReport drop column identifier");
|
||||
use WebGUI::DatabaseLink;
|
||||
my $templateId;
|
||||
my $a = WebGUI::SQL->read("select a.databaseLinkId, a.dbQuery, a.template, a.wobjectId, b.title from SQLReport a
|
||||
left join wobject b on a.wobjectId=b.wobjectId");
|
||||
while (my $data = $a->hashRef) {
|
||||
my $db = WebGUI::DatabaseLink->new($data->{databaseLinkId});
|
||||
if ($data->{template} ne "") {
|
||||
($templateId) = WebGUI::SQL->quickArray("select max(templateId) from template where namespace='SQLReport'");
|
||||
if ($templateId > 999) {
|
||||
$templateId++;
|
||||
} else {
|
||||
$templateId = 1000;
|
||||
}
|
||||
my $b = WebGUI::SQL->unconditionalRead($data->{dbQuery},$db->dbh);
|
||||
my @template = split(/\^\-\;/,$data->{template});
|
||||
my $final = '<tmpl_if displayTitle>
|
||||
<h1><tmpl_var title></h1>
|
||||
</tmpl_if>
|
||||
|
||||
<tmpl_if description>
|
||||
<tmpl_var description><p />
|
||||
</tmpl_if>
|
||||
|
||||
<tmpl_if debugMode>
|
||||
<ul>
|
||||
<tmpl_loop debug_loop>
|
||||
<li><tmpl_var debug.output></li>
|
||||
</tmpl_loop>
|
||||
</ul>
|
||||
</tmpl_if>
|
||||
'.$template[0].'
|
||||
<tmpl_loop rows_loop> ';
|
||||
my $i;
|
||||
foreach my $col ($b->getColumnNames) {
|
||||
my $replacement = '<tmpl_var row.field.'.$col.'.value>';
|
||||
$template[1] =~ s/\^$i\;/$replacement/g;
|
||||
$i++;
|
||||
}
|
||||
$template[1] =~ s/\^rownum\;/\<tmpl_var row\.number\>/g;
|
||||
$final .= $template[1].'
|
||||
</tmpl_loop>
|
||||
'.$template[2].'
|
||||
<tmpl_if multiplePages>
|
||||
<div class="pagination">
|
||||
<tmpl_var previousPage> <tmpl_var pageList> <tmpl_var nextPage>
|
||||
</div>
|
||||
</tmpl_if>';
|
||||
WebGUI::SQL->write("insert into template (templateId, name, template, namespace) values ($templateId,
|
||||
".quote($data->{title}).",".quote($final).",'SQLReport')");
|
||||
} else {
|
||||
$templateId = 1;
|
||||
}
|
||||
WebGUI::SQL->write("insert into wobject set templateId=$templateId where wobjectId=".$data->{wobjectId});
|
||||
}
|
||||
$a->finish;
|
||||
WebGUI::SQL->write("alter table SQLReport drop column template");
|
||||
|
||||
|
||||
|
||||
#--------------------------------------------
|
||||
print "\tUpdating config file.\n" unless ($quiet);
|
||||
my $pathToConfig = '../../etc/'.$configFile;
|
||||
|
|
|
|||
|
|
@ -175,4 +175,14 @@ INSERT INTO template VALUES (2,'Horizontal Login Box','<div class=\"loginBox\">\
|
|||
INSERT INTO template VALUES (2,'DHTML Admin Bar','<script language=\"JavaScript1.2\" src=\"^Extras;/coolmenus/coolmenus4.js\">\n/*****************************************************************************\nCopyright (c) 2001 Thomas Brattli (webmaster@dhtmlcentral.com)\n \nDHTML coolMenus - Get it at coolmenus.dhtmlcentral.com\nVersion 4.0_beta\nThis script can be used freely as long as all copyright messages are\nintact.\n \nExtra info - Coolmenus reference/help - Extra links to help files ****\nCSS help: http://192.168.1.31/projects/coolmenus/reference.asp?m=37\nGeneral: http://coolmenus.dhtmlcentral.com/reference.asp?m=35\nMenu properties: http://coolmenus.dhtmlcentral.com/properties.asp?m=47\nLevel properties: http://coolmenus.dhtmlcentral.com/properties.asp?m=48\nBackground bar properties: http://coolmenus.dhtmlcentral.com/properties.asp?m=49\nItem properties: http://coolmenus.dhtmlcentral.com/properties.asp?m=50\n******************************************************************************/\n</script>\n<style type=\"text/css\">\n \n.adminBarTop,.adminBarTopOver,.adminBarSub,.adminBarSubOver{position:absolute; overflow:hidden; width:130; height:25; cursor:pointer; cursor:hand}\n.adminBarTop,.adminBarTopOver{padding:4px; font-size:12px; font-weight:bold}\n.adminBarTop{color:white; }\n.adminBarTopOver,.adminBarSubOver{color:#EC4300;}\n.adminBarSub,.adminBarSubOver{padding:2px; font-size:11px; font-weight:bold}\n.adminBarSub{color: white; background-color: #666666; layer-background-color: #666666;}\n.adminBarSubOver,.adminBarSubOver,.adminBarBorder,.adminBarBkg{layer-background-color: black; background-color: black;}\n.adminBarBorder{position:absolute; visibility:hidden; z-index:300}\n.adminBarBkg{position:absolute; width:10; height:10; visibility:hidden; }\n</style>\n\n<script language=\"JavaScript1.2\">\nadminBar=new makeCM(\"adminBar\"); \n\n//menu properties\nadminBar.resizeCheck=1; \nadminBar.rows=1; \nadminBar.onlineRoot=\"\"; \nadminBar.pxBetween =0;\nadminBar.fillImg=\"^Extras/spacer.gif\"; \nadminBar.fromTop=0; \nadminBar.fromLeft=50; \nadminBar.wait=300; \nadminBar.zIndex=10000;\nadminBar.menuPlacement=\"left\";\n\n//background bar properties\nadminBar.useBar=1; \nadminBar.barWidth=\"100%\"; \nadminBar.barHeight=\"menu\"; \nadminBar.barX=0;\nadminBar.barY=\"menu\"; \nadminBar.barClass=\"adminBarBkg\";\nadminBar.barBorderX=0; \nadminBar.barBorderY=0;\n\nadminBar.level[0]=new cm_makeLevel(150,20,\"adminBarTop\",\"adminBarTopOver\",1,1,\"adminBarBorder\",0,\"bottom\",0,0,0,0,0);\nadminBar.level[1]=new cm_makeLevel(150,18,\"adminBarSub\",\"adminBarSubOver\",1,1,\"adminBarBorder\",0,\"right\",0,0,\"menu_arrow.gif\",10,10);\n\n\nadminBar.makeMenu(\'addcontent\',\'\',\'<tmpl_var addcontent.label>\',\'\');\n<tmpl_loop addcontent_loop> \n adminBar.makeMenu(\'addcontent<tmpl_var addcontent.count>\',\'addcontent\',\'<tmpl_var addcontent.label>\',\'<tmpl_var addcontent.url>\');\n</tmpl_loop>\n\nadminBar.makeMenu(\'clipboard\',\'\',\'<tmpl_var clipboard.label>\',\'\');\n<tmpl_loop clipboard_loop> \n adminBar.makeMenu(\'clipboard<tmpl_var clipboard.count>\',\'clipboard\',\'<tmpl_var clipboard.label>\',\'<tmpl_var clipboard.url>\');\n</tmpl_loop>\n\nadminBar.makeMenu(\'admin\',\'\',\'<tmpl_var admin.label>\',\'\');\n<tmpl_loop admin_loop> \n adminBar.makeMenu(\'admin<tmpl_var admin.count>\',\'admin\',\'<tmpl_var admin.label>\',\'<tmpl_var admin.url>\');\n</tmpl_loop>\n \nadminBar.construct()\n</script>\n<br />\n','Macro/AdminBar');
|
||||
INSERT INTO template VALUES (1,'Default Admin Bar',' <script language=\"JavaScript\" type=\"text/javascript\"> <!--\n function goContent(){\n location = document.content.contentSelect.options[document.content.contentSelect.selectedIndex].value\n }\n function goAdmin(){\n location = document.admin.adminSelect.options[document.admin.adminSelect.selectedIndex].value\n }\n function goClipboard(){\n location = document.clipboard.clipboardSelect.options[document.clipboard.clipboardSelect.selectedIndex].value\n }\n //--> </script>\n \n<div class=\"adminBar\">\n<table class=\"adminBar\" width=\"100%\" cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\n <tr>\n <form name=\"content\"> <td>\n <select name=\"contentSelect\" onChange=\"goContent()\">\n <option value=\"\"><tmpl_var addcontent.label></option>\n <tmpl_loop addcontent_loop>\n <option value=\"<tmpl_var addcontent.url>\"><tmpl_var addcontent.label></option>\n </tmpl_loop>\n </select>\n </td> </form>\n <form name=\"clipboard\"> <td align=\"center\">\n <select name=\"clipboardSelect\" onChange=\"goClipboard()\">\n <option value=\"\"><tmpl_var clipboard.label></option>\n <tmpl_loop clipboard_loop>\n <option value=\"<tmpl_var clipboard.url>\"><tmpl_var clipboard.label></option>\n </tmpl_loop>\n </select>\n </td> </form>\n <form name=\"admin\"> <td align=\"center\">\n <select name=\"adminSelect\" onChange=\"goAdmin()\">\n <option value=\"\"><tmpl_var admin.label></option>\n <tmpl_loop admin_loop>\n <option value=\"<tmpl_var admin.url>\"><tmpl_var admin.label></option>\n </tmpl_loop>\n </select>\n </td> </form>\n </tr>\n</table>\n</div>\n','Macro/AdminBar');
|
||||
delete from international where internationalId=34 and namespace='WebGUI';
|
||||
delete from international where internationalId=19 and namespace='SQLReport';
|
||||
delete from international where internationalId=21 and namespace='SQLReport';
|
||||
delete from international where internationalId=5 and namespace='SQLReport';
|
||||
delete from international where internationalId=6 and namespace='SQLReport';
|
||||
delete from international where internationalId=7 and namespace='SQLReport';
|
||||
delete from international where internationalId=9 and namespace='SQLReport';
|
||||
update international set internationalId=1075, namespace='WebGUI' where internationalId=20 and namespace='SQLReport';
|
||||
insert into international (internationalId,languageId,namespace,message,lastUpdated,context) values (1076,1,'WebGUI','WebGUI Database', 1070899134,'A label indicating the the user will be selecting the default WebGUI database.');
|
||||
alter table SQLReport change column databaseLinkId databaseLinkId int not null default 0;
|
||||
INSERT INTO template VALUES (1,'Default SQL Report','<tmpl_if displayTitle>\n <h1><tmpl_var title></h1>\n</tmpl_if>\n\n<tmpl_if description>\n <tmpl_var description><p />\n</tmpl_if>\n\n<tmpl_if debugMode>\n <ul>\n <tmpl_loop debug_loop>\n <li><tmpl_var debug.output></li>\n </tmpl_loop>\n </ul>\n</tmpl_if>\n\n<table width=\"100%\">\n<tr>\n <tmpl_loop columns_loop>\n <td class=\"tableHeader\"><tmpl_var column.name></td>\n </tmpl_loop>\n</tr>\n<tmpl_loop rows_loop>\n <tr>\n <tmpl_loop row.field_loop>\n <td class=\"tableData\"><tmpl_var field.value></td>\n </tmpl_loop>\n </tr>\n</tmpl_loop>\n</table>\n\n<tmpl_if multiplePages>\n <div class=\"pagination\">\n <tmpl_var previousPage> <tmpl_var pageList> <tmpl_var nextPage>\n </div>\n</tmpl_if>','SQLReport');
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue