diff --git a/apps/presentationeditor/mobile/app-dev.js b/apps/presentationeditor/mobile/app-dev.js
index 529a7991fe..0d9d2be5a9 100644
--- a/apps/presentationeditor/mobile/app-dev.js
+++ b/apps/presentationeditor/mobile/app-dev.js
@@ -143,14 +143,14 @@ require([
'EditText',
// 'EditParagraph',
// 'EditTable',
- // 'EditImage',
+ 'EditImage',
'EditShape',
// 'EditChart',
// 'EditHyperlink',
'AddContainer',
- // 'AddTable',
- 'AddShape'
- // 'AddImage',
+ 'AddTable',
+ 'AddShape',
+ 'AddImage'
// 'AddOther'
]
});
@@ -208,14 +208,14 @@ require([
'presentationeditor/mobile/app/controller/edit/EditText',
// 'presentationeditor/mobile/app/controller/edit/EditParagraph',
// 'presentationeditor/mobile/app/controller/edit/EditTable',
- // 'presentationeditor/mobile/app/controller/edit/EditImage',
+ 'presentationeditor/mobile/app/controller/edit/EditImage',
'presentationeditor/mobile/app/controller/edit/EditShape',
// 'presentationeditor/mobile/app/controller/edit/EditChart',
// 'presentationeditor/mobile/app/controller/edit/EditHyperlink',
'presentationeditor/mobile/app/controller/add/AddContainer',
- // 'presentationeditor/mobile/app/controller/add/AddTable',
- 'presentationeditor/mobile/app/controller/add/AddShape'
- // 'presentationeditor/mobile/app/controller/add/AddImage',
+ 'presentationeditor/mobile/app/controller/add/AddTable',
+ 'presentationeditor/mobile/app/controller/add/AddShape',
+ 'presentationeditor/mobile/app/controller/add/AddImage'
// 'presentationeditor/mobile/app/controller/add/AddOther'
], function() {
diff --git a/apps/presentationeditor/mobile/app.js b/apps/presentationeditor/mobile/app.js
index 266eca2bd9..73f917e12d 100644
--- a/apps/presentationeditor/mobile/app.js
+++ b/apps/presentationeditor/mobile/app.js
@@ -154,14 +154,14 @@ require([
'EditText',
// 'EditParagraph'
// 'EditTable',
- // 'EditImage',
+ 'EditImage',
'EditShape',
// 'EditChart',
// 'EditHyperlink',
'AddContainer',
- // 'AddTable',
- 'AddShape'
- // 'AddImage',
+ 'AddTable',
+ 'AddShape',
+ 'AddImage'
// 'AddOther'
]
});
@@ -219,14 +219,14 @@ require([
'presentationeditor/mobile/app/controller/edit/EditText',
// 'presentationeditor/mobile/app/controller/edit/EditParagraph'
// 'presentationeditor/mobile/app/controller/edit/EditTable',
- // 'presentationeditor/mobile/app/controller/edit/EditImage',
+ 'presentationeditor/mobile/app/controller/edit/EditImage',
'presentationeditor/mobile/app/controller/edit/EditShape',
// 'presentationeditor/mobile/app/controller/edit/EditChart',
// 'presentationeditor/mobile/app/controller/edit/EditHyperlink',
'presentationeditor/mobile/app/controller/add/AddContainer',
- // 'presentationeditor/mobile/app/controller/add/AddTable',
- 'presentationeditor/mobile/app/controller/add/AddShape'
- // 'presentationeditor/mobile/app/controller/add/AddImage',
+ 'presentationeditor/mobile/app/controller/add/AddTable',
+ 'presentationeditor/mobile/app/controller/add/AddShape',
+ 'presentationeditor/mobile/app/controller/add/AddImage'
// 'presentationeditor/mobile/app/controller/add/AddOther'
], function() {
app.start();
diff --git a/apps/presentationeditor/mobile/app/controller/add/AddContainer.js b/apps/presentationeditor/mobile/app/controller/add/AddContainer.js
index 5d4b9d91a0..a03ee9dfa3 100644
--- a/apps/presentationeditor/mobile/app/controller/add/AddContainer.js
+++ b/apps/presentationeditor/mobile/app/controller/add/AddContainer.js
@@ -112,7 +112,9 @@ define([
addViews.push({
caption: me.textTable,
id: 'add-table',
- layout: me._dummyEditController().getLayout()
+ layout: PE.getController('AddTable')
+ .getView('AddTable')
+ .rootLayout()
});
addViews.push({
@@ -126,7 +128,9 @@ define([
addViews.push({
caption: me.textImage,
id: 'add-image',
- layout: me._dummyEditController().getLayout()
+ layout: PE.getController('AddImage')
+ .getView('AddImage')
+ .rootLayout()
});
addViews.push({
diff --git a/apps/presentationeditor/mobile/app/controller/add/AddImage.js b/apps/presentationeditor/mobile/app/controller/add/AddImage.js
new file mode 100644
index 0000000000..9c3baabfb4
--- /dev/null
+++ b/apps/presentationeditor/mobile/app/controller/add/AddImage.js
@@ -0,0 +1,134 @@
+/*
+ *
+ * (c) Copyright Ascensio System Limited 2010-2016
+ *
+ * This program is a free software product. You can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License (AGPL)
+ * version 3 as published by the Free Software Foundation. In accordance with
+ * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
+ * that Ascensio System SIA expressly excludes the warranty of non-infringement
+ * of any third-party rights.
+ *
+ * This program is distributed WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
+ * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
+ *
+ * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
+ * EU, LV-1021.
+ *
+ * The interactive user interfaces in modified source and object code versions
+ * of the Program must display Appropriate Legal Notices, as required under
+ * Section 5 of the GNU AGPL version 3.
+ *
+ * Pursuant to Section 7(b) of the License you must retain the original Product
+ * logo when distributing the program. Pursuant to Section 7(e) we decline to
+ * grant you any rights under trademark law for use of our trademarks.
+ *
+ * All the Product's GUI elements, including illustrations and icon sets, as
+ * well as technical writing content are licensed under the terms of the
+ * Creative Commons Attribution-ShareAlike 4.0 International. See the License
+ * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
+ *
+ */
+
+/**
+ * AddImage.js
+ * Presentation Editor
+ *
+ * Created by Julia Radzhabova on 11/30/16
+ * Copyright (c) 2016 Ascensio System SIA. All rights reserved.
+ *
+ */
+
+
+define([
+ 'core',
+ 'presentationeditor/mobile/app/view/add/AddImage'
+], function (core) {
+ 'use strict';
+
+ PE.Controllers.AddImage = Backbone.Controller.extend(_.extend((function() {
+ //
+
+ return {
+ models: [],
+ collections: [],
+ views: [
+ 'AddImage'
+ ],
+
+ initialize: function () {
+ Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this));
+
+ this.addListeners({
+ 'AddImage': {
+ 'page:show' : this.onPageShow
+ }
+ });
+ },
+
+ setApi: function (api) {
+ this.api = api;
+ },
+
+ onLaunch: function () {
+ this.createView('AddImage').render();
+ },
+
+ initEvents: function () {
+ var me = this;
+ $('#add-image-file').single('click', _.bind(me.onInsertByFile, me));
+ },
+
+ onPageShow: function () {
+ var me = this;
+
+ $('#addimage-insert a').single('click', _.buffered(me.onInsertByUrl, 100, me));
+ $('#addimage-url input[type=url]').single('input', _.bind(me.onUrlChange, me));
+
+ _.delay(function () {
+ $('#addimage-link-url input[type=url]').focus();
+ }, 1000);
+ },
+
+ // Handlers
+
+ onInsertByFile: function (e) {
+ PE.getController('AddContainer').hideModal();
+
+ if (this.api) {
+ this.api.asc_addImage();
+ }
+ },
+
+ onUrlChange: function (e) {
+ $('#addimage-insert').toggleClass('disabled', _.isEmpty($(e.currentTarget).val()));
+ },
+
+ onInsertByUrl: function (e) {
+ var me = this,
+ $input = $('#addimage-link-url input[type=url]');
+
+ if ($input) {
+ var value = ($input.val()).replace(/ /g, '');
+
+ if (!_.isEmpty(value)) {
+ if ((/((^https?)|(^ftp)):\/\/.+/i.test(value))) {
+ PE.getController('AddContainer').hideModal();
+ _.defer(function () {
+ me.api.AddImageUrl(value);
+ });
+ } else {
+ uiApp.alert(me.txtNotUrl);
+ }
+ } else {
+ uiApp.alert(me.textEmptyImgUrl);
+ }
+ }
+ },
+
+ textEmptyImgUrl : 'You need to specify image URL.',
+ txtNotUrl : 'This field should be a URL in the format \"http://www.example.com\"'
+ }
+ })(), PE.Controllers.AddImage || {}))
+});
diff --git a/apps/presentationeditor/mobile/app/controller/add/AddTable.js b/apps/presentationeditor/mobile/app/controller/add/AddTable.js
new file mode 100644
index 0000000000..ee90bcc5d3
--- /dev/null
+++ b/apps/presentationeditor/mobile/app/controller/add/AddTable.js
@@ -0,0 +1,177 @@
+/*
+ *
+ * (c) Copyright Ascensio System Limited 2010-2016
+ *
+ * This program is a free software product. You can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License (AGPL)
+ * version 3 as published by the Free Software Foundation. In accordance with
+ * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
+ * that Ascensio System SIA expressly excludes the warranty of non-infringement
+ * of any third-party rights.
+ *
+ * This program is distributed WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
+ * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
+ *
+ * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
+ * EU, LV-1021.
+ *
+ * The interactive user interfaces in modified source and object code versions
+ * of the Program must display Appropriate Legal Notices, as required under
+ * Section 5 of the GNU AGPL version 3.
+ *
+ * Pursuant to Section 7(b) of the License you must retain the original Product
+ * logo when distributing the program. Pursuant to Section 7(e) we decline to
+ * grant you any rights under trademark law for use of our trademarks.
+ *
+ * All the Product's GUI elements, including illustrations and icon sets, as
+ * well as technical writing content are licensed under the terms of the
+ * Creative Commons Attribution-ShareAlike 4.0 International. See the License
+ * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
+ *
+ */
+
+/**
+ * AddTable.js
+ * Presentation Editor
+ *
+ * Created by Julia Radzhabova on 11/30/16
+ * Copyright (c) 2016 Ascensio System SIA. All rights reserved.
+ *
+ */
+
+
+define([
+ 'core',
+ 'presentationeditor/mobile/app/view/add/AddTable'
+], function (core) {
+ 'use strict';
+
+ PE.Controllers.AddTable = Backbone.Controller.extend(_.extend((function() {
+ var _styles = [];
+
+ return {
+ models: [],
+ collections: [],
+ views: [
+ 'AddTable'
+ ],
+
+ initialize: function () {
+ Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this));
+ },
+
+ setApi: function (api) {
+ var me = this;
+ me.api = api;
+
+ me.api.asc_registerCallback('asc_onInitTableTemplates', _.bind(me.onApiInitTemplates, me));
+ },
+
+ onLaunch: function () {
+ this.createView('AddTable').render();
+ },
+
+ initEvents: function () {
+ var me = this;
+
+ if (_styles.length < 1) {
+ me.api.asc_GetDefaultTableStyles();
+ }
+
+ $('#add-table li').single('click', _.buffered(me.onStyleClick, 100, me));
+ },
+
+ onStyleClick: function (e) {
+ var me = this,
+ $target = $(e.currentTarget),
+ type = $target.data('type');
+
+ PE.getController('AddContainer').hideModal();
+
+ _.delay(function () {
+ if ($target) {
+ var picker;
+ var modal = uiApp.modal({
+ title: me.textTableSize,
+ text: '',
+ afterText:
+ '
' +
+ '
' +
+ '
' + me.textColumns + '
' +
+ '
' + me.textRows + '
' +
+ '
' +
+ '
' +
+ '
',
+ buttons: [
+ {
+ text: me.textCancel
+ },
+ {
+ text: 'OK',
+ bold: true,
+ onClick: function () {
+ var size = picker.value;
+
+ if (me.api) {
+ me.api.put_Table(parseInt(size[0]), parseInt(size[1]));
+
+ var properties = new Asc.CTableProp();
+ properties.put_TableStyle(type);
+
+ me.api.tblApply(properties);
+ }
+ }
+ }
+ ]
+ });
+
+ picker = uiApp.picker({
+ container: '#picker-table-size',
+ toolbar: false,
+ rotateEffect: true,
+ value: [3, 3],
+ cols: [{
+ textAlign: 'left',
+ values: [1,2,3,4,5,6,7,8,9,10]
+ }, {
+ values: [1,2,3,4,5,6,7,8,9,10]
+ }]
+ });
+
+ // Vertical align
+ $$(modal).css({
+ marginTop: - Math.round($$(modal).outerHeight() / 2) + 'px'
+ });
+ }
+ }, 300);
+ },
+
+ // Public
+
+ getStyles: function () {
+ return _styles;
+ },
+
+ // API handlers
+
+ onApiInitTemplates: function(templates){
+ _styles = [];
+ _.each(templates, function(template){
+ _styles.push({
+ imageUrl : template.get_Image(),
+ templateId : template.get_Id()
+ });
+ });
+
+ Common.SharedSettings.set('tablestyles', _styles);
+ Common.NotificationCenter.trigger('tablestyles:load', _styles);
+ },
+
+ textTableSize: 'Table Size',
+ textColumns: 'Columns',
+ textRows: 'Rows',
+ textCancel: 'Cancel'
+ }
+ })(), PE.Controllers.AddTable || {}))
+});
\ No newline at end of file
diff --git a/apps/presentationeditor/mobile/app/controller/edit/EditContainer.js b/apps/presentationeditor/mobile/app/controller/edit/EditContainer.js
index afc676cf48..8a8d695b26 100644
--- a/apps/presentationeditor/mobile/app/controller/edit/EditContainer.js
+++ b/apps/presentationeditor/mobile/app/controller/edit/EditContainer.js
@@ -330,9 +330,8 @@ define([
no_text = false;
} else if (Asc.c_oAscTypeSelectElement.Slide == type) {
// _settings.push('slide');
- no_text = false;
} else if (Asc.c_oAscTypeSelectElement.Image == type) {
- // _settings.push('image');
+ _settings.push('image');
} else if (Asc.c_oAscTypeSelectElement.Chart == type) {
// _settings.push('chart');
no_text = false;
diff --git a/apps/presentationeditor/mobile/app/controller/edit/EditImage.js b/apps/presentationeditor/mobile/app/controller/edit/EditImage.js
new file mode 100644
index 0000000000..33f256e624
--- /dev/null
+++ b/apps/presentationeditor/mobile/app/controller/edit/EditImage.js
@@ -0,0 +1,223 @@
+/*
+ *
+ * (c) Copyright Ascensio System Limited 2010-2016
+ *
+ * This program is a free software product. You can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License (AGPL)
+ * version 3 as published by the Free Software Foundation. In accordance with
+ * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
+ * that Ascensio System SIA expressly excludes the warranty of non-infringement
+ * of any third-party rights.
+ *
+ * This program is distributed WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
+ * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
+ *
+ * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
+ * EU, LV-1021.
+ *
+ * The interactive user interfaces in modified source and object code versions
+ * of the Program must display Appropriate Legal Notices, as required under
+ * Section 5 of the GNU AGPL version 3.
+ *
+ * Pursuant to Section 7(b) of the License you must retain the original Product
+ * logo when distributing the program. Pursuant to Section 7(e) we decline to
+ * grant you any rights under trademark law for use of our trademarks.
+ *
+ * All the Product's GUI elements, including illustrations and icon sets, as
+ * well as technical writing content are licensed under the terms of the
+ * Creative Commons Attribution-ShareAlike 4.0 International. See the License
+ * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
+ *
+ */
+
+/**
+ * EditImage.js
+ * Presentation Editor
+ *
+ * Created by Julia Radzhabova on 11/30/16
+ * Copyright (c) 2016 Ascensio System SIA. All rights reserved.
+ *
+ */
+
+define([
+ 'core',
+ 'presentationeditor/mobile/app/view/edit/EditImage'
+], function (core) {
+ 'use strict';
+
+ PE.Controllers.EditImage = Backbone.Controller.extend(_.extend((function() {
+ // Private
+ var _stack = [],
+ _imageObject = undefined,
+ _metricText = Common.Utils.Metric.getCurrentMetricName();
+
+ return {
+ models: [],
+ collections: [],
+ views: [
+ 'EditImage'
+ ],
+
+ initialize: function () {
+ Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this));
+
+ this.addListeners({
+ 'EditImage': {
+ 'page:show': this.onPageShow
+ }
+ });
+ },
+
+ setApi: function (api) {
+ var me = this;
+ me.api = api;
+
+ me.api.asc_registerCallback('asc_onFocusObject', _.bind(me.onApiFocusObject, me));
+ },
+
+ onLaunch: function () {
+ this.createView('EditImage').render();
+ },
+
+ initEvents: function () {
+ var me = this;
+
+ $('#image-default').single('click', _.bind(me.onDefaulSize, me));
+ $('#image-remove').single('click', _.bind(me.onRemoveImage, me));
+
+ me.initSettings();
+ },
+
+ onPageShow: function (view, pageId) {
+ var me = this;
+
+ $('#edit-image-file').single('click', _.bind(me.onReplaceByFile, me));
+ $('.edit-image-url-link .button, .edit-image-url-link .list-button').single('click', _.bind(me.onReplaceByUrl, me));
+
+ $('.image-reorder a').single('click', _.bind(me.onReorder, me));
+
+ // me.initSettings(pageId);
+ },
+
+ initSettings: function (pageId) {
+ },
+
+ // Public
+
+ getImage: function () {
+ return _imageObject;
+ },
+
+ // Handlers
+
+ onDefaulSize: function () {
+ var me = this;
+
+ if (me.api) {
+ var imgsize = me.api.get_OriginalSizeImage(),
+ properties = new Asc.asc_CImgProperty();
+
+ properties.put_Width(imgsize.get_ImageWidth());
+ properties.put_Height(imgsize.get_ImageHeight());
+
+ me.api.ImgApply(properties);
+ }
+ },
+
+ onRemoveImage: function () {
+ this.api.asc_Remove();
+ PE.getController('EditContainer').hideModal();
+ },
+
+ onReplaceByFile: function () {
+ this.api.ChangeImageFromFile();
+ PE.getController('EditContainer').hideModal();
+ },
+
+ onReplaceByUrl: function () {
+ var me = this,
+ $input = $('.edit-image-url-link input[type=url]');
+
+ if ($input) {
+ var value = ($input.val()).replace(/ /g, '');
+
+ if (!_.isEmpty(value)) {
+ if ((/((^https?)|(^ftp)):\/\/.+/i.test(value))) {
+ PE.getController('EditContainer').hideModal();
+ _.defer(function () {
+ var image = new Asc.asc_CImgProperty();
+ image.put_ImageUrl(value);
+ me.api.ImgApply(image);
+ });
+ } else {
+ uiApp.alert(me.txtNotUrl);
+ }
+ } else {
+ uiApp.alert(me.textEmptyImgUrl);
+ }
+ }
+ },
+
+ onReorder: function (e) {
+ var $target = $(e.currentTarget),
+ type = $target.data('type');
+
+ if ('all-up' == type) {
+ this.api.shapes_bringToFront();
+ } else if ('all-down' == type) {
+ this.api.shapes_bringToBack();
+ } else if ('move-up' == type) {
+ this.api.shapes_bringForward();
+ } else if ('move-down' == type) {
+ this.api.shapes_bringBackward();
+ }
+ },
+
+ // API handlers
+
+ onApiFocusObject: function (objects) {
+ _stack = objects;
+
+ var images = [];
+
+ _.each(_stack, function (object) {
+ if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Image && object.get_ObjectValue()) {
+ images.push(object);
+ }
+ });
+
+ if (images.length > 0) {
+ var object = images[images.length - 1]; // get top
+ _imageObject = object.get_ObjectValue();
+ } else {
+ _imageObject = undefined;
+ }
+ },
+
+ // Helpers
+
+ _closeIfNeed: function () {
+ if (!this._isImageInStack()) {
+ PE.getController('EditContainer').hideModal();
+ }
+ },
+
+ _isImageInStack: function () {
+ var imageExist = false;
+
+ _.some(_stack, function(object) {
+ if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Image && object.get_ObjectValue()) {
+ imageExist = true;
+ return true;
+ }
+ });
+
+ return imageExist;
+ },
+
+ textEmptyImgUrl: 'You need to specify image URL.',
+ txtNotUrl: 'This field should be a URL in the format \"http://www.example.com\"'
+ }
+ })(), PE.Controllers.EditImage || {}))
+});
\ No newline at end of file
diff --git a/apps/presentationeditor/mobile/app/template/AddImage.template b/apps/presentationeditor/mobile/app/template/AddImage.template
new file mode 100644
index 0000000000..0ac3570e40
--- /dev/null
+++ b/apps/presentationeditor/mobile/app/template/AddImage.template
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
<%= scope.textLinkSettings %>
+
+
+
+
+
<%= scope.textAddress %>
+
+
+
+
+
\ No newline at end of file
diff --git a/apps/presentationeditor/mobile/app/template/AddTable.template b/apps/presentationeditor/mobile/app/template/AddTable.template
new file mode 100644
index 0000000000..69398316df
--- /dev/null
+++ b/apps/presentationeditor/mobile/app/template/AddTable.template
@@ -0,0 +1,12 @@
+
+
+
+
+ <% _.each(styles, function(style) { %>
+ -
+
+
+ <% }); %>
+
+
+
\ No newline at end of file
diff --git a/apps/presentationeditor/mobile/app/template/EditImage.template b/apps/presentationeditor/mobile/app/template/EditImage.template
new file mode 100644
index 0000000000..9cfa34d849
--- /dev/null
+++ b/apps/presentationeditor/mobile/app/template/EditImage.template
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+
<%= scope.textReorder %>
+
<% if (phone) { %>
<% } %>
+
+
+
+
+
+
+
+
+
+
+
<%= scope.textReplace %>
+
<% if (phone) { %>
<% } %>
+
+
+
+
+
+
+
+
+
+
+
<%= scope.textLinkSettings %>
+
+
+
+
+
<%= scope.textAddress %>
+
+
+
+
+
\ No newline at end of file
diff --git a/apps/presentationeditor/mobile/app/view/add/AddImage.js b/apps/presentationeditor/mobile/app/view/add/AddImage.js
new file mode 100644
index 0000000000..7b071b5f86
--- /dev/null
+++ b/apps/presentationeditor/mobile/app/view/add/AddImage.js
@@ -0,0 +1,132 @@
+/*
+ *
+ * (c) Copyright Ascensio System Limited 2010-2016
+ *
+ * This program is a free software product. You can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License (AGPL)
+ * version 3 as published by the Free Software Foundation. In accordance with
+ * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
+ * that Ascensio System SIA expressly excludes the warranty of non-infringement
+ * of any third-party rights.
+ *
+ * This program is distributed WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
+ * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
+ *
+ * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
+ * EU, LV-1021.
+ *
+ * The interactive user interfaces in modified source and object code versions
+ * of the Program must display Appropriate Legal Notices, as required under
+ * Section 5 of the GNU AGPL version 3.
+ *
+ * Pursuant to Section 7(b) of the License you must retain the original Product
+ * logo when distributing the program. Pursuant to Section 7(e) we decline to
+ * grant you any rights under trademark law for use of our trademarks.
+ *
+ * All the Product's GUI elements, including illustrations and icon sets, as
+ * well as technical writing content are licensed under the terms of the
+ * Creative Commons Attribution-ShareAlike 4.0 International. See the License
+ * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
+ *
+ */
+
+/**
+ * AddImage.js
+ * Presentation Editor
+ *
+ * Created by Julia Radzhabova on 11/30/16
+ * Copyright (c) 2016 Ascensio System SIA. All rights reserved.
+ *
+ */
+
+
+define([
+ 'text!presentationeditor/mobile/app/template/AddImage.template',
+ 'jquery',
+ 'underscore',
+ 'backbone'
+], function (addTemplate, $, _, Backbone) {
+ 'use strict';
+
+ PE.Views.AddImage = Backbone.View.extend(_.extend((function() {
+ // private
+
+ return {
+ // el: '.view-main',
+
+ template: _.template(addTemplate),
+
+ events: {
+ },
+
+ initialize: function () {
+ Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this));
+ },
+
+ initEvents: function () {
+ var me = this;
+
+ $('#add-image-url').single('click', _.bind(me.showImageUrl, me));
+
+ me.initControls();
+ },
+
+ // Render layout
+ render: function () {
+ this.layout = $('').append(this.template({
+ android : Common.SharedSettings.get('android'),
+ phone : Common.SharedSettings.get('phone'),
+ scope : this
+ }));
+
+ return this;
+ },
+
+ rootLayout: function () {
+ if (this.layout) {
+ return this.layout
+ .find('#addimage-root-view')
+ .html();
+ }
+
+ return '';
+ },
+
+ initControls: function () {
+ //
+ },
+
+ showPage: function (templateId) {
+ var rootView = PE.getController('AddContainer').rootView;
+
+ if (rootView && this.layout) {
+ var $content = this.layout.find(templateId);
+
+ // Android fix for navigation
+ if (Framework7.prototype.device.android) {
+ $content.find('.page').append($content.find('.navbar'));
+ }
+
+ rootView.router.load({
+ content: $content.html()
+ });
+
+ this.fireEvent('page:show', this);
+ }
+ },
+
+ showImageUrl: function () {
+ this.showPage('#addimage-url-view');
+ },
+
+ textFromLibrary: 'Picture from Library',
+ textFromURL: 'Picture from URL',
+ textBack: 'Back',
+ textLinkSettings: 'Link Settings',
+ textAddress: 'Address',
+ textImageURL: 'Image URL',
+ textInsertImage: 'Insert Image'
+ }
+ })(), PE.Views.AddImage || {}))
+});
\ No newline at end of file
diff --git a/apps/presentationeditor/mobile/app/view/add/AddTable.js b/apps/presentationeditor/mobile/app/view/add/AddTable.js
new file mode 100644
index 0000000000..2b7c97e2ac
--- /dev/null
+++ b/apps/presentationeditor/mobile/app/view/add/AddTable.js
@@ -0,0 +1,104 @@
+/*
+ *
+ * (c) Copyright Ascensio System Limited 2010-2016
+ *
+ * This program is a free software product. You can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License (AGPL)
+ * version 3 as published by the Free Software Foundation. In accordance with
+ * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
+ * that Ascensio System SIA expressly excludes the warranty of non-infringement
+ * of any third-party rights.
+ *
+ * This program is distributed WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
+ * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
+ *
+ * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
+ * EU, LV-1021.
+ *
+ * The interactive user interfaces in modified source and object code versions
+ * of the Program must display Appropriate Legal Notices, as required under
+ * Section 5 of the GNU AGPL version 3.
+ *
+ * Pursuant to Section 7(b) of the License you must retain the original Product
+ * logo when distributing the program. Pursuant to Section 7(e) we decline to
+ * grant you any rights under trademark law for use of our trademarks.
+ *
+ * All the Product's GUI elements, including illustrations and icon sets, as
+ * well as technical writing content are licensed under the terms of the
+ * Creative Commons Attribution-ShareAlike 4.0 International. See the License
+ * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
+ *
+ */
+
+/**
+ * AddTable.js
+ * Presentation Editor
+ *
+ * Created by Julia Radzhabova on 11/30/16
+ * Copyright (c) 2016 Ascensio System SIA. All rights reserved.
+ *
+ */
+
+define([
+ 'text!presentationeditor/mobile/app/template/AddTable.template',
+ 'jquery',
+ 'underscore',
+ 'backbone'
+], function (addTemplate, $, _, Backbone) {
+ 'use strict';
+
+ PE.Views.AddTable = Backbone.View.extend(_.extend((function() {
+ // private
+
+ return {
+ // el: '.view-main',
+
+ template: _.template(addTemplate),
+
+ events: {
+ },
+
+ initialize: function () {
+ Common.NotificationCenter.on('addcontainer:show', _.bind(this.initEvents, this));
+ Common.NotificationCenter.on('tablestyles:load', _.bind(this.render, this));
+ },
+
+ initEvents: function () {
+ var me = this;
+
+ me.initControls();
+ },
+
+ // Render layout
+ render: function () {
+ this.layout = $('').append(this.template({
+ android : Common.SharedSettings.get('android'),
+ phone : Common.SharedSettings.get('phone'),
+ styles : Common.SharedSettings.get('tablestyles')
+ }));
+
+ var $tableStyles = $('.table-styles');
+ if ($tableStyles) {
+ $tableStyles.replaceWith(this.layout.find('#add-table-root').html());
+ }
+
+ return this;
+ },
+
+ rootLayout: function () {
+ if (this.layout) {
+ return this.layout
+ .find('#add-table-root')
+ .html();
+ }
+
+ return '';
+ },
+
+ initControls: function () {
+ //
+ }
+ }
+ })(), PE.Views.AddTable || {}))
+});
\ No newline at end of file
diff --git a/apps/presentationeditor/mobile/app/view/edit/EditImage.js b/apps/presentationeditor/mobile/app/view/edit/EditImage.js
new file mode 100644
index 0000000000..e520174cd2
--- /dev/null
+++ b/apps/presentationeditor/mobile/app/view/edit/EditImage.js
@@ -0,0 +1,166 @@
+/*
+ *
+ * (c) Copyright Ascensio System Limited 2010-2016
+ *
+ * This program is a free software product. You can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License (AGPL)
+ * version 3 as published by the Free Software Foundation. In accordance with
+ * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
+ * that Ascensio System SIA expressly excludes the warranty of non-infringement
+ * of any third-party rights.
+ *
+ * This program is distributed WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
+ * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
+ *
+ * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
+ * EU, LV-1021.
+ *
+ * The interactive user interfaces in modified source and object code versions
+ * of the Program must display Appropriate Legal Notices, as required under
+ * Section 5 of the GNU AGPL version 3.
+ *
+ * Pursuant to Section 7(b) of the License you must retain the original Product
+ * logo when distributing the program. Pursuant to Section 7(e) we decline to
+ * grant you any rights under trademark law for use of our trademarks.
+ *
+ * All the Product's GUI elements, including illustrations and icon sets, as
+ * well as technical writing content are licensed under the terms of the
+ * Creative Commons Attribution-ShareAlike 4.0 International. See the License
+ * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
+ *
+ */
+
+/**
+ * EditImage.js
+ * Presentation Editor
+ *
+ * Created by Julia Radzhabova on 11/30/16
+ * Copyright (c) 2016 Ascensio System SIA. All rights reserved.
+ *
+ */
+
+define([
+ 'text!presentationeditor/mobile/app/template/EditImage.template',
+ 'jquery',
+ 'underscore',
+ 'backbone'
+], function (editTemplate, $, _, Backbone) {
+ 'use strict';
+
+ PE.Views.EditImage = Backbone.View.extend(_.extend((function() {
+ // private
+
+ return {
+ // el: '.view-main',
+
+ template: _.template(editTemplate),
+
+ events: {
+ },
+
+ initialize: function () {
+ Common.NotificationCenter.on('editcontainer:show', _.bind(this.initEvents, this));
+ Common.NotificationCenter.on('editcategory:show', _.bind(this.categoryShow, this));
+ },
+
+ initEvents: function () {
+ var me = this;
+
+ $('#image-replace').single('click', _.bind(me.showReplace, me));
+ $('#image-reorder').single('click', _.bind(me.showReorder, me));
+ $('#edit-image-url').single('click', _.bind(me.showEditUrl, me));
+
+ me.initControls();
+ },
+
+ categoryShow: function(e) {
+ //
+ },
+
+ // Render layout
+ render: function () {
+ this.layout = $('').append(this.template({
+ android : Common.SharedSettings.get('android'),
+ phone : Common.SharedSettings.get('phone'),
+ scope : this
+ }));
+
+ return this;
+ },
+
+ rootLayout: function () {
+ if (this.layout) {
+ return this.layout
+ .find('#edit-image-root')
+ .html();
+ }
+
+ return '';
+ },
+
+ initControls: function () {
+ //
+ },
+
+ showPage: function (templateId, suspendEvent) {
+ var rootView = PE.getController('EditContainer').rootView;
+
+ if (rootView && this.layout) {
+ var $content = this.layout.find(templateId);
+
+ // Android fix for navigation
+ if (Framework7.prototype.device.android) {
+ $content.find('.page').append($content.find('.navbar'));
+ }
+
+ rootView.router.load({
+ content: $content.html()
+ });
+
+ if (suspendEvent !== true) {
+ this.fireEvent('page:show', [this, templateId]);
+ }
+
+ this.initEvents();
+ }
+ },
+
+ showReplace: function () {
+ this.showPage('#edit-image-replace-view');
+ },
+
+ showReorder: function () {
+ this.showPage('#edit-image-reorder-view');
+ },
+
+ showEditUrl: function () {
+ this.showPage('#edit-image-url-view');
+
+ $('.edit-image-url-link input[type="url"]').single('input', _.bind(function(e) {
+ $('.edit-image-url-link .buttons').toggleClass('disabled', _.isEmpty($(e.currentTarget).val()));
+ }, this));
+
+ _.delay(function () {
+ $('.edit-image-url-link input[type="url"]').focus();
+ }, 1000);
+ },
+
+ textReplace: 'Replace',
+ textReorder: 'Reorder',
+ textDefault: 'Default Size',
+ textRemove: 'Remove Image',
+ textBack: 'Back',
+ textToForeground: 'Bring to Foreground',
+ textToBackground: 'Send to Background',
+ textForward: 'Move Forward',
+ textBackward: 'Move Backward',
+ textFromLibrary: 'Picture from Library',
+ textFromURL: 'Picture from URL',
+ textLinkSettings: 'Link Settings',
+ textAddress: 'Address',
+ textImageURL: 'Image URL',
+ textReplaceImg: 'Replace Image'
+ }
+ })(), PE.Views.EditImage || {}))
+});
\ No newline at end of file