clean and debug
authorcavaliet
Mon, 09 Sep 2013 18:41:32 +0200
changeset 57 3a8a55131180
parent 53 5f6edd450863
child 58 32591d23cb4b
clean and debug
src/p4l/static/p4l/js/p4l.js
src/p4l/static/p4l/js/semantictree.js
src/p4l/static/p4l/templates/addSemanticUriForm.html
src/p4l/templates/p4l/record_update_form.html
src/p4l/views.py
--- a/src/p4l/static/p4l/js/p4l.js	Mon Sep 09 18:01:47 2013 +0200
+++ b/src/p4l/static/p4l/js/p4l.js	Mon Sep 09 18:41:32 2013 +0200
@@ -54,10 +54,6 @@
         $scope.record.$save({recordId: context.record_id});
     }
     
-    $scope.addUriToList = function(list, uri) {
-    	list.push(uri);
-    };
-    
     $scope.removeFromList = function(uri, list) {
     	i = list.indexOf(uri);
     	if(i>=0){
@@ -82,15 +78,15 @@
       replace: true,
       transclude: true,
       scope: {
-    	  localid:"@",
-    	  listname:"@"
+    	  listname:"@",
+    	  list:"=",
       },
       templateUrl: function(tElement, tAttrs) {
           return context.urls.base_static+'p4l/templates/addSemanticUriForm.html';  
       },
       link: function($scope, $element, $attrs) {
     	  // Get queries attributes from $scope listname and context query dict
-    	  attr_dict = context[$scope.listname + "_query_dict"];
+    	  attr_dict = context.query_dicts[$scope.listname];
     	  for (var k in attr_dict){
 			  if (attr_dict.hasOwnProperty(k)) {
 			      $scope[k] = attr_dict[k];
@@ -98,7 +94,7 @@
 		  }
     	  // initalize autocomplete and browse thesaurus events
     	  init_autocomplete();
-    	  // We have to apply because init_browse needs the real ids and not {{ localid }}
+    	  // We have to apply because init_browse needs the real ids and not {{ $id }}
     	  $scope.$apply();
     	  init_browse();
       },
@@ -108,7 +104,7 @@
 	    $scope.addUriText = '';
 	    
 	    $scope.addUriToList = function() {
-	    	$scope.record[$scope.listname].push($scope.addUriText);
+	    	$scope.list.push($scope.addUriText);
 	        $scope.addUriText = '';
 	    };
 	    
--- a/src/p4l/static/p4l/js/semantictree.js	Mon Sep 09 18:01:47 2013 +0200
+++ b/src/p4l/static/p4l/js/semantictree.js	Mon Sep 09 18:41:32 2013 +0200
@@ -125,7 +125,7 @@
 			                            			"title" : b[i]["label"]["value"] + " (" + nb + ") "
 			                            		},
 			                            		"state" : "closed",
-			                            		"metadata" : {uri: "<" + uri + ">", label:b[i]["label"]["value"]}
+			                            		"metadata" : {uri: "<"+uri+">", label:b[i]["label"]["value"]}
 			                            		//"language" : "en"
 			                            	});
 	                            		}
@@ -134,7 +134,7 @@
 			                            		"data" : { 
 			                            			"title" : b[i]["label"]["value"]
 			                            		},
-			                            		"metadata" : {uri: "<" + uri + ">", label:b[i]["label"]["value"]}
+			                            		"metadata" : {uri: "<"+uri+">", label:b[i]["label"]["value"]}
 			                            	});
 	                            		}
 	                            	}
@@ -147,10 +147,6 @@
 	                        },
 	                        progressive_render: true
 	                    },
-	                    ui : {
-	                        select_limit: 1,
-	                        initially_select: $('#thesaurus_tree').val()?['node-term-'+$('#thesaurus_tree').val()]:[]
-	                    },
 	                    plugins : [ "themes", "json_data", "ui"]
 	                });
 	        },
@@ -177,6 +173,9 @@
 	                        else{
 	                        	// First we update the uri/label dict
 	                        	uri = selected_node.data('uri');
+	                        	// We remove the <> from the uri
+	                        	uri = uri.substring(1);
+	                        	uri = uri.substring(0, uri.length - 1);
 	                        	label = selected_node.data('label');
 	                        	angular.element($('#id_'+input_name)[0]).scope().updateUriLabelDict(uri, label);
 	                        	// Angular does not listen to val() event so we update the model value manually:
--- a/src/p4l/static/p4l/templates/addSemanticUriForm.html	Mon Sep 09 18:01:47 2013 +0200
+++ b/src/p4l/static/p4l/templates/addSemanticUriForm.html	Mon Sep 09 18:41:32 2013 +0200
@@ -1,13 +1,13 @@
 <form class="form-inline" role="form" > 
     <div class="form-group col-md-8">
-        <input id="id_{{localid}}" ng-model="addUriText" class="semantic-tree form-control col-md-10" type="text" placeholder="{{'Add a new theme' | translate}}"
+        <input id="id_{{ $id }}" ng-model="addUriText" class="semantic-tree form-control col-md-10" type="text" placeholder="{{'Add a new theme' | translate}}"
                data-url="{{ dataurl }}" data-query="{{ dataquery }}" data-root-query="{{ datarootquery }}" 
                data-childs-query="{{ datachildsquery }}" data-child-count-query="{{ datachildcountquery }}" /> 
         {{ 'or' | translate}}
-        <span id="dialog-link-container-{{localid}}" class="dialog-link-container ui-state-default ui-corner-all"> 
-            <a href="#" id="dialog-link-{{localid}}" class="btn dialog-link" title="Browse">{{'Browse' | translate}}</a> 
+        <span id="dialog-link-container-{{ $id }}" class="dialog-link-container ui-state-default ui-corner-all"> 
+            <a href="#" id="dialog-link-{{ $id }}" class="btn dialog-link" title="Browse">{{'Browse' | translate}}</a> 
         </span>
-        <span id="dialog-{{localid}}" class="dialog" title="Select term"><span id="term-tree-{{localid}}"></span></span>
+        <span id="dialog-{{ $id }}" class="dialog" title="Select term"><span id="term-tree-{{ $id }}"></span></span>
     </div>
     <div class="form-group">
         <button type="submit" class="btn btn-primary" ng-click="addUriToList()">{{'Add' | translate}}</button>
--- a/src/p4l/templates/p4l/record_update_form.html	Mon Sep 09 18:01:47 2013 +0200
+++ b/src/p4l/templates/p4l/record_update_form.html	Mon Sep 09 18:41:32 2013 +0200
@@ -30,8 +30,7 @@
                 base_static: "{% get_static_prefix %}",
                 record_api: "{% url 'record-detail' identifier=':recordId' %}".replace("\%3A",":"),                
             },
-            themes_query_dict: angular.fromJson('{{ themes_query_dict | safe | addslashes}}'),
-            subjects_query_dict: angular.fromJson('{{ subjects_query_dict | safe | addslashes}}')
+            query_dicts: angular.fromJson('{{ query_dicts | safe | addslashes}}'),
         })
         .config(['$translateProvider', function($translateProvider) {
             $translateProvider.translations(catalog); //catalog is declared in django.views.i18n.javascript_catalog
@@ -59,10 +58,10 @@
     <tr>
       <td>{{'subjects' | translate}}</td>
       <td>
-          <ul>
-              <li ng-repeat="subject in record.subjects">{{uriLabels[subject]}} <small class="text-muted">({{subject}})</small> <a ng-click='removeFromList(subject, record.subjects)' class="btn btn-default btn-xs"><i class="glyphicon glyphicon-trash"></i></a></li>
+          <ul ng-repeat="subject in record.subjects">
+              <li>{{uriLabels[subject]}} <small class="text-muted">({{subject}})</small> <a ng-click='removeFromList(subject, record.subjects)' class="btn btn-default btn-xs"><i class="glyphicon glyphicon-trash"></i></a></li>
           </ul>
-          <add-sem-uri localid="addSubjectText" listname="subjects"></add-sem-uri>
+          <add-sem-uri list="record.subjects" listname="subjects"></add-sem-uri>
       </td>
     </tr>
     <tr>
@@ -71,7 +70,7 @@
           <ul ng-repeat="theme in record.themes">
               <li>{{ uriLabels[theme] }} <small class="text-muted">({{theme}})</small> <a ng-click='removeFromList(theme, record.themes)' class="btn btn-default btn-xs"><i class="glyphicon glyphicon-trash"></i></a></li>
           </ul>
-          <add-sem-uri localid="addThemeText" listname="themes"></add-sem-uri>
+          <add-sem-uri list="record.themes" listname="themes"></add-sem-uri>
       </td>
     </tr>
     <tr>
--- a/src/p4l/views.py	Mon Sep 09 18:01:47 2013 +0200
+++ b/src/p4l/views.py	Mon Sep 09 18:41:32 2013 +0200
@@ -125,20 +125,23 @@
         uri_labels.update(get_labels_for_uris([self.object.recordType] if self.object.recordType else [], "http://www.iiep.unesco.org/plan4learning/scheme/DocumentType", lang, False))
         context['uri_labels'] = json.dumps(uri_labels)
         
-        context['subjects_query_dict'] = json.dumps({
-                            'dataurl': settings.SPARQL_QUERY_ENDPOINT,
-                            'dataquery': settings.SPARQL_SUBJECT_QUERIES["filter"],
-                            'datarootquery': settings.SPARQL_SUBJECT_QUERIES["root"],
-                            'datachildsquery': settings.SPARQL_SUBJECT_QUERIES["childs"],
-                            'datachildcountquery': settings.SPARQL_SUBJECT_QUERIES["child-count"]
-                            })
-        context['themes_query_dict'] = json.dumps({
-                            'dataurl': settings.SPARQL_QUERY_ENDPOINT,
-                            'dataquery': settings.SPARQL_THEME_QUERIES["filter"],
-                            'datarootquery': settings.SPARQL_THEME_QUERIES["root"],
-                            'datachildsquery': settings.SPARQL_THEME_QUERIES["childs"],
-                            'datachildcountquery': settings.SPARQL_THEME_QUERIES["child-count"]
-                            })
+        query_dicts = {
+            'subjects': {
+                'dataurl': settings.SPARQL_QUERY_ENDPOINT,
+                'dataquery': settings.SPARQL_SUBJECT_QUERIES["filter"],
+                'datarootquery': settings.SPARQL_SUBJECT_QUERIES["root"],
+                'datachildsquery': settings.SPARQL_SUBJECT_QUERIES["childs"],
+                'datachildcountquery': settings.SPARQL_SUBJECT_QUERIES["child-count"]
+            },
+            'themes' : {
+                'dataurl': settings.SPARQL_QUERY_ENDPOINT,
+                'dataquery': settings.SPARQL_THEME_QUERIES["filter"],
+                'datarootquery': settings.SPARQL_THEME_QUERIES["root"],
+                'datachildsquery': settings.SPARQL_THEME_QUERIES["childs"],
+                'datachildcountquery': settings.SPARQL_THEME_QUERIES["child-count"]
+            }
+        }
+        context['query_dicts'] = json.dumps(query_dicts)
         
         return context