Advertisement
Guest User

Untitled

a guest
Nov 21st, 2014
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.94 KB | None | 0 0
  1. // This uses Javascript, jQuery and jQuery-UI to allow for the addition of accession analysis stubs
  2. // to new requests and accessions
  3.  
  4. var aa_stub = {
  5.  
  6. // variables
  7. ajax : 'MY URL HERE' ,
  8.  
  9. // data storage
  10. data : {} ,
  11. references : {} ,
  12. reference_order : [] ,
  13. analysis : {} ,
  14. analysis_order : [] ,
  15.  
  16. // functions
  17.  
  18. // ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
  19. // dialog popped up when "Add AA Stub' button is pressed
  20. do_dialog : function ( sample_num ) {
  21. $( '<div/>' )
  22. .attr( 'id' , 'add_new_stub' )
  23. .attr( 'title' , 'Add Stub' )
  24. .dialog()
  25. $('.ui-icon-closethick').text( 'X' )
  26. $('.ui-dialog-titlebar-close')
  27. .click( function () {
  28. $( '#add_new_stub' ).remove()
  29. } )
  30. $( '<div/>' )
  31. .appendTo( '#add_new_stub' )
  32. .attr( 'id' , 'instructions' )
  33. .text( 'Enter a reference, an analysis, any extra parameters, then click Go' )
  34.  
  35. $( '<fieldset/>' )
  36. .appendTo( '#add_new_stub' )
  37. .attr( 'id' , 'ref_box' )
  38. $( '<legend/>' )
  39. .appendTo( '#ref_box' )
  40. .text( 'Reference Species' )
  41. $( '<select/>' )
  42. .appendTo( '#ref_box' )
  43. .attr('id' ,'reference')
  44. for ( i in aa_stub.reference_order ) {
  45. var j = aa_stub.reference_order[i]
  46. var ref = aa_stub.references[j]
  47. $( '<option/>' )
  48. .text( ref )
  49. .val( j )
  50. .appendTo( '#reference' )
  51. }
  52.  
  53. $( '<fieldset/>' )
  54. .appendTo( '#add_new_stub' )
  55. .attr( 'id' , 'anal_box' )
  56. $( '<legend/>' )
  57. .appendTo( '#anal_box' )
  58. .text( 'Analysis Type' )
  59. $( '<select/>' )
  60. .appendTo( '#anal_box' )
  61. .attr('id' ,'analysis')
  62. for ( i in aa_stub.analysis_order ) {
  63. var j = aa_stub.analysis_order[i]
  64. var analysis = aa_stub.analysis[j]
  65. $( '<option/>' )
  66. .text( analysis )
  67. .val( j )
  68. .appendTo( '#analysis' )
  69. }
  70.  
  71. $( '<fieldset/>' )
  72. .appendTo( '#add_new_stub' )
  73. .attr( 'id' , 'param_box' )
  74. $( '<legend/>' )
  75. .appendTo( '#param_box' )
  76. .text( 'Extra Parameters' )
  77. $( '<input type="text"/>' )
  78. .appendTo( '#param_box' )
  79. .attr('id' ,'extra_parameters')
  80. $( '<input type="hidden"/>' )
  81. .appendTo( '#param_box' )
  82. .attr('id' ,'sample')
  83. .val( sample_num )
  84.  
  85. $( '<div/>' )
  86. .attr( 'id' , 'stub_go' )
  87. .text( 'Go' )
  88. .appendTo( '#add_new_stub' )
  89. .click( function () {
  90. var reference = $( '#reference' ).val()
  91. var analysis = $( '#analysis' ).val()
  92. var parameters = $( '#extra_parameters' ).val()
  93. var sample = $( '#sample' ).val()
  94. $('.ui-icon-closethick').click( )
  95. if ( sample === '' ) {
  96. $( '.stub_bucket' ).each( function () {
  97. var sample = $( this ).attr( 'sample' )
  98. aa_stub.add_to_bucket( sample , reference , analysis , parameters )
  99. } )
  100. }
  101. else {
  102. aa_stub.add_to_bucket( sample , reference , analysis , parameters )
  103. }
  104. } )
  105. } ,
  106.  
  107. // ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
  108. // adding AA stubs to the form
  109. add_to_bucket : function ( sample , reference , analysis , parameters ) {
  110. var bucket = '#stub_bucket_' + sample
  111. var ref_text = aa_stub.references[ reference ]
  112. var a_text = aa_stub.analysis[ analysis ]
  113.  
  114. var number = 1
  115. $( bucket ).children( 'span' ).each( function () {
  116. var num = parseInt( $( this ).attr( 'number' ) )
  117. if ( number <= num ) { number = 1 + num }
  118. } )
  119. var id = [ 'span' , sample , number ].join('_')
  120. $( '<span/>' )
  121. .addClass( 'stub' )
  122. .attr( 'number' , number )
  123. .attr( 'id' , id )
  124. .appendTo( bucket )
  125. .text( [ ref_text , a_text ].join( ' - ' ) )
  126. .attr( 'title' , 'Click to delete' )
  127. .click( function () {
  128. $(this).remove()
  129. } )
  130. $( '<input type="hidden">' )
  131. .attr( 'name' , [ 'reference' , sample , number ].join('_') )
  132. .val( reference )
  133. .appendTo( '#' + id )
  134. $( '<input type="hidden">' )
  135. .attr( 'name' , [ 'analysis' , sample , number ].join('_') )
  136. .val( analysis )
  137. .appendTo( '#' + id )
  138. $( '<input type="hidden">' )
  139. .attr( 'name' , [ 'parameters' , sample , number ].join('_') )
  140. .val( parameters )
  141. .appendTo( '#' + id )
  142. } ,
  143.  
  144. // ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
  145. // the startup part
  146. initialize : function ( ) {
  147. aa_stub.data.flag = 1
  148. // fill data
  149. var url = aa_stub.ajax
  150. $.post( url , function ( data ) {
  151. for ( i in data.references ) {
  152. var ref = data.references[ i ]
  153. aa_stub.references[ i ] = ref
  154. }
  155. for ( i in data.analysis ) {
  156. var ref = data.analysis[ i ]
  157. aa_stub.analysis[ i ] = ref
  158. }
  159.  
  160. for ( i in data.references_order ) {
  161. var j = data.references_order[ i ]
  162. aa_stub.reference_order.push( j )
  163. }
  164. for ( i in data.analysis_order ) {
  165. var j = data.analysis_order[ i ]
  166. aa_stub.analysis_order.push( j )
  167. }
  168. } , 'json' )
  169. // get all
  170. $( '#add_stubs_to_all' )
  171. .click( function () {
  172. aa_stub.do_dialog( '' )
  173. } )
  174. // get one
  175. $( '.stub_add' )
  176. .click( function () {
  177. var sample = $( this ).attr('sample')
  178. aa_stub.do_dialog( sample )
  179. } )
  180. }
  181.  
  182. }
  183.  
  184. $( function() {
  185. aa_stub.initialize()
  186. } )
  187.  
  188. $( '<div/>' )
  189. .attr( 'id' , 'add_new_stub' )
  190. .attr( 'title' , 'Add Stub' )
  191. .dialog()
  192.  
  193. $('<div id="add_new_stup" title="Add Stub"></div>').dialog();
  194.  
  195. $('<div />', { id: 'add_new_stub', title: 'Add Stub })
  196. .dialog()
  197.  
  198. $.each(array, function (i, el) {
  199. ... your code ...
  200. });
  201.  
  202. var number = 1
  203. $( bucket ).children( 'span' ).each( function () {
  204. var num = parseInt( $( this ).attr( 'number' ) )
  205. if ( number <= num ) { number = 1 + num }
  206. } )
  207. var id = [ 'span' , sample , number ].join('_')
  208. $( '<span/>' )
  209. .addClass( 'stub' )
  210. .attr( 'number' , number )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement