| 
									
										
										
										
											2011-02-03 13:20:43 -08:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @provides javelin-behavior-differential-diff-radios | 
					
						
							| 
									
										
										
											
												Bring Javelin into Phabricator via git submodule, not copy-and-paste
Summary:
Javelin is currently embedded in Phabricator via copy-and-paste of prebuilt
packages. This is not so great.
Pull it in as a submodule instead and make all the Phabriator resources declare
proper dependency trees. Add Javelin linting.
Test Plan:
I tried to run through pretty much all the JS functionality on the site. This is
still a high-risk change, but I did a pretty thorough test
Differential: inline comments, revealing diffs, list tokenizers, comment
preview, editing/deleting comments, add review action.
Maniphest: list tokenizer, comment actions
Herald: rule editing, tokenizers, add/remove rows
Reviewed By: tomo
Reviewers: aran, tomo, mroch, jungejason, tuomaspelkonen
CC: aran, tomo, epriestley
Differential Revision: 223
											
										 
											2011-05-03 15:11:55 -07:00
										 |  |  |  * @requires javelin-behavior | 
					
						
							|  |  |  |  *           javelin-stratcom | 
					
						
							|  |  |  |  *           javelin-dom | 
					
						
							| 
									
										
										
										
											2011-02-03 13:20:43 -08:00
										 |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | JX.behavior('differential-diff-radios', function(config) { | 
					
						
							|  |  |  |   JX.Stratcom.listen( | 
					
						
							|  |  |  |     'click', | 
					
						
							| 
									
										
										
										
											2011-02-03 15:41:58 -08:00
										 |  |  |     'differential-new-radio', | 
					
						
							| 
									
										
										
										
											2011-02-03 13:20:43 -08:00
										 |  |  |     function(e) { | 
					
						
							|  |  |  |       var target = e.getTarget(); | 
					
						
							|  |  |  |       var adjust; | 
					
						
							|  |  |  |       var node; | 
					
						
							|  |  |  |       var reset = false; | 
					
						
							|  |  |  |       for (var ii = 0; ii < config.radios.length; ii++) { | 
					
						
							|  |  |  |         node = JX.$(config.radios[ii]); | 
					
						
							| 
									
										
										
										
											2011-02-03 15:41:58 -08:00
										 |  |  |         if (parseInt(node.value, 10) >= parseInt(target.value, 10)) { | 
					
						
							| 
									
										
										
										
											2011-02-03 13:20:43 -08:00
										 |  |  |           if (node.checked) { | 
					
						
							|  |  |  |             node.checked = false; | 
					
						
							|  |  |  |             reset = true; | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |           node.disabled = 'disabled'; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |           node.disabled = ''; | 
					
						
							|  |  |  |           if (!adjust || adjust.value < node.value) { | 
					
						
							|  |  |  |             adjust = node; | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       if (reset && adjust) { | 
					
						
							|  |  |  |         adjust.checked = 'checked'; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | }); |