fx-compat: Convert Publications dialog to CE
This commit is contained in:
parent
c65e8f1621
commit
fc572ba2a6
9 changed files with 599 additions and 510 deletions
153
chrome/content/zotero/elements/publicationsLicenseInfo.js
Normal file
153
chrome/content/zotero/elements/publicationsLicenseInfo.js
Normal file
|
@ -0,0 +1,153 @@
|
|||
/*
|
||||
***** BEGIN LICENSE BLOCK *****
|
||||
|
||||
Copyright © 2022 Corporation for Digital Scholarship
|
||||
Vienna, Virginia, USA
|
||||
https://www.zotero.org
|
||||
|
||||
This file is part of Zotero.
|
||||
|
||||
Zotero is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Zotero is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with Zotero. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
***** END LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
/* global XULElementBase: false */
|
||||
|
||||
{
|
||||
const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
|
||||
Services.scriptloader.loadSubScript("chrome://zotero/content/elements/base.js", this);
|
||||
|
||||
const links = {
|
||||
cc: 'https://wiki.creativecommons.org/Considerations_for_licensors_and_licensees',
|
||||
cc0: 'https://wiki.creativecommons.org/CC0_FAQ'
|
||||
};
|
||||
|
||||
const getLicenseData = (license) => {
|
||||
var name, img, url, id;
|
||||
|
||||
switch (license) {
|
||||
case 'reserved':
|
||||
url = null;
|
||||
name = 'All rights reserved';
|
||||
img = 'chrome://zotero/skin/licenses/reserved.png';
|
||||
id = null;
|
||||
break;
|
||||
case 'cc':
|
||||
url = 'https://creativecommons.org/';
|
||||
name = 'Creative Commons';
|
||||
img = 'chrome://zotero/skin/licenses/cc-srr.png';
|
||||
id = null;
|
||||
break;
|
||||
|
||||
case 'cc0':
|
||||
url = "https://creativecommons.org/publicdomain/zero/1.0/";
|
||||
name = null;
|
||||
img = 'chrome://zotero/skin/licenses/' + license + ".svg";
|
||||
id = 'licenses-cc-0';
|
||||
break;
|
||||
|
||||
default:
|
||||
url = 'https://creativecommons.org/licenses/' + license.replace(/^cc-/, '') + '/4.0/';
|
||||
name = null;
|
||||
img = 'chrome://zotero/skin/licenses/' + license + ".svg";
|
||||
id = `licenses-${license}`;
|
||||
break;
|
||||
}
|
||||
|
||||
return { url, name, img, id };
|
||||
};
|
||||
|
||||
const makeLicenseInfo = (url, name, img, id) => {
|
||||
const licenseInfo = `<div class="license-icon"><img title="${url}" src="${img}" /></div>`
|
||||
+ (id ? `<div class="license-name" data-l10n-id="${id}" />` : `<div class="license-name">${name}</div>`);
|
||||
|
||||
return MozXULElement.parseXULToFragment(
|
||||
url
|
||||
? `<a xmlns="http://www.w3.org/1999/xhtml" class="license-info" href="${url}">${licenseInfo}</a>`
|
||||
: `<div xmlns="http://www.w3.org/1999/xhtml" class="license-info">${licenseInfo}</div>`
|
||||
);
|
||||
};
|
||||
|
||||
const makeLicenseMoreInfo = (license) => {
|
||||
const needsMoreInfo = license.startsWith('cc') && license !== 'cc';
|
||||
const ccType = license === 'cc0' ? 'cc0' : 'cc';
|
||||
|
||||
return MozXULElement.parseXULToFragment(needsMoreInfo
|
||||
? `<div xmlns="http://www.w3.org/1999/xhtml" class="license-more-info" data-l10n-id="licenses-${ccType}-more-info">
|
||||
<a href="${links[ccType]}" data-l10n-name="license-considerations" />
|
||||
</div>`
|
||||
: ''
|
||||
);
|
||||
};
|
||||
|
||||
class PublicationsLicenseInfo extends XULElementBase {
|
||||
get stylesheets() {
|
||||
return [
|
||||
'chrome://global/skin/global.css',
|
||||
'chrome://zotero/skin/elements/license-info.css'
|
||||
];
|
||||
}
|
||||
|
||||
content = MozXULElement.parseXULToFragment(`
|
||||
<div id="license-info"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
</div>
|
||||
`);
|
||||
|
||||
validLicenses = new Set(['cc', 'cc-by', 'cc-by-sa', 'cc-by-nd', 'cc-by-nc', 'cc-by-nc-sa', 'cc-by-nc-nd', 'cc0', 'reserved']);
|
||||
|
||||
get license() {
|
||||
return this._license;
|
||||
}
|
||||
|
||||
set license(val) {
|
||||
if (!this.validLicenses.has(val)) {
|
||||
throw new Zotero.Error(`"${val}" is invalid value for attribute "license" in <licenseinfo>`);
|
||||
}
|
||||
this._license = val;
|
||||
this.update();
|
||||
}
|
||||
|
||||
get licenseName() {
|
||||
return this.shadowRoot.querySelector('.license-name').getAttribute('label')
|
||||
? this.shadowRoot.querySelector('.license-name').getAttribute('label')
|
||||
: this.shadowRoot.querySelector('.license-name').textContent;
|
||||
}
|
||||
|
||||
async init() {
|
||||
this.license = this.getAttribute('license');
|
||||
this.shadowRoot.getElementById('license-info').addEventListener('click', this.onURLInteract.bind(this));
|
||||
this.shadowRoot.getElementById('license-info').addEventListener('keydown', this.onURLInteract.bind(this));
|
||||
}
|
||||
|
||||
update() {
|
||||
const { url, name, img, id } = getLicenseData(this.license);
|
||||
const licenseInfoEl = makeLicenseInfo(url, name, img, id);
|
||||
const licenseMoreEl = makeLicenseMoreInfo(this.license);
|
||||
this.shadowRoot.getElementById('license-info').replaceChildren(licenseInfoEl, licenseMoreEl);
|
||||
}
|
||||
|
||||
onURLInteract(ev) {
|
||||
const aEl = ev.target.closest('[href]');
|
||||
if (aEl && (ev.type === 'click' || (ev.type === 'keydown' && ev.key === ' '))) {
|
||||
ev.preventDefault();
|
||||
Zotero.launchURL(aEl.getAttribute('href'));
|
||||
}
|
||||
}
|
||||
}
|
||||
customElements.define('publications-license-info', PublicationsLicenseInfo);
|
||||
}
|
|
@ -1,234 +1,29 @@
|
|||
/*
|
||||
***** BEGIN LICENSE BLOCK *****
|
||||
|
||||
Copyright © 2015 Center for History and New Media
|
||||
George Mason University, Fairfax, Virginia, USA
|
||||
https://www.zotero.org
|
||||
|
||||
This file is part of Zotero.
|
||||
|
||||
Zotero is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Zotero is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with Zotero. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
***** END LICENSE BLOCK *****
|
||||
***** BEGIN LICENSE BLOCK *****
|
||||
|
||||
Copyright © 2015 Center for History and New Media
|
||||
George Mason University, Fairfax, Virginia, USA
|
||||
https://www.zotero.org
|
||||
|
||||
This file is part of Zotero.
|
||||
|
||||
Zotero is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Zotero is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with Zotero. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
***** END LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
var Zotero_Publications_Dialog = new function () {
|
||||
var _initialized = false;
|
||||
var _io;
|
||||
var _hasFiles = false;
|
||||
var _hasNotes = false;
|
||||
var _hasRights = null;
|
||||
var _includeFiles = true;
|
||||
var _includeNotes = true;
|
||||
var _keepRights = true;
|
||||
var _shareSettings = {
|
||||
sharing: 'reserved', // 'reserved', 'cc', 'cc0'
|
||||
adaptations: 'no',
|
||||
commercial: 'no'
|
||||
};
|
||||
var _license = null;
|
||||
|
||||
function _init() {
|
||||
try {
|
||||
var wizard = document.getElementById('zotero-publications-wizard');
|
||||
wizard.getButton('finish').label =
|
||||
Zotero.getString('publications.buttons.addToMyPublications');
|
||||
|
||||
if (window.arguments && window.arguments.length) {
|
||||
_io = window.arguments[0];
|
||||
_hasFiles = _io.hasFiles;
|
||||
_hasNotes = _io.hasNotes;
|
||||
_hasRights = _io.hasRights;
|
||||
if (_hasRights == 'none') _keepRights = false;
|
||||
delete _io.hasFiles;
|
||||
delete _io.hasNotes;
|
||||
delete _io.hasRights;
|
||||
}
|
||||
_initialized = true;
|
||||
}
|
||||
catch (e) {
|
||||
window.close();
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
this.updatePage = function () {
|
||||
if (!_initialized) {
|
||||
_init();
|
||||
this.updateInclude();
|
||||
}
|
||||
|
||||
var wizard = document.getElementById('zotero-publications-wizard');
|
||||
var currentPage = wizard.currentPage;
|
||||
var pageid = currentPage.pageid;
|
||||
|
||||
if (pageid == 'intro') {
|
||||
let str = 'publications.authorship.checkbox';
|
||||
let filesCheckbox = document.getElementById('include-files');
|
||||
let notesCheckbox = document.getElementById('include-notes')
|
||||
|
||||
// Enable the checkboxes only when relevant
|
||||
filesCheckbox.disabled = !_hasFiles;
|
||||
filesCheckbox.checked = _hasFiles && _includeFiles;
|
||||
notesCheckbox.disabled = !_hasNotes;
|
||||
notesCheckbox.checked = _hasNotes && _includeNotes;
|
||||
|
||||
// Adjust the checkbox text based on whether there are files or notes
|
||||
if (filesCheckbox.checked || notesCheckbox.checked) {
|
||||
if (filesCheckbox.checked && notesCheckbox.checked) {
|
||||
str += '.filesNotes';
|
||||
}
|
||||
else if (filesCheckbox.checked) {
|
||||
str += '.files';
|
||||
}
|
||||
else {
|
||||
str += '.notes';
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (pageid == 'choose-sharing') {
|
||||
let keepRightsBox = document.getElementById('keep-rights');
|
||||
let keepRightsCheckbox = document.getElementById('keep-rights-checkbox');
|
||||
if (_hasRights == 'none') {
|
||||
keepRightsBox.hidden = true;
|
||||
document.getElementById('sharing-radiogroup').focus();
|
||||
}
|
||||
else {
|
||||
let str = 'publications.sharing.keepRightsField';
|
||||
if (_hasRights == 'some') {
|
||||
str += 'WhereAvailable';
|
||||
}
|
||||
keepRightsCheckbox.label = Zotero.getString(str);
|
||||
keepRightsCheckbox.checked = _keepRights;
|
||||
this.updateKeepRights(keepRightsCheckbox.checked);
|
||||
}
|
||||
}
|
||||
// Select appropriate radio button from current license
|
||||
else if (pageid == 'choose-license') {
|
||||
document.getElementById('adaptations-' + _shareSettings.adaptations).selected = true;
|
||||
document.getElementById('commercial-' + _shareSettings.commercial).selected = true;
|
||||
}
|
||||
|
||||
_updateLicense();
|
||||
this.updateNextButton();
|
||||
};
|
||||
|
||||
|
||||
this.updateNextButton = function () {
|
||||
var wizard = document.getElementById('zotero-publications-wizard');
|
||||
var currentPage = wizard.currentPage;
|
||||
var nextPage = wizard.wizardPages[wizard.pageIndex + 1];
|
||||
var nextButton = wizard.getButton('next');
|
||||
|
||||
// Require authorship checkbox on first page to be checked to advance
|
||||
wizard.canAdvance = document.getElementById('confirm-authorship-checkbox').checked;
|
||||
|
||||
if (!nextPage) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (_hasFiles
|
||||
&& _includeFiles
|
||||
&& (currentPage.pageid == 'intro' ||
|
||||
// If CC selected on sharing page and we're not using existing rights for all
|
||||
// items, go to license chooser next
|
||||
(currentPage.pageid == 'choose-sharing'
|
||||
&& _shareSettings.sharing == 'cc'
|
||||
&& !(_hasRights == 'all' && _keepRights)))) {
|
||||
this.lastPage = false;
|
||||
nextButton.label = Zotero.getString(
|
||||
'publications.buttons.next',
|
||||
Zotero.getString('publications.buttons.' + nextPage.pageid)
|
||||
);
|
||||
}
|
||||
// Otherwise this is the last page
|
||||
else {
|
||||
this.lastPage = true;
|
||||
// Due to issues with linux not handling finish button hiding correctly
|
||||
// we just set the next button label to be the one for the finish button
|
||||
// and leave visibility handling up to mr wizard
|
||||
nextButton.label = Zotero.getString('publications.buttons.addToMyPublications');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update files/notes settings from checkboxes
|
||||
*/
|
||||
this.updateInclude = function () {
|
||||
var filesCheckbox = document.getElementById('include-files');
|
||||
var notesCheckbox = document.getElementById('include-notes')
|
||||
var authorshipCheckbox = document.getElementById('confirm-authorship-checkbox');
|
||||
_includeFiles = filesCheckbox.checked;
|
||||
_includeNotes = notesCheckbox.checked;
|
||||
authorshipCheckbox.label = Zotero.getString(
|
||||
'publications.intro.authorship' + (_includeFiles ? '.files' : '')
|
||||
);
|
||||
this.updateNextButton();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update rights setting from checkbox and hide sharing setting if necessary
|
||||
*/
|
||||
this.updateKeepRights = function (keepRights) {
|
||||
_keepRights = keepRights;
|
||||
|
||||
// If all items have rights and we're using them, the sharing page is the last page
|
||||
document.getElementById('choose-sharing-options').hidden = _hasRights == 'all' && keepRights;
|
||||
this.updateNextButton();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update sharing and license settings
|
||||
*/
|
||||
this.updateSharing = function (id) {
|
||||
var matches = id.match(/^(sharing|adaptations|commercial)-(.+)$/);
|
||||
var setting = matches[1];
|
||||
var value = matches[2];
|
||||
_shareSettings[setting] = value;
|
||||
_updateLicense();
|
||||
this.updateNextButton();
|
||||
}
|
||||
|
||||
|
||||
this.onAdvance = function () {
|
||||
if (this.lastPage) {
|
||||
this.finish();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
this.onFinish = function () {
|
||||
_io.includeFiles = document.getElementById('include-files').checked;
|
||||
_io.includeNotes = document.getElementById('include-notes').checked;
|
||||
_io.keepRights = _keepRights;
|
||||
_io.license = _license;
|
||||
_io.licenseName = _getLicenseName(_license);
|
||||
}
|
||||
|
||||
this.finish = function () {
|
||||
this.onFinish();
|
||||
window.close();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* Update the calculated license and image
|
||||
*
|
||||
* Possible licenses:
|
||||
|
@ -242,185 +37,180 @@ var Zotero_Publications_Dialog = new function () {
|
|||
* 'cc0'
|
||||
* 'reserved'
|
||||
*/
|
||||
function _updateLicense() {
|
||||
var s = _shareSettings.sharing;
|
||||
var a = _shareSettings.adaptations;
|
||||
var c = _shareSettings.commercial;
|
||||
|
||||
if (s == 'cc0' || s == 'reserved') {
|
||||
_license = s;
|
||||
}
|
||||
else {
|
||||
_license = 'cc-by';
|
||||
if (c == 'no') {
|
||||
_license += '-nc';
|
||||
}
|
||||
if (a == 'no') {
|
||||
_license += '-nd';
|
||||
}
|
||||
else if (a == 'sharealike') {
|
||||
_license += '-sa';
|
||||
}
|
||||
}
|
||||
_updateLicenseSummary();
|
||||
const getLicense = (sharing, adaptations, commercial, currentPage) => {
|
||||
if (sharing === 'cc0' || sharing === 'reserved') {
|
||||
return sharing;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function _updateLicenseSummary() {
|
||||
var wizard = document.getElementById('zotero-publications-wizard');
|
||||
var currentPage = wizard.currentPage;
|
||||
var groupbox = currentPage.getElementsByAttribute('class', 'license-info')[0];
|
||||
if (!groupbox) return;
|
||||
if (groupbox.hasChildNodes()) {
|
||||
let hbox = groupbox.lastChild;
|
||||
var icon = currentPage.getElementsByAttribute('class', 'license-icon')[0];
|
||||
var div = currentPage.getElementsByAttribute('class', 'license-description')[0];
|
||||
}
|
||||
else {
|
||||
let hbox = document.createXULElement('hbox');
|
||||
hbox.align = "center";
|
||||
groupbox.appendChild(hbox);
|
||||
|
||||
var icon = document.createXULElement('image');
|
||||
icon.className = 'license-icon';
|
||||
icon.setAttribute('style', 'width: 88px');
|
||||
hbox.appendChild(icon);
|
||||
|
||||
let sep = document.createXULElement('separator');
|
||||
sep.orient = 'vertical';
|
||||
sep.setAttribute('style', 'width: 10px');
|
||||
hbox.appendChild(sep);
|
||||
|
||||
var div = document.createElement('div');
|
||||
div.className = 'license-description';
|
||||
div.setAttribute('style', 'width: 400px');
|
||||
hbox.appendChild(div);
|
||||
}
|
||||
|
||||
// Show generic CC icon on sharing page
|
||||
if (currentPage.pageid == 'choose-sharing' && _shareSettings.sharing == 'cc') {
|
||||
var license = 'cc';
|
||||
}
|
||||
else {
|
||||
var license = _license;
|
||||
}
|
||||
|
||||
icon.src = _getLicenseImage(license);
|
||||
var url = _getLicenseURL(license);
|
||||
if (url) {
|
||||
icon.setAttribute('tooltiptext', url);
|
||||
icon.style.cursor = 'pointer';
|
||||
icon.onclick = function () {
|
||||
try {
|
||||
let wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
|
||||
.getService(Components.interfaces.nsIWindowMediator);
|
||||
let win = wm.getMostRecentWindow("navigator:browser");
|
||||
win.ZoteroPane_Local.loadURI(url, { shiftKey: true })
|
||||
}
|
||||
catch (e) {
|
||||
Zotero.logError(e);
|
||||
}
|
||||
return false;
|
||||
};
|
||||
}
|
||||
else {
|
||||
icon.removeAttribute('tooltiptext');
|
||||
icon.style.cursor = 'auto';
|
||||
}
|
||||
|
||||
div.innerHTML = _getLicenseHTML(license);
|
||||
Zotero.Utilities.Internal.updateHTMLInXUL(div, { linkEvent: { shiftKey: true } });
|
||||
|
||||
_updateLicenseMoreInfo();
|
||||
if (currentPage !== 'choose-license') {
|
||||
return 'cc';
|
||||
}
|
||||
|
||||
|
||||
function _getLicenseImage(license) {
|
||||
// Use generic "Some Rights Reserved" image
|
||||
if (license == 'cc') {
|
||||
return "chrome://zotero/skin/licenses/cc-srr.png";
|
||||
}
|
||||
else if (license == 'reserved') {
|
||||
return "chrome://zotero/skin/licenses/reserved.png";
|
||||
}
|
||||
return "chrome://zotero/skin/licenses/" + license + ".svg";
|
||||
|
||||
let license = 'cc-by';
|
||||
if (commercial === 'no') {
|
||||
license += '-nc';
|
||||
}
|
||||
|
||||
|
||||
function _getLicenseHTML(license) {
|
||||
switch (license) {
|
||||
case 'cc':
|
||||
return '<a href="' + _getLicenseURL(license) + '">Creative Commons</a>';
|
||||
|
||||
case 'reserved':
|
||||
return "All rights reserved";
|
||||
|
||||
case 'cc0':
|
||||
return '<a href="' + _getLicenseURL(license) + '">CC0 1.0 Universal Public Domain Dedication</a>';
|
||||
|
||||
default:
|
||||
return '<a href="' + _getLicenseURL(license) + '">'
|
||||
+ Zotero.getString('licenses.' + license) + "</a>";
|
||||
}
|
||||
if (adaptations === 'no') {
|
||||
license += '-nd';
|
||||
}
|
||||
|
||||
|
||||
function _getLicenseName(license) {
|
||||
switch (license) {
|
||||
case 'reserved':
|
||||
return "All rights reserved";
|
||||
|
||||
case 'cc0':
|
||||
return 'CC0 1.0 Universal Public Domain Dedication';
|
||||
|
||||
default:
|
||||
return Zotero.getString('licenses.' + license) + " (" + license.toUpperCase() + ")";
|
||||
}
|
||||
else if (adaptations === 'sharealike') {
|
||||
license += '-sa';
|
||||
}
|
||||
|
||||
|
||||
function _getLicenseURL(license) {
|
||||
switch (license) {
|
||||
case 'reserved':
|
||||
return "";
|
||||
return license;
|
||||
};
|
||||
|
||||
const id = document.getElementById.bind(document);
|
||||
|
||||
const Zotero_Publications_Dialog = { // eslint-disable-line no-unused-vars, camelcase
|
||||
async init() {
|
||||
this.io = window.arguments?.[0] ?? {};
|
||||
this.wizard = id('publications-dialog-wizard');
|
||||
|
||||
id('include-files')
|
||||
.addEventListener('CheckboxStateChange', this.onIntroPageCheckboxChange.bind(this));
|
||||
id('confirm-authorship-checkbox')
|
||||
.addEventListener('CheckboxStateChange', this.onIntroPageCheckboxChange.bind(this));
|
||||
id('sharing-radiogroup')
|
||||
.addEventListener('select', this.onLicenseAspectRadioChange.bind(this));
|
||||
id('choose-adaptations')
|
||||
.addEventListener('select', this.onLicenseAspectRadioChange.bind(this));
|
||||
id('choose-commercial')
|
||||
.addEventListener('select', this.onLicenseAspectRadioChange.bind(this));
|
||||
id('keep-rights-checkbox')
|
||||
.addEventListener('CheckboxStateChange', this.onKeepRightsCheckboxChange.bind(this));
|
||||
this.wizard.getPageById('intro')
|
||||
.addEventListener('pageshow', this.onIntroPageShow.bind(this));
|
||||
this.wizard.getPageById('choose-sharing')
|
||||
.addEventListener('pageshow', this.onSharingPageShow.bind(this));
|
||||
this.wizard.getPageById('choose-license')
|
||||
.addEventListener('pageshow', this.onLicensePageShow.bind(this));
|
||||
|
||||
this.wizard.addEventListener('wizardnext', this.onWizardNext.bind(this));
|
||||
this.wizard.addEventListener('wizardfinish', this.onFinish.bind(this));
|
||||
|
||||
// wizard.shadowRoot content isn't exposed to our css
|
||||
this.wizard.shadowRoot
|
||||
.querySelector('.wizard-header-label').style.fontSize = '16px';
|
||||
|
||||
case 'cc':
|
||||
return 'https://creativecommons.org/';
|
||||
|
||||
case 'cc0':
|
||||
return "https://creativecommons.org/publicdomain/zero/1.0/";
|
||||
|
||||
default:
|
||||
return "https://creativecommons.org/licenses/" + license.replace(/^cc-/, '') + "/4.0/"
|
||||
this.updateNextButton();
|
||||
this.updateIntroPage();
|
||||
},
|
||||
|
||||
onIntroPageShow() {
|
||||
this.updateNextButton();
|
||||
this.updateIntroPage();
|
||||
this.updateFocus();
|
||||
},
|
||||
|
||||
onSharingPageShow() {
|
||||
this.updateSharingPage();
|
||||
this.updateNextButton();
|
||||
this.updateLicense();
|
||||
this.updateFocus();
|
||||
},
|
||||
|
||||
onLicensePageShow() {
|
||||
this.updateNextButton();
|
||||
this.updateLicense();
|
||||
this.updateFocus();
|
||||
},
|
||||
|
||||
onWizardNext(ev) {
|
||||
if ((this.wizard.currentPage.pageid === 'intro' && !id('include-files').checked)
|
||||
|| (this.wizard.currentPage.pageid === 'choose-sharing'
|
||||
&& (id('sharing-radiogroup').selectedItem.value !== 'cc'
|
||||
|| (this.io.hasRights === 'all' && id('keep-rights-checkbox').checked)
|
||||
))
|
||||
) {
|
||||
ev.preventDefault();
|
||||
this.onFinish();
|
||||
window.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function _updateLicenseMoreInfo() {
|
||||
var wizard = document.getElementById('zotero-publications-wizard');
|
||||
var currentPage = wizard.currentPage;
|
||||
var s = _shareSettings.sharing;
|
||||
|
||||
var div = currentPage.getElementsByAttribute('class', 'license-more-info')[0];
|
||||
if (s == 'cc0' || currentPage.pageid == 'choose-license') {
|
||||
let links = {
|
||||
cc: 'https://wiki.creativecommons.org/Considerations_for_licensors_and_licensees',
|
||||
cc0: 'https://wiki.creativecommons.org/CC0_FAQ'
|
||||
};
|
||||
div.innerHTML = Zotero.getString(
|
||||
'publications.' + s + '.moreInfo.text',
|
||||
// Add link to localized string
|
||||
'<a href="' + links[s] + '">'
|
||||
+ Zotero.getString('publications.' + s + '.moreInfo.linkText')
|
||||
+ '</a>'
|
||||
},
|
||||
|
||||
onFinish() {
|
||||
this.io.includeFiles = id('include-files').checked;
|
||||
this.io.includeNotes = id('include-notes').checked;
|
||||
this.io.keepRights = id('keep-rights-checkbox').checked;
|
||||
if (this.wizard.currentPage.pageid !== 'intro') {
|
||||
this.io.license = getLicense(
|
||||
id('sharing-radiogroup').selectedItem.value,
|
||||
id('choose-adaptations').selectedItem.value,
|
||||
id('choose-commercial').selectedItem.value,
|
||||
this.wizard.currentPage.pageid
|
||||
);
|
||||
Zotero.Utilities.Internal.updateHTMLInXUL(div, { linkEvent: { shiftKey: true } });
|
||||
this.io.licenseName = id('final-license-info').licenseName;
|
||||
}
|
||||
else {
|
||||
div.innerHTML = "";
|
||||
},
|
||||
|
||||
onIntroPageCheckboxChange() {
|
||||
this.updateIntroPage();
|
||||
this.updateNextButton();
|
||||
},
|
||||
|
||||
onKeepRightsCheckboxChange() {
|
||||
this.updateSharingPage();
|
||||
this.updateNextButton();
|
||||
},
|
||||
|
||||
onLicenseAspectRadioChange() {
|
||||
this.updateNextButton();
|
||||
this.updateLicense();
|
||||
},
|
||||
|
||||
updateIntroPage() {
|
||||
id('include-files').disabled = !this.io.hasFiles;
|
||||
id('include-notes').disabled = !this.io.hasNotes;
|
||||
id('confirm-authorship-checkbox').dataset.l10nId = id('include-files').checked
|
||||
? 'publications-intro-authorship-files'
|
||||
: 'publications-intro-authorship';
|
||||
},
|
||||
|
||||
updateSharingPage() {
|
||||
id('keep-rights').style.display
|
||||
= this.io.hasRights === 'none' ? 'none' : '';
|
||||
|
||||
id('keep-rights-checkbox').disabled = this.io.hasRights === 'none';
|
||||
id('keep-rights-checkbox').dataset.l10nId
|
||||
= this.io.hasRights === 'some'
|
||||
? 'publications-sharing-keep-rights-field-where-available'
|
||||
: 'publications-sharing-keep-rights-field';
|
||||
id('choose-sharing-options').style.display
|
||||
= this.io.hasRights === 'all' && id('keep-rights-checkbox').checked ? 'none' : '';
|
||||
},
|
||||
|
||||
updateLicense() {
|
||||
const license = getLicense(
|
||||
id('sharing-radiogroup').selectedItem.value,
|
||||
id('choose-adaptations').selectedItem.value,
|
||||
id('choose-commercial').selectedItem.value,
|
||||
this.wizard.currentPage.pageid
|
||||
);
|
||||
id('sharing-license-info').license = license;
|
||||
id('final-license-info').license = license;
|
||||
},
|
||||
|
||||
updateFocus() {
|
||||
this.wizard.currentPage.querySelector('radiogroup:not([disabled]),checkbox:not([disabled])').focus();
|
||||
},
|
||||
|
||||
updateNextButton() {
|
||||
const nextButton = this.wizard.getButton('next');
|
||||
this.wizard.canAdvance = id('confirm-authorship-checkbox').checked;
|
||||
|
||||
if (this.io.hasRights === 'all' && id('keep-rights-checkbox').checked) {
|
||||
nextButton.dataset.l10nId = 'publications-buttons-add-to-my-publications';
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (this.wizard.currentPage.pageid === 'intro') {
|
||||
nextButton.dataset.l10nId = id('include-files').checked
|
||||
? 'publications-buttons-next-sharing'
|
||||
: 'publications-buttons-add-to-my-publications';
|
||||
}
|
||||
else if (this.wizard.currentPage.pageid === 'choose-sharing') {
|
||||
nextButton.dataset.l10nId
|
||||
= id('sharing-radiogroup').selectedItem.value === 'cc'
|
||||
? 'publications-buttons-next-choose-license'
|
||||
: 'publications-buttons-add-to-my-publications';
|
||||
}
|
||||
},
|
||||
|
||||
};
|
||||
|
|
93
chrome/content/zotero/publicationsDialog.xhtml
Normal file
93
chrome/content/zotero/publicationsDialog.xhtml
Normal file
|
@ -0,0 +1,93 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
***** BEGIN LICENSE BLOCK *****
|
||||
|
||||
Copyright © 2022 Center for History and New Media
|
||||
George Mason University, Fairfax, Virginia, USA
|
||||
https://www.zotero.org
|
||||
|
||||
This file is part of Zotero.
|
||||
|
||||
Zotero is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Zotero is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with Zotero. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
***** END LICENSE BLOCK *****
|
||||
-->
|
||||
<!DOCTYPE window SYSTEM "chrome://zotero/locale/zotero.dtd">
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://zotero-platform/content/zotero-react-client.css"?>
|
||||
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
onload="Zotero_Publications_Dialog.init()"
|
||||
>
|
||||
<linkset>
|
||||
<html:link rel="localization" href="zotero.ftl" />
|
||||
</linkset>
|
||||
|
||||
<script src="chrome://global/content/customElements.js" />
|
||||
<script src="chrome://zotero/content/elements/publicationsLicenseInfo.js" />
|
||||
|
||||
<wizard
|
||||
id="publications-dialog-wizard"
|
||||
class="publications-dialog-wizard"
|
||||
width="600" height="550"
|
||||
>
|
||||
<wizardpage pageid="intro" data-l10n-id="publications-intro-page">
|
||||
<p class="description" data-l10n-id="publications-intro" />
|
||||
<checkbox native="true" id="include-files" data-l10n-id="publications-include-checkbox-files" />
|
||||
<checkbox native="true" id="include-notes" data-l10n-id="publications-include-checkbox-notes" />
|
||||
<p class="description" data-l10n-id="publications-include-adjust-at-any-time" />
|
||||
<div class="confirm-authorship-checkbox">
|
||||
<checkbox native="true" id="confirm-authorship-checkbox" data-l10n-id="publications-intro-authorship" />
|
||||
</div>
|
||||
</wizardpage>
|
||||
|
||||
<wizardpage pageid="choose-sharing" data-l10n-id="publications-sharing-page">
|
||||
<div id="keep-rights">
|
||||
<checkbox native="true" id="keep-rights-checkbox" data-l10n-id="publications-sharing-keep-rights-field" />
|
||||
</div>
|
||||
<div id="choose-sharing-options">
|
||||
<p class="description" data-l10n-id="publications-sharing-text" />
|
||||
<p class="description" data-l10n-id="publications-sharing-prompt" />
|
||||
<radiogroup id="sharing-radiogroup" align="start">
|
||||
<radio value="reserved" data-l10n-id="publications-sharing-reserved" />
|
||||
<radio value="cc" data-l10n-id="publications-sharing-cc" />
|
||||
<radio value="cc0" data-l10n-id="publications-sharing-cc0" />
|
||||
</radiogroup>
|
||||
<publications-license-info license="reserved" id="sharing-license-info" />
|
||||
</div>
|
||||
</wizardpage>
|
||||
|
||||
<wizardpage pageid="choose-license" data-l10n-id="publications-license-page">
|
||||
<p class="description" data-l10n-id="publications-choose-license-text" />
|
||||
<h2 data-l10n-id="publications-choose-license-adaptations-prompt" />
|
||||
<radiogroup id="choose-adaptations" align="start">
|
||||
<radio value="no" data-l10n-id="publications-choose-license-no" />
|
||||
<radio value="sharealike" data-l10n-id="publications-choose-license-sharealike" />
|
||||
<radio value="yes" data-l10n-id="publications-choose-license-yes" />
|
||||
</radiogroup>
|
||||
|
||||
<h2 data-l10n-id="publications-choose-license-commercial-prompt" />
|
||||
<radiogroup id="choose-commercial" align="start">
|
||||
<radio value="no" data-l10n-id="publications-choose-license-no" />
|
||||
<radio value="yes" data-l10n-id="publications-choose-license-yes" />
|
||||
</radiogroup>
|
||||
<publications-license-info license="cc-by-nc-nd" id="final-license-info" />
|
||||
</wizardpage>
|
||||
</wizard>
|
||||
|
||||
<script src="include.js" />
|
||||
<script src="publicationsDialog.js" />
|
||||
</window>
|
|
@ -1,109 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
***** BEGIN LICENSE BLOCK *****
|
||||
|
||||
Copyright © 2015 Center for History and New Media
|
||||
George Mason University, Fairfax, Virginia, USA
|
||||
https://www.zotero.org
|
||||
|
||||
This file is part of Zotero.
|
||||
|
||||
Zotero is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Zotero is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with Zotero. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
***** END LICENSE BLOCK *****
|
||||
-->
|
||||
<!DOCTYPE window [
|
||||
<!ENTITY % zoteroDTD SYSTEM "chrome://zotero/locale/zotero.dtd"> %zoteroDTD;
|
||||
<!ENTITY % publicationsDTD SYSTEM "chrome://zotero/locale/publications.dtd"> %publicationsDTD;
|
||||
]>
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://zotero/skin/zotero.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://zotero/skin/publicationsDialog.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://zotero-platform/content/publicationsDialog.css"?>
|
||||
|
||||
<wizard id="zotero-publications-wizard" title="&zotero.publications.my_publications;"
|
||||
width="600"
|
||||
height="550"
|
||||
onwizardnext="return Zotero_Publications_Dialog.onAdvance()"
|
||||
onwizardfinish="return Zotero_Publications_Dialog.onFinish()"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<script src="include.js"/>
|
||||
<script src="publicationsDialog.js"/>
|
||||
|
||||
<!-- NOTES AND ATTACHMENTS? -->
|
||||
|
||||
<wizardpage pageid="intro" label="&zotero.publications.my_publications;"
|
||||
onpageshow="Zotero_Publications_Dialog.updatePage()">
|
||||
<description>&zotero.publications.intro;</description>
|
||||
<separator/>
|
||||
<checkbox id="include-files" label="&zotero.publications.include.checkbox.files;"
|
||||
oncommand="Zotero_Publications_Dialog.updateInclude()"/>
|
||||
<checkbox id="include-notes" label="&zotero.publications.include.checkbox.notes;"
|
||||
oncommand="Zotero_Publications_Dialog.updateInclude()"/>
|
||||
<separator/>
|
||||
<description>&zotero.publications.include.adjustAtAnyTime;</description>
|
||||
<separator/>
|
||||
<checkbox id="confirm-authorship-checkbox"
|
||||
oncommand="Zotero_Publications_Dialog.updateNextButton()"/>
|
||||
</wizardpage>
|
||||
|
||||
<wizardpage pageid="choose-sharing" label="&zotero.publications.sharing.title;"
|
||||
onpageshow="Zotero_Publications_Dialog.updatePage()">
|
||||
<vbox id="keep-rights">
|
||||
<checkbox id="keep-rights-checkbox"
|
||||
oncommand="Zotero_Publications_Dialog.updateKeepRights(this.checked)"/>
|
||||
<separator/>
|
||||
</vbox>
|
||||
<vbox id="choose-sharing-options">
|
||||
<description>&zotero.publications.sharing.text;</description>
|
||||
<separator/>
|
||||
<description>&zotero.publications.sharing.prompt;</description>
|
||||
<separator class="thin"/>
|
||||
<radiogroup id="sharing-radiogroup"
|
||||
oncommand="Zotero_Publications_Dialog.updateSharing(this.selectedItem.id)">
|
||||
<radio id="sharing-reserved" label="&zotero.publications.sharing.reserved;"/>
|
||||
<radio id="sharing-cc" label="&zotero.publications.sharing.cc;"/>
|
||||
<radio id="sharing-cc0" label="&zotero.publications.sharing.cc0;"/>
|
||||
</radiogroup>
|
||||
|
||||
<groupbox class="license-info"/>
|
||||
<separator/>
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" class="license-more-info"/>
|
||||
</vbox>
|
||||
</wizardpage>
|
||||
|
||||
<wizardpage pageid="choose-license" label="&zotero.publications.chooseLicense.title;"
|
||||
onpageshow="Zotero_Publications_Dialog.updatePage()">
|
||||
<description>&zotero.publications.chooseLicense.text;</description>
|
||||
<separator/>
|
||||
<label value="&zotero.publications.chooseLicense.adaptations.prompt;" control="choose-adaptations"/>
|
||||
<radiogroup id="choose-adaptations" oncommand="Zotero_Publications_Dialog.updateSharing(this.selectedItem.id)">
|
||||
<radio id="adaptations-no" label="&zotero.general.no;" accesskey="N"/>
|
||||
<radio id="adaptations-sharealike" label="&zotero.publications.chooseLicense.adaptations.sharealike;" accesskey="S"/>
|
||||
<radio id="adaptations-yes" label="&zotero.general.yes;" accesskey="Y"/>
|
||||
</radiogroup>
|
||||
<separator/>
|
||||
<label value="&zotero.publications.chooseLicense.commercial.prompt;" control="choose-commercial"/>
|
||||
<radiogroup id="choose-commercial" oncommand="Zotero_Publications_Dialog.updateSharing(this.selectedItem.id)">
|
||||
<radio id="commercial-no" label="&zotero.general.no;" accesskey="N"/>
|
||||
<radio id="commercial-yes" label="&zotero.general.yes;" accesskey="Y"/>
|
||||
</radiogroup>
|
||||
|
||||
<groupbox class="license-info"/>
|
||||
<separator/>
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" class="license-more-info"/>
|
||||
</wizardpage>
|
||||
</wizard>
|
|
@ -4752,7 +4752,7 @@ var ZoteroPane = new function()
|
|||
}
|
||||
}
|
||||
io.hasRights = allItemsHaveRights ? 'all' : (noItemsHaveRights ? 'none' : 'some');
|
||||
window.openDialog('chrome://zotero/content/publicationsDialog.xul','','chrome,modal', io);
|
||||
window.openDialog('chrome://zotero/content/publicationsDialog.xhtml','','chrome,modal', io);
|
||||
return io.license ? io : false;
|
||||
};
|
||||
|
||||
|
|
|
@ -111,3 +111,68 @@ integration-prefs-footnotes =
|
|||
.label = Footnotes
|
||||
integration-prefs-endnotes =
|
||||
.label = Endnotes
|
||||
|
||||
|
||||
publications-intro-page =
|
||||
.label = My Publications
|
||||
|
||||
publications-intro = Items you add to My Publications will be shown on your profile page on zotero.org. If you choose to include attached files, they will be made publicly available under the license you specify. Only add work you yourself have created, and only include files if you have the rights to distribute them and wish to do so.
|
||||
publications-include-checkbox-files =
|
||||
.label = Include files
|
||||
publications-include-checkbox-notes =
|
||||
.label = Include notes
|
||||
|
||||
publications-include-adjust-at-any-time = You can adjust what to show at any time from the My Publications collection.
|
||||
publications-intro-authorship =
|
||||
.label = I created this work.
|
||||
publications-intro-authorship-files =
|
||||
.label = I created this work and have the rights to distribute included files.
|
||||
|
||||
publications-sharing-page =
|
||||
.label = Choose how your work may be shared
|
||||
|
||||
publications-sharing-keep-rights-field =
|
||||
.label = Keep the existing Rights field
|
||||
publications-sharing-keep-rights-field-where-available =
|
||||
.label = Keep the existing Rights field where available
|
||||
publications-sharing-text = You can reserve all rights to your work, license it under a Creative Commons license, or dedicate it to the public domain. In all cases, the work will be made publicly available via zotero.org.
|
||||
publications-sharing-prompt = Would you like to allow your work to be shared by others?
|
||||
publications-sharing-reserved =
|
||||
.label = No, only publish my work on zotero.org
|
||||
publications-sharing-cc =
|
||||
.label = Yes, under a Creative Commons license
|
||||
publications-sharing-cc0 =
|
||||
.label = Yes, and place my work in the public domain
|
||||
|
||||
publications-license-page =
|
||||
.label = Choose a Creative Commons license
|
||||
publications-choose-license-text = A Creative Commons license allows others to copy and redistribute your work as long as they give appropriate credit, provide a link to the license, and indicate if changes were made. Additional conditions can be specified below.
|
||||
publications-choose-license-adaptations-prompt = Allow adaptations of your work to be shared?
|
||||
|
||||
publications-choose-license-yes =
|
||||
.label = Yes
|
||||
.accesskey = Y
|
||||
publications-choose-license-no =
|
||||
.label = No
|
||||
.accesskey = N
|
||||
publications-choose-license-sharealike =
|
||||
.label = Yes, as long as others share alike
|
||||
.accesskey = S
|
||||
|
||||
publications-choose-license-commercial-prompt = Allow commercial uses of your work?
|
||||
publications-buttons-add-to-my-publications =
|
||||
.label = Add to My Publications
|
||||
publications-buttons-next-sharing =
|
||||
.label = Next: Sharing
|
||||
publications-buttons-next-choose-license =
|
||||
.label = Choose a License
|
||||
|
||||
licenses-cc-0 = CC0 1.0 Universal Public Domain Dedication
|
||||
licenses-cc-by = Creative Commons Attribution 4.0 International License
|
||||
licenses-cc-by-nd = Creative Commons Attribution-NoDerivatives 4.0 International License
|
||||
licenses-cc-by-sa = Creative Commons Attribution-ShareAlike 4.0 International License
|
||||
licenses-cc-by-nc = Creative Commons Attribution-NonCommercial 4.0 International License
|
||||
licenses-cc-by-nc-nd = Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License
|
||||
licenses-cc-by-nc-sa = Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License
|
||||
licenses-cc-more-info = Be sure you have read the Creative Commons <a data-l10n-name="license-considerations">Considerations for licensors</a> before placing your work under a CC license. Note that the license you apply cannot be revoked, even if you later choose different terms or cease publishing the work.
|
||||
licenses-cc0-more-info = Be sure you have read the Creative Commons <a data-l10n-name="license-considerations">CC0 FAQ</a> before applying CC0 to your work. Please note that dedicating your work to the public domain is irreversible, even if you later choose different terms or cease publishing the work.
|
|
@ -37,6 +37,7 @@
|
|||
@import "components/mainWindow";
|
||||
@import "components/notesList";
|
||||
@import "components/progressMeter";
|
||||
@import "components/publications-dialog.scss";
|
||||
@import "components/rtfScan.scss";
|
||||
@import "components/search";
|
||||
@import "components/syncButtonTooltip";
|
||||
|
|
46
scss/components/_publications-dialog.scss
Normal file
46
scss/components/_publications-dialog.scss
Normal file
|
@ -0,0 +1,46 @@
|
|||
.publications-dialog-wizard {
|
||||
font-size: 12px;
|
||||
|
||||
div {
|
||||
display: block;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin: 1em 0 0;
|
||||
padding: 0;
|
||||
font-size: 13px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
h2 + radiogroup {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
p.description {
|
||||
display: block;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
checkbox {
|
||||
margin-left: 4px; // indent required for correct focus ring rendering
|
||||
}
|
||||
|
||||
radiogroup {
|
||||
font-size: 12px;
|
||||
margin-top: 1em;
|
||||
|
||||
radio:first-child {
|
||||
margin-top: 9px;
|
||||
}
|
||||
}
|
||||
|
||||
wizardpage {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
#include-files,
|
||||
#include-notes {
|
||||
margin-top: 5px;
|
||||
}
|
||||
}
|
50
scss/elements/license-info.scss
Normal file
50
scss/elements/license-info.scss
Normal file
|
@ -0,0 +1,50 @@
|
|||
@import "../abstracts/variables";
|
||||
@import "../abstracts/functions";
|
||||
@import "../abstracts/mixins";
|
||||
@import "../abstracts/placeholders";
|
||||
@import "../abstracts/utilities";
|
||||
@import "../themes/light";
|
||||
|
||||
:host {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.license-info {
|
||||
display: flex;
|
||||
padding: var(--license-info-padding, 0 20px);
|
||||
margin: var(--license-info-margin, 1em 0 0 0);
|
||||
|
||||
.license-icon {
|
||||
flex: 0 1 auto;
|
||||
|
||||
> img {
|
||||
max-width: var(--license-icon-max-width, 88px);
|
||||
}
|
||||
}
|
||||
|
||||
.license-name {
|
||||
margin-left: var(--license-info-name-margin-left, 12px);
|
||||
flex: 1 1 auto;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
.license-more-info {
|
||||
margin: var(--license-more-info-margin, 1.5em 0 0 0);
|
||||
font-size: var(--license-more-info-font-size, 11px);
|
||||
}
|
||||
|
||||
a {
|
||||
display: inline;
|
||||
color: var(--license-info-link-color, -moz-nativehyperlinktext);
|
||||
text-decoration: var(--license-info-link-decoration, none);
|
||||
|
||||
&:hover,
|
||||
&:active,
|
||||
&:focus {
|
||||
outline: none;
|
||||
text-decoration: var(--license-info-link-decoration-hover, $link-hover-decoration);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue