Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
W
web-apps
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boris Kocherov
web-apps
Commits
e6bb8d54
Commit
e6bb8d54
authored
Jan 30, 2017
by
Maxim Kadushkin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[mobile] fix for android context menu was moved to common.utils
parent
94831d1b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
120 additions
and
132 deletions
+120
-132
apps/common/mobile/utils/utils.js
apps/common/mobile/utils/utils.js
+114
-0
apps/documenteditor/mobile/app/view/DocumentHolder.js
apps/documenteditor/mobile/app/view/DocumentHolder.js
+3
-66
apps/presentationeditor/mobile/app/view/DocumentHolder.js
apps/presentationeditor/mobile/app/view/DocumentHolder.js
+3
-66
No files found.
apps/common/mobile/utils/utils.js
0 → 100644
View file @
e6bb8d54
/*
*
* (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
*
*/
/**
* utils.js
*
* Created by Maxim.Kadushkin on 1/30/2017
* Copyright (c) 2016 Ascensio System SIA. All rights reserved.
*
*/
define
([
'
jquery
'
,
'
underscore
'
],
function
(
$
,
_
)
{
'
use strict
'
;
!
Common
&&
(
Common
=
{});
!
Common
.
Utils
&&
(
Common
.
Utils
=
{});
Common
.
Utils
.
androidMenuTop
=
function
(
$popover
,
$target
)
{
$popover
.
css
({
left
:
''
,
top
:
''
});
var
modalWidth
=
$popover
.
width
();
var
modalHeight
=
$popover
.
height
();
var
modalAngleSize
=
10
;
var
targetWidth
=
$target
.
outerWidth
();
var
targetHeight
=
$target
.
outerHeight
();
var
targetOffset
=
$target
.
offset
();
var
targetParentPage
=
$target
.
parents
(
'
.page
'
);
if
(
targetParentPage
.
length
>
0
)
{
targetOffset
.
top
=
targetOffset
.
top
-
targetParentPage
[
0
].
scrollTop
;
}
var
windowHeight
=
$
(
window
).
height
();
var
windowWidth
=
$
(
window
).
width
();
var
modalTop
=
0
;
var
modalLeft
=
0
;
// Top Position
var
modalPosition
=
'
top
'
;
// material ? 'bottom' : 'top';
{
if
((
modalHeight
+
modalAngleSize
)
<
targetOffset
.
top
)
{
// On top
modalTop
=
targetOffset
.
top
-
modalHeight
-
modalAngleSize
;
}
else
if
((
modalHeight
+
modalAngleSize
)
<
windowHeight
-
targetOffset
.
top
-
targetHeight
)
{
// On bottom
modalPosition
=
'
bottom
'
;
modalTop
=
targetOffset
.
top
+
targetHeight
+
modalAngleSize
;
}
else
{
// On middle
modalPosition
=
'
middle
'
;
modalTop
=
targetHeight
/
2
+
targetOffset
.
top
-
modalHeight
/
2
;
if
(
modalTop
<=
0
)
{
modalTop
=
5
;
}
else
if
(
modalTop
+
modalHeight
>=
windowHeight
)
{
modalTop
=
windowHeight
-
modalHeight
-
5
;
}
}
// Horizontal Position
if
(
modalPosition
===
'
top
'
||
modalPosition
===
'
bottom
'
)
{
modalLeft
=
targetWidth
/
2
+
targetOffset
.
left
-
modalWidth
/
2
;
if
(
modalLeft
<
5
)
modalLeft
=
5
;
if
(
modalLeft
+
modalWidth
>
windowWidth
)
modalLeft
=
windowWidth
-
modalWidth
-
5
;
}
else
if
(
modalPosition
===
'
middle
'
)
{
modalLeft
=
targetOffset
.
left
-
modalWidth
-
modalAngleSize
;
if
(
modalLeft
<
5
||
(
modalLeft
+
modalWidth
>
windowWidth
))
{
if
(
modalLeft
<
5
)
modalLeft
=
targetOffset
.
left
+
targetWidth
+
modalAngleSize
;
if
(
modalLeft
+
modalWidth
>
windowWidth
)
modalLeft
=
windowWidth
-
modalWidth
-
5
;
}
}
}
// Apply Styles
$popover
.
css
({
top
:
modalTop
+
'
px
'
,
left
:
modalLeft
+
'
px
'
});
};
});
apps/documenteditor/mobile/app/view/DocumentHolder.js
View file @
e6bb8d54
...
...
@@ -43,7 +43,8 @@
define
([
'
jquery
'
,
'
underscore
'
,
'
backbone
'
'
backbone
'
,
'
common/mobile/utils/utils
'
],
function
(
$
,
_
,
Backbone
)
{
'
use strict
'
;
...
...
@@ -51,70 +52,6 @@ define([
// private
var
_anchorId
=
'
context-menu-target
'
;
function
androidSizeMenu
(
popover
,
target
)
{
popover
.
css
({
left
:
''
,
top
:
''
});
var
modalWidth
=
popover
.
width
();
var
modalHeight
=
popover
.
height
();
var
modalAngleSize
=
10
;
var
targetWidth
=
target
.
outerWidth
();
var
targetHeight
=
target
.
outerHeight
();
var
targetOffset
=
target
.
offset
();
var
targetParentPage
=
target
.
parents
(
'
.page
'
);
if
(
targetParentPage
.
length
>
0
)
{
targetOffset
.
top
=
targetOffset
.
top
-
targetParentPage
[
0
].
scrollTop
;
}
var
windowHeight
=
$
(
window
).
height
();
var
windowWidth
=
$
(
window
).
width
();
var
modalTop
=
0
;
var
modalLeft
=
0
;
// Top Position
var
modalPosition
=
'
top
'
;
// material ? 'bottom' : 'top';
{
if
((
modalHeight
+
modalAngleSize
)
<
targetOffset
.
top
)
{
// On top
modalTop
=
targetOffset
.
top
-
modalHeight
-
modalAngleSize
;
}
else
if
((
modalHeight
+
modalAngleSize
)
<
windowHeight
-
targetOffset
.
top
-
targetHeight
)
{
// On bottom
modalPosition
=
'
bottom
'
;
modalTop
=
targetOffset
.
top
+
targetHeight
+
modalAngleSize
;
}
else
{
// On middle
modalPosition
=
'
middle
'
;
modalTop
=
targetHeight
/
2
+
targetOffset
.
top
-
modalHeight
/
2
;
if
(
modalTop
<=
0
)
{
modalTop
=
5
;
}
else
if
(
modalTop
+
modalHeight
>=
windowHeight
)
{
modalTop
=
windowHeight
-
modalHeight
-
5
;
}
}
// Horizontal Position
if
(
modalPosition
===
'
top
'
||
modalPosition
===
'
bottom
'
)
{
modalLeft
=
targetWidth
/
2
+
targetOffset
.
left
-
modalWidth
/
2
;
if
(
modalLeft
<
5
)
modalLeft
=
5
;
if
(
modalLeft
+
modalWidth
>
windowWidth
)
modalLeft
=
windowWidth
-
modalWidth
-
5
;
}
else
if
(
modalPosition
===
'
middle
'
)
{
modalLeft
=
targetOffset
.
left
-
modalWidth
-
modalAngleSize
;
if
(
modalLeft
<
5
||
(
modalLeft
+
modalWidth
>
windowWidth
))
{
if
(
modalLeft
<
5
)
modalLeft
=
targetOffset
.
left
+
targetWidth
+
modalAngleSize
;
if
(
modalLeft
+
modalWidth
>
windowWidth
)
modalLeft
=
windowWidth
-
modalWidth
-
5
;
}
}
}
// Apply Styles
popover
.
css
({
top
:
modalTop
+
'
px
'
,
left
:
modalLeft
+
'
px
'
});
}
return
{
el
:
'
#editor_sdk
'
,
...
...
@@ -167,7 +104,7 @@ define([
var
popover
=
uiApp
.
popover
(
popoverHTML
,
$
(
'
#
'
+
_anchorId
));
if
(
Common
.
SharedSettings
.
get
(
'
android
'
))
{
androidSizeMenu
(
$
(
popover
),
$
(
'
#
'
+
_anchorId
));
Common
.
Utils
.
androidMenuTop
(
$
(
popover
),
$
(
'
#
'
+
_anchorId
));
}
$
(
'
.modal-overlay
'
).
removeClass
(
'
modal-overlay-visible
'
);
...
...
apps/presentationeditor/mobile/app/view/DocumentHolder.js
View file @
e6bb8d54
...
...
@@ -43,7 +43,8 @@
define
([
'
jquery
'
,
'
underscore
'
,
'
backbone
'
'
backbone
'
,
'
common/mobile/utils/utils
'
],
function
(
$
,
_
,
Backbone
)
{
'
use strict
'
;
...
...
@@ -51,70 +52,6 @@ define([
// private
var
_anchorId
=
'
context-menu-target
'
;
function
androidSizeMenu
(
popover
,
target
)
{
popover
.
css
({
left
:
''
,
top
:
''
});
var
modalWidth
=
popover
.
width
();
var
modalHeight
=
popover
.
height
();
var
modalAngleSize
=
10
;
var
targetWidth
=
target
.
outerWidth
();
var
targetHeight
=
target
.
outerHeight
();
var
targetOffset
=
target
.
offset
();
var
targetParentPage
=
target
.
parents
(
'
.page
'
);
if
(
targetParentPage
.
length
>
0
)
{
targetOffset
.
top
=
targetOffset
.
top
-
targetParentPage
[
0
].
scrollTop
;
}
var
windowHeight
=
$
(
window
).
height
();
var
windowWidth
=
$
(
window
).
width
();
var
modalTop
=
0
;
var
modalLeft
=
0
;
// Top Position
var
modalPosition
=
'
top
'
;
// material ? 'bottom' : 'top';
{
if
((
modalHeight
+
modalAngleSize
)
<
targetOffset
.
top
)
{
// On top
modalTop
=
targetOffset
.
top
-
modalHeight
-
modalAngleSize
;
}
else
if
((
modalHeight
+
modalAngleSize
)
<
windowHeight
-
targetOffset
.
top
-
targetHeight
)
{
// On bottom
modalPosition
=
'
bottom
'
;
modalTop
=
targetOffset
.
top
+
targetHeight
+
modalAngleSize
;
}
else
{
// On middle
modalPosition
=
'
middle
'
;
modalTop
=
targetHeight
/
2
+
targetOffset
.
top
-
modalHeight
/
2
;
if
(
modalTop
<=
0
)
{
modalTop
=
5
;
}
else
if
(
modalTop
+
modalHeight
>=
windowHeight
)
{
modalTop
=
windowHeight
-
modalHeight
-
5
;
}
}
// Horizontal Position
if
(
modalPosition
===
'
top
'
||
modalPosition
===
'
bottom
'
)
{
modalLeft
=
targetWidth
/
2
+
targetOffset
.
left
-
modalWidth
/
2
;
if
(
modalLeft
<
5
)
modalLeft
=
5
;
if
(
modalLeft
+
modalWidth
>
windowWidth
)
modalLeft
=
windowWidth
-
modalWidth
-
5
;
}
else
if
(
modalPosition
===
'
middle
'
)
{
modalLeft
=
targetOffset
.
left
-
modalWidth
-
modalAngleSize
;
if
(
modalLeft
<
5
||
(
modalLeft
+
modalWidth
>
windowWidth
))
{
if
(
modalLeft
<
5
)
modalLeft
=
targetOffset
.
left
+
targetWidth
+
modalAngleSize
;
if
(
modalLeft
+
modalWidth
>
windowWidth
)
modalLeft
=
windowWidth
-
modalWidth
-
5
;
}
}
}
// Apply Styles
popover
.
css
({
top
:
modalTop
+
'
px
'
,
left
:
modalLeft
+
'
px
'
});
}
return
{
el
:
'
#editor_sdk
'
,
...
...
@@ -167,7 +104,7 @@ define([
var
popover
=
uiApp
.
popover
(
popoverHTML
,
$
(
'
#
'
+
_anchorId
));
if
(
Common
.
SharedSettings
.
get
(
'
android
'
))
{
androidSizeMenu
(
$
(
popover
),
$
(
'
#
'
+
_anchorId
));
Common
.
Utils
.
androidMenuTop
(
$
(
popover
),
$
(
'
#
'
+
_anchorId
));
}
$
(
'
.modal-overlay
'
).
removeClass
(
'
modal-overlay-visible
'
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment