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}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{/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}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{/block}
+