|
|
<!-- jQuery and jQueryUI libraries -->
<script src="http://www.google.com/jsapi"></script>
<script>
// Load jQuery
google.load("jquery", "1.2.6");
</script>
<script src="r/insum/files/static/v2Y/jquery.ui.all.js"></script>
<!-- Thickbox library and stylesheet -->
<script type="text/javascript" src="r/insum/files/static/v2Y/thickbox.js"></script>
<link rel="stylesheet" href="r/insum/files/static/v2Y/thickbox.css" type="text/css" />
<!-- FCK Editor (HTML Editor) libraries -->
<script type="text/javascript" src="https://static.oracle.com/cdn/apex/24.2.5/fck/fckeditor.js"></script>
<script type="text/javascript" src="r/insum/files/static/v2Y/fckeditorapi.js"></script>
<style type="text/css" media="all">
.placeholder
{
border: 3px dashed #666;
}
</style>
<script>
// AJAX saving of regions sort order
function saveSequence() {
var count = 1;
var seqString = "" ;
$(".ui-sortable").each(function(){
$(this).children().each(function(){
seqString += count + "=" + this.id + "," ;
});
count ++;
});
var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=SAVE_SORT_ORDER',$v('pFlowStepId'));
get.addParam('x01',seqString);
get.addParam('x02','20');
get.get();
}
$(document).ready(function(){
// Binding sortable control on regions
$("#multi_column_region .t4ReportsRegion").parent().parent().sortable(
{items: "> .t4ReportsRegion",
connectWith: [".ui-sortable"],
placeholder: "placeholder",
distance: 30,
dropOnEmpty: true,
start: function(e, ui) {
$(this).css({zIndex:"1000"});
},
change: function(e, ui) {
$(".ui-sortable").css({borderStyle:"dotted"});
},
stop: function(e, ui) {
$(".ui-sortable").css({borderStyle:"none"});
}
}
);
var colRegArr = new Array(2);
var sortArr = $v('P20_SORT_ORDER').split(';');
var contentArr = new Array(sortArr.length);
// Backup of regions content
for ( i = 0 ; i < sortArr.length ; i ++ )
{
colRegArr = sortArr[i].split(':');
contentArr[i] = $("#" + colRegArr[1] ).parent().html();
$("#" + colRegArr[1] ).parent().remove();
$("#" + colRegArr[1]).css({display:""});
}
// Resorting of regions with loaded sort order
for ( i = 0 ; i < sortArr.length ; i ++ )
{
colRegArr = sortArr[i].split(':');
var bkphtml = $(".ui-sortable:eq("+(colRegArr[0] -1) +") ").html();
$(".ui-sortable:eq("+(colRegArr[0] -1) +") ").
html(bkphtml + contentArr[i]);
}
// Resync of Thickbox with updated DOM objects (regions)
tb_init('a.thickbox, area.thickbox, input.thickbox');
});
</script> |
create or replace PACKAGE BODY POPUP_PKG AS
PROCEDURE GEN_FCK_EDITOR (p_region IN VARCHAR2) AS
l_code VARCHAR2(6000);
BEGIN
l_code :='<script>
function initFCK(pItem) {
var oFCKeditor = new FCKeditor(pItem) ;
oFCKeditor.BasePath = "/i/fck/" ;
oFCKeditor.Width = $x(pItem).offsetWidth;
oFCKeditor.Height = $x(pItem).offsetHeight;
oFCKeditor.ToolbarSet = ''Default'' ;
oFCKeditor.Config[ "AutoDetectLanguage" ] = false;
oFCKeditor.Config[ "DefaultLanguage" ] = "en";
oFCKeditor.ReplaceTextarea() ;
};
function genEditor() {
initFCK(''txtpopup'');
$s(''txtpopup'',$x('''||p_region||''').innerHTML);
}
function saveText(reg){
var oEditor = FCKeditorAPI.GetInstance(''txtpopup'') ;
oEditor.UpdateLinkedField();
var get = new htmldb_Get(null,$v(''pFlowId''),''APPLICATION_PROCESS=SAVE_TEXT'',$v(''pFlowStepId''));
get.addParam(''x01'',$v(''txtpopup''));
get.addParam(''x02'',reg);
get.GetAsync(AsyncResponse);
get = null;
gReturn = (!gReturn)?''null'':gReturn;
}
function AsyncResponse(){
if(p.readyState == 1){
$x_Show(''AjaxLoading'');
}else if(p.readyState == 2){
}else if(p.readyState == 3){
}else if(p.readyState == 4){
ajaxResult = p.responseText;
$x_Hide(''AjaxLoading'');
$x('''||p_region||''').innerHTML = $v(''txtpopup'');
tb_remove();
}else{return false;}
}
</script>
<textarea cols="110" rows="22" id="txtpopup"></textarea>
<img src="/i/processing3.gif" id="AjaxLoading" style="display:none;position:absolute;left:45%;top:45%;padding:10px;border:2px solid black;background:#FFF;" />
<input id="popupok" type="button" value="Save" onclick="javascript:saveText('''||p_region||''')">
<input id="popupcancel" type="button" value="Cancel" onclick="javascript:tb_remove()">
<script>
$x(''txtpopup'').style.display = '''' ;
setTimeout("genEditor()",500);
</script>';
htp.prn(l_code);
END GEN_FCK_EDITOR;
END POPUP_PKG; |
create or replace FUNCTION GEN_SORT_ORDER
( p_page IN VARCHAR2
) RETURN VARCHAR2 AS
cursor c_regions is
SELECT column_name,
region_name
FROM region_sort_order
WHERE id_page = p_page
ORDER BY column_seq,
region_seq ;
l_sort_string VARCHAR2(4000);
BEGIN
FOR i IN c_regions LOOP
l_sort_string := l_sort_string || i.column_name || ':' || i.region_name || ';' ;
END LOOP;
l_sort_string := rtrim(l_sort_string,';');
RETURN l_sort_string ;
END GEN_SORT_ORDER; |
popup_pkg.gen_fck_editor(:P_REGION); |
UPDATE texts
SET content = wwv_flow.g_x01
WHERE id_text = to_number(substr(wwv_flow.g_x02,6)) ; |
DECLARE
l_keyvals APEX_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
DELETE FROM region_sort_order WHERE id_page = wwv_flow.g_x02 ;
l_keyvals := apex_util.string_to_table(rtrim(wwv_flow.g_x01,','),',') ;
FOR i IN 1..l_keyvals.count LOOP
INSERT INTO region_sort_order
(id_page,column_seq,region_seq,column_name,region_name)
SELECT wwv_flow.g_x02,
substr(l_keyvals(i),1,instr(l_keyvals(i),'=') -1),
nvl((SELECT max(region_seq) + 1 FROM region_sort_order
WHERE id_page = wwv_flow.g_x02 AND column_seq =
substr(l_keyvals(i),1,instr(l_keyvals(i),'=') -1) ),1),
substr(l_keyvals(i),1,instr(l_keyvals(i),'=') - 1),
substr(l_keyvals(i),instr(l_keyvals(i),'=') + 1)
FROM dual ;
END LOOP;
END; |
<span id="MR6736367918081375196">
<table class="t4ReportsRegion" id="R6736367918081375196" #REGION_ATTRIBUTES# border="0" cellpadding="0" cellspacing="0" summary="">
<tr><td class="t4RegionHeader">#TITLE# <a class="thickbox" style="" href="f?p=987654321:20::APPLICATION_PROCESS%3DLOAD_FCK_EDITOR:::P_REGION,P_PARAMS:BR6736367918081375196,%7Cmodal%3Dtrue">Edit</a></td></tr>
<tr>
<td class="t4ButtonHolder">#CLOSE# #EXPAND##HELP##DELETE##EDIT##CHANGE##COPY##PREVIOUS##NEXT##CREATE##CREATE2#</td>
</tr>
<tr>
<td id="BR6736367918081375196" class="t4RegionBody">#BODY#</td>
</tr>
</table>
</span> |
1.Static ID = textX
Ex: Region 1 : text1 , Region 2 : text2
2.Region Attributes = style="display: none;" |
|
|
|