Commit a9cc2ce9 authored by Julia Radzhabova's avatar Julia Radzhabova

Merge branch 'hotfix/v4.1.2' into develop

parents 02951be6 2ea15343
<div id="header-container">
<div id="header-logo"></div>
<div id="header-caption"><div><%= headerCaption %></div></div>
<div id="header-developer" class="hidden"><div><%= headerDeveloper %></div></div>
<div id="header-documentcaption"><%= documentCaption %></div>
<div id="header-back" style="display: <%= canBack ? 'table-cell' : 'none' %>;"><div><%= textBack %></div></div>
</div>
\ No newline at end of file
......@@ -53,6 +53,7 @@ define([
options : {
branding: {},
headerCaption: 'Default Caption',
headerDeveloper: 'DEVELOPER MODE',
documentCaption: '',
canBack: false
},
......@@ -77,6 +78,7 @@ define([
this.options = this.options ? _({}).extend(this.options, options) : options;
this.headerCaption = this.options.headerCaption;
this.headerDeveloper = this.txtHeaderDeveloper;
this.documentCaption = this.options.documentCaption;
this.canBack = this.options.canBack;
this.branding = this.options.customization;
......@@ -85,6 +87,7 @@ define([
render: function () {
$(this.el).html(this.template({
headerCaption : this.headerCaption,
headerDeveloper : this.headerDeveloper,
documentCaption : Common.Utils.String.htmlEncode(this.documentCaption),
canBack : this.canBack,
textBack : this.textBack
......@@ -219,7 +222,12 @@ define([
}
},
setDeveloperMode: function(mode) {
$('#header-developer').toggleClass('hidden', !mode);
},
textBack: 'Go to Documents',
openNewTabText: 'Open in New Tab'
openNewTabText: 'Open in New Tab',
txtHeaderDeveloper: 'DEVELOPER MODE'
}, Common.Views.Header || {}))
});
......@@ -46,6 +46,34 @@
}
}
#header-developer {
background-color: #ffb400;
padding-left: 15px + @app-header-height / 3;
& > div {
position: relative;
background-color: #ffb400;
color: #6e4e00 !important;
padding-right: 15px;
cursor: default;
z-index: 1;
white-space: nowrap;
height: @app-header-height;
line-height: @app-header-height;
&:after {
content: '';
position: absolute;
top: 0;
right: -@app-header-height / 2;
width: @app-header-height / 2;
height: @app-header-height;
border-top: @app-header-height / 2 solid transparent;
border-left: @app-header-height / 3 solid #ffb400;
border-bottom: @app-header-height / 2 solid transparent;
}
}
}
#header-documentcaption {
width: 100%;
max-width: 100px;
......
......@@ -7,6 +7,10 @@
}
&.x-list-round.x-list-grouped {
.x-list-footer-wrap.x-list-item-tpl {
padding-bottom: 0;
}
.x-list-header-wrap {
.x-dock-horizontal {
padding-top: 0;
......
......@@ -104,15 +104,15 @@
}
.round {
@include border-radius($panel-border-radius);
@include border-radius($form-fieldset-radius);
}
// Hide group header
.x-list-header-wrap {
@include border-top-radius($panel-border-radius !important);
@include border-top-radius($form-fieldset-radius !important);
.x-innerhtml {
@include border-top-radius($panel-border-radius !important);
@include border-top-radius($form-fieldset-radius !important);
}
}
......
......@@ -964,13 +964,11 @@ define([
this._state.licenseWarning = (licType===Asc.c_oLicenseResult.Connections) && this.appOptions.canEdit && this.editorConfig.mode !== 'view';
this.appOptions.canBranding = params.asc_getCanBranding() && (typeof this.editorConfig.customization == 'object');
if (this.appOptions.canBranding) {
this.getApplication()
.getController('Viewport')
.getView('Common.Views.Header')
.setBranding(this.editorConfig.customization);
}
if (this.appOptions.canBranding)
this.getApplication().getController('Viewport').getView('Common.Views.Header').setBranding(this.editorConfig.customization);
params.asc_getTrial() && this.getApplication().getController('Viewport').getView('Common.Views.Header').setDeveloperMode(true);
this.applyModeCommonElements();
this.applyModeEditorElements();
......
This diff is collapsed.
......@@ -141,6 +141,7 @@
"Common.Views.ExternalMergeEditor.textTitle": "Mail Merge Recipients",
"Common.Views.Header.openNewTabText": "Open in New Tab",
"Common.Views.Header.textBack": "Go to Documents",
"Common.Views.Header.txtHeaderDeveloper": "DEVELOPER MODE",
"Common.Views.History.textHistoryHeader": "Back to Document",
"Common.Views.ImageFromUrlDialog.cancelButtonText": "Cancel",
"Common.Views.ImageFromUrlDialog.okButtonText": "OK",
......@@ -158,13 +159,13 @@
"Common.Views.OpenDialog.cancelButtonText": "Cancel",
"Common.Views.OpenDialog.okButtonText": "OK",
"Common.Views.OpenDialog.txtEncoding": "Encoding ",
"Common.Views.OpenDialog.txtTitle": "Choose %1 options",
"Common.Views.OpenDialog.txtPassword": "Password",
"Common.Views.OpenDialog.txtTitle": "Choose %1 options",
"Common.Views.OpenDialog.txtTitleProtected": "Protected File",
"Common.Views.PluginDlg.textLoading": "Loading",
"Common.Views.Plugins.strPlugins": "Plugins",
"Common.Views.Plugins.textLoading": "Loading",
"Common.Views.Plugins.textStart": "Start",
"Common.Views.PluginDlg.textLoading": "Loading",
"Common.Views.ReviewChanges.txtAccept": "Accept",
"Common.Views.ReviewChanges.txtAcceptAll": "Accept All Changes",
"Common.Views.ReviewChanges.txtAcceptCurrent": "Accept Current Change",
......@@ -227,6 +228,7 @@
"DE.Controllers.Main.mailMergeLoadFileText": "Loading Data Source...",
"DE.Controllers.Main.mailMergeLoadFileTitle": "Loading Data Source",
"DE.Controllers.Main.notcriticalErrorTitle": "Warning",
"DE.Controllers.Main.openErrorText": "An error has occurred while opening the file",
"DE.Controllers.Main.openTextText": "Opening document...",
"DE.Controllers.Main.openTitleText": "Opening Document",
"DE.Controllers.Main.printTextText": "Printing document...",
......@@ -234,6 +236,7 @@
"DE.Controllers.Main.reloadButtonText": "Reload Page",
"DE.Controllers.Main.requestEditFailedMessageText": "Someone is editing this document right now. Please try again later.",
"DE.Controllers.Main.requestEditFailedTitleText": "Access denied",
"DE.Controllers.Main.saveErrorText": "An error has occurred while saving the file",
"DE.Controllers.Main.savePreparingText": "Preparing to save",
"DE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...",
"DE.Controllers.Main.saveTextText": "Saving document...",
......@@ -251,6 +254,7 @@
"DE.Controllers.Main.textNoLicenseTitle": "ONLYOFFICE open source version",
"DE.Controllers.Main.textStrict": "Strict mode",
"DE.Controllers.Main.textTryUndoRedo": "The Undo/Redo functions are disabled for the Fast co-editing mode.<br>Click the 'Strict mode' button to switch to the Strict co-editing mode to edit the file without other users interference and send your changes only after you save them. You can switch between the co-editing modes using the editor Advanced settings.",
"DE.Controllers.Main.titleLicenseExp": "License expired",
"DE.Controllers.Main.titleUpdateVersion": "Version changed",
"DE.Controllers.Main.txtArt": "Your text here",
"DE.Controllers.Main.txtBasicShapes": "Basic Shapes",
......@@ -278,10 +282,9 @@
"DE.Controllers.Main.uploadImageTitleText": "Uploading Image",
"DE.Controllers.Main.warnBrowserIE9": "The application has low capabilities on IE9. Use IE10 or higher",
"DE.Controllers.Main.warnBrowserZoom": "Your browser current zoom setting is not fully supported. Please reset to the default zoom by pressing Ctrl+0.",
"DE.Controllers.Main.warnLicenseExp": "Your license has expired.<br>Please update your license and refresh the page.",
"DE.Controllers.Main.warnNoLicense": "You are using an open source version of ONLYOFFICE. The version has limitations for concurrent connections to the document server (20 connections at a time).<br>If you need more please consider purchasing a commercial license.",
"DE.Controllers.Main.warnProcessRightsChange": "You have been denied the right to edit the file.",
"DE.Controllers.Main.warnLicenseExp": "Your license has expired.<br>Please update your license and refresh the page.",
"DE.Controllers.Main.titleLicenseExp": "License expired",
"DE.Controllers.Statusbar.textHasChanges": "New changes have been tracked",
"DE.Controllers.Statusbar.textTrackChanges": "The document is opened with the Track Changes mode enabled",
"DE.Controllers.Statusbar.zoomText": "Zoom {0}%",
......@@ -630,7 +633,7 @@
"DE.Views.ChartSettings.textLine": "Line Chart",
"DE.Views.ChartSettings.textOriginalSize": "Default Size",
"DE.Views.ChartSettings.textPie": "Pie Chart",
"DE.Views.ChartSettings.textPoint": "Point Chart",
"DE.Views.ChartSettings.textPoint": "XY (Scatter) Chart",
"DE.Views.ChartSettings.textSize": "Size",
"DE.Views.ChartSettings.textStock": "Stock Chart",
"DE.Views.ChartSettings.textStyle": "Style",
......@@ -920,6 +923,8 @@
"DE.Views.FileMenuPanels.Settings.textMinute": "Every Minute",
"DE.Views.FileMenuPanels.Settings.txtAll": "View All",
"DE.Views.FileMenuPanels.Settings.txtCm": "Centimeter",
"DE.Views.FileMenuPanels.Settings.txtFitPage": "Fit to Page",
"DE.Views.FileMenuPanels.Settings.txtFitWidth": "Fit to Width",
"DE.Views.FileMenuPanels.Settings.txtInch": "Inch",
"DE.Views.FileMenuPanels.Settings.txtInput": "Alternate Input",
"DE.Views.FileMenuPanels.Settings.txtLast": "View Last",
......@@ -1245,8 +1250,8 @@
"DE.Views.Statusbar.textChangesPanel": "Changes Panel",
"DE.Views.Statusbar.textTrackChanges": "Track Changes",
"DE.Views.Statusbar.tipAccessRights": "Manage document access rights",
"DE.Views.Statusbar.tipFitPage": "Fit Page",
"DE.Views.Statusbar.tipFitWidth": "Fit Width",
"DE.Views.Statusbar.tipFitPage": "Fit to Page",
"DE.Views.Statusbar.tipFitWidth": "Fit to Width",
"DE.Views.Statusbar.tipMoreUsers": "and %1 users.",
"DE.Views.Statusbar.tipReview": "Review",
"DE.Views.Statusbar.tipSetDocLang": "Set Document Language",
......@@ -1426,8 +1431,8 @@
"DE.Views.Toolbar.textCompactView": "View Compact Toolbar",
"DE.Views.Toolbar.textContPage": "Continuous Page",
"DE.Views.Toolbar.textEvenPage": "Even Page",
"DE.Views.Toolbar.textFitPage": "Fit Page",
"DE.Views.Toolbar.textFitWidth": "Fit Width",
"DE.Views.Toolbar.textFitPage": "Fit to Page",
"DE.Views.Toolbar.textFitWidth": "Fit to Width",
"DE.Views.Toolbar.textHideLines": "Hide Rulers",
"DE.Views.Toolbar.textHideStatusBar": "Hide Status Bar",
"DE.Views.Toolbar.textHideTitleBar": "Hide Title Bar",
......@@ -1456,7 +1461,7 @@
"DE.Views.Toolbar.textPageMarginsCustom": "Custom margins",
"DE.Views.Toolbar.textPageSizeCustom": "Custom Page Size",
"DE.Views.Toolbar.textPie": "Pie Chart",
"DE.Views.Toolbar.textPoint": "Point Chart",
"DE.Views.Toolbar.textPoint": "XY (Scatter) Chart",
"DE.Views.Toolbar.textPortrait": "Portrait",
"DE.Views.Toolbar.textRight": "Right: ",
"DE.Views.Toolbar.textStock": "Stock Chart",
......
This diff is collapsed.
This diff is collapsed.
......@@ -211,6 +211,7 @@ Ext.define('DE.controller.Main', {
onLongActionEnd: function(type) {
Ext.Viewport.unmask();
Common.Gateway.setDocumentModified(this.api.isDocumentModified());
},
onError: function(id, level, errData) {
......
......@@ -130,6 +130,24 @@ Ext.define('DE.controller.toolbar.Edit', {
}
}, this);
if (Ext.os.is.iOS) {
Ext.each(Ext.ComponentQuery.query('button'), function(button) {
button.element.dom.ontouchstart = Ext.emptyFn();
button.element.dom.ontouchmove = Ext.emptyFn();
button.element.dom.ontouchend = Ext.emptyFn();
}, this);
Ext.each(Ext.ComponentQuery.query('toolbar'), function(toolbar) {
var preventFn = function(e){
e.preventDefault();
};
toolbar.element.dom.ontouchstart = preventFn;
toolbar.element.dom.ontouchmove = preventFn;
toolbar.element.dom.ontouchend = preventFn;
}, this);
}
Common.Gateway.on('init', Ext.bind(this.loadConfig, this));
},
......@@ -148,6 +166,7 @@ Ext.define('DE.controller.toolbar.Edit', {
this.api.asc_registerCallback('asc_onCanUndo', Ext.bind(this.onApiCanUndo, this));
this.api.asc_registerCallback('asc_onCoAuthoringDisconnect', Ext.bind(this.onCoAuthoringDisconnect, this));
this.api.asc_registerCallback('asc_onDocumentModifiedChanged', Ext.bind(this.onApiDocumentModified, this));
this.api.asc_registerCallback('asc_onDocumentCanSaveChanged', Ext.bind(this.onApiDocumentCanSaveChanged, this));
}
},
......@@ -181,7 +200,7 @@ Ext.define('DE.controller.toolbar.Edit', {
},
onApiDocumentModified: function() {
var isModified = this.api.isDocumentModified();
var isModified = this.api.asc_isDocumentCanSave();
if (this.isDocModified !== isModified) {
if (this.getSaveButton()) {
this.getSaveButton().setDisabled(!isModified);
......@@ -192,6 +211,12 @@ Ext.define('DE.controller.toolbar.Edit', {
}
},
onApiDocumentCanSaveChanged: function (isCanSave) {
if (this.getSaveButton()) {
this.getSaveButton().setDisabled(!isCanSave);
}
},
showToolbarPanel: function(panel, button){
if (panel && button){
panel.on('hide', Ext.bind(function(){
......@@ -240,6 +265,8 @@ Ext.define('DE.controller.toolbar.Edit', {
onTapSave: function() {
this.api && this.api.asc_Save();
this.getSaveButton().setDisabled(true);
Common.component.Analytics.trackEvent('ToolBar', 'Save');
},
......
......@@ -87,6 +87,24 @@ Ext.define('DE.controller.toolbar.View', {
launch: function() {
this.callParent(arguments);
if (Ext.os.is.iOS) {
Ext.each(Ext.ComponentQuery.query('button'), function(button) {
button.element.dom.ontouchstart = Ext.emptyFn();
button.element.dom.ontouchmove = Ext.emptyFn();
button.element.dom.ontouchend = Ext.emptyFn();
}, this);
Ext.each(Ext.ComponentQuery.query('toolbar'), function(toolbar) {
var preventFn = function(e){
e.preventDefault();
};
toolbar.element.dom.ontouchstart = preventFn;
toolbar.element.dom.ontouchmove = preventFn;
toolbar.element.dom.ontouchend = preventFn;
}, this);
}
Common.Gateway.on('init', Ext.bind(this.loadConfig, this));
Common.Gateway.on('opendocument', Ext.bind(this.loadDocument, this));
Common.Gateway.on('applyeditrights',Ext.bind(this.onApplyEditRights, this));
......
......@@ -742,12 +742,10 @@ define([
this._state.licenseWarning = (licType===Asc.c_oLicenseResult.Connections) && this.appOptions.canEdit && this.editorConfig.mode !== 'view';
this.appOptions.canBranding = params.asc_getCanBranding() && (typeof this.editorConfig.customization == 'object');
if (this.appOptions.canBranding) {
this.getApplication()
.getController('Viewport')
.getView('Common.Views.Header')
.setBranding(this.editorConfig.customization);
}
if (this.appOptions.canBranding)
this.getApplication().getController('Viewport').getView('Common.Views.Header').setBranding(this.editorConfig.customization);
params.asc_getTrial() && this.getApplication().getController('Viewport').getView('Common.Views.Header').setDeveloperMode(true);
this.applyModeCommonElements();
this.applyModeEditorElements();
......
......@@ -28,6 +28,8 @@
"Common.UI.SearchDialog.txtBtnReplaceAll": "Alle ersetzen",
"Common.UI.SynchronizeTip.textDontShow": "Diese Meldung nicht mehr anzeigen",
"Common.UI.SynchronizeTip.textSynchronize": "Das Dokument wurde von einem anderen Benutzer geändert.<br/>Bitte speichern Sie Ihre Änderungen und aktualisieren Sie Ihre Seite.",
"Common.UI.ThemeColorPalette.textStandartColors": "Standardfarben",
"Common.UI.ThemeColorPalette.textThemeColors": "Designfarben",
"Common.UI.Window.cancelButtonText": "Abbrechen",
"Common.UI.Window.closeButtonText": "Schließen",
"Common.UI.Window.noButtonText": "Nein",
......@@ -215,6 +217,7 @@
"PE.Controllers.Main.uploadImageTitleText": "Bild wird hochgeladen",
"PE.Controllers.Main.warnBrowserIE9": "Die Anwendung hat geringe Fähigkeiten in IE9. Nutzen Sie IE10 oder höher.",
"PE.Controllers.Main.warnBrowserZoom": "Die aktuelle Zoom-Einstellung Ihres Webbrowsers wird nicht völlig unterstützt. Bitte stellen Sie die Standardeinstellung mithilfe der Tastenkombination Strg+0 wieder her.",
"PE.Controllers.Main.warnLicenseExp": "Your license has expired.<br>Please update your license and refresh the page.",
"PE.Controllers.Main.warnNoLicense": "You are using an open source version of ONLYOFFICE. The version has limitations for concurrent connections to the document server (20 connections at a time).<br>If you need more please consider purchasing a commercial license.",
"PE.Controllers.Main.warnProcessRightsChange": "Das Recht, die Datei zu bearbeiten, wurde Ihnen verweigert.",
"PE.Controllers.Statusbar.zoomText": "Zoom {0}%",
......@@ -371,6 +374,7 @@
"PE.Views.FileMenuPanels.Settings.txtAll": "Alle anzeigen",
"PE.Views.FileMenuPanels.Settings.txtCm": "Zentimeter",
"PE.Views.FileMenuPanels.Settings.txtFitSlide": "Folie anpassen",
"PE.Views.FileMenuPanels.Settings.txtFitWidth": "Fit to Width",
"PE.Views.FileMenuPanels.Settings.txtInch": "Zoll",
"PE.Views.FileMenuPanels.Settings.txtInput": "Eingabe ändern",
"PE.Views.FileMenuPanels.Settings.txtLast": "Letzte anzeigen",
......@@ -397,6 +401,8 @@
"PE.Views.HyperlinkSettingsDialog.txtPrev": "Vorherige Folie",
"PE.Views.HyperlinkSettingsDialog.txtSlide": "Folie",
"PE.Views.ImageSettings.textAdvanced": "Erweiterte Einstellungen anzeigen",
"PE.Views.ImageSettings.textEdit": "Edit",
"PE.Views.ImageSettings.textEditObject": "Edit Object",
"PE.Views.ImageSettings.textFromFile": "Aus Datei",
"PE.Views.ImageSettings.textFromUrl": "Aus URL",
"PE.Views.ImageSettings.textHeight": "Höhe",
......@@ -417,6 +423,7 @@
"PE.Views.LeftMenu.tipChat": "Chat",
"PE.Views.LeftMenu.tipComments": "Kommentare",
"PE.Views.LeftMenu.tipFile": "Datei",
"PE.Views.LeftMenu.tipPlugins": "Plugins",
"PE.Views.LeftMenu.tipSearch": "Suche",
"PE.Views.LeftMenu.tipSlides": "Folien",
"PE.Views.LeftMenu.tipSupport": "Feedback und Support",
......@@ -474,6 +481,7 @@
"PE.Views.ShapeSettings.strSize": "Größe",
"PE.Views.ShapeSettings.strStroke": "Strich",
"PE.Views.ShapeSettings.strTransparency": "Undurchsichtigkeit",
"PE.Views.ShapeSettings.strType": "Type",
"PE.Views.ShapeSettings.textAdvanced": "Erweiterte Einstellungen anzeigen",
"PE.Views.ShapeSettings.textBorderSizeErr": "Der eingegebene Wert ist falsch.<br>Bitte geben Sie einen Wert zwischen 0 pt und 1584 pt ein.",
"PE.Views.ShapeSettings.textColor": "Farbfüllung",
......@@ -490,11 +498,9 @@
"PE.Views.ShapeSettings.textPatternFill": "Muster",
"PE.Views.ShapeSettings.textRadial": "Radial",
"PE.Views.ShapeSettings.textSelectTexture": "Wählen",
"PE.Views.ShapeSettings.textStandartColors": "Standardfarben",
"PE.Views.ShapeSettings.textStretch": "Ausdehnung",
"PE.Views.ShapeSettings.textStyle": "Stil",
"PE.Views.ShapeSettings.textTexture": "Aus Textur",
"PE.Views.ShapeSettings.textThemeColors": "Designfarben",
"PE.Views.ShapeSettings.textTile": "Kachel",
"PE.Views.ShapeSettings.txtBrownPaper": "Kraftpapier",
"PE.Views.ShapeSettings.txtCanvas": "Canvas",
......@@ -580,11 +586,9 @@
"PE.Views.SlideSettings.textSelectTexture": "Wählen",
"PE.Views.SlideSettings.textSmoothly": "Gleitend",
"PE.Views.SlideSettings.textSplit": "Aufteilen",
"PE.Views.SlideSettings.textStandartColors": "Standardfarben",
"PE.Views.SlideSettings.textStretch": "Ausdehnung",
"PE.Views.SlideSettings.textStyle": "Stil",
"PE.Views.SlideSettings.textTexture": "Aus Textur",
"PE.Views.SlideSettings.textThemeColors": "Designfarben",
"PE.Views.SlideSettings.textTile": "Kachel",
"PE.Views.SlideSettings.textTop": "Oben",
"PE.Views.SlideSettings.textTopLeft": "Oben links",
......@@ -609,9 +613,16 @@
"PE.Views.SlideSettings.txtLeather": "Leder",
"PE.Views.SlideSettings.txtPapyrus": "Papyrus",
"PE.Views.SlideSettings.txtWood": "Holz",
"PE.Views.SlideshowSettings.cancelButtonText": "Cancel",
"PE.Views.SlideshowSettings.okButtonText": "Ok",
"PE.Views.SlideshowSettings.textLoop": "Loop continuously until 'Esc' is pressed",
"PE.Views.SlideshowSettings.textTitle": "Show Settings",
"PE.Views.SlideSizeSettings.cancelButtonText": "Abbrechen",
"PE.Views.SlideSizeSettings.okButtonText": "OK",
"PE.Views.SlideSizeSettings.strLandscape": "Landscape",
"PE.Views.SlideSizeSettings.strPortrait": "Portrait",
"PE.Views.SlideSizeSettings.textHeight": "Höhe",
"PE.Views.SlideSizeSettings.textSlideOrientation": "Slide Orientation",
"PE.Views.SlideSizeSettings.textSlideSize": "Foliengröße",
"PE.Views.SlideSizeSettings.textTitle": "Einstellungen der Foliengröße",
"PE.Views.SlideSizeSettings.textWidth": "Breite",
......@@ -671,9 +682,7 @@
"PE.Views.TableSettings.textNewColor": "Benutzerdefinierte Farbe",
"PE.Views.TableSettings.textRows": "Zeilen",
"PE.Views.TableSettings.textSelectBorders": "Wählen Sie die Rahmenlinien, auf die ein anderer Stil angewandt wird",
"PE.Views.TableSettings.textStandartColors": "Standardfarben",
"PE.Views.TableSettings.textTemplate": "Vorlage auswählen",
"PE.Views.TableSettings.textThemeColors": "Designfarben",
"PE.Views.TableSettings.textTotal": "Insgesamt",
"PE.Views.TableSettings.tipAll": "Äußere Rahmenlinie und alle inneren Linien festlegen",
"PE.Views.TableSettings.tipBottom": "Nur äußere untere Rahmenlinie festlegen",
......@@ -705,6 +714,7 @@
"PE.Views.TextArtSettings.strSize": "Größe",
"PE.Views.TextArtSettings.strStroke": "Strich",
"PE.Views.TextArtSettings.strTransparency": "Undurchsichtigkeit",
"PE.Views.TextArtSettings.strType": "Type",
"PE.Views.TextArtSettings.textBorderSizeErr": "Der eingegebene Wert ist falsch.<br>Bitte geben Sie einen Wert zwischen 0 pt und 1584 pt ein.",
"PE.Views.TextArtSettings.textColor": "Farbfüllung",
"PE.Views.TextArtSettings.textDirection": "Direction",
......@@ -715,17 +725,15 @@
"PE.Views.TextArtSettings.textGradientFill": "Füllung mit Farbverlauf",
"PE.Views.TextArtSettings.textImageTexture": "Bild oder Textur",
"PE.Views.TextArtSettings.textLinear": "Linear",
"PE.Views.TextArtSettings.textNewColor": "Neue benutzerdefinierte Farbpalette hinzufügen",
"PE.Views.TextArtSettings.textNewColor": "Benutzerdefinierte Farbe",
"PE.Views.TextArtSettings.textNoFill": "Keine Füllung",
"PE.Views.TextArtSettings.textPatternFill": "Muster",
"PE.Views.TextArtSettings.textRadial": "Radial",
"PE.Views.TextArtSettings.textSelectTexture": "Wählen",
"PE.Views.TextArtSettings.textStandartColors": "Standardfarben",
"PE.Views.TextArtSettings.textStretch": "Ausdehnung",
"PE.Views.TextArtSettings.textStyle": "Stil",
"PE.Views.TextArtSettings.textTemplate": "Vorlage",
"PE.Views.TextArtSettings.textTexture": "Aus Textur",
"PE.Views.TextArtSettings.textThemeColors": "Designfarben",
"PE.Views.TextArtSettings.textTile": "Kachel",
"PE.Views.TextArtSettings.textTransform": "Transformieren\t",
"PE.Views.TextArtSettings.txtBrownPaper": "Kraftpapier",
......@@ -782,12 +790,13 @@
"PE.Views.Toolbar.textShapeAlignMiddle": "Mittig ausrichten",
"PE.Views.Toolbar.textShapeAlignRight": "Rechts ausrichten",
"PE.Views.Toolbar.textShapeAlignTop": "Oben ausrichten",
"PE.Views.Toolbar.textStandartColors": "Standardfarben",
"PE.Views.Toolbar.textShowBegin": "Show from Beginning",
"PE.Views.Toolbar.textShowCurrent": "Show from Current slide",
"PE.Views.Toolbar.textShowSettings": "Show Settings",
"PE.Views.Toolbar.textStock": "Kurs",
"PE.Views.Toolbar.textStrikeout": "Durchgestrichen",
"PE.Views.Toolbar.textSubscript": "Tiefgestellt",
"PE.Views.Toolbar.textSuperscript": "Hochgestellt",
"PE.Views.Toolbar.textThemeColors": "Designfarben",
"PE.Views.Toolbar.textTitleError": "Fehler",
"PE.Views.Toolbar.textUnderline": "Unterstrichen",
"PE.Views.Toolbar.textZoom": "Zoom",
......
......@@ -80,6 +80,7 @@
"Common.Views.ExternalDiagramEditor.textTitle": "Chart Editor",
"Common.Views.Header.openNewTabText": "Open in New Tab",
"Common.Views.Header.textBack": "Go to Documents",
"Common.Views.Header.txtHeaderDeveloper": "DEVELOPER MODE",
"Common.Views.ImageFromUrlDialog.cancelButtonText": "Cancel",
"Common.Views.ImageFromUrlDialog.okButtonText": "OK",
"Common.Views.ImageFromUrlDialog.textUrl": "Paste an image URL:",
......@@ -93,10 +94,10 @@
"Common.Views.InsertTableDialog.txtMinText": "The minimum value for this field is {0}.",
"Common.Views.InsertTableDialog.txtRows": "Number of Rows",
"Common.Views.InsertTableDialog.txtTitle": "Table Size",
"Common.Views.PluginDlg.textLoading": "Loading",
"Common.Views.Plugins.strPlugins": "Plugins",
"Common.Views.Plugins.textLoading": "Loading",
"Common.Views.Plugins.textStart": "Start",
"Common.Views.PluginDlg.textLoading": "Loading",
"PE.Controllers.LeftMenu.newDocumentTitle": "Unnamed presentation",
"PE.Controllers.LeftMenu.requestEditRightsText": "Requesting editing rights...",
"PE.Controllers.LeftMenu.textNoTextFound": "The data you have been searching for could not be found. Please adjust your search options.",
......@@ -140,6 +141,7 @@
"PE.Controllers.Main.loadThemeTextText": "Loading theme...",
"PE.Controllers.Main.loadThemeTitleText": "Loading Theme",
"PE.Controllers.Main.notcriticalErrorTitle": "Warning",
"PE.Controllers.Main.openErrorText": "An error has occurred while opening the file",
"PE.Controllers.Main.openTextText": "Opening presentation...",
"PE.Controllers.Main.openTitleText": "Opening Presentation",
"PE.Controllers.Main.printTextText": "Printing presentation...",
......@@ -147,6 +149,7 @@
"PE.Controllers.Main.reloadButtonText": "Reload Page",
"PE.Controllers.Main.requestEditFailedMessageText": "Someone is editing this presentation right now. Please try again later.",
"PE.Controllers.Main.requestEditFailedTitleText": "Access denied",
"PE.Controllers.Main.saveErrorText": "An error has occurred while saving the file",
"PE.Controllers.Main.savePreparingText": "Preparing to save",
"PE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...",
"PE.Controllers.Main.saveTextText": "Saving presentation...",
......@@ -163,6 +166,7 @@
"PE.Controllers.Main.textShape": "Shape",
"PE.Controllers.Main.textStrict": "Strict mode",
"PE.Controllers.Main.textTryUndoRedo": "The Undo/Redo functions are disabled for the Fast co-editing mode.<br>Click the 'Strict mode' button to switch to the Strict co-editing mode to edit the file without other users interference and send your changes only after you save them. You can switch between the co-editing modes using the editor Advanced settings.",
"PE.Controllers.Main.titleLicenseExp": "License expired",
"PE.Controllers.Main.txtArt": "Your text here",
"PE.Controllers.Main.txtBasicShapes": "Basic Shapes",
"PE.Controllers.Main.txtButtons": "Buttons",
......@@ -224,10 +228,9 @@
"PE.Controllers.Main.uploadImageTitleText": "Uploading Image",
"PE.Controllers.Main.warnBrowserIE9": "The application has low capabilities on IE9. Use IE10 or higher",
"PE.Controllers.Main.warnBrowserZoom": "Your browser current zoom setting is not fully supported. Please reset to the default zoom by pressing Ctrl+0.",
"PE.Controllers.Main.warnLicenseExp": "Your license has expired.<br>Please update your license and refresh the page.",
"PE.Controllers.Main.warnNoLicense": "You are using an open source version of ONLYOFFICE. The version has limitations for concurrent connections to the document server (20 connections at a time).<br>If you need more please consider purchasing a commercial license.",
"PE.Controllers.Main.warnProcessRightsChange": "You have been denied the right to edit the file.",
"PE.Controllers.Main.warnLicenseExp": "Your license has expired.<br>Please update your license and refresh the page.",
"PE.Controllers.Main.titleLicenseExp": "License expired",
"PE.Controllers.Statusbar.zoomText": "Zoom {0}%",
"PE.Controllers.Toolbar.confirmAddFontName": "The font you are going to save is not available on the current device.<br>The text style will be displayed using one of the system fonts, the saved font will be used when it is available.<br>Do you want to continue?",
"PE.Controllers.Toolbar.textEmptyImgUrl": "You need to specify image URL.",
......@@ -242,7 +245,7 @@
"PE.Views.ChartSettings.textKeepRatio": "Constant Proportions",
"PE.Views.ChartSettings.textLine": "Line Chart",
"PE.Views.ChartSettings.textPie": "Pie Chart",
"PE.Views.ChartSettings.textPoint": "Point Chart",
"PE.Views.ChartSettings.textPoint": "XY (Scatter) Chart",
"PE.Views.ChartSettings.textSize": "Size",
"PE.Views.ChartSettings.textStock": "Stock Chart",
"PE.Views.ChartSettings.textStyle": "Style",
......@@ -381,8 +384,8 @@
"PE.Views.FileMenuPanels.Settings.textMinute": "Every Minute",
"PE.Views.FileMenuPanels.Settings.txtAll": "View All",
"PE.Views.FileMenuPanels.Settings.txtCm": "Centimeter",
"PE.Views.FileMenuPanels.Settings.txtFitSlide": "Fit Slide",
"PE.Views.FileMenuPanels.Settings.txtFitWidth": "Fit Width",
"PE.Views.FileMenuPanels.Settings.txtFitSlide": "Fit to Slide",
"PE.Views.FileMenuPanels.Settings.txtFitWidth": "Fit to Width",
"PE.Views.FileMenuPanels.Settings.txtInch": "Inch",
"PE.Views.FileMenuPanels.Settings.txtInput": "Alternate Input",
"PE.Views.FileMenuPanels.Settings.txtLast": "View Last",
......@@ -651,7 +654,7 @@
"PE.Views.Statusbar.pageIndexText": "Slide {0} of {1}",
"PE.Views.Statusbar.tipAccessRights": "Manage document access rights",
"PE.Views.Statusbar.tipFitPage": "Fit Slide",
"PE.Views.Statusbar.tipFitWidth": "Fit Width",
"PE.Views.Statusbar.tipFitWidth": "Fit to Width",
"PE.Views.Statusbar.tipMoreUsers": "and %1 users.",
"PE.Views.Statusbar.tipPreview": "Start Slideshow",
"PE.Views.Statusbar.tipShowUsers": "To see all users click the icon below.",
......@@ -780,7 +783,7 @@
"PE.Views.Toolbar.textColumn": "Column Chart",
"PE.Views.Toolbar.textCompactView": "View Compact Toolbar",
"PE.Views.Toolbar.textFitPage": "Fit Slide",
"PE.Views.Toolbar.textFitWidth": "Fit Width",
"PE.Views.Toolbar.textFitWidth": "Fit to Width",
"PE.Views.Toolbar.textHideLines": "Hide Rulers",
"PE.Views.Toolbar.textHideStatusBar": "Hide Status Bar",
"PE.Views.Toolbar.textHideTitleBar": "Hide Title Bar",
......@@ -791,7 +794,7 @@
"PE.Views.Toolbar.textNewColor": "Custom Color",
"PE.Views.Toolbar.textOK": "OK",
"PE.Views.Toolbar.textPie": "Pie Chart",
"PE.Views.Toolbar.textPoint": "Point Chart",
"PE.Views.Toolbar.textPoint": "XY (Scatter) Chart",
"PE.Views.Toolbar.textShapeAlignBottom": "Align Bottom",
"PE.Views.Toolbar.textShapeAlignCenter": "Align Center",
"PE.Views.Toolbar.textShapeAlignLeft": "Align Left",
......
This diff is collapsed.
This diff is collapsed.
......@@ -79,6 +79,24 @@ Ext.define('PE.controller.toolbar.View', {
overlayContainer.element.on('touchend', this.onTouchEndDocument, this);
}
if (Ext.os.is.iOS) {
Ext.each(Ext.ComponentQuery.query('button'), function(button) {
button.element.dom.ontouchstart = Ext.emptyFn();
button.element.dom.ontouchmove = Ext.emptyFn();
button.element.dom.ontouchend = Ext.emptyFn();
}, this);
Ext.each(Ext.ComponentQuery.query('toolbar'), function(toolbar) {
var preventFn = function(e){
e.preventDefault();
};
toolbar.element.dom.ontouchstart = preventFn;
toolbar.element.dom.ontouchmove = preventFn;
toolbar.element.dom.ontouchend = preventFn;
}, this);
}
Common.Gateway.on('init', Ext.bind(this.loadConfig, this));
},
......
......@@ -760,9 +760,10 @@ define([
this.appOptions.canChat = this.appOptions.canLicense && !this.appOptions.isOffline && !((typeof (this.editorConfig.customization) == 'object') && this.editorConfig.customization.chat===false);
this.appOptions.canBranding = params.asc_getCanBranding() && (typeof this.editorConfig.customization == 'object');
if (this.appOptions.canBranding) {
if (this.appOptions.canBranding)
this.headerView.setBranding(this.editorConfig.customization);
}
params.asc_getTrial() && this.headerView.setDeveloperMode(true);
}
this.appOptions.canRequestEditRights = this.editorConfig.canRequestEditRights;
......
This diff is collapsed.
......@@ -74,6 +74,7 @@
"Common.Views.DocumentAccessDialog.textTitle": "Sharing Settings",
"Common.Views.Header.openNewTabText": "Open in New Tab",
"Common.Views.Header.textBack": "Go to Documents",
"Common.Views.Header.txtHeaderDeveloper": "DEVELOPER MODE",
"Common.Views.ImageFromUrlDialog.cancelButtonText": "Cancel",
"Common.Views.ImageFromUrlDialog.okButtonText": "OK",
"Common.Views.ImageFromUrlDialog.textUrl": "Paste an image URL:",
......@@ -83,15 +84,15 @@
"Common.Views.OpenDialog.okButtonText": "OK",
"Common.Views.OpenDialog.txtDelimiter": "Delimiter",
"Common.Views.OpenDialog.txtEncoding": "Encoding ",
"Common.Views.OpenDialog.txtPassword": "Password",
"Common.Views.OpenDialog.txtSpace": "Space",
"Common.Views.OpenDialog.txtTab": "Tab",
"Common.Views.OpenDialog.txtTitle": "Choose %1 options",
"Common.Views.OpenDialog.txtPassword": "Password",
"Common.Views.OpenDialog.txtTitleProtected": "Protected File",
"Common.Views.PluginDlg.textLoading": "Loading",
"Common.Views.Plugins.strPlugins": "Plugins",
"Common.Views.Plugins.textLoading": "Loading",
"Common.Views.Plugins.textStart": "Start",
"Common.Views.PluginDlg.textLoading": "Loading",
"SSE.Controllers.DocumentHolder.errorInvalidLink": "The link reference does not exist. Please correct the link or delete it.",
"SSE.Controllers.DocumentHolder.guestText": "Guest",
"SSE.Controllers.DocumentHolder.notcriticalErrorTitle": "Warning",
......@@ -183,6 +184,7 @@
"SSE.Controllers.Main.loadImageTitleText": "Loading Image",
"SSE.Controllers.Main.loadingDocumentTitleText": "Loading spreadsheet",
"SSE.Controllers.Main.notcriticalErrorTitle": "Warning",
"SSE.Controllers.Main.openErrorText": "An error has occurred while opening the file",
"SSE.Controllers.Main.openTextText": "Opening spreadsheet...",
"SSE.Controllers.Main.openTitleText": "Opening Spreadsheet",
"SSE.Controllers.Main.pastInMergeAreaError": "Cannot change part of a merged cell",
......@@ -191,6 +193,7 @@
"SSE.Controllers.Main.reloadButtonText": "Reload Page",
"SSE.Controllers.Main.requestEditFailedMessageText": "Someone is editing this document right now. Please try again later.",
"SSE.Controllers.Main.requestEditFailedTitleText": "Access denied",
"SSE.Controllers.Main.saveErrorText": "An error has occurred while saving the file",
"SSE.Controllers.Main.savePreparingText": "Preparing to save",
"SSE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...",
"SSE.Controllers.Main.saveTextText": "Saving spreadsheet...",
......@@ -209,6 +212,7 @@
"SSE.Controllers.Main.textStrict": "Strict mode",
"SSE.Controllers.Main.textTryUndoRedo": "The Undo/Redo functions are disabled for the Fast co-editing mode.<br>Click the 'Strict mode' button to switch to the Strict co-editing mode to edit the file without other users interference and send your changes only after you save them. You can switch between the co-editing modes using the editor Advanced settings.",
"SSE.Controllers.Main.textYes": "Yes",
"SSE.Controllers.Main.titleLicenseExp": "License expired",
"SSE.Controllers.Main.titleRecalcFormulas": "Calculating...",
"SSE.Controllers.Main.txtArt": "Your text here",
"SSE.Controllers.Main.txtBasicShapes": "Basic Shapes",
......@@ -234,10 +238,9 @@
"SSE.Controllers.Main.uploadImageTitleText": "Uploading Image",
"SSE.Controllers.Main.warnBrowserIE9": "The application has low capabilities on IE9. Use IE10 or higher",
"SSE.Controllers.Main.warnBrowserZoom": "Your browser current zoom setting is not fully supported. Please reset to the default zoom by pressing Ctrl+0.",
"SSE.Controllers.Main.warnLicenseExp": "Your license has expired.<br>Please update your license and refresh the page.",
"SSE.Controllers.Main.warnNoLicense": "You are using an open source version of ONLYOFFICE. The version has limitations for concurrent connections to the document server (20 connections at a time).<br>If you need more please consider purchasing a commercial license.",
"SSE.Controllers.Main.warnProcessRightsChange": "You have been denied the right to edit the file.",
"SSE.Controllers.Main.warnLicenseExp": "Your license has expired.<br>Please update your license and refresh the page.",
"SSE.Controllers.Main.titleLicenseExp": "License expired",
"SSE.Controllers.Print.strAllSheets": "All Sheets",
"SSE.Controllers.Print.textWarning": "Warning",
"SSE.Controllers.Print.warnCheckMargings": "Margins are incorrect",
......@@ -305,7 +308,7 @@
"SSE.Views.ChartSettings.textKeepRatio": "Constant Proportions",
"SSE.Views.ChartSettings.textLine": "Line Chart",
"SSE.Views.ChartSettings.textPie": "Pie Chart",
"SSE.Views.ChartSettings.textPoint": "Point Chart",
"SSE.Views.ChartSettings.textPoint": "XY (Scatter) Chart",
"SSE.Views.ChartSettings.textSize": "Size",
"SSE.Views.ChartSettings.textStock": "Stock Chart",
"SSE.Views.ChartSettings.textStyle": "Style",
......@@ -322,6 +325,7 @@
"SSE.Views.ChartSettingsDlg.textBar": "Bar Chart",
"SSE.Views.ChartSettingsDlg.textBetweenTickMarks": "Between Tick Marks",
"SSE.Views.ChartSettingsDlg.textBillions": "Billions",
"SSE.Views.ChartSettingsDlg.textBottom": "Bottom",
"SSE.Views.ChartSettingsDlg.textCategoryName": "Category Name",
"SSE.Views.ChartSettingsDlg.textCenter": "Center",
"SSE.Views.ChartSettingsDlg.textChartElementsLegend": "Chart Elements &<br/>Chart Legend",
......@@ -335,6 +339,7 @@
"SSE.Views.ChartSettingsDlg.textDataRows": "in rows",
"SSE.Views.ChartSettingsDlg.textDataSeries": "Data series",
"SSE.Views.ChartSettingsDlg.textDisplayLegend": "Display Legend",
"SSE.Views.ChartSettingsDlg.textFit": "Fit to Width",
"SSE.Views.ChartSettingsDlg.textFixed": "Fixed",
"SSE.Views.ChartSettingsDlg.textGridLines": "Gridlines",
"SSE.Views.ChartSettingsDlg.textHide": "Hide",
......@@ -355,6 +360,7 @@
"SSE.Views.ChartSettingsDlg.textLabelOptions": "Label Options",
"SSE.Views.ChartSettingsDlg.textLabelPos": "Label Position",
"SSE.Views.ChartSettingsDlg.textLayout": "Layout",
"SSE.Views.ChartSettingsDlg.textLeft": "Left",
"SSE.Views.ChartSettingsDlg.textLeftOverlay": "Left Overlay",
"SSE.Views.ChartSettingsDlg.textLegendBottom": "Bottom",
"SSE.Views.ChartSettingsDlg.textLegendLeft": "Left",
......@@ -385,6 +391,7 @@
"SSE.Views.ChartSettingsDlg.textPie": "Pie Chart",
"SSE.Views.ChartSettingsDlg.textPoint": "Point Chart",
"SSE.Views.ChartSettingsDlg.textReverse": "Values in reverse order",
"SSE.Views.ChartSettingsDlg.textRight": "Right",
"SSE.Views.ChartSettingsDlg.textRightOverlay": "Right Overlay",
"SSE.Views.ChartSettingsDlg.textRotated": "Rotated",
"SSE.Views.ChartSettingsDlg.textSelectData": "Select Data",
......@@ -404,6 +411,7 @@
"SSE.Views.ChartSettingsDlg.textThousands": "Thousands",
"SSE.Views.ChartSettingsDlg.textTickOptions": "Tick Options",
"SSE.Views.ChartSettingsDlg.textTitle": "Chart - Advanced Settings",
"SSE.Views.ChartSettingsDlg.textTop": "Top",
"SSE.Views.ChartSettingsDlg.textTrillions": "Trillions",
"SSE.Views.ChartSettingsDlg.textType": "Type",
"SSE.Views.ChartSettingsDlg.textTypeData": "Type & Data",
......@@ -416,11 +424,6 @@
"SSE.Views.ChartSettingsDlg.textXAxisTitle": "X Axis Title",
"SSE.Views.ChartSettingsDlg.textYAxisTitle": "Y Axis Title",
"SSE.Views.ChartSettingsDlg.txtEmpty": "This field is required",
"SSE.Views.ChartSettingsDlg.textLeft": "Left",
"SSE.Views.ChartSettingsDlg.textRight": "Right",
"SSE.Views.ChartSettingsDlg.textTop": "Top",
"SSE.Views.ChartSettingsDlg.textBottom": "Bottom",
"SSE.Views.ChartSettingsDlg.textFit": "Fit Width",
"SSE.Views.DigitalFilterDialog.cancelButtonText": "Cancel",
"SSE.Views.DigitalFilterDialog.capAnd": "And",
"SSE.Views.DigitalFilterDialog.capCondition1": "equals",
......
This diff is collapsed.
This diff is collapsed.
......@@ -73,6 +73,24 @@
launch: function() {
this.callParent(arguments);
if (Ext.os.is.iOS) {
Ext.each(Ext.ComponentQuery.query('button'), function(button) {
button.element.dom.ontouchstart = Ext.emptyFn();
button.element.dom.ontouchmove = Ext.emptyFn();
button.element.dom.ontouchend = Ext.emptyFn();
}, this);
Ext.each(Ext.ComponentQuery.query('toolbar'), function(toolbar) {
var preventFn = function(e){
e.preventDefault();
};
toolbar.element.dom.ontouchstart = preventFn;
toolbar.element.dom.ontouchmove = preventFn;
toolbar.element.dom.ontouchend = preventFn;
}, this);
}
Common.Gateway.on('init', Ext.bind(this.loadConfig, this));
},
......
Sencha Touch - JavaScript Library
Sencha Touch & Sencha Touch Charts - JavaScript Libraries
Copyright (c) 2010-2015, Sencha, Inc.
All rights reserved.
licensing@sencha.com
......@@ -6,23 +6,43 @@ licensing@sencha.com
http://www.sencha.com/products/touch/license.php
Commercial License
Open Source License
------------------------------------------------------------------------------------------
This version of Sencha Touch is licensed commercially.
This version of Sencha Touch and Sencha Touch Charts is licensed under the terms of the Open
Source GPL 3.0 license.
http://www.gnu.org/licenses/gpl.html
There are several FLOSS exceptions available for use with this release for
open source applications that are distributed under a license other than the GPL.
* Open Source License Exception for Applications
http://www.sencha.com/products/floss-exception.php
* Open Source License Exception for Development
http://www.sencha.com/products/ux-exception.php
Alternate Licensing for Sencha Touch
------------------------------------------------------------------------------------------
Commercial and OEM Licenses are available for an alternate download of Sencha Touch.
This is the appropriate option if you are creating proprietary applications and you are
not prepared to distribute and share the source code of your application under the
GPL v3 license. Please visit http://www.sencha.com/store/touch/license.php for more details.
OEM / Reseller License
Alternate Licensing for Sencha Touch Charts
------------------------------------------------------------------------------------------
For more details, please visit: http://www.sencha.com/products/touch/license.php
Commercial and OEM Licenses are available for an alternate download of Sencha Touch Charts.
This is the appropriate option if you are creating proprietary applications and you are
not prepared to distribute and share the source code of your application under the
GPL v3 license.
Open Source Licensing
------------------------------------------------------------------------------------------
Open Source Licensing is available for an alternate download of Sencha Touch.
For more details, please visit http://www.sencha.com/store/touch/license.php for more details.
Sencha Touch Charts is available commercially only as a part of Sencha Complete or Sencha
Complete Team. Please visit http://www.sencha.com/products/complete/license or
http://www.sencha.com/products/complete-team/license for more details.
Third Party Content
......
......@@ -5,10 +5,13 @@ Copyright (c) 2011-2015 Sencha Inc
Contact: http://www.sencha.com/contact
Commercial Usage
Licensees holding valid commercial licenses may use this file in accordance with the Commercial
Software License Agreement provided with the Software or, alternatively, in accordance with the
terms contained in a written agreement between you and Sencha.
GNU General Public License Usage
This file may be used under the terms of the GNU General Public License version 3.0 as
published by the Free Software Foundation and appearing in the file LICENSE included in the
packaging of this file.
Please review the following information to ensure the GNU General Public License version 3.0
requirements will be met: http://www.gnu.org/copyleft/gpl.html.
If you are unsure which license is appropriate for your use, please contact the sales department
at http://www.sencha.com/contact.
......
......@@ -5,10 +5,13 @@ Copyright (c) 2011-2015 Sencha Inc
Contact: http://www.sencha.com/contact
Commercial Usage
Licensees holding valid commercial licenses may use this file in accordance with the Commercial
Software License Agreement provided with the Software or, alternatively, in accordance with the
terms contained in a written agreement between you and Sencha.
GNU General Public License Usage
This file may be used under the terms of the GNU General Public License version 3.0 as
published by the Free Software Foundation and appearing in the file LICENSE included in the
packaging of this file.
Please review the following information to ensure the GNU General Public License version 3.0
requirements will be met: http://www.gnu.org/copyleft/gpl.html.
If you are unsure which license is appropriate for your use, please contact the sales department
at http://www.sencha.com/contact.
......
......@@ -5,10 +5,13 @@ Copyright (c) 2011-2015 Sencha Inc
Contact: http://www.sencha.com/contact
Commercial Usage
Licensees holding valid commercial licenses may use this file in accordance with the Commercial
Software License Agreement provided with the Software or, alternatively, in accordance with the
terms contained in a written agreement between you and Sencha.
GNU General Public License Usage
This file may be used under the terms of the GNU General Public License version 3.0 as
published by the Free Software Foundation and appearing in the file LICENSE included in the
packaging of this file.
Please review the following information to ensure the GNU General Public License version 3.0
requirements will be met: http://www.gnu.org/copyleft/gpl.html.
If you are unsure which license is appropriate for your use, please contact the sales department
at http://www.sencha.com/contact.
......
......@@ -5,10 +5,13 @@ Copyright (c) 2011-2015 Sencha Inc
Contact: http://www.sencha.com/contact
Commercial Usage
Licensees holding valid commercial licenses may use this file in accordance with the Commercial
Software License Agreement provided with the Software or, alternatively, in accordance with the
terms contained in a written agreement between you and Sencha.
GNU General Public License Usage
This file may be used under the terms of the GNU General Public License version 3.0 as
published by the Free Software Foundation and appearing in the file LICENSE included in the
packaging of this file.
Please review the following information to ensure the GNU General Public License version 3.0
requirements will be met: http://www.gnu.org/copyleft/gpl.html.
If you are unsure which license is appropriate for your use, please contact the sales department
at http://www.sencha.com/contact.
......
......@@ -5,10 +5,13 @@ Copyright (c) 2011-2015 Sencha Inc
Contact: http://www.sencha.com/contact
Commercial Usage
Licensees holding valid commercial licenses may use this file in accordance with the Commercial
Software License Agreement provided with the Software or, alternatively, in accordance with the
terms contained in a written agreement between you and Sencha.
GNU General Public License Usage
This file may be used under the terms of the GNU General Public License version 3.0 as
published by the Free Software Foundation and appearing in the file LICENSE included in the
packaging of this file.
Please review the following information to ensure the GNU General Public License version 3.0
requirements will be met: http://www.gnu.org/copyleft/gpl.html.
If you are unsure which license is appropriate for your use, please contact the sales department
at http://www.sencha.com/contact.
......
......@@ -5,10 +5,13 @@ Copyright (c) 2011-2015 Sencha Inc
Contact: http://www.sencha.com/contact
Commercial Usage
Licensees holding valid commercial licenses may use this file in accordance with the Commercial
Software License Agreement provided with the Software or, alternatively, in accordance with the
terms contained in a written agreement between you and Sencha.
GNU General Public License Usage
This file may be used under the terms of the GNU General Public License version 3.0 as
published by the Free Software Foundation and appearing in the file LICENSE included in the
packaging of this file.
Please review the following information to ensure the GNU General Public License version 3.0
requirements will be met: http://www.gnu.org/copyleft/gpl.html.
If you are unsure which license is appropriate for your use, please contact the sales department
at http://www.sencha.com/contact.
......
......@@ -5,10 +5,13 @@ Copyright (c) 2011-2015 Sencha Inc
Contact: http://www.sencha.com/contact
Commercial Usage
Licensees holding valid commercial licenses may use this file in accordance with the Commercial
Software License Agreement provided with the Software or, alternatively, in accordance with the
terms contained in a written agreement between you and Sencha.
GNU General Public License Usage
This file may be used under the terms of the GNU General Public License version 3.0 as
published by the Free Software Foundation and appearing in the file LICENSE included in the
packaging of this file.
Please review the following information to ensure the GNU General Public License version 3.0
requirements will be met: http://www.gnu.org/copyleft/gpl.html.
If you are unsure which license is appropriate for your use, please contact the sales department
at http://www.sencha.com/contact.
......
......@@ -5,10 +5,13 @@ Copyright (c) 2011-2015 Sencha Inc
Contact: http://www.sencha.com/contact
Commercial Usage
Licensees holding valid commercial licenses may use this file in accordance with the Commercial
Software License Agreement provided with the Software or, alternatively, in accordance with the
terms contained in a written agreement between you and Sencha.
GNU General Public License Usage
This file may be used under the terms of the GNU General Public License version 3.0 as
published by the Free Software Foundation and appearing in the file LICENSE included in the
packaging of this file.
Please review the following information to ensure the GNU General Public License version 3.0
requirements will be met: http://www.gnu.org/copyleft/gpl.html.
If you are unsure which license is appropriate for your use, please contact the sales department
at http://www.sencha.com/contact.
......
......@@ -5,10 +5,13 @@ Copyright (c) 2011-2015 Sencha Inc
Contact: http://www.sencha.com/contact
Commercial Usage
Licensees holding valid commercial licenses may use this file in accordance with the Commercial
Software License Agreement provided with the Software or, alternatively, in accordance with the
terms contained in a written agreement between you and Sencha.
GNU General Public License Usage
This file may be used under the terms of the GNU General Public License version 3.0 as
published by the Free Software Foundation and appearing in the file LICENSE included in the
packaging of this file.
Please review the following information to ensure the GNU General Public License version 3.0
requirements will be met: http://www.gnu.org/copyleft/gpl.html.
If you are unsure which license is appropriate for your use, please contact the sales department
at http://www.sencha.com/contact.
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
/**
* @class Ext.chart.Legend
* @extends Ext.dataview.DataView
*
* A default legend for charts.
*
* @example preview
* var chart = new Ext.chart.Chart({
* animate: true,
* store: {
* fields: ['name', 'data1', 'data2', 'data3', 'data4', 'data5'],
* data: [
* {'name':'metric one', 'data1':10, 'data2':12, 'data3':14, 'data4':8, 'data5':13},
* {'name':'metric two', 'data1':7, 'data2':8, 'data3':16, 'data4':10, 'data5':3},
* {'name':'metric three', 'data1':5, 'data2':2, 'data3':14, 'data4':12, 'data5':7},
* {'name':'metric four', 'data1':2, 'data2':14, 'data3':6, 'data4':1, 'data5':23},
* {'name':'metric five', 'data1':27, 'data2':38, 'data3':36, 'data4':13, 'data5':33}
* ]
* },
* legend: {
* position: 'bottom'
* },
* axes: [{
* type: 'numeric',
* position: 'left',
* fields: ['data1'],
* title: {
* text: 'Sample Values',
* fontSize: 15
* },
* grid: true,
* minimum: 0
* }, {
* type: 'category',
* position: 'bottom',
* fields: ['name'],
* title: {
* text: 'Sample Values',
* fontSize: 15
* }
* }],
* series: [{
* type: 'area',
* title: ['Data1', 'Data2', 'Data3'],
* subStyle: {
* fill: ['blue', 'green', 'red']
* },
* xField: 'name',
* yField: ['data1', 'data2', 'data3']
*
* }]
* });
* Ext.Viewport.setLayout('fit');
* Ext.Viewport.add(chart);
*/
Ext.define("Ext.chart.Legend", {
xtype: 'legend',
extend: "Ext.dataview.DataView",
config: {
itemTpl: [
"<span class=\"x-legend-item-marker {[values.disabled?\'x-legend-inactive\':\'\']}\" style=\"background:{mark};\"></span>{name}"
],
baseCls: 'x-legend',
padding: 5,
disableSelection: true,
inline: true,
/**
* @cfg {String} position
* @deprecated Use `docked` instead.
* Delegates to `docked`
*/
position: null,
/**
* @cfg {Boolean} toggleable 'true' if the series items in the legend can be toggled on and off.
*/
toggleable: true,
docked: 'top',
horizontalHeight: 48,
verticalWidth: 150
},
constructor: function () {
this.callSuper(arguments);
var scroller = this.getScrollable().getScroller(),
onDrag = scroller.onDrag;
scroller.onDrag = function (e) {
e.stopPropagation();
onDrag.call(this, e);
};
},
doSetDocked: function (docked) {
this.callSuper(arguments);
if (docked === 'top' || docked === 'bottom') {
this.setLayout({type: 'hbox', pack: 'center'});
this.setInline(true);
// TODO: Remove this when possible
this.setWidth(null);
this.setHeight(this.getHorizontalHeight());
if (this.getScrollable()) {
this.setScrollable({direction: 'horizontal'});
}
} else {
this.setLayout({pack: 'center'});
this.setInline(false);
// TODO: Remove this when possible
this.setWidth(this.getVerticalWidth());
this.setHeight(null);
if (this.getScrollable()) {
this.setScrollable({direction: 'vertical'});
}
}
},
setScrollable: function (scrollable) {
this.callSuper(arguments);
if (scrollable === true) {
if (this.getDocked() === 'top' || this.getDocked() === 'bottom') {
this.setScrollable({direction: 'horizontal'});
} else if (this.getDocked() === 'left' || this.getDocked() === 'right') {
this.setScrollable({direction: 'vertical'});
}
}
},
setPosition: function (position) {
this.setDocked(position);
},
getPosition: function () {
return this.getDocked();
},
onItemTap: function (container, target, index, e) {
this.callSuper(arguments);
if(this.getToggleable()) {
var me = this,
store = me.getStore(),
record = store && store.getAt(index);
record.beginEdit();
record.set('disabled', !record.get('disabled'));
record.commit();
}
}
});
\ No newline at end of file
/**
* @class Ext.chart.MarkerHolder
* @extends Ext.mixin.Mixin
*
* Mixin that provides the functionality to place markers.
*/
Ext.define('Ext.chart.MarkerHolder', {
extend: 'Ext.mixin.Mixin',
mixinConfig: {
id: 'markerHolder',
hooks: {
constructor: 'constructor',
preRender: 'preRender'
}
},
isMarkerHolder: true,
constructor: function () {
this.boundMarkers = {};
this.cleanRedraw = false;
},
/**
*
* @param {String} name
* @param {Ext.chart.Markers} marker
*/
bindMarker: function (name, marker) {
if (marker) {
if (!this.boundMarkers[name]) {
this.boundMarkers[name] = [];
}
Ext.Array.include(this.boundMarkers[name], marker);
}
},
getBoundMarker: function (name) {
return this.boundMarkers[name];
},
preRender: function () {
var boundMarkers = this.boundMarkers, boundMarkersItem,
name, i, ln, id = this.getId(),
parent = this.getParent(),
matrix = this.surfaceMatrix ? this.surfaceMatrix.set(1, 0, 0, 1, 0, 0) : (this.surfaceMatrix = new Ext.draw.Matrix());
this.cleanRedraw = !this.attr.dirty;
if (!this.cleanRedraw) {
for (name in this.boundMarkers) {
if (boundMarkers[name]) {
for (boundMarkersItem = boundMarkers[name], i = 0, ln = boundMarkersItem.length; i < ln; i++) {
boundMarkersItem[i].clear(id);
}
}
}
}
while (parent && parent.attr && parent.attr.matrix) {
matrix.prependMatrix(parent.attr.matrix);
parent = parent.getParent();
}
matrix.prependMatrix(parent.matrix);
this.surfaceMatrix = matrix;
this.inverseSurfaceMatrix = matrix.inverse(this.inverseSurfaceMatrix);
},
putMarker: function (name, markerAttr, index, canonical, keepRevision) {
var boundMarkersItem, i, ln, id = this.getId();
if (this.boundMarkers[name]) {
for (boundMarkersItem = this.boundMarkers[name], i = 0, ln = boundMarkersItem.length; i < ln; i++) {
boundMarkersItem[i].putMarkerFor(id, markerAttr, index, canonical);
}
}
},
getMarkerBBox: function (name, index, isWithoutTransform) {
var id = this.getId(),
left = Infinity,
right = -Infinity,
top = Infinity,
bottom = -Infinity,
bbox, boundMarker, i, ln;
if (this.boundMarkers[name]) {
for (boundMarker = this.boundMarkers[name], i = 0, ln = boundMarker.length; i < ln; i++) {
bbox = boundMarker[i].getMarkerBBoxFor(id, index, isWithoutTransform);
if (left > bbox.x) {
left = bbox.x;
}
if (right < bbox.x + bbox.width) {
right = bbox.x + bbox.width;
}
if (top > bbox.y) {
top = bbox.y;
}
if (bottom < bbox.y + bbox.height) {
bottom = bbox.y + bbox.height;
}
}
}
return {
x: left,
y: top,
width: right - left,
height: bottom - top
};
}
});
/**
* @class Ext.chart.Markers
* @extends Ext.draw.sprite.Instancing
*
* Marker sprite. A specialized version of instancing sprite that groups instances.
* Putting a marker is grouped by its category id. Clearing removes that category.
*/
Ext.define('Ext.chart.Markers', {
extend: 'Ext.draw.sprite.Instancing',
revisions: 0,
constructor: function () {
this.callSuper(arguments);
this.map = {};
this.revisions = {};
},
/**
* Clear the markers in the category
* @param {String} category
*/
clear: function (category) {
category = category || 'default';
if (!(category in this.revisions)) {
this.revisions[category] = 1;
} else {
this.revisions[category]++;
}
},
/**
* Put a marker in the category with additional
* attributes.
* @param {String} category
* @param {Object} markerAttr
* @param {String|Number} index
* @param {Boolean} [canonical]
* @param {Boolean} [keepRevision]
*/
putMarkerFor: function (category, markerAttr, index, canonical, keepRevision) {
category = category || 'default';
var me = this,
map = me.map[category] || (me.map[category] = {});
if (index in map) {
me.setAttributesFor(map[index], markerAttr, canonical);
} else {
map[index] = me.instances.length;
me.createInstance(markerAttr, null, canonical);
}
me.instances[map[index]].category = category;
if (!keepRevision) {
me.instances[map[index]].revision = me.revisions[category] || (me.revisions[category] = 1);
}
},
/**
*
* @param {String} category
* @param {Mixed} index
* @param {Boolean} [isWithoutTransform]
*/
getMarkerBBoxFor: function (category, index, isWithoutTransform) {
if (category in this.map) {
if (index in this.map[category]) {
return this.getBBoxFor(this.map[category][index], isWithoutTransform);
}
}
return {
x: Infinity,
y: Infinity,
width: -Infinity,
height: -Infinity
};
},
getBBox: function () { return null; },
render: function (surface, ctx, clipRegion) {
var me = this,
revisions = me.revisions,
mat = me.attr.matrix,
template = me.getTemplate(),
originalAttr = template.attr,
instances = me.instances,
i, ln = me.instances.length;
mat.toContext(ctx);
template.preRender(surface, ctx, clipRegion);
template.useAttributes(ctx);
for (i = 0; i < ln; i++) {
if (instances[i].hidden || instances[i].revision !== revisions[instances[i].category]) {
continue;
}
ctx.save();
template.attr = instances[i];
template.applyTransformations();
template.useAttributes(ctx);
template.render(surface, ctx, clipRegion);
ctx.restore();
}
template.attr = originalAttr;
}
});
\ No newline at end of file
/**
* @class Ext.chart.PolarChart
* @extends Ext.chart.AbstractChart
*
* Creates a chart that uses polar coordinates.
*/
Ext.define('Ext.chart.PolarChart', {
requires: [
'Ext.chart.grid.CircularGrid',
'Ext.chart.grid.RadialGrid'
],
extend: 'Ext.chart.AbstractChart',
xtype: 'polar',
config: {
/**
* @cfg {Array} center Determines the center of the polar chart.
* Updated when the chart performs layout.
*/
center: [0, 0],
/**
* @cfg {Number} radius Determines the radius of the polar chart.
* Updated when the chart performs layout.
*/
radius: 0
},
getDirectionForAxis: function (position) {
if (position === 'radial') {
return 'Y';
} else {
return 'X';
}
},
applyCenter: function (center, oldCenter) {
if (oldCenter && center[0] === oldCenter[0] && center[1] === oldCenter[1]) {
return;
}
return [+center[0], +center[1]];
},
updateCenter: function (center) {
var me = this,
axes = me.getAxes(), axis,
series = me.getSeries(), seriesItem,
i, ln;
for (i = 0, ln = axes.length; i < ln; i++) {
axis = axes[i];
axis.setCenter(center);
}
for (i = 0, ln = series.length; i < ln; i++) {
seriesItem = series[i];
seriesItem.setCenter(center);
}
},
updateRadius: function (radius) {
var me = this,
axes = me.getAxes(), axis,
series = me.getSeries(), seriesItem,
i, ln;
for (i = 0, ln = axes.length; i < ln; i++) {
axis = axes[i];
axis.setMinimum(0);
axis.setLength(radius);
axis.getSprites();
}
for (i = 0, ln = series.length; i < ln; i++) {
seriesItem = series[i];
seriesItem.setRadius(radius);
}
},
doSetSurfaceRegion: function (surface, region) {
var mainRegion = this.getMainRegion();
surface.setRegion(region);
surface.matrix.set(1, 0, 0, 1, mainRegion[0] - region[0], mainRegion[1] - region[1]);
surface.inverseMatrix.set(1, 0, 0, 1, region[0] - mainRegion[0], region[1] - mainRegion[1]);
},
performLayout: function () {
try {
this.resizing++;
this.callSuper();
var me = this,
size = me.element.getSize(),
fullRegion = [0, 0, size.width, size.height],
inset = me.getInsetPadding(),
inner = me.getInnerPadding(),
left = inset.left,
top = inset.top,
width = size.width - left - inset.right,
height = size.height - top - inset.bottom,
region = [inset.left, inset.top, width, height],
innerWidth = width - inner.left - inner.right,
innerHeight = height - inner.top - inner.bottom,
center = [innerWidth * 0.5 + inner.left, innerHeight * 0.5 + inner.top],
radius = Math.min(innerWidth, innerHeight) * 0.5,
axes = me.getAxes(), axis,
series = me.getSeries(), seriesItem,
i, ln;
me.setMainRegion(region);
for (i = 0, ln = series.length; i < ln; i++) {
seriesItem = series[i];
me.doSetSurfaceRegion(seriesItem.getSurface(), region);
me.doSetSurfaceRegion(seriesItem.getOverlaySurface(), fullRegion);
}
me.doSetSurfaceRegion(me.getSurface(), fullRegion);
for (i = 0, ln = me.surfaceMap.grid && me.surfaceMap.grid.length; i < ln; i++) {
me.doSetSurfaceRegion(me.surfaceMap.grid[i], fullRegion);
}
for (i = 0, ln = axes.length; i < ln; i++) {
axis = axes[i];
me.doSetSurfaceRegion(axis.getSurface(), fullRegion);
}
me.setRadius(radius);
me.setCenter(center);
me.redraw();
} finally {
this.resizing--;
}
},
getEventXY: function (e) {
e = (e.changedTouches && e.changedTouches[0]) || e.event || e.browserEvent || e;
var me = this,
xy = me.element.getXY(),
padding = me.getInsetPadding();
return [e.pageX - xy[0] - padding.left, e.pageY - xy[1] - padding.top];
},
redraw: function () {
var me = this,
axes = me.getAxes(), axis,
series = me.getSeries(), seriesItem,
i, ln;
for (i = 0, ln = axes.length; i < ln; i++) {
axis = axes[i];
axis.getSprites();
}
for (i = 0, ln = series.length; i < ln; i++) {
seriesItem = series[i];
seriesItem.getSprites();
}
me.renderFrame();
me.callSuper(arguments);
}
});
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment