Commit comments and additional documentation about the features and changes made

This commit is contained in:
Gustavo Cruz
2012-12-07 15:33:45 -04:00
parent 4471a8b2cc
commit 9a82155717
9 changed files with 160 additions and 214 deletions

View File

@@ -28,13 +28,17 @@
tinymce.PluginManager.add('pmGrids', tinymce.plugins.pmGridsPlugin);
})();
// this function can get called from the plugin inint (above) or from the callback on advlink/advimg plugins..
// in the latter case, win and type will be set.. In the rist case, we will just update the main editor window
// with the path of the uploaded file
/**
* @function pmGrids
* @description The function intializes the plugin and also creates the popup
* window
* @param field_name deprecated
* @param win deprecated
*/
function pmGrids(field_name, win) {
//tinyMCE.activeEditor.anyVariable='path/to/ProcessMaker'
var strPluginPath = tinyMCE.activeEditor.plugins.pmGrids.getPluginURL(); // get the path to the uploader plugin
var strScriptURL = strPluginPath + "/pmGrids.html";
var strScriptURL = strPluginPath + "/pmGrids.html"; // loading the form
tinyMCE.activeEditor.windowManager.open({ // open the plugin popup
file : strScriptURL,
@@ -53,13 +57,21 @@ function pmGrids(field_name, win) {
return false;
}
// This function will get called when the uploader is done uploading the file and ready to update
// calling dialog and close the upload popup
// strReturnURL should be the string with the path to the uploaded file
/**
* @function closePluginPopup
* @description closes the plugin popup
*/
function closePluginPopup(){
tinyMCEPopup.close(); // close popup window
}
/**
* @function updateEditorContent
* @description insert the editor content with a html code string
* @params serializedHTML String html code
*/
function updateEditorContent(serializedHTML){
tinyMCE.activeEditor.execCommand('mceInsertRawHTML', false, serializedHTML);
closePluginPopup();

View File

@@ -28,13 +28,17 @@
tinymce.PluginManager.add('pmGrids', tinymce.plugins.pmGridsPlugin);
})();
// this function can get called from the plugin inint (above) or from the callback on advlink/advimg plugins..
// in the latter case, win and type will be set.. In the rist case, we will just update the main editor window
// with the path of the uploaded file
/**
* @function pmGrids
* @description The function intializes the plugin and also creates the popup
* window
* @param field_name deprecated
* @param win deprecated
*/
function pmGrids(field_name, win) {
//tinyMCE.activeEditor.anyVariable='path/to/ProcessMaker'
var strPluginPath = tinyMCE.activeEditor.plugins.pmGrids.getPluginURL(); // get the path to the uploader plugin
var strScriptURL = strPluginPath + "/pmGrids.html";
var strScriptURL = strPluginPath + "/pmGrids.html"; // loading the form
tinyMCE.activeEditor.windowManager.open({ // open the plugin popup
file : strScriptURL,
@@ -53,13 +57,21 @@ function pmGrids(field_name, win) {
return false;
}
// This function will get called when the uploader is done uploading the file and ready to update
// calling dialog and close the upload popup
// strReturnURL should be the string with the path to the uploaded file
/**
* @function closePluginPopup
* @description closes the plugin popup
*/
function closePluginPopup(){
tinyMCEPopup.close(); // close popup window
}
/**
* @function updateEditorContent
* @description insert the editor content with a html code string
* @params serializedHTML String html code
*/
function updateEditorContent(serializedHTML){
tinyMCE.activeEditor.execCommand('mceInsertRawHTML', false, serializedHTML);
closePluginPopup();

View File

@@ -1,20 +1,37 @@
$(document).ready(function () {
/**
* @function getGridList
* @description The function executes an ajax call using jquery
* in order to retrieve the grid lists for the current process
* in JSON format
* @param void
* @return responseData
*/
var getGridList = function(){
var responseData
// responseData = '[{"id":"grid_01","name":"grid_01"},{"id":"grid_02","name":"grid_02"}]';
var url = tinyMCE.activeEditor.domainURL+"processes/processes_Ajax";
responseData = $.ajax({
var url = tinyMCE.activeEditor.domainURL+"processes/processes_Ajax"; // action url that processes the ajax call
responseData = $.ajax({ // jquery ajax call
url : url,
type: "POST",
data: {action : 'getGridList', PRO_UID: tinyMCE.activeEditor.processID},
data: {action : 'getGridList', PRO_UID: tinyMCE.activeEditor.processID}, // parameters
async: false,
dataType: "json"
dataType: "json" // json response type
}).responseText;
responseData = eval("(" +responseData+ ")");
return responseData;
}
/**
* @function getGridFieldList
* @description The function obtains a JSON object that represents the field
* list of some grid dynaform, also renders the list in a table
* inside the plugin form
* @param gridUid
* @return void
*/
var getGridFieldList = function(gridUid){
// jquery ajax call
var responseData = $.ajax({
url : tinyMCE.activeEditor.domainURL+"processes/processes_Ajax",
type: "POST",
@@ -24,6 +41,8 @@ $(document).ready(function () {
}).responseText;
responseData = eval("("+responseData+")");
// processing the ajax response text and rendering the field list
// in a table
$('#listContainer').html('');
var divHeader = '<tr>';
var divCell = '<tr>';
@@ -33,9 +52,14 @@ $(document).ready(function () {
});
divHeader += '</tr>';
divCell += '</tr>';
$('#listContainer').append(divHeader+divCell);
$('#listContainer').append(divHeader+divCell); //append the result
};
/**
* @function generateListValues
* @description This function obtains the grid list and also renders the
* grid list dropdown box.
*
*/
var generateListValues = function(){
var list = getGridList();
var combo = document.getElementById("gridList");
@@ -61,7 +85,14 @@ $(document).ready(function () {
combo.add(option);
}
}
/**
* @function insertFormatedGrid
* @description Based on the checked fields, the function assembles the code
* to be included inside the tinyMCE editor, using some of the
* plugin functions. Then includes the code in the current
* active TinyMCE editor.
*
*/
var insertFormatedGrid = function(){
var gridName = $("#gridList option:selected").text();
var borderSet = "border='1' cellspacing='0'";
@@ -92,18 +123,23 @@ $(document).ready(function () {
updateEditorContent(tableCode);
}
// Whenever the gridList changes a new set of fields is populated.
$('#gridList').change(function(){
getGridFieldList($(this).val());
});
// if the user clicks the insert button the proccessed code is inserted in
// the editor
$('#insert').click(function(){
insertFormatedGrid();
});
// If the user cancel the action the popup closes
$('#cancel').click(function(){
closePluginPopup();
});
generateListValues();
getGridFieldList($("#gridList").val());
generateListValues(); //generate the list values for the dropdown
getGridFieldList($("#gridList").val()); // generate the field list for
// the first element in the dropdown.
});

View File

@@ -3,7 +3,10 @@
**/
(function(){
// set the base url setting
tinyMCE.baseURL = "/js/tinymce/jscripts/tiny_mce";
var strPluginURL;
// the plugin init settings
tinymce.create('tinymce.plugins.pmVariablePickerPlugin', {
init: function(ed, url)
{
@@ -29,12 +32,18 @@
})();
// this function can get called from the plugin inint (above) or from the callback on advlink/advimg plugins..
// in the latter case, win and type will be set.. In the rist case, we will just update the main editor window
// with the path of the uploaded file
function pmVariablePicker(field_name, url, type, win) {
// in the latter case, win and type will be set..
/**
* @function pmVariablePicker
* @description Opens the plugin popup, loading the form inside it.
* @param field_name deprecated
* @param type deprecated
* @param win deprecated
*
*/
function pmVariablePicker(field_name, type, win) {
var uloc=String(location);
//alert(uloc);
var new_text = uloc.split('/');
var loc='/'+new_text[3]+'/'+new_text[4]+'/'+new_text[5]+'/controls/varsAjax?displayOption=tinyMCE&sSymbol=@@&&sProcess='+tinyMCE.activeEditor.processID;
var strPluginPath = tinyMCE.activeEditor.plugins.pmVariablePicker.getPluginURL(); // get the path to the uploader plugin
@@ -49,7 +58,6 @@ function pmVariablePicker(field_name, url, type, win) {
}
//tinyMCE.activeEditor.anyVariable='path/to/ProcessMaker'
tinyMCE.activeEditor.windowManager.open({ // open the plugin popup
//file : '/sysworkflow/en/classic/controls/varsAjax?displayOption=tinyMCE&sSymbol=@@',
file : loc,
title : 'Upload Variable',
width : '600px',
@@ -66,17 +74,32 @@ function pmVariablePicker(field_name, url, type, win) {
return false;
}
// This function will get called when the uploader is done uploading the file and ready to update
// calling dialog and close the upload popup
// strReturnURL should be the string with the path to the uploaded file
/**
* @function closePluginPopup
* @description closes the tinyMCE popup window
*/
function closePluginPopup(){
tinyMCEPopup.close(); // close popup window
}
/**
* @function updateEditorContent
* @description insert the editor content with a html code string
* @params serializedHTML String html code
*/
function updateEditorContent(serializedHTML){
tinyMCE.activeEditor.execCommand('mceInsertContent', false, serializedHTML);
}
/**
* @function insertFormVar
* @description alternate version of updateEditorContent this function is
* compatible with the variable picker calls, also closes the popup
* window
* @param fieldName String deprecated
* @param serializedHTML String the html code to be added.
*/
function insertFormVar(fieldName,serializedHTML){
tinyMCE.activeEditor.execCommand('mceInsertContent', false, serializedHTML);
closePluginPopup();

View File

@@ -3,8 +3,10 @@
**/
(function(){
// set the base url setting
tinyMCE.baseURL = "/js/tinymce/jscripts/tiny_mce";
var strPluginURL;
// the plugin init settings
tinymce.create('tinymce.plugins.pmVariablePickerPlugin', {
init: function(ed, url)
{
@@ -30,12 +32,18 @@
})();
// this function can get called from the plugin inint (above) or from the callback on advlink/advimg plugins..
// in the latter case, win and type will be set.. In the rist case, we will just update the main editor window
// with the path of the uploaded file
function pmVariablePicker(field_name, url, type, win) {
// in the latter case, win and type will be set..
/**
* @function pmVariablePicker
* @description Opens the plugin popup, loading the form inside it.
* @param field_name deprecated
* @param type deprecated
* @param win deprecated
*
*/
function pmVariablePicker(field_name, type, win) {
var uloc=String(location);
//alert(uloc);
var new_text = uloc.split('/');
var loc='/'+new_text[3]+'/'+new_text[4]+'/'+new_text[5]+'/controls/varsAjax?displayOption=tinyMCE&sSymbol=@@&&sProcess='+tinyMCE.activeEditor.processID;
var strPluginPath = tinyMCE.activeEditor.plugins.pmVariablePicker.getPluginURL(); // get the path to the uploader plugin
@@ -50,7 +58,6 @@ function pmVariablePicker(field_name, url, type, win) {
}
//tinyMCE.activeEditor.anyVariable='path/to/ProcessMaker'
tinyMCE.activeEditor.windowManager.open({ // open the plugin popup
//file : '/sysworkflow/en/classic/controls/varsAjax?displayOption=tinyMCE&sSymbol=@@',
file : loc,
title : 'Upload Variable',
width : '600px',
@@ -67,17 +74,32 @@ function pmVariablePicker(field_name, url, type, win) {
return false;
}
// This function will get called when the uploader is done uploading the file and ready to update
// calling dialog and close the upload popup
// strReturnURL should be the string with the path to the uploaded file
/**
* @function closePluginPopup
* @description closes the tinyMCE popup window
*/
function closePluginPopup(){
tinyMCEPopup.close(); // close popup window
}
/**
* @function updateEditorContent
* @description insert the editor content with a html code string
* @params serializedHTML String html code
*/
function updateEditorContent(serializedHTML){
tinyMCE.activeEditor.execCommand('mceInsertContent', false, serializedHTML);
}
/**
* @function insertFormVar
* @description alternate version of updateEditorContent this function is
* compatible with the variable picker calls, also closes the popup
* window
* @param fieldName String deprecated
* @param serializedHTML String the html code to be added.
*/
function insertFormVar(fieldName,serializedHTML){
tinyMCE.activeEditor.execCommand('mceInsertContent', false, serializedHTML);
closePluginPopup();

View File

@@ -4206,7 +4206,7 @@ tinymce.html.Styles = function(settings, schema) {
// Remove already removed children
fi = nodes.length;
while (fi--) {
// ProcessMaker: conditional statemets created in order to assure the compatibility with maborak
if(name!='toStr'&&name!='concat'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'){
if (!nodes[fi].parent){
nodes.splice(fi, 1);
@@ -4216,6 +4216,7 @@ tinymce.html.Styles = function(settings, schema) {
for (i = 0, l = list.length; i < l; i++){
// ProcessMaker: conditional statemets created in order to assure the compatibility with maborak
if(name!='toStr'&&name!='concat'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'){
list[i](nodes, name, args);
}
@@ -4233,6 +4234,7 @@ tinymce.html.Styles = function(settings, schema) {
// Remove already removed children
fi = nodes.length;
while (fi--) {
// ProcessMaker: conditional statemets created in order to assure the compatibility with maborak
if(list.name!='toStr'&&list.name!='concat'&&list.name!='get_by_key'&&list.name!='expand'&&list.name!='setParent'&&list.name!='isset_key'){
// if (!nodes[fi].parent){
nodes.splice(fi, 1);
@@ -4241,6 +4243,7 @@ tinymce.html.Styles = function(settings, schema) {
}
for (fi = 0, fl = list.callbacks.length; fi < fl; fi++){
// ProcessMaker: conditional statemets created in order to assure the compatibility with maborak
if(list.name!='toStr'&&list.name!='concat'&&list.name!='get_by_key'&&list.name!='expand'&&list.name!='setParent'&&list.name!='isset_key'){
list.callbacks[fi](nodes, list.name, args);
}

View File

@@ -161,8 +161,11 @@ var EventCompose = function(t){
oPanel.make();
oPanel.loader.show();
var oRPC = new leimnud.module.rpc.xmlhttp({
// previous calls for the old component
// url : '../events/eventsAjax',
// args: 'request=showDynavars',
// the control for assign dynavars is the same as
// the other sections inside processmaker
url : '../controls/varsAjax',
args: 'sSymbol=@@&displayOption=event'
});

View File

@@ -1,71 +0,0 @@
<?php
/**
* groups.php
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*/
$access = $RBAC->userCanAccess( 'PM_USERS' );
if ($access != 1) {
switch ($access) {
case - 1:
G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
G::header( 'location: ../login/login' );
die();
break;
case - 2:
G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
G::header( 'location: ../login/login' );
die();
break;
default:
G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
G::header( 'location: ../login/login' );
die();
break;
}
}
if (($RBAC_Response = $RBAC->userCanAccess( "PM_USERS" )) != 1) {
return $RBAC_Response;
}
$G_MAIN_MENU = 'processmaker';
$G_SUB_MENU = 'users';
$G_ID_MENU_SELECTED = 'USERS';
$G_ID_SUB_MENU_SELECTED = 'GROUPS';
$G_PUBLISH = new Publisher();
G::LoadClass( 'configuration' );
$c = new Configurations();
$configPage = $c->getConfiguration( 'groupList', 'pageSize', '', $_SESSION['USER_LOGGED'] );
$configEnv = $c->getConfiguration( 'ENVIRONMENT_SETTINGS', '' );
$Config['pageSize'] = isset( $configPage['pageSize'] ) ? $configPage['pageSize'] : 20;
//$oHeadPublisher->addExtJsScript( 'groups/groupsList', false ); //adding a javascript file .js
//$oHeadPublisher->clearScripts();
$oHeadPublisher->addScriptFile( '/js/tinymce/jscripts/tiny_mce/tiny_mce_src.js' );
//$oHeadPublisher->addScriptFile( '/js/jquery/jquery-1.8.2.min.js' );
//$oHeadPublisher->addScriptFile( '/js/jquery/jquery-1.7.1.min.js' );
//$oHeadPublisher->addScriptFile( '/js/tinymce/pmScripts/editorEmailTemplate.js' );
$G_PUBLISH->addContent( 'view', 'outputdocs/testOut' ); //adding a html file .html.
G::RenderPage( 'publish', 'blank' );

View File

@@ -1,94 +0,0 @@
<?php
echo '
<script>
document.body.onload = function(){
// delete Array.prototype.isArray;
// delete Array.prototype.isObject;
// delete Array.prototype.onlyInt;
// delete Object.prototype.propertyIsEnumerable;
// delete Array.prototype.toStr;
// delete Object.prototype.toStr;
// delete Object.prototype.concat;
// delete Object.prototype.get_by_key;
// delete Object.prototype.expand;
// delete Object.prototype.setParent;
// delete Object.prototype.isset_key;
// delete Function.prototype.extend;
tinyMCE.baseURL = "/js/tinymce/jscripts/tiny_mce";
tinyMCE.init({
theme : "advanced",
plugins : "fullpage",
mode : "specific_textareas",
editor_selector : "tmceEditor",
width : "640",
height : "200",
theme_advanced_buttons3_add : "fullpage"
});
// alert($("#fcontent").val());
/*
tinyMCE.init({
theme : "advanced",
mode : "specific_textareas",
editor_selector : "tmceEditor",
plugins : "autolink,lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave,visualblocks",
// Theme options
theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft,visualblocks",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,
// Example content CSS (should be your site CSS)
content_css : "css/content.css",
// Drop lists for link/image/media/template dialogs
template_external_list_url : "lists/template_list.js",
external_link_list_url : "lists/link_list.js",
external_image_list_url : "lists/image_list.js",
media_external_list_url : "lists/media_list.js",
// Style formats
style_formats : [
{title : \'Bold text\', inline : \'b\'},
{title : \'Red text\', inline : \'span\', styles : {color : \'#ff0000\'}},
{title : \'Red header\', block : \'h1\', styles : {color : \'#ff0000\'}},
{title : \'Example 1\', inline : \'span\', classes : \'example1\'},
{title : \'Example 2\', inline : \'span\', classes : \'example2\'},
{title : \'Table styles\'},
{title : \'Table row 1\', selector : \'tr\', classes : \'tablerow1\'}
],
// Replace values for the template plugin
template_replace_values : {
username : "Some User",
staffid : "991234"
}
});
*/
//alert(\'loaded\');
}
</script>
';
?>
<textarea name="form[fcontent]" id="form[fcontent]" class="tmceEditor"><p>news<table><tr><td>cell 1</td></tr><tr><td>cell 2</td></tr></table></p></textarea>
<!--<textarea name="new" id="new" class="tmceEditor">another one</textarea>-->
<?php