PageRenderTime 28ms CodeModel.GetById 0ms RepoModel.GetById 0ms app.codeStats 0ms

/Prohits/analyst/submit_gel.inc.php

http://prohits.googlecode.com/
PHP | 383 lines | 363 code | 3 blank | 17 comment | 3 complexity | 51972cb6de699588cb68b76358b2d415 MD5 | raw file
  1. <?
  2. /***********************************************************************
  3. Copyright 2010 Gingras and Tyers labs,
  4. Samuel Lunenfeld Research Institute, Mount Sinai Hospital.
  5. Licensed under the Apache License, Version 2.0 (the "License");
  6. you may not use this file except in compliance with the License.
  7. You may obtain a copy of the License at
  8. http://www.apache.org/licenses/LICENSE-2.0
  9. Unless required by applicable law or agreed to in writing, software
  10. distributed under the License is distributed on an "AS IS" BASIS,
  11. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. See the License for the specific language governing permissions and
  13. limitations under the License.
  14. *************************************************************************/
  15. require("classes/gel_class.php");
  16. require("classes/plate_class.php");
  17. $Gels = new Gel();
  18. $imageLocation = "./gel_images/";
  19. $bgcolor = $TB_CELL_COLOR;
  20. $bgcolordark = "#c5b781";
  21. //echo $frm_Image."####";
  22. ?>
  23. <script language="javascript">
  24. function confirm_delete(Gel_ID){
  25. if(confirm("Are you sure that you want to delete the Gel?")){
  26. document.del_form.Gel_ID.value = Gel_ID;
  27. document.del_form.submit();
  28. }
  29. }
  30. function checkform(theForm){
  31. if(theForm.frm_GelType.value != "dummy"){
  32. var the_name = theForm.frm_Name.value;
  33. var the_stain = theForm.frm_Stain.value;
  34. var imageFullName = theForm.frm_Image.value;
  35. var regEx = new RegExp('\\\\', 'gi');
  36. imageFullName = imageFullName.replace(regEx, '/');
  37. var imageNameArr = imageFullName.split('/')
  38. var imageName = imageNameArr[imageNameArr.length-1];
  39. if(imageName != "" && !(/(\.jpe?g|\.gif)$/i.test(imageName))){
  40. alert('uploaded file is not gif or jpeg image, please upload a gif or gpeg file');
  41. }else if(/[^-\w\.]/.test(imageName)){
  42. alert("File name should be made up with characters 'A-Z', 'a-z', '0-9', '-' and '.'.");
  43. }else if(the_name == '' || trimString(the_name) == 0 || the_stain == ''){
  44. alert("Bold field names are required to make the insert.");
  45. }else{
  46. theForm.submit();
  47. }
  48. }else{
  49. theForm.submit();
  50. }
  51. }
  52. function remove_image(theForm){
  53. theForm.theaction.value = 'removeImage';
  54. theForm.submit();
  55. }
  56. function select_gel(theForm){
  57. theForm.theaction.value = "";
  58. theForm.action = "bait.php";
  59. theForm.submit();
  60. }
  61. function trimString (str) {
  62. var str = this != window? this : str;
  63. return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
  64. }
  65. function go_back(){
  66. document.location = "./gel.php?theaction=viewall<?echo ($sub)?"&sub=$sub":"";?>";
  67. }
  68. function check_spillover(Gel_ID){
  69. file = "checkspillover.php?Gel_ID="+Gel_ID;
  70. newwin = window.open(file,"",'toolbar=1,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=550,height=400');
  71. newwin.moveTo(0,0);
  72. }
  73. function has_spe_character(str){
  74. if(!(/[-\w]/.test(str))){
  75. alert("Please enter characters '0-9,A-Z,a-z'and '_' only.");
  76. }
  77. }
  78. function comfirm_selected_gel(theForm){
  79. var Gel_ID = theForm.Gel_ID.value;
  80. if(Gel_ID == ''){
  81. alert("Please select a gel");
  82. return;
  83. }
  84. var x = theForm.Gel_ID;
  85. var gel_name = x.options[x.selectedIndex].text;
  86. if(confirm("Select gel '"+ gel_name +"' and continue?")){
  87. opener.document.editform.passed_Gel_ID.value = Gel_ID;
  88. opener.document.editform.submit();
  89. theForm.addNewType.value = 'Sample';
  90. theForm.theaction.value = 'addNew';
  91. theForm.submit();
  92. }
  93. }
  94. function goto_new_sample(theForm){
  95. theForm.addNewType.value = 'Sample';
  96. theForm.theaction.value = 'addnew';
  97. theForm.submit();
  98. }
  99. function add_new_gel(){
  100. theForm = document.list_form;
  101. theForm.submit();
  102. }
  103. </script>
  104. <table border="0" cellpadding="0" cellspacing="0" width="90%">
  105. <tr>
  106. <td colspan=2 height=1 bgcolor="black"><img src="images/pixel.gif"></td>
  107. </tr>
  108. <tr>
  109. <td align="center" colspan=2 valign=top>
  110. <?
  111. if($theaction == "list"){
  112. $SQL = "SELECT `ID`, `Name` FROM `Gel` WHERE `ProjectID`='$ProjectID' ORDER BY `ID` DESC";
  113. $gel_arr = $HITSDB->fetchAll($SQL);
  114. $gelTitlle = "Select or Add a Gel";
  115. ?>
  116. <form name=list_form method=post action=<?echo $PHP_SELF;?>>
  117. <input type=hidden name=theaction value="addnew">
  118. <input type=hidden name=sub value=<?echo $sub;?>>
  119. <input type=hidden name=ProjectID value='<?echo $ProjectID?>'>
  120. <input type=hidden name=addNewType value='<?echo $addNewType?>'>
  121. <input type=hidden name=gelMode value='<?echo $gelMode?>'>
  122. <input type=hidden name=Bait_ID value='<?echo $Bait_ID?>'>
  123. <input type=hidden name=Exp_ID value='<?echo $Exp_ID?>'>
  124. <input type=hidden name=DBname value=<?=$DBname;?>>
  125. <table border="0" cellpadding="0" cellspacing="1" width="500">
  126. <tr bgcolor="<?echo $bgcolordark;?>">
  127. <td colspan="2" align="center" height=20>
  128. <div class=tableheader><?echo $gelTitlle;?></div>
  129. </td>
  130. </tr>
  131. <tr bgcolor="<?echo $bgcolor;?>" align="center">
  132. <td colspan="2">
  133. <select name="Gel_ID" onChange="comfirm_selected_gel(this.form);">
  134. <option value=''>-- select gel --
  135. <?
  136. foreach($gel_arr as $gel_info){
  137. echo " <option value=".$gel_info['ID'].">(".$gel_info['ID'].")".$gel_info['Name']."\n";
  138. }
  139. ?>
  140. </select>
  141. &nbsp;&nbsp;<a href="javascript: add_new_gel();" class=button>[new]</a>
  142. </td>
  143. </tr>
  144. </table>
  145. <?
  146. }elseif($theaction == "addnew" OR $theaction == "insert" ){
  147. if(($theaction == "insert") and $frm_Name and $AUTH->Insert) {
  148. $Gels->insert( $frm_Name, $frm_Stain, $frm_Notes,$frm_GelType,$AccessUserID);
  149. if($sub != "3" && $sub != "4"){
  150. $uploaded_file_name = $_FILES['frm_Image']['name'];
  151. $uploaded_file_type = $_FILES['frm_Image']['type'];
  152. if(strstr($uploaded_file_type,"jpeg") or strstr($uploaded_file_type,"gif")){
  153. $uploaded_file_name = preg_replace ( '/[^-+\w+\.]/', '', $uploaded_file_name );
  154. $new_pic_name = "P".$ProjectID."G".$Gels->ID . "_" . $uploaded_file_name;
  155. if (move_uploaded_file($_FILES['frm_Image']['tmp_name'], $imageLocation . $new_pic_name)){
  156. $Gels->update_image($Gels->ID, $new_pic_name);
  157. $img_msg = "image was successfully uploaded";
  158. $frm_Image = $new_pic_name;
  159. }else{
  160. $frm_Image = "";
  161. $img_msg = "<font color=#FF0000>Possible file upload attack! Please try again</font>";
  162. }
  163. }else{
  164. $frm_Image = "";
  165. if($uploaded_file_name){
  166. $img_msg = "<font color=red>uploaded file is not gif or jpeg image, please upload a gif or gpeg file</font>";
  167. }else{
  168. $img_msg = "<font color=#FF0000>no gel image uploaded</font>";
  169. }
  170. }
  171. }
  172. //add record into Log table
  173. $Desc = "Name=$frm_Name,Image=$frm_Image,Stain=$frm_Stain";
  174. $Log->insert($AccessUserID,'Gel',$Gels->ID,'insert',$Desc,$AccessProjectID);
  175. //end of Log table
  176. echo "<center><font color='green' face='helvetica,arial,futura' size=3>";
  177. echo "Insert completed ($img_msg).";
  178. echo "</font></center>";
  179. //after insert change the action
  180. $theaction = "modify";
  181. $Gel_ID = $Gels->ID;
  182. } else {
  183. if($theaction == "insert") {
  184. echo "<center><font color='red' face='helvetica,arial,futura' size=3>";
  185. echo "Missing info. <b>Bold</b> field names are required to make the insert.";
  186. echo "</font></center>";
  187. }
  188. ?>
  189. <form name=gel_form method=post action=<?echo $PHP_SELF;?> enctype="multipart/form-data">
  190. <input type=hidden name=theaction value="insert">
  191. <input type=hidden name=Gel_ID value="<?echo $Gel_ID;?>">
  192. <input type=hidden name=sub value=<?echo $sub;?>>
  193. <input type=hidden name=ProjectID value='<?echo $ProjectID?>'>
  194. <input type=hidden name=addNewType value='<?echo $addNewType?>'>
  195. <input type=hidden name=gelMode value='<?echo $gelMode?>'>
  196. <input type=hidden name=Bait_ID value='<?echo $Bait_ID?>'>
  197. <input type=hidden name=Exp_ID value='<?echo $Exp_ID?>'>
  198. <input type=hidden name=DBname value=<?=$DBname;?>>
  199. <br>
  200. <table border="0" cellpadding="0" cellspacing="1" width="500">
  201. <tr bgcolor="<?echo $bgcolordark;?>">
  202. <td colspan="2" align="center" height=20>
  203. <?
  204. if($sub == "3" || $sub == "4"){
  205. $gelTitlle = "New Dummy Gel";
  206. }else{
  207. $gelTitlle = "New Gel";
  208. }
  209. ?>
  210. <div class=tableheader><?echo $gelTitlle;?></div>
  211. </td>
  212. </tr>
  213. <?
  214. //---------------------
  215. include("gel.inc.php");
  216. //---------------------
  217. ?>
  218. <tr bgcolor="<?echo $bgcolor;?>" align="center">
  219. <td colspan="2"><input type="button" value="Save" onclick="javascript: checkform(document.gel_form);"></td>
  220. </tr>
  221. </table>
  222. </form>
  223. <?
  224. }//-----------------end of insert
  225. }
  226. if($theaction == "modify" OR $theaction == "update" OR $theaction == "removeImage") {
  227. if($theaction == "update"){
  228. if($frm_Name ){
  229. if(isset($_FILES['frm_Image']['name'])){
  230. $uploaded_file_name = $_FILES['frm_Image']['name'];
  231. $uploaded_file_type = $_FILES['frm_Image']['type'];
  232. $frm_Image = '';
  233. if(strstr($uploaded_file_type,"jpeg") or strstr($uploaded_file_type,"gif")){
  234. $uploaded_file_name = preg_replace ( '/[^-+\w+\.]/', '', $uploaded_file_name );
  235. $new_pic_name = "P".$_SESSION["workingProjectID"]."G". $Gel_ID . "_" . $uploaded_file_name;
  236. if (move_uploaded_file($_FILES['frm_Image']['tmp_name'], $imageLocation . $new_pic_name)){
  237. $img_msg = "image was successfully uploaded";
  238. $frm_Image = $new_pic_name;
  239. }else{
  240. $img_msg = "<font color=#FF0000>Possible file upload attack! Please try again</font>";
  241. }
  242. }else{
  243. if($uploaded_file_name){
  244. $img_msg = "<font color=red>uploaded file is not gif nor jpeg image, please upload a gif or jpeg file.</font>";
  245. }else{
  246. $img_msg = "<font color=#FF0000>no new gel image uploaded</font>";
  247. }
  248. }
  249. }
  250. $Gels->update($Gel_ID, $frm_Name, $frm_Image, $frm_Stain, $frm_Notes, $frm_GelType);
  251. echo "<center><font color='green' face='helvetica,arial,futura' size=3>";
  252. echo "Update completed ";
  253. if($img_msg){
  254. echo " ($img_msg).";
  255. }
  256. echo "</font></center>";
  257. //add record into Log table
  258. $Desc = "Name=$frm_Name,Image=$frm_Image,Stain=$frm_Stain";
  259. $Log->insert($AccessUserID,'Gel',$Gel_ID,'modify',$Desc,$AccessProjectID);
  260. //end of Log table
  261. $theaction = "modify";
  262. }else{
  263. echo "<center><font color='red' face='helvetica,arial,futura' size=3>";
  264. echo "Missing info. <b>Bold</b> field names are required to make the insert.";
  265. echo "</font></center><br>";
  266. }
  267. }
  268. $Gels->fetch($Gel_ID);
  269. if($theaction == "modify"){
  270. $frm_Name = $Gels->Name;
  271. $frm_Image = $Gels->Image;
  272. $frm_Stain = $Gels->Stain;
  273. $frm_GelType = $Gels->GelType;
  274. $frm_OwnerID = $Gels->OwnerID;
  275. $frm_Notes = $Gels->Notes;
  276. }
  277. ?> <br>
  278. <table border="0" cellpadding="0" cellspacing="1" width="500">
  279. <form name=gel_form method=post action='<?echo $PHP_SELF;?>' enctype="multipart/form-data">
  280. <input type=hidden name=theaction value=update>
  281. <input type=hidden name=Gel_ID value=<?echo $Gel_ID?>>
  282. <input type=hidden name=sub value=<?echo $sub;?>>
  283. <input type=hidden name=ProjectID value='<?echo $ProjectID?>'>
  284. <input type=hidden name=addNewType value='<?echo $addNewType?>'>
  285. <input type=hidden name=gelMode value='<?echo $gelMode?>'>
  286. <input type=hidden name=Bait_ID value='<?echo $Bait_ID?>'>
  287. <input type=hidden name=Exp_ID value='<?echo $Exp_ID?>'>
  288. <input type=hidden name=DBname value=<?=$DBname;?>>
  289. <tr bgcolor="<?echo $bgcolordark;?>">
  290. <td colspan="2" align="center" height=20>
  291. <?
  292. if($sub == "3" || $sub == "4" || $frm_GelType == "dummy"){
  293. $gelTitlle = "Modify Dummy Gel";
  294. }else{
  295. $gelTitlle = "Modify Gel";
  296. }
  297. ?>
  298. <div class=tableheader height=18><?echo $gelTitlle;?></div>
  299. </td>
  300. </tr>
  301. <?
  302. //-----------------------------------
  303. include("gel.inc.php");
  304. //-----------------------------------
  305. ?>
  306. <tr bgcolor="<?echo $bgcolor;?>" align="center">
  307. <td colspan="2" valign=top>
  308. <input type="button" value=" Close Window " class="green_but" onClick="javascript: window.close();">
  309. <?if($AUTH->Modify && ($Gels->OwnerID == $AccessUserID || $SuperUsers)){?>
  310. <input type="button" value="Modify" onClick="javascript: checkform(document.gel_form);" class=green_but>
  311. <?}?>
  312. <?if($sub){?>
  313. <input type="button" value=" Next " class="green_but" onClick="javascript: goto_new_sample(this.form);">
  314. <?}?>
  315. </td>
  316. </tr>
  317. <?
  318. $tmp_Gel = new Gel();
  319. //it will return num of lanes in diff plates
  320. if($tmp_Gel->get_plate_ids($Gel_ID)){
  321. $tmp_Plate = new Plate();
  322. ?>
  323. <tr bgcolor="<?echo $bgcolordark;?>">
  324. <td align="center"><div class=tableheader height=18>Gel Lane</td>
  325. <td align="center"><div class=tableheader height=18>In Plate</td>
  326. </tr>
  327. <?
  328. $lane_str = '';
  329. for($i = 0; $i<$tmp_Gel->count;$i++){
  330. $lane_str .= "<a href=band.php?Lane_ID=".$tmp_Gel->Lane_ID[$i]."&sub=$sub>".$tmp_Gel->Lane_num[$i]."</a>, ";
  331. if($tmp_Gel->Plate_ID[$i] != $tmp_Gel->Plate_ID[$i+1]){ //if its the end of the plate id
  332. $tmp_Plate->fetch($tmp_Gel->Plate_ID[$i]);
  333. ?>
  334. <tr bgcolor="<?echo $bgcolordark;?>">
  335. <td><font color=white face=Arial size=2>&nbsp; <? echo $lane_str;?></font></td>
  336. <td><font color=white face=Arial size=2>&nbsp;
  337. <?
  338. echo "Plate ID:<b> $tmp_Plate->ID </b> Plate Name: $tmp_Plate->Name ";
  339. echo "<a href=plate_show.php?Plate_ID=$tmp_Plate->ID&theaction=showone>";
  340. if($tmp_Plate->MSDate){
  341. echo "<img src='./images/icon_plate_check.gif' border=0>";
  342. }else{
  343. echo "<img src='./images/icon_plate.gif' border=0>";
  344. }
  345. echo"</a>";
  346. ?>
  347. </font></td>
  348. </tr>
  349. <?
  350. $lane_str ='';
  351. }//end if
  352. }//end for?>
  353. <tr bgcolor="<?echo $bgcolordark;?>">
  354. <td colspan=2 align=center>
  355. <input type=button value="Check SpillOver" onClick="javascript: check_spillover(<?echo $Gel_ID;?>);" class=black_but>
  356. <?if($USER->Username =='super' and 0){?>
  357. <a href=gel_correct_bait_id.php?Gel_ID=<?echo $Gel_ID;?> target=new>correct bait id</a>
  358. <?}?>
  359. </td>
  360. </tr>
  361. <?
  362. }//end if ?>
  363. </form>
  364. </table>
  365. <?
  366. } //end if
  367. ?>
  368. </td>
  369. </tr>
  370. </table>