DocumentServer/OfficeWeb/apps/spreadsheeteditor/main/app/view/DocumentHolder.js
2015-04-28 17:59:00 +03:00

416 lines
16 KiB
JavaScript

/*
* (c) Copyright Ascensio System SIA 2010-2015
*
* 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
*
*/
define(["jquery", "underscore", "backbone", "gateway", "common/main/lib/component/Menu"], function ($, _, Backbone, gateway) {
SSE.Views.DocumentHolder = Backbone.View.extend(_.extend({
el: "#editor_sdk",
template: null,
events: {},
initialize: function () {
var me = this;
this.setApi = function (api) {
me.api = api;
return me;
};
var value = window.localStorage.getItem("sse-settings-livecomment");
me.isLiveCommenting = !(value !== null && parseInt(value) == 0);
},
render: function () {
this.fireEvent("render:before", this);
this.cmpEl = $(this.el);
this.fireEvent("render:after", this);
return this;
},
focus: function () {
var me = this;
_.defer(function () {
me.cmpEl.focus();
},
50);
},
createDelayedElements: function () {
var me = this;
me.pmiCut = new Common.UI.MenuItem({
caption: me.txtCut,
value: "cut"
});
me.pmiCopy = new Common.UI.MenuItem({
caption: me.txtCopy,
value: "copy"
});
me.pmiPaste = new Common.UI.MenuItem({
caption: me.txtPaste,
value: "paste"
});
me.pmiInsertEntire = new Common.UI.MenuItem({
caption: me.txtInsert
});
me.pmiInsertCells = new Common.UI.MenuItem({
caption: me.txtInsert,
menu: new Common.UI.Menu({
menuAlign: "tl-tr",
items: [{
caption: me.txtShiftRight,
value: c_oAscInsertOptions.InsertCellsAndShiftRight
},
{
caption: me.txtShiftDown,
value: c_oAscInsertOptions.InsertCellsAndShiftDown
},
{
caption: me.txtRow,
value: c_oAscInsertOptions.InsertRows
},
{
caption: me.txtColumn,
value: c_oAscInsertOptions.InsertColumns
}]
})
});
me.pmiDeleteEntire = new Common.UI.MenuItem({
caption: me.txtDelete
});
me.pmiDeleteCells = new Common.UI.MenuItem({
caption: me.txtDelete,
menu: new Common.UI.Menu({
menuAlign: "tl-tr",
items: [{
caption: me.txtShiftLeft,
value: c_oAscDeleteOptions.DeleteCellsAndShiftLeft
},
{
caption: me.txtShiftUp,
value: c_oAscDeleteOptions.DeleteCellsAndShiftTop
},
{
caption: me.txtRow,
value: c_oAscDeleteOptions.DeleteRows
},
{
caption: me.txtColumn,
value: c_oAscDeleteOptions.DeleteColumns
}]
})
});
me.pmiClear = new Common.UI.MenuItem({
caption: me.txtClear,
menu: new Common.UI.Menu({
menuAlign: "tl-tr",
items: [{
caption: me.txtClearAll,
value: c_oAscCleanOptions.All
},
{
caption: me.txtClearText,
value: c_oAscCleanOptions.Text
},
{
caption: me.txtClearFormat,
value: c_oAscCleanOptions.Format
},
{
caption: me.txtClearComments,
value: c_oAscCleanOptions.Comments
},
{
caption: me.txtClearHyper,
value: c_oAscCleanOptions.Hyperlinks
}]
})
});
me.pmiSortCells = new Common.UI.MenuItem({
caption: me.txtSort,
menu: new Common.UI.Menu({
menuAlign: "tl-tr",
items: [{
caption: me.txtAscending,
value: "ascending"
},
{
caption: me.txtDescending,
value: "descending"
}]
})
});
me.pmiInsFunction = new Common.UI.MenuItem({
caption: me.txtFormula
});
me.menuAddHyperlink = new Common.UI.MenuItem({
caption: me.txtInsHyperlink,
inCell: true
});
me.menuEditHyperlink = new Common.UI.MenuItem({
caption: me.editHyperlinkText,
inCell: true
});
me.menuRemoveHyperlink = new Common.UI.MenuItem({
caption: me.removeHyperlinkText
});
me.menuHyperlink = new Common.UI.MenuItem({
caption: me.txtInsHyperlink,
menu: new Common.UI.Menu({
menuAlign: "tl-tr",
items: [me.menuEditHyperlink, me.menuRemoveHyperlink]
})
});
me.pmiRowHeight = new Common.UI.MenuItem({
caption: me.txtRowHeight,
action: "row-height"
});
me.pmiColumnWidth = new Common.UI.MenuItem({
caption: me.txtColumnWidth,
action: "column-width"
});
me.pmiEntireHide = new Common.UI.MenuItem({
caption: me.txtHide
});
me.pmiEntireShow = new Common.UI.MenuItem({
caption: me.txtShow
});
me.pmiAddComment = new Common.UI.MenuItem({
id: "id-context-menu-item-add-comment",
caption: me.txtAddComment
});
me.pmiCellMenuSeparator = new Common.UI.MenuItem({
caption: "--"
});
me.ssMenu = new Common.UI.Menu({
id: "id-context-menu-cell",
items: [me.pmiCut, me.pmiCopy, me.pmiPaste, {
caption: "--"
},
me.pmiInsertEntire, me.pmiInsertCells, me.pmiDeleteEntire, me.pmiDeleteCells, me.pmiClear, me.pmiSortCells, {
caption: "--"
},
me.pmiAddComment, me.pmiCellMenuSeparator, me.pmiInsFunction, me.menuAddHyperlink, me.menuHyperlink, me.pmiRowHeight, me.pmiColumnWidth, me.pmiEntireHide, me.pmiEntireShow]
});
me.mnuGroupImg = new Common.UI.MenuItem({
caption: this.txtGroup,
iconCls: "mnu-group",
type: "group",
value: "grouping"
});
me.mnuUnGroupImg = new Common.UI.MenuItem({
caption: this.txtUngroup,
iconCls: "mnu-ungroup",
type: "group",
value: "ungrouping"
});
me.mnuShapeSeparator = new Common.UI.MenuItem({
caption: "--"
});
me.mnuShapeAdvanced = new Common.UI.MenuItem({
caption: me.advancedShapeText
});
me.mnuChartEdit = new Common.UI.MenuItem({
caption: me.chartText
});
me.pmiImgCut = new Common.UI.MenuItem({
caption: me.txtCut,
value: "cut"
});
me.pmiImgCopy = new Common.UI.MenuItem({
caption: me.txtCopy,
value: "copy"
});
me.pmiImgPaste = new Common.UI.MenuItem({
caption: me.txtPaste,
value: "paste"
});
this.imgMenu = new Common.UI.Menu({
items: [me.pmiImgCut, me.pmiImgCopy, me.pmiImgPaste, {
caption: "--"
},
{
caption: this.textArrangeFront,
iconCls: "mnu-arrange-front",
type: "arrange",
value: c_oAscDrawingLayerType.BringToFront
},
{
caption: this.textArrangeBack,
iconCls: "mnu-arrange-back",
type: "arrange",
value: c_oAscDrawingLayerType.SendToBack
},
{
caption: this.textArrangeForward,
iconCls: "mnu-arrange-forward",
type: "arrange",
value: c_oAscDrawingLayerType.BringForward
},
{
caption: this.textArrangeBackward,
iconCls: "mnu-arrange-backward",
type: "arrange",
value: c_oAscDrawingLayerType.SendBackward
},
{
caption: "--"
},
me.mnuGroupImg, me.mnuUnGroupImg, me.mnuShapeSeparator, me.mnuChartEdit, me.mnuShapeAdvanced]
});
this.menuParagraphVAlign = new Common.UI.MenuItem({
caption: this.vertAlignText,
menu: new Common.UI.Menu({
menuAlign: "tl-tr",
items: [me.menuParagraphTop = new Common.UI.MenuItem({
caption: me.topCellText,
checkable: true,
toggleGroup: "popupparagraphvalign",
value: c_oAscVerticalTextAlign.TEXT_ALIGN_TOP
}), me.menuParagraphCenter = new Common.UI.MenuItem({
caption: me.centerCellText,
checkable: true,
toggleGroup: "popupparagraphvalign",
value: c_oAscVerticalTextAlign.TEXT_ALIGN_CTR
}), this.menuParagraphBottom = new Common.UI.MenuItem({
caption: me.bottomCellText,
checkable: true,
toggleGroup: "popupparagraphvalign",
value: c_oAscVerticalTextAlign.TEXT_ALIGN_BOTTOM
})]
})
});
me.menuAddHyperlinkShape = new Common.UI.MenuItem({
caption: me.txtInsHyperlink
});
me.menuEditHyperlinkShape = new Common.UI.MenuItem({
caption: me.editHyperlinkText
});
me.menuRemoveHyperlinkShape = new Common.UI.MenuItem({
caption: me.removeHyperlinkText
});
me.menuHyperlinkShape = new Common.UI.MenuItem({
caption: me.txtInsHyperlink,
menu: new Common.UI.Menu({
menuAlign: "tl-tr",
items: [me.menuEditHyperlinkShape, me.menuRemoveHyperlinkShape]
})
});
this.pmiTextAdvanced = new Common.UI.MenuItem({
caption: me.txtTextAdvanced
});
me.pmiTextCut = new Common.UI.MenuItem({
caption: me.txtCut,
value: "cut"
});
me.pmiTextCopy = new Common.UI.MenuItem({
caption: me.txtCopy,
value: "copy"
});
me.pmiTextPaste = new Common.UI.MenuItem({
caption: me.txtPaste,
value: "paste"
});
this.textInShapeMenu = new Common.UI.Menu({
items: [me.pmiTextCut, me.pmiTextCopy, me.pmiTextPaste, {
caption: "--"
},
me.menuParagraphVAlign, me.menuAddHyperlinkShape, me.menuHyperlinkShape, {
caption: "--"
},
me.pmiTextAdvanced]
});
this.funcMenu = new Common.UI.Menu({
items: [{
caption: "item 1"
},
{
caption: "item 2"
},
{
caption: "item 3"
},
{
caption: "item 4"
},
{
caption: "item 5"
}]
});
me.fireEvent("createdelayedelements", [me]);
},
setMenuItemCommentCaptionMode: function (edit) {
edit ? this.pmiAddComment.setCaption(this.txtEditComment) : this.pmiAddComment.setCaption(this.txtAddComment);
},
setLiveCommenting: function (value) {
this.isLiveCommenting = value;
},
txtSort: "Sort",
txtAscending: "Ascending",
txtDescending: "Descending",
txtFormula: "Insert Function",
txtInsHyperlink: "Hyperlink",
txtCut: "Cut",
txtCopy: "Copy",
txtPaste: "Paste",
txtInsert: "Insert",
txtDelete: "Delete",
txtClear: "Clear",
txtClearAll: "All",
txtClearText: "Text",
txtClearFormat: "Format",
txtClearHyper: "Hyperlink",
txtClearComments: "Comments",
txtShiftRight: "Shift cells right",
txtShiftLeft: "Shift cells left",
txtShiftUp: "Shift cells up",
txtShiftDown: "Shift cells down",
txtRow: "Entire Row",
txtColumn: "Entire Column",
txtColumnWidth: "Column Width",
txtRowHeight: "Row Height",
txtWidth: "Width",
txtHide: "Hide",
txtShow: "Show",
textArrangeFront: "Bring To Front",
textArrangeBack: "Send To Back",
textArrangeForward: "Bring Forward",
textArrangeBackward: "Send Backward",
txtArrange: "Arrange",
txtAddComment: "Add Comment",
txtEditComment: "Edit Comment",
txtUngroup: "Ungroup",
txtGroup: "Group",
topCellText: "Align Top",
centerCellText: "Align Center",
bottomCellText: "Align Bottom",
vertAlignText: "Vertical Alignment",
txtTextAdvanced: "Text Advanced Settings",
editHyperlinkText: "Edit Hyperlink",
removeHyperlinkText: "Remove Hyperlink",
editChartText: "Edit Data",
advancedShapeText: "Shape Advanced Settings",
chartText: "Chart Advanced Settings"
},
SSE.Views.DocumentHolder || {}));
});