--- 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