ose-app 0.2.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. ose_app/AppModule.py +98 -0
  2. ose_app/OntologyDataStore.py +464 -0
  3. ose_app/PermissionManager.py +78 -0
  4. ose_app/SpreadsheetSearcher.py +197 -0
  5. ose_app/__init__.py +130 -0
  6. ose_app/app.py +10 -0
  7. ose_app/constants.py +1 -0
  8. ose_app/custom_json.py +23 -0
  9. ose_app/default_config.py +39 -0
  10. ose_app/gh.py +60 -0
  11. ose_app/guards/__init__.py +0 -0
  12. ose_app/guards/verify_login.py +20 -0
  13. ose_app/guards/with_permission.py +54 -0
  14. ose_app/jinja_extensions/__init__.py +42 -0
  15. ose_app/routes/__init__.py +24 -0
  16. ose_app/routes/admin.py +108 -0
  17. ose_app/routes/api/__init__.py +23 -0
  18. ose_app/routes/api/edit.py +162 -0
  19. ose_app/routes/api/external.py +198 -0
  20. ose_app/routes/api/plugins.py +22 -0
  21. ose_app/routes/api/release.py +380 -0
  22. ose_app/routes/api/repos.py +55 -0
  23. ose_app/routes/api/scripts.py +49 -0
  24. ose_app/routes/api/search.py +19 -0
  25. ose_app/routes/api/settings.py +115 -0
  26. ose_app/routes/api/validate.py +264 -0
  27. ose_app/routes/api/visualise.py +228 -0
  28. ose_app/routes/auth.py +44 -0
  29. ose_app/routes/edit.py +690 -0
  30. ose_app/routes/main.py +100 -0
  31. ose_app/routes/search.py +42 -0
  32. ose_app/routes/status.py +10 -0
  33. ose_app/routes/visualize.py +108 -0
  34. ose_app/static/addicto.release.json +129 -0
  35. ose_app/static/bcio.release.json +321 -0
  36. ose_app/static/example.json +134 -0
  37. ose_app/static/excel-bootstrap-table-filter-bundle.js +326 -0
  38. ose_app/static/excel-bootstrap-table-filter-bundle.js.map +1 -0
  39. ose_app/static/excel-bootstrap-table-filter-bundle.min.js +2 -0
  40. ose_app/static/excel-bootstrap-table-filter-bundle.min.js.map +1 -0
  41. ose_app/static/excel-bootstrap-table-filter-style.css +78 -0
  42. ose_app/static/gmho.release.json +139 -0
  43. ose_app/static/js/admin.js +2 -0
  44. ose_app/static/js/admin.js.map +1 -0
  45. ose_app/static/js/assets/CollapsibleCard.css +1 -0
  46. ose_app/static/js/assets/editor.css +1 -0
  47. ose_app/static/js/assets/release.css +1 -0
  48. ose_app/static/js/assets/settings.css +1 -0
  49. ose_app/static/js/assets/visualise.css +1 -0
  50. ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-CgGO-ddH-BDr_frBe.js +2 -0
  51. ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-CgGO-ddH-BDr_frBe.js.map +1 -0
  52. ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-CgGO-ddH-MonxH8xj.js +2 -0
  53. ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-CgGO-ddH-MonxH8xj.js.map +1 -0
  54. ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-DKAZyKKr-DTksKjtf.js +2 -0
  55. ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-DKAZyKKr-DTksKjtf.js.map +1 -0
  56. ose_app/static/js/chunks/CollapsibleCard-BQR8R54V.js +2 -0
  57. ose_app/static/js/chunks/CollapsibleCard-BQR8R54V.js.map +1 -0
  58. ose_app/static/js/chunks/CollapsibleCard-DgwkQKDg.js +2 -0
  59. ose_app/static/js/chunks/CollapsibleCard-DgwkQKDg.js.map +1 -0
  60. ose_app/static/js/chunks/CollapsibleCard-DoX0kPCZ.js +2 -0
  61. ose_app/static/js/chunks/CollapsibleCard-DoX0kPCZ.js.map +1 -0
  62. ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-CBzsmnqW.js +43 -0
  63. ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-CBzsmnqW.js.map +1 -0
  64. ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-EcINi797.js +43 -0
  65. ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-EcINi797.js.map +1 -0
  66. ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-bumDOBqD.js +43 -0
  67. ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-bumDOBqD.js.map +1 -0
  68. ose_app/static/js/chunks/_plugin-vue_export-helper-DlAUqK2U.js +2 -0
  69. ose_app/static/js/chunks/_plugin-vue_export-helper-DlAUqK2U.js.map +1 -0
  70. ose_app/static/js/chunks/bootbox-D3SJ_Fwv.js +2 -0
  71. ose_app/static/js/chunks/bootbox-D3SJ_Fwv.js.map +1 -0
  72. ose_app/static/js/chunks/constants-CzBHF1EN.js +2 -0
  73. ose_app/static/js/chunks/constants-CzBHF1EN.js.map +1 -0
  74. ose_app/static/js/chunks/constants-DL6Hx3V0.js +2 -0
  75. ose_app/static/js/chunks/constants-DL6Hx3V0.js.map +1 -0
  76. ose_app/static/js/chunks/constants-DPgwRV4l.js +2 -0
  77. ose_app/static/js/chunks/constants-DPgwRV4l.js.map +1 -0
  78. ose_app/static/js/chunks/filter-Bx-PU1OL.js +18 -0
  79. ose_app/static/js/chunks/filter-Bx-PU1OL.js.map +1 -0
  80. ose_app/static/js/chunks/filter-CdAXK93b.js +18 -0
  81. ose_app/static/js/chunks/filter-CdAXK93b.js.map +1 -0
  82. ose_app/static/js/chunks/filter-CiYqP1_r.js +2 -0
  83. ose_app/static/js/chunks/filter-CiYqP1_r.js.map +1 -0
  84. ose_app/static/js/chunks/index-sLCKmIWG-B5BYNF2N.js +2 -0
  85. ose_app/static/js/chunks/index-sLCKmIWG-B5BYNF2N.js.map +1 -0
  86. ose_app/static/js/chunks/index-sLCKmIWG-Cb9lQq-c.js +9 -0
  87. ose_app/static/js/chunks/index-sLCKmIWG-Cb9lQq-c.js.map +1 -0
  88. ose_app/static/js/chunks/index-sLCKmIWG-umQeu_-w.js +3 -0
  89. ose_app/static/js/chunks/index-sLCKmIWG-umQeu_-w.js.map +1 -0
  90. ose_app/static/js/editor.js +36 -0
  91. ose_app/static/js/editor.js.map +1 -0
  92. ose_app/static/js/release.js +6 -0
  93. ose_app/static/js/release.js.map +1 -0
  94. ose_app/static/js/settings.js +2 -0
  95. ose_app/static/js/settings.js.map +1 -0
  96. ose_app/static/js/visualise.js +3 -0
  97. ose_app/static/js/visualise.js.map +1 -0
  98. ose_app/static/main.css +1 -0
  99. ose_app/static/main.css.map +7 -0
  100. ose_app/static/main.scss +147 -0
  101. ose_app/static/mindmup-editabletable.js +131 -0
  102. ose_app/static/schema/release_script.json +215 -0
  103. ose_app/static/schema/req_body_edit.json +35 -0
  104. ose_app/static/schema/req_body_guess_parent.json +38 -0
  105. ose_app/static/schema/req_body_import.json +47 -0
  106. ose_app/static/schema/req_body_release_start.json +9 -0
  107. ose_app/static/schema/req_body_visualise.json +18 -0
  108. ose_app/static/test.dot +190 -0
  109. ose_app/static/workflows/externals.yaml.jinja2 +44 -0
  110. ose_app/templates/access_show_visualisation_for_ids.html +120 -0
  111. ose_app/templates/admin/dashboard.html +18 -0
  112. ose_app/templates/admin/rebuild_index.html +85 -0
  113. ose_app/templates/admin/release.html +46 -0
  114. ose_app/templates/admin/settings.html +23 -0
  115. ose_app/templates/base.html +151 -0
  116. ose_app/templates/edit.html +21 -0
  117. ose_app/templates/edit_external.html +491 -0
  118. ose_app/templates/forbidden.html +9 -0
  119. ose_app/templates/index.html +33 -0
  120. ose_app/templates/loggedout.html +21 -0
  121. ose_app/templates/repo.html +294 -0
  122. ose_app/templates/testgeneratedbyapi.html +294 -0
  123. ose_app/templates/visualise.html +17 -0
  124. ose_app-0.2.5.dist-info/METADATA +27 -0
  125. ose_app-0.2.5.dist-info/RECORD +127 -0
  126. ose_app-0.2.5.dist-info/WHEEL +5 -0
  127. ose_app-0.2.5.dist-info/top_level.txt +1 -0
@@ -0,0 +1 @@
1
+ :root{--bs-callout-link: 10, 88, 202;--bs-callout-code-color: #ab296a}.callout-success{--bd-callout-color: var(--bs-success-text-emphasis);--bd-callout-bg: var(--bs-success-bg-subtle);--bd-callout-border: var(--bs-success-border-subtle)}.callout-danger{--bd-callout-color: var(--bs-danger-text-emphasis);--bd-callout-bg: var(--bs-danger-bg-subtle);--bd-callout-border: var(--bs-danger-border-subtle)}.callout-warning{--bd-callout-color: var(--bs-warning-text-emphasis);--bd-callout-bg: var(--bs-warning-bg-subtle);--bd-callout-border: var(--bs-warning-border-subtle)}.callout-info{--bd-callout-color: var(--bs-info-text-emphasis);--bd-callout-bg: var(--bs-info-bg-subtle);--bd-callout-border: var(--bs-info-border-subtle)}.callout{--bs-link-color-rgb: var(--bs-callout-link);--bs-code-color: var(--bs-callout-code-color);padding:1.25rem;margin-top:1.25rem;margin-bottom:1.25rem;color:var(--bd-callout-color, inherit);background-color:var(--bd-callout-bg, var(--bs-gray-100));border-left:.25rem solid var(--bd-callout-border, var(--bs-gray-300))}.banner{text-align:center;background:#ff0;background:repeating-linear-gradient(-45deg, #666600, #666600, 20px, black 20px, black 40px);color:#fff}.modal-dialog .release-file-settings{display:grid;grid-template-columns:auto 1fr auto;grid-gap:8px 16px}.modal-dialog .release-file-settings h4{grid-column:1/3}.modal-dialog .release-file-settings label{grid-column:1}.modal-dialog .release-file-settings input,.modal-dialog .release-file-settings textarea{grid-column:2}.modal-dialog .release-file-settings span{grid-column:3}.breadcrumb-item.active{font-weight:bold}.loader{width:40px;aspect-ratio:1;position:relative}.loader:before,.loader:after{content:"";position:absolute;top:0;left:0;margin:-8px 0 0 -8px;width:16px;aspect-ratio:1;background:#3fb8af;animation:l2-1 2s infinite,l2-2 1s infinite}.loader:after{background:#ff3d7f;animation-delay:-1s,0s}@keyframes l2-1{0%{top:0;left:0}25%{top:100%;left:0}50%{top:100%;left:100%}75%{top:0;left:100%}100%{top:0;left:0}}@keyframes l2-2{40%,50%{transform:rotate(0.25turn) scale(0.5)}100%{transform:rotate(0.5turn) scale(1)}}:root{--ose-curation-status-discussed: moccasin;--ose-curation-status-proposed: #FFFFFF;--ose-curation-status-to_be_discussed: #eee8aa;--ose-curation-status-in_discussion: #fffacd;--ose-curation-status-published: #7fffd4;--ose-curation-status-obsolete: #2f4f4f;--ose-curation-status-external: #D3D3D3;--ose-curation-status-pre_proposed: #ebfad0}
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "mappings": "AACA,KAAM;EACJ,iBAAiB,CAAC,YAAY;EAC9B,uBAAuB,CAAC,QAAQ;;AAGlC,gBAAiB;EACf,kBAAkB,CAAC,gCAAgC;EACnD,eAAe,CAAC,4BAA4B;EAC5C,mBAAmB,CAAC,gCAAgC;;AAGtD,eAAgB;EACd,kBAAkB,CAAC,+BAA+B;EAClD,eAAe,CAAC,2BAA2B;EAC3C,mBAAmB,CAAC,+BAA+B;;AAGrD,gBAAiB;EACf,kBAAkB,CAAC,gCAAgC;EACnD,eAAe,CAAC,4BAA4B;EAC5C,mBAAmB,CAAC,gCAAgC;;AAGtD,aAAc;EACZ,kBAAkB,CAAC,6BAA6B;EAChD,eAAe,CAAC,yBAAyB;EACzC,mBAAmB,CAAC,6BAA6B;;AAGnD,QAAS;EACP,mBAAmB,CAAC,uBAAuB;EAC3C,eAAe,CAAC,6BAA6B;EAC7C,OAAO,EAAE,OAAO;EAChB,UAAU,EAAE,OAAO;EACnB,aAAa,EAAE,OAAO;EACtB,KAAK,EAAE,gCAAgC;EACvC,gBAAgB,EAAE,wCAAwC;EAC1D,WAAW,EAAE,0DAA0D;;AAGzE,OAAQ;EACN,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,iFAAuG;EACnH,KAAK,EAAE,KAAK;;AAId,oCAAqC;EACnC,OAAO,EAAE,IAAI;EACb,qBAAqB,EAAE,aAAa;EACpC,QAAQ,EAAE,QAAQ;EAElB,uCAAG;IACD,WAAW,EAAE,GACf;EAEA,0CAAM;IACJ,WAAW,EAAE,CAAC;EAGhB,yFAAgB;IACd,WAAW,EAAE,CAAC;EAGhB,yCAAK;IACH,WAAW,EAAE,CAAC;;AAOlB,uBAAwB;EACtB,WAAW,EAAE,IAAI;;AAGnB,sCAAsC;AACtC,OAAQ;EACN,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,CAAC;EACf,QAAQ,EAAE,QAAQ;;AAGpB;aACc;EACZ,OAAO,EAAE,EAAE;EACX,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,MAAM,EAAE,aAAa;EACrB,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,CAAC;EACf,UAAU,EAAE,OAAO;EACnB,SAAS,EAAE,kCACK;;AAGlB,aAAc;EACZ,UAAU,EAAE,OAAO;EACnB,eAAe,EAAE,OAAO;;AAG1B,eAqBC;EApBC,EAAG;IACD,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;EAET,GAAI;IACF,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,CAAC;EAET,GAAI;IACF,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,IAAI;EAEZ,GAAI;IACF,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,IAAI;EAEZ,IAAK;IACH,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;AAIX,eAOC;EANC,QAAS;IACP,SAAS,EAAE,2BACb;EACA,IAAK;IACH,SAAS,EAAE,wBACb",
4
+ "sources": ["main.scss"],
5
+ "names": [],
6
+ "file": "main.css"
7
+ }
@@ -0,0 +1,147 @@
1
+ @use "sass:color";
2
+
3
+ :root {
4
+ --bs-callout-link: 10, 88, 202;
5
+ --bs-callout-code-color: #ab296a;
6
+ }
7
+
8
+ .callout-success {
9
+ --bd-callout-color: var(--bs-success-text-emphasis);
10
+ --bd-callout-bg: var(--bs-success-bg-subtle);
11
+ --bd-callout-border: var(--bs-success-border-subtle);
12
+ }
13
+
14
+ .callout-danger {
15
+ --bd-callout-color: var(--bs-danger-text-emphasis);
16
+ --bd-callout-bg: var(--bs-danger-bg-subtle);
17
+ --bd-callout-border: var(--bs-danger-border-subtle);
18
+ }
19
+
20
+ .callout-warning {
21
+ --bd-callout-color: var(--bs-warning-text-emphasis);
22
+ --bd-callout-bg: var(--bs-warning-bg-subtle);
23
+ --bd-callout-border: var(--bs-warning-border-subtle);
24
+ }
25
+
26
+ .callout-info {
27
+ --bd-callout-color: var(--bs-info-text-emphasis);
28
+ --bd-callout-bg: var(--bs-info-bg-subtle);
29
+ --bd-callout-border: var(--bs-info-border-subtle);
30
+ }
31
+
32
+ .callout {
33
+ --bs-link-color-rgb: var(--bs-callout-link);
34
+ --bs-code-color: var(--bs-callout-code-color);
35
+ padding: 1.25rem;
36
+ margin-top: 1.25rem;
37
+ margin-bottom: 1.25rem;
38
+ color: var(--bd-callout-color, inherit);
39
+ background-color: var(--bd-callout-bg, var(--bs-gray-100));
40
+ border-left: 0.25rem solid var(--bd-callout-border, var(--bs-gray-300));
41
+ }
42
+
43
+ .banner {
44
+ text-align: center;
45
+ background: yellow;
46
+ background: repeating-linear-gradient(-45deg, color.adjust(yellow, $lightness: -30%), color.adjust(yellow, $lightness: -30%), 20px, black 20px, black 40px);
47
+ color: white
48
+ }
49
+
50
+ //.release {
51
+ .modal-dialog .release-file-settings {
52
+ display: grid;
53
+ grid-template-columns: auto 1fr auto;
54
+ grid-gap: 8px 16px;
55
+
56
+ h4 {
57
+ grid-column: 1/3
58
+ }
59
+
60
+ label {
61
+ grid-column: 1;
62
+ }
63
+
64
+ input, textarea {
65
+ grid-column: 2;
66
+ }
67
+
68
+ span {
69
+ grid-column: 3;
70
+ }
71
+ }
72
+
73
+ //}
74
+
75
+
76
+ .breadcrumb-item.active {
77
+ font-weight: bold;
78
+ }
79
+
80
+ /* HTML: <div class="loader"></div> */
81
+ .loader {
82
+ width: 40px;
83
+ aspect-ratio: 1;
84
+ position: relative;
85
+ }
86
+
87
+ .loader:before,
88
+ .loader:after {
89
+ content: "";
90
+ position: absolute;
91
+ top: 0;
92
+ left: 0;
93
+ margin: -8px 0 0 -8px;
94
+ width: 16px;
95
+ aspect-ratio: 1;
96
+ background: #3FB8AF;
97
+ animation: l2-1 2s infinite,
98
+ l2-2 1s infinite;
99
+ }
100
+
101
+ .loader:after {
102
+ background: #FF3D7F;
103
+ animation-delay: -1s, 0s;
104
+ }
105
+
106
+ @keyframes l2-1 {
107
+ 0% {
108
+ top: 0;
109
+ left: 0
110
+ }
111
+ 25% {
112
+ top: 100%;
113
+ left: 0
114
+ }
115
+ 50% {
116
+ top: 100%;
117
+ left: 100%
118
+ }
119
+ 75% {
120
+ top: 0;
121
+ left: 100%
122
+ }
123
+ 100% {
124
+ top: 0;
125
+ left: 0
126
+ }
127
+ }
128
+
129
+ @keyframes l2-2 {
130
+ 40%, 50% {
131
+ transform: rotate(0.25turn) scale(0.5)
132
+ }
133
+ 100% {
134
+ transform: rotate(0.5turn) scale(1)
135
+ }
136
+ }
137
+
138
+ :root {
139
+ --ose-curation-status-discussed: moccasin;
140
+ --ose-curation-status-proposed: #FFFFFF;
141
+ --ose-curation-status-to_be_discussed: #eee8aa;
142
+ --ose-curation-status-in_discussion: #fffacd;
143
+ --ose-curation-status-published: #7fffd4;
144
+ --ose-curation-status-obsolete: #2f4f4f;
145
+ --ose-curation-status-external: #D3D3D3;
146
+ --ose-curation-status-pre_proposed: #ebfad0;
147
+ }
@@ -0,0 +1,131 @@
1
+ /*global $, window*/
2
+ $.fn.editableTableWidget = function (options) {
3
+ 'use strict';
4
+ return $(this).each(function () {
5
+ var buildDefaultOptions = function () {
6
+ var opts = $.extend({}, $.fn.editableTableWidget.defaultOptions);
7
+ opts.editor = opts.editor.clone();
8
+ return opts;
9
+ },
10
+ activeOptions = $.extend(buildDefaultOptions(), options),
11
+ ARROW_LEFT = 37, ARROW_UP = 38, ARROW_RIGHT = 39, ARROW_DOWN = 40, ENTER = 13, ESC = 27, TAB = 9,
12
+ element = $(this),
13
+ editor = activeOptions.editor.css('position', 'absolute').hide().appendTo(element.parent()),
14
+ active,
15
+ showEditor = function (select) {
16
+ active = element.find('td:focus');
17
+ if (active.length) {
18
+ editor.val(active.text())
19
+ .removeClass('error')
20
+ .show()
21
+ .offset(active.offset())
22
+ .css(active.css(activeOptions.cloneProperties))
23
+ .width(active.width())
24
+ .height(active.height())
25
+ .focus();
26
+ if (select) {
27
+ editor.select();
28
+ }
29
+ }
30
+ },
31
+ setActiveText = function () {
32
+ var text = editor.val(),
33
+ evt = $.Event('change'),
34
+ originalContent;
35
+ if (active.text() === text || editor.hasClass('error')) {
36
+ return true;
37
+ }
38
+ originalContent = active.html();
39
+ active.text(text).trigger(evt, text);
40
+ if (evt.result === false) {
41
+ active.html(originalContent);
42
+ }
43
+ },
44
+ movement = function (element, keycode) {
45
+ if (keycode === ARROW_RIGHT) {
46
+ return element.next('td');
47
+ } else if (keycode === ARROW_LEFT) {
48
+ return element.prev('td');
49
+ } else if (keycode === ARROW_UP) {
50
+ return element.parent().prev().children().eq(element.index());
51
+ } else if (keycode === ARROW_DOWN) {
52
+ return element.parent().next().children().eq(element.index());
53
+ }
54
+ return [];
55
+ };
56
+ editor.blur(function () {
57
+ setActiveText();
58
+ editor.hide();
59
+ }).keydown(function (e) {
60
+ if (e.which === ENTER) {
61
+ setActiveText();
62
+ editor.hide();
63
+ active.focus();
64
+ e.preventDefault();
65
+ e.stopPropagation();
66
+ } else if (e.which === ESC) {
67
+ editor.val(active.text());
68
+ e.preventDefault();
69
+ e.stopPropagation();
70
+ editor.hide();
71
+ active.focus();
72
+ } else if (e.which === TAB) {
73
+ active.focus();
74
+ } else if (this.selectionEnd - this.selectionStart === this.value.length) {
75
+ var possibleMove = movement(active, e.which);
76
+ if (possibleMove.length > 0) {
77
+ possibleMove.focus();
78
+ e.preventDefault();
79
+ e.stopPropagation();
80
+ }
81
+ }
82
+ })
83
+ .on('input paste', function () {
84
+ var evt = $.Event('validate');
85
+ active.trigger(evt, editor.val());
86
+ if (evt.result === false) {
87
+ editor.addClass('error');
88
+ } else {
89
+ editor.removeClass('error');
90
+ }
91
+ });
92
+ element.on('click keypress dblclick', showEditor)
93
+ .css('cursor', 'pointer')
94
+ .keydown(function (e) {
95
+ var prevent = true,
96
+ possibleMove = movement($(e.target), e.which);
97
+ if (possibleMove.length > 0) {
98
+ possibleMove.focus();
99
+ } else if (e.which === ENTER) {
100
+ showEditor(false);
101
+ } else if (e.which === 17 || e.which === 91 || e.which === 93) {
102
+ showEditor(true);
103
+ prevent = false;
104
+ } else {
105
+ prevent = false;
106
+ }
107
+ if (prevent) {
108
+ e.stopPropagation();
109
+ e.preventDefault();
110
+ }
111
+ });
112
+
113
+ element.find('td').prop('tabindex', 1);
114
+
115
+ $(window).on('resize', function () {
116
+ if (editor.is(':visible')) {
117
+ editor.offset(active.offset())
118
+ .width(active.width())
119
+ .height(active.height());
120
+ }
121
+ });
122
+ });
123
+
124
+ };
125
+ $.fn.editableTableWidget.defaultOptions = {
126
+ cloneProperties: ['padding', 'padding-top', 'padding-bottom', 'padding-left', 'padding-right',
127
+ 'text-align', 'font', 'font-size', 'font-family', 'font-weight',
128
+ 'border', 'border-top', 'border-bottom', 'border-left', 'border-right'],
129
+ editor: $('<input>')
130
+ };
131
+
@@ -0,0 +1,215 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-06/schema#",
3
+ "definitions": {
4
+ "release-step-name": {
5
+ "type": "string",
6
+ "enum": [
7
+ "GITHUB_PUBLISH",
8
+ "HUMAN_VERIFICATION",
9
+ "IMPORT_EXTERNAL",
10
+ "BUILD",
11
+ "MERGE",
12
+ "PREPARATION",
13
+ "VALIDATION",
14
+ "BCIO_SEARCH",
15
+ "ADDICTO_VOCAB",
16
+ "HIERARCHICAL_SPREADSHEETS"
17
+ ]
18
+ },
19
+ "file": {
20
+ "type": "object",
21
+ "properties": {
22
+ "sources": {
23
+ "oneOf": [
24
+ {
25
+ "type": "string",
26
+ "minLength": 1
27
+ },
28
+ {
29
+ "type": "array",
30
+ "items": {
31
+ "oneOf": [
32
+ {
33
+ "type": "string",
34
+ "minLength": 1
35
+ },
36
+ {
37
+ "type": "object",
38
+ "properties": {
39
+ "file": {
40
+ "type": "string"
41
+ },
42
+ "type": {
43
+ "type": "string",
44
+ "enum": [
45
+ "classes",
46
+ "individuals",
47
+ "relations",
48
+ "owl"
49
+ ]
50
+ }
51
+ },
52
+ "required": [
53
+ "file",
54
+ "type"
55
+ ]
56
+ }
57
+ ]
58
+ }
59
+ }
60
+ ]
61
+ },
62
+ "target": {
63
+ "anyOf": [
64
+ {
65
+ "type": "object",
66
+ "properties": {
67
+ "file": {
68
+ "type": "string",
69
+ "minLength": 1
70
+ },
71
+ "iri": {
72
+ "type": "string",
73
+ "minLength": 1
74
+ },
75
+ "ontology_annotations": {
76
+ "type": "object",
77
+ "properties": {},
78
+ "additionalProperties": {
79
+ "type": "string",
80
+ "minLength": 1
81
+ }
82
+ }
83
+ },
84
+ "required": [
85
+ "file",
86
+ "iri"
87
+ ]
88
+ },
89
+ {
90
+ "type": "string"
91
+ }
92
+ ]
93
+ },
94
+ "needs": {
95
+ "type": "array",
96
+ "minLength": 0,
97
+ "items": {
98
+ "type": "string",
99
+ "minLength": 1
100
+ }
101
+ },
102
+ "renameTermFile": {
103
+ "anyOf": [
104
+ {
105
+ "type": "string",
106
+ "description": "Path to a csv file containing at least two columns ID and NEW LABEL",
107
+ "minLength": 1
108
+ },
109
+ {
110
+ "type": "null"
111
+ }
112
+ ]
113
+ },
114
+ "addParentsFile": {
115
+ "anyOf": [
116
+ {
117
+ "type": "string",
118
+ "description": "Path to a csv file containing at least two columns ID and NEW PARENT ID",
119
+ "minLength": 1
120
+ },
121
+ {
122
+ "type": "null"
123
+ }
124
+ ]
125
+ }
126
+ },
127
+ "required": [
128
+ "sources",
129
+ "target"
130
+ ]
131
+ }
132
+ },
133
+ "description": "Release script schema",
134
+ "type": "object",
135
+ "properties": {
136
+ "$schema": {
137
+ "type": "string"
138
+ },
139
+ "external": {
140
+ "$ref": "#/definitions/file"
141
+ },
142
+ "files": {
143
+ "type": "object",
144
+ "properties": {
145
+ },
146
+ "additionalProperties": {
147
+ "$ref": "#/definitions/file"
148
+ },
149
+ "propertyNames": {
150
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
151
+ }
152
+ },
153
+ "iri_prefix": {
154
+ "type": "string",
155
+ "minLength": 1
156
+ },
157
+ "prefixes": {
158
+ "type": "object",
159
+ "additionalProperties": {
160
+ "type": "string",
161
+ "minLength": 1
162
+ },
163
+ "properties": {}
164
+ },
165
+ "short_repository_name": {
166
+ "type": "string",
167
+ "minLength": 1
168
+ },
169
+ "full_repository_name": {
170
+ "type": "string",
171
+ "minLength": 1
172
+ },
173
+ "steps": {
174
+ "type": "array",
175
+ "minLength": 1,
176
+ "default": [
177
+ "PREPARATION",
178
+ "VALIDATION",
179
+ "IMPORT_EXTERNAL",
180
+ "BUILD",
181
+ "MERGE",
182
+ "HUMAN_VERIFICATION",
183
+ "GITHUB_PUBLISH"
184
+ ],
185
+ "items": {
186
+ "anyOf": [
187
+ {
188
+ "$ref": "#/definitions/release-step-name"
189
+ },
190
+ {
191
+ "type": "object",
192
+ "properties": {
193
+ "name": {
194
+ "$ref": "#/definitions/release-step-name"
195
+ },
196
+ "args": {
197
+ "type": "object",
198
+ "additionalProperties": true
199
+ }
200
+ }
201
+ }
202
+ ]
203
+ }
204
+ }
205
+ },
206
+ "required": [
207
+ "external",
208
+ "files",
209
+ "iri_prefix",
210
+ "short_repository_name",
211
+ "full_repository_name",
212
+ "steps"
213
+ ],
214
+ "additionalProperties": false
215
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string",
7
+ "minLength": 1,
8
+ "pattern": "^[A-Za-z0-9_]+:[0-9]+$"
9
+ },
10
+ "term": {
11
+ "type": "object",
12
+ "properties": {
13
+ "id": {
14
+ "type": "string",
15
+ "minLength": 1,
16
+ "pattern": "^[A-Za-z0-9_]+:[0-9]+$"
17
+ },
18
+ "label": {
19
+ "type": "string",
20
+ "minLength": 1
21
+ },
22
+ "parent": {
23
+ "type": "string",
24
+ "minLength": 1
25
+ }
26
+ },
27
+ "additionalProperties": false
28
+ }
29
+ },
30
+ "required": [
31
+ "id",
32
+ "term"
33
+ ],
34
+ "additionalProperties": false
35
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+ "type": "object",
4
+ "properties": {
5
+ "term": {
6
+ "type": "object",
7
+ "properties": {
8
+ "id": {
9
+ "type": "string",
10
+ "minLength": 1
11
+ },
12
+ "label": {
13
+ "type": "string",
14
+ "minLength": 1
15
+ }
16
+ },
17
+ "required": [ "id", "label" ]
18
+ },
19
+ "origin_ontology": {
20
+ "type": "string",
21
+ "minLength": 1
22
+ },
23
+ "parent": {
24
+ "type": "object",
25
+ "properties": {
26
+ "id": {
27
+ "type": "string",
28
+ "minLength": 1
29
+ },
30
+ "label": {
31
+ "type": "string",
32
+ "minLength": 1
33
+ }
34
+ }
35
+ }
36
+ },
37
+ "required": [ "term", "parent" ]
38
+ }
@@ -0,0 +1,47 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+ "type": "object",
4
+ "properties": {
5
+ "ontologyId": {
6
+ "type": "string",
7
+ "minLength": 2
8
+ },
9
+ "purl": {
10
+ "type": "string",
11
+ "minLength": 1
12
+ },
13
+ "rootId": {
14
+ "type": "string",
15
+ "minLength": 1
16
+ },
17
+ "intermediates": {
18
+ "type": "string",
19
+ "minLength": 1
20
+ },
21
+ "prefix": {
22
+ "type": "string",
23
+ "minLength": 1
24
+ },
25
+ "terms": {
26
+ "type": "array",
27
+ "items": {
28
+ "type": "object",
29
+ "properties": {
30
+ "id": {
31
+ "type": "string",
32
+ "minLength": 1
33
+ },
34
+ "label": {
35
+ "type": "string",
36
+ "minLength": 1
37
+ }
38
+ }
39
+ },
40
+ "minLength": 1
41
+ }
42
+ },
43
+ "required": [
44
+ "terms",
45
+ "ontologyId"
46
+ ]
47
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+ "type": "object",
4
+ "properties": {
5
+ "release_script": {
6
+ "$ref": "release_script.json"
7
+ }
8
+ }
9
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+ "type": "object",
4
+ "properties": {
5
+ "rows": {
6
+ "type": "array",
7
+ "items": {
8
+ "type": "array",
9
+ "items": { "type": ["string", "null", "number", "boolean"] }
10
+ }
11
+ },
12
+ "header": {
13
+ "type": "array",
14
+ "items": { "type": "string" }
15
+ }
16
+ },
17
+ "additionalProperties": false
18
+ }