From 8d08ff0db0b1afb682dba0523c388dc592815853 Mon Sep 17 00:00:00 2001 From: Quitta Date: Mon, 15 Jul 2013 17:29:19 +0200 Subject: [PATCH] support group class added + list of support groups added! --HG-- branch : quitta-gsoc-2013 --- .../ams_lib/autoload/support_group.php | 148 ++++++++++++++++++ .../ryzom_ams/ams_lib/translations/en.ini | 6 + .../ryzom_ams/ams_lib/translations/fr.ini | 6 + .../ryzom_ams/www/html/func/add_sgroup.php | 34 ++++ .../ryzom_ams/www/html/inc/sgroup_list.php | 23 +++ .../ryzom_ams/www/html/sql/DBScheme.png | Bin 124851 -> 126806 bytes .../server/ryzom_ams/www/html/sql/install.php | 7 +- .../ryzom_ams/www/html/sql/ticketsql.sql | 7 +- .../www/html/sql/ticketsystemmodel.mwb | Bin 14248 -> 14473 bytes .../www/html/templates/sgroup_list.tpl | 108 +++++++++++++ 10 files changed, 335 insertions(+), 4 deletions(-) create mode 100644 code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/support_group.php create mode 100644 code/ryzom/tools/server/ryzom_ams/www/html/func/add_sgroup.php create mode 100644 code/ryzom/tools/server/ryzom_ams/www/html/inc/sgroup_list.php create mode 100644 code/ryzom/tools/server/ryzom_ams/www/html/templates/sgroup_list.tpl diff --git a/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/support_group.php b/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/support_group.php new file mode 100644 index 000000000..b70d93666 --- /dev/null +++ b/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/support_group.php @@ -0,0 +1,148 @@ +executeWithoutParams("SELECT * FROM support_group ORDER BY Name ASC"); + $rows = $statement->fetchAll(); + $result = Array(); + foreach($rows as $group){ + + $instanceGroup = new self(); + $instanceGroup->set($group); + $result[] = $instanceGroup; + } + return $result; + } + + //wrapper for creating a support group + public static function createSupportGroup( $name, $tag) { + + if(strlen($name) < 21 && strlen($name) > 4 &&strlen($tag) < 8 && strlen($tag) > 1 ){ + $notExists = self::supportGroup_NotExists($name, $tag); + if ( $notExists == "SUCCESS" ){ + $sGroup = new self(); + $sGroup->setName($name); + $sGroup->setTag($tag); + $sGroup->create(); + return "SUCCESS"; + }else{ + //return NAME_TAKEN or TAG_TAKEN + return $notExists; + } + }else{ + //RETURN ERROR that indicates SIZE + return "SIZE_ERROR"; + } + } + + //check if group exists + public static function supportGroup_NotExists( $name, $tag) { + $dbl = new DBLayer("lib"); + //check if name is already used + if( $dbl->execute("SELECT * FROM support_group WHERE Name = :name",array('name' => $name))->rowCount() ){ + return "NAME_TAKEN"; + } + else if( $dbl->execute("SELECT * FROM support_group WHERE Tag = :tag",array('tag' => $tag))->rowCount() ){ + return "TAG_TAKEN"; + }else{ + return "SUCCESS"; + } + } + + //return constructed element based on SGroupId + public static function constr_SGroupId( $id) { + $instance = new self(); + $instance->setSGroup($id); + return $instance; + } + + //returns list of all users that are enlisted to a support group + public static function getAllUsersOfSupportGroup($id) { + $dbl = new DBLayer("lib"); + $statement = $dbl->execute("SELECT * FROM ticket_log INNER JOIN ticket_user ON ticket_log.Author = ticket_user.TUserId and ticket_log.Ticket=:id", array('id' => $ticket_id)); + $row = $statement->fetchAll(); + $result = Array(); + foreach($row as $log){ + $instance = new self(); + $instance->set($log); + $result[] = $instance; + } + return $result; + } + + + ////////////////////////////////////////////Methods//////////////////////////////////////////////////// + + public function __construct() { + } + + //set values + public function set($values) { + $this->setSGroupId($values['SGroupId']); + $this->setName($values['Name']); + $this->setTag($values['Tag']); + } + + public function create() { + $dbl = new DBLayer("lib"); + $query = "INSERT INTO support_group (Name, Tag) VALUES (:name, :tag)"; + $values = Array('name' => $this->name, 'tag' => $this->tag); + $dbl->execute($query, $values); + } + + //Load with sGroupId + public function load_With_SGroupId( $id) { + $dbl = new DBLayer("lib"); + $statement = $dbl->execute("SELECT * FROM ticket_log WHERE TLogId=:id", array('id' => $id)); + $row = $statement->fetch(); + $this->set($row); + } + + + //update private data to DB. + public function update(){ + $dbl = new DBLayer("lib"); + $query = "UPDATE ticket_log SET Timestamp = :timestamp, Query = :query, Author = :author, Ticket = :ticket WHERE TLogId=:id"; + $values = Array('id' => $this->getTLogId(), 'timestamp' => $this->getTimestamp(), 'query' => $this->getQuery(), 'author' => $this->getAuthor(), 'ticket' => $this->getTicket() ); + $statement = $dbl->execute($query, $values); + } + + ////////////////////////////////////////////Getters//////////////////////////////////////////////////// + + public function getSGroupId(){ + return $this->sGroupId; + } + + public function getName(){ + return $this->name; + } + + public function getTag(){ + return $this->tag; + } + + ////////////////////////////////////////////Setters//////////////////////////////////////////////////// + + public function setSGroupId($id){ + $this->sGroupId = $id; + } + + public function setName($n){ + $this->name = $n; + } + + public function setTag($t){ + $this->tag = $t; + } + + +} \ No newline at end of file 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 a5bb624cd..d44423e22 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 @@ -31,6 +31,12 @@ t_send = "Send reply" [show_queue] +[sgroup_list] +group_success = "The group has been created!" +group_name_taken = "The groupname was already used!" +group_tag_taken = "The tag was already used!" +group_size_error = "The name has to be between 4-20 chars and the tag between 2-4!" + [createticket] [show_ticket_log] 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 e54f4371a..fde9c20a5 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 @@ -31,6 +31,12 @@ t_send = "Envoyer la reponse" [show_queue] +[sgroup_list] +group_success = "le group est cree!" +group_name_taken = "le nom pour le group est deja utilise!" +group_tag_taken = "le tag pour le group est deja utilise!" +group_size_error = "le nom doit etre 4-20 chars et le tag 2-4!" + [createticket] [show_reply] diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/func/add_sgroup.php b/code/ryzom/tools/server/ryzom_ams/www/html/func/add_sgroup.php new file mode 100644 index 000000000..5f5544e6c --- /dev/null +++ b/code/ryzom/tools/server/ryzom_ams/www/html/func/add_sgroup.php @@ -0,0 +1,34 @@ +< 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⋘oCQKPX=V3 zYY$9n#KY0aN^2YW(H&mH;N4qxB%sRK+8RXT`Z!{gNw!&qZheT>gs9Nj*ar=r?bs=gn-#}wDEOCWx zV$)#A``KCYp=j>ANxSzo$Kg;a9W~RO%;%yV3znj?I2bv(qn_cvrCH zNf#Xs4+NEjL@>+8#7kQ2E+m_W=IJ+5S}`bqd^4fr2f-F7j{FAnInZ#CdYbL!0c z3`@AC;?4MFrD6sU<&Zc`lQETJmrD})WHoxJ0byliH&Os7`J-z2dIb~{7VesunCR`@ zLG7k&KU+41eV`z0!Vkm5$ojfE{*wwn~at@)cRU%3M zRA|1xP*F+IPer9?$jbgb0YOKnu01Exlk`9`X>3pfK7oJO_71wIukq>f*g#nCVFy^2 zHBZ}so?Oea*c6a|4vP9Z%X|JgKd!gGzXVE=#r@@9XDf*QdkJGwwxoIz0|ky>GyJkZ z`{%N^eHJO?IIw6kiVTYnH+d}`uuYjyPoSDt4rW(;7%GRVWnrr1ebjolmuXM(@5bJG zczV|4U2`=p2v+?|ky^NYUD0j)6s3fUKJaH&Ru-0$OOab>`ZVS@lUgJfFirIeW)5un z_HVi@6F=QQo8m`LPjHXvE_OjxQO=F6^l5j_ua;+h-V8kh1N##nu+At!+4FxoX^HWH zlys$4I<|T$K*lfNXV*PmI|dTH(SRtg1%tHKXKV96ySvwY+5aAsl1K%r@NZ4AshRRv zh%mDP*7;HnMP!aeC{juRJEA{_jW@r|g%I`s9#p6Q$M8!3xAFZ~_fXh1|2;(66sWPf kPks64ZTn+a delta 13876 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 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 0dd32d05b..6f4f3004c 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 @@ -281,8 +281,11 @@ CREATE TABLE IF NOT EXISTS `" . $cfg['db']['lib']['name'] ."`.`support_group` ( `SGroupId` INT(10) NOT NULL AUTO_INCREMENT , - `Name` VARCHAR(45) NOT NULL , - PRIMARY KEY (`SGroupId`) ) + `Name` VARCHAR(22) NOT NULL , + `Tag` VARCHAR(7) NOT NULL , + PRIMARY KEY (`SGroupId`) , + UNIQUE INDEX `Name_UNIQUE` (`Name` ASC) , + UNIQUE INDEX `Tag_UNIQUE` (`Tag` ASC) ) 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 c47a67094..786e8e873 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 @@ -238,8 +238,11 @@ DROP TABLE IF EXISTS `mydb`.`support_group` ; CREATE TABLE IF NOT EXISTS `mydb`.`support_group` ( `SGroupId` INT(10) NOT NULL AUTO_INCREMENT , - `Name` VARCHAR(45) NOT NULL , - PRIMARY KEY (`SGroupId`) ) + `Name` VARCHAR(22) NOT NULL , + `Tag` VARCHAR(7) NOT NULL , + PRIMARY KEY (`SGroupId`) , + UNIQUE INDEX `Name_UNIQUE` (`Name` ASC) , + UNIQUE INDEX `Tag_UNIQUE` (`Tag` ASC) ) ENGINE = InnoDB; 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 104d9341cfa14f60790358b57851c622b26ae696..5a500c989dc011cd82913dd57014ea4859788de6 100644 GIT binary patch literal 14473 zcmZ|018^@v*C!nN#vaPxo}4Q#IW^ zb$*9(lAvIyKtMoHKuEsV0xdl{8Pg0vKv;ZWK!`uHMmB~{R>szjbXG0~bgovGms#r$ z>+EwU+s`$&haH|JQ+c4iEq3PQx~J*;YXfPc#@(yGF`)eGSle95sKVG-zTbfh=C6z*hM1AG?T@BTIe;RUez89O^?>gSCQ@g_Jd_HG%e`1FTW&Sc5Rp!cy z68@Pk{NAHU9~)GYj;}a)68U^O`@AgS-OBo$c6?${LUHqY^2RQkt#HzR!R>UvZ?3P` z?GBq2$fE6L{qa zdXaM3QgwP?uShy6Ixrr;T6cCzn5eER9!5eZ?qfW9^B51!V%Z2gnxhSF0p$5)%VObdR!MR^C4wJSk7A zOymFUo{+|$&@q31AfLs4`*+YKR>iy&;`1M=2nR0$z{Z9Y! z_0DhmciXLvRKx4?a@kGNQZ?_>p$nW}T>&}4L&qnp(zXvqg3@`)q|Wz6S34`SP@vSB z>B!{crKi`IF>UKR!@K3z*`VDzpekpqGiTX{NQAOU;DSImA91@ zEG$jKVZv3~Kea}K?9Y7K`L}zAsF|#mc3=bIomNOFKZYLUyx)^6b7=n>X3z*qB8=GG zm}%-8W3u7Ko1O-IS1hLYix13$>hcKBwqdOxuhId!pXnudi0h`JPp1aO`H5MlY}Xo& z-xxWMA+2j@tES7BMx3pkn)nkb-G^r2`RE$A>VXCA@Zxhh$J6Ap)ovZ}DKdswLtM$s z-^{@vpu9Z~LCKby9HBM=G4t2g3r4Y8yqf%$sDR83`dSrf*GGtpue0#|kkadrJh0Q!z;XFqDIo}0&#MqHdmljuR_6*e()oz6%(975 zSJ38%%ct9AbvlrT9 z>Fuo;+!0RF4~{C zO>WlsxH>;LP{8nk2?c6GsIis8?{HXgT)Mk`kOf~1MlM2n-+QKLL$oEhJY%~-5 zXee|uIRP-eGfh3)^xD{wtZ-%&bYuV|EM!DS?TcX^I{F6;2|zS3Jck^ zNEq43vzx1uKsS_j6n8%ZrsjF#?}jNI&tVwY$`>!z%&Fio@aI7#g-=)gbccH*AaayV zv8wPKmGcGx0~Pe#gkkUNWD`qfwzZ_nm+yGbQp=_>ctBf+W z$+?ey)7MiRbOAA^<>GllDu!Q8HvuW*VB>M1O?kXqsh9HCuATXWDojZ5qHDfM>LI6L z1;~$faqx?WA@wT9_k$slu!XIuLTAHxLG?LKe;+k~k6SMN(82KG^?q-%oVr!%AT(eZ zWH!v`a=hHl;1~jCBh#m>VgCea2!zp>ggq0GlO)73oU}i_8bOn5n#lKDPUeTKZc{Sn zw8)Z75nx69-35M6l}5Pq)|E@Zmo6WSN{(|;xb!+i_34yI{?kp)s=l0UlDLSi5yw5crc3{5es939f+R{HUF6RQ^u z2=ttkW5-`R&cmFpL3d!OhZZ17EAsp}#vqrUe4jT0zv7z*Ct8?es>bz*}3S>=2>59jV?Zb?DluI6~WQ7pKN>x2F&0=(#=F zQJE{#h?m=Hzkk~jiehU?lp5Mk;UU)V>e>1%E7pBX4nS1V z8}N`tFoa}ty`5ch$?yB?epL>!&96=!&L_*apxlVd*ua3h)g%{Cz1321DIZ9MkuFMZ zf`H{-10MlfKwT6*UcR`{M%kFzcw%&HA(4=7Ac@Gs9&qo_8eN{4_#(Hpv=Il9^r?- zx3CX9h<^pT2aZSJ1}s{|V+|0}`(B}5P3*iFTZAp8kak$U)T`FvuMG7h7er`O>81>|hKmFTdIWs({8*lk;#$Re>3*qFLhyo168yfX zLbRgWrAAXQR)L6lN#Bw=Zj1(k>k9k*tjf&5yZ;x*9JUAX z5mVeF-0q@Lyy9Gb!u=CIxMlnF^N^95=C6dt&2hz4V#AJcJI$|@BK_t0O37pqKNFS@ zME9&N+J)kDoSA!~Q}>qjIcFJM9l~7SlI|yH-&B71EbH|p zE7(6qCAsU?#;4|5t=OuKTHM%Hn(Nx!#A^d<*t}RUrV(IkONzSfJB6}bQ&3NBsRBb- z=K{#=eVlzfB$Yu4M51cVE{5-ph0g74kfn9<%{S7j#s#~|tge`CR5(tRb@EF!PEM>^ zSy4mFt2;z?POQ-#QxLtv;er6~8BUziI!+vyig5_lH3qk!qvbUQ=pycT4ICmUFDh(# zi+)lQyPVg_+PjaVnHcS&DDoq=5X=?{oTj@BBHPzVRw}E)vQdnaAmK!`;nwdQp7950nZUAiDuc5l= zP^`>&zW3l7iO?cL5tL30kl1^j%x8t)_>bPE0nGn)yHX{}2_m$T$k&zA=V)1v zuG=N%&pj{WevPz~rJ{h7O?I|X;&n#fTd=_*5gsh_n5+5KanLqAf(eP^i)=J{1iX!cO}kRlCZ zig=w+No7u`Uhf^wSa)>(TXd<%NRH*iQhdHAYo(bQGiGh;2Lhhh zn0q8(PW&ZwCk-n6B?fwA8w)~GyJWrA@C2MQs4x1MJA~9=*f}P-W}yP2dE^Qd5Bd%u z(v-G^rLwtZ#Xg5-`lQ9)4Yqm39#Aa5_DWUqia}-|0@H^O`Ei3@J9qkk0s2rln1}`M zqsw?j_Rk5hp_I6YhIN99=f0Q;qlX{{TBT*MEZpeJ-cgmra(s-bGGDGve{6ah3c7jg zB!Y3omMU`+V}2M(EcENrFE|&|E6Eea;}(O`uK)|o>mH?&m1fyPxTD^ou&h?DwPh6Q zcO&2#SClIand?9Mq+M&aA0Q1Ls$F{;2bm$Db&yDuSfa411ecDh*Vg$si9i*kMqRKp z%7XC~8X!S}&PrVR@Z0J>_ZO#M2%?Q!3z}REiU`+QzSj;)_*&?f(*ZCy3;<(he!v$$ zh!{iVtWUxMO(mTyTrHHECH}vVLJ%@pfHY4}9RMMvY6TPLBjHy>B@`_fbs#r_7lIpN zp1h?;)|%%AX5U-x0i_bfzU5MDe!4i&_At?WnMe2Jf$K_f^31hy>D-B~ztEq%c-YBv z((u0dtBV$qEBP&HTrEyilTa1}Cpo7pPQNlo5cYD~lAv~lKCLjGDfh_DrvtFAxpM2C zgui$Ge`}`W2GZCOVMG1QE`b{)&}3bfO~dBpYv&SHqxm-S#*vq0ck?Ux9TLC(W6VuR zs09TP$A$me5p3VaSSS=t?`)Z695a2=L8rZ4t`LHQ_z%#u&bE@S*<0lJQ#e?K$-Qc? zgX))BmQEzMQsKaKn!P~`_VMLn@%z2-ezh%gCh!Zpg%3y zuaEX5IOgeF!sS8lpnROyE7uEpp2ZM=5gf2xX(2+7o7=#i*R&T5zjRgZ@ko8^{9fUC z|4dvrzhy-~W!SCvH%xPF9s7l-mu!Rc!#a6ArHs4QX58xayH&Fv_gaQ0O}JB(te>vQ z2@`(jCCp#+rE7b0d&9V2*12hASB@uCNf-95jm-{-H?>;_dZW<)8GjSEJ6t(iG3VKq zyyoMmV@;~WNZH)VNh%rTSz~R*7U8A(ZFz-`CoUB%nQGZBJR>D3fL^j0*Z*lE7Gzk~BG$zIh8WDVrH3hDjlIBThOc5vWgs{I?)B zFmkY?obzRIdx%(mG$UWTO@ZZ90(r1YQq}%cqESNit<+kiS%uCBkf>yxJ;l*#qnO32B6gJQcca{utd68t{PS!fZ|)Bv@b`(fvPu5G@Qq2S6Z*sb4SRC>L^6&ACDY6$bbHQ*h+um zDkdbcmANCPgcJr9iQsC;XxmWB_v6%1xfhDGDc=@uw-I}dViuHt+z+M}{o9S3C8Wk& zgNrwi#Ut!>atq|bec`gE%q|3F0D;J{WbYUcrR2uJS)iz(3QbV~_J9JIvu?(^ zedEXQXz6#?0ebHWSp&XsPL*}nzDcP7e^8*!tz%eajSx_UzBV!kHVz3%;zDRaRW-d#x*|Ex6&CQnMJ{<%;@)kDP(qzItf8QvqSmep!+V8rPnK8wC4f zJ)OD@!qNE@UqW3#Stj&Q7idTV9h1$l1PLX!y;GdI5(u|4>A2towMXTj zHp`0%6}Ct1jo1|Mm4+Hrq80tQTc=n`PLb|P=(}M__hAA*h?`b}Y9a&0ot{JmNf6nP z+66r;pcwJty}aF!A~HBR`*lchDxcvlNNiGlmsMe`RH3o+A1_{1QU)a)8Cqx8qVG^h zwHL<8VFiKkU0_9RuoNdcOPnx~C}gFVYCHxmyN;>Of2k9?uXI?HILg;>0}C&4N$tV2kG3KM_>X|u_P<_K_Bi;e<3|6icCAnRH>2pj=jVUXq z-r^tK;`k77nX{?divd-MS8IWB&oOSG<5a#xUdSBH30t@vSiWS9GMZB4 z&Q^KN0H2wG6@mg9C`>D<33O;Eu{)(~Z{1y+ir58wg<0V!P)IUI;4B2l~BgK~jWp9C0z0i5*#SE2PP`T)t??oFga^Gs#?RA4!#l z6~x3e=5dGi*CbV{IzA2Sut9^~jUp_?Nk2=4pcLKa6z%oaqH&zf{#Ar-yOfn5#o}Bz zf!477Tv$qvX*nYPb*u_w(|y*nD}^`4&d7>Nou00}lb4#_zWelG#~kys6t~G3+l32^ zb+x!jQV+xq6gu-MA-i}1Y2~$P=)Us)0h(J10){l*s(Kr4XM`_0&+@@+zM<(jeiU(3#~%6%CG-e*Xblx~?Y4flv@IL^g6< zn`Ww{ePJUD1ssmNreGanFpb=K0Wy%Mfa;Wx5@X8n#sHT|8%fXdA)uY>NbnfYodI8| z#b!uaa+2TUI}lP`f`o)sHZrViR|@gSthV~0I-F(e)1hK$hya$Qoi+yU zKQ3QbRQ=H0v5m+VX1m_9cKz14mYs#o+6ygA)uwAq_Jfc}{ZPeb;VJ`F|5(xAgLx~P zl^as;pg zQYzXE(?%}6XcOZwM@8CXPA-WjC`hT*L&2mRnj9c*QRyU!#TI(%NZWEe zBQYm8Wvgk#ck4*Wp&1+LBn=o_wbYSS?dOv=xRL{oe*A-$^{ZqSp?sjD=}!s76yIH~ z|1m(4w`prqD-WM*@zgUUmex=|sG4KiYut5THJ!L7SXSriC$ts^EadCF_ZWS6IgZdx ztY5QU!_zdqyEg#KfaW*u{Q$q^N;6U9xub9^){YhO!5*~rO2dDX_U$9pE5+1Jt1ku_ z3nkSnN3-bbQn2dzx}FMrfRXffuZ=-g0+p0sbj@Z@$dmLfSo#-|AY~gXj%@!7c|Prw&2u)u@Pqp$1sv<*xDp62LJ0!x7|n0z^x>Ab&@clgebh>VHh*o(;5n8$xP!5M0&}w28cYp3)Z@2z090OLPTZxt2P54~lnU zL!WJ9U7cf#7)w5w904I@2_N>` z5b-F8Vlw&fV46QGA8yE01DNT$dO6&Nu4g|QxG)*RKnRLCwxP%-nd8 z{ia(raFS3Y>*ai*FgVwHm|?*wY%xIF6T3N!KD^SXVV42vVw5d}40$)b^x)+Bh?0b| zY5d{r5G?WhRE}l4(I{>lx6UEmf1!TjIFBSjyfBrh*8q~qjyvy%0k zxP@y^c{i`v@Erpprwdpd1A^IY30o#Q^_HNYANlc>bmqS}i4}2whtE@wz3>0LmYt$C zw!)95%eK`>#!0Z$?m|wSld{^%Uc|42l!lQmeWDVdiFt}4r)(LQrVkW(`G^{b?!CQq zLmJw3k>igNb&W?@y6PC=zS7a#Be=!U(a#=|v2xP`lKsXdxt=BgW=e;~-cS>#PgcW@{ar8K5RcD!rLr=t|G5l>9kiYI;-jG`yH z@EBFZ>XilmIuTv^=R_?b=wf7U$H191tQ8mjGF0Qkg1z~{eTh`N!nU|;JuV6E7*$=t zxiMDv@6&>pzUTs>5Klv4en6Unt`!zmsHJ)u|I6Z@BY6|~E_+sR^2IiBn3Z_EgHaSp zqQ;zy6OM+(vYJ>~WmvlOuz>+WDYew+9-cxtcQ7`B5lp08dq}1TjdVxZmD4xMcnR>L{kxQZ+0VtLjYn=2Rw80A2q`W$Dd^ss5P= zSQkI3kzv%^G>P!}2+}U6po43ml9`~dv+7P55G6Gd;cdbfql~{LFYRcccl3tR7qwoz|jD zxCj|$tjEdLxd?pVM<`&*iq@I%+5v_!JmjrulxvAkiyak+jHF7ly2WU|#H}>XJK{lE zn%03`@w|WCyUW2y$@zx;y7n*Gy+k0`T6{Kj+deBC7%*GFXD(lE8xYoS>g7yD~4L4W*-kXkM$&Jx2ncHO0;w@Thk#zZ?>3*Mi(^5*ByWT@t zBGVBBZL~{yLVP;yPkCzB!Lr&bDU)_j0@-{!J$yu=li>U`cC9-LJS&k|kG_G=mCbn= zJJl|iYX}s`OHiih_J(PEM0^Iqe(YNAe7WOMF3Sy+c>P_Wz@indS|YWo0!))9`eO80 z8a#e8DUS;&SM)Tvu9SgDktbc!j;N~MSIs1~1gCgyb-iz9u87TLN6@Ia{5W5H5*Hjtt&ZKOqKdYT>h8pV_P+6c?;wtL{?WYztqCYm zf1j16 z-F4tJ)-7p>oL?w;e?xwpFPFw*fRrn9Ow;BvqWW~MxNn_$|K$cE6Qs+z<48N>Xq`US zS~W9OjigqjdGvPV<(5sWOUGpEKhFjFd~r+u+@d3c@^3+pBf~pqc;2i|e5&3q+H_PS zAi&OktJP+#zKI+AB`S)LEb;RFf9CvnJ9zyekN|LA|Bq}M7xk9$ZTw;O>!zypgJKib z#D7LW{aMD7Jyj7I9YWL_+?gI zgIuEF;#2Gy)1IXr++w*lhU!mk9@JRlt zz(Q?4R+U#RyTZxsggFa@i*XOaN(wECM`5XCDs3*>3cy+F6|=l3+q|2R!J4qmSGeg# zcozte5ozu-r;FD%MwpPX!sT+alOQouoX1zY^6s19QS}PQx8C?)nE5Ui*q|p^r+fWs zUN}=BtF)!HzQ!x=v>~GcT?`e7xh?CDWy==)JNjF53kG;sk9OVLmoLCq&+d?VNjl3H zEx{wbW4&j3wR`+CmwPh9_rOqGk?#Yr45l91zL=&i8ktDjy=OPIePDdNk*8~oXYeY& z!7A_zY1e{uD!^MqC?W8#=c+|bx33@mctNOp$kv)q9`6Z~Ti56$^(a#(`L*H7qt!}+8zr%WaIF#TO8~cpEp7kxSKSzbu2?>Id9`BW~B>)1E9bY<}N>!11UpEi5aLlVou9R`hGW$U1KO1 z>_8ntDT4}}mH~kynXfC^dUCSo2we8OsTmh*aPVYd=6I6&5xkrN={c+MaKpZw(-;!r zRpC~Zmn6jqph1N;OT&p)1k6js#ZqvCSwukL8(!^E$oQ*p0Wk)q(N_(B#5Ro4kp)xB zbxPO7xun{smg6hBi$D=lZnKi$7Q;tVj*##IRborYi?I-sY0N{fBe@sJ|1 za}}$IDyZVcmG(NaDp_Ao>zAYRqZV%GH`LI|;}9c|tUYVwqPbSCUpEGz7nV+Lo-XY2 z4+=oN&gI+{2ws2T?U+vZnd6kINio}rHAx{YzA8q`N6RlVQSl+d@|QUjX?+Ab6qyT9 zD$!`g$u5$mLeX}gPi2A{&Tt1D_meDh zrWOkcM9>$Z!D!BmSLyATXrEY~t>7-e2UfenN`zY^GoAp$A+PY7CR6%HRsvbHEI{}z zD6$NwBvFA{l@-cO3A`v%@K8=Ug@Kow`a^BTs=hDptO1uQq!%uc`sdd-aNu$S~D8YN+FkJ?!SOBsz05~F$ zSmczd&R&oEZIWo5r~+a{V%|guyWlETnZ!sK^F0oP0uQ~Fz?|J^Rdnepqa2@`P{Dx% z$GZMcMh!!paSekT^OxOIL{Wt#Pswe7%U-=?GaPHPu23z3KxGnxr!m)#J*P(G@B6J7 z96;Dyg}&a_>8Bpva^V3ha=$opV!6~GM~uip%NK%0yeS(Ifpv3)nkgY2hO}BQL!^=k&DXsI~?xo^QUQxMu;H1Wz z>w(KpW8H#_$p?26GYcYkY&aZ#BL4>D8P-h>sSWhN3Ml#MT`B3nm?N|}z(Fz+4p5Q_$#D`PfO z4d>VmWv2CKxD2DGv8et|=J~|K-d~8d!30>x11{j)!6CTuFsaxn634tAAn@3xa^H_v zJje6to-&Oi?vdYVczC59=u*%$tt%K#$;tGx#A|vAOF%)3VuQ@@ITLjHJMVMd$nh>O zPPJL_W)T$x$sg6B~bQYP@|okJDi<=K7XO36a70gWz7P5>ebmD zuKYmP?;I- zaCeSqXY^Oaggx{9jtk7ldTGfIsWLfg_JouWB1vP>%Sr4X-f6v2WQE-BCpfr6$S{t1 zH~=1BrAlgKqWKWQzM0}Rdtyoma4?=qrJVEsG9DnX9k(VXX5t~Ta_85rC@tq*QqVl? z7+-L~z_>m_piNR=!E9v!gNS#&3?QI;f{AyF)2jZFadl)P*^>>g70bnq^U0lS=U!Zz zl>AdeAs_gDQR2~t z_-^E_tZoNsV4lb3Is7g9bY1``mr;`GyUFqzAw(>;CTqPm~~ zCJj7mvsw$g_QtNOBOV3TWwd+Ym#e{|!DzB-@pU$O8_?h-cMQS-&m%>VhCN~eU}U`^ zENDzJM~`onI(WJ^7&;{hw(Yj4lx#i%m2aamJoAQfG@F_Gpv$SN$9KWs^wz|2rBBY^ zSA1{HrvTn2nHcHqHrj`(Z>f^~%EXxh3=l-QKBC~B5==f2#C=@3vH9(X2!ZTFy^e>{ zzXaUhdIi|@DM2aoLNrcC-bi1Z3jfq1*3n5EuiMzANa^g>=gxknmsF%XN zZsVeuR&}ruhDKk9DR8H+m)=*WZ4MkgdAhQ`Jsh*WYCm4fOl-UxYhNl(MZCs3eA}VZ zKkr@!S-Dg86|~<*7)T9f)Kxw)srpMq$!HQJ244RHTwPte@;t*p>;W04kegm=P>?vf z=#ccS)BlwYEfy#r6F0}R?g4mrmwo#YkE?p}Mkim#B5PCs+{?`@{(z?zuD2EU-=ECJ z_^jTnF$Vq#zSMadw{`b4LX;^XdLcMHD@w;$>+PVT6$A?#wn- zRap1@?AE8Ms;o3k21iPa2V_nx(on9)w|1x){xg>omtUU0R^1-7%vY{;w4pyL&ka3w zP2K2R>c%i&jtnV#vrc+6-Qq%O7PChGNm$1%I}CL9;>N33jzdgXu3!I_8Xo5@D&Djx zJN`K9H{!&b)ICRfD>fOAsUC3sdV7DquBl15J!u?TJU12-g82uh^Q!Aq{rGO~)Zke3 z-DO(y*M2VEcN(mN*`hfW-p;{cD{D;Hy=H8XGXvqT{IU*mPE3~7l zXO`|057%t3>@iLZSyhva>fCtZO&+4-R-KE%Ad^Q$7Z03kpAY4FE+m_;r*B}n|5f~; z;d3p3_8s$61_1;F@zcP5nx&1Q1ru`}bCVGe(0@~E|4>f(F^;MIhfE0w2==GrGcuqz z(s$ISGcvf;l(g9p!hIfcYtU5KDwm66fGmX2XTBC~-Pv>}6Oxz2$<2&+Qx}rJ7E6{> zVs8KsWWQl)dGxpee*w~JvE2p2po{FpX^YOdwB1d5HCxuH@!`Fma2@&{p3w1mzgt={ zUcB0h#{SE$F6G{N@JJ&Wf8h4*&FbbW`PIqbupx;bb)4`qjFIvYQuI*r_LBDS{LuW6 z@^Cz=FC;Xu9q@bVWzw+Zv$*?$tpxqkghRUu(*8|wPZtRZ=^Iw-q>3vA?lT0hk=NPd z-FiLE?#W)|^76{)oxsW?p&P)lXfyO(6XqiB(kExv6V#a7?CrPx=;!ph&Y*F z3P4PhIk?+cr$%4@Xkgnq!750au^KcPHF?2znTD{iMZHSikdAyIM$3p2w=;&1#J%Gn z6qx|O@Ie(gjpWZ)Aopbj2MOMnJ0Zz=z>(K70STlvh7=f27!Jrixli`Tz)cjZ)e;l2 zX9QtR5sb8_lmifhi=sy3Q!HI|Eo*YPe0g4v7af^ww6xhht|jd{HqV&Pou;gs^G?@4 zA~ZeKi^QjKmkdpryv<*Xb+x}c8*ShCPzuIQDS!EVj z$%B8*I*cVnMF+qsKlo)e7^dXjlfLN^I8PplKdSt!UC^>X4HCQ0`p2lQ>ndNd_ zLp|R>rk;#A3f>`9=5C7K7z+6PEWmX~D2P2ZrO4=f7-QYqjAB@iGDLAViKQn zVf;hNj~@sW(NR&Hd?k(lHFlJM3|~qiLBJ!PoG`a8z(39(Eegiu2~ETte`(o;3jUM* zatG{7QiJKQWzg-1D?r6QC@kNE20CWUfk-U+mCix*Q<-p}Aj2_C1~!POFr%PXn6=Or zCi~h@#@si&1cFUq$+^1;)18sdPq+Bb2fq1Xlj)tfg3p9 zI=|n{!t~IeT86p55QN`T_cm!Y++v7~d2GVy7bhNLphL0tEuwhI-jutKGBJ93FOZsr zcp=Q$@&DWef?*#aA>8jDq4C@1gZ|;_cjr6o_TbV>^ZpdS535vApTQJMDu!5yExt`i z8Bx47Cj>)eB`H&W>uoDDl%9pOny2^kCR2iPX$%|M-&plySMJrF@y8qFVB2gD* zw=KL+Tz{qIK3!PKSwQy&3nc$BgjYSbD_OUI17V-WS2si?Je}$!F6XE^R`^CWWBC14 zPAHUACWYv8xpj9&TDqAf#R+@XPzgE;3ENC9xSlWtoLLeh#R)0Ki6)xN2X@{K{W5be zA2D)%qU#{znR)hVjqNBw8=X_gswFsi{_O!lqfmokBWIX3NSb&Jrm)`P~YCr O)XdqK5J1NO^#1`TM;1i@ literal 14248 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%0DlZ%Z4Aa2HN^F{flRz6%vxSJ|CF(ZGD$28^HKYDX zDFiiUBQmC(oqYE92UGkB3I+o5|6j=V4J!Zb_@8BM|6Th33%UM}sN8pP+<$QFe@gsM z1p7Y{?%xvs4bQ%v4gUc;5b*D_^1C191OXuhk@Hkhk|ox#cd|A%wfkj3EN5?GYC~+~ Q^vlB1&6Jphks0Lw0<5xq*8l(j diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/templates/sgroup_list.tpl b/code/ryzom/tools/server/ryzom_ams/www/html/templates/sgroup_list.tpl new file mode 100644 index 000000000..9a3bc2e07 --- /dev/null +++ b/code/ryzom/tools/server/ryzom_ams/www/html/templates/sgroup_list.tpl @@ -0,0 +1,108 @@ +{block name=content} +
+
+
+

Add

+
+ + +
+
+
+
+ +
+ + Add a support group + +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ + + + +
+ +
+ +
+
+ + {if isset($RESULT_OF_ADDING) and $RESULT_OF_ADDING eq "SUCCESS"} +
+ {$group_success} +
+ {else if isset($RESULT_OF_ADDING) and $RESULT_OF_ADDING eq "NAME_TAKEN"} +
+ {$group_name_taken} +
+ {else if isset($RESULT_OF_ADDING) and $RESULT_OF_ADDING eq "TAG_TAKEN"} +
+ {$group_tag_taken} +
+ {else if isset($RESULT_OF_ADDING) and $RESULT_OF_ADDING eq "SIZE_ERROR"} +
+ {$group_size_error} +
+ {/if} +
+ +
+
+
+
+ +
+
+
+

List

+
+ + +
+
+
+
+ All support groups + + + + + + + + + + + {foreach from=$grouplist item=group} + + + + + + + {/foreach} + + +
IDNameTagAction
{$group.sGroupId}{$group.name}{$group.tag} Delete
+
+
+
+
+{/block} +