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
88848300
Commit
88848300
authored
Nov 30, 2016
by
Julia Radzhabova
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PE mobile] Added image settings.
parent
f0562c55
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
578 additions
and
6 deletions
+578
-6
apps/presentationeditor/mobile/app-dev.js
apps/presentationeditor/mobile/app-dev.js
+2
-2
apps/presentationeditor/mobile/app.js
apps/presentationeditor/mobile/app.js
+2
-2
apps/presentationeditor/mobile/app/controller/edit/EditContainer.js
...ntationeditor/mobile/app/controller/edit/EditContainer.js
+1
-2
apps/presentationeditor/mobile/app/controller/edit/EditImage.js
...resentationeditor/mobile/app/controller/edit/EditImage.js
+223
-0
apps/presentationeditor/mobile/app/template/EditImage.template
...presentationeditor/mobile/app/template/EditImage.template
+184
-0
apps/presentationeditor/mobile/app/view/edit/EditImage.js
apps/presentationeditor/mobile/app/view/edit/EditImage.js
+166
-0
No files found.
apps/presentationeditor/mobile/app-dev.js
View file @
88848300
...
@@ -143,7 +143,7 @@ require([
...
@@ -143,7 +143,7 @@ require([
'
EditText
'
,
'
EditText
'
,
// 'EditParagraph',
// 'EditParagraph',
// 'EditTable',
// 'EditTable',
//
'EditImage',
'
EditImage
'
,
'
EditShape
'
,
'
EditShape
'
,
// 'EditChart',
// 'EditChart',
// 'EditHyperlink',
// 'EditHyperlink',
...
@@ -208,7 +208,7 @@ require([
...
@@ -208,7 +208,7 @@ require([
'
presentationeditor/mobile/app/controller/edit/EditText
'
,
'
presentationeditor/mobile/app/controller/edit/EditText
'
,
// 'presentationeditor/mobile/app/controller/edit/EditParagraph',
// 'presentationeditor/mobile/app/controller/edit/EditParagraph',
// 'presentationeditor/mobile/app/controller/edit/EditTable',
// '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/EditShape
'
,
// 'presentationeditor/mobile/app/controller/edit/EditChart',
// 'presentationeditor/mobile/app/controller/edit/EditChart',
// 'presentationeditor/mobile/app/controller/edit/EditHyperlink',
// 'presentationeditor/mobile/app/controller/edit/EditHyperlink',
...
...
apps/presentationeditor/mobile/app.js
View file @
88848300
...
@@ -154,7 +154,7 @@ require([
...
@@ -154,7 +154,7 @@ require([
'
EditText
'
,
'
EditText
'
,
// 'EditParagraph'
// 'EditParagraph'
// 'EditTable',
// 'EditTable',
//
'EditImage',
'
EditImage
'
,
'
EditShape
'
,
'
EditShape
'
,
// 'EditChart',
// 'EditChart',
// 'EditHyperlink',
// 'EditHyperlink',
...
@@ -219,7 +219,7 @@ require([
...
@@ -219,7 +219,7 @@ require([
'
presentationeditor/mobile/app/controller/edit/EditText
'
,
'
presentationeditor/mobile/app/controller/edit/EditText
'
,
// 'presentationeditor/mobile/app/controller/edit/EditParagraph'
// 'presentationeditor/mobile/app/controller/edit/EditParagraph'
// 'presentationeditor/mobile/app/controller/edit/EditTable',
// '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/EditShape
'
,
// 'presentationeditor/mobile/app/controller/edit/EditChart',
// 'presentationeditor/mobile/app/controller/edit/EditChart',
// 'presentationeditor/mobile/app/controller/edit/EditHyperlink',
// 'presentationeditor/mobile/app/controller/edit/EditHyperlink',
...
...
apps/presentationeditor/mobile/app/controller/edit/EditContainer.js
View file @
88848300
...
@@ -330,9 +330,8 @@ define([
...
@@ -330,9 +330,8 @@ define([
no_text
=
false
;
no_text
=
false
;
}
else
if
(
Asc
.
c_oAscTypeSelectElement
.
Slide
==
type
)
{
}
else
if
(
Asc
.
c_oAscTypeSelectElement
.
Slide
==
type
)
{
// _settings.push('slide');
// _settings.push('slide');
no_text
=
false
;
}
else
if
(
Asc
.
c_oAscTypeSelectElement
.
Image
==
type
)
{
}
else
if
(
Asc
.
c_oAscTypeSelectElement
.
Image
==
type
)
{
//
_settings.push('image');
_settings
.
push
(
'
image
'
);
}
else
if
(
Asc
.
c_oAscTypeSelectElement
.
Chart
==
type
)
{
}
else
if
(
Asc
.
c_oAscTypeSelectElement
.
Chart
==
type
)
{
// _settings.push('chart');
// _settings.push('chart');
no_text
=
false
;
no_text
=
false
;
...
...
apps/presentationeditor/mobile/app/controller/edit/EditImage.js
0 → 100644
View file @
88848300
/*
*
* (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
apps/presentationeditor/mobile/app/template/EditImage.template
0 → 100644
View file @
88848300
<!-- Root view -->
<div id="edit-image-root">
<div class="list-block">
<ul>
<li>
<a id="image-replace" class="item-link">
<div class="item-content">
<div class="item-inner">
<div class="item-title"><%= scope.textReplace %></div>
</div>
</div>
</a>
</li>
<li>
<a id="image-reorder" class="item-link">
<div class="item-content">
<div class="item-inner">
<div class="item-title"><%= scope.textReorder %></div>
</div>
</div>
</a>
</li>
</ul>
</div>
<div class="list-block">
<ul>
<li>
<% if (android) { %>
<a id="image-default" class="button button-raised button-fill" style="margin: 20px 16px;"><%= scope.textDefault %></a>
<% } else { %>
<a id="image-default" class="item-link list-button" style="text-align: center;"><%= scope.textDefault %></a>
<% } %>
</li>
<li>
<% if (android) { %>
<a id="image-default" class="button button-raised button-fill" style="margin: 20px 16px; background-color: #f44336;"><%= scope.textRemove %></a>
<% } else { %>
<a id="image-remove" class="item-link list-button" style="text-align: center; color: #f00"><%= scope.textRemove %></a>
<% } %>
</li>
</ul>
</div>
</div>
<!-- Reorder view -->
<div id="edit-image-reorder-view">
<div class="navbar">
<div class="navbar-inner">
<div class="left sliding"><a href="#" class="back link"><i class="icon icon-back"></i><% if (!android) { %><span><%= scope.textBack %></span><% } %></a></div>
<div class="center sliding"><%= scope.textReorder %></div>
<div class="right"><% if (phone) { %><a href="#" class="link icon-only close-picker"><i class="icon icon-expand-down"></i></a><% } %></div>
</div>
</div>
<div class="page image-reorder">
<div class="page-content">
<div class="list-block">
<ul>
<li>
<a data-type="all-up" class="item-link no-indicator">
<div class="item-content">
<div class="item-media"><i class="icon icon-move-foreground"></i></div>
<div class="item-inner">
<div class="item-title"><%= scope.textToForeground %></div>
</div>
</div>
</a>
</li>
<li>
<a data-type="all-down" class="item-link no-indicator">
<div class="item-content">
<div class="item-media"><i class="icon icon-move-background"></i></div>
<div class="item-inner">
<div class="item-title"><%= scope.textToBackground %></div>
</div>
</div>
</a>
</li>
<li>
<a data-type="move-up" class="item-link no-indicator">
<div class="item-content">
<div class="item-media"><i class="icon icon-move-forward"></i></div>
<div class="item-inner">
<div class="item-title"><%= scope.textForward %></div>
</div>
</div>
</a>
</li>
<li>
<a data-type="move-down" class="item-link no-indicator">
<div data-type="move-down" class="item-content">
<div class="item-media"><i class="icon icon-move-backward"></i></div>
<div class="item-inner">
<div class="item-title"><%= scope.textBackward %></div>
</div>
</div>
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<!-- Replace view -->
<div id="edit-image-replace-view">
<div class="navbar">
<div class="navbar-inner">
<div class="left sliding"><a href="#" class="back link"><i class="icon icon-back"></i><% if (!android) { %><span><%= scope.textBack %></span><% } %></a></div>
<div class="center sliding"><%= scope.textReplace %></div>
<div class="right"><% if (phone) { %><a href="#" class="link icon-only close-picker"><i class="icon icon-expand-down"></i></a><% } %></div>
</div>
</div>
<div class="page">
<div class="page-content">
<div class="list-block">
<ul>
<li>
<a id="edit-image-file" class="item-link no-indicator no-fastclick">
<div class="item-content">
<div class="item-media">
<i class="icon icon-image-library"></i>
</div>
<div class="item-inner">
<div class="item-title"><%= scope.textFromLibrary %></div>
</div>
</div>
</a>
</li>
<li>
<a id="edit-image-url" class="item-link">
<div class="item-content">
<div class="item-media">
<i class="icon icon-link"></i>
</div>
<div class="item-inner">
<div class="item-title"><%= scope.textFromURL %></div>
</div>
</div>
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<!-- Url view -->
<div id="edit-image-url-view">
<div class="navbar">
<div class="navbar-inner">
<div class="left sliding"><a href="#" class="back link"><i class="icon icon-back"></i><% if (!android) { %><span><%= scope.textBack %></span><% } %></a></div>
<div class="center sliding"><%= scope.textLinkSettings %></div>
</div>
</div>
<div class="page edit-image-url-link">
<div class="page-content">
<div class="content-block-title"><%= scope.textAddress %></div>
<div class="list-block">
<ul>
<li>
<div class="item-content">
<div class="item-inner">
<div class="item-input">
<input type="url" placeholder="<%= scope.textImageURL %>">
</div>
</div>
</div>
</li>
</ul>
</div>
<div class="list-block disabled buttons">
<% if (android) { %>
<a href="#" class="button button-fill button-raised" style="margin: 20px 16px;"><%= scope.textReplaceImg %></a>
<% } else { %>
<ul>
<li>
<a href="#" class="list-button item-link"><%= scope.textReplaceImg %></a>
</li>
</ul>
<% } %>
</div>
</div>
</div>
</div>
\ No newline at end of file
apps/presentationeditor/mobile/app/view/edit/EditImage.js
0 → 100644
View file @
88848300
/*
*
* (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
=
$
(
'
<div/>
'
).
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
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