public GroovyResult execute(final ScriptDO script, final List<ScriptParameter> parameters) { hasLoggedInUserSelectAccess(script, true); final ReportGeneratorList reportGeneratorList = new ReportGeneratorList(); final Map<String, Object> scriptVariables = new HashMap<String, Object>(); addScriptVariables(scriptVariables); scriptVariables.put("reportList", reportGeneratorList); if (parameters != null) { for (final ScriptParameter param : parameters) { scriptVariables.put(param.getParameterName(), param.getValue()); } } if (script.getFile() != null) { final Map<String, Object> scriptVars = new HashMap<String, Object>(); scriptVariables.put("script", scriptVars); scriptVars.put("file", script.getFile()); scriptVars.put("filename", script.getFilename()); } scriptVariables.put("i18n", new I18n()); String scriptContent = script.getScriptAsString(); if (scriptContent.contains("import org.projectforge.export")) { // Package was renamed in version 5.2 and 6.13: scriptContent = scriptContent.replace("import org.projectforge.export", "import org.projectforge.export.*\nimport org.projectforge.business.excel"); } groovyResult = groovyExecutor.execute(new GroovyResult(), scriptContent, scriptVariables); return groovyResult; }
private void prefillParameters() { final RecentScriptCalls recents = parentPage.getRecentScriptCalls(); final ScriptCallData scriptCallData = recents.getScriptCallData(data.getName()); if (scriptCallData != null && scriptCallData.getScriptParameter() != null) { for (final ScriptParameter recentParameter : scriptCallData.getScriptParameter()) { for (final ScriptParameter parameter : scriptParameters) { if (StringUtils.equals(parameter.getParameterName(), recentParameter.getParameterName()) == true) { if (parameter.getType() == recentParameter.getType()) { // Copy only if type matches if (parameter.getType() == ScriptParameterType.TASK) { final TaskDO task = taskDao.getById(recentParameter.getIntValue()); parameter.setTask(task); } else if (parameter.getType() == ScriptParameterType.USER) { final PFUserDO user = userDao.getById(recentParameter.getIntValue()); parameter.setUser(user); } else { parameter.setValue(recentParameter.getValue()); } } break; } // if parameterNames are equal. } // for script parameters } // for recent parameters. } // if scriptCallData is given }
fieldSetsPanel = gridBuilder.getPanel(); for (final ScriptParameter parameter : scriptParameters) { final FieldsetPanel fs = gridBuilder.newFieldset(StringUtils.capitalize(parameter.getParameterName()), getString("scripting.script.parameter") + " " + (index + 1)); parameterFieldsets[index] = fs;