mirror of
https://github.com/datahub-project/datahub.git
synced 2025-09-07 16:16:51 +00:00
Merge pull request #1421 from cptran777/dataset-deprecation-acknowledgement
Dataset deprecation acknowledgement
This commit is contained in:
commit
2d372cbd94
@ -97,6 +97,8 @@ public class Application extends Controller {
|
|||||||
Play.application().configuration().getString("links.wiki.metadataHealth", "");
|
Play.application().configuration().getString("links.wiki.metadataHealth", "");
|
||||||
private static final String WHZ_WIKI_LINKS__PURGE_KEY =
|
private static final String WHZ_WIKI_LINKS__PURGE_KEY =
|
||||||
Play.application().configuration().getString("links.wiki.purgeKey", "");
|
Play.application().configuration().getString("links.wiki.purgeKey", "");
|
||||||
|
private static final String WHZ_WIKI_LINKS__DATASET_DECOMMISSION =
|
||||||
|
Play.application().configuration().getString("links.wiki.datasetDecommission");
|
||||||
|
|
||||||
private static final String WHZ_LINKS__JIT_ACL_CONTACT =
|
private static final String WHZ_LINKS__JIT_ACL_CONTACT =
|
||||||
Play.application().configuration().getString("links.jitAcl.contact", "");
|
Play.application().configuration().getString("links.jitAcl.contact", "");
|
||||||
@ -272,6 +274,7 @@ public class Application extends Controller {
|
|||||||
wikiLinks.put("exportPolicy", WHZ_WIKI_LINKS__EXPORT_POLICY);
|
wikiLinks.put("exportPolicy", WHZ_WIKI_LINKS__EXPORT_POLICY);
|
||||||
wikiLinks.put("metadataHealth", WHZ_WIKI_LINKS__METADATA_HEALTH);
|
wikiLinks.put("metadataHealth", WHZ_WIKI_LINKS__METADATA_HEALTH);
|
||||||
wikiLinks.put("purgeKey", WHZ_WIKI_LINKS__PURGE_KEY);
|
wikiLinks.put("purgeKey", WHZ_WIKI_LINKS__PURGE_KEY);
|
||||||
|
wikiLinks.put("datasetDecommission", WHZ_WIKI_LINKS__DATASET_DECOMMISSION);
|
||||||
|
|
||||||
return wikiLinks;
|
return wikiLinks;
|
||||||
}
|
}
|
||||||
|
@ -66,6 +66,14 @@ export default class DatasetDeprecation extends Component {
|
|||||||
*/
|
*/
|
||||||
deprecationNoteAlias: ComputedProperty<DatasetDeprecation['deprecationNote']> = oneWay('deprecationNote');
|
deprecationNoteAlias: ComputedProperty<DatasetDeprecation['deprecationNote']> = oneWay('deprecationNote');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Before a user can update the deprecation status to deprecated, they must acknowledge that even if the
|
||||||
|
* dataset is deprecated they must still keep it compliant.
|
||||||
|
* @memberof DatasetDeprecation
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
isDeprecationNoticeAcknowledged: boolean = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks the working / aliased copies of the deprecation properties diverge from the
|
* Checks the working / aliased copies of the deprecation properties diverge from the
|
||||||
* saved versions i.e. deprecationNoteAlias and deprecationAlias
|
* saved versions i.e. deprecationNoteAlias and deprecationAlias
|
||||||
@ -124,6 +132,15 @@ export default class DatasetDeprecation extends Component {
|
|||||||
set(this, 'decommissionTime', new Date(decommissionTime).getTime());
|
set(this, 'decommissionTime', new Date(decommissionTime).getTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When a user clicks the checkbox to acknowledge or cancel acknowledgement of the notice for
|
||||||
|
* deprecating a dataset
|
||||||
|
*/
|
||||||
|
@action
|
||||||
|
onAcknowledgeDeprecationNotice(this: DatasetDeprecation) {
|
||||||
|
this.toggleProperty('isDeprecationNoticeAcknowledged');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Invokes the save action with the updated values for
|
* Invokes the save action with the updated values for
|
||||||
* deprecated decommissionTime, and deprecationNote
|
* deprecated decommissionTime, and deprecationNote
|
||||||
|
@ -58,3 +58,22 @@ input[type='checkbox'] {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input[type='checkbox'] + label.checkbox-input__wrapper {
|
||||||
|
$checkbox-width: 28px;
|
||||||
|
$container-margin: item-spacing(4);
|
||||||
|
display: flex;
|
||||||
|
padding: item-spacing(2) $container-margin item-spacing(2) ($container-margin + $checkbox-width);
|
||||||
|
box-sizing: content-box;
|
||||||
|
margin: 0 (-1 * $container-margin);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: rgba(0, 0, 0, 0.05);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:before,
|
||||||
|
&:after {
|
||||||
|
left: $container-margin;
|
||||||
|
top: item-spacing(2) - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -29,22 +29,3 @@
|
|||||||
color: rgba(0, 0, 0, 0.6);
|
color: rgba(0, 0, 0, 0.6);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type='checkbox'] + label.search-facet__checkbox-wrapper {
|
|
||||||
$checkbox-width: 28px;
|
|
||||||
$container-margin: item-spacing(4);
|
|
||||||
display: flex;
|
|
||||||
padding: item-spacing(2) $container-margin item-spacing(2) ($container-margin + $checkbox-width);
|
|
||||||
box-sizing: content-box;
|
|
||||||
margin: 0 (-1 * $container-margin);
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background-color: rgba(0, 0, 0, 0.05);
|
|
||||||
}
|
|
||||||
|
|
||||||
&:before,
|
|
||||||
&:after {
|
|
||||||
left: $container-margin;
|
|
||||||
top: item-spacing(2) - 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -82,13 +82,33 @@
|
|||||||
</strong>
|
</strong>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<span>
|
||||||
|
{{input
|
||||||
|
type="checkbox"
|
||||||
|
name="deprecated.acknowledge"
|
||||||
|
id="acknowledge-deprecation"
|
||||||
|
checked=(readonly isDeprecationAcknowledged)
|
||||||
|
change=(action "onAcknowledgeDeprecationNotice")}}
|
||||||
|
|
||||||
|
<label for="acknowledge-deprecation">
|
||||||
|
<p>By checking this box, you acknowledge that you must keep this dataset compliance updated even after it is deprecated.</p>
|
||||||
|
<p>
|
||||||
|
For more information on how to decommission your dataset, please follow this link:
|
||||||
|
<a href={{wikiLinks.datasetDecommission}} target="_blank" rel="noopener">
|
||||||
|
Dataset Decommission
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</label>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<div class="dataset-deprecation-toggle__actions">
|
<div class="dataset-deprecation-toggle__actions">
|
||||||
<button
|
<button
|
||||||
type="submit"
|
type="submit"
|
||||||
class="nacho-button--large nacho-button--secondary"
|
class="nacho-button--large nacho-button--secondary"
|
||||||
disabled={{and deprecatedAlias (not decommissionTime)}}>
|
disabled={{and deprecatedAlias (or (not decommissionTime) (not isDeprecationNoticeAcknowledged))}}>
|
||||||
Update Deprecation Status
|
Update Deprecation Status
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
deprecated=deprecated
|
deprecated=deprecated
|
||||||
deprecationNote=deprecationNote
|
deprecationNote=deprecationNote
|
||||||
decommissionTime=decommissionTime
|
decommissionTime=decommissionTime
|
||||||
|
wikiLinks=wikiLinks
|
||||||
onUpdateDeprecation=(action "updateDeprecation")
|
onUpdateDeprecation=(action "updateDeprecation")
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
checked=(readonly checked)
|
checked=(readonly checked)
|
||||||
change=(action onChange facet facetValue)
|
change=(action onChange facet facetValue)
|
||||||
}}
|
}}
|
||||||
<label for="{{facetValue.value}}" class="search-facet__checkbox-wrapper">
|
<label for="{{facetValue.value}}" class="search-facet__checkbox-wrapper checkbox-input__wrapper">
|
||||||
<span class="search-facet__label">{{facetValue.label}}</span>
|
<span class="search-facet__label">{{facetValue.label}}</span>
|
||||||
<span class="search-facet__count">{{readonly count}}</span>
|
<span class="search-facet__count">{{readonly count}}</span>
|
||||||
</label>
|
</label>
|
||||||
|
@ -77,7 +77,7 @@
|
|||||||
|
|
||||||
{{#unless isPinot}}
|
{{#unless isPinot}}
|
||||||
{{#tablist.tab tabIds.Properties on-select=(action "tabSelectionChanged")}}
|
{{#tablist.tab tabIds.Properties on-select=(action "tabSelectionChanged")}}
|
||||||
Properties
|
Status
|
||||||
{{/tablist.tab}}
|
{{/tablist.tab}}
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
|
|
||||||
@ -123,6 +123,7 @@
|
|||||||
urn=encodedUrn
|
urn=encodedUrn
|
||||||
deprecated=model.deprecated
|
deprecated=model.deprecated
|
||||||
deprecationNote=model.deprecationNote
|
deprecationNote=model.deprecationNote
|
||||||
|
wikiLinks=wikiLinks
|
||||||
}}
|
}}
|
||||||
{{/tabs.tabpanel}}
|
{{/tabs.tabpanel}}
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ module('Integration | Component | dataset deprecation', function(hooks) {
|
|||||||
|
|
||||||
test('decommissionTime', async function(assert) {
|
test('decommissionTime', async function(assert) {
|
||||||
let isDisabled;
|
let isDisabled;
|
||||||
assert.expect(2);
|
assert.expect(3);
|
||||||
|
|
||||||
this.set('decommissionTime', void 0);
|
this.set('decommissionTime', void 0);
|
||||||
this.set('deprecated', true);
|
this.set('deprecated', true);
|
||||||
@ -55,7 +55,12 @@ module('Integration | Component | dataset deprecation', function(hooks) {
|
|||||||
await fillIn('.comment-new__content', 'text');
|
await fillIn('.comment-new__content', 'text');
|
||||||
|
|
||||||
isDisabled = this.$('.dataset-deprecation-toggle__actions [type=submit]').is(':disabled');
|
isDisabled = this.$('.dataset-deprecation-toggle__actions [type=submit]').is(':disabled');
|
||||||
assert.notOk(isDisabled, 'submit button is not disabled');
|
assert.ok(isDisabled, 'submit button is disabled if we only fill in decomissionTime');
|
||||||
|
|
||||||
|
await click('#acknowledge-deprecation');
|
||||||
|
|
||||||
|
isDisabled = this.$('.dataset-deprecation-toggle__actions [type=submit]').is(':disabled');
|
||||||
|
assert.notOk(isDisabled, 'submit button is disabled if we only fill in decomissionTime');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('triggers the onUpdateDeprecation action when submitted', async function(assert) {
|
test('triggers the onUpdateDeprecation action when submitted', async function(assert) {
|
||||||
@ -76,6 +81,8 @@ module('Integration | Component | dataset deprecation', function(hooks) {
|
|||||||
await click('#dataset-is-deprecated');
|
await click('#dataset-is-deprecated');
|
||||||
|
|
||||||
assert.equal(this.$('#dataset-is-deprecated').is(':checked'), true, 'deprecation checkbox is checked');
|
assert.equal(this.$('#dataset-is-deprecated').is(':checked'), true, 'deprecation checkbox is checked');
|
||||||
|
|
||||||
|
await click('#acknowledge-deprecation');
|
||||||
await click('.dataset-deprecation-toggle__actions [type=submit]');
|
await click('.dataset-deprecation-toggle__actions [type=submit]');
|
||||||
|
|
||||||
assert.equal(submitActionCallCount, 1, 'action is called once');
|
assert.equal(submitActionCallCount, 1, 'action is called once');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user