272 lines
12 KiB
JavaScript
272 lines
12 KiB
JavaScript
(function () {
|
|
var Pos = CodeMirror.Pos;
|
|
|
|
function forEach(arr, f) {
|
|
for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]);
|
|
}
|
|
|
|
function arrayContains(arr, item) {
|
|
if (!Array.prototype.indexOf) {
|
|
var i = arr.length;
|
|
while (i--) {
|
|
if (arr[i] === item) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
return arr.indexOf(item) != -1;
|
|
}
|
|
|
|
function scriptHint(editor, keywords, getToken, options) {
|
|
// Find the token at the cursor
|
|
var cur = editor.getCursor(), token = getToken(editor, cur), tprop = token;
|
|
var sToken = token.string.trim();
|
|
|
|
if ( sToken == "(") {
|
|
token = tprop = getToken(editor, Pos(cur.line, tprop.start));
|
|
return {list: getCompletions(token.string, keywords, options),
|
|
from: Pos(cur.line, token.start),
|
|
to: Pos(cur.line, token.end + 1)};
|
|
}
|
|
if ( sToken == "=") {
|
|
return {list: getCompletions(token.string, keywords, options),
|
|
from: Pos(cur.line, token.start + 1),
|
|
to: Pos(cur.line, token.end)};
|
|
}
|
|
return {list: getCompletions(token.string, keywords, options),
|
|
from: Pos(cur.line, token.start),
|
|
to: Pos(cur.line, token.end)};
|
|
}
|
|
|
|
CodeMirror.phpHint = function(editor, options) {
|
|
return scriptHint(editor, phpPMFunctions, function (e, cur) {return e.getTokenAt(cur);}, options);
|
|
};
|
|
|
|
var SPACE = " ";
|
|
var arrayFunctions = [];
|
|
|
|
var formatDate = "formatDate";
|
|
var formatDateFunction = [formatDate+"($date,$format,$language);",formatDate+"($date,$format);"];
|
|
arrayFunctions[formatDate] = formatDateFunction;
|
|
|
|
var getCurrentDate = "getCurrentDate";
|
|
var getCurrentDateFunction = [getCurrentDate+"()"];
|
|
arrayFunctions[getCurrentDate] = getCurrentDateFunction;
|
|
|
|
var getCurrentTime = "getCurrentTime";
|
|
var getCurrentTimeFunction = [getCurrentTime+"()"];
|
|
arrayFunctions[getCurrentTime] = getCurrentTimeFunction;
|
|
|
|
var literalDate = "literalDate";
|
|
var literalDateFunction = [literalDate+"($date,$Language)",literalDate+"($date)"];
|
|
arrayFunctions[literalDate] = literalDateFunction;
|
|
|
|
var capitalize = "capitalize";
|
|
var capitalizeFunction = [capitalize+"($textToConvert)"];
|
|
arrayFunctions[capitalize] = capitalizeFunction;
|
|
|
|
var lowerCase = "lowerCase";
|
|
var lowerCaseFunction = [lowerCase+"($textToConvert)"];
|
|
arrayFunctions[lowerCase] = lowerCaseFunction;
|
|
|
|
var upperCase = "upperCase";
|
|
var upperCaseFunction = [upperCase+"($textToConvert)"];
|
|
arrayFunctions[upperCase] = upperCaseFunction;
|
|
|
|
var userInfo = "userInfo";
|
|
var userInfoFunction = [userInfo+"($USER_ID)"];
|
|
arrayFunctions[userInfo] = userInfoFunction;
|
|
|
|
var executeQuery = "executeQuery";
|
|
var executeQueryFunction = [executeQuery+"($sqlStatement,$DBConnectionUID)",executeQuery+"($sqlStatement)"];
|
|
arrayFunctions[executeQuery] = executeQueryFunction;
|
|
|
|
var orderGrid = "orderGrid";
|
|
var orderGridFunction = ("orderGrid($gridName,$field,$criteria) orderGrid($gridName,$field)").split(SPACE);
|
|
arrayFunctions[orderGrid] = orderGridFunction;
|
|
|
|
var evaluateFunction = "evaluateFunction";
|
|
var evaluateFunctionFunction = [evaluateFunction+"($gridName,$Expression)"];
|
|
arrayFunctions[evaluateFunction] = evaluateFunctionFunction;
|
|
|
|
var PMFTotalCalculation = "PMFTotalCalculation";
|
|
var PMFTotalCalculationFunction = [PMFTotalCalculation + "($gridName, $field, 'function')"];
|
|
arrayFunctions[PMFTotalCalculation] = PMFTotalCalculationFunction;
|
|
|
|
var PMFTaskCase = "PMFTaskCase";
|
|
var PMFTaskCaseFunction = [PMFTaskCase+"($caseId)"];
|
|
arrayFunctions[PMFTaskCase] = PMFTaskCaseFunction;
|
|
|
|
var PMFTaskList = "PMFTaskList";
|
|
var PMFTaskListFunction = [PMFTaskList+"($userId)"];
|
|
arrayFunctions[PMFTaskList] = PMFTaskListFunction;
|
|
|
|
var PMFUserList = "PMFUserList";
|
|
var PMFUserListFunction = [PMFUserList+"()"];
|
|
arrayFunctions[PMFUserList] = PMFUserListFunction;
|
|
|
|
var PMFGroupList = "PMFGroupList";
|
|
var PMFGroupListFunction = [PMFGroupList+"()"];
|
|
arrayFunctions[PMFGroupList] = PMFGroupListFunction;
|
|
|
|
var PMFRoleList = "PMFRoleList";
|
|
var PMFRoleListFunction = [PMFRoleList+"()"];
|
|
arrayFunctions[PMFRoleList] = PMFRoleListFunction;
|
|
|
|
var PMFCaseList = "PMFCaseList";
|
|
var PMFCaseListFunction = [PMFCaseList+"($userId)",PMFCaseList+"()"];
|
|
arrayFunctions[PMFCaseList] = PMFCaseListFunction;
|
|
|
|
var PMFProcessList = "PMFProcessList";
|
|
var PMFProcessListFunction = [PMFProcessList+"()"];
|
|
arrayFunctions[PMFProcessList] = PMFProcessListFunction;
|
|
|
|
var PMFSendVariables = "PMFSendVariables";
|
|
var PMFSendVariablesFunction = [PMFSendVariables+"($caseId,$variables)"];
|
|
arrayFunctions[PMFSendVariables] = PMFSendVariablesFunction;
|
|
|
|
var PMFDerivateCase = "PMFDerivateCase";
|
|
var PMFDerivateCaseFunction = [PMFDerivateCase+"($caseId,$delegation,$executeTriggersBeforeAssigment)",PMFDerivateCase+"($caseId,$delegation)"];
|
|
arrayFunctions[PMFDerivateCase] = PMFDerivateCaseFunction;
|
|
|
|
var PMFNewCaseImpersonate = "PMFNewCaseImpersonate";
|
|
var PMFNewCaseImpersonateFunction = [PMFNewCaseImpersonate+"($processId,$userId,$variables)"];
|
|
arrayFunctions[PMFNewCaseImpersonate] = PMFNewCaseImpersonateFunction;
|
|
|
|
var PMFNewCase = "PMFNewCase";
|
|
var PMFNewCaseFunction = [PMFNewCase+"($processId,$userId,$taskId,$variables)"];
|
|
arrayFunctions[PMFNewCase] = PMFNewCaseFunction;
|
|
|
|
var PMFPauseCase = "PMFPauseCase";
|
|
var PMFPauseCaseFunction = [PMFPauseCase+"($caseUid,$delIndex,$userUid,$unpauseDate)",PMFPauseCase+"($caseUid,$delIndex,$userUid)"];
|
|
arrayFunctions[PMFPauseCase] = PMFPauseCaseFunction;
|
|
|
|
var PMFAssignUserToGroup = "PMFAssignUserToGroup";
|
|
var PMFAssignUserToGroupFunction = [PMFAssignUserToGroup+"($userId,$groupId)"];
|
|
arrayFunctions[PMFAssignUserToGroup] = PMFAssignUserToGroupFunction;
|
|
|
|
var PMFCreateUser = "PMFCreateUser";
|
|
var PMFCreateUserFunction = [PMFCreateUser+"($userId,$password,$firstname,$lastname,$email,$role)"];
|
|
arrayFunctions[PMFCreateUser] = PMFCreateUserFunction;
|
|
|
|
var PMFUpdateUser = "PMFUpdateUser";
|
|
var PMFUpdateUserFunction = [PMFUpdateUser+"($userUid,$userName,$firstName,$lastName,$email,$dueDate,$status,$role,$password)"];
|
|
arrayFunctions[PMFUpdateUser] = PMFUpdateUserFunction;
|
|
|
|
var PMFInformationUser = "PMFInformationUser";
|
|
var PMFInformationUserFunction = [PMFInformationUser+"($userUid)"];
|
|
arrayFunctions[PMFInformationUser] = PMFInformationUserFunction;
|
|
|
|
var generateCode = "generateCode";
|
|
var generateCodeFunction = [generateCode+"($size,$type)"];
|
|
arrayFunctions[generateCode] = generateCodeFunction;
|
|
|
|
var setCaseTrackerCode = "setCaseTrackerCode";
|
|
var setCaseTrackerCodeFunction = [setCaseTrackerCode+"($caseId,$code,$pin)"];
|
|
arrayFunctions[setCaseTrackerCode] = setCaseTrackerCodeFunction;
|
|
|
|
var jumping = "jumping";
|
|
var jumpingFunction = [jumping+"($caseId,$delegation)"];
|
|
arrayFunctions[jumping] = jumpingFunction;
|
|
|
|
var PMFRedirectToStep = "PMFRedirectToStep";
|
|
var PMFRedirectToStepFunction = [PMFRedirectToStep+"($caseId,$delegation,$stepType,$stepId)"];
|
|
arrayFunctions[PMFRedirectToStep] = PMFRedirectToStepFunction;
|
|
|
|
var pauseCase = "pauseCase";
|
|
var pauseCaseFunction = [pauseCase+"($caseId,$delegation,$userId,$unpauseDate)",pauseCase+"($caseId,$delegation,$userId)"];
|
|
arrayFunctions[pauseCase] = pauseCaseFunction;
|
|
|
|
var PMFUnpauseCase = "PMFUnpauseCase";
|
|
var PMFUnpauseCaseFunction = [PMFUnpauseCase+"($caseId,$delegation,$userId,$unpauseDate)",PMFUnpauseCase+"($caseId,$delegation,$userId)"];
|
|
arrayFunctions[PMFUnpauseCase] = PMFUnpauseCaseFunction;
|
|
|
|
var PMFSendMessage = "PMFSendMessage";
|
|
var PMFSendMessageFunction = [PMFSendMessage+"($caseId,$from,$to,$cc,$bcc,$subject,$template,$fields,$attachments)",PMFSendMessage+"($caseId,$from,$to,$cc,$bcc,$subject,$template,$fields)",PMFSendMessage+"($caseId,$from,$to,$cc,$bcc,$subject,$template)"];
|
|
arrayFunctions[PMFSendMessage] = PMFSendMessageFunction;
|
|
|
|
var PMFgetLabelOption = "PMFgetLabelOption";
|
|
var PMFgetLabelOptionFunction = [PMFgetLabelOption+"($processId,$dynaformId,$fieldName,$optionId)"];
|
|
arrayFunctions[PMFgetLabelOption] = PMFgetLabelOptionFunction;
|
|
|
|
var PMFGenerateOutputDocument = "PMFGenerateOutputDocument";
|
|
var PMFGenerateOutputDocumentFunction = [PMFGenerateOutputDocument+"($outputID)"];
|
|
arrayFunctions[PMFGenerateOutputDocument] = PMFGenerateOutputDocumentFunction;
|
|
|
|
var PMFGetUserEmailAddress = "PMFGetUserEmailAddress";
|
|
var PMFGetUserEmailAddressFunction = [PMFGetUserEmailAddress+"($id,$APP_UID,$prefix)",PMFGetUserEmailAddress+"($id,$APP_UID)",PMFGetUserEmailAddress+"($id)"];
|
|
arrayFunctions[PMFGetUserEmailAddress] = PMFGetUserEmailAddressFunction;
|
|
|
|
var PMFGetNextAssignedUser = "PMFGetNextAssignedUser";
|
|
var PMFGetNextAssignedUserFunction = (PMFGetNextAssignedUser+"($application,$task)").split(SPACE);
|
|
arrayFunctions[PMFGetNextAssignedUser] = PMFGetNextAssignedUserFunction;
|
|
|
|
var PMFDeleteCase = "PMFDeleteCase";
|
|
var PMFDeleteCaseFunction = ("PMFDeleteCase($caseId)").split(SPACE);
|
|
arrayFunctions[PMFDeleteCase] = PMFDeleteCaseFunction;
|
|
|
|
var PMFCancelCase = "PMFCancelCase";
|
|
var PMFCancelCaseFunction = [PMFCancelCase+"($caseUid,$delIndex,$userUid)"];
|
|
arrayFunctions[PMFCancelCase] = PMFCancelCaseFunction;
|
|
|
|
var PMFAddInputDocument = "PMFAddInputDocument";
|
|
var PMFAddInputDocumentFunction = [PMFAddInputDocument+"($inputDocumentUid,$appDocUid,$docVersion,$appDocType,$appDocComment,$inputDocumentAction,$caseUid,$delIndex,$taskUid,$userUid,$option,$file)",PMFAddInputDocument+"($inputDocumentUid,$appDocUid,$docVersion,$appDocType,$appDocComment,$inputDocumentAction,$caseUid,$delIndex,$taskUid,$userUid,$option)",PMFAddInputDocument+"($inputDocumentUid,$appDocUid,$docVersion,$appDocType,$appDocComment,$inputDocumentAction,$caseUid,$delIndex,$taskUid,$userUid)"];
|
|
arrayFunctions[PMFAddInputDocument] = PMFAddInputDocumentFunction;
|
|
|
|
var PMFAddCaseNote = "PMFAddCaseNote";
|
|
var PMFAddCaseNoteFunction = [PMFAddCaseNote+"($caseUid,$processUid,$taskUid,$userUid,$note,$sendMail)"];
|
|
arrayFunctions[PMFAddCaseNote] = PMFAddCaseNoteFunction;
|
|
|
|
var PMFGetCaseNotes = "PMFGetCaseNotes";
|
|
var PMFGetCaseNotesFunction = [PMFGetCaseNotes+"($applicationID,$type,$userUid);",PMFGetCaseNotes+"($applicationID,$type)",PMFGetCaseNotes+"($applicationID)"];
|
|
arrayFunctions[PMFGetCaseNotes] = PMFGetCaseNotesFunction;
|
|
|
|
var phpPMFunctions = [formatDate,getCurrentDate,getCurrentTime,literalDate,capitalize,lowerCase,upperCase,userInfo,executeQuery,orderGrid,
|
|
evaluateFunction, PMFTotalCalculation, PMFTaskCase,PMFTaskList,PMFUserList,PMFGroupList,PMFRoleList,PMFCaseList,PMFProcessList,PMFSendVariables,PMFDerivateCase,
|
|
PMFNewCaseImpersonate,PMFNewCase,PMFPauseCase,PMFUnpauseCase,PMFAssignUserToGroup,PMFCreateUser,PMFUpdateUser,PMFInformationUser,
|
|
generateCode,setCaseTrackerCode,jumping,PMFRedirectToStep,pauseCase,PMFSendMessage,PMFgetLabelOption,PMFGenerateOutputDocument,
|
|
PMFGetUserEmailAddress,PMFGetNextAssignedUser,PMFDeleteCase,PMFCancelCase,PMFAddInputDocument,PMFAddCaseNote,PMFGetCaseNotes];
|
|
|
|
var phpKeywords = ("break case catch continue default do else false for function " +
|
|
"if new return switch throw true try var while").split(SPACE);
|
|
|
|
function getCompletions(functionName, keywords, options) {
|
|
|
|
var found = [];
|
|
|
|
function maybeAdd(str) {// for keywords ?
|
|
if ( str.indexOf(functionName) == 0 && !arrayContains(found, str)) {
|
|
found.push(str);
|
|
}
|
|
}
|
|
|
|
function yesAdd(str) {
|
|
if ( !arrayContains(found, str)) {
|
|
found.push(str);
|
|
}
|
|
}
|
|
|
|
arrayFunction = arrayFunctions[functionName];
|
|
|
|
if (arrayFunction != undefined) {
|
|
forEach( arrayFunction, yesAdd);
|
|
} else {
|
|
if (functionName.trim() == "") {
|
|
forEach (phpKeywords, yesAdd);
|
|
forEach (keywords, yesAdd);
|
|
} else if (functionName == "=") {
|
|
forEach (phpPMFunctions, yesAdd);
|
|
} else {
|
|
for (index = 0; index < phpKeywords.length; index++) {
|
|
if ( phpKeywords[index].indexOf(functionName) == 0 ) {
|
|
found.push(phpKeywords[index]);
|
|
}
|
|
}
|
|
forEach(keywords, maybeAdd);
|
|
}
|
|
}
|
|
return found;
|
|
}
|
|
})();
|