diff --git a/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/ticket_info.php b/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/ticket_info.php new file mode 100644 index 000000000..b0be3e5ca --- /dev/null +++ b/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/ticket_info.php @@ -0,0 +1,234 @@ + $ticket_id, 'author' => $author_id, 'query' => json_encode(array($action,$arg))); + $dbl->execute($query, $values); + } + + + //return constructed element based on TLogId + public static function constr_TInfoId( $id) { + $instance = new self(); + $instance->setTInfoId($id); + return $instance; + } + + + ////////////////////////////////////////////Methods//////////////////////////////////////////////////// + + public function __construct() { + } + + //set values + public function set($values) { + $this->setTInfoId($values['TInfoId']); + $this->setTicket($values['Ticket']); + $this->setShardId($values['ShardId']); + $this->setUser_Position($values['UserPosition']); + $this->setView_Position($values['ViewPosition']); + + $this->setClient_Version($values['ClientVersion']); + $this->setPatch_Version($values['PatchVersion']); + $this->setServer_Tick($values['ServerTick']); + $this->setConnect_State($values['ConnectState']); + $this->setLocal_Address($values['LocalAddress']); + + $this->setMemory($values['Memory']); + $this->setOS($values['OS']); + $this->setProcessor($values['Processor']); + $this->setCPUId($values['CPUID']); + $this->setCPU_Mask($values['CpuMask']); + $this->setHT($values['HT']); + $this->setNel3D($values['NeL3D']); + } + + //Load with tInfoId + public function load_With_TInfoId( $id) { + $dbl = new DBLayer("lib"); + $statement = $dbl->execute("SELECT * FROM ticket_info WHERE TInfoId=:id", array('id' => $id)); + $row = $statement->fetch(); + $this->set($row); + } + + //Load with ticket Id + public function load_With_TId( $id) { + $dbl = new DBLayer("lib"); + $statement = $dbl->execute("SELECT * FROM ticket_info WHERE Ticket=:id", array('id' => $id)); + $row = $statement->fetch(); + $this->set($row); + } + + + + ////////////////////////////////////////////Getters//////////////////////////////////////////////////// + + public function getTInfoId(){ + return $this->tInfoId; + } + + public function getTicket(){ + return $this->ticket; + } + + public function getShardId(){ + return $this->shardid; + } + + public function getUser_Position(){ + return $this->user_position; + } + + public function getView_Position(){ + return $this->view_position; + } + + public function getClient_Version(){ + return $this->client_version; + } + + public function getPatch_Version(){ + return $this->patch_version; + } + + public function getServer_Tick(){ + return $this->server_tick; + } + + public function getConnect_State(){ + return $this->connect_state; + } + + public function getLocal_Address(){ + return $this->local_address; + } + + public function getMemory(){ + return $this->memory; + } + + public function getOS(){ + return $this->os; + } + + public function getProcessor(){ + return $this->processor; + } + + + public function getCPUId(){ + return $this->cpu_id; + } + + public function getCPU_Mask(){ + return $this->cpu_mask; + } + + public function getHT(){ + return $this->ht; + } + + public function getNel3D(){ + return $this->nel3d; + } + + ////////////////////////////////////////////Setters//////////////////////////////////////////////////// + + public function setTInfoId($id){ + $this->tInfoId = $id; + } + + public function setTicket($t){ + $this->ticket = $t; + } + + public function setShardId($s){ + $this->shardid = $s; + } + + public function setUser_Position($u){ + $this->user_position = $u; + } + + public function setView_Position($v){ + $this->view_position = $v; + } + + public function setClient_Version($c){ + $this->client_version = $c; + } + + public function setPatch_Version($p){ + $this->patch_version = $p; + } + + public function setServer_Tick($s){ + $this->server_tick = $s; + } + + public function setConnect_State($c){ + $this->connect_state = $c; + } + + public function setLocal_Address($l){ + $this->local_address = $l; + } + + public function setMemory($m){ + $this->memory = $m; + } + + public function setOS($o){ + $this->os = $o; + } + + public function setProcessor($p){ + $this->processor = $p; + } + + + public function setCPUId($c){ + $this->cpu_id = $c; + } + + public function setCPU_Mask($c){ + $this->cpu_mask = $c; + } + + public function setHT($h){ + $this->ht = $h; + } + + public function setNel3D($n){ + $this->nel3d = $n; + } + +} \ No newline at end of file diff --git a/code/ryzom/tools/server/ryzom_ams/ams_lib/ingame_templates/show_ticket.tpl b/code/ryzom/tools/server/ryzom_ams/ams_lib/ingame_templates/show_ticket.tpl index 5058a5776..377f57de4 100644 --- a/code/ryzom/tools/server/ryzom_ams/ams_lib/ingame_templates/show_ticket.tpl +++ b/code/ryzom/tools/server/ryzom_ams/ams_lib/ingame_templates/show_ticket.tpl @@ -10,6 +10,7 @@ {if isset($isMod) and $isMod eq "TRUE"}Show Ticket Log{/if} Send Other Ticket + Show Additional Info diff --git a/code/ryzom/tools/server/ryzom_ams/ams_lib/ingame_templates/show_ticket_info.tpl b/code/ryzom/tools/server/ryzom_ams/ams_lib/ingame_templates/show_ticket_info.tpl new file mode 100644 index 000000000..2516620c2 --- /dev/null +++ b/code/ryzom/tools/server/ryzom_ams/ams_lib/ingame_templates/show_ticket_info.tpl @@ -0,0 +1,96 @@ +{block name=content} +
+
+ +
+
+ Additional Info + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Shard ID: {$shard_id}
User Position: {$user_position}
View Position: {$view_position}
client_version: {$client_version}
patch_version: {$patch_version}
memory: {$memory}
server_tick: {$server_tick}
connect_state: {$connect_state}
local_address: {$local_address}
os: {$os}
processor: {$processor}
cpu_id: {$cpu_id}
cpu_mask: {$cpu_mask}
ht: {$ht}
nel3d: {$nel3d}
+ +
+
+
+ +
+
+

Actions

+
+ + +
+
+
+
+ + Actions +
+ + +
+
+
+
+
+{/block} + diff --git a/code/ryzom/tools/server/ryzom_ams/ams_lib/translations/en.ini b/code/ryzom/tools/server/ryzom_ams/ams_lib/translations/en.ini index b22e8db98..1af2c3e70 100644 --- a/code/ryzom/tools/server/ryzom_ams/ams_lib/translations/en.ini +++ b/code/ryzom/tools/server/ryzom_ams/ams_lib/translations/en.ini @@ -65,6 +65,8 @@ group_size_error = "The name has to be between 4-20 chars and the tag between 2- [createticket] +[show_ticket_info] + [show_ticket_log] [show_reply] diff --git a/code/ryzom/tools/server/ryzom_ams/ams_lib/translations/fr.ini b/code/ryzom/tools/server/ryzom_ams/ams_lib/translations/fr.ini index 1e03d6862..81f58af42 100644 --- a/code/ryzom/tools/server/ryzom_ams/ams_lib/translations/fr.ini +++ b/code/ryzom/tools/server/ryzom_ams/ams_lib/translations/fr.ini @@ -62,6 +62,8 @@ group_size_error = "le nom doit etre 4-20 chars et le tag 2-4!" [createticket] +[show_ticket_info] + [show_reply] [show_ticket_log] diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/inc/login.php b/code/ryzom/tools/server/ryzom_ams/www/html/inc/login.php index 38a9ab5d8..745d48288 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/inc/login.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/inc/login.php @@ -2,6 +2,7 @@ function login(){ if ( helpers :: check_if_game_client () ){ + //check if you are logged in ingame. $result = Helpers::check_login_ingame(); if( $result != "FALSE"){ //handle successful login diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_ticket_info.php b/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_ticket_info.php new file mode 100644 index 000000000..e2ee00150 --- /dev/null +++ b/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_ticket_info.php @@ -0,0 +1,52 @@ +load_With_TId($result['ticket_id']); + + if(($target_ticket->getAuthor() == $_SESSION['ticket_user']->getTUserId()) || Ticket_User::isMod($_SESSION['ticket_user'] )){ + $result['ticket_title'] = $target_ticket->getTitle(); + $result['ticket_author'] = $target_ticket->getAuthor(); + + + $result['shard_id'] = $_GET['ShardId']; + $result['user_position'] = $_GET['UserPosition']; + $result['view_position'] = $_GET['ViewPosition']; + $result['client_version'] = $_GET['ClientVersion']; + $result['patch_version'] = $_GET['PatchVersion']; + + + $result['server_tick'] = $_GET['ServerTick']; + $result['connect_state'] = $_GET['ConnectState']; + $result['local_address'] = $_GET['LocalAddress']; + $result['memory'] = $_GET['Memory']; + $result['os'] = $_GET['OS']; + $result['processor'] = $_GET['Processor']; + $result['cpu_id'] = $_GET['CPUID']; + $result['cpu_mask'] = $_GET['CpuMask']; + $result['ht'] = $_GET['HT']; + + $result['nel3d'] = $_GET['NeL3D']; + + if(Ticket_User::isMod($_SESSION['ticket_user'])){ + $result['isMod'] = "TRUE"; + } + return $result; + + }else{ + //ERROR: No access! + $_SESSION['error_code'] = "403"; + header("Location: index.php?page=error"); + exit; + } + }else{ + //ERROR: not logged in! + header("Location: index.php"); + exit; + } +} \ No newline at end of file diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/sql/DBScheme.png b/code/ryzom/tools/server/ryzom_ams/www/html/sql/DBScheme.png index 16bced7cc..ce876402b 100644 Binary files a/code/ryzom/tools/server/ryzom_ams/www/html/sql/DBScheme.png and b/code/ryzom/tools/server/ryzom_ams/www/html/sql/DBScheme.png differ diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/sql/install.php b/code/ryzom/tools/server/ryzom_ams/www/html/sql/install.php index 0bf6c640c..8f8a7868d 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/sql/install.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/sql/install.php @@ -379,6 +379,39 @@ ON DELETE CASCADE ON UPDATE NO ACTION) ENGINE = InnoDB; + + + -- ----------------------------------------------------- + -- Table `" . $cfg['db']['lib']['name'] ."`.`ticket_info` + -- ----------------------------------------------------- + DROP TABLE IF EXISTS `" . $cfg['db']['lib']['name'] ."`.`ticket_info` ; + + CREATE TABLE IF NOT EXISTS `" . $cfg['db']['lib']['name'] ."`.`ticket_info` ( + `TInfoId` INT UNSIGNED NOT NULL AUTO_INCREMENT , + `Ticket` INT UNSIGNED NOT NULL , + `ShardId` INT NULL , + `UserPosition` VARCHAR(65) NULL , + `ViewPosition` VARCHAR(65) NULL , + `ClientVersion` VARCHAR(65) NULL , + `PatchVersion` VARCHAR(65) NULL , + `ServerTick` VARCHAR(40) NULL , + `ConnectState` VARCHAR(40) NULL , + `LocalAddress` VARCHAR(60) NULL , + `Memory` VARCHAR(60) NULL , + `OS` VARCHAR(70) NULL , + `Processor` VARCHAR(70) NULL , + `CPUID` VARCHAR(50) NULL , + `CpuMask` VARCHAR(50) NULL , + `HT` VARCHAR(65) NULL , + `NeL3D` VARCHAR(70) NULL , + PRIMARY KEY (`TInfoId`) , + INDEX `fk_ticket_info_ticket1` (`Ticket` ASC) , + CONSTRAINT `fk_ticket_info_ticket1` + FOREIGN KEY (`Ticket` ) + REFERENCES `" . $cfg['db']['lib']['name'] ."`.`ticket` (`TId` ) + ON DELETE NO ACTION + ON UPDATE NO ACTION) + ENGINE = InnoDB; diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsql.sql b/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsql.sql index eb95f792b..36ec38cae 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsql.sql +++ b/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsql.sql @@ -335,6 +335,39 @@ CREATE TABLE IF NOT EXISTS `mydb`.`email` ( ENGINE = InnoDB; +-- ----------------------------------------------------- +-- Table `mydb`.`ticket_info` +-- ----------------------------------------------------- +DROP TABLE IF EXISTS `mydb`.`ticket_info` ; + +CREATE TABLE IF NOT EXISTS `mydb`.`ticket_info` ( + `TInfoId` INT UNSIGNED NOT NULL AUTO_INCREMENT , + `Ticket` INT UNSIGNED NOT NULL , + `ShardId` INT NULL , + `UserPosition` VARCHAR(65) NULL , + `ViewPosition` VARCHAR(65) NULL , + `ClientVersion` VARCHAR(65) NULL , + `PatchVersion` VARCHAR(65) NULL , + `ServerTick` VARCHAR(40) NULL , + `ConnectState` VARCHAR(40) NULL , + `LocalAddress` VARCHAR(60) NULL , + `Memory` VARCHAR(60) NULL , + `OS` VARCHAR(70) NULL , + `Processor` VARCHAR(70) NULL , + `CPUID` VARCHAR(50) NULL , + `CpuMask` VARCHAR(50) NULL , + `HT` VARCHAR(65) NULL , + `NeL3D` VARCHAR(70) NULL , + PRIMARY KEY (`TInfoId`) , + INDEX `fk_ticket_info_ticket1` (`Ticket` ASC) , + CONSTRAINT `fk_ticket_info_ticket1` + FOREIGN KEY (`Ticket` ) + REFERENCES `mydb`.`ticket` (`TId` ) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB; + + SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsystemmodel.mwb b/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsystemmodel.mwb index 4e9f85fa4..42d148d17 100644 Binary files a/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsystemmodel.mwb and b/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsystemmodel.mwb differ diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/templates/show_ticket.tpl b/code/ryzom/tools/server/ryzom_ams/www/html/templates/show_ticket.tpl index aae1bf9f9..a7cbc7777 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/templates/show_ticket.tpl +++ b/code/ryzom/tools/server/ryzom_ams/www/html/templates/show_ticket.tpl @@ -224,6 +224,7 @@
  • {if isset($isMod) and $isMod eq "TRUE"}
  • Show Ticket Log
  • {/if}
  • Send Other Ticket
  • +
  • Show ticket Info
  • diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/templates/show_ticket_info.tpl b/code/ryzom/tools/server/ryzom_ams/www/html/templates/show_ticket_info.tpl new file mode 100644 index 000000000..cf256946b --- /dev/null +++ b/code/ryzom/tools/server/ryzom_ams/www/html/templates/show_ticket_info.tpl @@ -0,0 +1,97 @@ +{block name=content} +
    +
    + +
    +
    + Additional Info + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Shard ID: {$shard_id}
    User Position: {$user_position}
    View Position: {$view_position}
    client_version: {$client_version}
    patch_version: {$patch_version}
    memory: {$memory}
    server_tick: {$server_tick}
    connect_state: {$connect_state}
    local_address: {$local_address}
    os: {$os}
    processor: {$processor}
    cpu_id: {$cpu_id}
    cpu_mask: {$cpu_mask}
    ht: {$ht}
    nel3d: {$nel3d}
    + +
    +
    +
    + +
    +
    +

    Actions

    +
    + + +
    +
    +
    +
    + + Actions +
    + + +
    +
    +
    +
    +
    +{/block} +