Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
8df09b7
Add toxic to config class and implement getter for it
xinran0606 Jul 9, 2025
01baec2
create toxic class
xinran0606 Jul 9, 2025
9e9c0a2
add toxic and nonToxic properties as well as getters and setters
xinran0606 Jul 9, 2025
1ebdb2a
typesystem toxic
xinran0606 Jul 9, 2025
22e0028
Add toxic annotation handling method in Importer
xinran0606 Jul 9, 2025
ae5bd38
Implement toxic selection and mapping in setToxic method
xinran0606 Jul 9, 2025
b2ec338
Add toxics property to Document class with appropriate annotations
xinran0606 Jul 9, 2025
5540c7c
Set toxics in Document after processing import
xinran0606 Jul 9, 2025
d4e0cfd
Add Toxic class to Hibernate metadata sources
xinran0606 Jul 9, 2025
cc2dda6
Add OffensiveSpeech entity for handling offensive speech annotations
Mirelamele Jul 9, 2025
f60d1a2
Add Typesystem annotation to OffensiveSpeech entity
Mirelamele Jul 9, 2025
8ad779f
Add offensive and non-offensive flags to OffensiveSpeech entity
Mirelamele Jul 9, 2025
6be01b3
add to HibernateConf
Mirelamele Jul 9, 2025
ffb920b
add to CorpusAnnotationConfig
Mirelamele Jul 9, 2025
bd4744f
Add support for importing offensive speech annotations
Mirelamele Jul 9, 2025
905e75f
fix data type
Mirelamele Jul 9, 2025
2e3df84
Add method to set offensive speech annotations with score validation
Mirelamele Jul 9, 2025
f81da7a
add offensive speech to document entity
Mirelamele Jul 9, 2025
3cad3e3
set offensive speeches in document after import
Mirelamele Jul 9, 2025
50eea9c
fix table name
Mirelamele Jul 9, 2025
fe40990
Add Emotion entity for emotion annotations in documents
UnleqitQ Jul 10, 2025
6eee6f4
Add Typesystem annotation to Emotion entity
UnleqitQ Jul 10, 2025
b80fe97
Add EmotionType entity for managing emotion types
UnleqitQ Jul 10, 2025
6655678
Add EmotionValue entity for storing emotion values
UnleqitQ Jul 10, 2025
1159672
Add emotionValues field to Emotion entity for managing associated Emo…
UnleqitQ Jul 10, 2025
1d4b317
Add setter for name field in EmotionType entity
UnleqitQ Jul 10, 2025
865e2ff
Add Emotion, EmotionValue, and EmotionType classes to Hibernate confi…
UnleqitQ Jul 10, 2025
316dfea
Add emotions field to Document entity for managing associated Emotion…
UnleqitQ Jul 10, 2025
9071db6
Add methods for retrieving and creating EmotionType instances in Post…
UnleqitQ Jul 10, 2025
8e1a726
Add emotion field and getter method in CorpusAnnotationConfig
UnleqitQ Jul 10, 2025
c2e3a83
Add emotion annotation handling in Importer
UnleqitQ Jul 10, 2025
755d476
Add emotion processing in setEmotion method of Importer
UnleqitQ Jul 10, 2025
9b0a8b1
Refactor EmotionValue class to extend UIMAAnnotation and implement Wi…
UnleqitQ Jul 10, 2025
2c34751
Enhance emotion handling in Importer by updating EmotionValue instant…
UnleqitQ Jul 10, 2025
f22aa3b
Update getWikiId method in Emotion to use 'E-' prefix for IDs
UnleqitQ Jul 10, 2025
85fc804
fix wiki ID prefix in OffensiveSpeech entity
Mirelamele Jul 10, 2025
d46f8a6
Fix wiki ID format in Toxic class
xinran0606 Jul 10, 2025
a60b136
Create basic sentiment entity class
Jul 10, 2025
d2f3366
New Columns and get set methods for columns added
Jul 10, 2025
1691219
added typesystem annotation
Jul 10, 2025
3227890
added sentiment to HibernateConf
Jul 10, 2025
6545f9f
Added Sentiment to Document
Jul 10, 2025
0511039
Added Sentiment to CorpusAnnotationConfig
Jul 10, 2025
cb255e6
added sentiment stuff to Importer
Jul 10, 2025
2798ecb
Add emotion checkbox to corpus annotations template
UnleqitQ Jul 10, 2025
1f9c5d2
Add emotion handling to WikiService and create emotion annotation page
UnleqitQ Jul 10, 2025
2453aec
Remove KWIC view section from emotion annotation page
UnleqitQ Jul 10, 2025
6d52677
Add emotion markers and styling to document annotations
UnleqitQ Jul 10, 2025
716e226
Add emotion development visualization and API endpoint
UnleqitQ Jul 10, 2025
7d33565
why does this not use a class??
UnleqitQ Jul 10, 2025
de5dd58
Add createLineChart method to GraphVizHandler for emotion data visual…
UnleqitQ Jul 10, 2025
f35621a
Refactor emotion value calculation and enhance tooltip formatting in …
UnleqitQ Jul 10, 2025
20c494d
Enhance tooltip formatting and implement smooth scrolling for emotion…
UnleqitQ Jul 10, 2025
8c6094c
Enhance tooltip content in document reader to include emotion segment…
UnleqitQ Jul 10, 2025
762f1d2
Add emotionId to EmotionEntry and update tooltip element IDs in docum…
UnleqitQ Jul 10, 2025
e05b246
Sort emotion types alphabetically in document reader for consistent c…
UnleqitQ Jul 10, 2025
929a45d
Refactor CSS for improved formatting and add highlight functionality …
UnleqitQ Jul 10, 2025
e69f833
Add mouseout event to remove highlight from emotion elements in docum…
UnleqitQ Jul 10, 2025
5ce91f9
Add emotion page association in Importer for filtered emotions
UnleqitQ Jul 11, 2025
7be8f42
Merge branch 'feature/emotion' into feature/emotion-web
UnleqitQ Jul 11, 2025
1f1e790
correct type class
Jul 11, 2025
ed1249b
added sentiment loading to importer :)
Jul 11, 2025
b94fbe4
added pageid to sentiment <3
Jul 11, 2025
a455395
added sentiment to lexicon
Jul 11, 2025
6110766
Random stuff in Web for Sentiment, WIki etc.
Jul 11, 2025
e44ca3a
Synchronize getOrCreateEmotionTypeByName method to ensure thread safety
UnleqitQ Jul 17, 2025
043eb1c
Merge branch 'feature/emotion' into feature/emotion-web
UnleqitQ Jul 17, 2025
34033f6
Add Model and ModelVersion entities for model information management
UnleqitQ Jul 18, 2025
7312998
Add Model and ModelVersion classes to Hibernate configuration
UnleqitQ Jul 18, 2025
d1df871
Add unique constraint to ModelVersion table for model_id and version
UnleqitQ Jul 18, 2025
0c225f6
Add methods for managing Model and ModelVersion entities
UnleqitQ Jul 18, 2025
a62facf
Add modelVersion field to UIMAAnnotation for model information linkage
UnleqitQ Jul 18, 2025
56b27e3
Rename modelName field to name in Model class
UnleqitQ Jul 18, 2025
3f75d38
Add ModelCategory class for categorizing models
UnleqitQ Jul 22, 2025
8c70e16
Add many-to-many relationship between Model and ModelCategory
UnleqitQ Jul 22, 2025
470475a
Add ModelCategory class to Hibernate configuration
UnleqitQ Jul 22, 2025
d4b48a8
Add methods for managing ModelCategory associations in PostgresqlData…
UnleqitQ Jul 22, 2025
9ebac77
fix update Model class
UnleqitQ Jul 22, 2025
0ea356c
Ensure managed entities in registerModelToCategoryAssociation method
UnleqitQ Jul 22, 2025
ec2fc90
Add NamedModel annotation for model naming consistency
UnleqitQ Jul 22, 2025
4c559ef
Add getOrCreateModelCategory method to handle model category retrieval
UnleqitQ Jul 22, 2025
989f8fe
Merge branch 'feature/model_info' into feature/emotion
UnleqitQ Jul 22, 2025
04324d6
Add NamedModel annotation to Emotion class for naming consistency
UnleqitQ Jul 22, 2025
3d722de
Add model category handling and associations in Emotion processing
UnleqitQ Jul 22, 2025
5fc6d49
Merge branch 'feature/emotion' into feature/emotion-web
UnleqitQ Jul 22, 2025
36d1c5d
Implement model selection feature in document reader with UI updates …
UnleqitQ Jul 23, 2025
cd92c8d
fix events
UnleqitQ Jul 23, 2025
c828de0
Refactor OffensiveSpeech entity and add OffensiveSpeechType and Offen…
Mirelamele Jul 25, 2025
52a902e
Add OffensiveSpeechType and OffensiveSpeechValue handling in Hibernat…
Mirelamele Jul 25, 2025
32be631
Rename database table names for OffensiveSpeech, OffensiveSpeechType,…
Mirelamele Jul 25, 2025
7d52b66
Add Offensive Speech annotation in corpusAnnotations.ftl
Mirelamele Jul 25, 2025
240ecca
Add OffensiveSpeech model to LexiconService
Mirelamele Jul 25, 2025
1fe2256
Add styling for Offensive Speech entries in lexicon view
Mirelamele Jul 25, 2025
dc02c79
Add Offensive Speech annotation page and view model
Mirelamele Jul 25, 2025
ea4e33f
Add ToxicValue and ToxicType classes with relationships to Toxic
xinran0606 Jul 25, 2025
2ee136f
Add ToxicValue and ToxicType classes to Hibernate metadata sources
xinran0606 Jul 25, 2025
e47c9e7
Add ToxicValue and ToxicType handling in Importer and Data Interface
xinran0606 Jul 25, 2025
e7ac639
Handle toxic annotations in Importer to set page context
xinran0606 Jul 25, 2025
ccdd87b
Update condition check in document reader to use 'rendered' class ins…
UnleqitQ Jul 25, 2025
29a663a
Add toxic annotation checkbox to corpus annotations
xinran0606 Aug 7, 2025
887d1a3
Add styling for toxic entries in lexicon and include Toxic model in L…
xinran0606 Aug 7, 2025
85df96d
Add Toxic annotation wiki page view model and rendering logic
xinran0606 Aug 7, 2025
ec93f36
Merge remote-tracking branch 'origin/feature/toxic-web' into feature/…
UnleqitQ Aug 12, 2025
625082e
Merge remote-tracking branch 'origin/feature/offensive-speech-web' in…
UnleqitQ Aug 12, 2025
fd4ee9b
Add NamedModel annotation to OffensiveSpeech and Toxic classes
UnleqitQ Aug 12, 2025
3cbf0e4
Handle model category and model version creation for OffensiveSpeech …
UnleqitQ Aug 12, 2025
ba50516
Add model category and version handling for Toxic in setToxic method
UnleqitQ Aug 12, 2025
9834894
Add offensive speech handling and UI markers in document processing
UnleqitQ Aug 12, 2025
e6bfd9d
Add handling and UI elements for toxic annotations in document proces…
UnleqitQ Aug 12, 2025
912e272
Add category handling for OffensiveSpeech and Toxic in document proce…
UnleqitQ Aug 12, 2025
1849337
Add flexed-column class for improved layout in document reader view
UnleqitQ Aug 12, 2025
8e4afbf
Dynamic Sentiment Types
Aug 13, 2025
e8db73d
add datainterface methods for sentiment
Aug 13, 2025
641e4bc
added sentiment values to Importer
Aug 13, 2025
2c7b9f4
add classes to HibernateConf
Aug 13, 2025
149a238
Merge branch 'feature/sentiment' into feature/sentiment-web
Aug 13, 2025
1524475
fix merge related issues
Aug 13, 2025
fa773c3
Merge remote-tracking branch 'origin/feature/sentiment-web' into feat…
UnleqitQ Aug 13, 2025
edebe1c
Add sentiment checkbox to corpus annotations for improved UI
UnleqitQ Aug 13, 2025
43f5a0e
Add model information display to annotation pages and update data int…
UnleqitQ Aug 13, 2025
82b7393
Add model handling in sentiment processing
UnleqitQ Aug 13, 2025
a291373
Add sentiment handling and UI enhancements for sentiment markers
UnleqitQ Aug 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -186,5 +186,49 @@
<input type="checkbox" class="rounded-0 bg-prime" disabled ${isChecked}/>
</div>
</div>

<div class="col-lg-4 annotation-entry">
<#assign isChecked = "" />
<#if corpusConfig.getAnnotations().isOffensiveSpeech() == true>
<#assign isChecked = "checked"/>
</#if>
<div class="flexed align-items-center justify-content-between border p-2 rounded wrapped">
<label class="mb-0 pr-1 color-dark">Offensive Speech</label>
<input type="checkbox" class="rounded-0 bg-prime" disabled ${isChecked}/>
</div>
</div>

<div class="col-lg-4 annotation-entry">
<#assign isChecked = "" />
<#if corpusConfig.getAnnotations().isEmotion() == true>
<#assign isChecked = "checked"/>
</#if>
<div class="flexed align-items-center justify-content-between border p-2 rounded wrapped">
<label class="mb-0 pr-1 color-dark">Emotions</label>
<input type="checkbox" class="rounded-0 bg-prime" disabled ${isChecked}/>
</div>
</div>

<div class="col-lg-4 annotation-entry">
<#assign isChecked = "" />
<#if corpusConfig.getAnnotations().isToxic() == true>
<#assign isChecked = "checked"/>
</#if>
<div class="flexed align-items-center justify-content-between border p-2 rounded wrapped">
<label class="mb-0 pr-1 color-dark">Toxic</label>
<input type="checkbox" class="rounded-0 bg-prime" disabled ${isChecked}/>
</div>
</div>

<div class="col-lg-4 annotation-entry">
<#assign isChecked = "" />
<#if corpusConfig.getAnnotations().isSentiment() == true>
<#assign isChecked = "checked"/>
</#if>
<div class="flexed align-items-center justify-content-between border p-2 rounded wrapped">
<label class="mb-0 pr-1 color-dark">Sentiment</label>
<input type="checkbox" class="rounded-0 bg-prime" disabled ${isChecked}/>
</div>
</div>
</div>
</div>
200 changes: 180 additions & 20 deletions uce.portal/resources/templates/css/document-reader.css
Original file line number Diff line number Diff line change
Expand Up @@ -141,30 +141,30 @@ body {
.header-btn:hover {
background-color: lightgray;
transition: 0.15s;
color:white;
color: white;
}

.document-content {
padding: 2rem 4.5rem;
}

.document-content *{
font-family: Courier !important;
.document-content * {
font-family: Courier !important;
word-break: break-word;
}

.document-content p,
.document-content label,
.document-content span{
.document-content span {
font-size: 16px;
}

.document-content h5,
.document-content h4,
.document-content h3,
.document-content h2,
.document-content h1{
color:rgba(0, 0, 0, 0.6);
.document-content h1 {
color: rgba(0, 0, 0, 0.6);
font-weight: bold;
}

Expand Down Expand Up @@ -338,6 +338,26 @@ body {
position: relative;
}

.document-content .colorable-emotion {
transition: background-color 0.3s ease;
position: relative;
}

.document-content .colorable-offensive {
transition: background-color 0.3s ease;
position: relative;
}

.document-content .colorable-toxic {
transition: background-color 0.3s ease;
position: relative;
}

.document-content .colorable-sentiment {
transition: background-color 0.3s ease;
position: relative;
}

.document-content .animated-topic-scroll {
transition: box-shadow 0.3s ease-in-out;
box-shadow: 0 0 10px 5px rgba(255, 255, 0, 0.5);
Expand All @@ -347,9 +367,9 @@ body {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 20px; /* minimum size */
min-width: 20px; /* minimum size */
height: 20px;
padding: 0 4px; /* horizontal padding */
padding: 0 4px; /* horizontal padding */
border-radius: 50%;
border: 1px solid #333;
font-size: 14px;
Expand All @@ -360,6 +380,98 @@ body {
margin-left: 4px;
}

.document-content .emotion-marker {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 20px; /* minimum size */
height: 20px;
padding: 0 4px; /* horizontal padding */
border-radius: 20%;
border: 1px solid #333;
font-size: 14px;
font-weight: bold;
background-color: white;
color: #333;
cursor: pointer;
margin-left: 4px;
}

.document-content .emotion-covered.highlight {
background-color: rgba(255, 0, 0, 0.2);
border-radius: 3px;
padding: 2px 4px;
}

.document-content .offensive-marker {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 20px; /* minimum size */
height: 20px;
padding: 0 4px; /* horizontal padding */
border-radius: 20%;
border: 1px solid #333;
font-size: 14px;
font-weight: bold;
background-color: white;
color: #333;
cursor: pointer;
margin-left: 4px;
}

.document-content .offensive-covered.highlight {
background-color: rgba(255, 0, 0, 0.2);
border-radius: 3px;
padding: 2px 4px;
}

.document-content .toxic-marker {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 20px; /* minimum size */
height: 20px;
padding: 0 4px; /* horizontal padding */
border-radius: 20%;
border: 1px solid #333;
font-size: 14px;
font-weight: bold;
background-color: white;
color: #333;
cursor: pointer;
margin-left: 4px;
}

.document-content .toxic-covered.highlight {
background-color: rgba(255, 0, 0, 0.2);
border-radius: 3px;
padding: 2px 4px;
}

.document-content .sentiment-marker {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 20px; /* minimum size */
height: 20px;
padding: 0 4px; /* horizontal padding */
border-radius: 20%;
border: 1px solid #333;
font-size: 14px;
font-weight: bold;
background-color: white;
color: #333;
cursor: pointer;
margin-left: 4px;
}

.document-content .sentiment-covered.highlight {
background-color: rgba(255, 0, 0, 0.2);
border-radius: 3px;
padding: 2px 4px;
}

.side-bar {
width: 500px;
transition: 0.5s;
Expand Down Expand Up @@ -468,31 +580,72 @@ body {
font-size: 0.7rem;
color: #333;
font-weight: 600;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
transition: transform 0.2s ease, box-shadow 0.2s ease;
text-align: center;
width: 100%;
white-space: normal;
word-wrap: break-word;
hyphens: auto;
border: 1px solid rgba(0,0,0,0.1);
border: 1px solid rgba(0, 0, 0, 0.1);
min-height: 32px;
}

.side-bar-content .document-topics-list .topic-tag:hover {
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0,0,0,0.15);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
cursor: pointer;
}

.side-bar-content .document-topics-list .topic-tag.active-topic {
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
border: 2px solid rgba(0,0,0,0.3);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
border: 2px solid rgba(0, 0, 0, 0.3);
font-weight: 700;
opacity: 1.2;
}

/* Sidebar Model Selection */
.side-bar-content .model-category {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.side-bar-content .model-category label {
font-weight: bold;
font-size: 1.1rem;
color: #333;
}
.side-bar-content .model-category select {
padding: 6px 10px;
font-size: 14px;
border-radius: 5px;
border: 1px solid #ccc;
background-color: #f9f9f9;
transition: border-color 0.2s ease-in-out;
}
.side-bar-content .model-category select:focus {
border-color: #007bff;
outline: none;
}
.side-bar-content .model-category select option {
padding: 6px 10px;
font-size: 14px;
background-color: #fff;
color: #333;
}
.side-bar-content .model-category select option:hover {
background-color: #f0f0f0;
}
.side-bar-content .model-category select option:checked {
background-color: #007bff;
color: white;
}
.side-bar-content .model-category select option:checked:hover {
background-color: #0056b3;
}

/* Scrollbar Minimap Styles */
.scrollbar-minimap {
position: fixed;
Expand Down Expand Up @@ -566,14 +719,14 @@ body {
--c: #ffffff;

padding: 1em;
border-radius: var(--r)/var(--r) min(var(--r),var(--p) - var(--b)/2) min(var(--r),100% - var(--p) - var(--b)/2) var(--r);
clip-path: polygon(100% 100%,0 100%,0 0,100% 0,
100% max(0% ,var(--p) - var(--b)/2),
border-radius: var(--r)/var(--r) min(var(--r), var(--p) - var(--b) / 2) min(var(--r), 100% - var(--p) - var(--b) / 2) var(--r);
clip-path: polygon(100% 100%, 0 100%, 0 0, 100% 0,
100% max(0%, var(--p) - var(--b) / 2),
calc(100% + var(--h)) var(--p),
100% min(100%,var(--p) + var(--b)/2));
100% min(100%, var(--p) + var(--b) / 2));
background: var(--c);
border-image: conic-gradient(var(--c) 0 0) fill 0/
calc(var(--p) - var(--b)/2) 0 calc(100% - var(--p) - var(--b)/2) var(--r)/
calc(var(--p) - var(--b) / 2) 0 calc(100% - var(--p) - var(--b) / 2) var(--r)/
0 var(--h) 0 0;
}

Expand Down Expand Up @@ -622,6 +775,7 @@ body {
.tab-content .tab-pane.active {
display: block;
}

.side-bar.visualization-expanded {
width: 150vw !important;
transition: width 0.3s ease;
Expand All @@ -633,6 +787,7 @@ body {
height: 100%;
position: relative;
}

.visualization-wrapper .visualization-content {
flex: 1;
overflow-y: auto;
Expand All @@ -651,13 +806,16 @@ body {
width: 100%;

}

.visualization-wrapper .visualization-spinner__icon {
margin-bottom: 16px;
}

.visualization-wrapper .visualization-spinner__icon i {
font-size: 2.5rem;
color: #0078d4;
}

.visualization-wrapper .visualization-spinner__text {
font-size: 1.1rem;
color: #444;
Expand All @@ -669,6 +827,7 @@ body {
.visualization-content .viz-panel {
display: none;
}

.viz-panel.active {
display: block;
}
Expand All @@ -685,7 +844,7 @@ body {
display: flex;
justify-content: space-around;
border-radius: 24px;
box-shadow: 0 4px 24px rgba(0,0,0,0.12);
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);
background: #fff;
border: 1px solid #e0e0e0;
padding: 0.5rem 1.5rem;
Expand All @@ -704,6 +863,7 @@ body {
color: #555;
transition: color 0.2s, background 0.2s;
}

.viz-nav-btn.active {
color: #007bff;
background: none;
Expand Down Expand Up @@ -741,7 +901,7 @@ body {
outline: none;
}

#vp-3, #vp-4, #vp-5, #vp-2, #vp-1 {
#vp-3, #vp-4, #vp-5, #vp-2, #vp-1, #vp-6 {
display: flex;
align-items: center;
justify-content: center;
Expand Down
Loading