Commit c083753f authored by Alexey Golubev's avatar Alexey Golubev

Merge branch 'hotfix/v4.1.2'

parents 8c713949 2ea15343

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

......@@ -8,6 +8,7 @@ apps/presentationeditor/embed/resources/less/node_modules
apps/spreadsheeteditor/embed/resources/less/node_modules
apps/documenteditor/mobile/resources/sass/.sass-cache
apps/spreadsheeteditor/mobile/resources/sass/.sass-cache
apps/presentationeditor/mobile/resources/sass/.sass-cache
# test documents
......
[![License](https://img.shields.io/badge/License-GNU%20AGPL%20V3-green.svg?style=flat)](http://www.gnu.org/licenses/agpl-3.0.ru.html) ![Release](https://img.shields.io/badge/Release-v4.1.1-blue.svg?style=flat)
[![License](https://img.shields.io/badge/License-GNU%20AGPL%20V3-green.svg?style=flat)](http://www.gnu.org/licenses/agpl-3.0.ru.html) ![Release](https://img.shields.io/badge/Release-v4.1.2-blue.svg?style=flat)
## web-apps
......
......@@ -201,7 +201,7 @@ define([
if (typeof value == 'object') {
_.each(value, function(obj) {
if (typeof obj === 'string')
changetext += (' ' + obj);
changetext += (' ' + Common.Utils.String.htmlEncode(obj));
else {
switch (obj) {
case 0:
......@@ -220,7 +220,7 @@ define([
}
})
} else if (typeof value === 'string') {
changetext += (' ' + value);
changetext += (' ' + Common.Utils.String.htmlEncode(value));
}
break;
case Asc.c_oAscRevisionsChangeType.TextRem:
......@@ -228,7 +228,7 @@ define([
if (typeof value == 'object') {
_.each(value, function(obj) {
if (typeof obj === 'string')
changetext += (' ' + obj);
changetext += (' ' + Common.Utils.String.htmlEncode(obj));
else {
switch (obj) {
case 0:
......@@ -247,7 +247,7 @@ define([
}
})
} else if (typeof value === 'string') {
changetext += (' ' + value);
changetext += (' ' + Common.Utils.String.htmlEncode(value));
}
break;
case Asc.c_oAscRevisionsChangeType.ParaAdd:
......
<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 || {}))
});
......@@ -104,15 +104,21 @@ define([
this.$window.find('.tool').hide();
this.$window.find('.dlg-btn').on('click', _.bind(this.onBtnClick, this));
if (this.type == Asc.c_oAscAdvancedOptionsID.DRM) {
var me = this;
me.inputPwd = new Common.UI.InputField({
this.inputPwd = new Common.UI.InputField({
el: $('#id-password-txt'),
type: 'password',
allowBlank: false,
validateOnBlur: false
});
} else
this.$window.find('input').on('keypress', _.bind(this.onKeyPress, this));
} else {
var me = this;
this.initCodePages();
this.onPrimary = function() {
me.onBtnClick();
return false;
};
}
}
},
......@@ -138,9 +144,9 @@ define([
this.close();
},
onPrimary: function() {
this.onBtnClick();
return false;
onKeyPress: function(event) {
if (event.keyCode == Common.UI.Keys.RETURN)
this.onBtnClick();
},
initCodePages: function () {
......
......@@ -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;
......
......@@ -63,39 +63,5 @@ Ext.define('Common.component.SettingsList', {
}
}
)
},
//
// Workaround Sencha Touch bug
// See https://sencha.jira.com/browse/TOUCH-3718
//
findGroupHeaderIndices: function() {
var me = this,
store = me.getStore(),
storeLn = store.getCount(),
groups = store.getGroups(),
groupLn = groups.length,
headerIndices = me.headerIndices = {},
footerIndices = me.footerIndices = {},
i, previousIndex, firstGroupedRecord, storeIndex;
me.groups = groups;
for (i = 0; i < groupLn; i++) {
firstGroupedRecord = groups[i].children[0];
storeIndex = store.indexOf(firstGroupedRecord);
headerIndices[storeIndex] = true;
previousIndex = storeIndex - 1;
if (previousIndex >= 0) {
footerIndices[previousIndex] = true;
}
}
footerIndices[storeLn - 1] = true;
return headerIndices;
}
});
\ No newline at end of file
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
This is a custom SVG font generated by IcoMoon.
<iconset grid="16"></iconset>
</metadata>
<defs>
<font id="icomoon" horiz-adv-x="512" >
<font-face units-per-em="512" ascent="480" descent="-32" />
<missing-glyph horiz-adv-x="512" />
<glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
<glyph unicode="&#x21;" d="M 236.48-16.76L 175.652,48.016L 357.208,223.24L 175.652,406.38L 236.48,463.236L 476.48,223.24 z" />
<glyph unicode="&#x22;" d="M 203.884,223.992L 410.68,21.364L 357.32-32L 101.32,223.992L 357.32,480L 409.596,427.74 z" />
<glyph unicode="&#x20;" horiz-adv-x="256" />
</font></defs></svg>
\ No newline at end of file
This diff is collapsed.
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="icomoon" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" d="" horiz-adv-x="512" />
<glyph unicode="&#x61;" d="M877.714 256v-73.143q0-14.857-10.857-25.714t-25.714-10.857h-804.571q-14.857 0-25.714 10.857t-10.857 25.714v73.143q0 14.857 10.857 25.714t25.714 10.857h804.571q14.857 0 25.714-10.857t10.857-25.714zM877.714 548.571v-73.143q0-14.857-10.857-25.714t-25.714-10.857h-804.571q-14.857 0-25.714 10.857t-10.857 25.714v73.143q0 14.857 10.857 25.714t25.714 10.857h804.571q14.857 0 25.714-10.857t10.857-25.714zM877.714 841.143v-73.143q0-14.857-10.857-25.714t-25.714-10.857h-804.571q-14.857 0-25.714 10.857t-10.857 25.714v73.143q0 14.857 10.857 25.714t25.714 10.857h804.571q14.857 0 25.714-10.857t10.857-25.714z" horiz-adv-x="878" />
<glyph unicode="&#x62;" d="M731.429 475.429v73.143q0 14.857-10.857 25.714t-25.714 10.857h-286.857l108 108q10.857 10.857 10.857 25.714t-10.857 25.714l-52 52q-10.286 10.286-25.714 10.286t-25.714-10.286l-258.857-258.857q-10.286-10.286-10.286-25.714t10.286-25.714l258.857-258.857q10.286-10.286 25.714-10.286t25.714 10.286l52 52q10.286 10.286 10.286 25.714t-10.286 25.714l-108 108h286.857q14.857 0 25.714 10.857t10.857 25.714zM877.714 512q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286 58.857 220.286 159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" horiz-adv-x="878" />
<glyph unicode="&#x63;" d="M409.714 226.857l259.429 259.429q10.857 10.857 10.857 25.714t-10.857 25.714l-259.429 259.429q-10.857 10.857-25.714 10.857t-25.714-10.857l-58.286-58.286q-10.857-10.857-10.857-25.714t10.857-25.714l175.429-175.429-175.429-175.429q-10.857-10.857-10.857-25.714t10.857-25.714l58.286-58.286q10.857-10.857 25.714-10.857t25.714 10.857zM877.714 512q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286 58.857 220.286 159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" horiz-adv-x="878" />
</font></defs></svg>
\ No newline at end of file
......@@ -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;
......
......@@ -17,7 +17,7 @@
position: absolute;
width: $anchor-width;
height: $anchor-height;
-webkit-mask: 0 0 theme_image($theme-name, "tip_top.png") no-repeat;
//-webkit-mask: 0 0 theme_image($theme-name, "tip_top.png") no-repeat;
-webkit-mask-size: $anchor-width $anchor-height;
@include background-gradient($base-color, color_stops(lighten($base-color, 15%), lighten($base-color, 13%)));
top: 1px !important;
......@@ -38,7 +38,7 @@
position: absolute;
width: $anchor-width;
height: $anchor-height + .1em;
-webkit-mask: 0 0 theme_image($theme-name, "tip_bottom.png") no-repeat;
//-webkit-mask: 0 0 theme_image($theme-name, "tip_bottom.png") no-repeat;
-webkit-mask-size: $anchor-width $anchor-height;
@include background-gradient($base-color, color_stops($base-color, darken($base-color, 5%)));
top: -1px !important;
......@@ -104,6 +104,19 @@
}
.round {
@include border-radius($panel-border-radius);
@include border-radius($form-fieldset-radius);
}
// Hide group header
.x-list-header-wrap {
@include border-top-radius($form-fieldset-radius !important);
.x-innerhtml {
@include border-top-radius($form-fieldset-radius !important);
}
}
.x-list-header {
display: none;
}
}
\ No newline at end of file
......@@ -9,6 +9,10 @@ $shadow-width: .065em; // Space between tip and its shadow
$toolbar-border-color: darken($color, 50%);
$toolbar-button-color: darken($color, 5%);
.x-toolbar {
background-color: transparent;
}
.x-toolbar-#{$ui-label} {
@if $ui-label == search {
@include background-gradient($color, color_stops($color, lighten($color, 11%) 20%, lighten($color, 11%)));
......
......@@ -963,13 +963,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();
......
......@@ -442,14 +442,21 @@ define([
this.paragraphControls.push(this.btnMultilevels);
this.textOnlyControls.push(this.btnMultilevels);
var clone = function(source) {
var obj = {};
for (var prop in source)
obj[prop] = (typeof(source[prop])=='object') ? clone(source[prop]) : source[prop];
return obj;
};
this.mnuMarkersPicker = {
conf: {index:0},
selectByIndex: function (idx) {
this.conf.index = idx;
}
};
this.mnuNumbersPicker = _.clone(this.mnuMarkersPicker);
this.mnuMultilevelPicker = _.clone(this.mnuMarkersPicker);
this.mnuNumbersPicker = clone(this.mnuMarkersPicker);
this.mnuMultilevelPicker = clone(this.mnuMarkersPicker);
this.btnInsertTable = new Common.UI.Button({
id : 'id-toolbar-btn-inserttable',
......@@ -546,8 +553,8 @@ define([
this.conf.disabled = val;
}
};
this.mnuPageNumCurrentPos = _.clone(this.mnuPageNumberPosPicker);
this.mnuInsertPageNum = _.clone(this.mnuPageNumberPosPicker);
this.mnuPageNumCurrentPos = clone(this.mnuPageNumberPosPicker);
this.mnuInsertPageNum = clone(this.mnuPageNumberPosPicker);
this.paragraphControls.push(this.mnuPageNumCurrentPos);
this.toolbarControls.push(this.btnEditHeader);
......@@ -747,7 +754,7 @@ define([
setChecked: function(val) { this.conf.checked = val;},
isChecked: function () { return this.conf.checked; }
};
this.btnFitWidth = _.clone(this.btnFitPage);
this.btnFitWidth = clone(this.btnFitPage);
this.mnuZoom = {options: {value: 100}};
this.btnAdvSettings = new Common.UI.Button({
......
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",
......@@ -225,6 +226,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...",
......@@ -232,6 +234,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...",
......@@ -249,6 +252,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",
......@@ -276,10 +280,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}%",
......@@ -628,7 +631,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",
......@@ -918,6 +921,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",
......@@ -1241,8 +1246,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",
......@@ -1422,8 +1427,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",
......@@ -1452,7 +1457,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.
......@@ -209,6 +209,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));
......
......@@ -33,18 +33,36 @@ $outline-icon-size : 74px;
$outline-icon-image-width : 148px;
$outline-icon-image-height : 222px;
@import 'sencha-touch/default/all';
@include sencha-panel;
@include sencha-buttons;
@include sencha-toolbar;
@include sencha-toolbar-forms;
@include sencha-indexbar;
@include sencha-list;
@include sencha-layout;
@include sencha-form;
@include sencha-msgbox;
@include sencha-loading-spinner;
@import 'sencha-touch/default';
@import 'sencha-touch/default/src/Class';
@import 'sencha-touch/default/src/Button';
@import 'sencha-touch/default/src/Panel';
@import 'sencha-touch/default/src/Sheet';
@import 'sencha-touch/default/src/MessageBox';
@import 'sencha-touch/default/src/Toolbar';
@import 'sencha-touch/default/src/Toast';
@import 'sencha-touch/default/src/Menu';
//@import 'sencha-touch/default/src/carousel/Carousel';
@import 'sencha-touch/default/src/form/Panel';
@import 'sencha-touch/default/src/form/FieldSet';
@import 'sencha-touch/default/src/field/Field';
@import 'sencha-touch/default/src/field/Checkbox';
@import 'sencha-touch/default/src/field/Radio';
@import 'sencha-touch/default/src/field/Search';
@import 'sencha-touch/default/src/field/Select';
//@import 'sencha-touch/default/src/field/Slider';
@import 'sencha-touch/default/src/field/Spinner';
//@import 'sencha-touch/default/src/field/TextArea';
//@import 'sencha-touch/default/src/dataview/IndexBar';
@import 'sencha-touch/default/src/dataview/List';
@import 'sencha-touch/default/src/picker/Picker';
//@import 'sencha-touch/default/src/plugin/ListPaging';
//@import 'sencha-touch/default/src/plugin/PullRefresh';
//@import 'sencha-touch/default/src/slider/Slider';
@import 'sencha-touch/default/src/slider/Toggle';
//@import 'sencha-touch/default/src/tab/Panel';
//@import 'sencha-touch/default/src/grid/Grid';
@import 'common-buttons';
@import 'common-dataview';
......
......@@ -2,7 +2,7 @@
dir = File.dirname(__FILE__)
# Load the sencha-touch framework automatically.
load File.join(dir, '..', '..', '..', '..', '..', '3rdparty', 'touch', 'resources', 'themes')
load File.join(dir, '..', '..', '..', '..', '..', 'vendor', 'touch', 'resources', 'themes')
# Add include path for command styles
add_import_path File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'sass')
......
......@@ -2,7 +2,7 @@
dir = File.dirname(__FILE__)
# Load the sencha-touch framework automatically.
load File.join(dir, '..', '..', '..', '..', '..', '3rdparty', 'touch', 'resources', 'themes')
load File.join(dir, '..', '..', '..', '..', '..', 'vendor', 'touch', 'resources', 'themes')
# Add include path for command styles
add_import_path File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'sass')
......@@ -10,5 +10,6 @@ add_import_path File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', '
# Compass configurations
sass_path = dir
css_path = File.join(dir, "..", "css")
fonts_path = File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'fonts')
environment = :production
output_style = :compressed
\ No newline at end of file
......@@ -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.",
......@@ -138,6 +139,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...",
......@@ -145,6 +147,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...",
......@@ -161,6 +164,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",
......@@ -222,10 +226,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.",
......@@ -240,7 +243,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",
......@@ -380,6 +383,7 @@
"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 to Width",
"PE.Views.FileMenuPanels.Settings.txtInch": "Inch",
"PE.Views.FileMenuPanels.Settings.txtInput": "Alternate Input",
"PE.Views.FileMenuPanels.Settings.txtLast": "View Last",
......@@ -648,7 +652,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.",
......@@ -777,7 +781,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",
......@@ -788,7 +792,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));
},
......
......@@ -13,23 +13,42 @@ $icons-default-size : 24px;
$icons-default-image-width : 72px;
$icons-default-image-height : 144px;
@import 'sencha-touch/default/all';
@import 'sencha-touch/default';
@import 'sencha-touch/default/src/Class';
@import 'sencha-touch/default/src/Button';
//@import 'sencha-touch/default/src/Panel';
@import 'sencha-touch/default/src/Sheet';
@import 'sencha-touch/default/src/MessageBox';
@import 'sencha-touch/default/src/Toolbar';
//@import 'sencha-touch/default/src/Toast';
//@import 'sencha-touch/default/src/Menu';
//@import 'sencha-touch/default/src/carousel/Carousel';
@import 'sencha-touch/default/src/form/Panel';
//@import 'sencha-touch/default/src/form/FieldSet';
//@import 'sencha-touch/default/src/field/Field';
//@import 'sencha-touch/default/src/field/Checkbox';
//@import 'sencha-touch/default/src/field/Radio';
//@import 'sencha-touch/default/src/field/Search';
//@import 'sencha-touch/default/src/field/Select';
//@import 'sencha-touch/default/src/field/Slider';
//@import 'sencha-touch/default/src/field/Spinner';
//@import 'sencha-touch/default/src/field/TextArea';
//@import 'sencha-touch/default/src/dataview/IndexBar';
//@import 'sencha-touch/default/src/dataview/List';
//@import 'sencha-touch/default/src/picker/Picker';
//@import 'sencha-touch/default/src/plugin/ListPaging';
//@import 'sencha-touch/default/src/plugin/PullRefresh';
//@import 'sencha-touch/default/src/slider/Slider';
//@import 'sencha-touch/default/src/slider/Toggle';
//@import 'sencha-touch/default/src/tab/Panel';
//@import 'sencha-touch/default/src/grid/Grid';
@import 'common-buttons';
@import 'common-toolbar';
@import 'application-mixins';
@include sencha-panel;
@include sencha-buttons;
@include sencha-toolbar;
@include sencha-toolbar-forms;
@include sencha-indexbar;
@include sencha-layout;
@include sencha-form;
@include sencha-msgbox;
@include sencha-loading-spinner;
@include common-toolbar-ui('edit', $base-color);
@include common-toolbar-ui('search', $base-color);
......
......@@ -10,5 +10,6 @@ add_import_path File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', '
# Compass configurations
sass_path = dir
css_path = File.join(dir, "..", "css")
environment = :development
output_style = :expanded
\ No newline at end of file
fonts_path = File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'fonts')
environment = :production
output_style = :compressed
\ No newline at end of file
......@@ -10,5 +10,6 @@ add_import_path File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', '
# Compass configurations
sass_path = dir
css_path = File.join(dir, "..", "css")
fonts_path = File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'fonts')
environment = :production
output_style = :compressed
\ No newline at end of file
......@@ -759,9 +759,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",
......@@ -181,6 +182,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",
......@@ -189,6 +191,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...",
......@@ -207,6 +210,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",
......@@ -232,10 +236,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",
......@@ -303,7 +306,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",
......@@ -320,6 +323,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",
......@@ -333,6 +337,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",
......@@ -353,6 +358,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",
......@@ -383,6 +389,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",
......@@ -402,6 +409,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",
......@@ -414,11 +422,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));
},
......
......@@ -18,18 +18,36 @@ $icons-default-size : 24px;
$icons-default-image-width : 72px;
$icons-default-image-height : 624px;
@import 'sencha-touch/default/all';
@include sencha-panel;
@include sencha-buttons;
@include sencha-toolbar;
@include sencha-toolbar-forms;
@include sencha-indexbar;
@include sencha-list;
@include sencha-layout;
@include sencha-form;
@include sencha-msgbox;
@include sencha-loading-spinner;
@import 'sencha-touch/default';
@import 'sencha-touch/default/src/Class';
@import 'sencha-touch/default/src/Button';
@import 'sencha-touch/default/src/Panel';
@import 'sencha-touch/default/src/Sheet';
@import 'sencha-touch/default/src/MessageBox';
@import 'sencha-touch/default/src/Toolbar';
@import 'sencha-touch/default/src/Toast';
@import 'sencha-touch/default/src/Menu';
//@import 'sencha-touch/default/src/carousel/Carousel';
@import 'sencha-touch/default/src/form/Panel';
@import 'sencha-touch/default/src/form/FieldSet';
@import 'sencha-touch/default/src/field/Field';
@import 'sencha-touch/default/src/field/Checkbox';
@import 'sencha-touch/default/src/field/Radio';
@import 'sencha-touch/default/src/field/Search';
@import 'sencha-touch/default/src/field/Select';
//@import 'sencha-touch/default/src/field/Slider';
//@import 'sencha-touch/default/src/field/Spinner';
//@import 'sencha-touch/default/src/field/TextArea';
//@import 'sencha-touch/default/src/dataview/IndexBar';
@import 'sencha-touch/default/src/dataview/List';
//@import 'sencha-touch/default/src/picker/Picker';
//@import 'sencha-touch/default/src/plugin/ListPaging';
//@import 'sencha-touch/default/src/plugin/PullRefresh';
//@import 'sencha-touch/default/src/slider/Slider';
@import 'sencha-touch/default/src/slider/Toggle';
//@import 'sencha-touch/default/src/tab/Panel';
//@import 'sencha-touch/default/src/grid/Grid';
@import 'common-buttons';
@import 'common-dataview';
......@@ -48,32 +66,32 @@ $icons-default-image-height : 624px;
@include common-toolbar-ui('edit', $base-color);
@include common-toolbar-ui('search', $base-color);
@include application-icon-normal('save', 0);
@include application-icon-normal('undo', 1);
//@include application-icon-normal('save', 0);
//@include application-icon-normal('undo', 1);
@include application-icon-normal('share', 2);
@include application-icon-normal('font-style', 3);
@include application-icon-normal('font-color', 4);
@include application-icon-normal('bold', 5);
@include application-icon-normal('italic', 6);
@include application-icon-normal('underline', 7);
@include application-icon-normal('align-left', 8);
@include application-icon-normal('align-center', 9);
@include application-icon-normal('align-right', 10);
@include application-icon-normal('align-fill', 11);
//@include application-icon-normal('font-style', 3);
//@include application-icon-normal('font-color', 4);
//@include application-icon-normal('bold', 5);
//@include application-icon-normal('italic', 6);
//@include application-icon-normal('underline', 7);
//@include application-icon-normal('align-left', 8);
//@include application-icon-normal('align-center', 9);
//@include application-icon-normal('align-right', 10);
//@include application-icon-normal('align-fill', 11);
@include application-icon-normal('pages', 12);
@include application-icon-normal('search-prev', 13);
@include application-icon-normal('search-next', 14);
@include application-icon-normal('insert', 15);
//@include application-icon-normal('insert', 15);
@include application-icon-normal('search', 16);
@include application-icon-normal('fullscreen', 17);
@include application-icon-normal('spinner-down', 18);
@include application-icon-normal('spinner-up', 19);
@include application-icon-normal('table', 20);
@include application-icon-normal('picture', 21);
@include application-icon-normal('insert-row', 22);
@include application-icon-normal('insert-column', 23);
@include application-icon-normal('textbigger', 24);
@include application-icon-normal('textless', 25);
//@include application-icon-normal('spinner-down', 18);
//@include application-icon-normal('spinner-up', 19);
//@include application-icon-normal('table', 20);
//@include application-icon-normal('picture', 21);
//@include application-icon-normal('insert-row', 22);
//@include application-icon-normal('insert-column', 23);
//@include application-icon-normal('textbigger', 24);
//@include application-icon-normal('textless', 25);
@include common-button-ui('base', $base-color);
......
......@@ -4,8 +4,12 @@ dir = File.dirname(__FILE__)
# Load the sencha-touch framework automatically.
load File.join(dir, '..', '..', '..', '..', '..', 'vendor', 'touch', 'resources', 'themes')
# Add include path for command styles
add_import_path File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'sass')
# Compass configurations
sass_path = dir
css_path = File.join(dir, "..", "css")
fonts_path = File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'fonts')
environment = :production
output_style = :compressed
\ No newline at end of file
<!DOCTYPE html>
<head>
<style>
h1 {font-family: Calibri; font-size: 18pt;}
h2 {font-family: Calibri; font-size: 14pt;}
h3 {font-family: Calibri; font-size: 12pt;}
body {font-family: Calibri; font-size: 11pt;}
</style>
</head>
<body style="width: 700px">
<a href="http://sencha.com"><span style="left: 50px"></span><img src="SenchaLogo.png" width="110" height="40" /></a>
<h1>Sencha Touch Setup Guide</h1>
<p><b>Topics:</b></p>
<ul>
<li><a href="Intro">Introduction</a></li>
<li><a href="Install">Installing Sencha Touch</a></li>
<li><a href="Info">Sencha Touch Information</a></li>
</ul>
<a name="Intro"></a>
<h2>Introduction</h2>
<p>Sencha Touch, a high-performance HTML5 mobile application framework, is the cornerstone
of the Sencha HTML5 platform. Built for enabling world-class user experiences,
Sencha Touch is the only framework that enables developers to build powerful apps
that work on iOS, Android, BlackBerry, Windows Phone, and Internet Explorer 10.
<br>Learn more at <a href="http://docs.sencha.com/touch/#!/guide/whats_new">What's New</a>.
<br>Learn about new APIs in the "New in this version"
section near the end of the <a href="http://docs.sencha.com/touch/#!/api">API page</a>.</p>
<a name="Install"></a>
<h2>Installing Sencha Touch</h2>
<p>To install Sencha Touch:</p>
<ol>
<li>Download <a href="http://www.sencha.com/products/sencha-cmd/download">Sencha Cmd</a>.
Sencha Cmd enables you to publish, package, and simulate an application, as well as to upgrade Sencha software.
Sencha Cmd also installs Apache Ant, Compass, and Sass.</li>
<li>Download <a href="http://www.ruby-lang.org/en/downloads/">Ruby</a>
<ul>
<li><b>Mac OS</b>: Ruby is pre-installed. You can verify
it with the <b>ruby -v</b> command.</li>
<li><b>Windows</b> Download the open source <a href="http://www.7-zip.org">7-Zip</a> archiver.
Download Ruby (any version) from <a href="http://rubyinstaller.org/downloads/">rubyinstaller.org</a>.
Set the Path environment variable to point to the directory in which you unzip the installer file.</li>
<li><b>Ubuntu</b>: Use <b>sudo apt-get install ruby2.0.0</b> to download and install Ruby.</li>
</ul>
</li>
<li>Start your web server.
If using the Sencha Cmd web server, change directory to where you want to serve
your application, open a new command line window and start the server with the
<b>sencha&nbsp;web&nbsp;start</b> command. You can stop the server by typing
CTRL+c or opening another command line and typing the <b>sencha&nbsp;web&nbsp;stop</b> command.
You can access the Sencha Cmd web server using
the <code>http://localhost:1841/&lt;app_name&gt;</code> URL.</li>
<li>If you are using Windows and running the IIS web server, add "application/x-json"
as a MIME type; otherwise, IIS returns the JSON file with an error when you preview
your project. In Windows, enable IIS from the add/remove programs or programs and features dialog
(add/remove windows features), you can also add extra functionality by downloading the web platform
toolkit to make config of IIS features extra simple.
For information on adding this MIME type, see this
<a href="http://stackoverflow.com/a/1121114/273985">Stackoverflow article</a>.</li>
<li>Use a modern web browser such as
<a href="https://www.google.com/intl/en/chrome/browser">Chrome</a>
or <a href="http://www.apple.com/safari/">Safari</a>.</li>
</ol>
<a name="Info"></a>
<h2>Sencha Touch Information</h2>
<ul>
<li><a href="http://sencha.com/">Sencha.com</a></li>
<li><a href="http://docs.sencha.com/">Sencha Documentation</a></li>
<li><a href="release-notes.html">Sencha Touch Release Notes</a></li>
<li><a href="examples/">Sencha Touch Examples</a></li>
<li><a href="http://www.sencha.com/products/touch-bundle/">Sencha Touch Bundle</a></li>
<li><a href="http://www.sencha.com/training/">Sencha Training</a></li>
<li><a href="http://www.sencha.com/support/">Sencha Support</a></li>
</ul>
</body>
</html>
......@@ -6,12 +6,7 @@
<title>Welcome to Sencha Touch 2</title>
<script type="text/javascript">
var mobile = (/iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));
if (mobile) {
window.location = "examples/";
} else {
window.location = "docs/";
}
window.location = "examples/";
</script>
</head>
<body></body>
......
Sencha Touch & Sencha Touch Charts - JavaScript Libraries
Copyright (c) 2010-2012, Sencha, Inc.
Copyright (c) 2010-2015, Sencha, Inc.
All rights reserved.
licensing@sencha.com
......
/**
* Sencha Blink - Development
* @author Jacky Nguyen <jacky@sencha.com>
*/
(function() {
var head = document.head;
function write(content) {
document.write(content);
}
function addMeta(name, content) {
var meta = document.createElement('meta');
meta.setAttribute('name', name);
meta.setAttribute('content', content);
head.appendChild(meta);
}
var xhr = new XMLHttpRequest();
xhr.open('GET', 'app.json', false);
xhr.send(null);
var options = eval("(" + xhr.responseText + ")"),
scripts = options.js || [],
styleSheets = options.css || [],
i, ln, path, platform, theme, exclude;
if(options.platform && options.platforms && options.platforms[options.platform] && options.platforms[options.platform].js) {
scripts = options.platforms[options.platform].js.concat(scripts);
}
if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
var msViewportStyle = document.createElement("style");
msViewportStyle.appendChild(
document.createTextNode(
"@media screen and (orientation: portrait) {" +
"@-ms-viewport {width: 320px !important;}" +
"}" +
"@media screen and (orientation: landscape) {" +
"@-ms-viewport {width: 560px !important;}" +
"}"
)
);
document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
}
addMeta('viewport', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no');
addMeta('apple-mobile-web-app-capable', 'yes');
addMeta('apple-touch-fullscreen', 'yes');
if (!window.Ext) {
window.Ext = {};
}
Ext.microloaded = true;
var filterPlatform = window.Ext.filterPlatform = function(platform) {
var profileMatch = false,
ua = navigator.userAgent,
j, jln;
platform = [].concat(platform);
function isPhone(ua) {
var isMobile = /Mobile(\/|\s)/.test(ua);
// Either:
// - iOS but not iPad
// - Android 2
// - Android with "Mobile" in the UA
return /(iPhone|iPod)/.test(ua) ||
(!/(Silk)/.test(ua) && (/(Android)/.test(ua) && (/(Android 2)/.test(ua) || isMobile))) ||
(/(BlackBerry|BB)/.test(ua) && isMobile) ||
/(Windows Phone)/.test(ua);
}
function isTablet(ua) {
return !isPhone(ua) && (/iPad/.test(ua) || /Android|Silk/.test(ua) || /(RIM Tablet OS)/.test(ua) ||
(/MSIE 10/.test(ua) && /; Touch/.test(ua)));
}
// Check if the ?platform parameter is set in the URL
var paramsString = window.location.search.substr(1),
paramsArray = paramsString.split("&"),
params = {},
testPlatform, i;
for (i = 0; i < paramsArray.length; i++) {
var tmpArray = paramsArray[i].split("=");
params[tmpArray[0]] = tmpArray[1];
}
testPlatform = params.platform;
if (testPlatform) {
return platform.indexOf(testPlatform) != -1;
}
for (j = 0, jln = platform.length; j < jln; j++) {
switch (platform[j]) {
case 'phone':
profileMatch = isPhone(ua);
break;
case 'tablet':
profileMatch = isTablet(ua);
break;
case 'desktop':
profileMatch = !isPhone(ua) && !isTablet(ua);
break;
case 'ios':
profileMatch = /(iPad|iPhone|iPod)/.test(ua);
break;
case 'android':
profileMatch = /(Android|Silk)/.test(ua);
break;
case 'blackberry':
profileMatch = /(BlackBerry|BB)/.test(ua);
break;
case 'safari':
profileMatch = /Safari/.test(ua) && !(/(BlackBerry|BB)/.test(ua));
break;
case 'chrome':
profileMatch = /Chrome/.test(ua);
break;
case 'ie10':
profileMatch = /MSIE 10/.test(ua);
break;
case 'windows':
profileMatch = /MSIE 10/.test(ua) || /Trident/.test(ua);
break;
case 'tizen':
profileMatch = /Tizen/.test(ua);
break;
case 'firefox':
profileMatch = /Firefox/.test(ua);
}
if (profileMatch) {
return true;
}
}
return false;
};
for (i = 0,ln = styleSheets.length; i < ln; i++) {
path = styleSheets[i];
if (typeof path != 'string') {
platform = path.platform;
exclude = path.exclude;
theme = path.theme;
path = path.path;
}
if (platform) {
if (!filterPlatform(platform) || filterPlatform(exclude)) {
continue;
}
Ext.theme = {
name: theme || 'Default'
};
}
write('<link rel="stylesheet" href="'+path+'">');
}
for (i = 0,ln = scripts.length; i < ln; i++) {
path = scripts[i];
if (typeof path != 'string') {
platform = path.platform;
exclude = path.exclude;
path = path.path;
}
if (platform) {
if (!filterPlatform(platform) || filterPlatform(exclude)) {
continue;
}
}
write('<script src="'+path+'"></'+'script>');
}
})();
This diff is collapsed.
/**
* Sencha Blink - Testing
* @author Jacky Nguyen <jacky@sencha.com>
*/
(function(global) {
var head = global.document.head,
Ext = global.Ext;
if (typeof Ext == 'undefined') {
global.Ext = Ext = {};
}
function write(content) {
document.write(content);
}
function addMeta(name, content) {
var meta = document.createElement('meta');
meta.setAttribute('name', name);
meta.setAttribute('content', content);
head.appendChild(meta);
}
Ext.blink = function(options) {
var scripts = options.js || [],
styleSheets = options.css || [],
i, ln, path, platform, theme;
if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
var msViewportStyle = document.createElement("style");
msViewportStyle.appendChild(
document.createTextNode(
"@media screen and (orientation: portrait) {" +
"@-ms-viewport {width: 320px !important;}" +
"}" +
"@media screen and (orientation: landscape) {" +
"@-ms-viewport {width: 560px !important;}" +
"}"
)
);
document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
}
addMeta('viewport', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no');
addMeta('apple-mobile-web-app-capable', 'yes');
addMeta('apple-touch-fullscreen', 'yes');
Ext.microloaded = true;
var filterPlatform = window.Ext.filterPlatform = function(platform) {
var profileMatch = false,
ua = navigator.userAgent,
j, jln, exclude;
platform = [].concat(platform);
function isPhone(ua) {
var isMobile = /Mobile(\/|\s)/.test(ua);
// Either:
// - iOS but not iPad
// - Android 2
// - Android with "Mobile" in the UA
return /(iPhone|iPod)/.test(ua) ||
(!/(Silk)/.test(ua) && (/(Android)/.test(ua) && (/(Android 2)/.test(ua) || isMobile))) ||
(/(BlackBerry|BB)/.test(ua) && isMobile) ||
/(Windows Phone)/.test(ua);
}
function isTablet(ua) {
return !isPhone(ua) && (/iPad/.test(ua) || /Android|Silk/.test(ua) || /(RIM Tablet OS)/.test(ua) ||
(/MSIE 10/.test(ua) && /; Touch/.test(ua)));
}
// Check if the ?platform parameter is set in the URL
var paramsString = window.location.search.substr(1),
paramsArray = paramsString.split("&"),
params = {},
testPlatform, i;
for (i = 0; i < paramsArray.length; i++) {
var tmpArray = paramsArray[i].split("=");
params[tmpArray[0]] = tmpArray[1];
}
testPlatform = params.platform;
if (testPlatform) {
return platform.indexOf(testPlatform) != -1;
}
for (j = 0, jln = platform.length; j < jln; j++) {
switch (platform[j]) {
case 'phone':
profileMatch = isPhone(ua);
break;
case 'tablet':
profileMatch = isTablet(ua);
break;
case 'desktop':
profileMatch = !isPhone(ua) && !isTablet(ua);
break;
case 'ios':
profileMatch = /(iPad|iPhone|iPod)/.test(ua);
break;
case 'android':
profileMatch = /(Android|Silk)/.test(ua);
break;
case 'blackberry':
profileMatch = /(BlackBerry|BB)/.test(ua);
break;
case 'safari':
profileMatch = /Safari/.test(ua) && !(/(BlackBerry|BB)/.test(ua));
break;
case 'chrome':
profileMatch = /Chrome/.test(ua);
break;
case 'ie10':
profileMatch = /MSIE 10/.test(ua);
break;
case 'windows':
profileMatch = /MSIE 10/.test(ua) || /Trident/.test(ua);
break;
case 'tizen':
profileMatch = /Tizen/.test(ua);
break;
case 'firefox':
profileMatch = /Firefox/.test(ua);
}
if (profileMatch) {
return true;
}
}
return false;
};
for (i = 0,ln = styleSheets.length; i < ln; i++) {
path = styleSheets[i];
if (typeof path != 'string') {
platform = path.platform;
exclude = path.exclude;
theme = path.theme;
path = path.path;
}
if (platform) {
if (!filterPlatform(platform) || filterPlatform(exclude)) {
continue;
}
Ext.theme = {
name: theme || 'Default'
};
}
write('<link rel="stylesheet" href="'+path+'">');
}
for (i = 0,ln = scripts.length; i < ln; i++) {
path = scripts[i];
if (typeof path != 'string') {
platform = path.platform;
exclude = path.exclude;
path = path.path;
}
if (platform) {
if (!filterPlatform(platform) || filterPlatform(exclude)) {
continue;
}
}
write('<script src="'+path+'"></'+'script>');
}
}
})(this);
\ No newline at end of file
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 source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
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.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
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.
This source diff could not be displayed because it is too large. You can view the blob instead.
// Let's start with the basics
$base-color: #333;
$active-color: #ff8100;
$base-gradient: 'flat';
// Buttons
$button-gradient: 'bevel';
// Lists
$list-bg-color: #eee;
$list-color: #333;
$list-pressed-color: #ddd;
$list-active-gradient: 'recessed';
$list-header-bg-color: #999;
$list-header-gradient: 'bevel';
// Tabs
$tabs_dark_color: #000;
@import 'sencha-touch/default/all';
@include sencha-panel;
@include sencha-buttons;
@include sencha-sheet;
@include sencha-picker;
@include sencha-tabs;
@include sencha-toolbar;
@include sencha-toolbar-forms;
@include sencha-carousel;
@include sencha-indexbar;
@include sencha-list;
@include sencha-list-paging;
@include sencha-list-pullrefresh;
@include sencha-layout;
@include sencha-form;
@include sencha-msgbox;
@include sencha-loading-spinner;
@include sencha-draw;
@include sencha-charts;
// Let's start with the basics
$base-color: #7c92ae;
$base-gradient: 'glossy';
// Lists
$list-active-gradient: 'bevel';
$list-header-bg-color: transparentize(saturate($base-color, 10%), .25);
$list-header-gradient: 'matte';
// Tabs
$tabs-dark: #111;
@import 'sencha-touch/default/all';
@include sencha-panel;
@include sencha-buttons;
@include sencha-sheet;
@include sencha-picker;
@include sencha-tabs;
@include sencha-toolbar;
@include sencha-toolbar-forms;
@include sencha-carousel;
@include sencha-indexbar;
@include sencha-list;
@include sencha-list-paging;
@include sencha-list-pullrefresh;
@include sencha-layout;
@include sencha-form;
@include sencha-msgbox;
@include sencha-loading-spinner;
@include sencha-draw;
@include sencha-charts;
.x-toolbar-light .x-title {
color: #fff;
text-shadow: rgba(0, 0, 0, 0.5) 0 -0.08em 0;
}
.x-button-back .x-button-label {
color: #fff;
}
@import 'sencha-touch/base';
@include icon-font('Pictos', inline-font-files('pictos/pictos-web.woff', woff, 'pictos/pictos-web.ttf', truetype,'pictos/pictos-web.svg', svg));
@import 'sencha-touch/bb10';
@import 'sencha-touch/bb10/all';
\ No newline at end of file
@import 'sencha-touch/bb103';
@import 'sencha-touch/bb103/all';
\ No newline at end of file
$include-highlights: false;
$include-border-radius: false;
// Let's start with the basics
$base-color: #393F45;
$active-color: #06f;
$base-gradient: 'none';
// Lists
$list_pressed_color: #09f;
$list_bg_color: #111;
$list_color: #eee;
$list_header_bg_color: #aaa;
$basic-slider: true;
@import 'sencha-touch/default/all';
@include sencha-panel;
@include sencha-buttons;
@include sencha-sheet;
@include sencha-picker;
@include sencha-tabs;
@include sencha-toolbar;
@include sencha-toolbar-forms;
@include sencha-carousel;
@include sencha-indexbar;
@include sencha-list;
@include sencha-list-paging;
@include sencha-list-pullrefresh;
@include sencha-layout;
@include sencha-form;
@include sencha-msgbox;
@include sencha-loading-spinner;
@include sencha-draw;
@include sencha-charts;
.x-indexbar-item {
color: #FFF;
}
.x-scrollbar-dark {
background-color: rgba(255, 255, 255, .6);
border: 1px solid rgba(0, 0, 0, 0.2);
}
//fixing back/forward buttons in BB.
$shadow-width: .065em; // Space between tip and its shadow
$overlap-width: .2em; // how far the mask is clipped
$mask-height: $button-height;
$mask-width: $mask-height/2.5;
$mask-offset: $button-radius - $overlap-width - $button-stroke-weight + $shadow-width - .22em;
.x-button-forward, .x-button-back {
&:before, &:after {
@include insertion($mask-width, $mask-height, -$button-stroke-weight, auto);
z-index: 2;
-webkit-mask: $mask-offset 0 theme_image($theme-name, "tip_left.png") no-repeat;
-webkit-mask-size: $mask-width $mask-height;
overflow: hidden;
}
}
.x-button-forward, .x-toolbar .x-button-forward {
&:before, &:after {
-webkit-mask: -$mask-offset 0 theme_image($theme-name, "tip_right.png") no-repeat;
}
}
......@@ -7,5 +7,6 @@ load File.join(dir, '..', 'themes')
# Compass configurations
sass_path = dir
css_path = File.join(dir, "..", "css-debug")
fonts_path = File.join(dir, '..', 'themes/fonts/')
environment = :development
output_style = :expanded
\ No newline at end of file
......@@ -5,7 +5,8 @@ dir = File.dirname(__FILE__)
load File.join(dir, '..', 'themes')
# Compass configurations
sass_path = dir
css_path = File.join(dir, "..", "css")
environment = :production
output_style = :compressed
\ No newline at end of file
fonts_path = File.join(dir, '..', 'themes/fonts/')
sass_path = dir
css_path = File.join(dir, "..", "css")
environment = :development
output_style = :compressed
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.
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.
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