--- a/src/p4l/static/p4l/css/semantictree.css Mon Sep 09 14:17:47 2013 +0200
+++ b/src/p4l/static/p4l/css/semantictree.css Mon Sep 09 17:21:37 2013 +0200
@@ -1,3 +1,6 @@
+.ng-scope {
+ border: 1px dashed red;
+}
/*@charset "UTF-8";
.large_25 {
--- a/src/p4l/static/p4l/js/p4l.js Mon Sep 09 14:17:47 2013 +0200
+++ b/src/p4l/static/p4l/js/p4l.js Mon Sep 09 17:21:37 2013 +0200
@@ -54,6 +54,10 @@
$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){
@@ -72,15 +76,17 @@
});
-app.controller("ThesaurusCtrl", function($scope, RecordModel) {
+app.controller("ThesaurusCtrl", function($scope, RecordModel, context) {
$scope.record = RecordModel.record;
$scope.uriLabels = RecordModel.uriLabels;
- $scope.addSubjectText = '';
+ $scope.addUriText = '';
- $scope.addSubject = function() {
- $scope.record.subjects.push($scope.addSubjectText);
- $scope.addSubjectText = '';
+ $scope.addUriToList = function() {
+ console.log("$scope")
+ console.log($scope)
+ $scope.record[$scope.listname].push($scope.addUriText);
+ $scope.addUriText = '';
};
$scope.updateUriLabelDict = function(k,v) {
@@ -90,6 +96,46 @@
});
+app.directive('addSemUri', function(RecordModel, context){
+ return {
+ restrict: 'E',
+ // This HTML will replace the zippy directive.
+ replace: true,
+ transclude: true,
+ scope: {
+ localid:"@",
+ listname:"@",
+ //url:"ntm"
+ },
+ templateUrl: function(tElement, tAttrs) {
+ return context.urls.base_static+'p4l/templates/addSemanticUriForm.html';
+ },
+ // The linking function will add behavior to the template
+ link: function(scope, element, attrs) {
+ // Get queries attributes from scope listname and context query dict
+ /*console.log("scope = ");
+ console.log(scope);
+ console.log("id_listname = ");
+ console.log(scope["listname"]);
+ attr_dict = context[scope["listname"] + "_query_dict"];
+ console.log("attr_dict = ");
+ console.log(attr_dict);
+ for (var k in attr_dict){
+ if (attr_dict.hasOwnProperty(k)) {
+ scope[k] = attr_dict[k];
+ }
+ }*/
+ //init_autocomplete();
+ //console.log("element = ");
+ //console.log(element);
+ //console.log("attrs = ");
+ //console.log(attrs);
+ //console.log(parentCtrl.addUriToList);
+ //init_autocomplete();
+ }
+ }
+ });
+
app.config(['$routeProvider', function($routeProvider) {
// $routeProvider.when('/', {controller: 'RecordCtrl', templateUrl: 'partials/record.html'});
// $routeProvider.otherwise({redirectTo: '/'});
--- a/src/p4l/templates/p4l/record_update_form.html Mon Sep 09 14:17:47 2013 +0200
+++ b/src/p4l/templates/p4l/record_update_form.html Mon Sep 09 17:21:37 2013 +0200
@@ -30,17 +30,19 @@
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}}')
})
.config(['$translateProvider', function($translateProvider) {
$translateProvider.translations(catalog); //catalog is declared in django.views.i18n.javascript_catalog
}]);
- var sqd = angular.fromJson('{{ subjects_query_dict | safe | addslashes}}');
+ /*var sqd = angular.fromJson('{{ subjects_query_dict | safe | addslashes}}');
for (var k in sqd){
if (sqd.hasOwnProperty(k)) {
$("#id_addSubjectText").attr(k,sqd[k]);
}
- }
+ }*/
</script>
{% endblock %}
@@ -66,19 +68,16 @@
<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>
- <form class="form-inline" role="form" ng-submit="addSubject()" ng-controller="ThesaurusCtrl">
- <div class="form-group col-md-8">
- <input id="id_addSubjectText" ng-model="addSubjectText" class="semantic-tree form-control col-md-10" type="text" placeholder="{{'Add a new subject' | translate}}" required="required"/>
- {{'or' | translate}}
- <span id="dialog-link-container-addSubjectText" class="dialog-link-container ui-state-default ui-corner-all">
- <a href="#" id="dialog-link-addSubjectText" class="btn dialog-link" title="Browse">{{'Browse' | translate}}</a>
- </span>
- <span id="dialog-addSubjectText" class="dialog" title="Select term"><span id="term-tree-addSubjectText"></span></span>
- </div>
- <div class="form-group">
- <button type="submit" class="btn btn-primary">{{'Add' | translate}}</button>
- </div>
- </form>
+ <add-sem-uri localid="addSubjectText" listname="subjects"></add-sem-uri>
+ </td>
+ </tr>
+ <tr>
+ <td>{{'themes' | translate}}</td>
+ <td>
+ <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>
</td>
</tr>
<tr>