changeset 600:c3c1091639ad feature_36

Some JS changes to the behaviour of user/author selection interface.
author luisf <luis.figueira@eecs.qmul.ac.uk>
date Tue, 16 Aug 2011 17:38:30 +0100
parents c6cfe1f2eac1
children 1608b3cb50cd
files vendor/plugins/redmine_bibliography/app/controllers/publications_controller.rb vendor/plugins/redmine_bibliography/app/helpers/publications_helper.rb vendor/plugins/redmine_bibliography/app/views/publications/_authorship_fields.rhtml vendor/plugins/redmine_bibliography/assets/javascripts/authors.js vendor/plugins/redmine_bibliography/lib/bibliography/user_author_patch.rb
diffstat 5 files changed, 52 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
--- a/vendor/plugins/redmine_bibliography/app/controllers/publications_controller.rb	Tue Aug 16 15:36:32 2011 +0100
+++ b/vendor/plugins/redmine_bibliography/app/controllers/publications_controller.rb	Tue Aug 16 17:38:30 2011 +0100
@@ -249,12 +249,21 @@
 
     name_field = "publication_authorships_attributes_#{object_id}_name_on_paper".to_sym
     email_field = "publication_authorships_attributes_#{object_id}_email".to_sym
+    institution_field = "publication_authorships_attributes_#{object_id}_institution".to_sym
+    
+    yes_radio = "publication_authorships_attributes_#{object_id}_identify_author_yes".to_sym
     
     respond_to do |format|
       format.js {logger.error { "JS" }
         render(:update) {|page| 
           page[name_field].value = item.name
           page[email_field].value = item.mail
+          page[institution_field].value = item.institution
+
+          page[yes_radio].checked = true
+          page[name_field].disabled = true
+          page[email_field].disabled = true
+          page[institution_field].disabled = true
         }
       }
     end
--- a/vendor/plugins/redmine_bibliography/app/helpers/publications_helper.rb	Tue Aug 16 15:36:32 2011 +0100
+++ b/vendor/plugins/redmine_bibliography/app/helpers/publications_helper.rb	Tue Aug 16 17:38:30 2011 +0100
@@ -9,12 +9,7 @@
     s 
   end
   
-  
-  
-  
-  
-  
-  def generate_autofill_suggestions(item)
+  def TO_BE_DELETED_generate_autofill_suggestions(item)
 
     logger.error { "Generate Autofill Suggestions for #{item.class} #{item.id}" }
 
--- a/vendor/plugins/redmine_bibliography/app/views/publications/_authorship_fields.rhtml	Tue Aug 16 15:36:32 2011 +0100
+++ b/vendor/plugins/redmine_bibliography/app/views/publications/_authorship_fields.rhtml	Tue Aug 16 17:38:30 2011 +0100
@@ -21,9 +21,9 @@
       </p>
         <h5>Is it this author?</h5>
       <p>
-	      <%= f.radio_button :identify_author, "yes" %><%= f.label :identify_author_yes %><br />
-	      <%= f.radio_button :identify_author, "correct" %><%= f.label :identify_author_correct %><br />
-	      <%= f.radio_button :identify_author, "no" %><%= f.label :identify_author_no %><br />
+	      <%= f.radio_button :identify_author, "yes", :onClick => "identify_author_status($(this).value, #{form_object_id(f.object_name) });" %><%= f.label :identify_author_yes %><br />
+	      <%= f.radio_button :identify_author, "correct", :onClick => "identify_author_status($(this).value, #{form_object_id(f.object_name) });" %><%= f.label :identify_author_correct %><br />
+	      <%= f.radio_button :identify_author, "no", :onClick => "identify_author_status($(this).value, #{form_object_id(f.object_name) });" %><%= f.label :identify_author_no %><br />
       </p>
     </div>	
   </p>
--- a/vendor/plugins/redmine_bibliography/assets/javascripts/authors.js	Tue Aug 16 15:36:32 2011 +0100
+++ b/vendor/plugins/redmine_bibliography/assets/javascripts/authors.js	Tue Aug 16 17:38:30 2011 +0100
@@ -11,21 +11,32 @@
   });
 }
 
-function update_author_info(form_object_id){
-	$author = $('publication_authorships_attributes_' + form_object_id + '_search_results').value;
-	
-	alert($author.split('_')[0] + "  " + $author.split('_')[1]);
-	
-	alert("<%= " + $author.split('_')[0] + ".find(" + $author.split('_')[1] + ").name %>")
-	
-	$('publication_authorships_attributes_' + form_object_id + '_name_on_paper').value = $author
-			
-	//$(link).up('div').up('div').select('input[id^=publication_authorships_attributes]').each(
-	//	function(e){
-	//		key = e.name.split("[").last().trim().sub(']','');
-	//		
-	//		// test for undefined			
-	//		e.value = author_info[key];
-	//	}		
-	//)
-}
\ No newline at end of file
+function identify_author_status(status, object_id) {
+	name_field = $('publication_authorships_attributes_' + object_id + '_name_on_paper');
+    email_field = $('publication_authorships_attributes_' + object_id + '_email');
+    institution_field = $('publication_authorships_attributes_' + object_id + '_institution');
+
+	switch(status)
+	{
+		case "yes":
+			name_field.disabled = true;
+			email_field.disabled = true;
+			institution_field.disabled = true;
+		break;
+		case "no":
+			name_field.value = "";
+			email_field.value = "";
+			institution_field.value = "";
+		
+			name_field.disabled = false;
+			email_field.disabled = false;
+			institution_field.disabled = false;
+
+		break;
+		case "correct":
+			name_field.disabled = false;
+			email_field.disabled = false;
+			institution_field.disabled = false;
+		break;
+	}
+}
--- a/vendor/plugins/redmine_bibliography/lib/bibliography/user_author_patch.rb	Tue Aug 16 15:36:32 2011 +0100
+++ b/vendor/plugins/redmine_bibliography/lib/bibliography/user_author_patch.rb	Tue Aug 16 17:38:30 2011 +0100
@@ -13,7 +13,17 @@
     
     module InstanceMethods
 
+      def institution
+        unless self.ssamr_user_detail.nil?
+          institution_name = self.ssamr_user_detail.institution_name
+        else
+          institution_name = "No Institution Set"
+        end        
+        return institution_name        
+      end
+
       def get_author_info
+        # TODO: DELETE THIS METHOD??
         info = { 
           :name_on_paper =>  self.name,
           :email => self.mail,