Skip to content

Commit

Permalink
SAK-47784 Rubrics: Save Rubric as Draft
Browse files Browse the repository at this point in the history
  • Loading branch information
V100X authored and Miguel Pellicer committed Sep 29, 2022
1 parent 4df769e commit 231c1fa
Show file tree
Hide file tree
Showing 14 changed files with 254 additions and 53 deletions.
2 changes: 1 addition & 1 deletion library/src/morpheus-master/sass/base/_extendables.scss
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,7 @@ button.btn-transparent {
box-shadow: none;
}

&[disabled="disabled"], &[disabled], &[disabled="true"], &[class="disabled"] {
&:disabled, &.disabled {
&, &:hover, &:active, &:focus {
color: var(--button-disabled-text-color);
background: var(--sakai-background-color);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,19 @@
}
}
}

.highlight {
color: var(--sakai-highlight-color);
&.bold {
font-weight: bold;
}
}

button.draft {
&.disabled > span.highlight{
filter: brightness(60%);
}
}
}

#site-rubrics-title {
Expand Down Expand Up @@ -92,7 +105,8 @@
}

.rubric-details {
padding: $standard-spacing;
padding-top: $standard-spacing;
padding-inline: $standard-spacing;
.weighted-grade-info {
display: flex;
margin: 0 2px 15px 2px;
Expand All @@ -110,14 +124,23 @@
.total-data > div {
margin-bottom: 4px;
}
.banner-container {
display: flex;
flex-grow: 1;
.sak-banner-success:not(.hidden) ~ div:not(.hidden) {
display: none;
}
}
.sak-banner-error,
.sak-banner-success {
.sak-banner-success,
.sak-banner-warn {
height: fit-content;
flex-grow: 1;
margin: 0;
}
}
.margin-cero {
margin: 0;
.action-butons {
margin-bottom: $standard-spacing;
}
}

Expand Down
2 changes: 1 addition & 1 deletion library/src/morpheus-master/sass/themes/_dark.scss
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@

--progress-bar-bg: var(--sakai-color-blue--darker-5);
--footer-PoweredBy-bg: var(--sakai-color-gray--darker-1);
--sakai-hightlight-color: var(--sakai-color-red--lighter-6)
--sakai-highlight-color: var(--sakai-color-red--lighter-6);

// Dashboard
--sakai-calendar-button-background-color: var(--sakai-background-color);
Expand Down
2 changes: 1 addition & 1 deletion library/src/morpheus-master/sass/themes/_light.scss
Original file line number Diff line number Diff line change
Expand Up @@ -530,7 +530,7 @@

--sakai-popover-background: var(--sakai-background-color-1);
--sakai-popover-title-background: var(--sakai-background-color-1);
--sakai-hightlight-color: var(--errorBanner-color);
--sakai-highlight-color: var(--errorBanner-color);

//Timer progress bar backgrounds
--timer-bar-full-bg: var(--sakai-color-green);
Expand Down
2 changes: 1 addition & 1 deletion library/src/webapp/skin/tool_base.css
Original file line number Diff line number Diff line change
Expand Up @@ -377,7 +377,7 @@ ul.alertMessage{
/*highlight certain texts*/
/*see: assignment due date in list*/
.highlight{
color: var(--sakai-hightlight-color);
color: var(--sakai-highlight-color);
font-weight:bold;
}

Expand Down
10 changes: 9 additions & 1 deletion rubrics/api/src/main/bundle/rubrics.properties
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ done=Done
total=Total
confirm_remove=Are you sure you want to remove
is_locked=is locked: Only titles, descriptions and criterion order can be modified
locked_warning=The rubric will be updated on all previously associated items.
locked_warning=Rubric in use. Editable content will be updated on all previously associated items.
points=Points
weight=Weight
save_weights=Save Weights
Expand Down Expand Up @@ -57,6 +57,14 @@ share=Make Public {}
share_label=Make Public
weighted_label=Switch to Standard Grading
standard_label=Switch to Weighted Grading
weighted_status=Weighted Rubric
draft_label=Draft
draft_turn_on=Save as Draft
draft_turn_off=Publish Rubric
draft_info=While saved as draft, the rubric won't be available from other tools.
draft_invalid_weight_publish=In order to publish the rubric:\u0020
draft_save_invalid_weights=Invalid weights can be saved, until the rubric has to be published.
draft_save_weights=\u0020- Weights will be saved.
revoke=Revoke public sharing for {}
revoke_label=Revoke
no_rubrics=No rubrics have been created.
Expand Down
10 changes: 9 additions & 1 deletion rubrics/api/src/main/bundle/rubrics_ca.properties
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ done=Fet
total=Total
confirm_remove=Esteu segur de voler-ho eliminar
is_locked=est\u00e0 bloquejat: Nom\u00e9s els t\u00edtols, les descripcions i l'ordre dels criteris poden ser modificats.
locked_warning=La r\u00fabrica es veur\u00e0 actualitzada en tots els elements associats pr\u00e8viament.
locked_warning=R\u00fabrica en \u00fas. El contingut editable s'actualitzar\u00e0 a tots els elements associats pr\u00e8viament.
points=Punts
weight=Pes
save_weights=Desar pesos
Expand Down Expand Up @@ -57,6 +57,14 @@ share=Comparteix {}
share_label=Comparteix
weighted_label=Ponderada
standard_label=Est\u00e0ndard
weighted_status=R\u00fabrica ponderada
draft_label=Esborrany
draft_turn_on=Desar com esborrany
draft_turn_off=Publicar r\u00fabrica
draft_info=Mentre es trobe guardada com a esborrany, la r\u00fabrica no estar\u00e0 disponible des d'altres eines.
draft_invalid_weight_publish=Per poder publicar la r\u00fabrica:\u0020
draft_save_invalid_weights=Els pesos inv\u00e0lids es poden desar, fins que la r\u00fabrica hagi de ser publicada.
draft_save_weights=- Els pesos seran desats.
revoke=Revoca el fet d'estar compartida per {}
revoke_label=Revoca
no_rubrics=No s'ha creat cap r\u00fabrica
Expand Down
10 changes: 9 additions & 1 deletion rubrics/api/src/main/bundle/rubrics_es.properties
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ done=Aceptar
total=Total
confirm_remove=\u00bfConfirma que quiere eliminar?
is_locked=bloqueada: Solo los t\u00edtulos, descripciones y el orden de los criterios pueden ser modificados
locked_warning=La r\u00fabrica se ver\u00e1 actualizada en todos los elementos asociados previamente.
locked_warning=R\u00fabrica en uso. El contenido editable se actualizar\u00e1 en todos los elementos asociados previamente.
points=Puntos
weight=Peso
save_weights=Guardar pesos
Expand Down Expand Up @@ -57,6 +57,14 @@ share=Hacer p\u00fablica {}
share_label=Hacer p\u00fablica
weighted_label=Cambiar a est\u00e1ndar
standard_label=Cambiar a ponderada
weighted_status=R\u00fabrica ponderada
draft_label=Borrador
draft_turn_on=Guardar como borrador
draft_turn_off=Publicar r\u00fabrica
draft_info=Mientras se encuentre guardada como borrador, la r\u00fabrica no estar\u00e1 disponible desde otras herramientas.
draft_invalid_weight_publish=Para poder publicar la r\u00fabrica:\u0020
draft_save_invalid_weights=Los pesos inv\u00e1lidos se pueden guardar, hasta que la rúbrica tenga que ser publicada.
draft_save_weights=- Los pesos se guardar\u00e1n.
revoke=Revocar compartir publicamente para {}
revoke_label=Revocar
no_rubrics=No se han creado r\u00fabricas.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ public class RubricTransferBean {
public String creatorDisplayName;
public Boolean shared;
public Boolean locked;
public Boolean draft;

public static RubricTransferBean of(Rubric rubric) {

Expand All @@ -50,6 +51,7 @@ public static RubricTransferBean of(Rubric rubric) {
bean.creatorId = rubric.getCreatorId();
bean.shared = rubric.getShared();
bean.locked = rubric.getLocked();
bean.draft = rubric.getDraft();
return bean;
}

Expand All @@ -65,6 +67,7 @@ public Rubric toRubric() {
rubric.setOwnerId(ownerId);
rubric.setCreatorId(creatorId);
rubric.setShared(shared);
rubric.setDraft(draft);
return rubric;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ public class Rubric implements PersistableEntity<Long>, Serializable, Cloneable

private Boolean weighted = Boolean.FALSE;

@Column(nullable = false)
private Boolean draft = Boolean.FALSE;

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "rubric_id")
@OrderColumn(name = "order_index")
Expand Down Expand Up @@ -121,6 +124,7 @@ public Rubric clone(String siteId) {
clonedRubric.setWeighted(this.weighted);
clonedRubric.setLocked(false);
clonedRubric.setShared(false);
clonedRubric.setDraft(this.draft);
clonedRubric.setCriteria(this.getCriteria().stream().map(c -> c.clone())
.collect(Collectors.toList()));
return clonedRubric;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,21 @@ export class SakaiItemDelete extends RubricsElement {
render() {

return html`
<a @focus="${this.onFocus}" @focusout="${this.focusOut}" role="button" aria-haspopup="true" aria-expanded="${this.popoverOpen}" aria-controls="delete_${this.type}_${this.item.id}" title="${tr("remove", [this.item.title])}" aria-label="${tr("remove", [this.item.title])}" class="linkStyle delete fa fa-times" @keyup="${this.openEditWithKeyboard}" @click="${this.deleteItem}" href="#"></a>
<button
class="btn-transparent link-color delete"
@focus="${this.onFocus}"
@focusout="${this.focusOut}"
aria-haspopup="true"
aria-expanded="${this.popoverOpen}"
aria-controls="delete_${this.type}_${this.item.id}"
title="${tr("remove", [this.item.title])}"
aria-label="${tr("remove", [this.item.title])}"
@keyup="${this.openEditWithKeyboard}"
@click="${this.deleteItem}"
>
<span class="fa fa-times"/>
</button>
<div id="delete_${this.type}_${this.item.id}" class="popover rubric-delete-popover left">
<div class="arrow"></div>
<div class="popover-title" tabindex="0">${tr("confirm_remove")} ${this.item.title}</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ class SakaiRubricAssociation extends RubricsElement {
<div class="rubrics-selections">
<select @change="${this.rubricSelected}" name="rbcs-rubricslist" aria-label="${tr("rubric_selector_label")}" class="form-control" ?disabled=${!this.isAssociated || this.readOnly}>
${this.rubrics.map(r => html`
${this.rubrics.filter((rubric) => rubric.draft === false).map((r) => html`
<option value="${r.id}" ?selected=${r.id == this.selectedRubric}>${r.title}</option>
`)}
</select>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ export class SakaiRubricCriteria extends RubricsElement {
maxPoints: { attribute: "max-points", type: String },
minPoints: { attribute: "min-points", type: String },
isLocked: { attribute: "is-locked", type: Boolean },
isDraft: { attribute: "is-draft", type: Boolean },
};
}

Expand Down Expand Up @@ -217,19 +218,24 @@ export class SakaiRubricCriteria extends RubricsElement {
<span>${tr('min_max_points', [this.minPoints, this.maxPoints])}</span>
</div>
</div>
<div class="sak-banner-success hidden save-success has-success fade">
<sr-lang key="saved_successfully">%</sr-lang>
</div>
<div class="sak-banner-error ${this.validWeight ? "hidden" : ""}">
<sr-lang key="total_weight_wrong">%</sr-lang>
<div class="banner-container">
<div class="sak-banner-success hidden save-success has-success fade">
<sr-lang key="saved_successfully">%</sr-lang>
</div>
<div class="sak-banner-warn ${!this.validWeight && this.isDraft ? "" : "hidden"}">
<sr-lang key="draft_save_invalid_weights">%</sr-lang>
</div>
<div class="sak-banner-error ${!this.validWeight && !this.isDraft ? "" : "hidden"}">
<sr-lang key="total_weight_wrong">%</sr-lang>
</div>
</div>
</div>`
: ""
}
${!this.isLocked ? html`
<div class="action-butons">
${this.weighted ? html`
<button class="save-weights" @click="${this.saveWeights}" ?disabled="${!this.validWeight}">
<button class="save-weights" @click="${this.saveWeights}" ?disabled="${!this.validWeight && !this.isDraft}">
<span class="add fa fa-save"></span>
<sr-lang key="save_weights">Save Weights</sr-lang>
</button>`
Expand All @@ -244,8 +250,14 @@ export class SakaiRubricCriteria extends RubricsElement {
<sr-lang key="add_criterion_group">Add Criterion Group</sr-lang>
</button>
</div>
${this.isDraft ? html`
<div class="sak-banner-warn margin-bottom">
<sr-lang key="draft_info">%</sr-lang>
</div>`
: ""
}
` : html`
<div class="sak-banner-warn margin-cero">
<div class="sak-banner-warn margin-bottom">
<sr-lang key="locked_warning">%</sr-lang>
</div>`
}
Expand Down
Loading

0 comments on commit 231c1fa

Please sign in to comment.