Project

General

Profile

« Previous | Next » 

Revision 58230

refactoring

View differences:

modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/part/org_form_dedup_events.html
1
<div class="card-body">
2
	
3
	<org-details org="currentOrgDetails"></org-details>
4

  
5
	<org-duplicates duplicates="events.duplicates" save-function="saveDuplicates()" show-save-button="1"></org-duplicates>
6
					
7
	<org-conflicts conflicts="events.conflicts" save-function="saveConflicts()" show-save-button="1"></org-conflicts>
8

  
9
</div>
10

  
11

  
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/part/org_info.html
1
<h4>{{info.name}}</h4>
2

  
3
<div class="alert alert-success" ng-if="message">{{message}}</div>
4

  
5
<p class="text-muted" ng-if="!message">
6
	<b>ID: </b>{{info.id}}<br /> <b>Created at</b> {{info.creationDate | date:'MMMM d, y HH:mm:ss'}} <b>by</b> {{info.createdBy}}<br /> <b>Modified at</b> {{info.modificationDate | date:'MMMM d, y HH:mm:ss'}} <b>by</b>
7
	{{info.modifiedBy}}
8
</p>
9

  
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/part/org_duplicates.html
1
<div class="card mb-3">
2
	<div class="card-header bg-primary text-white py-1">Duplicates</div>
3
		
4
	<div class="text-muted card-body" ng-if="duplicates.length == 0">No duplicates</div>
5
		
6
	<table class="table table-sm mt-2" ng-if="duplicates.length > 0">
7
		<thead>
8
			<tr class="d-flex">
9
				<th class="col-4 pl-3" style="border-top: none;">Related organization</th>
10
				<th class="col-1 text-center" style="border-top: none;">Acronym</th>
11
				<th class="col-2 text-center" style="border-top: none;">Country</th>
12
				<th class="col-3" style="border-top: none;">Source</th>
13
				<th class="col-2" style="border-top: none;"></th>
14
			</tr>
15
		</thead>
16
		<tbody>
17
			<tr class="d-flex" ng-repeat="sr in duplicates">
18
				<td class="col-4 pl-3">{{sr.oaName}} <span class="small" ng-if="sr.oaUrl"><br />
19
					<b>URL: </b><a href="{{sr.oaUrl}}" target="_blank">{{sr.oaUrl}}</a></span>
20
				</td>
21
				<td class="col-1 text-center small">{{sr.oaAcronym}}</td>
22
				<td class="col-2 text-center small"><img ng-src="resources/images/flags/{{sr.oaCountry}}.gif" /> {{sr.oaCountry}}</td>
23
				<td class="col-3 small"><b>Collected from:</b> {{sr.oaCollectedFrom}}<br /> <b>Original Id:</b> <span class="text-monospace">{{sr.oaOriginalId}}</span></td>
24
				<td class="col-2 text-right">
25
					<div class="btn-group btn-group-toggle btn-group-sm" data-toggle="buttons">
26
						<label class="btn" ng-class="{'btn-danger' : sr.relType == 'is_different', 'btn-outline-danger' : sr.relType != 'is_different'}"> <input type="radio" autocomplete="off" ng-model="sr.relType"
27
							value="is_different" ng-class="{'active' : sr.relType == 'is_different'}"><i class="fas fa-times fa-fw"></i>
28
						</label>
29
						<label class="btn" ng-class="{'btn-info' : sr.relType == 'suggested', 'btn-outline-info' : sr.relType != 'suggested'}"> <input type="radio" autocomplete="off" ng-model="sr.relType"
30
							value="suggested" ng-class="{'active' : sr.relType == 'suggested'}"><i class="fas fa-question fa-fw"></i>
31
						</label>
32
						<label class="btn" ng-class="{'btn-success' : sr.relType == 'is_similar', 'btn-outline-success' : sr.relType != 'is_similar'}"> <input type="radio" autocomplete="off" ng-model="sr.relType"
33
							value="is_similar" ng-class="{'active' : sr.relType == 'is_similar'}" /><i class="fas fa-check fa-fw"></i>
34
						</label>
35
					</div>
36
				</td>
37
			</tr>
38
		</tbody>
39
	</table>
40
	
41
	<div class="card-footer text-right" ng-if="showSaveButton && duplicates.length > 0">
42
		<button class="btn btn-sm btn-primary" ng-click="saveFunction()">save</button>			
43
	</div>
44
	
45
</div>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/part/org_tabs_menu.html
1
<div class="card-header">
2
	<ul class="nav nav-tabs card-header-tabs">
3
		<li class="nav-item">
4
			<a href="javascript:void(0)" class="nav-link" ng-class="{'active': selected == 1}" ng-click="loadOrg()">Metadata Management</a>
5
		</li>
6
		<li class="nav-item">
7
			<a href="javascript:void(0)" class="nav-link" ng-class="{'active': selected == 2}" ng-click="loadDedupEvents()">Dedup Events <span class="badge badge-primary ml-2">{{info.nDuplicates}}</span> <span class="badge badge-danger">{{info.nConflicts}}</span></a>
8
		</li>
9
	</ul>
10
</div>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/part/all_duplicates.html
1
<div>
2

  
3
	<div class="input-group input-group-sm mb-3">
4
	    <input type="text" class="form-control" ng-model="duplicateFilter" placeholder="Filter...">
5
	    <div class="input-group-append">
6
	    	<span class="input-group-text text-outline-primary" id="inputGroup-sizing-sm">Country:</span>
7
	        <button class="btn btn-outline-primary dropdown-toggle" data-toggle="dropdown">{{country}}</button>
8
			<div class="dropdown-menu">
9
				<small>
10
					<a class="dropdown-item" href="#!/suggestions/{{c}}/2" 
11
						ng-repeat="(c, vals) in info.byCountry"
12
						ng-if="vals.nDuplicates > 0">
13
						{{c}} <span class="badge badge-primary float-right">{{vals.nDuplicates}}</span>
14
					</a>
15
				</small>
16
			</div>
17
	    </div>
18
	</div>
19
		
20
	<table class="table table-sm table-hover">
21
		<thead class="thead-light">
22
			<tr class="d-flex">
23
				<th class="col-8">Organization</th>
24
				<th class="col-3">Place</th>
25
				<th class="col-1 text-right"># pending duplicates</th>
26
			</tr>
27
		</thead>
28
		<tbody>
29
			<tr ng-repeat="d in duplicates | filter:duplicateFilter" class="d-flex">
30
				<td class="col-8">
31
					<a href="javascript:void(0)" title="{{d.id}}" ng-click="prepareDuplicatesModal(d)" data-toggle="modal" data-target="#duplicatesModal">{{d.name}}</a>
32
					<a href="#!/edit/0/{{d.id}}" title="edit"><i class="fa fa-edit"></i></a>
33
				</td>
34
				<td class="col-3"><img ng-src="resources/images/flags/{{d.country}}.gif" /> {{d.city}}, {{d.country}}</td>
35
				<td class="col-1 text-right">{{d.numberOfDuplicates}}</td>
36
			</tr>
37
		</tbody>
38
	</table>
39
</div>
40

  
41
<div class="modal fade" id="duplicatesModal" tabindex="-1" role="dialog">
42
	<div class="modal-dialog modal-xl" role="document">
43
		<div class="modal-content">
44
			<div class="modal-header">
45
				<h5 class="modal-title">{{currentOrg.name}}</h5>
46
				<button type="button" class="close" data-dismiss="modal">&times;</button>
47
			</div>
48
			<div class="modal-body">
49
				<div class="text-muted" ng-if="currentDuplicates.length == 0">No duplicates</div>
50
				<org-details org="currentOrgDetails"></org-details>
51
				<org-duplicates duplicates="currentDuplicates"></org-duplicates>
52
			</div>
53
			<div class="modal-footer">
54
				<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
55
				<button type="button" class="btn btn-primary" data-dismiss="modal" ng-click="saveCurrentDuplicates()" ng-if="currentDuplicates.length > 0">Save changes</button>
56
			</div>
57
		</div>
58
	</div>
59
</div>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/part/org_results.html
1
<p ng-if="mode != 'select-modal'">
2
	<span ng-if="orgs.totalElements > 0">Page: {{orgs.number + 1}} / {{orgs.totalPages}}<br />Total elements: {{orgs.totalElements}}<br />{{searchMessage}}</span>
3
	<span ng-if="orgs.totalElements == 0">Page: -<br />Total elements: 0<br />{{searchMessage}}</span>
4
	<span ng-if="!(orgs.totalElements || orgs.totalElements === 0)">Page:<br />Total elements:<br />{{searchMessage}}</span>
5
</p>
6

  
7
<p ng-if="mode == 'select-modal'" class="text-right">
8
	<span ng-if="orgs.totalElements > 0"><b>Page:</b> {{orgs.number + 1}} / {{orgs.totalPages}} <b>- Total elements:</b> {{orgs.totalElements}}</span>
9
	<span ng-if="orgs.totalElements == 0"><b>Total elements:</b> 0</span>
10
</p>
11

  
12
<h4 ng-if="orgs.totalElements == 0" class="text-center">
13
	No results
14
</h4>
15

  
16
<div ng-if="orgs.totalElements > 0">
17
	<nav>
18
		<ul class="pagination justify-content-center">
19
			<li class="page-item" ng-class="{'disabled' : orgs.first }">
20
				<a class="page-link" href="javascript:void(0)" ng-click="prevFunction()">&laquo; Previous</a>
21
			</li>
22
			<li class="page-item" ng-class="{'disabled' : orgs.last }">
23
				<a class="page-link" href="javascript:void(0)" ng-click="nextFunction()">Next &raquo;</a>
24
	    	</li>
25
		</ul>
26
	</nav>
27
	
28
	<table class="table table-sm table-hover">
29
		<thead class="thead-light">
30
			<tr class="d-flex">
31
				<th class="col-6">Organization name</th>
32
				<th class="col-4">Place</th>
33
				<th class="col-1 text-center">Acronyms</th>
34
				<th class="col-1 text-right">Type</th>
35
			</tr>
36
		</thead>
37
		<tbody>
38
			<tr ng-repeat="o in orgs.content" class="d-flex">
39
				<td class="col-6">
40
					<a ng-if="mode == 'select-modal'" href="javascript:void(0)" title="select" ng-click="selectOrg(o)" data-dismiss="modal">{{o.name}}</a>
41
					<a ng-if="mode != 'select-modal'" href="#!/edit/0/{{o.id}}" title="{{o.id}}">{{o.name}}</a>
42
				</td>
43
				<td class="col-4"><img ng-src="resources/images/flags/{{o.country}}.gif" /> {{o.city}}, {{o.country}}</td>
44
				<td class="col-1 text-center">{{o.acronyms.join()}}</td>
45
				<td class="col-1 text-right">{{o.type}}</td>
46
			</tr>
47
		</tbody>
48
	</table>
49
</div>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/part/org_form_metadata.html
1
<div class="card-body">
2
	<form name="organizationForm">
3
		<fieldset>
4
			<legend>Official name and type</legend>
5
	
6
			<div class="form-group">
7
				<div class="input-group input-group-sm">
8
					<div class="input-group-prepend">
9
						<div class="input-group-text bg-primary text-white">name</div>
10
					</div>
11
					<input name="org_nm" type="text" class="form-control"
12
						placeholder="organization name..." ng-model="org.name"
13
						required="required"
14
						ng-class="{'is-invalid' : organizationForm.org_nm.$error.required}" />
15
					<div class="input-group-append input-group-prepend">
16
						<div class="input-group-text bg-primary text-white">type</div>
17
					</div>
18
					<select name="org_tp" class="custom-select" ng-model="org.type"
19
						required="required"
20
						ng-class="{'is-invalid' : organizationForm.org_tp.$error.required}">
21
						<option disabled="disabled" value=''>type...</option>
22
						<option ng-repeat="t in vocabularies.orgTypes">{{t}}</option>
23
					</select>
24
				</div>
25
			</div>
26
		</fieldset>
27
		<fieldset class="mt-4">
28
			<legend>Geographical location</legend>
29
	
30
			<div class="form-group">
31
				<div class="input-group input-group-sm">
32
					<div class="input-group-prepend">
33
						<div class="input-group-text bg-primary text-white">city</div>
34
					</div>
35
					<input name="org_ct" type="text" class="form-control" placeholder=""
36
						ng-model="org.city" />
37
					<div class="input-group-append input-group-prepend">
38
						<div class="input-group-text bg-primary text-white">country</div>
39
					</div>
40
					<select name="org_cntr" class="custom-select" ng-model="org.country"
41
						required="required"
42
						ng-class="{'is-invalid' : organizationForm.org_cntr.$error.required}">
43
						<option disabled="disabled" value=''>country...</option>
44
						<option ng-repeat="c in vocabularies.countries">{{c}}</option>
45
					</select>
46
					<div class="input-group-append input-group-prepend">
47
						<div class="input-group-text bg-primary text-white">lat</div>
48
					</div>
49
					<input name="org_lat" type="text" class="form-control"
50
						placeholder="0.0" ng-model="org.lat" />
51
					<div class="input-group-append input-group-prepend">
52
						<div class="input-group-text bg-primary text-white">lng</div>
53
					</div>
54
					<input name="org_lng" type="text" class="form-control"
55
						placeholder="0.0" ng-model="org.lng" />
56
				</div>
57
			</div>
58
		</fieldset>
59
	
60
		<fieldset class="mt-4">
61
			<legend>Other names and identifiers</legend>
62
	
63
			<div class="form-group row">
64
				<div class="col-lg-8 mb-2">
65
					<div class="card">
66
						<div class="card-header bg-primary text-white text-center py-1">Acronyms</div>
67
						<table class="table table-sm">
68
							<tbody>
69
								<tr ng-repeat="a in org.acronyms">
70
									<td>{{a}}</td>
71
									<td class="text-right" style="width: 44px">
72
										<button type="button" class="btn btn-sm  btn-outline-danger"
73
											ng-click="org.acronyms.splice($index, 1)">
74
											<i class="fa fa-trash"></i>
75
										</button>
76
									</td>
77
								</tr>
78
							</tbody>
79
							<tfoot>
80
								<tr ng-init="newAcronym=''">
81
									<td><input type="text" class="form-control form-control-sm"
82
										placeholder="new acronym..." ng-model='newAcronym' /></td>
83
									<td class="text-right" style="width: 44px">
84
										<button type="button" class="btn btn-sm btn-outline-success"
85
											ng-click="org.acronyms.push(newAcronym); newAcronym=''"
86
											ng-disabled="!newAcronym || org.acronyms.indexOf(newAcronym) !== -1">
87
											<i class="fa fa-plus"></i>
88
										</button>
89
									</td>
90
								</tr>
91
							</tfoot>
92
						</table>
93
					</div>
94
				</div>
95
			</div>
96
	
97
			<div class="form-group row">
98
				<div class="col-lg-8 mb-2">
99
					<div class="card">
100
						<div class="card-header bg-primary text-white text-center py-1">Aliases</div>
101
						<table class="table table-sm">
102
							<thead class="thead-light">
103
								<tr>
104
									<th>name</th>
105
									<th style="width: 156px">language</th>
106
									<th style="width: 44px"></th>
107
								</tr>
108
							</thead>
109
							<tbody>
110
								<tr ng-repeat="n in org.otherNames">
111
									<td>{{n.name}}</td>
112
									<td>{{n.lang}}</td>
113
									<td class="text-right">
114
										<button type="button" class="btn btn-sm  btn-outline-danger"
115
											ng-click="org.otherNames.splice($index, 1)">
116
											<i class="fa fa-trash"></i>
117
										</button>
118
									</td>
119
								</tr>
120
							</tbody>
121
							<tfoot>
122
								<tr ng-init="newOtherName=newLang=''">
123
									<td><input type="text" class="form-control form-control-sm"
124
										placeholder="new alias..." ng-model="newOtherName" /></td>
125
									<td><select class="custom-select custom-select-sm"
126
										ng-model="newLang">
127
											<option disabled="disabled" value=''>language...</option>
128
											<option ng-repeat="l in vocabularies.languages">{{l}}</option>
129
									</select></td>
130
									<td class="text-right" style="width: 44px">
131
										<button type="button" class="btn btn-sm btn-outline-success"
132
											ng-click="org.otherNames.push({'name': newOtherName, 'lang': newLang}); newOtherName=newLang=''"
133
											ng-disabled="!newOtherName || !newLang">
134
											<i class="fa fa-plus"></i>
135
										</button>
136
									</td>
137
								</tr>
138
							</tfoot>
139
						</table>
140
					</div>
141
				</div>
142
			</div>
143
	
144
			<div class="form-group row">
145
				<div class="col-lg-8 mb-2">
146
					<div class="card">
147
						<div class="card-header bg-primary text-white text-center py-1">Identifiers</div>
148
						<table class="table table-sm">
149
							<thead class="thead-light">
150
								<tr>
151
									<th>id</th>
152
									<th style="width: 156px">type</th>
153
									<th style="width: 44px"></th>
154
								</tr>
155
							</thead>
156
							<tbody>
157
								<tr ng-repeat="id in org.otherIdentifiers">
158
									<td>{{id.id}}</td>
159
									<td>{{id.type}}</td>
160
									<td class="text-right" style="width: 44px">
161
										<button type="button" class="btn btn-sm  btn-outline-danger"
162
											ng-click="org.otherIdentifiers.splice($index, 1)">
163
											<i class="fa fa-trash"></i>
164
										</button>
165
									</td>
166
								</tr>
167
							</tbody>
168
							<tfoot>
169
								<tr ng-init="newId=newIdType=''">
170
									<td><input type="text" class="form-control form-control-sm"
171
										placeholder="new id..." ng-model="newId" /></td>
172
									<td><select class="custom-select custom-select-sm"
173
										ng-model="newIdType">
174
											<option disabled="disabled" value=''>type...</option>
175
											<option ng-repeat="t in vocabularies.idTypes">{{t}}</option>
176
									</select></td>
177
									<td class="text-right" style="width: 44px">
178
										<button type="button" class="btn btn-sm btn-outline-success"
179
											ng-click="org.otherIdentifiers.push({'id': newId, 'type': newIdType}); newId=newIdType=''"
180
											ng-disabled="!newId || !newIdType">
181
											<i class="fa fa-plus"></i>
182
										</button>
183
									</td>
184
								</tr>
185
							</tfoot>
186
						</table>
187
					</div>
188
				</div>
189
			</div>
190
	
191
			<div class="form-group row">
192
				<div class="col-lg-8 mb-2">
193
					<div class="card">
194
						<div class="card-header bg-primary text-white text-center py-1">Urls</div>
195
						<table class="table table-sm">
196
							<tbody>
197
								<tr ng-repeat="u in org.urls">
198
									<td><a href="{{u}}" target="_blank">{{u}}</a></td>
199
									<td class="text-right" style="width: 44px">
200
										<button type="button" class="btn btn-sm  btn-outline-danger"
201
											ng-click="org.urls.splice($index, 1)">
202
											<i class="fa fa-trash"></i>
203
										</button>
204
									</td>
205
								</tr>
206
							</tbody>
207
							<tfoot>
208
								<tr ng-init="newUrl=''">
209
									<td><input type="text" class="form-control form-control-sm"
210
										placeholder="http://..." ng-model="newUrl" /></td>
211
									<td class="text-right" style="width: 44px">
212
										<button type="button" class="btn btn-sm btn-outline-success"
213
											ng-click="org.urls.push(newUrl); newUrl=''"
214
											ng-disabled="!newUrl || org.urls.indexOf(newUrl) !== -1">
215
											<i class="fa fa-plus"></i>
216
										</button>
217
									</td>
218
								</tr>
219
							</tfoot>
220
						</table>
221
					</div>
222
				</div>
223
			</div>
224
		</fieldset>
225
		
226
		<fieldset class="mt-4">
227
			<legend>Relations</legend>
228
			<div class="form-group row">
229
				<div class="col-lg-8 mb-2">
230
					<div class="card">
231
						<div class="card-header bg-primary text-white text-center py-1">Relations</div>
232
						<table class="table table-sm">
233
							<thead class="thead-light">
234
								<tr>
235
									<th class="pl-3" style="border-top: none;">Related organization</th>
236
									<th style="border-top: none; width: 156px">Type</th>
237
									<th style="border-top: none; width: 44px"></th>
238
								</tr>
239
							</thead>
240
							<tbody>
241
								<tr ng-if="org.relations.length == 0">
242
									<td class="text-center text-muted" colspan="3">No relations</td>
243
								</tr>
244
								<tr ng-repeat="r in org.relations">
245
									<td class="pl-3"><a href="#!/edit/0/{{r.relatedOrgId}}" title="{{r.relatedOrgId}}">{{r.relatedOrgName}}</a></td>
246
									<td>{{r.type}}</td>
247
									<td class="text-right">
248
										<button type="button" class="btn btn-sm  btn-outline-danger" ng-click="org.relations.splice($index, 1)"><i class="fa fa-trash"></i></button>
249
									</td>
250
								</tr>
251
							</tbody>
252
							<tfoot>
253
								<tr>
254
									<td>
255
										<input type="text" placeholder="add a related organization..." readonly="readonly"
256
											class="form-control form-control-sm" style="background-color: white; color: #007bff;"
257
											ng-model="newRelation.name" ng-click="resetSelectedRelation()"
258
											data-toggle="modal" data-target="#selectRelatedOrgModal"/>
259
									</td>
260
									<td>
261
										<select class="custom-select custom-select-sm" ng-model="newRelType">
262
											<option disabled="disabled" value=''>rel type...</option>
263
											<option ng-repeat="t in vocabularies.relTypes">{{t}}</option>
264
										</select>
265
									</td>
266
									<td class="text-right">
267
										<button type="button" class="btn btn-sm btn-outline-success" ng-disabled="!newRelType || !newRelation.id" ng-click="addNewRelation()"><i class="fa fa-plus"></i></button>
268
									</td>
269
								</tr>
270
							</tfoot>
271
						</table>
272
					</div>
273
				</div>
274
			</div>
275
		</fieldset>		
276
			
277
		<button type="submit" class="btn btn-primary" ng-click="save()" ng-disabled="organizationForm.$invalid">save</button>
278
		
279
	</form>
280
</div>
281

  
282
<select-org-modal modal-id="selectRelatedOrgModal" selected-org="newRelation"></select-org-modal>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/part/org_conflicts.html
1
<div class="card mb-3">
2
	<div class="card-header bg-primary text-white py-1">Conflicts</div>
3

  
4
	<div class="card-body text-muted" ng-if="conflicts.length == 0">No conflicts</div>
5

  
6
	<table class="table table-sm mt-2" ng-if="conflicts.length > 0">
7
		<thead>
8
			<tr class="d-flex">
9
				<th class="col-4 pl-3" style="border-top: none;">Related organization</th>
10
				<th class="col-1 text-center" style="border-top: none;">Type</th>
11
				<th class="col-2 text-center" style="border-top: none;">Place</th>
12
				<th class="col-3" style="border-top: none;">Original ID</th>
13
				<th class="col-2" style="border-top: none;"></th>
14
			</tr>
15
		</thead>
16
		<tbody>
17
			<tr class="d-flex" ng-repeat="sr in conflicts">
18
				<td class="col-4 pl-3">{{sr.name}}</td>
19
				<td class="col-1 text-center small">{{sr.type}}</td>
20
				<td class="col-2 text-center small"><img ng-src="resources/images/flags/{{sr.country}}.gif" /> {{sr.city}}, {{sr.country}}</td>
21
				<td class="col-3 small"><a href="#!/edit/0/{{sr.id}}"><span class="text-monospace">{{sr.id}}</span></a></td>
22
				<td class="col-2 text-right">
23
					<div class="btn-group btn-group-toggle btn-group-sm" data-toggle="buttons">
24
						<label class="btn" ng-class="{'btn-danger' : sr.relType == 'is_different', 'btn-outline-danger' : sr.relType != 'is_different'}"> <input type="radio" autocomplete="off" ng-model="sr.relType"
25
							value="is_different" ng-class="{'active' : sr.relType == 'is_different'}"><i class="fas fa-times fa-fw"></i>
26
						</label>
27
						<label class="btn" ng-class="{'btn-info' : sr.relType == 'suggested', 'btn-outline-info' : sr.relType != 'suggested'}"> <input type="radio" autocomplete="off" ng-model="sr.relType"
28
							value="suggested" ng-class="{'active' : sr.relType == 'suggested'}"><i class="fas fa-question fa-fw"></i>
29
						</label>
30
						<label class="btn" ng-class="{'btn-success' : sr.relType == 'is_similar', 'btn-outline-success' : sr.relType != 'is_similar'}"> <input type="radio" autocomplete="off" ng-model="sr.relType"
31
							value="is_similar" ng-class="{'active' : sr.relType == 'is_similar'}" /><i class="fas fa-check fa-fw"></i>
32
						</label>
33
					</div>
34
				</td>
35
			</tr>
36
		</tbody>
37
	</table>
38

  
39
	<div class="card-footer text-right" ng-if="showSaveButton && conflicts.length > 0">
40
		<button class="btn btn-sm btn-primary" ng-click="saveFunction()">todo</button>
41
	</div>
42
</div>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/part/org_details.html
1
<div class="card mb-3">
2
	<div class="card-header bg-primary text-white py-1">Registered organization</div>
3
	<table class="table table-sm table-condensed">
4
		<tr class="d-flex">
5
			<th class="col-4">Name</th>
6
			<td class="col-8">{{org.name}}</td>
7
		</tr>
8
		<tr class="d-flex">
9
			<th class="col-4">Type</th>
10
			<td class="col-8">{{org.type}}</td>
11
		</tr>
12
		<tr class="d-flex">
13
			<th class="col-4">Place</th>
14
			<td class="col-8">{{org.city}}, {{org.country}}</td>
15
		</tr>
16
		<tr class="d-flex">
17
			<th class="col-4">Acronyms</th>
18
			<td class="col-8">{{org.acronyms.join(', ')}}</td>
19
		</tr>
20
		<tr class="d-flex">
21
			<th class="col-4">Also known as</th>
22
			<td class="col-8"><span ng-repeat="n in org.otherNames">{{n.name}}<br /></span></td>
23
		</tr>
24
		<tr class="d-flex">
25
			<th class="col-4">Urls</th>
26
			<td class="col-8"><span ng-repeat="u in org.urls"><a href="{{u}}" target="_blank">{{u}}</a><br /></span></td>
27
		</tr>
28
	</table>
29
</div>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/part/all_conflicts.html
1
<div>
2

  
3
	<div class="input-group input-group-sm mb-3">
4
	    <input type="text" class="form-control" ng-model="conflictFilter" placeholder="Filter...">
5
	    <div class="input-group-append">
6
	    	<span class="input-group-text text-outline-primary" id="inputGroup-sizing-sm">Country:</span>
7
	        <button class="btn btn-outline-primary dropdown-toggle" data-toggle="dropdown">{{country}}</button>
8
			<div class="dropdown-menu">
9
				<small>
10
					<a class="dropdown-item" href="#!/suggestions/{{c}}/3" 
11
						ng-repeat="(c, vals) in info.byCountry"
12
						ng-if="vals.nConflicts > 0">
13
						{{c}} <span class="badge badge-primary float-right">{{vals.nConflicts}}</span>
14
					</a>
15
				</small>
16
			</div>
17
	    </div>
18
	</div>
19

  
20
	<div class="card text-white mb-3" ng-repeat="w in conflicts | filter:conflictFilter" class="mb-2">
21
		<div class="card-header bg-primary text-white py-1">Group {{$index+1}}</div>
22
		<table class="table table-sm">
23
			<tr ng-repeat="o in w">
24
				<th style="width:40px" class="text-center">#{{$index+1}}</th>
25
				<td><a href="#!/edit/0/{{o.id}}" title="{{o.id}}">{{o.name}}</a></td>
26
				<td style="width:200px"><img ng-src="resources/images/flags/{{o.country}}.gif" /> {{o.city}}, {{o.country}}</td>
27
				<td style="width:80px" class="text-right">{{o.type}}</td>
28
			</tr>
29
		</table>
30
		<div class="card-footer bg-secondary py-1">
31
			<button type="button" class="btn btn-sm btn-primary">merge</button>
32
		</div>
33
	</div>
34
</div>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/menu/org_tabs_menu.html
1
<div class="card-header">
2
	<ul class="nav nav-tabs card-header-tabs">
3
		<li class="nav-item">
4
			<a href="javascript:void(0)" class="nav-link" ng-class="{'active': selected == 1}" ng-click="loadOrg()">Metadata Management</a>
5
		</li>
6
		<li class="nav-item">
7
			<a href="javascript:void(0)" class="nav-link" ng-class="{'active': selected == 2}" ng-click="loadDedupEvents()">Dedup Events <span class="badge badge-primary ml-2">{{info.nDuplicates}}</span> <span class="badge badge-danger">{{info.nConflicts}}</span></a>
8
		</li>
9
	</ul>
10
</div>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/forms/all_conflicts.html
1
<div>
2

  
3
	<div class="input-group input-group-sm mb-3">
4
	    <input type="text" class="form-control" ng-model="conflictFilter" placeholder="Filter...">
5
	    <div class="input-group-append">
6
	    	<span class="input-group-text text-outline-primary" id="inputGroup-sizing-sm">Country:</span>
7
	        <button class="btn btn-outline-primary dropdown-toggle" data-toggle="dropdown">{{country}}</button>
8
			<div class="dropdown-menu">
9
				<small>
10
					<a class="dropdown-item" href="#!/suggestions/{{c}}/3" 
11
						ng-repeat="(c, vals) in info.byCountry"
12
						ng-if="vals.nConflicts > 0">
13
						{{c}} <span class="badge badge-primary float-right">{{vals.nConflicts}}</span>
14
					</a>
15
				</small>
16
			</div>
17
	    </div>
18
	</div>
19

  
20
	<div class="card text-white mb-3" ng-repeat="w in conflicts | filter:conflictFilter" class="mb-2">
21
		<div class="card-header bg-primary text-white py-1">Group {{$index+1}}</div>
22
		<table class="table table-sm">
23
			<tr ng-repeat="o in w">
24
				<th style="width:40px" class="text-center">#{{$index+1}}</th>
25
				<td><a href="#!/edit/0/{{o.id}}" title="{{o.id}}">{{o.name}}</a></td>
26
				<td style="width:200px"><img ng-src="resources/images/flags/{{o.country}}.gif" /> {{o.city}}, {{o.country}}</td>
27
				<td style="width:80px" class="text-right">{{o.type}}</td>
28
			</tr>
29
		</table>
30
		<div class="card-footer bg-secondary py-1">
31
			<button type="button" class="btn btn-sm btn-primary">merge</button>
32
		</div>
33
	</div>
34
</div>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/forms/org_duplicates.html
1
<div class="card mb-3">
2
	<div class="card-header bg-primary text-white py-1">Duplicates</div>
3
		
4
	<div class="text-muted card-body" ng-if="duplicates.length == 0">No duplicates</div>
5
		
6
	<table class="table table-sm mt-2" ng-if="duplicates.length > 0">
7
		<thead>
8
			<tr class="d-flex">
9
				<th class="col-4 pl-3" style="border-top: none;">Related organization</th>
10
				<th class="col-1 text-center" style="border-top: none;">Acronym</th>
11
				<th class="col-2 text-center" style="border-top: none;">Country</th>
12
				<th class="col-3" style="border-top: none;">Source</th>
13
				<th class="col-2" style="border-top: none;"></th>
14
			</tr>
15
		</thead>
16
		<tbody>
17
			<tr class="d-flex" ng-repeat="sr in duplicates">
18
				<td class="col-4 pl-3">{{sr.oaName}} <span class="small" ng-if="sr.oaUrl"><br />
19
					<b>URL: </b><a href="{{sr.oaUrl}}" target="_blank">{{sr.oaUrl}}</a></span>
20
				</td>
21
				<td class="col-1 text-center small">{{sr.oaAcronym}}</td>
22
				<td class="col-2 text-center small"><img ng-src="resources/images/flags/{{sr.oaCountry}}.gif" /> {{sr.oaCountry}}</td>
23
				<td class="col-3 small"><b>Collected from:</b> {{sr.oaCollectedFrom}}<br /> <b>Original Id:</b> <span class="text-monospace">{{sr.oaOriginalId}}</span></td>
24
				<td class="col-2 text-right">
25
					<div class="btn-group btn-group-toggle btn-group-sm" data-toggle="buttons">
26
						<label class="btn" ng-class="{'btn-danger' : sr.relType == 'is_different', 'btn-outline-danger' : sr.relType != 'is_different'}"> <input type="radio" autocomplete="off" ng-model="sr.relType"
27
							value="is_different" ng-class="{'active' : sr.relType == 'is_different'}"><i class="fas fa-times fa-fw"></i>
28
						</label>
29
						<label class="btn" ng-class="{'btn-info' : sr.relType == 'suggested', 'btn-outline-info' : sr.relType != 'suggested'}"> <input type="radio" autocomplete="off" ng-model="sr.relType"
30
							value="suggested" ng-class="{'active' : sr.relType == 'suggested'}"><i class="fas fa-question fa-fw"></i>
31
						</label>
32
						<label class="btn" ng-class="{'btn-success' : sr.relType == 'is_similar', 'btn-outline-success' : sr.relType != 'is_similar'}"> <input type="radio" autocomplete="off" ng-model="sr.relType"
33
							value="is_similar" ng-class="{'active' : sr.relType == 'is_similar'}" /><i class="fas fa-check fa-fw"></i>
34
						</label>
35
					</div>
36
				</td>
37
			</tr>
38
		</tbody>
39
	</table>
40
	
41
	<div class="card-footer text-right" ng-if="showSaveButton && duplicates.length > 0">
42
		<button class="btn btn-sm btn-primary" ng-click="saveFunction()">save</button>			
43
	</div>
44
	
45
</div>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/forms/all_duplicates.html
1
<div>
2

  
3
	<div class="input-group input-group-sm mb-3">
4
	    <input type="text" class="form-control" ng-model="duplicateFilter" placeholder="Filter...">
5
	    <div class="input-group-append">
6
	    	<span class="input-group-text text-outline-primary" id="inputGroup-sizing-sm">Country:</span>
7
	        <button class="btn btn-outline-primary dropdown-toggle" data-toggle="dropdown">{{country}}</button>
8
			<div class="dropdown-menu">
9
				<small>
10
					<a class="dropdown-item" href="#!/suggestions/{{c}}/2" 
11
						ng-repeat="(c, vals) in info.byCountry"
12
						ng-if="vals.nDuplicates > 0">
13
						{{c}} <span class="badge badge-primary float-right">{{vals.nDuplicates}}</span>
14
					</a>
15
				</small>
16
			</div>
17
	    </div>
18
	</div>
19
		
20
	<table class="table table-sm table-hover">
21
		<thead class="thead-light">
22
			<tr class="d-flex">
23
				<th class="col-8">Organization</th>
24
				<th class="col-3">Place</th>
25
				<th class="col-1 text-right"># pending duplicates</th>
26
			</tr>
27
		</thead>
28
		<tbody>
29
			<tr ng-repeat="d in duplicates | filter:duplicateFilter" class="d-flex">
30
				<td class="col-8">
31
					<a href="javascript:void(0)" title="{{d.id}}" ng-click="prepareDuplicatesModal(d)" data-toggle="modal" data-target="#duplicatesModal">{{d.name}}</a>
32
					<a href="#!/edit/0/{{d.id}}" title="edit"><i class="fa fa-edit"></i></a>
33
				</td>
34
				<td class="col-3"><img ng-src="resources/images/flags/{{d.country}}.gif" /> {{d.city}}, {{d.country}}</td>
35
				<td class="col-1 text-right">{{d.numberOfDuplicates}}</td>
36
			</tr>
37
		</tbody>
38
	</table>
39
</div>
40

  
41
<div class="modal fade" id="duplicatesModal" tabindex="-1" role="dialog">
42
	<div class="modal-dialog modal-xl" role="document">
43
		<div class="modal-content">
44
			<div class="modal-header">
45
				<h5 class="modal-title">{{currentOrg.name}}</h5>
46
				<button type="button" class="close" data-dismiss="modal">&times;</button>
47
			</div>
48
			<div class="modal-body">
49
				<div class="text-muted" ng-if="currentDuplicates.length == 0">No duplicates</div>
50
				<org-details org="currentOrgDetails"></org-details>
51
				<org-form-duplicates duplicates="currentDuplicates"></org-form-duplicates>
52
			</div>
53
			<div class="modal-footer">
54
				<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
55
				<button type="button" class="btn btn-primary" data-dismiss="modal" ng-click="saveCurrentDuplicates()" ng-if="currentDuplicates.length > 0">Save changes</button>
56
			</div>
57
		</div>
58
	</div>
59
</div>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/forms/org_metadata.html
1
<div class="card-body">
2
	<form name="organizationForm">
3
		<fieldset>
4
			<legend>Official name and type</legend>
5
	
6
			<div class="form-group">
7
				<div class="input-group input-group-sm">
8
					<div class="input-group-prepend">
9
						<div class="input-group-text bg-primary text-white">name</div>
10
					</div>
11
					<input name="org_nm" type="text" class="form-control"
12
						placeholder="organization name..." ng-model="org.name"
13
						required="required"
14
						ng-class="{'is-invalid' : organizationForm.org_nm.$error.required}" />
15
					<div class="input-group-append input-group-prepend">
16
						<div class="input-group-text bg-primary text-white">type</div>
17
					</div>
18
					<select name="org_tp" class="custom-select" ng-model="org.type"
19
						required="required"
20
						ng-class="{'is-invalid' : organizationForm.org_tp.$error.required}">
21
						<option disabled="disabled" value=''>type...</option>
22
						<option ng-repeat="t in vocabularies.orgTypes">{{t}}</option>
23
					</select>
24
				</div>
25
			</div>
26
		</fieldset>
27
		<fieldset class="mt-4">
28
			<legend>Geographical location</legend>
29
	
30
			<div class="form-group">
31
				<div class="input-group input-group-sm">
32
					<div class="input-group-prepend">
33
						<div class="input-group-text bg-primary text-white">city</div>
34
					</div>
35
					<input name="org_ct" type="text" class="form-control" placeholder=""
36
						ng-model="org.city" />
37
					<div class="input-group-append input-group-prepend">
38
						<div class="input-group-text bg-primary text-white">country</div>
39
					</div>
40
					<select name="org_cntr" class="custom-select" ng-model="org.country"
41
						required="required"
42
						ng-class="{'is-invalid' : organizationForm.org_cntr.$error.required}">
43
						<option disabled="disabled" value=''>country...</option>
44
						<option ng-repeat="c in vocabularies.countries">{{c}}</option>
45
					</select>
46
					<div class="input-group-append input-group-prepend">
47
						<div class="input-group-text bg-primary text-white">lat</div>
48
					</div>
49
					<input name="org_lat" type="text" class="form-control"
50
						placeholder="0.0" ng-model="org.lat" />
51
					<div class="input-group-append input-group-prepend">
52
						<div class="input-group-text bg-primary text-white">lng</div>
53
					</div>
54
					<input name="org_lng" type="text" class="form-control"
55
						placeholder="0.0" ng-model="org.lng" />
56
				</div>
57
			</div>
58
		</fieldset>
59
	
60
		<fieldset class="mt-4">
61
			<legend>Other names and identifiers</legend>
62
	
63
			<div class="form-group row">
64
				<div class="col-lg-8 mb-2">
65
					<div class="card">
66
						<div class="card-header bg-primary text-white text-center py-1">Acronyms</div>
67
						<table class="table table-sm">
68
							<tbody>
69
								<tr ng-repeat="a in org.acronyms">
70
									<td>{{a}}</td>
71
									<td class="text-right" style="width: 44px">
72
										<button type="button" class="btn btn-sm  btn-outline-danger"
73
											ng-click="org.acronyms.splice($index, 1)">
74
											<i class="fa fa-trash"></i>
75
										</button>
76
									</td>
77
								</tr>
78
							</tbody>
79
							<tfoot>
80
								<tr ng-init="newAcronym=''">
81
									<td><input type="text" class="form-control form-control-sm"
82
										placeholder="new acronym..." ng-model='newAcronym' /></td>
83
									<td class="text-right" style="width: 44px">
84
										<button type="button" class="btn btn-sm btn-outline-success"
85
											ng-click="org.acronyms.push(newAcronym); newAcronym=''"
86
											ng-disabled="!newAcronym || org.acronyms.indexOf(newAcronym) !== -1">
87
											<i class="fa fa-plus"></i>
88
										</button>
89
									</td>
90
								</tr>
91
							</tfoot>
92
						</table>
93
					</div>
94
				</div>
95
			</div>
96
	
97
			<div class="form-group row">
98
				<div class="col-lg-8 mb-2">
99
					<div class="card">
100
						<div class="card-header bg-primary text-white text-center py-1">Aliases</div>
101
						<table class="table table-sm">
102
							<thead class="thead-light">
103
								<tr>
104
									<th>name</th>
105
									<th style="width: 156px">language</th>
106
									<th style="width: 44px"></th>
107
								</tr>
108
							</thead>
109
							<tbody>
110
								<tr ng-repeat="n in org.otherNames">
111
									<td>{{n.name}}</td>
112
									<td>{{n.lang}}</td>
113
									<td class="text-right">
114
										<button type="button" class="btn btn-sm  btn-outline-danger"
115
											ng-click="org.otherNames.splice($index, 1)">
116
											<i class="fa fa-trash"></i>
117
										</button>
118
									</td>
119
								</tr>
120
							</tbody>
121
							<tfoot>
122
								<tr ng-init="newOtherName=newLang=''">
123
									<td><input type="text" class="form-control form-control-sm"
124
										placeholder="new alias..." ng-model="newOtherName" /></td>
125
									<td><select class="custom-select custom-select-sm"
126
										ng-model="newLang">
127
											<option disabled="disabled" value=''>language...</option>
128
											<option ng-repeat="l in vocabularies.languages">{{l}}</option>
129
									</select></td>
130
									<td class="text-right" style="width: 44px">
131
										<button type="button" class="btn btn-sm btn-outline-success"
132
											ng-click="org.otherNames.push({'name': newOtherName, 'lang': newLang}); newOtherName=newLang=''"
133
											ng-disabled="!newOtherName || !newLang">
134
											<i class="fa fa-plus"></i>
135
										</button>
136
									</td>
137
								</tr>
138
							</tfoot>
139
						</table>
140
					</div>
141
				</div>
142
			</div>
143
	
144
			<div class="form-group row">
145
				<div class="col-lg-8 mb-2">
146
					<div class="card">
147
						<div class="card-header bg-primary text-white text-center py-1">Identifiers</div>
148
						<table class="table table-sm">
149
							<thead class="thead-light">
150
								<tr>
151
									<th>id</th>
152
									<th style="width: 156px">type</th>
153
									<th style="width: 44px"></th>
154
								</tr>
155
							</thead>
156
							<tbody>
157
								<tr ng-repeat="id in org.otherIdentifiers">
158
									<td>{{id.id}}</td>
159
									<td>{{id.type}}</td>
160
									<td class="text-right" style="width: 44px">
161
										<button type="button" class="btn btn-sm  btn-outline-danger"
162
											ng-click="org.otherIdentifiers.splice($index, 1)">
163
											<i class="fa fa-trash"></i>
164
										</button>
165
									</td>
166
								</tr>
167
							</tbody>
168
							<tfoot>
169
								<tr ng-init="newId=newIdType=''">
170
									<td><input type="text" class="form-control form-control-sm"
171
										placeholder="new id..." ng-model="newId" /></td>
172
									<td><select class="custom-select custom-select-sm"
173
										ng-model="newIdType">
174
											<option disabled="disabled" value=''>type...</option>
175
											<option ng-repeat="t in vocabularies.idTypes">{{t}}</option>
176
									</select></td>
177
									<td class="text-right" style="width: 44px">
178
										<button type="button" class="btn btn-sm btn-outline-success"
179
											ng-click="org.otherIdentifiers.push({'id': newId, 'type': newIdType}); newId=newIdType=''"
180
											ng-disabled="!newId || !newIdType">
181
											<i class="fa fa-plus"></i>
182
										</button>
183
									</td>
184
								</tr>
185
							</tfoot>
186
						</table>
187
					</div>
188
				</div>
189
			</div>
190
	
191
			<div class="form-group row">
192
				<div class="col-lg-8 mb-2">
193
					<div class="card">
194
						<div class="card-header bg-primary text-white text-center py-1">Urls</div>
195
						<table class="table table-sm">
196
							<tbody>
197
								<tr ng-repeat="u in org.urls">
198
									<td><a href="{{u}}" target="_blank">{{u}}</a></td>
199
									<td class="text-right" style="width: 44px">
200
										<button type="button" class="btn btn-sm  btn-outline-danger"
201
											ng-click="org.urls.splice($index, 1)">
202
											<i class="fa fa-trash"></i>
203
										</button>
204
									</td>
205
								</tr>
206
							</tbody>
207
							<tfoot>
208
								<tr ng-init="newUrl=''">
209
									<td><input type="text" class="form-control form-control-sm"
210
										placeholder="http://..." ng-model="newUrl" /></td>
211
									<td class="text-right" style="width: 44px">
212
										<button type="button" class="btn btn-sm btn-outline-success"
213
											ng-click="org.urls.push(newUrl); newUrl=''"
214
											ng-disabled="!newUrl || org.urls.indexOf(newUrl) !== -1">
215
											<i class="fa fa-plus"></i>
216
										</button>
217
									</td>
218
								</tr>
219
							</tfoot>
220
						</table>
221
					</div>
222
				</div>
223
			</div>
224
		</fieldset>
225
		
226
		<fieldset class="mt-4">
227
			<legend>Relations</legend>
228
			<div class="form-group row">
229
				<div class="col-lg-8 mb-2">
230
					<div class="card">
231
						<div class="card-header bg-primary text-white text-center py-1">Relations</div>
232
						<table class="table table-sm">
233
							<thead class="thead-light">
234
								<tr>
235
									<th class="pl-3" style="border-top: none;">Related organization</th>
236
									<th style="border-top: none; width: 156px">Type</th>
237
									<th style="border-top: none; width: 44px"></th>
238
								</tr>
239
							</thead>
240
							<tbody>
241
								<tr ng-if="org.relations.length == 0">
242
									<td class="text-center text-muted" colspan="3">No relations</td>
243
								</tr>
244
								<tr ng-repeat="r in org.relations">
245
									<td class="pl-3"><a href="#!/edit/0/{{r.relatedOrgId}}" title="{{r.relatedOrgId}}">{{r.relatedOrgName}}</a></td>
246
									<td>{{r.type}}</td>
247
									<td class="text-right">
248
										<button type="button" class="btn btn-sm  btn-outline-danger" ng-click="org.relations.splice($index, 1)"><i class="fa fa-trash"></i></button>
249
									</td>
250
								</tr>
251
							</tbody>
252
							<tfoot>
253
								<tr>
254
									<td>
255
										<input type="text" placeholder="add a related organization..." readonly="readonly"
256
											class="form-control form-control-sm" style="background-color: white; color: #007bff;"
257
											ng-model="newRelation.name" ng-click="resetSelectedRelation()"
258
											data-toggle="modal" data-target="#selectRelatedOrgModal"/>
259
									</td>
260
									<td>
261
										<select class="custom-select custom-select-sm" ng-model="newRelType">
262
											<option disabled="disabled" value=''>rel type...</option>
263
											<option ng-repeat="t in vocabularies.relTypes">{{t}}</option>
264
										</select>
265
									</td>
266
									<td class="text-right">
267
										<button type="button" class="btn btn-sm btn-outline-success" ng-disabled="!newRelType || !newRelation.id" ng-click="addNewRelation()"><i class="fa fa-plus"></i></button>
268
									</td>
269
								</tr>
270
							</tfoot>
271
						</table>
272
					</div>
273
				</div>
274
			</div>
275
		</fieldset>		
276
			
277
		<button type="submit" class="btn btn-primary" ng-click="save()" ng-disabled="organizationForm.$invalid">save</button>
278
		
279
	</form>
280
</div>
281

  
282
<select-org-modal modal-id="selectRelatedOrgModal" selected-org="newRelation"></select-org-modal>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/forms/org_conflicts.html
1
<div class="card mb-3">
2
	<div class="card-header bg-primary text-white py-1">Conflicts</div>
3

  
4
	<div class="card-body text-muted" ng-if="conflicts.length == 0">No conflicts</div>
5

  
6
	<table class="table table-sm mt-2" ng-if="conflicts.length > 0">
7
		<thead>
8
			<tr class="d-flex">
9
				<th class="col-4 pl-3" style="border-top: none;">Related organization</th>
10
				<th class="col-1 text-center" style="border-top: none;">Type</th>
11
				<th class="col-2 text-center" style="border-top: none;">Place</th>
12
				<th class="col-3" style="border-top: none;">Original ID</th>
13
				<th class="col-2" style="border-top: none;"></th>
14
			</tr>
15
		</thead>
16
		<tbody>
17
			<tr class="d-flex" ng-repeat="sr in conflicts">
18
				<td class="col-4 pl-3">{{sr.name}}</td>
19
				<td class="col-1 text-center small">{{sr.type}}</td>
20
				<td class="col-2 text-center small"><img ng-src="resources/images/flags/{{sr.country}}.gif" /> {{sr.city}}, {{sr.country}}</td>
21
				<td class="col-3 small"><a href="#!/edit/0/{{sr.id}}"><span class="text-monospace">{{sr.id}}</span></a></td>
22
				<td class="col-2 text-right">
23
					<div class="btn-group btn-group-toggle btn-group-sm" data-toggle="buttons">
24
						<label class="btn" ng-class="{'btn-danger' : sr.relType == 'is_different', 'btn-outline-danger' : sr.relType != 'is_different'}"> <input type="radio" autocomplete="off" ng-model="sr.relType"
25
							value="is_different" ng-class="{'active' : sr.relType == 'is_different'}"><i class="fas fa-times fa-fw"></i>
26
						</label>
27
						<label class="btn" ng-class="{'btn-info' : sr.relType == 'suggested', 'btn-outline-info' : sr.relType != 'suggested'}"> <input type="radio" autocomplete="off" ng-model="sr.relType"
28
							value="suggested" ng-class="{'active' : sr.relType == 'suggested'}"><i class="fas fa-question fa-fw"></i>
29
						</label>
30
						<label class="btn" ng-class="{'btn-success' : sr.relType == 'is_similar', 'btn-outline-success' : sr.relType != 'is_similar'}"> <input type="radio" autocomplete="off" ng-model="sr.relType"
31
							value="is_similar" ng-class="{'active' : sr.relType == 'is_similar'}" /><i class="fas fa-check fa-fw"></i>
32
						</label>
33
					</div>
34
				</td>
35
			</tr>
36
		</tbody>
37
	</table>
38

  
39
	<div class="card-footer text-right" ng-if="showSaveButton && conflicts.length > 0">
40
		<button class="btn btn-sm btn-primary" ng-click="saveFunction()">todo</button>
41
	</div>
42
</div>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/edit.html
1
<organization-info info="info" message="message"></organization-info>
1
<h4>{{info.name}}</h4>
2 2

  
3
<div class="alert alert-success" ng-if="message">{{message}}</div>
4

  
5
<p class="text-muted" ng-if="!message">
6
	<b>ID: </b>{{info.id}}<br /> <b>Created at</b> {{info.creationDate | date:'MMMM d, y HH:mm:ss'}} <b>by</b> {{info.createdBy}}<br /> <b>Modified at</b> {{info.modificationDate | date:'MMMM d, y HH:mm:ss'}} <b>by</b>
7
	{{info.modifiedBy}}
8
</p>
9

  
3 10
<div class="card">
4 11
	<org-tabs-menu  org-id="{{orgId}}" info="info" org="org" events="events" selected="currentTab"></org-tabs-menu>
5 12
	<org-form-metadata     org-id="{{orgId}}" org="org"       vocabularies="vocabularies" info-method="getInfo()" ng-if="currentTab == 1"></org-form-metadata>
6
	<org-form-dedup-events org-id="{{orgId}}" events="events" vocabularies="vocabularies" info-method="getInfo()" ng-if="currentTab == 2"></org-form-dedup-events>
13
	<org-dedup-events org-id="{{orgId}}" events="events" vocabularies="vocabularies" info-method="getInfo()" ng-if="currentTab == 2"></org-dedup-events>
7 14
</div>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/parts/org_dedup_events.html
1
<div class="card-body">
2
	
3
	<org-details org="currentOrgDetails"></org-details>
4

  
5
	<org-form-duplicates duplicates="events.duplicates" save-function="saveDuplicates()" show-save-button="1"></org-form-duplicates>
6
					
7
	<org-form-conflicts conflicts="events.conflicts" save-function="saveConflicts()" show-save-button="1"></org-form-conflicts>
8

  
9
</div>
10

  
11

  
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/parts/org_details.html
1
<div class="card mb-3">
2
	<div class="card-header bg-primary text-white py-1">Registered organization</div>
3
	<table class="table table-sm table-condensed">
4
		<tr class="d-flex">
5
			<th class="col-4">Name</th>
6
			<td class="col-8">{{org.name}}</td>
7
		</tr>
8
		<tr class="d-flex">
9
			<th class="col-4">Type</th>
10
			<td class="col-8">{{org.type}}</td>
11
		</tr>
12
		<tr class="d-flex">
13
			<th class="col-4">Place</th>
14
			<td class="col-8">{{org.city}}, {{org.country}}</td>
15
		</tr>
16
		<tr class="d-flex">
17
			<th class="col-4">Acronyms</th>
18
			<td class="col-8">{{org.acronyms.join(', ')}}</td>
19
		</tr>
20
		<tr class="d-flex">
21
			<th class="col-4">Also known as</th>
22
			<td class="col-8"><span ng-repeat="n in org.otherNames">{{n.name}}<br /></span></td>
23
		</tr>
24
		<tr class="d-flex">
25
			<th class="col-4">Urls</th>
26
			<td class="col-8"><span ng-repeat="u in org.urls"><a href="{{u}}" target="_blank">{{u}}</a><br /></span></td>
27
		</tr>
28
	</table>
29
</div>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/html/parts/org_results.html
1
<p ng-if="mode != 'select-modal'">
2
	<span ng-if="orgs.totalElements > 0">Page: {{orgs.number + 1}} / {{orgs.totalPages}}<br />Total elements: {{orgs.totalElements}}<br />{{searchMessage}}</span>
3
	<span ng-if="orgs.totalElements == 0">Page: -<br />Total elements: 0<br />{{searchMessage}}</span>
4
	<span ng-if="!(orgs.totalElements || orgs.totalElements === 0)">Page:<br />Total elements:<br />{{searchMessage}}</span>
5
</p>
6

  
7
<p ng-if="mode == 'select-modal'" class="text-right">
8
	<span ng-if="orgs.totalElements > 0"><b>Page:</b> {{orgs.number + 1}} / {{orgs.totalPages}} <b>- Total elements:</b> {{orgs.totalElements}}</span>
9
	<span ng-if="orgs.totalElements == 0"><b>Total elements:</b> 0</span>
10
</p>
11

  
12
<h4 ng-if="orgs.totalElements == 0" class="text-center">
13
	No results
14
</h4>
15

  
16
<div ng-if="orgs.totalElements > 0">
17
	<nav>
18
		<ul class="pagination justify-content-center">
19
			<li class="page-item" ng-class="{'disabled' : orgs.first }">
20
				<a class="page-link" href="javascript:void(0)" ng-click="prevFunction()">&laquo; Previous</a>
21
			</li>
22
			<li class="page-item" ng-class="{'disabled' : orgs.last }">
23
				<a class="page-link" href="javascript:void(0)" ng-click="nextFunction()">Next &raquo;</a>
24
	    	</li>
25
		</ul>
26
	</nav>
27
	
28
	<table class="table table-sm table-hover">
29
		<thead class="thead-light">
30
			<tr class="d-flex">
31
				<th class="col-6">Organization name</th>
32
				<th class="col-4">Place</th>
33
				<th class="col-1 text-center">Acronyms</th>
34
				<th class="col-1 text-right">Type</th>
35
			</tr>
36
		</thead>
37
		<tbody>
38
			<tr ng-repeat="o in orgs.content" class="d-flex">
39
				<td class="col-6">
40
					<a ng-if="mode == 'select-modal'" href="javascript:void(0)" title="select" ng-click="selectOrg(o)" data-dismiss="modal">{{o.name}}</a>
41
					<a ng-if="mode != 'select-modal'" href="#!/edit/0/{{o.id}}" title="{{o.id}}">{{o.name}}</a>
42
				</td>
43
				<td class="col-4"><img ng-src="resources/images/flags/{{o.country}}.gif" /> {{o.city}}, {{o.country}}</td>
44
				<td class="col-1 text-center">{{o.acronyms.join()}}</td>
45
				<td class="col-1 text-right">{{o.type}}</td>
46
			</tr>
47
		</tbody>
48
	</table>
49
</div>
modules/dnet-orgs-database-application/trunk/src/main/resources/static/resources/js/organizations.js
17 17
    };
18 18
});
19 19

  
20
orgsModule.directive('organizationInfo', function() {
21
	return {
22
		restrict: 'E',
23
		scope: {
24
			'info'    : '=',
25
			'message' : '='
26
		},
27
		templateUrl: 'resources/html/part/org_info.html'
28
     }
29
});
30

  
31 20
orgsModule.directive('selectOrgModal', function($http) {
32 21
	return {
33 22
		restrict: 'E',
......
65 54
			'org'      : '=',
66 55
			'events'   : '=',
67 56
		},
68
		templateUrl: 'resources/html/part/org_tabs_menu.html',
57
		templateUrl: 'resources/html/menu/org_tabs_menu.html',
69 58
		link: function(scope, element, attrs, ctrl) {
70 59

  
71 60
			scope.loadOrg = function() {
......
113 102
			'mode'         : '@',  // insert or update
114 103
			'infoMethod'   : '&'
115 104
		},
116
		templateUrl: 'resources/html/part/org_form_metadata.html',
105
		templateUrl: 'resources/html/forms/org_metadata.html',
117 106
		link: function(scope, element, attrs, ctrl) {
118 107
			
119 108
			scope.newRelation = {};
......
148 137
     }
149 138
});
150 139

  
151
orgsModule.directive('orgFormDedupEvents', function($http, $location, $route) {
140
orgsModule.directive('orgDedupEvents', function($http, $location, $route) {
152 141
	return {
153 142
		restrict: 'E',
154 143
		scope: {
......
157 146
			'vocabularies' : '=',
158 147
			'infoMethod'   : '&'
159 148
		},
160
		templateUrl: 'resources/html/part/org_form_dedup_events.html',
149
		templateUrl: 'resources/html/parts/org_dedup_events.html',
161 150
		link: function(scope, element, attrs, ctrl) {
162 151
			
163 152
			scope.currentOrgDetails = {};
......
195 184
		scope: {
196 185
			'org' : '='
197 186
		},
198
		templateUrl: 'resources/html/part/org_details.html',
187
		templateUrl: 'resources/html/parts/org_details.html',
199 188
		link: function(scope, element, attrs, ctrl) {}
200 189
     }
201 190
});
......
211 200
			'selectedOrg'   : '=',
212 201
			'mode'          : '@'
213 202
		},
214
		templateUrl: 'resources/html/part/org_results.html',
203
		templateUrl: 'resources/html/parts/org_results.html',
215 204
		link: function(scope, element, attrs, ctrl) {
216 205
			scope.selectOrg = function(o) {
217 206
				scope.selectedOrg = o;
......
230 219
			'info'         : '=',
231 220
			'infoMethod'   : '&'
232 221
		},
233
		templateUrl: 'resources/html/part/all_conflicts.html',
222
		templateUrl: 'resources/html/forms/all_conflicts.html',
234 223
		link: function(scope, element, attrs, ctrl) {}
235 224
     }
236 225
});
237 226

  
238
orgsModule.directive('orgDuplicates', function($http, $location, $route) {
227
orgsModule.directive('orgFormDuplicates', function($http, $location, $route) {
239 228
	return {
240 229
		restrict: 'E',
241 230
		scope: {
......
243 232
			'showSaveButton' : '@',
244 233
			'saveFunction'   : '&'
245 234
		},
246
		templateUrl: 'resources/html/part/org_duplicates.html',
235
		templateUrl: 'resources/html/forms/org_duplicates.html',
247 236
		link: function(scope, element, attrs, ctrl) {}
248 237
     }
249 238
});
250 239

  
251
orgsModule.directive('orgConflicts', function($http, $location, $route) {
240
orgsModule.directive('orgFormConflicts', function($http, $location, $route) {
252 241
	return {
253 242
		restrict: 'E',
254 243
		scope: {
......
256 245
			'showSaveButton' : '@',
257 246
			'saveFunction'   : '&'
258 247
		},
259
		templateUrl: 'resources/html/part/org_conflicts.html',
248
		templateUrl: 'resources/html/forms/org_conflicts.html',
260 249
		link: function(scope, element, attrs, ctrl) {}
261 250
     }
262 251
});
......
270 259
			'info'         : '=',
271 260
			'infoMethod'   : '&'
272 261
		},
273
		templateUrl: 'resources/html/part/all_duplicates.html',
262
		templateUrl: 'resources/html/forms/all_duplicates.html',
274 263
		link: function(scope, element, attrs, ctrl) {
275 264
			scope.currentOrg = {};
276 265
			scope.currentOrgDetails = {};

Also available in: Unified diff