diff --git a/database.mwb b/database.mwb new file mode 100644 index 0000000..09624ed Binary files /dev/null and b/database.mwb differ diff --git a/database.sql b/database.sql new file mode 100644 index 0000000..f2876e8 --- /dev/null +++ b/database.sql @@ -0,0 +1,34 @@ +-- MySQL Script generated by MySQL Workbench +-- Wed 11 Oct 2017 12:49:43 PM MDT +-- Model: New Model Version: 1.0 +-- MySQL Workbench Forward Engineering + +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; + +-- ----------------------------------------------------- +-- Schema managepanel +-- ----------------------------------------------------- + +-- ----------------------------------------------------- +-- Schema managepanel +-- ----------------------------------------------------- +CREATE SCHEMA IF NOT EXISTS `managepanel` DEFAULT CHARACTER SET utf8 ; +USE `managepanel` ; + +-- ----------------------------------------------------- +-- Table `managepanel`.`report_access_codes` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `managepanel`.`report_access_codes` ( + `id` INT NOT NULL AUTO_INCREMENT, + `code` VARCHAR(45) NULL, + `expires` DATETIME NULL, + PRIMARY KEY (`id`), + UNIQUE INDEX `id_UNIQUE` (`id` ASC)) +ENGINE = MEMORY; + + +SET SQL_MODE=@OLD_SQL_MODE; +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; diff --git a/lang/en_us.php b/lang/en_us.php index 6cf7920..f9c1c41 100644 --- a/lang/en_us.php +++ b/lang/en_us.php @@ -101,6 +101,7 @@ define("STRINGS", [ "choose an option" => "Choose an option", "csv file" => "CSV text file", "ods file" => "ODS spreadsheet", + "html file" => "HTML web page", "uid" => "User ID", "manager name" => "Manager", "manager username" => "Mgr. Username", diff --git a/lib/reports.php b/lib/reports.php index 4ef8da5..6ec3219 100644 --- a/lib/reports.php +++ b/lib/reports.php @@ -1,8 +1,16 @@ has('report_access_codes', ["AND" => ['code' => $VARS['code'], 'expires[>]' => $date]])) { + $database2->delete('report_access_codes', ["OR" => ['code' => $VARS['code'], 'expires[<=]' => $date]]); + } else { + dieifnotloggedin(); + } +} else { + dieifnotloggedin(); +} + +if (LOADED) { + if (isset($VARS['type']) && isset($VARS['format'])) { + generateReport($VARS['type'], $VARS['format']); + die(); + } else { + lang("invalid parameters"); + die(); + } +} function getUserReport() { global $database; @@ -144,7 +172,7 @@ function dataToCSV($data, $name = "report") { $csv = Writer::createFromString(''); $csv->insertAll($data); header('Content-type: text/csv'); - header('Content-Disposition: attachment; filename="' . $name . "_" . date("Y-m-d_Hm") . ".csv" . '"'); + header('Content-Disposition: attachment; filename="' . $name . "_" . date("Y-m-d_Hi") . ".csv" . '"'); echo $csv; die(); } @@ -175,7 +203,31 @@ function dataToODS($data, $name = "report") { $rowid++; } $ods->addTable($table); - $ods->downloadOdsFile($name . "_" . date("Y-m-d_Hm") . ".ods"); + $ods->downloadOdsFile($name . "_" . date("Y-m-d_Hi") . ".ods"); +} + +function dataToHTML($data, $name = "report") { + header('Content-type: text/html'); + $converter = new HTMLConverter(); + $out = "\n" + . "\n" + . "\n" + . "