10.4.7 release

This commit is contained in:
Gaudenz Alder 2019-03-15 10:41:09 +01:00
parent 308727d218
commit ab021d6bbc
9 changed files with 1278 additions and 1252 deletions

View file

@ -1,3 +1,10 @@
15-MAR-2019: 10.4.7
- Realtime warning can be permanently closed
- Ignores read-only files in auto conversion
- Adds new issue viewer for Jira cloud
- Fixes Atlas theme in Safari
14-MAR-2019: 10.4.6
- Adds warning dialog for failed autosave after 10 minutes

View file

@ -1 +1 @@
10.4.6
10.4.7

View file

@ -1,7 +1,7 @@
CACHE MANIFEST
# THIS FILE WAS GENERATED. DO NOT MODIFY!
# 03/14/2019 11:48 AM
# 03/15/2019 10:34 AM
app.html
index.html?offline=1

File diff suppressed because one or more lines are too long

View file

@ -1041,46 +1041,56 @@ App.prototype.init = function()
this.restoreLibraries();
this.checkLicense();
this.drive.checkRealtimeFiles(mxUtils.bind(this, function()
if (!isLocalStorage || mxSettings.settings == null || mxSettings.settings.closeRealtimeWarning == null)
{
var footer = document.createElement('div');
footer.style.cssText = 'position:absolute;bottom:0px;max-width:90%;padding:10px;padding-right:26px;' +
'white-space:nowrap;left:50%;bottom:2px;';
footer.className = 'geStatusAlert';
mxUtils.setPrefixedStyle(footer.style, 'transform', 'translate(-50%,110%)');
mxUtils.setPrefixedStyle(footer.style, 'transition', 'all 1s ease');
footer.style.whiteSpace = 'nowrap';
footer.innerHTML = '<a href="https://desk.draw.io/support/solutions/articles/16000092210" ' +
'target="_blank" style="display:inline;text-decoration:none;font-weight:700;font-size:13px;opacity:1;">' +
'<img src="' + this.editor.graph.warningImage.src + '" border="0" style="margin-top:-4px;margin-right:2px;" valign="middle"/>&nbsp;' +
'You need to take action to convert legacy files. Click here.&nbsp;' +
'<img src="' + this.editor.graph.warningImage.src + '" border="0" style="margin-top:-4px;margin-left:2px;" valign="middle"/></a>';
var img = document.createElement('img');
img.setAttribute('src', Dialog.prototype.closeImage);
img.setAttribute('title', mxResources.get('close'));
img.style.position = 'absolute';
img.style.cursor = 'pointer';
img.style.right = '10px';
img.style.top = '12px';
footer.appendChild(img);
mxEvent.addListener(img, 'click', mxUtils.bind(this, function()
this.drive.checkRealtimeFiles(mxUtils.bind(this, function()
{
footer.parentNode.removeChild(footer);
this.hideFooter();
var footer = document.createElement('div');
footer.style.cssText = 'position:absolute;bottom:0px;max-width:90%;padding:10px;padding-right:26px;' +
'white-space:nowrap;left:50%;bottom:2px;';
footer.className = 'geStatusAlert';
mxUtils.setPrefixedStyle(footer.style, 'transform', 'translate(-50%,110%)');
mxUtils.setPrefixedStyle(footer.style, 'transition', 'all 1s ease');
footer.style.whiteSpace = 'nowrap';
footer.innerHTML = '<a href="https://desk.draw.io/support/solutions/articles/16000092210" ' +
'target="_blank" style="display:inline;text-decoration:none;font-weight:700;font-size:13px;opacity:1;">' +
'<img src="' + this.editor.graph.warningImage.src + '" border="0" style="margin-top:-4px;margin-right:2px;" valign="middle"/>&nbsp;' +
'You need to take action to convert legacy files. Click here.&nbsp;' +
'<img src="' + this.editor.graph.warningImage.src + '" border="0" style="margin-top:-4px;margin-left:2px;" valign="middle"/></a>';
var img = document.createElement('img');
img.setAttribute('src', Dialog.prototype.closeImage);
img.setAttribute('title', mxResources.get('close'));
img.style.position = 'absolute';
img.style.cursor = 'pointer';
img.style.right = '10px';
img.style.top = '12px';
footer.appendChild(img);
mxEvent.addListener(img, 'click', mxUtils.bind(this, function()
{
footer.parentNode.removeChild(footer);
this.hideFooter();
// Close permanently
if (isLocalStorage && mxSettings.settings != null)
{
mxSettings.settings.closeRealtimeWarning = Date.now();
mxSettings.save();
}
}));
document.body.appendChild(footer);
window.setTimeout(mxUtils.bind(this, function()
{
mxUtils.setPrefixedStyle(footer.style, 'transform', 'translate(-50%,0%)');
}), 1500);
}));
document.body.appendChild(footer);
window.setTimeout(mxUtils.bind(this, function()
{
mxUtils.setPrefixedStyle(footer.style, 'transform', 'translate(-50%,0%)');
}), 1500);
}));
}
}))
// Notifies listeners of new client
@ -1241,9 +1251,13 @@ App.prototype.init = function()
this.icon = document.createElement('img');
this.icon.setAttribute('src', IMAGE_PATH + '/logo-flat-small.png');
this.icon.setAttribute('title', mxResources.get('draw.io'));
this.icon.style.paddingTop = '11px';
this.icon.style.marginLeft = '4px';
this.icon.style.marginRight = '6px';
this.icon.style.padding = '6px';
this.icon.style.cursor = 'pointer';
mxEvent.addListener(this.icon, 'click', mxUtils.bind(this, function(evt)
{
this.appIconClicked(evt);
}));
if (mxClient.IS_QUIRKS)
{
@ -5186,9 +5200,8 @@ App.prototype.updateUserElement = function()
this.userElement.className = 'geItem';
this.userElement.style.position = 'absolute';
this.userElement.style.fontSize = '8pt';
this.userElement.style.top = '4px';
this.userElement.style.top = (uiTheme == 'atlas') ? '8px' : '2px';
this.userElement.style.right = '30px';
this.userElement.style.color = '#666';
this.userElement.style.margin = '4px';
this.userElement.style.padding = '2px';
this.userElement.style.paddingRight = '16px';
@ -5268,9 +5281,7 @@ App.prototype.updateUserElement = function()
'<small>' + mxResources.get('googleDrive') + '</small></tr></table>';
var div = document.createElement('div');
div.style.textAlign = 'center';
div.style.padding = '12px';
div.style.background = 'whiteSmoke';
div.style.borderTop = '1px solid #e0e0e0';
div.style.paddingBottom = '12px';
div.style.whiteSpace = 'nowrap';
// LATER: Cannot change user while file is open since close will not work with new
@ -5342,9 +5353,7 @@ App.prototype.updateUserElement = function()
'</td></tr></table>';
var div = document.createElement('div');
div.style.textAlign = 'center';
div.style.padding = '12px';
div.style.background = 'whiteSmoke';
div.style.borderTop = '1px solid #e0e0e0';
div.style.paddingBottom = '12px';
div.style.whiteSpace = 'nowrap';
if (logout != null)
@ -5490,6 +5499,23 @@ App.prototype.updateUserElement = function()
this.userPanel.appendChild(div);
}
var div = document.createElement('div');
div.style.textAlign = 'center';
div.style.padding = '12px';
div.style.background = 'whiteSmoke';
div.style.borderTop = '1px solid #e0e0e0';
div.style.whiteSpace = 'nowrap';
var btn = mxUtils.button(mxResources.get('close'), mxUtils.bind(this, function()
{
if (!mxEvent.isConsumed(evt) && this.userPanel != null && this.userPanel.parentNode != null)
{
this.userPanel.parentNode.removeChild(this.userPanel);
}
}));
div.appendChild(btn);
this.userPanel.appendChild(div);
document.body.appendChild(this.userPanel);
}

View file

@ -2441,7 +2441,11 @@ DriveClient.prototype.jsonToCell = function(val, codec)
*/
DriveClient.prototype.checkRealtimeFiles = function(fn)
{
this.executeRequest(gapi.client.drive.files.list({'maxResults': 1, 'q': 'mimeType=\'application/vnd.jgraph.mxfile.realtime\'',
var email = (this.user.email != null) ? this.user.email : null;
this.executeRequest(gapi.client.drive.files.list({'maxResults': 1, 'q':
'mimeType=\'application/vnd.jgraph.mxfile.realtime\'' +
((email != null) ? ' and \'' + email + '\' in writers' : ''),
'includeTeamDriveItems': true, 'supportsTeamDrives': true}), mxUtils.bind(this, function(res)
{
if (res != null && (res.nextPageToken != null || (res.items != null && res.items.length > 0)))
@ -2475,7 +2479,6 @@ DriveClient.prototype.convertRealtimeFiles = function()
{
this.checkToken(mxUtils.bind(this, function()
{
var q = 'mimeType=\'application/vnd.jgraph.mxfile.realtime\'';
var convertDelay = 2000;
var convertedIds = {};
var converted = 0;
@ -2487,7 +2490,11 @@ DriveClient.prototype.convertRealtimeFiles = function()
var failed = 0;
var total = 0;
var queryFail = 0;
var email = (this.user.email != null) ? this.user.email : null;
var q = 'mimeType=\'application/vnd.jgraph.mxfile.realtime\'' +
((email != null) ? ' and \'' + email + '\' in writers' : '');
var done = mxUtils.bind(this, function()
{
this.ui.spinner.stop();

View file

@ -4146,7 +4146,11 @@ HoverIcons.prototype.setCurrentState = function(state)
var pt = mxUtils.intersection(p0.x, p0.y, p1.x, p1.y, p2.x, p2.y, p3.x, p3.y);
// Handles intersection between two segments
if (pt != null && (Math.abs(pt.x - p2.x) > thresh ||
if (pt != null && (Math.abs(pt.x - p0.x) > thresh ||
Math.abs(pt.y - p0.y) > thresh) &&
(Math.abs(pt.x - p1.x) > thresh ||
Math.abs(pt.y - p1.y) > thresh) &&
(Math.abs(pt.x - p2.x) > thresh ||
Math.abs(pt.y - p2.y) > thresh) &&
(Math.abs(pt.x - p3.x) > thresh ||
Math.abs(pt.y - p3.y) > thresh))
@ -4260,8 +4264,16 @@ HoverIcons.prototype.setCurrentState = function(state)
{
n = new mxPoint(pt.x - last.x, pt.y - last.y);
len = Math.sqrt(n.x * n.x + n.y * n.y);
n.x = n.x * size / len;
n.y = n.y * size / len;
if (len > 0)
{
n.x = n.x * size / len;
n.y = n.y * size / len;
}
else
{
n = null;
}
}
if (dist > size * size && len > 0)

File diff suppressed because one or more lines are too long

View file

@ -48,16 +48,12 @@ body > .geToolbarContainer > .geToolbar .geSeparator {
.geSidebarContainer .geToolbarContainer .geButton {
padding:0px 2px 4px 2px;
}
.geToolbarContainer .geButton {
margin:0px -1px 0px 0px !important;
height:20px;
}
.geToolbarContainer .geLabel {
height:18px;
_height:31px;
}
.geStatus .geStatusAlert {
color:#ffffff;
html body .geStatus .geStatusAlert {
color:#ffffff !important;
font-size:12px;
border:none;
border-radius:6px;
@ -69,12 +65,12 @@ body > .geToolbarContainer > .geToolbar .geSeparator {
box-shadow: rgba(255, 255, 255, 0.0980392) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.2) 0px 1px 1px 0px;
margin-top:-5px;
}
.geStatus .geStatusAlert:hover {
html body .geStatus .geStatusAlert:hover {
background-color: #2d6ca2;
background-image: linear-gradient(rgb(90, 148, 211) 0px, rgb(54, 115, 181) 100%);
}
.geStatus .geStatusMessage {
color:#ffffff;
html body .geStatus .geStatusMessage {
color:#ffffff !important;
font-size:12px;
border:none;
border-radius:6px;
@ -86,24 +82,22 @@ body > .geToolbarContainer > .geToolbar .geSeparator {
box-shadow: rgba(255, 255, 255, 0.0980392) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.2) 0px 1px 1px 0px;
margin-top:-5px;
}
.geStatus .geStatusMessage:hover {
html body .geStatus .geStatusMessage:hover {
background-color: #2d6ca2;
background-image: linear-gradient(rgb(90, 148, 211) 0px, rgb(54, 115, 181) 100%);
}
div.mxWindow .geToolbarContainer {
html body div.mxWindow .geToolbarContainer {
font-size:11px !important;
color: #000000 !important;
-webkit-box-shadow: none !important;
-moz-box-shadow: none !important;
box-shadow: none !important;
border-width: 0px 0px 1px !important;
border-color: rgb(195, 195, 195) !important;
border-style: solid !important;
border-bottom:1px solid #e0e0e0;
}
div.mxWindow .geButton, .mxWindow .geLabel {
html body div.mxWindow .geButton, .mxWindow .geLabel {
-webkit-box-shadow: none !important;
-moz-box-shadow: none !important;
box-shadow: none !important;
@ -131,6 +125,10 @@ div.mxWindow .geButton:active, .mxWindow .geLabel:active {
background-image: none !important;
border:1px solid black;
}
body > .geToolbarContainer .geButton {
margin:0px -1px 0px 0px !important;
height:20px;
}
.geToolbarContainer .geButton:hover, .geToolbarContainer .geLabel:hover {
background-image: linear-gradient(rgb(255, 255, 255) 0px, rgb(247, 247, 247) 100%) !important;
border:1px solid rgb(153, 153, 153) !important;
@ -142,39 +140,27 @@ div.mxWindow .geButton:active, .mxWindow .geLabel:active {
border:1px solid rgb(153, 153, 153) !important;
z-index:2;
}
.geSidebarTooltip, .geSidebarTooltipImage {
html body .geSidebarTooltip, .geSidebarTooltipImage {
z-index:2;
}
.geSidebarContainer .geTitle {
html body .geSidebarContainer .geTitle {
font-size:13px;
padding:8px 0px 8px 16px !important;
padding:8px 0px 8px 16px;
}
.geMenubarContainer * {
color: #DEEBFF !important;
html body .geMenubarContainer * {
color: #DEEBFF;
}
.geMenubarContainer .geStatus {
color: rgb(179, 179, 179) !important;
html body .geMenubarContainer .geStatus {
color: rgb(179, 179, 179);
}
.geMenubarContainer a {
margin-top: 0px !important;
}
.geMenubar .geItem, .geMenubarContainer .geItem {
background-repeat: no-repeat !important;
background-position: 100% 50% !important;
padding:12px !important;
margin:0px !important;
margin-left:2px !important;
margin-right:2px !important;
font-size:14px;
}
.geMenubarContainer .geBigButton {
margin-top: 4px !important;
padding: 7px !important;
html body .geMenubarContainer .geBigButton {
margin-top: 4px;
padding: 7px;
}
.geMenubarContainer .geItem:hover {
background-color: rgba(9, 30, 66, 0.48);
}
.geToolbarContainer .geLabel {
html body .geToolbarContainer .geLabel {
margin:0px;
padding:6px 20px 4px 10px !important;
}
@ -188,56 +174,41 @@ div.mxWindow .geButton:active, .mxWindow .geLabel:active {
-ms-transition: none;
transition: none;
}
.geMenubarContainer {
background-color: #0049B0 !important;
background-repeat: repeat-x;
color: rgb(255, 255, 255);
font-size: 13px;
padding: 0px !important;
margin: 0px !important;
}
.geMenubar {
html body .geMenubarContainer {
background-color: #0049B0;
color: #ffffff;
font-size: 14px;
padding:0px 10px 0px 10px !important;
margin-left:0px !important;
padding-top:6px;
}
.geToolbarContainer *:not(.geFormatContainer *) {
font-size: 13px;
color: rgb(153, 153, 153);
background-color: rgb(238, 238, 238);
background-image: linear-gradient(top, rgb(245, 245, 245) 0px, rgb(238, 238, 238) 100%);
background-repeat: repeat-x;
border:1px solid rgb(229, 229, 229) !important;
-webkit-box-shadow: rgb(136, 136, 136) 0px 1px 5px 0px !important;
-moz-box-shadow: rgb(136, 136, 136) 0px 1px 5px 0px !important;
box-shadow: rgb(136, 136, 136) 0px 1px 5px 0px !important;
padding: 0px;
margin: 0px;
html body .geMenubar > .geItem {
padding-left:14px;
padding-right:15px;
}
.geSidebarContainer .geToolbarContainer {
-webkit-box-shadow: none !important;
-moz-box-shadow: none !important;
box-shadow: none !important;
border:none !important;
html body .geSidebarContainer .geToolbarContainer {
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
border:none;
}
.geSidebarContainer .geToolbarContainer .geButton {
html body .geSidebarContainer .geToolbarContainer .geButton {
margin:2px !important;
height:20px !important;
}
.geSidebarContainer .geToolbarContainer .geLabel {
html body .geSidebarContainer .geToolbarContainer .geLabel {
margin:2px !important;
padding:4px !important;
}
.geToolbar {
margin:0px !important;
padding:8px 10px 0px 10px !important;
html body .geToolbar {
margin:0px;
padding:8px 10px 0px 10px;
-webkit-box-shadow:none;
-moz-box-shadow:none;
box-shadow:none;
border:none;
}
.geMenubarContainer .mxDisabled {
opacity: 1 !important;
color: rgb(179, 179, 179) !important;
html body .geMenubarContainer .mxDisabled {
opacity: 1;
color: rgb(179, 179, 179);
}
.geDialogTitle {
box-sizing:border-box;