#!/usr/bin/perl # # Installer for the LUMP system. # # Author: J.P.Knight@lboro.ac.uk # use strict; use POSIX; use constant STAGE_CPAN_DIR => 1; use constant STAGE_CPAN_INSTALL => 2; use constant STAGE_ASK_DB_DETAILS => 3; use constant STAGE_DB_DETAILS => 4; use constant STAGE_DB_CHECK => 5; use constant STAGE_DB_CREATE => 6; use constant STAGE_DB_SCHEMA => 7; use constant STAGE_DB_POPULATE => 8; use constant STAGE_LC_DB_DETAILS => 9; use constant STAGE_LC_DB_CHECK => 10; use constant STAGE_LC_DB_CREATE => 11; use constant STAGE_LC_DB_SCHEMA => 12; use constant STAGE_ASK_CODE_DETAILS => 13; use constant STAGE_CHECK_MODULES => 14; use constant STAGE_CODE_INSTALL => 15; my @lump_required_modules = ( 'Algorithm::Diff', 'Archive::Any', 'Authen::Krb5', 'Authen::SASL', 'BibTeX::Parser', 'CGI::Cookie', 'DBD::mysql', 'DBI', 'DBIx::RetryOverDisconnects', 'Data::Dumper', 'Date::Calc', 'Date::Simple', 'Digest::SHA', 'Encode', 'Fcntl', 'File::Basename', 'Getopt::Long', 'HTTP::Async', 'HTTP::Request', 'HTTP::Request::Common', 'IO::File', 'IP::Anonymous', 'LWP', 'LWP::Simple ()', 'LWP::UserAgent', 'MD5', 'Net::LDAP', 'NetAddr::IP', 'POSIX', 'Perl::Tidy', 'Tie::Persistent', 'Time::HiRes', 'URI::Escape', 'WebService::ISBNDB::API::Books', 'XML::LibXML', 'XML::Mini::Document', 'XML::Simple', 'ZOOM', ); my @clump_required_modules = ( 'Data::Dumper', 'HTTP::Cookies', 'HTTP::Request::Common', 'JSON', 'LWP', 'LWP::UserAgent', 'LWP::UserAgent', 'MARC::Record', 'XML::Simple', 'ZOOM', ); my @required_modules; my $loan_cache_schema = [ "CREATE TABLE `ISBN2item` ( `id` int(11) NOT NULL auto_increment, `itemId` int(11) default NULL, `isbn` varchar(255) default NULL, PRIMARY KEY (`id`), KEY `isbnIdx` (`isbn`), KEY `itemIdx` (`itemId`) ) ENGINE=MyISAM AUTO_INCREMENT=411547 DEFAULT CHARSET=latin1; ", "CREATE TABLE `items` ( `id` int(11) NOT NULL auto_increment, `lcn` varchar(255) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=377889 DEFAULT CHARSET=latin1; ", "CREATE TABLE `loans` ( `id` int(11) NOT NULL auto_increment, `itemId` int(11) default NULL, `issued` datetime default NULL, `returned` datetime default NULL, `itemType` varchar(255) default NULL, `department` varchar(255) default NULL, PRIMARY KEY (`id`), KEY `itemIdx2` (`itemId`), KEY `issuedIdx` (`issued`), KEY `returnedIdx` (`returned`) ) ENGINE=MyISAM AUTO_INCREMENT=562288 DEFAULT CHARSET=latin1; " ]; my $schema = [ "create table structural_unit ( id int not null primary key auto_increment, structural_unit_type_id int not null, deleted enum('N','Y') default 'N', state enum('draft','published','suppressed') default 'draft', created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table structural_unit_link ( id int not null primary key auto_increment, parent_su_id int not null, child_su_id int not null, rank int, created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table structural_unit_type ( id int not null primary key auto_increment, name varchar(255), created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table structural_unit_type_link ( id int not null primary key auto_increment, name varchar(255), parent_su_type_id int not null, child_su_type_id int not null, created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table data_type_group ( id int not null primary key auto_increment, structural_unit_type_id int not null, title varchar(255), rank int not null, created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table data_type ( id int not null primary key auto_increment, data_type_group_id int not null, rank int not null default 0, name varchar(255), repeatable enum('Y','N') not null default 'N', default_value text, size int, edit_representation enum('input text','textarea','checkbox','radio button', 'popup menu', 'scrolling list') not null default 'input text', validation_pattern text, created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table controlled_vocabulary ( id int not null primary key auto_increment, data_type_id int not null, possible_value text, created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table data_element ( id int not null primary key auto_increment, data_type_id int not null, structural_unit_id int not null, value text, created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table editing_event ( id int not null primary key auto_increment, data_element_id int not null, user_id int not null, diff text, created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table user ( id int not null primary key auto_increment, username varchar(255), fullname varchar(255), email varchar(255), created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table user_usergroup_link ( id int not null primary key auto_increment, user_id int not null, usergroup_id int not null, created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table usergroup ( id int not null primary key auto_increment, group_name varchar(255), priority_id int not null, created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table access_control_list ( id int not null primary key auto_increment, user_group_id int not null, structural_unit_id int, data_type_group_id int, view enum('Y','N') not null default 'N', edit enum('Y','N') not null default 'N', created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table acl_defaults ( id int not null primary key auto_increment, priority_id int not null, structural_unit_type_id int not null, data_type_group_id int, view enum('Y','N') not null default 'N', edit enum('Y','N') not null default 'N', created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table priority ( id int not null primary key auto_increment, value int not null, name varchar(255), created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table display_format ( id int not null primary key auto_increment, format_type_id int not null, structural_unit_type_id int, data_type_group_id int, template text, created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table import_format ( id int not null primary key auto_increment, format_type_id int not null, structural_unit_type_id int, template text, created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table format_type ( id int not null primary key auto_increment, name varchar(255), created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table translation ( id int not null primary key auto_increment, format_type_id int not null, pattern_match text, pattern_replacement text, created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table user_item_rating ( id int not null primary key auto_increment, user_id int not null, structural_unit_id int not null, rating enum('Good','Bad'), created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table ip_address_range ( id int not null primary key auto_increment, name varchar(255), cidr varchar(50), default_view_exclude enum('Y','N') default 'N', created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); ", "create table view_log ( id int not null primary key auto_increment, src_ip varchar(50), client_name varchar(100), structural_unit_id int not null, structural_unit_type_id int not null, username varchar(50) not null, created_by varchar(20), created_time datetime, modified_by varchar(20), modified_time datetime ); " ]; my $indexes = [ "create index su_sutid_idx on structural_unit (structural_unit_type_id); ", "create index sul_parent_idx on structural_unit_link ( parent_su_id ); ", "create index sul_child_idx on structural_unit_link ( child_su_id ); ", "create index sutl_parent_idx on structural_unit_type_link (parent_su_type_id); ", "create index sutl_child_idx on structural_unit_type_link (child_su_type_id); ", "create index dtg_sut_idx on data_type_group (structural_unit_type_id); ", "create index dtg_title_idx on data_type_group (title); ", "create index dt_dtg_idx on data_type (data_type_group_id); ", "create index dt_name_idx on data_type (name); ", "create index cv_dt_idx on controlled_vocabulary (data_type_id); ", "create index de_dt_idx on data_element (data_type_id); ", "create index de_su_idx on data_element (structural_unit_id); ", "create index ee_de_idx on editing_event (data_element_id); ", "create index ee_user_idx on editing_event (user_id); ", "create index username_idx on user (username); ", "create index uugl_user_idx on user_usergroup_link ( user_id ); ", "create index uugl_group_idx on user_usergroup_link ( usergroup_id ); ", "create index ug_gname_idx on usergroup (group_name); ", "create index acl_ug_idx on access_control_list (user_group_id); ", "create index acl_su_idx on access_control_list (structural_unit_id); ", "create index acl_dtg_idx on access_control_list (data_type_group_id); ", "create index df_ft_idx on display_format ( format_type_id ); ", "create index df_sut_idx on display_format ( structural_unit_type_id ); ", "create index df_dtg_idx on display_format ( data_type_group_id ); ", "create index if_ft_idx on import_format (format_type_id); ", "create index if_sut_idx on import_format (structural_unit_type_id); " ]; my $dummy_data = [ '-- MySQL dump 10.11 ', '-- ', '-- Host: localhost Database: LUMP ', '-- ------------------------------------------------------ ', '-- Server version 5.0.95 ', '/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; ', '/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; ', '/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; ', '/*!40101 SET NAMES utf8 */; ', '/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; ', '/*!40103 SET TIME_ZONE=\'+00:00\' */; ', '/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; ', '/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; ', '/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=\'NO_AUTO_VALUE_ON_ZERO\' */; ', '/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; ', '-- ', '-- Dumping data for table `access_control_list` ', '-- ', 'LOCK TABLES `access_control_list` WRITE; ', '/*!40000 ALTER TABLE `access_control_list` DISABLE KEYS */; ', 'INSERT INTO `access_control_list` (`id`, `user_group_id`, `structural_unit_id`, `data_type_group_id`, `view`, `edit`, `created_by`, `created_time`, `modified_by`, `modified_time`) VALUES (1,1,NULL,NULL,\'Y\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(2,2,NULL,NULL,\'Y\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(3,3,NULL,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(4,5,5,NULL,\'Y\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(5,4,5,NULL,\'Y\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(6,6,5,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(7,7,5,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(8,5,5,4,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(9,4,5,4,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(10,6,5,4,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(11,7,5,4,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(12,5,6,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(13,4,6,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(14,6,6,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(15,7,6,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(16,5,6,21,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(17,4,6,21,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(18,6,6,21,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(19,7,6,21,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(20,5,7,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(21,4,7,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(22,6,7,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(23,7,7,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(24,5,7,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(25,4,7,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(26,6,7,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(27,7,7,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(28,5,7,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(29,4,7,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(30,6,7,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(31,7,7,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(32,1,7,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(33,2,7,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(34,5,8,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(35,4,8,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(36,6,8,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(37,7,8,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(38,5,8,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(39,4,8,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(40,6,8,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(41,7,8,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(42,5,8,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(43,4,8,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(44,6,8,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(45,7,8,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(46,1,8,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(47,2,8,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(48,5,8,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(49,4,8,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(50,6,8,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(51,7,8,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(52,3,8,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(53,5,9,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(54,4,9,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(55,6,9,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(56,7,9,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(57,5,9,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(58,4,9,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(59,6,9,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(60,7,9,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(61,5,9,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(62,4,9,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(63,6,9,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(64,7,9,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(65,1,9,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(66,2,9,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(67,5,10,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(68,4,10,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(69,6,10,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(70,7,10,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(71,5,10,17,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(72,4,10,17,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(73,6,10,17,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(74,7,10,17,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(75,5,10,18,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(76,4,10,18,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(77,6,10,18,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(78,7,10,18,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(79,1,10,19,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(80,2,10,19,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(81,5,10,19,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(82,4,10,19,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(83,6,10,19,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(84,7,10,19,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(85,5,11,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(86,4,11,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(87,6,11,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(88,7,11,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(89,5,11,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(90,4,11,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(91,6,11,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(92,7,11,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(93,5,11,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(94,4,11,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(95,6,11,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(96,7,11,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(97,1,11,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(98,2,11,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(99,5,12,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(100,4,12,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(101,6,12,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(102,7,12,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(103,5,12,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(104,4,12,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(105,6,12,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(106,7,12,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(107,5,12,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(108,4,12,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(109,6,12,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(110,7,12,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(111,1,12,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(112,2,12,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(113,5,12,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(114,4,12,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(115,6,12,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(116,7,12,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(117,3,12,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(118,5,13,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(119,4,13,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(120,6,13,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(121,7,13,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(122,5,13,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(123,4,13,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(124,6,13,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(125,7,13,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(126,5,13,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(127,4,13,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(128,6,13,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(129,7,13,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(130,1,13,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(131,2,13,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(132,5,14,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(133,4,14,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(134,6,14,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(135,7,14,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(136,5,14,12,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(137,4,14,12,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(138,6,14,12,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(139,7,14,12,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(140,5,14,13,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(141,4,14,13,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(142,6,14,13,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(143,7,14,13,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(144,6,14,14,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(145,7,14,14,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(146,1,14,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(147,2,14,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(148,5,14,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(149,4,14,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(150,5,15,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(151,4,15,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(152,6,15,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(153,7,15,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(154,5,15,12,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(155,4,15,12,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(156,6,15,12,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(157,7,15,12,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(158,5,15,13,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(159,4,15,13,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(160,6,15,13,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(161,7,15,13,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(162,6,15,14,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(163,7,15,14,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(164,1,15,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(165,2,15,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(166,5,15,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(167,4,15,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(168,5,16,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(169,4,16,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(170,6,16,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(171,7,16,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(172,5,16,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(173,4,16,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(174,6,16,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(175,7,16,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(176,5,16,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(177,4,16,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(178,6,16,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(179,7,16,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(180,1,16,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(181,2,16,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(182,5,17,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(183,4,17,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(184,6,17,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(185,7,17,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(186,5,17,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(187,4,17,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(188,6,17,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(189,7,17,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(190,5,17,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(191,4,17,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(192,6,17,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(193,7,17,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(194,1,17,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(195,2,17,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(196,5,17,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(197,4,17,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(198,6,17,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(199,7,17,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(200,3,17,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(201,5,18,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(202,4,18,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(203,6,18,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(204,7,18,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(205,5,18,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(206,4,18,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(207,6,18,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(208,7,18,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(209,5,18,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(210,4,18,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(211,6,18,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(212,7,18,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(213,1,18,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(214,2,18,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(215,5,19,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(216,4,19,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(217,6,19,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(218,7,19,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(219,5,19,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(220,4,19,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(221,6,19,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(222,7,19,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(223,5,19,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(224,4,19,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(225,6,19,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(226,7,19,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(227,1,19,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(228,2,19,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(229,5,19,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(230,4,19,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(231,6,19,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(232,7,19,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(233,3,19,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(234,5,20,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(235,4,20,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(236,6,20,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(237,7,20,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(238,5,20,12,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(239,4,20,12,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(240,6,20,12,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(241,7,20,12,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(242,5,20,13,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(243,4,20,13,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(244,6,20,13,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(245,7,20,13,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(246,6,20,14,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(247,7,20,14,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(248,1,20,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(249,2,20,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(250,5,20,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(251,4,20,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(252,5,21,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(253,4,21,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(254,6,21,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(255,7,21,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(256,5,21,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(257,4,21,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(258,6,21,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(259,7,21,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(260,5,21,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(261,4,21,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(262,6,21,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(263,7,21,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(264,1,21,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(265,2,21,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(266,9,22,NULL,\'Y\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(267,8,22,NULL,\'Y\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(268,10,22,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(269,11,22,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(270,9,22,4,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(271,8,22,4,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(272,10,22,4,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(273,11,22,4,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(274,9,23,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(275,8,23,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(276,10,23,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(277,11,23,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(278,9,23,21,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(279,8,23,21,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(280,10,23,21,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(281,11,23,21,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(282,9,24,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(283,8,24,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(284,10,24,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(285,11,24,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(286,9,24,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(287,8,24,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(288,10,24,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(289,11,24,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(290,9,24,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(291,8,24,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(292,10,24,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(293,11,24,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(294,1,24,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(295,2,24,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(296,9,25,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(297,8,25,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(298,10,25,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(299,11,25,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(300,9,25,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(301,8,25,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(302,10,25,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(303,11,25,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(304,9,25,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(305,8,25,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(306,10,25,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(307,11,25,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(308,1,25,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(309,2,25,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(310,9,26,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(311,8,26,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(312,10,26,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(313,11,26,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(314,9,26,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(315,8,26,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(316,10,26,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(317,11,26,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(318,9,26,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(319,8,26,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(320,10,26,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(321,11,26,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(322,1,26,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(323,2,26,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(324,9,26,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(325,8,26,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(326,10,26,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(327,11,26,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(328,3,26,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(329,9,27,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(330,8,27,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(331,10,27,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(332,11,27,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(333,9,27,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(334,8,27,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(335,10,27,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(336,11,27,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(337,9,27,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(338,8,27,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(339,10,27,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(340,11,27,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(341,1,27,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(342,2,27,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(343,9,27,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(344,8,27,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(345,10,27,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(346,11,27,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(347,3,27,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(348,9,28,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(349,8,28,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(350,10,28,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(351,11,28,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(352,9,28,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(353,8,28,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(354,10,28,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(355,11,28,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(356,9,28,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(357,8,28,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(358,10,28,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(359,11,28,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(360,1,28,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(361,2,28,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(362,9,28,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(363,8,28,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(364,10,28,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(365,11,28,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(366,3,28,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(367,9,29,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(368,8,29,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(369,10,29,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(370,11,29,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(371,9,29,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(372,8,29,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(373,10,29,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(374,11,29,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(375,9,29,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(376,8,29,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(377,10,29,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(378,11,29,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(379,1,29,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(380,2,29,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(381,9,29,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(382,8,29,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(383,10,29,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(384,11,29,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(385,3,29,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(386,9,30,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(387,8,30,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(388,10,30,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(389,11,30,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(390,9,30,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(391,8,30,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(392,10,30,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(393,11,30,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(394,9,30,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(395,8,30,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(396,10,30,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(397,11,30,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(398,1,30,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(399,2,30,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(400,9,30,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(401,8,30,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(402,10,30,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(403,11,30,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(404,3,30,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(405,9,31,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(406,8,31,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(407,10,31,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(408,11,31,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(409,9,31,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(410,8,31,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(411,10,31,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(412,11,31,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(413,9,31,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(414,8,31,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(415,10,31,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(416,11,31,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(417,1,31,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(418,2,31,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(419,9,32,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(420,8,32,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(421,10,32,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(422,11,32,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(423,9,32,6,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(424,8,32,6,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(425,10,32,6,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(426,11,32,6,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(427,9,32,7,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(428,8,32,7,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(429,10,32,7,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(430,11,32,7,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(431,1,32,7,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(432,2,32,7,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(433,10,32,8,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(434,11,32,8,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(435,1,32,8,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(436,2,32,8,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(437,9,32,8,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(438,8,32,8,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(439,13,35,NULL,\'Y\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(440,12,35,NULL,\'Y\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(441,14,35,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(442,15,35,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(443,13,35,4,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(444,12,35,4,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(445,14,35,4,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(446,15,35,4,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(447,13,36,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(448,12,36,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(449,14,36,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(450,15,36,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(451,13,36,21,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(452,12,36,21,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(453,14,36,21,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(454,15,36,21,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(455,1,NULL,1,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(456,1,NULL,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(457,1,NULL,7,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(458,1,NULL,8,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(459,1,NULL,12,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(460,1,NULL,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(461,1,NULL,17,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(462,1,NULL,19,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(463,1,NULL,22,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(464,1,NULL,24,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'); ', '/*!40000 ALTER TABLE `access_control_list` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `acl_defaults` ', '-- ', 'LOCK TABLES `acl_defaults` WRITE; ', '/*!40000 ALTER TABLE `acl_defaults` DISABLE KEYS */; ', 'INSERT INTO `acl_defaults` (`id`, `priority_id`, `structural_unit_type_id`, `data_type_group_id`, `view`, `edit`, `created_by`, `created_time`, `modified_by`, `modified_time`) VALUES (1,4,1,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(2,3,1,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(3,5,1,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(4,6,1,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(5,4,1,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(6,3,1,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(7,5,1,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(8,6,1,1,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(9,4,1,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(10,3,1,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(11,5,1,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(12,6,1,2,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(13,1,1,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(14,2,1,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(15,4,1,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(16,3,1,3,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(17,5,1,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(18,6,1,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(19,7,1,3,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(20,4,2,NULL,\'Y\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(21,3,2,NULL,\'Y\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(22,5,2,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(23,6,2,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(24,4,2,4,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(25,3,2,4,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(26,5,2,4,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(27,6,2,4,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(28,4,3,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(29,3,3,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(30,5,3,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(31,6,3,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(32,4,3,5,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(33,3,3,5,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(34,5,3,5,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(35,6,3,5,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(36,4,4,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(37,3,4,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(38,5,4,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(39,6,4,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(40,4,4,6,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(41,3,4,6,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(42,5,4,6,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(43,6,4,6,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(44,4,4,7,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(45,3,4,7,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(46,5,4,7,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(47,6,4,7,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(48,1,4,7,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(49,2,4,7,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(50,5,4,8,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(51,6,4,8,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(52,1,4,8,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(53,2,4,8,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(54,4,4,8,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(55,3,4,8,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(56,4,6,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(57,3,6,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(58,5,6,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(59,6,6,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(60,4,6,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(61,3,6,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(62,5,6,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(63,6,6,10,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(64,4,6,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(65,3,6,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(66,5,6,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(67,6,6,11,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(68,1,6,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(69,2,6,11,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(70,4,7,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(71,3,7,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(72,5,7,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(73,6,7,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(74,4,7,12,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(75,3,7,12,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(76,5,7,12,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(77,6,7,12,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(78,4,7,13,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(79,3,7,13,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(80,5,7,13,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(81,6,7,13,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(82,5,7,14,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(83,6,7,14,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(84,1,7,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(85,2,7,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(86,4,7,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(87,3,7,14,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(88,4,10,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(89,3,10,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(90,5,10,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(91,6,10,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(92,4,10,17,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(93,3,10,17,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(94,5,10,17,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(95,6,10,17,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(96,4,10,18,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(97,3,10,18,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(98,5,10,18,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(99,6,10,18,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(100,1,10,19,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(101,2,10,19,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(102,4,10,19,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(103,3,10,19,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(104,5,10,19,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(105,6,10,19,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(106,4,12,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(107,3,12,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(108,5,12,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(109,6,12,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(110,4,12,21,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(111,3,12,21,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(112,5,12,21,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(113,6,12,21,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(114,4,13,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(115,3,13,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(116,5,13,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(117,6,13,NULL,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(118,4,13,22,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(119,3,13,22,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(120,5,13,22,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(121,6,13,22,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(122,4,13,23,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(123,3,13,23,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(124,5,13,23,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(125,6,13,23,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(126,1,13,24,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(127,2,13,24,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(128,4,13,24,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(129,3,13,24,\'N\',\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(130,5,13,24,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(131,6,13,24,\'Y\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'); ', '/*!40000 ALTER TABLE `acl_defaults` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `controlled_vocabulary` ', '-- ', 'LOCK TABLES `controlled_vocabulary` WRITE; ', '/*!40000 ALTER TABLE `controlled_vocabulary` DISABLE KEYS */; ', '/*!40000 ALTER TABLE `controlled_vocabulary` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `data_element` ', '-- ', 'LOCK TABLES `data_element` WRITE; ', '/*!40000 ALTER TABLE `data_element` DISABLE KEYS */; ', 'INSERT INTO `data_element` (`id`, `data_type_id`, `structural_unit_id`, `value`, `created_by`, `created_time`, `modified_by`, `modified_time`) VALUES (1,110,1,\'http://www.example.com/\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(2,111,1,\'Example Institution\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(3,112,1,\'http://www.lboro.ac.uk/about/images/p-lulogo.gif\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(4,79,2,\'LB\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(5,80,2,\'Library\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(6,47,3,\'A\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(7,48,3,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(8,49,3,\'First Year Undergraduate\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(9,82,4,\'2008\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(10,25,5,\'2008\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(11,26,5,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(12,27,5,\'Administrators Guide\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(13,29,5,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(14,30,5,\'08LBA124\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(15,113,6,\'Dr Cool\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(16,114,6,\'Administrators Guide Main Reading List\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(17,28,5,\'Dr Cool\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(18,50,7,\'

This demonstration reading list contains examples of the different types of material that can be added using this system, and how LORLS can be used as a master for all your course resources.

By using simple html you can use the note field for adding Headings and course notes.

You can also copy whole or part of a list into another module saving time and effort. For larger modules you can easily divide your reading lists into sub-lists.

You can order the list alphabetically, and re-rank items just as you wish

Click on Edit note add your notes and when complete click Submit note.

Return to the main list by clicking Manage List

\\r\\n\\r\\n

Adding Books:

* ISBNs should be entered without any spaces or hyphens.
* ISBNs may be copied and pasted from the Library Catalogue.ISBNs with \\\'x\\\' must be lower case

Click New Item insert ISBN click \\"Get Bibliographic Details\\" button (if the Library holds the item, the top part of the form will be filled in automatically).\\r\\n

\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(19,1,8,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(20,2,8,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(21,4,8,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(22,6,8,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(23,7,8,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(24,8,8,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(25,9,8,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(26,10,8,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(27,12,8,\'Polity\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(28,13,8,\'2003\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(29,14,8,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(30,15,8,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(31,16,8,\'Soap opera\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(32,17,8,\'0745626556\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(33,18,8,\'Hobson, Dorothy\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(34,20,8,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(35,21,8,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(36,22,8,\'15\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(37,23,8,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(38,24,8,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(39,50,9,\'

Book Chapters:

You can specify a chapter by following the instructions above and then complete part \\\'B\\\' on the form. See below:

\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(40,83,10,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(41,84,10,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(42,86,10,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(43,88,10,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(44,89,10,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(45,90,10,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(46,91,10,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(47,92,10,\'Please read chapter two only\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(48,93,10,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(49,94,10,\'Polity\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(50,95,10,\'2003\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(51,96,10,\'Hobson, Dorothy\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(52,97,10,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(53,98,10,\'Elements of production\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(54,99,10,\'63-78\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(55,100,10,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(56,101,10,\'Soap opera\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(57,102,10,\'0745626556\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(58,103,10,\'Hobson, Dorothy\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(59,105,10,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(60,106,10,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(61,107,10,\'16\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(62,108,10,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(63,109,10,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(64,50,11,\'

E-Books:

Following instructions for print book, and then enter the URL of an item available electronically.

\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(65,1,12,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(66,2,12,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(67,4,12,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(68,6,12,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(69,7,12,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(70,8,12,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(71,9,12,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(72,10,12,\'ATHENS username and password required\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(73,11,12,\'http://www.LBORO.eblib.com/EBLWeb/patron/?target=patron&extendedid=E_414848_0;\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(74,12,12,\'Idea Group Pub.\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(75,13,12,\'2004\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(76,14,12,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(77,15,12,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(78,16,12,\'Beyond knowledge management\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(79,17,12,\'1591401801\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(80,18,12,\'Lehaney, Brian\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(81,20,12,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(82,21,12,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(83,22,12,\'17\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(84,23,12,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(85,24,12,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(86,50,13,\'

Adding journal articles:

Both print and electronic articles can be added to your list.

From Author/Title page of Serials Catalogue, click on the relevant number on the Left Hand Side of the screen, eg: 3.

\\r\\n\\r\\n* Paste the Control number into the relevant ISBN/ISSN field in your Serial record

If an ISSN or Control number is entered, click \\"Get Bibliographic Details\\" button.If the Library holds the item, the top part of the form will be filled in automatically.

\\r\\n\\r\\nIf the ISSN will not link follow the instructions below:-

\\r\\n\\r\\n* Click MARC tags on the Choose format line.

\\r\\n\\r\\n* Copy and paste the 9-digit number from the 001 field on the LHS of the screen.

\\r\\n\\r\\n

For electronic resource Serials, copy and paste the http:// string on the External line, excluding the last semi-colon.\\r\\n\\r\\n\\r\\n

\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(87,52,14,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(88,53,14,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(89,55,14,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(90,57,14,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(91,58,14,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(92,59,14,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(93,60,14,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(94,61,14,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(95,62,14,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(96,63,14,\'001051800\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(97,64,14,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(98,66,14,\'2\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(99,67,14,\'42-44\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(100,68,14,\'Plagiarism and the role of the library\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(101,69,14,\'12\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(102,70,14,\'Library & information update.\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(103,71,14,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(104,73,14,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(105,74,14,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(106,75,14,\'18\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(107,76,14,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(108,77,14,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(109,52,15,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(110,53,15,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(111,55,15,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(112,57,15,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(113,58,15,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(114,59,15,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(115,60,15,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(116,61,15,\'Also available from Loughborough University Institutional Repository\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(117,62,15,\'http://www.lirg.org.uk/lir/previous.htm\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(118,63,15,\'000167249\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(119,64,15,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(120,65,15,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(121,66,15,\'26\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(122,67,15,\'38-42\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(123,68,15,\'Publish and be read? A review of the usage of Loughborough University Library publications\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(124,69,15,\'82\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(125,70,15,\'Library and information research.\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(126,71,15,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(127,73,15,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(128,74,15,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(129,75,15,\'19\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(130,76,15,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(131,77,15,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(132,50,16,\'

Short loan photocopies:

Articles that are in great demand can be copied from the hard copy of journals the Library holds, and added to the short loan collection.
Copyright cleared copies will be applied for from the British Library for those articles not in stock.

Also extracts of books the Library has in stock can be copied, so long as they are no more than one chapter or 10% of the book.

\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(133,1,17,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(134,2,17,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(135,4,17,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(136,6,17,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(137,7,17,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(138,8,17,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(139,9,17,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(140,10,17,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(141,12,17,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(142,13,17,\'1999\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(143,14,17,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(144,15,17,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(145,16,17,\'The institutional structure of regulatory agencies\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(146,17,17,\'001060013\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(147,18,17,\'Llewellyn, David T\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(148,20,17,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(149,21,17,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(150,22,17,\'20\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(151,23,17,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(152,24,17,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(153,50,18,\'

If you have a section of notes or items you want to repeat elsewhere

you can copy the items using

\\r\\n\\r\\n1. Select the items you want to repeat.
\\r\\n\\r\\n2. Click \\"Append selected to module\\" the items will be appended to the end of the current reading list.

\\r\\n\\r\\nTo append to another Reading List

that you own (thus allowing you to create similar or identical copies of a reading list):-
\\r\\n\\r\\n* Change the module code in the prompt box beside the button.\\r\\n

\\r\\n

\\r\\n

Online resources:\\r\\n\\r\\nYou can add online resources - just copy and paste the URL into the box in Section C. Add details in Sections A and B.

\\r\\nAdded benefits:You can import tagged references from Refworks.
* Tag records within Refworks and export them as \\\'Refworks Tagged format\\\' references - save to U drive.
* Open the saved file and enter at the beginning of the document BEGIN EXPORTED REFERENCES
* In reading lists select Import Tagged References option ensure data format is set as Refworks and find file. Click on submit query.
* References will be automatically appended to the end of the list
* You have the option to delete the source of the reference from the note field

\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(154,1,19,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(155,2,19,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(156,4,19,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(157,6,19,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(158,7,19,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(159,8,19,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(160,9,19,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(161,10,19,\'ID: ARTICLEFIRST; M1: 5; English\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(162,12,19,\'Cambridge University Press\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(163,13,19,\'2001\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(164,14,19,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(165,15,19,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(166,16,19,\'Actions Do Speak Louder than Words: Deterring Plagiarism with the Use of Plagiarism-Detection Software\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(167,17,19,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(168,18,19,\'Braumoeller,Bear F.\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(169,20,19,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(170,21,19,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(171,22,19,\'21\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(172,23,19,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(173,24,19,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(174,52,20,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(175,53,20,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(176,55,20,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(177,57,20,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(178,58,20,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(179,59,20,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(180,60,20,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(181,61,20,\'ID: ARTICLEFIRST; M1: 1; English\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(182,62,20,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(183,63,20,\'0167-4544\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(184,64,20,\'Kluwer Academic Publishers\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(185,65,20,\'2004\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(186,66,20,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(187,67,20,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(188,68,20,\'Ethical Misconduct In The Business School: A Case Of Plagiarism That Turned Bitter\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(189,69,20,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(190,70,20,\'Journal of business ethics\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(191,71,20,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(192,72,20,NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(193,73,20,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(194,74,20,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(195,75,20,\'22\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(196,76,20,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(197,77,20,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(198,50,21,\'

Other options:

Re-ranking (sorting) entries

\\r\\n\\r\\n To change the position of an item or note in the reading list:-

\\r\\n\\r\\n1. Click the relevant checkbox to select the item or note you want to move.

\\r\\n\\r\\n2. Move to the top or bottom of the table and:-

\\r\\n\\r\\n* Enter the required rank number in the box next to .

\\r\\n\\r\\n* Click \\"Rerank selected to\\" button.

\\r\\n\\r\\nThe screen will take a few moments to refresh and the entry will now be in the new position.

To rank items alphabetically

To the right of the \\"Rerank\\" button and box is a checkbox labelled Alphabetically. Click the checkbox before clicking the \\"Rerank\\" button. The selected items will be re-ordered alphabetically by Author. Notes will be ranked above the items.

Deleting entries
\\r\\nAvailable deletion options:-

\\r\\n\\r\\n* Click 1 or more checkbox on the LHS of the table to select item(s)\\r\\n\\r\\n* Click \\"select everything\\" to select all items.

\\r\\n\\r\\n* Click \\"Delete selected\\" button at top or bottom of table

\\r\\n\\r\\nThe next screen offers the following options:-

\\r\\n\\r\\n* Abandon the deletion and return to \\"management centre\\".\\r\\n\\r\\nYou will then be returned to the full reading lists page.\\r\\n\\r\\n

\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(199,25,22,\'2008\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(200,26,22,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(201,27,22,\'Demonstration List\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(202,29,22,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(203,30,22,\'08LBA001\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(204,113,23,\'Dr Cool\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(205,114,23,\'Demonstration List Main Reading List\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(206,28,22,\'Aker Demic\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(207,50,24,\'This is a simple demonstration reading list. It contains some books and an online resources that you might find useful whilst looking at the LORLS software.\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(208,50,25,\'Books:\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(209,1,26,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(210,2,26,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(211,4,26,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(212,6,26,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(213,7,26,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(214,8,26,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(215,9,26,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(216,10,26,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(217,12,26,\'O\\\'Reilly\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(218,13,26,\'1996\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(219,14,26,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(220,15,26,\'2\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(221,16,26,\'Programming Perl\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(222,17,26,\'1565921496\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(223,18,26,\'Larry Wall, Tom Christiansen, Randal L. Schwartz\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(224,20,26,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(225,21,26,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(226,22,26,\'11\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(227,23,26,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(228,24,26,\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(229,1,27,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(230,2,27,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(231,4,27,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(232,6,27,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(233,7,27,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(234,8,27,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(235,9,27,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(236,10,27,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(237,12,27,\'O\\\'Reilly\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(238,13,27,\'1999\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(239,14,27,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(240,15,27,\'1\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(241,16,27,\'Learning Red Hat Linux\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(242,17,27,\'1565926277\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(243,18,27,\'Bill McCarty\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(244,20,27,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(245,21,27,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(246,22,27,\'8\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(247,23,27,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(248,24,27,\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(249,1,28,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(250,2,28,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(251,4,28,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(252,6,28,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(253,7,28,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(254,8,28,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(255,9,28,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(256,10,28,\'An introductory text on using and managing a Linux machine\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(257,12,28,\'O\\\'Reilly\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(258,13,28,\'1999\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(259,14,28,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(260,15,28,\'2\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(261,16,28,\'Linux in a Nutshell\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(262,17,28,\'156592-5858\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(263,18,28,\'Ellen Siever\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(264,20,28,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(265,21,28,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(266,22,28,\'9\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(267,23,28,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(268,24,28,\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(269,1,29,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(270,2,29,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(271,4,29,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(272,6,29,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(273,7,29,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(274,8,29,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(275,9,29,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(276,10,29,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(277,12,29,\'O\\\'Reilly\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(278,13,29,\'1999\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(279,14,29,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(280,15,29,\'1\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(281,16,29,\'MySQL and mSQL\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(282,17,29,\'1565924347\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(283,18,29,\'Randy Jay Yarger, George Reese, Tim King\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(284,20,29,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(285,21,29,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(286,22,29,\'7\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(287,23,29,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(288,24,29,\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(289,1,30,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(290,2,30,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(291,4,30,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(292,6,30,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(293,7,30,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(294,8,30,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(295,9,30,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(296,10,30,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(297,12,30,\'O\\\'Reilly\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(298,13,30,\'1998\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(299,14,30,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(300,15,30,\'1\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(301,16,30,\'Mastering Regular Expressions\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(302,17,30,\'1565922573\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(303,18,30,\'Jeffery E.F. Friedl\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(304,20,30,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(305,21,30,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(306,22,30,\'10\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(307,23,30,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(308,24,30,\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(309,50,31,\'Online resources:\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(310,32,32,\'sponsored by Red Hat\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(311,33,32,\'http://fedoraproject.org/\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(312,34,32,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(313,35,32,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(314,36,32,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(315,37,32,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(316,38,32,\'Fedora Project\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(317,39,32,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(318,42,32,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(319,43,32,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(320,44,32,\'14\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(321,45,32,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(322,46,32,\'N\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(323,47,33,\'X\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(324,48,33,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(325,49,33,\'Sub-list\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(326,82,34,\'2008\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(327,25,35,\'2008\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(328,26,35,\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(329,27,35,\'Demonstration sublist\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(330,29,35,\'0\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(331,30,35,\'08LBX124\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(332,113,36,\'Dr Cool\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(333,114,36,\'Demonstration sublist Main Reading List\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(334,28,35,\'Dr Cool\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'); ', '/*!40000 ALTER TABLE `data_element` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `data_type` ', '-- ', 'LOCK TABLES `data_type` WRITE; ', '/*!40000 ALTER TABLE `data_type` DISABLE KEYS */; ', 'INSERT INTO `data_type` (`id`, `data_type_group_id`, `rank`, `name`, `repeatable`, `default_value`, `size`, `edit_representation`, `validation_pattern`, `created_by`, `created_time`, `modified_by`, `modified_time`) VALUES (1,1,6,\'Indicative\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(2,1,1,\'Long Loan\',\'N\',NULL,10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(3,1,9,\'Private Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(4,1,5,\'Keytext\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(5,1,4,\'Reference\',\'N\',NULL,10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(6,1,3,\'Short Loan\',\'N\',NULL,10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(7,1,2,\'Week Loan\',\'N\',NULL,10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(8,1,8,\'E-Book\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(9,1,7,\'Recommended for Purchase\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(10,2,9,\'Public Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(11,2,8,\'URL\',\'N\',NULL,1024,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(12,2,6,\'Publisher\',\'N\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(13,2,7,\'Publication Date\',\'N\',NULL,50,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(14,2,4,\'Volume\',\'N\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(15,2,5,\'Edition\',\'N\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(16,2,2,\'Title\',\'N\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(17,2,1,\'ISBN\',\'N\',NULL,25,\'input text\',\'^(\\\\d{3}){0,1}\\\\d{9}[\\\\dX]$\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(18,2,3,\'Author\',\'Y\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(20,3,1,\'Held by Library\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(21,3,2,\'Will not purchase\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(19,3,3,\'Librarian Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(23,3,4,\'Out of print\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(24,3,5,\'OpenURL\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(22,3,6,\'Old LORLS material ID\',\'N\',NULL,10,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(25,4,5,\'Year\',\'N\',NULL,4,\'input text\',\'\\\\d\\\\d\\\\d\\\\d\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(26,4,4,\'Semester\',\'N\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(27,4,2,\'Module Name\',\'N\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(28,4,3,\'Module Tutor\',\'Y\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(29,4,6,\'Student Numbers\',\'N\',\'0\',10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(30,4,1,\'Module Code\',\'N\',NULL,10,\'input text\',\'dd[A-Z][A-Z][ABCPX]ddd\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(31,5,1,\'Sub-Heading Text\',\'N\',NULL,1024,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(32,6,8,\'Public Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(33,6,1,\'URL\',\'N\',NULL,1024,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(34,6,6,\'Publisher\',\'N\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(35,6,7,\'Date Accessed\',\'N\',NULL,50,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(38,6,2,\'Title\',\'N\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(39,6,3,\'Author\',\'Y\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(40,7,7,\'Private Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(41,8,6,\'Librarian Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(42,8,1,\'Held by Library\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(43,8,2,\'Will not purchase\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(44,8,3,\'Old LORLS material ID\',\'N\',NULL,10,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(45,8,4,\'Out of print\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(46,8,5,\'OpenURL\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(47,9,1,\'Stage Code\',\'N\',NULL,1,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(48,9,3,\'Stage Description\',\'N\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(49,9,2,\'Stage Name\',\'N\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(50,10,1,\'Public Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(51,11,1,\'Private Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(52,12,6,\'Indicative\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(53,12,1,\'Long Loan\',\'N\',NULL,10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(54,12,9,\'Private Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(55,12,5,\'Keytext\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(56,12,4,\'Reference\',\'N\',NULL,10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(57,12,3,\'Short Loan\',\'N\',NULL,10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(58,12,2,\'Week Loan\',\'N\',NULL,10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(59,12,8,\'E-Book\',\'N\',NULL,1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(60,12,7,\'Recommended for Purchase\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(61,13,12,\'Public Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(62,13,11,\'URL\',\'N\',NULL,1024,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(63,13,4,\'ISSN\',\'N\',NULL,25,\'input text\',\'^\\\\d{4}\\\\-\\\\d{3}[\\\\dX]$\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(64,13,9,\'Publisher\',\'N\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(65,13,10,\'Publication Date\',\'N\',NULL,50,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(66,13,6,\'Volume\',\'N\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(67,13,8,\'Pages\',\'N\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(68,13,1,\'Article Title\',\'N\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(69,13,7,\'Issue\',\'N\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(70,13,3,\'Journal Title\',\'N\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(71,13,2,\'Author\',\'Y\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(72,14,6,\'Librarian Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(73,14,1,\'Held by Library\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(74,14,2,\'Will not purchase\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(75,14,3,\'Old LORLS material ID\',\'N\',NULL,10,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(76,14,4,\'Out of print\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(77,14,5,\'OpenURL\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(78,15,4,\'Department Logo URL\',\'N\',NULL,100,\'input text\',\'http://(.+)/(.*)\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(79,15,1,\'Department Code\',\'Y\',NULL,2,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(80,15,2,\'Department Name\',\'N\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(81,15,3,\'Department URL\',\'N\',NULL,100,\'input text\',\'http://(.+)/(.*)\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(82,16,1,\'Year\',\'N\',NULL,4,\'input text\',\'\\\\d\\\\d\\\\d\\\\d\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(83,17,5,\'Indicative\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(84,17,1,\'Long Loan\',\'N\',NULL,10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(85,17,9,\'Private Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(86,17,6,\'Keytext\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(87,17,4,\'Reference\',\'N\',NULL,10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(88,17,3,\'Short Loan\',\'N\',NULL,10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(89,17,2,\'Week Loan\',\'N\',NULL,10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(90,17,8,\'E-Book\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(91,17,7,\'Recommended for Purchase\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(92,18,12,\'Public Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(93,18,11,\'URL\',\'N\',NULL,1024,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(94,18,8,\'Publisher\',\'N\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(95,18,9,\'Publication Date\',\'N\',NULL,50,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(96,18,2,\'Part Author\',\'Y\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(97,18,7,\'Volume\',\'N\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(98,18,1,\'Part Title\',\'N\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(99,18,10,\'Pages\',\'N\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(100,18,6,\'Edition\',\'N\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(101,18,4,\'Title\',\'N\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(102,18,3,\'ISBN\',\'N\',NULL,25,\'input text\',\'^(\\\\d{3}){0,1}\\\\d{9}[\\\\dX]$\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(103,18,5,\'Author\',\'Y\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(104,19,6,\'Librarian Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(105,19,1,\'Held by Library\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(106,19,2,\'Will not purchase\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(107,19,3,\'Old LORLS material ID\',\'N\',NULL,10,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(108,19,4,\'Out of print\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(109,19,5,\'OpenURL\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(110,20,2,\'Institution URL\',\'N\',NULL,100,\'input text\',\'http://(.+)/(.*)\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(111,20,1,\'Institution Name\',\'N\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(112,20,3,\'Institution Logo URL\',\'N\',NULL,100,\'input text\',\'http://(.+)/(.*)\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(113,21,2,\'Reading List Tutor\',\'Y\',NULL,10,\'input text\',\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(114,21,1,\'Reading List Name\',\'N\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(115,22,5,\'Indicative\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(116,22,1,\'Long Loan\',\'N\',NULL,10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(117,22,9,\'Private Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(118,22,6,\'Keytext\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(119,22,4,\'Reference\',\'N\',NULL,10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(120,22,3,\'Short Loan\',\'N\',NULL,10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(121,22,2,\'Week Loan\',\'N\',NULL,10,\'input text\',\'\\\\d+\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(122,22,8,\'E-Book\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(123,22,7,\'Recommended for Purchase\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(124,23,9,\'Public Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(125,23,8,\'URL\',\'N\',NULL,1024,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(126,23,1,\'ISSN\',\'N\',NULL,25,\'input text\',\'^\\\\d{4}\\\\-\\\\d{3}[\\\\dX]$\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(127,23,7,\'Publisher\',\'N\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(128,23,6,\'Publication Date\',\'N\',NULL,50,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(129,23,4,\'Volume\',\'N\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(130,23,5,\'Issue\',\'N\',NULL,100,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(131,23,2,\'Journal Title\',\'N\',NULL,255,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(132,24,5,\'Librarian Note\',\'Y\',NULL,1024,\'textarea\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(133,24,1,\'Held by Library\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(134,24,2,\'Will not purchase\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(135,24,6,\'Old LORLS material ID\',\'N\',NULL,10,\'input text\',NULL,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(136,24,3,\'Out of print\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(137,24,4,\'OpenURL\',\'N\',\'N\',1,\'checkbox\',\'Y\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'); ', '/*!40000 ALTER TABLE `data_type` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `data_type_group` ', '-- ', 'LOCK TABLES `data_type_group` WRITE; ', '/*!40000 ALTER TABLE `data_type_group` DISABLE KEYS */; ', 'INSERT INTO `data_type_group` (`id`, `structural_unit_type_id`, `title`, `rank`, `created_by`, `created_time`, `modified_by`, `modified_time`) VALUES (1,1,\'Academic Recommendations\',2,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(2,1,\'General Information\',1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(3,1,\'Library Use Only\',3,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(4,2,\'Module Details\',1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(5,3,\'Content\',1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(6,4,\'General Information\',1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(7,4,\'Private Notes\',3,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(8,4,\'Library Use Only\',2,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(9,5,\'Stage Details\',1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(10,6,\'Public Notes\',1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(11,6,\'Private Notes\',2,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(12,7,\'Academic Recommendations\',2,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(13,7,\'General Information\',1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(14,7,\'Library Use Only\',3,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(15,8,\'Department Details\',1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(16,9,\'Year Details\',1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(17,10,\'Academic Recommendations\',2,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(18,10,\'General Information\',1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(19,10,\'Library Use Only\',3,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(20,11,\'Institutional Details\',1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(21,12,\'Reading List Details\',1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(22,13,\'Academic Recommendations\',2,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(23,13,\'General Information\',1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(24,13,\'Library Use Only\',3,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'); ', '/*!40000 ALTER TABLE `data_type_group` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `display_format` ', '-- ', 'LOCK TABLES `display_format` WRITE; ', '/*!40000 ALTER TABLE `display_format` DISABLE KEYS */; ', '/*!40000 ALTER TABLE `display_format` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `editing_event` ', '-- ', 'LOCK TABLES `editing_event` WRITE; ', '/*!40000 ALTER TABLE `editing_event` DISABLE KEYS */; ', '/*!40000 ALTER TABLE `editing_event` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `format_type` ', '-- ', 'LOCK TABLES `format_type` WRITE; ', '/*!40000 ALTER TABLE `format_type` DISABLE KEYS */; ', 'INSERT INTO `format_type` (`id`, `name`, `created_by`, `created_time`, `modified_by`, `modified_time`) VALUES (1,\'HTML\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(2,\'banner\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(3,\'breadcrumb\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(4,\'displaychildren\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(5,\'childHTML\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(6,\'moodle\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(7,\'Editor\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(8,\'BibTeX\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(9,\'XMLEditor\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'); ', '/*!40000 ALTER TABLE `format_type` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `import_format` ', '-- ', 'LOCK TABLES `import_format` WRITE; ', '/*!40000 ALTER TABLE `import_format` DISABLE KEYS */; ', '/*!40000 ALTER TABLE `import_format` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `priority` ', '-- ', 'LOCK TABLES `priority` WRITE; ', '/*!40000 ALTER TABLE `priority` DISABLE KEYS */; ', 'INSERT INTO `priority` (`id`, `value`, `name`, `created_by`, `created_time`, `modified_by`, `modified_time`) VALUES (1,0,\'Guests\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(7,255,\'Sysadmins\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(4,180,\'Tutors\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(6,200,\'Librarians\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(5,190,\'Library Assistants\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(2,1,\'Registered Users\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(3,170,\'Support Staff\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'); ', '/*!40000 ALTER TABLE `priority` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `structural_unit` ', '-- ', 'LOCK TABLES `structural_unit` WRITE; ', '/*!40000 ALTER TABLE `structural_unit` DISABLE KEYS */; ', 'INSERT INTO `structural_unit` (`id`, `structural_unit_type_id`, `deleted`, `state`, `created_by`, `created_time`, `modified_by`, `modified_time`) VALUES (1,11,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(2,8,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(3,5,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(4,9,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(5,2,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(6,12,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(7,6,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(8,1,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(9,6,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(10,10,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(11,6,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(12,1,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(13,6,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(14,7,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(15,7,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(16,6,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(17,1,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(18,6,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(19,1,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(20,7,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(21,6,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(22,2,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(23,12,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(24,6,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(25,6,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(26,1,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(27,1,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(28,1,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(29,1,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(30,1,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(31,6,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(32,4,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(33,5,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(34,9,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(35,2,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(36,12,\'N\',\'published\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'); ', '/*!40000 ALTER TABLE `structural_unit` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `structural_unit_link` ', '-- ', 'LOCK TABLES `structural_unit_link` WRITE; ', '/*!40000 ALTER TABLE `structural_unit_link` DISABLE KEYS */; ', 'INSERT INTO `structural_unit_link` (`id`, `parent_su_id`, `child_su_id`, `rank`, `created_by`, `created_time`, `modified_by`, `modified_time`) VALUES (1,1,2,0,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(2,2,3,0,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(3,3,4,0,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(4,4,5,0,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(5,5,6,0,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(6,6,7,1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(7,6,8,2,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(8,6,9,3,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(9,6,10,4,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(10,6,11,5,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(11,6,12,6,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(12,6,13,7,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(13,6,14,8,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(14,6,15,9,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(15,6,16,10,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(16,6,17,11,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(17,6,18,13,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(18,6,19,14,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(19,6,20,15,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(20,6,21,16,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(21,4,22,0,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(22,22,23,0,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(23,23,24,1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(24,23,25,2,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(25,23,26,3,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(26,23,27,4,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(27,23,28,5,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(28,23,29,6,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(29,23,30,7,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(30,23,31,8,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(31,23,32,9,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(32,2,33,0,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(33,33,34,0,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(34,34,35,0,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(35,35,36,0,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'); ', '/*!40000 ALTER TABLE `structural_unit_link` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `structural_unit_type` ', '-- ', 'LOCK TABLES `structural_unit_type` WRITE; ', '/*!40000 ALTER TABLE `structural_unit_type` DISABLE KEYS */; ', 'INSERT INTO `structural_unit_type` (`id`, `name`, `created_by`, `created_time`, `modified_by`, `modified_time`) VALUES (1,\'Book\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(2,\'Module\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(3,\'Sub-Heading\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(4,\'Electronic Resource\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(5,\'Stage\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(6,\'Note\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(7,\'Journal Article\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(8,\'Department\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(9,\'Year\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(10,\'Book Chapter\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(11,\'Institution\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(12,\'Reading List\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(13,\'Journal\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'); ', '/*!40000 ALTER TABLE `structural_unit_type` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `structural_unit_type_link` ', '-- ', 'LOCK TABLES `structural_unit_type_link` WRITE; ', '/*!40000 ALTER TABLE `structural_unit_type_link` DISABLE KEYS */; ', 'INSERT INTO `structural_unit_type_link` (`id`, `name`, `parent_su_type_id`, `child_su_type_id`, `created_by`, `created_time`, `modified_by`, `modified_time`) VALUES (1,\'Reading List is parent of Book\',12,1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(2,\'Year is parent of Module\',9,2,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(3,\'Stage is parent of Module\',5,2,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(4,\'Reading List is parent of Sub-Heading\',12,3,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(5,\'Reading List is parent of Electronic Resource\',12,4,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(6,\'Department is parent of Stage\',8,5,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(7,\'Reading List is parent of Note\',12,6,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(8,\'Reading List is parent of Journal Article\',12,7,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(9,\'Institution is parent of Department\',11,8,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(10,\'Stage is parent of Year\',5,9,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(11,\'Reading List is parent of Book Chapter\',12,10,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(12,\'Module is parent of Reading List\',2,12,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(13,\'Reading List is parent of Reading List\',12,12,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(14,\'Reading List is parent of Journal\',12,13,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'); ', '/*!40000 ALTER TABLE `structural_unit_type_link` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `translation` ', '-- ', 'LOCK TABLES `translation` WRITE; ', '/*!40000 ALTER TABLE `translation` DISABLE KEYS */; ', '/*!40000 ALTER TABLE `translation` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `user` ', '-- ', 'LOCK TABLES `user` WRITE; ', '/*!40000 ALTER TABLE `user` DISABLE KEYS */; ', 'INSERT INTO `user` (`id`, `username`, `fullname`, `email`, `created_by`, `created_time`, `modified_by`, `modified_time`) VALUES (1,\'guest\',\'Guest User\',\'\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(2,\'admin\',\'\',\'admin@example.ac.uk\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(3,\'aker\',\'Aker Demic\',\'aker@example.ac.uk\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(4,\'libby\',\'Libby Rarian\',\'libby@example.ac.uk\',\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'); ', '/*!40000 ALTER TABLE `user` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `user_usergroup_link` ', '-- ', 'LOCK TABLES `user_usergroup_link` WRITE; ', '/*!40000 ALTER TABLE `user_usergroup_link` DISABLE KEYS */; ', 'INSERT INTO `user_usergroup_link` (`id`, `user_id`, `usergroup_id`, `created_by`, `created_time`, `modified_by`, `modified_time`) VALUES (1,1,1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(2,2,3,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(3,3,5,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(4,4,7,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(5,4,11,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(6,3,9,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(7,3,13,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(8,4,2,\'apache\',\'2012-11-13 14:17:42\',\'apache\',\'2012-11-13 14:17:42\'); ', '/*!40000 ALTER TABLE `user_usergroup_link` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '-- ', '-- Dumping data for table `usergroup` ', '-- ', 'LOCK TABLES `usergroup` WRITE; ', '/*!40000 ALTER TABLE `usergroup` DISABLE KEYS */; ', 'INSERT INTO `usergroup` (`id`, `group_name`, `priority_id`, `created_by`, `created_time`, `modified_by`, `modified_time`) VALUES (1,\'Guests\',1,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(2,\'Registered Users\',2,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(3,\'Sysadmins\',7,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(4,\'08LBA124 Support Staff\',3,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(5,\'08LBA124 Tutors\',4,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(6,\'08LBA124 Library Assistants\',5,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(7,\'08LBA124 Librarians\',6,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(8,\'08LBA001 Support Staff\',3,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(9,\'08LBA001 Tutors\',4,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(10,\'08LBA001 Library Assistants\',5,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(11,\'08LBA001 Librarians\',6,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(12,\'08LBX124 Support Staff\',3,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(13,\'08LBX124 Tutors\',4,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(14,\'08LBX124 Library Assistants\',5,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'),(15,\'08LBX124 Librarians\',6,\'admin\',\'2012-11-12 16:46:55\',\'admin\',\'2012-11-12 16:46:55\'); ', '/*!40000 ALTER TABLE `usergroup` ENABLE KEYS */; ', 'UNLOCK TABLES; ', '/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; ', '/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; ', '/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; ', '/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; ', '/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; ', '/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; ', '/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; ', '/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; ', '-- Dump completed on 2012-11-19 9:57:18 ', ]; my $stage = ''; my $cpan_install_dir = ''; eval {use CGI qw/:standard/;}; # Annoyingly the location of the MySQL daemon's socket moves about between # distributions, so we need to try to track it down! my $mysqld_sock = ''; if(-f '/var/lib/mysql/mysql.sock') { $mysqld_sock = '/var/lib/mysql/mysql.sock'; } elsif(-f '/var/run/mysqld/mysqld.sock') { $mysqld_sock = '/var/run/mysqld/mysqld.sock'; } if($@) { NoCGIModule(); } else { my $query = new CGI; $cpan_install_dir = $query->param('cpan_install_dir') || '/usr/local/LUMPCPAN'; $ENV{'PERL5LIB'} = "$cpan_install_dir/lib/perl5:$cpan_install_dir/lib"; @INC = ("$cpan_install_dir/.cpan/",@INC); @INC = ("$cpan_install_dir/lib/perl5/",@INC); eval "use lib $cpan_install_dir;"; $stage = $query->param('stage') || ''; my $install_what = $query->param('install_what') || ''; if($install_what eq '') { AskWhatToInstall($query); } warn "In stage $stage\n"; if($stage eq STAGE_CHECK_MODULES) { CheckModules($query); } if($stage eq STAGE_CPAN_DIR) { AskForCPANDir($query); } elsif($stage eq STAGE_CPAN_INSTALL) { InstallCPAN($query); } elsif($stage eq STAGE_DB_DETAILS) { AskForDBDetails($query); } elsif($stage eq STAGE_DB_CHECK) { CheckDB('LUMP',$query); } elsif($stage eq STAGE_DB_CREATE) { CreateDB('LUMP',$query); } elsif($stage eq STAGE_DB_SCHEMA) { CheckDBSchema('LUMP',$query); } elsif($stage eq STAGE_DB_POPULATE) { PopulateDB($query); } elsif($stage eq STAGE_LC_DB_CHECK) { CheckDB('LOANCACHE',$query); } elsif($stage eq STAGE_LC_DB_CREATE) { CreateDB('LOANCACHE',$query); } elsif($stage eq STAGE_LC_DB_SCHEMA) { CheckDBSchema('LOANCACHE',$query); } elsif($stage eq STAGE_ASK_CODE_DETAILS) { AskForLUMPCodeDetails($query); } elsif($stage eq STAGE_CODE_INSTALL) { LUMPCodeInstall($query); } else { print STDOUT $query->header(); print STDOUT $query->start_html('LUMP Installation Error'); print STDOUT $query->h1('LUMP Installation Error'); print STDOUT $query->p("Sorry, stage '",em(escapeHTML($stage)),"' is not recognised."); print STDOUT $query->p("Please start again."); print STDOUT $query->end_html; } } exit; sub AskWhatToInstall { my $query = shift; print STDOUT $query->header(); print STDOUT $query->start_html('LUMP Installation: Choose What to Install'); print STDOUT $query->h1('LUMP Installation: Choose What to Install'); print STDOUT $query->p('This installation system guides you through the installation of the Loughborough Universal Metadata Platform (LUMP). LUMP is a metadata platform intended (initially at least) to support reading lists in an academic library environment.'); print STDOUT $query->p('The first question to ask is which parts of the system you would like this installer to install. There is the backend LUMP database and access API (the "LUMP backend") and the AJAX Client for LUMP ("CLUMP"). You can choose to install either or both of these - if you don\'t know what you want, accept the default of "All".'); print STDOUT $query->start_form(); print STDOUT "connect(\"DBI:mysql:database=mysql;mysql_socket=$mysqld_sock\",'root','$db_root_pw',{ ReconnectRetries => 500, ReconnectInterval => 1, ReconnectTimeout => 30, TxnRetries => 3, });"; if($@) { # Can't log in with the specified root password print STDOUT $query->header(); print STDOUT $query->start_html('LUMP Installation: Root Password Fail'); print STDOUT $query->h1('LUMP Installation: Root Password Fail'); print STDOUT $query->p('The database root password does not appear to work.'.$@); print STDOUT $query->p('Please give the correct ' . em('database') . ' (not system!) root password to let this ' . 'installation script create the database for ' . 'you.'); print STDOUT $query->start_form(); if($whatdb eq 'LUMP') { print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT $query->p('Database Root Password:' . $query->password_field(-name => 'db_root_pw', -value => '', -size => 20, ) ); print STDOUT $query->submit(); print STDOUT $query->end_form(); print STDOUT $query->end_html; exit; } # Create the database my $sql = "create database $db_name ". 'DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci'; my $sh = $dbh->prepare($sql); warn "SQL = $sql\n"; eval {$sh->execute;}; warn "Error: $@\n" if($@); $sh->finish; $sql = "GRANT SELECT, INSERT, UPDATE, ALTER, CREATE ON $db_name.* TO '$db_acct'\@'localhost' IDENTIFIED BY '$db_passwd'"; warn "SQL = $sql\n"; $sh = $dbh->prepare($sql); eval {$sh->execute;}; warn "Error: $@\n" if($@); $sh->finish; eval "\$dbh = DBIx::RetryOverDisconnects->connect(\"DBI:mysql:database=$db_name;mysql_socket=$mysqld_sock\",'$db_acct','$db_passwd',{ ReconnectRetries => 500, ReconnectInterval => 1, ReconnectTimeout => 30, TxnRetries => 3, });"; if($@) { # Failed to create either the database or the user account for some # reason. Barf and tell the user to check the database access manually. print STDOUT $query->header(); print STDOUT $query->start_html('LUMP Installation: Database Creation Failed'); print STDOUT $query->h1('LUMP Installation: Database Creation Failed'); print STDOUT $query->p('Sorry, this script has failed to create the MySQL database (possible reason: '.$@.').'); print STDOUT $query->p('Please try to create the database and access account manually and then rerun this script.'); print STDOUT $query->end_html; exit; } eval "\$dbh = DBIx::RetryOverDisconnects->connect(\"DBI:mysql:database=$db_name;mysql_socket=$mysqld_sock\",'root','$db_root_pw',{ ReconnectRetries => 500, ReconnectInterval => 1, ReconnectTimeout => 30, TxnRetries => 3, });"; if($whatdb eq 'LUMP') { foreach my $create_sql (@{$schema}) { eval {$dbh->do($create_sql);}; warn "--\nError: $@\n" if($@); } foreach my $create_sql (@{$indexes}) { eval {$dbh->do($create_sql);}; warn "--\nError: $@\n" if($@); } } else { foreach my $create_sql (@{$loan_cache_schema}) { eval {$dbh->do($create_sql);}; warn "--\nError: $@\n" if($@); } } # print STDOUT $query->header(); # print STDOUT $query->start_html('LUMP Installaton: Database Created.'); # print STDOUT $query->h1('LUMP Installation: Database Created'); PopulateDB($query); } sub CheckDB { my $whatdb = shift; my $query = shift; my $db_name = $query->param('db_name') || 'LUMP'; my $db_host = $query->param('db_host') || 'localhost'; my $db_acct = $query->param('db_acct') || 'LUMP'; my $db_passwd = $query->param('db_passwd') || ''; if($whatdb eq 'LOANCACHE') { $db_name = $query->param('lc_db_name') || 'LoanCache'; $db_host = $query->param('lc_db_host') || 'localhost'; $db_acct = $query->param('lc_db_acct') || 'LoanCache'; $db_passwd = $query->param('lc_db_passwd') || ''; } my $dbh; my $install_what = $query->param('install_what') || 'All'; my $need_root_account = 0; eval "use DBIx::RetryOverDisconnects;"; eval "\$dbh = DBIx::RetryOverDisconnects->connect(\"DBI:mysql:database=$db_name;mysql_socket=$mysqld_sock\",'$db_acct','$db_passwd',{ ReconnectRetries => 500, ReconnectInterval => 1, ReconnectTimeout => 30, TxnRetries => 3, });"; if($@) { $need_root_account = 1; } else { # Check that user has ability to create/alter table definitions my $sql = 'SHOW GRANTS FOR CURRENT_USER'; my $sth = $dbh->prepare($sql); $sth->execute; my $has_create = 0; my $has_alter = 0; while(my $row = $sth->fetchrow_hashref) { foreach my $grantkeys (keys %{$row}) { if($row->{$grantkeys} =~ /GRANT ALL PRIVILEGES/) { $has_create = 1; $has_alter = 1; } elsif($row->{$grantkeys} =~ /GRANT ([A-Z, ]+) ON/) { my $grants = $1; foreach my $grant (split(', ', $grants)) { if($grant eq 'CREATE') { $has_create = 1; } elsif($grant eq 'ALTER') { $has_alter = 1; } } } } } if(!$has_alter || !$has_create) { $need_root_account = 1; } } if($need_root_account) { # Database doesn't exist or we can not log in with this username # so offer to create it for the user. print STDOUT $query->header(); print STDOUT $query->start_html('LUMP Installation: Database Creation/Alteration Rights '); print STDOUT $query->h1('LUMP Installation: Database Creation/Alteration Rights'); print STDOUT $query->p("Don't have rights to create/alter the database '$db_name' using the user '$db_acct'"); print STDOUT $query->p('The database \''.em(escapeHTML($db_name)) . '\' does not seem to be accessible or we ' . 'can not create/update table definitions.'); print STDOUT $query->p('You can either create this by hand and then '. 'rerun this script, or you can specify the ' . em('database') . ' (not system) root password to let this ' . 'installation script create or update '. 'the database for you.'); print STDOUT $query->start_form(); if($whatdb eq 'LUMP') { print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT $query->p('Database Root Password:' . $query->password_field(-name => 'db_root_pw', -value => '', -size => 20, ) ); print STDOUT $query->submit(); print STDOUT $query->end_form(); print STDOUT $query->end_html; exit; } CheckDBSchema($whatdb, $query); } sub CheckDBSchema { my $whatdb = shift; my $query = shift; my $fix = $query->param('fix') || 0; my $db_name = $query->param('db_name') || 'LUMP'; my $db_host = $query->param('db_host') || 'localhost'; my $db_acct = $query->param('db_acct') || 'LUMP'; my $db_passwd = $query->param('db_passwd') || ''; my $this_schema = $schema; if($whatdb eq 'LOANCACHE') { $db_name = $query->param('lc_db_name') || 'LoanCache'; $db_host = $query->param('lc_db_host') || 'localhost'; $db_acct = $query->param('lc_db_acct') || 'LoanCache'; $db_passwd = $query->param('lc_db_passwd') || ''; $this_schema = $loan_cache_schema; } my $install_what = $query->param('install_what') || 'All'; my $dbh; eval "use DBIx::RetryOverDisconnects;"; eval "\$dbh = DBIx::RetryOverDisconnects->connect(\"DBI:mysql:database=$db_name;mysql_socket=$mysqld_sock\",'$db_acct','$db_passwd',{ ReconnectRetries => 500, ReconnectInterval => 1, ReconnectTimeout => 30, TxnRetries => 3, });"; my @missing_tables; my @ok_tables; my @outdated_tables; my @fixed_tables; my $seen_tables; foreach my $entry (@$this_schema) { $entry =~ /create table (.+) \(/i; my $table_name = $1; $table_name =~ s/[^A-Za-z0-9\_]//g; next if($seen_tables->{$table_name}); $seen_tables->{$table_name} = 1; # Check if the table is present. If it isn't, and the user has given # us the fix instruction, go and create the table. my $sth = $dbh->table_info('', '', $table_name,'TABLE'); my $table_info = $sth->fetchall_arrayref; my $ok = 1; my $table_present = 0; if(ref $table_info eq 'ARRAY') { foreach my $table_entry (@{$table_info}) { if(@{$table_entry}[2] eq $table_name) { $table_present = 1; last; } } } if(!$table_present) { if($fix) { eval {$dbh->do($entry);}; if(!$@) { warn "Error creating table $table_name: $@\n"; push @fixed_tables, $table_name; } else { push @missing_tables, $table_name; } } else { push @missing_tables, $table_name; } } else { # The table exists, so now we need to check that the columns are # all present and correct. # Not everything seems to support column_info so we have to # trap errors with an eval. $sth = $dbh->column_info(undef, undef, $table_name, '%' );; my $column_info; if($@) { @$column_info = (); } else { $column_info = $sth->fetchall_arrayref; } my $last_column = ''; foreach my $our_column (split("\n", $entry)) { next if($our_column =~ /create table/i); next if($our_column =~ /\);/); next if($our_column =~ /^\/*/); next if($our_column =~ /^\s*PRIMARY KEY /); next if($our_column =~ /^\s*KEY /); $our_column =~ /\s*([a-z_0-9]+)\s+(.+)$/; my $column_name = $1; $column_name =~ s/[^A-Za-z0-9\_]//g; my $column_def = $2; my $our_data_type = undef; my $our_nullable = 'YES'; my $our_default_value = ''; # Extract column definitions from our table declaration if($column_def =~ /(varchar\(\d+\))/i || $column_def =~ /(enum\(.+\))/i || $column_def =~ /(datetime)/i || $column_def =~ /(int)/i || $column_def =~ /(text)/i) { $our_data_type = $1; } if($our_data_type eq 'int') { $our_data_type = 'int(11)'; } if($our_data_type =~ /^enum/i) { $our_data_type =~ s/',\s*'/','/g; } if($column_def =~ /not null/i) { $our_nullable = 'NO'; } if($column_def =~ /default '(.+)'/i) { $our_default_value = $1; } if($column_def =~ /default (\d+)/i) { $our_default_value = $1; } my $column_pos = -1; my $this_pos = 0; foreach my $this_col_info (@$column_info) { if($this_col_info->[3] eq $column_name) { $column_pos = $this_pos; last; } $this_pos++; } if($column_pos == -1) { # The column is missing completely if($fix) { $our_column =~ s/,$//; my $sql = "alter table $table_name add column $our_column "; if($last_column ne '') { $sql .= "after $last_column)"; } else { $sql .= "first"; } warn "SQL = $sql\n"; $dbh->do($sql); push @fixed_tables, $table_name; } else { push @outdated_tables, $table_name; } } else { # The column is there, but check that it matches what we # want foreach my $column_info_row (@$column_info) { next if($column_info_row->[3] ne $column_name); my $default_value = $column_info_row->[12]; my $nullable = $column_info_row->[17]; my $data_type = $column_info_row->[37]; if($data_type ne $our_data_type) { warn "Column $column_name data type mismatch: $data_type vs $our_data_type\n"; $ok = 0; } if($nullable ne $our_nullable) { $ok = 0; } if($default_value ne $our_default_value) { warn "Column $column_name default mismatch: $default_value vs $our_default_value\n"; $ok = 0; } } if(!$ok && $fix) { my $sql = "alter table $table_name change column $column_name $our_column"; $sql =~ s/,$/ /; if($last_column ne '') { $sql .= "after $last_column"; } else { $sql .= "first"; } warn "SQL = $sql\n"; $dbh->do($sql); $ok = 1; push @fixed_tables, $table_name; } } $last_column = $column_name; } } if($ok) { push @ok_tables,$table_name; } else { push @outdated_tables,$table_name; } } if(($#missing_tables > -1) || ($#outdated_tables > -1)) { print STDOUT $query->header(); print STDOUT $query->start_html('LUMP Installation'); print STDOUT $query->h1('LUMP Installation - Database details'); print STDOUT $query->p("Doing the $whatdb database:"); if($#missing_tables > -1) { print STDOUT $query->p('The following tables are missing: '); print STDOUT $query->p(join(', ',@missing_tables)); } if($#outdated_tables > -1) { print STDOUT $query->p('The following tables are outdated: '); print STDOUT $query->p(join(', ',@outdated_tables)); } print STDOUT $query->p('You can either fix missing/outdated tables by hand, or click on the "Fix Tables" button below to allow this script to attempt to fix them for you. Its probably a good idea to make a back up of your current database before you do this, just to be on the safe side.'); print STDOUT $query->start_form(); print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT $query->submit(-value=>'Fix Tables'); print STDOUT $query->end_form(); print STDOUT $query->end_html; exit; } if($whatdb eq 'LUMP') { PopulateDB($query); } else { AskForLUMPCodeDetails($query); } } sub PopulateDB { my $query = shift; my $db_name = $query->param('db_name') || 'LUMP'; my $db_host = $query->param('db_host') || 'localhost'; my $db_acct = $query->param('db_acct') || 'LUMP'; my $db_passwd = $query->param('db_passwd') || ''; my $install_what = $query->param('install_what') || 'All'; # Check if there are already any structural units in the database. If there # are we'll assume we've just upgraded an existing LUMP installation so we # won't try to install any new data. If the structural_unit table is empty # then offer to either install some test data, let the user run the command # line importer manually or skip the test data installation my $dbh; eval "use DBIx::RetryOverDisconnects;"; eval "\$dbh = DBIx::RetryOverDisconnects->connect(\"DBI:mysql:database=$db_name;mysql_socket=$mysqld_sock\",'$db_acct','$db_passwd',{ ReconnectRetries => 500, ReconnectInterval => 1, ReconnectTimeout => 30, TxnRetries => 3, });"; my $sql = 'select count(id) from structural_unit'; my $sth = $dbh->prepare($sql); $sth->execute; my($rows) = $sth->fetchrow(); $sth->finish; if($rows == 0) { if($query->param('db_populate')) { my $sql = ''; foreach my $this_sql_line (@{$dummy_data}) { $sql .= $this_sql_line; if($this_sql_line =~ /;\s*$/) { eval {$dbh->do($sql);}; warn "Error in SQL: $sql\n" if($@); $sql = ''; } } } else { print STDOUT $query->header(); print STDOUT $query->start_html('LUMP Installation'); print STDOUT $query->h1('LUMP Installation - Populate Database'); print STDOUT $query->p('The database now exists on your server but it does not contain any data. You have a number of options for populating it. If you are an existing LORLS reading list user you can try running our command line import script. Alternatively you can ask this script to populate the database with a set of dummy test data that will allow you to try out the system by clicking on the "Install test data" button below. Lastly you can skip database population and just install the LUMP code, allowing you to populate the database by hand yourself by clicking on the "Skip test data" button.'); print STDOUT $query->start_form(); print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT $query->submit(-value=>'Install test data'); print STDOUT $query->end_form; print STDOUT $query->start_form(); print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT $query->submit(-value=>'Skip test data'); print STDOUT $query->end_form; print STDOUT $query->end_html; exit; } } CheckDB('LOANCACHE',$query); } sub AskForLUMPCodeDetails { my $query = shift; my $db_name = $query->param('db_name') || 'LUMP'; my $db_host = $query->param('db_host') || 'localhost'; my $db_acct = $query->param('db_acct') || 'LUMP'; my $db_passwd = $query->param('db_passwd') || ''; my $krb5_realm = $query->param('krb5_realm') || 'EXAMPLE.COM'; my $library_email = $query->param('library_email') || ''; my $lump_library_dir = $query->param('lump_library_dir') || ''; my $lump_source_url = $query->param('lump_source_url') || ''; my $lump_bin_dir = $query->param('lump_bin_dir') || ''; my $lump_cgi_dir = $query->param('lump_cgi_dir') || ''; my $lump_cgi_base_url = $query->param('lump_cgi_base_url') || ''; my $clump_cgi_dir = $query->param('clump_cgi_dir') || ''; my $clump_cgi_base_url = $query->param('clump_cgi_base_url') || ''; my $clump_html_dir = $query->param('clump_html_dir') || ''; my $clump_html_base_url = $query->param('clump_html_base_url') || ''; my $install_what = $query->param('install_what') || 'All'; if($lump_cgi_dir eq '') { $lump_cgi_dir = $0; $lump_cgi_dir =~ s/(.+)\/.+?$/$1/; } if($library_email eq '') { $library_email = 'library@EXAMPLE.COM'; } if($lump_cgi_base_url eq '') { $lump_cgi_base_url = $query->url(-absolute=>1); $lump_cgi_base_url =~ s/(.+)\/.+?$/$1/; $lump_cgi_base_url = "http://localhost$lump_cgi_base_url"; } if($clump_cgi_dir eq '') { $clump_cgi_dir = $0; $clump_cgi_dir =~ s/(.+)\/.+?$/$1\/CLUMP/; } if($clump_cgi_base_url eq '') { $clump_cgi_base_url = $query->url(-absolute=>1); $clump_cgi_base_url =~ s/(.+)\/.+?$/$1\/CLUMP/; $clump_cgi_base_url = "http://localhost$clump_cgi_base_url"; } if($clump_html_dir eq '') { $clump_html_dir = $0; $clump_html_dir =~ s/\/cgi-bin(.*)$/\/CLUMP/; $clump_html_dir =~ s!^/var/www/cgi-bin!/var/www/html!; # RedHat/CentOS $clump_html_dir =~ s!^/usr/lib!/var/www!; # Debian } if($clump_html_base_url eq '') { $clump_html_base_url = $query->url(-absolute=>1); $clump_html_base_url =~ s/\/cgi-bin(.*)$/\/CLUMP/; } if($lump_library_dir eq '') { $lump_library_dir = '/usr/local/LUMP'; } if($lump_bin_dir eq '') { $lump_bin_dir = "$lump_library_dir/bin"; } if((($install_what eq 'LUMP' || $install_what eq 'All') && (($lump_library_dir eq '') || ($lump_source_url eq '') || ($lump_bin_dir eq '') || ($lump_cgi_dir eq '') || (!-w $lump_library_dir) || (!-w $lump_bin_dir) || (!-w $lump_cgi_dir))) || (($install_what eq 'CLUMP' || $install_what eq 'All') && (($clump_cgi_base_url eq '') || ($clump_cgi_dir eq '') || ($clump_html_base_url eq '') || ($clump_html_dir eq '') || (!-w $clump_cgi_dir) || (!-w $clump_html_dir)) ) ) { my $selinuxwarning = ''; if(-x '/usr/sbin/selinuxenabled') { my $selinux_res = system('/usr/sbin/selinuxenabled'); if(!$selinux_res) { $selinuxwarning = $query->p({style => 'background-color:red'}, 'WARNING: You have SELinux enabled. Please ensure that you have configured it correctly to handle CGI scripts, or disable SELinux for HTTPD using a command such as "semanage permissive -a httpd_t".'); } } print STDOUT $query->header(); print STDOUT $query->start_html('LUMP Installation'); print STDOUT $query->h1('LUMP Installation - LUMP Code Installation Details'); print STDOUT $query->p('To install the LUMP code we now need to know a few things: where you would like the LUMP Perl library code to live (by default /usr/local/LUMP and it needs to be writable by the user that this script is running as), what CGI directory and path you wish to use for LUMP (by default the directory and path used to run this installer - the CGI directory needs to be writable by this script as well) and the remote server that you want to use to get the LUMP code from (by default one of the main distribution servers - unless you are stuck behind some sort of odd firewall or want to have a private distribution you should not need to change this).'); print $selinuxwarning; print STDOUT $query->start_form(); print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; print STDOUT ""; if($install_what eq 'LUMP' || $install_what eq 'All') { print STDOUT $query->h3('LUMP Backend API Code'); print STDOUT $query->p('LUMP Library Directory:' . $query->textfield(-name => 'lump_library_dir', -value => $lump_library_dir, -size => 20, ) ); if(!-w $lump_library_dir) { warn "Can't write to $lump_library_dir\n"; print $query->p($query->em({style => 'color:red'},"Can't write to $lump_library_dir\n")); } print STDOUT $query->p('LUMP Backend Binaries Directory:' . $query->textfield(-name => 'lump_bin_dir', -value => $lump_bin_dir, -size => 20, ) ); if(!-w $lump_bin_dir) { warn "Can't write to $lump_bin_dir\n"; print $query->p($query->em({style => 'color:red'},"Can't write to $lump_bin_dir\n")); } print STDOUT $query->p('LUMP CGI Directory:' . $query->textfield(-name => 'lump_cgi_dir', -value => $lump_cgi_dir, -size => 20, ) ); if(!-w $lump_cgi_dir) { warn "Can't write to $lump_cgi_dir\n"; print $query->p($query->em({style => 'color:red'},"Can't write to $lump_cgi_dir\n")); } print STDOUT $query->p('LUMP CGI Path:' . $query->textfield(-name => 'lump_cgi_base_url', -value => $lump_cgi_base_url, -size => 20, ) ); print STDOUT $query->p('CLUMP HTML Base URL:' . $query->textfield(-name => 'clump_html_base_url', -value => $clump_html_base_url, -size => 20, ) ); print STDOUT $query->p('Kerberos Realm (used for AD authentication):' . $query->textfield(-name => 'krb5_realm', -value => $krb5_realm, -size => 20, ) ); print STDOUT $query->p('Changes Script Target Email:' . $query->textfield(-name => 'changes_to_email', -value => 'rl-changes@library.example.com', -size => 30, ) ); print STDOUT $query->p('Email address LUMP script send from:' . $query->textfield(-name => 'lump_from_email', -value => 'readinglists@library.example.com', -size => 30, ) ); print STDOUT $query->p('URL of LMS script to get ISBN mappings:' . $query->textfield(-name => 'lms_get_isbn_map_url', -value => '', -size => 30, ) ); print STDOUT $query->p('URL of LMS script to get loan transactions:' . $query->textfield(-name => 'lms_get_loan_transaction_url', -value => '', -size => 30, ) ); } if($install_what eq 'CLUMP' || $install_what eq 'All') { print STDOUT $query->h3('CLUMP AJAX Client Code'); my $this_host = `hostname --fqdn`; chomp $this_host; print STDOUT $query->p('LUMP installation Base URL:' . $query->textfield(-name => 'clump_lump_base_url', -value => "$lump_cgi_base_url", -size => 20, )); print STDOUT $query->p('CLUMP CGI Directory:' . $query->textfield(-name => 'clump_cgi_dir', -value => $clump_cgi_dir, -size => 20, ) ); if(!-w $clump_cgi_dir) { warn "Can't write to $clump_cgi_dir\n"; print $query->p($query->em({style => 'color:red'},"Can't write to $clump_cgi_dir\n")); } print STDOUT $query->p('CLUMP CGI scripts Base URL:' . $query->textfield(-name => 'clump_cgi_base_url', -value => $clump_cgi_base_url, -size => 20, ) ); print STDOUT $query->p('CLUMP HTML Directory:' . $query->textfield(-name => 'clump_html_dir', -value => $clump_html_dir, -size => 20, ) ); if(!-w $clump_html_dir) { warn "Can't write to $clump_html_dir\n"; print $query->p($query->em({style => 'color:red'},"Can't write to $clump_html_dir\n")); } if($install_what eq 'CLUMP') { print STDOUT $query->p('CLUMP HTML Base URL:' . $query->textfield(-name => 'clump_html_base_url', -value => $clump_html_base_url, -size => 20, ) ); } print STDOUT $query->p('Library Feedback Email:' . $query->textfield(-name => 'library_email', -value => $library_email, -size => 20, ) ); print STDOUT $query->p('Library Management System Name:' . $query->textfield(-name => 'clump_lms_name', -value => 'Aleph', -size => 20, ) ); print STDOUT $query->p('Library Management System Host:' . $query->textfield(-name => 'clump_lms_host', -value => 'aleph.lboro.ac.uk', -size => 20, ) ); print STDOUT $query->p('Library Management System Z3950 Port:' . $query->textfield(-name => 'clump_lms_z3950_port', -value => '210', -size => 20, ) ); print STDOUT $query->p('Library Management System Z3950 Database:' . $query->textfield(-name => 'clump_lms_z3950_database', -value => 'lbo01', -size => 20, ) ); print STDOUT $query->p('Library Management System Lookups:' . $query->popup_menu(-name => 'clump_lms_lookup', -values => ['On','Off'], -default => 'On', ) ); print STDOUT $query->p('OpenURL Resolver Base URL:' . $query->textfield(-name => 'clump_openurl_resolver', -value => 'sfx.lboro.ac.uk', -size => 20, ) ); print STDOUT $query->p('Library Ex-Libris X Server Base URL (if used):' . $query->textfield(-name => 'clump_x_server_base_url', -value => '', -size => 20, ) ); print STDOUT $query->p('Library Ex-Libris X Server Username (if used):' . $query->textfield(-name => 'clump_x_server_username', -value => 'testuser', -size => 20, ) ); print STDOUT $query->p('Library Ex-Libris X Server Password (if used):' . $query->textfield(-name => 'clump_x_server_password', -value => 'testpass', -size => 20, ) ); print STDOUT $query->p('Library Ex-Libris X Server Bibliographic Library (if used):' . $query->textfield(-name => 'clump_x_server_biblio_library', -value => 'sam01', -size => 20, ) ); print STDOUT $query->p('Library Ex-Libris X Server Library (if used):' . $query->textfield(-name => 'clump_x_server_library', -value => 'sam01', -size => 20, ) ); print STDOUT $query->p('Library Ex-Libris X Server Admin Library (if used):' . $query->textfield(-name => 'clump_x_server_admin_library', -value => 'sam50', -size => 20, ) ); print STDOUT $query->p('Use Google Books thumbnails/previews:' . $query->popup_menu(-name => 'clump_google_books', -values => ['On','Off'], -default => 'On', ) ); print STDOUT $query->p('Local Control Number Length:' . $query->textfield(-name => 'local_control_number_length', -value => '9', -size => 3, ) ); print STDOUT $query->p('Local Control Number Prefix:' . $query->textfield(-name => 'local_control_number_prefix', -value => '', -size => 10, ) ); print STDOUT $query->p('User friend name for emails:' . $query->textfield(-name => 'mail_from_name', -value => 'Library Reading List System', -size => 40, ) ); print STDOUT $query->p('OPAC User Agent (can be used for OPAC Kiosks):' . $query->textfield(-name => 'opac_useragent', -value => 'ExampleOPACUA', -size => 30, ) ); } print STDOUT $query->h3('Installation source'); print STDOUT $query->p('LUMP Source URL (leave at default if unsure):' . $query->textfield(-name => 'lump_source_url', -value => 'http://lorls.lboro.ac.uk/LUMPdist/', -size => 20, ) ); print STDOUT $query->submit(-value=>'Install code'); print STDOUT $query->end_form; print STDOUT $query->end_html; exit; } LUMPCodeInstall($query); } sub LUMPCodeInstall { my $query = shift; my $db_name = $query->param('db_name') || 'LUMP'; $db_name =~ s/\s+$//g; my $db_host = $query->param('db_host') || 'localhost'; $db_host =~ s/\s+$//g; my $db_acct = $query->param('db_acct') || 'LUMP'; $db_acct =~ s/\s+$//g; my $db_passwd = $query->param('db_passwd') || ''; my $lc_db_name = $query->param('lc_db_name') || 'LoanCache'; $lc_db_name =~ s/\s+$//g; my $lc_db_host = $query->param('lc_db_host') || 'localhost'; $lc_db_host =~ s/\s+$//g; my $lc_db_acct = $query->param('lc_db_acct') || 'LoanCache'; $lc_db_acct =~ s/\s+$//g; my $lc_db_passwd = $query->param('lc_db_passwd') || ''; my $krb5_realm = $query->param('krb5_realm') || 'EXAMPLE.COM'; $krb5_realm =~ s/\s+$//g; my $library_email = $query->param('library_email') || ''; $library_email =~ s/\s+$//g; my $lump_library_dir = $query->param('lump_library_dir') || ''; $lump_library_dir =~ s/\s+$//g; my $lump_source_url = $query->param('lump_source_url') || ''; $lump_source_url =~ s/\s+$//g; my $lump_bin_dir = $query->param('lump_bin_dir') || ''; $lump_bin_dir =~ s/\s+$//g; my $lump_cgi_dir = $query->param('lump_cgi_dir') || ''; $lump_cgi_dir =~ s/\s+$//g; my $lump_cgi_base_url = $query->param('lump_cgi_base_url') || ''; $lump_cgi_base_url =~ s/\s+$//g; my $clump_lump_base_url = $query->param('clump_lump_base_url') || ''; $clump_lump_base_url =~ s/\s+$//g; my $clump_cgi_dir = $query->param('clump_cgi_dir') || ''; $clump_cgi_dir =~ s/\s+$//g; my $clump_cgi_base_url = $query->param('clump_cgi_base_url') || ''; $clump_cgi_base_url =~ s/\s+$//g; my $clump_html_dir = $query->param('clump_html_dir') || ''; $clump_html_dir =~ s/\s+$//g; my $clump_html_base_url = $query->param('clump_html_base_url') || ''; $clump_html_base_url =~ s/\s+$//g; my $clump_lms_name = $query->param('clump_lms_name') || ''; $clump_lms_name =~ s/\s+$//g; my $clump_lms_host = $query->param('clump_lms_host') || ''; $clump_lms_host =~ s/\s+$//g; my $clump_lms_z3950_port = $query->param('clump_lms_z3950_port') || ''; $clump_lms_z3950_port =~ s/\s+$//g; my $clump_lms_z3950_database = $query->param('clump_lms_z3950_database') || ''; $clump_lms_z3950_database =~ s/\s+$//g; my $clump_lms_lookup = $query->param('clump_lms_lookup') || 0; if($clump_lms_lookup eq 'On') { $clump_lms_lookup = 1; } else { $clump_lms_lookup = 0; } my $clump_openurl_resolver = $query->param('clump_openurl_resolver') || ''; $clump_openurl_resolver =~ s/\s+$//g; my $clump_x_server_base_url = $query->param('clump_x_server_base_url') || ''; $clump_x_server_base_url =~ s/\s+$//g; my $clump_x_server_username = $query->param('clump_x_server_username') || ''; $clump_x_server_username =~ s/\s+$//g; my $clump_x_server_password = $query->param('clump_x_server_password') || ''; my $clump_x_server_biblio_library = $query->param('clump_x_server_biblio_library') || ''; $clump_x_server_biblio_library =~ s/\s+$//g; my $clump_x_server_library = $query->param('clump_x_server_library') || ''; $clump_x_server_library =~ s/\s+$//g; my $clump_x_server_admin_library = $query->param('clump_x_server_admin_library'); $clump_x_server_admin_library =~ s/\s+$//g; my $clump_google_books = $query->param('clump_google_books') || 'On'; if($clump_google_books eq 'On') { $clump_google_books = 1; } else { $clump_google_books = 0; } my $sendmail_path = '/usr/bin/sendmail'; my $local_control_number_length = $query->param('local_control_number_length') || 9; $local_control_number_length =~ s/\s+$//g; my $local_control_number_prefix = $query->param('local_control_number_prefix') || ''; my $mail_from_name = $query->param('mail_from_name') || 'Library Reading Lists'; $mail_from_name =~ s/\s+$//g; my $changes_to_email = $query->param('changes_to_email') || 'rl-changes@library.example.com'; $changes_to_email =~ s/\s+$//g; my $lump_from_email = $query->param('lump_from_email') || 'readinglists@library.example.com'; $lump_from_email =~ s/\s+$//g; my $opac_useragent = $query->param('opac_useragent') || 'ExampleOPACUA'; $opac_useragent =~ s/\s+$//g; my $lms_get_isbn_map_url = $query->param('lms_get_isbn_map_url') || ''; $lms_get_isbn_map_url =~ s/\s+$//g; my $lms_get_loan_transaction_url = $query->param('lms_get_loan_transaction_url') || ''; $lms_get_loan_transaction_url =~ s/\s+$//g; my $install_what = $query->param('install_what') || 'All'; eval('use LWP::Simple qw();'); my $packlist = LWP::Simple::get("$lump_source_url/PACKLIST"); use File::Basename; my $do_install = 0; my $magic_cookie = join '', map chr(rand(86)+40), 0..20; $magic_cookie =~ s/\@/a/g; $magic_cookie =~ s/\$/b/g; $magic_cookie =~ s/\%/c/g; $magic_cookie =~ s/\\/d/g; $magic_cookie =~ s/\`/e/g; foreach my $packline (split /\n/, $packlist) { # See if we've got a section header - this tells us if the following # packlist lines should be acted on or not, depending on what the # user has asked to install. if($packline =~ /^\[(.+)\]$/) { my $what = $1; if($install_what eq 'All' || $install_what eq $what) { $do_install = 1; } else { $do_install = 0; } next; } # If we're in a section that we're installing code from, process # this packlist line and install the resulting file. if($do_install) { next if($packline =~ /^\s*$/); next if($packline =~ /^\s*#/); my ($code_url,$code_path,$subs,$other) = split(",",$packline); # Grab the code from the remote server my $code; if($code_url =~ m!^http://! || $code_url =~ m!^https://! || $code_url =~ m!^ftp://!) { $code = LWP::Simple::get($code_url); } else { $code = LWP::Simple::get("$lump_source_url/$code_url"); } if($code eq '') { warn "Didn't get anything back for $code_url?\n"; next; } # Localise the path for this piece of code, creating any required # directories as we go $code_path =~ s/^LUMP_LIBRARY_DIR/$lump_library_dir/; $code_path =~ s/^LUMP_CGI_DIR/$lump_cgi_dir/; $code_path =~ s/^LUMP_BIN_DIR/$lump_bin_dir/; $code_path =~ s/^LUMP_ADMIN_CGI_DIR/$lump_cgi_dir\/Admincentre/; $code_path =~ s/^CLUMP_CGI_DIR/$clump_cgi_dir/; $code_path =~ s/^CLUMP_HTML_DIR/$clump_html_dir/; my $dirname = dirname($code_path); if(! -d $dirname) { system('mkdir', '-p', $dirname); if(! -d $dirname) { warn "Couldn't create directory $dirname\n"; next; } } # Start writing to the new file and go through the retrieved # code line by line doing replacements as we go. if(!open(CODE,">$code_path")) { warn "Can't write to $code_path: $!\n"; print $query->p("Can't write to $code_path: $!"); next; } if(!$subs) { print CODE $code; } else { foreach my $code_line (split(/\n/,$code)) { if($code_line =~ m!^use lib "/usr/local/LUMP"!) { print CODE "use lib '$lump_library_dir';\n"; print CODE "use lib '$cpan_install_dir';\n" } elsif($code_line =~ m!^package!) { print CODE "$code_line\n"; print CODE "use lib '$cpan_install_dir/lib/perl5';\n"; } else { $code_line =~ s/%%MYSQL_SOCKET%%/$mysqld_sock/g; $code_line =~ s/%%MYSQL_DB%%/$db_name/g; $code_line =~ s/%%MYSQL_USER%%/$db_acct/g; $code_line =~ s/%%MYSQL_PASSWORD%%/$db_passwd/g; $code_line =~ s/%%MYSQL_LOANS_CACHE_DATABASE%%/$lc_db_name/g; $code_line =~ s/%%MYSQL_LOANS_CACHE_USER%%/$lc_db_acct/g; $code_line =~ s/%%MYSQL_LOANS_CACHE_PASSWORD%%/$lc_db_passwd/g; $code_line =~ s/%%KRB5_REALM%%/$krb5_realm\@$krb5_realm/g; $code_line =~ s/%%LUMP_BASE_URL%%/$lump_cgi_base_url/g; $code_line =~ s/%%LUMP_JSONP_BASE_URL%%/$lump_cgi_base_url/g; $code_line =~ s/%%CLUMP_BASE_URL%%/$clump_html_base_url/g; $code_line =~ s/%%CLUMP_CGI_BASE_URL%%/$clump_cgi_base_url/g; $code_line =~ s/%%MAGIC_COOKIE%%/$magic_cookie/g; $code_line =~ s/%%LOCATION_CGI_URL%%//g; $code_line =~ s/%%LIBRARY_EMAIL%%/$library_email/g; $code_line =~ s/%%LMS_NAME%%/$clump_lms_name/g; $code_line =~ s/%%LMS_HOST%%/$clump_lms_host/g; $code_line =~ s/%%LMS_Z3950_PORT%%/$clump_lms_z3950_port/g; $code_line =~ s/%%LMS_Z3950_DATABASE%%/$clump_lms_z3950_database/g; $code_line =~ s/%%LMS_LOOKUP%%/$clump_lms_lookup/g; $code_line =~ s/%%X_SERVER_BASE_URL%%/$clump_x_server_base_url/g; $code_line =~ s/%%OPEN_URL_RESOLVER%%/$clump_openurl_resolver/g; $code_line =~ s/%%X_SERVER_USERNAME%%/$clump_x_server_username/g; $code_line =~ s/%%X_SERVER_PASSWORD%%/$clump_x_server_password/g; $code_line =~ s/%%X_SERVER_BIBLIO_LIBRARY%%/$clump_x_server_biblio_library/g; $code_line =~ s/%%X_SERVER_LIBRARY%%/$clump_x_server_library/g; $code_line =~ s/%%X_SERVER_ADMIN_LIBRAY%%/$clump_x_server_admin_library/g; $code_line =~ s/%%GOOGLE_BOOKS%%/$clump_google_books/g; $code_line =~ s/%%SENDMAIL%%/$sendmail_path/g; $code_line =~ s/%%CAMPUS_BOOKSHOP_PROXY%%//g; $code_line =~ s/%%LOCAL_CONRTOL_NUMBER_LENGTH%%/$local_control_number_length/g; $code_line =~ s/%%LOCAL_CONRTOL_NUMBER_PREFIX%%/$local_control_number_prefix/g; $code_line =~ s/%%MAIL_FROM_NAME%%/$mail_from_name/g; $code_line =~ s/%%CHANGES_TO_EMAIL%%/$changes_to_email/g; $code_line =~ s/%%LUMP_FROM_EMAIL%%/$lump_from_email/g; $code_line =~ s/%%SENDMAIL%%/$sendmail_path/g; $code_line =~ s/%%OPAC_USERAGENT%%/$opac_useragent/g; $code_line =~ s/%%LMS_GET_ISBN_MAP_URL%%/$lms_get_isbn_map_url/g; $code_line =~ s/%%LMS_GET_LOAN_TRANSACTION_URL%%/$lms_get_loan_transaction_url/g; $code_line =~ s/%%CLUMP_SERVER_URL%%/$clump_html_base_url/g; print CODE "$code_line\n"; } } } close CODE; system('chmod','a+rx',$code_path); } } AllDone($query); } sub AllDone { my $query = shift; print STDOUT $query->header(); print STDOUT $query->start_html('LUMP Installation'); print STDOUT $query->h1('LUMP Installation - Completed'); print STDOUT $query->p('Installation completed.'); print STDOUT $query->end_html; exit; } sub AskForDBDetails { my $query = shift; my $install_what = $query->param('install_what') || 'All'; print STDOUT $query->header(); print STDOUT $query->start_html('LUMP Installation'); print STDOUT $query->h1('LUMP Installation - Database details'); print STDOUT $query->p('LUMP stores its data in MySQL databases. The name of this database and the database account that is used to access it are configurable. You can enter these here - if any of these do not exist you will be asked for the database root account and password in order to allow the script to create them for you.'); print STDOUT $query->start_form(); print STDOUT ""; print STDOUT ""; print STDOUT $query->p('Main Database Name:' . $query->textfield(-name => 'db_name', -value => 'LUMP', -size => 20, ) ); # print STDOUT $query->p('Main Database Host:' . # $query->textfield(-name => 'db_server', # -value => 'localhost', # -size => 20, # ) ); print STDOUT $query->p('Main Database Account:' . $query->textfield(-name => 'db_acct', -value => 'LUMP', -size => 20, ) ); print STDOUT $query->p('Main Database Password:' . $query->textfield(-name => 'db_passwd', -value => '', -size => 20, ) ); print STDOUT $query->p('Loan Cache Database Name:' . $query->textfield(-name => 'lc_db_name', -value => 'LoanCache', -size => 20, ) ); # print STDOUT $query->p('Loan Cache Database Host:' . # $query->textfield(-name => 'lc_db_server', # -value => 'localhost', # -size => 20, # ) ); print STDOUT $query->p('Loan Cache Database Account:' . $query->textfield(-name => 'lc_db_acct', -value => 'LoanCache', -size => 20, ) ); print STDOUT $query->p('Loan Cache Database Password:' . $query->textfield(-name => 'lc_db_passwd', -value => '', -size => 20, ) ); print STDOUT $query->submit(); print STDOUT $query->end_form(); print STDOUT $query->end_html; exit; } sub AskForCPANDir { my $query = shift; my $install_what = $query->param('install_what') || 'All'; my($webuser, $pass, $uid, $gid, $quota, $comment, $gcos, $dir, $shell, $expire) = getpwuid(getuid()); print STDOUT $query->header(); print STDOUT $query->start_html('LUMP Installation'); print STDOUT $query->h1('LUMP Installation - Location of CPAN directory'); print STDOUT $query->p('To install a private set of CPAN modules to support LUMP, you will need to create a directory to put these in. This preferably be outside the area that your web server is configured to access, but should have permissions set on it so that the user that the web server runs as ('.$webuser.') has rights to read, write and execute files from there. Please specify a suitable directory in the input box below:'); print STDOUT $query->start_form(-action => $query->url()); print STDOUT $query->textfield(-name => 'cpan_install_dir', -value => '/usr/local/LUMPCPAN', -size => 50, -maxlength => 100, ); print STDOUT ""; print STDOUT $query->submit(); print STDOUT $query->end_form(); print STDOUT $query->end_html; exit; } sub InstallCPAN { my $query = shift; my $install_what = $query->param('install_what') || 'All'; # Try to install missing modules my @failed_modules; my @done_modules; if(!-d $cpan_install_dir || $cpan_install_dir =~ /\./) { print STDOUT $query->header(); print STDOUT $query->start_html('LUMP Installation Error'); print STDOUT $query->h1('LUMP Installation Error'); print STDOUT $query->p('The CPAN installation directory ', em(escapeHTML($cpan_install_dir)), 'does not appear to be valid.'); print STDOUT $query->p('Please ensure that the directory path is correct and that it is writable by the user that your web server runs as, and then reload this script.'); print STDOUT $query->end_html; exit; } if(my $session = $query->param('session')) { $session =~ s/[^0-9]//g; # sanitize session file name open(SESSFILE,"/tmp/$session"); my $still_going = ; chomp $still_going; if($still_going) { warn "Outputing update\n"; print STDOUT $query->header; print STDOUT $query->start_html(-title => 'CPAN Module Installation Status', -head => [''], ); print STDOUT $query->p('The installation of the CPAN modules is still progressing - this is the current output:'); local $/=undef; my $sess_line = ; print STDOUT $query->pre($sess_line); print STDOUT $query->p('Doing stuff...'); close SESSFILE; print STDOUT $query->end_html; exit; } else { my $failed = 0; while(my $sess_line = ) { if($sess_line =~ /^FAIL/) { $failed++; } } if($failed) { print STDOUT $query->header; print STDOUT $query->start_html(-title => 'CPAN Module Installation Status', ); while(my $sess_line = ) { print STDOUT $query->pre($sess_line); } print STDOUT $query->p("Unfortunately $failed module(s) failed to install. Please see the log of the install in /tmp/$session.fail and attempt an installation by hand before rerunning this script."); print STDOUT $query->end_html(); exit; } unlink "/tmp/$session"; } } else { system('mkdir','-p',$cpan_install_dir."/.cpan/CPAN"); system('mkdir','-p',$cpan_install_dir."/lib/perl5"); system('mkdir','-p',$cpan_install_dir."/share/man/man1"); system('mkdir','-p',$cpan_install_dir."/share/man/man3"); eval "use lib \"$cpan_install_dir\""; my $gzip = ''; if(-x '/bin/gzip') { $gzip = '/bin/gzip'; } elsif(-x '/usr/bin/gzip') { $gzip = '/usr/bin/gzip'; } elsif(-x '/usr/local/bin/gzip') { $gzip = '/usr/local/bin/gzip'; } my $tar = ''; if(-x '/bin/tar') { $tar = '/bin/tar'; } elsif(-x '/usr/bin/tar') { $tar = '/usr/bin/tar'; } elsif(-x '/usr/local/bin/tar') { $tar = '/usr/local/bin/tar'; } my $less = ''; if(-x '/bin/cat') { $less = '/bin/cat'; } elsif(-x '/usr/bin/cat') { $less = '/usr/bin/cat'; } elsif(-x '/usr/local/bin/cat') { $less = '/usr/local/bin/cat'; } my $MyCPANConfig = " \$CPAN::Config = { 'auto_commit' => q[1], 'build_cache' => q[5], 'build_dir' => q[$cpan_install_dir/.cpan/build], 'cache_metadata' => q[1], 'commandnumber_in_prompt' => q[0], 'cpan_home' => q[$cpan_install_dir/.cpan], 'dontload_hash' => { }, 'ftp' => q[/usr/bin/ftp], 'ftp_passive' => q[1], 'ftp_proxy' => q[], 'getcwd' => q[cwd], 'gpg' => q[/usr/bin/gpg], 'gzip' => q[$gzip], 'histfile' => q[$cpan_install_dir/.cpan/histfile], 'histsize' => q[100], 'http_proxy' => q[], 'inactivity_timeout' => q[0], 'index_expire' => q[1], 'inhibit_startup_message' => q[1], 'keep_source_where' => q[$cpan_install_dir/.cpan/sources], 'lynx' => q[ ], 'make' => q[/usr/bin/make], 'make_arg' => q[], 'make_install_arg' => q[], 'make_install_make_command' => q[/usr/bin/make], 'makepl_arg' => q[PREFIX=$cpan_install_dir/ SITELIBEXP=$cpan_install_dir/lib/perl5 LIB=$cpan_install_dir/lib/perl5 INSTALLDIR=$cpan_install_dir/lib/perl5 INSTALLMAN1DIR=$cpan_install_dir/share/man/man1 INSTALLMAN3DIR=$cpan_install_dir/share/man/man3 INSTALLSITEMAN1DIR=$cpan_install_dir/share/man/man1 INSTALLSITEMAN3DIR=$cpan_install_dir/share/man/man3], 'mbuild_arg' => q[], 'mbuild_install_arg' => q[], 'mbuild_install_build_command' => q[./Build], 'mbuildpl_arg' => q[], 'ncftp' => q[ ], 'ncftpget' => q[ ], 'no_proxy' => q[], 'pager' => q[$less], 'prerequisites_policy' => q[follow], 'proxy_user' => q[], 'scan_cache' => q[atstart], 'shell' => q[/bin/sh], 'tar' => q[$tar], 'term_is_latin' => q[0], 'term_ornaments' => q[0], 'unzip' => q[/usr/bin/unzip], 'urllist' => [q[http://www.mirrorservice.org/sites/ftp.funet.fi/pub/languages/perl/CPAN/], q[http://mirror.ox.ac.uk/sites/www.cpan.org/], q[http://cpan.llarian.net/], q[ftp://cpan.nas.nasa.gov/pub/perl/CPAN/], q[ftp://cpan.pair.com/pub/CPAN/], q[ftp://ftp.duke.edu/pub/perl/], q[ftp://ftp.cs.colorado.edu/pub/perl/CPAN/], q[ftp://ftp.sunsite.utk.edu/pub/CPAN/], q[http://www.perl.com/CPAN/]], 'use_sqlite' => q[0], 'wait_list' => [q[wait://ls6.informatik.uni-dortmund.de:1404]], 'wget' => q[/usr/bin/wget], }; 1; "; open(CPANCONFIG, ">$cpan_install_dir/.cpan/CPAN/MyConfig.pm"); print CPANCONFIG $MyCPANConfig; close CPANCONFIG; $ENV{'PERL5LIB'} = "$cpan_install_dir/lib/perl5:$cpan_install_dir/lib"; @INC = ("$cpan_install_dir/.cpan/",@INC); @INC = ("$cpan_install_dir/lib/perl5/",@INC); warn "\@INC = ",join(',',@INC)."\n"; eval "use lib \"$cpan_install_dir\""; use CPAN; # $CPAN::Config->{cpan_home} = "/tmp/cpan.$$"; my $session = time.$$; warn "Current PID is $$\n"; if (my $pid = fork()) { warn "In parent with PID $$ - redirecting.\n"; $query->delete_all(); $query->param('stage', STAGE_CPAN_INSTALL); $query->param('install_what', $install_what); $query->param('session', $session); print STDOUT $query->redirect($query->self_url()); exit; } elsif(defined $pid) { die "Can't start a new session: $!" if setsid == -1; warn "In child with PID $$ in session $session\n"; if($install_what eq 'LUMP') { @required_modules = @lump_required_modules; } elsif($install_what eq 'CLUMP') { @required_modules = @clump_required_modules; } elsif($install_what eq 'All') { my %modules; foreach my $module (@lump_required_modules, @clump_required_modules) { $modules{$module} = 1; } foreach my $module (keys %modules) { push @required_modules, $module; warn "Adding $module to required modules.\n"; } } close(STDOUT); close(STDERR); close(STDIN); open STDOUT, ">/tmp/$session"; open STDERR, ">&STDOUT"; my $old_out_fh = select(STDOUT); $|=1; select($old_out_fh); my $old_err_fh = select(STDERR); $|=1; select($old_err_fh); print STDOUT "1\n"; my @failed_modules; my @ok_modules; foreach my $this_module (@required_modules) { print STDERR "Checking $this_module\n"; my $use = "{use $this_module;}"; eval $use; if($@) { print STDERR "Trying to install $this_module from CPAN.\n"; my $cpanpid = open(CPAN_I, "-|"); die "Cannot fork: $!" if not defined $cpanpid; my $sane_mod_name = $this_module; $sane_mod_name =~ s/\s*\(\)//g; if ($cpanpid == 0) { eval(CPAN::Shell->install($sane_mod_name)); exit; } else { my $result = ''; while(){ $result .= $_; print STDOUT "$_\n"; } close CPAN_I; eval $use; if($@) { print STDOUT $this_module . " - FAILED\n"; push @failed_modules, $this_module; } else { print STDOUT $this_module . " - SUCCESS\n"; push @ok_modules, $this_module; } } } } close STDOUT; open(NEWSESSFILE,">/tmp/$session.new"); print NEWSESSFILE "0\n"; foreach my $this_module (@ok_modules) { print NEWSESSFILE "OK:$this_module\n"; } foreach my $this_module (@failed_modules) { print NEWSESSFILE "FAILED:$this_module\n"; } close NEWSESSFILE; if($#failed_modules > -1) { system('cp',"/tmp/$session", "/tmp/$session.fail"); } rename "/tmp/$session.new", "/tmp/$session"; # ATOMIC! exit; } else { my $conturl=$query->url().'?stage='.STAGE_ASK_DB_DETAILS; print STDOUT $query->start_html('CPAN Module Installation Failed'); print STDOUT $query->p('Sorry, I could not fork off a process to install the CPAN modules required. Please install them by hand and then ',$query->a({href=>$conturl},'continue to the next section')); print STDOUT $query->end_html(); exit; } } # $query->delete_all(); # $query->param('stage', STAGE_DB_DETAILS); # $query->param('install_what', $install_what); # print STDOUT $query->redirect($query->self_url()); # exit; AskForDBDetails($query); } sub NoCGIModule { print STDOUT "Content-type: text/html\n\n"; print STDOUT HTMLHeader(); print STDOUT "

LUMP Installation - Missing CGI.pm Module

The LUMP installer has detected that there is no Perl CGI module installed on the server. This is a basic requirement of both LUMP and the installer. Please install the module, either using your operating systems packagement or, issuing the command `perl -MCPAN -e \"install CGI\"` or by going to CPAN, downloading the module source and building it by hand."; print STDOUT HTMLFooter(); exit; } sub CheckModules { my $query = shift; my $install_what = $query->param('install_what') || 'All'; if($install_what eq 'LUMP') { @required_modules = @lump_required_modules; } elsif($install_what eq 'CLUMP') { @required_modules = @clump_required_modules; } elsif($install_what eq 'All') { my %modules; foreach my $module (@lump_required_modules, @clump_required_modules) { $modules{$module} = 1; } foreach my $module (keys %modules) { push @required_modules, $module; } } my @failed_modules; eval "use lib \"$cpan_install_dir\""; foreach my $this_module (@required_modules) { my $use = "use $this_module;"; warn "Using $use\n"; eval "$use"; if($@) { push @failed_modules, $this_module; warn "Failed to load $this_module: $@\n"; } } if($#failed_modules > -1) { print $query->header; print $query->start_html('LUMP Installation - Missing Modules'); print $query->h1('LUMP Installation - Missing Modules'); print $query->p('Your Perl installation is missing the following modules that are used by LUMP:'); print $query->start_ul; foreach my $this_module (@failed_modules) { print $query->li($this_module); } print $query->end_ul; print $query->p('You can either:'); print $query->start_ul; print $query->li('Install these modules yourself (using `perl -MCPAN -e install module_name` or by downloading them from CPAN and manually building them, both of which will probably require root/administrator access on your machine) and then ',$query->a({href=>$query->url()},'rerun this script')); my $installurl=$query->url().'?stage='.STAGE_CPAN_DIR."&install_what=".$install_what; print $query->li($query->a({href=>$installurl},'Let this script try to install a private copy of the required modules for use by LUMP')); print $query->end_ul; print $query->end_html; exit; } $stage = STAGE_DB_DETAILS; } sub HTMLHeader { return "LUMP Installation\n"; } sub HTMLFooter { return "\n"; }