JAVASCRIPT   52

rdm js

Guest on 25th July 2022 04:20:48 PM

  1. require([
  2.     'jquery',
  3.     'backbone',
  4.     'arches',
  5.     'models/concept',
  6.     'views/rdm/concept-tree',
  7.     'views/rdm/concept-report',
  8.     'views/concept-search',
  9.     'views/rdm/modals/add-scheme-form',
  10.     'views/rdm/modals/export-scheme-form',
  11.     'views/rdm/modals/delete-scheme-form',
  12.     'views/rdm/modals/import-scheme-form',
  13.     'views/rdm/modals/add-collection-form',
  14.     'views/rdm/modals/delete-collection-form',
  15.     'views/base-manager',
  16.     'viewmodels/alert',
  17.     'jquery-validate',
  18. ], function($, Backbone, arches, ConceptModel, ConceptTree, ConceptReport, ConceptSearch,
  19.     AddSchemeForm, ExportSchemeForm, DeleteSchemeForm, ImportSchemeForm, AddCollectionForm, DeleteCollectionForm, BaseManagerView, AlertViewModel) {
  20.  
  21.         var RDMView = BaseManagerView.extend({
  22.             initialize: function(options){
  23.                 var self = this;
  24.                 var mode = 'semantic';
  25.  
  26.                 // Models and views
  27.                 var concept = new ConceptModel({
  28.                     id: $('#selected-conceptid').val()
  29.                 });
  30.                 var conceptTree = new ConceptTree({
  31.                     el: $('#jqtree')[0],
  32.                     model: concept,
  33.                     url: arches.urls.concept_tree + 'semantic'
  34.                 });
  35.                 var dropdownTree = new ConceptTree({
  36.                     el: $('#ddtree')[0],
  37.                     model: concept,
  38.                     url: arches.urls.concept_tree + 'collections'
  39.                 });
  40.                 var conceptReport = new ConceptReport({
  41.                     el: $('#concept_report')[0],
  42.                     model: concept,
  43.                     mode: 'semantic',
  44.                     viewModel: this.viewModel
  45.                 });
  46.                 var conceptsearch = new ConceptSearch({
  47.                     el: $('#rdm-concept-search-container')[0],
  48.                     model: concept
  49.                 });
  50.  
  51.                 concept.on({
  52.                     'change': function(){
  53.                         window.history.pushState({}, "conceptid", concept.get('id'));
  54.                     },
  55.                     'save': function(){
  56.                         conceptTree.render();
  57.                         dropdownTree.render();
  58.                         conceptReport.render();
  59.                         concept.reset()
  60.                     },
  61.                     'delete': function(){
  62.                         conceptTree.render();
  63.                         dropdownTree.render();
  64.                         conceptReport.render();
  65.                         concept.reset()
  66.                     },
  67.                     'collection_created': function() {
  68.                         //window.location.reload();
  69.                         dropdownTree.render();
  70.                     },
  71.                 });
  72.  
  73.                 conceptTree.on({
  74.                     'conceptMoved': function() {
  75.                         conceptReport.render();
  76.                     },
  77.                     'conceptSelected': function(conceptid){
  78.                         concept.clear();
  79.                         concept.set('id', conceptid);
  80.                         conceptReport.mode = 'semantic';
  81.                         conceptReport.render();
  82.                     }
  83.                 });
  84.  
  85.                 dropdownTree.on({
  86.                     'conceptMoved': function() {
  87.                         conceptReport.render();
  88.                     },
  89.                     'conceptSelected': function(conceptid){
  90.                         concept.clear();
  91.                         concept.set('id', conceptid);
  92.                         conceptReport.mode = 'collections';
  93.                         conceptReport.render();
  94.                     }
  95.                 });
  96.  
  97.                 conceptReport.on({
  98.                     'conceptSelected': function(conceptid) {
  99.                         concept.clear();
  100.                         concept.set('id', conceptid);
  101.  
  102.                         conceptReport.mode = 'semantic';
  103.                         conceptReport.render();
  104.                     },
  105.                     'dropdownConceptSelected': function(conceptid) {
  106.                         concept.clear();
  107.                         concept.set('id', conceptid);
  108.  
  109.                         conceptReport.mode = 'collections';
  110.                         conceptReport.render();
  111.                     },
  112.                     'parentsChanged': function() {
  113.                         conceptTree.render();
  114.                         conceptReport.render();
  115.                     },
  116.                     'conceptsImported': function() {
  117.                         conceptReport.render();
  118.                     }
  119.                 });
  120.  
  121.                 conceptsearch.on("select2-selecting", function(e, el) {
  122.                     concept.clear();
  123.                     concept.set('id', e.val);
  124.                     conceptTree.render();
  125.                     conceptReport.render();
  126.                 }, conceptsearch);
  127.  
  128.  
  129.                 $('a[href="#rdm-panel"]').on( "click", function(){
  130.                     var selectedNode = conceptTree.tree.tree('getSelectedNode');
  131.                     concept.clear();
  132.                     concept.set('id', selectedNode.id || '');
  133.                    
  134.                     conceptReport.mode = 'semantic';
  135.                     conceptReport.render();
  136.                 });
  137.  
  138.                 $('a[href="#dropdown-panel"]').on( "click", function(){
  139.                     var selectedNode = dropdownTree.tree.tree('getSelectedNode');
  140.                     concept.clear();
  141.                     concept.set('id', selectedNode.id || '');
  142.                    
  143.                     conceptReport.mode = 'collections';
  144.                     conceptReport.render();
  145.                 });
  146.  
  147.                 $('a[data-toggle="#add-scheme-form"]').on( "click", function(){
  148.                     var self = this;
  149.                     var form = new AddSchemeForm({
  150.                         el: $('#add-scheme-form')
  151.                     });
  152.                     form.modal.modal('show');
  153.                     form.on({
  154.                         'conceptSchemeAdded': function(newScheme){
  155.                             conceptTree.render();
  156.                             concept.set('id', newScheme.id);
  157.                             conceptReport.render()
  158.                         }
  159.                     })
  160.                 });
  161.  
  162.                 $('a[data-toggle="#export-scheme-form"]').on( "click", function(){
  163.                     var self = this;
  164.                     var form = new ExportSchemeForm({
  165.                         el: $('#export-scheme-form')
  166.                     });
  167.                     form.modal.modal('show');
  168.                 });
  169.  
  170.                 $('a[data-toggle="#delete-scheme-form"]').on( "click", function(){
  171.                     var self = this;
  172.                     var form = new DeleteSchemeForm({
  173.                         el: $('#delete-scheme-form'),
  174.                         model: null,
  175.                         viewModel: this.viewModel
  176.                     });
  177.                     form.modal.modal('show');
  178.                     form.on({
  179.                         'conceptSchemeDeleted': function(){
  180.                             window.location = arches.urls.rdm;
  181.                         }
  182.                     })
  183.                 }.bind(this));
  184.  
  185.                 $('a[data-toggle="#import-scheme-form"]').on( "click", function(){
  186.                     var self = this;
  187.                     var form = new ImportSchemeForm({
  188.                         el: $('#import-scheme-form'),
  189.                         model: concept,
  190.                         viewModel: this.viewModel
  191.                     });
  192.                     form.modal.modal('show');
  193.                     form.on({
  194.                         'conceptSchemeAdded': function(response, status){
  195.                             if (status === 'success'){
  196.                                 conceptTree.render();
  197.                                 concept.set('id', response.responseJSON.id);
  198.                                 conceptReport.render()
  199.  
  200.                             }else{
  201.                                 self.viewModel.alert(new AlertViewModel('ep-alert-red', response.responseJSON.message.title, response.responseJSON.message.text));
  202.                             }
  203.                         }
  204.                     })
  205.                 }.bind(this));
  206.  
  207.                 $('a[data-toggle="#add-collection-form"]').on( "click", function(){
  208.                     var self = this;
  209.                     var form = new AddCollectionForm({
  210.                         el: $('#add-collection-form')
  211.                     });
  212.                     form.modal.modal('show');
  213.                     form.on({
  214.                         'collectionAdded': function(newCollection){
  215.                             dropdownTree.render();
  216.                             concept.set('id', newCollection.id);
  217.                             conceptReport.render()
  218.                         }
  219.                     })
  220.                 });
  221.  
  222.                 $('a[data-toggle="#delete-collection-form"]').on( "click", function(){
  223.                     var self = this;
  224.                     var form = new DeleteCollectionForm({
  225.                         el: $('#delete-collection-form'),
  226.                         model: null
  227.                     });
  228.                     form.modal.modal('show');
  229.                     form.on({
  230.                         'collectionDeleted': function(){
  231.                             dropdownTree.render();
  232.                         }
  233.                     })
  234.                 });
  235.  
  236.                 $('a[data-toggle="#export-all-collections"]').on( "click", function(){
  237.                     window.open(arches.urls.export_concept_collections,'_blank');
  238.                 });
  239.  
  240.  
  241.                 BaseManagerView.prototype.initialize.call(this, options)
  242.             }
  243.         });
  244.  
  245.         return new RDMView();
  246. });

Raw Paste


Login or Register to edit or fork this paste. It's free.