use of org.olat.core.gui.components.form.flexible.impl.Form in project openolat by klemens.
the class TextBoxListRenderer method renderEnabledMode.
/**
* renders the component in Enabled / editable mode
*
* @param tblComponent
* the component to render
* @param sb
* the StringOutput
* @param translator
*/
private void renderEnabledMode(TextBoxListComponent tblComponent, StringOutput sb, Translator translator) {
TextBoxListElementImpl te = ((TextBoxListElementComponent) tblComponent).getTextElementImpl();
Form rootForm = te.getRootForm();
String dispatchId = tblComponent.getFormDispatchId();
String initialValue = tblComponent.getItemsAsString();
sb.append("<input type='text' id='textboxlistinput").append(dispatchId).append("'").append(" name='textboxlistinput").append(dispatchId).append("'");
if (te.hasFocus()) {
sb.append(" autofocus");
}
sb.append(" value='").append(initialValue).append("'");
Translator myTrans = Util.createPackageTranslator(this.getClass(), translator.getLocale());
sb.append(" placeholder='").append(Formatter.escapeDoubleQuotes(myTrans.translate("add.enter"))).append("' class='o_textbox'/>\n");
String o_ffEvent = FormJSHelper.getJSFnCallFor(rootForm, dispatchId, 2);
// generate the JS-code for the bootstrap tagsinput
sb.append(FormJSHelper.getJSStart()).append("jQuery(function(){\n").append(" jQuery('#textboxlistinput").append(dispatchId).append("').tagsinput({\n");
if (tblComponent.getProvider() != null) {
sb.append(" typeahead: {\n").append(" source: function() {").append(" return jQuery.getJSON('").append(tblComponent.getMapperUri()).append("');").append(" }").append(" }\n");
}
sb.append(" });\n").append(" jQuery('#textboxlistinput").append(dispatchId).append("').on('itemAdded itemRemoved',function(event) {\n").append(o_ffEvent).append(";\n").append(" });\n").append("});\n").append(FormJSHelper.getJSEnd());
}
use of org.olat.core.gui.components.form.flexible.impl.Form in project openolat by klemens.
the class FullCalendarComponentRenderer method render.
@Override
public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) {
FullCalendarComponent fcC = (FullCalendarComponent) source;
FullCalendarElement fcE = fcC.getCalendarElement();
Form rootForm = fcE.getRootForm();
String id = "o_c".concat(fcC.getDispatchID());
String formId = fcE.getFormDispatchId();
String printId = "fc_p".concat(fcC.getDispatchID());
String configId = "fc_x".concat(fcC.getDispatchID());
String aggregatedId = "fc_g".concat(fcC.getDispatchID());
Calendar cal = Calendar.getInstance(fcC.getTranslator().getLocale());
int firstDay = cal.getFirstDayOfWeek() - 1;
cal = Calendar.getInstance();
cal.setTime(fcC.getCurrentDate());
Calendar calRef = Calendar.getInstance(fcC.getTranslator().getLocale());
calRef.set(Calendar.DATE, 25);
calRef.set(Calendar.MONTH, 11);
calRef.set(Calendar.YEAR, 2013);
String formatted = DateFormat.getDateInstance(DateFormat.SHORT, fcC.getTranslator().getLocale()).format(calRef.getTime());
boolean firstMonth = (formatted.indexOf("12") < formatted.indexOf("25"));
String amFormatted = DateFormat.getTimeInstance(DateFormat.SHORT, fcC.getTranslator().getLocale()).format(calRef.getTime());
boolean ampm = amFormatted.contains("AM") || amFormatted.contains("PM");
sb.append("<script type='text/javascript'>\n").append("/* <![CDATA[ */ \n").append("jQuery(function() {\n").append(" jQuery('#").append(id).append("').fullCalendar( {\n").append(" header: {\n").append(" left: 'prev,print,next today',\n").append(" center: 'title',\n").append(" right: 'month,agendaWeek,agendaDay'\n").append(" },\n").append(" buttonText: {\n").append(" today: '").append(escapeJavaScript(translator.translate("cal.thisweek"))).append("',\n").append(" month: '").append(escapeJavaScript(translator.translate("cal.month"))).append("',\n").append(" day: '").append(escapeJavaScript(translator.translate("cal.day"))).append("',\n").append(" week: '").append(escapeJavaScript(translator.translate("cal.week"))).append("',\n").append(" print: '").append(escapeJavaScript(translator.translate("print"))).append("'\n").append(" },\n").append(" monthNames: ").append(getMonthLong(translator)).append(",\n").append(" monthNamesShort: ").append(getMonthShort(translator)).append(",\n").append(" dayNames: ").append(getDayLong(translator)).append(",\n").append(" dayNamesShort: ").append(getDayShort(translator)).append(",\n").append(" allDayText:'").append(translator.translate("cal.form.allday")).append("',\n").append(" axisFormat:'").append(ampm ? "h(:mm)tt" : "H.mm").append("',\n").append(" timeFormat:'").append(ampm ? "h(:mm)tt" : "H.mm").append("',\n").append(" titleFormat: {\n").append(" month: 'MMMM yyyy',\n").append(" week: ").append(firstMonth ? "\"MMM d[ yyyy]{ '—'[ MMM] d yyyy}\"" : "\"d. [ MMM] [ yyyy]{ '—' d. MMM yyyy}\"").append(",\n").append(" day: ").append(firstMonth ? "'dddd, MMM d, yyyy'" : "'dddd, d. MMM yyyy'").append("\n").append(" },\n").append(" columnFormat: {\n").append(" month: 'ddd',\n").append(" week: ").append(firstMonth ? "'ddd M/d'" : "'ddd d.M.'").append(",\n").append(" day: ").append(firstMonth ? "'dddd M/d'" : "'dddd d.M.'").append("\n").append(" },\n").append(" year:").append(cal.get(Calendar.YEAR)).append(",\n").append(" month:").append(cal.get(Calendar.MONTH)).append(",\n").append(" date:").append(cal.get(Calendar.DAY_OF_MONTH)).append(",\n").append(" firstDay:").append(firstDay).append(",\n").append(" defaultView:'").append(fcC.getViewName()).append("',\n").append(" weekNumbers: true,\n").append(" editable: true,\n").append(" selectable: true,\n").append(" selectHelper: true,\n").append(" eventSources:[");
int count = 0;
for (KalendarRenderWrapper calWrapper : fcC.getCalendars()) {
if (fcC.isCalendarVisible(calWrapper)) {
String calId = calWrapper.getKalendar().getCalendarID();
String color = calWrapper.getCssClass();
if (StringHelper.containsNonWhitespace(color) && color.startsWith("o_cal_")) {
color = color.substring(6, color.length());
}
if (count++ != 0)
sb.append(",");
sb.append("{\n").append(" url:'").append(fcC.getMapperUrl()).append("/").append(calId).append(".json',\n").append(" color:'").append(color).append("'\n").append("}");
}
}
sb.append(" ],\n").append(" eventAfterRender: function(event, element, view) {\n").append(" element.each(function(index, el) {\n").append(" jQuery(el).attr('id', 'o_cev_' + view.name + '_' + event.id);\n").append(" });\n").append(" },\n").append(" viewDisplay: function(view) {\n").append(FormJSHelper.generateXHRFnCallVariables(rootForm, formId, 1)).append(" o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt, true, false, false, 'evChangeView',view.name,'start',view.start.getTime());\n").append(" },\n").append(" eventDrop: function(calEvent, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view) {\n").append(FormJSHelper.generateXHRFnCallVariables(rootForm, formId, 1)).append(" o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt, true, false, false, 'evMove',calEvent.id,'dayDelta',dayDelta,'minuteDelta',minuteDelta,'allDay',allDay);\n").append(" },\n").append(" eventResize: function(calEvent, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view) {\n").append(FormJSHelper.generateXHRFnCallVariables(rootForm, formId, 1)).append(" o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt, true, false, false, 'evResize',calEvent.id,'dayDelta',dayDelta,'minuteDelta',minuteDelta,'allDay',allDay);\n").append(" },\n").append(" select: function(startDate, endDate, allDay, jsEvent, view) {\n").append(FormJSHelper.generateXHRFnCallVariables(rootForm, formId, 1)).append(" o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt, true, false, false, 'evAdd','new','start',startDate.getTime(),'end',endDate.getTime(),'allDay',allDay);\n").append(" },\n").append(" eventClick: function(calEvent, jsEvent, view) {\n").append(FormJSHelper.generateXHRFnCallVariables(rootForm, formId, 1)).append(" o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt, true, false, false, 'evSelect',calEvent.id,'evDomId','o_cev_' + view.name + '_' + calEvent.id);\n").append(" }\n").append(" });\n").append(" jQuery('.fc-header-left').append('<span class=\"fc-header-space\"></span><span id=\"").append(printId).append("\" class=\"fc-button fc-button-print fc-state-default fc-corner-left fc-corner-right\">").append(" <span title=\"").append(translator.translate("print")).append("\"><i class=\"o_icon o_icon_print\"> </i></span></span>');\n").append(" jQuery('.fc-button-print').click(function () {\n").append(FormJSHelper.generateXHRFnCallVariables(rootForm, formId, 1)).append(" o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt, false, false, false, 'print','print');\n").append(" });\n");
if (fcC.isConfigurationEnabled()) {
// config button
sb.append(" jQuery('.fc-header-left').append('<span class=\"fc-header-space\"></span><span id=\"").append(configId).append("\" class=\"fc-button fc-button-config fc-state-default fc-corner-left fc-corner-right\">").append(" <span title=\"").append(translator.translate("cal.configuration.tooltip")).append("\"><i class=\"o_icon o_icon_customize\"> </i></span></span>');\n").append(" jQuery('.fc-button-config').click(function () {\n").append(FormJSHelper.generateXHRFnCallVariables(rootForm, formId, 1)).append(" o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt, false, false, false, 'config', 'config');\n").append(" });\n");
}
if (fcC.isAggregatedFeedEnabled()) {
// aggregated button
sb.append(" jQuery('.fc-header-left').append('<span class=\"fc-header-space\"></span><span id=\"").append(aggregatedId).append("\" class=\"fc-button fc-button-aggregate fc-state-default fc-corner-left fc-corner-right\">").append("<span title=\"").append(translator.translate("cal.icalfeed.aggregated.tooltip")).append("\"><i class=\"o_icon o_icon_rss\"> </i></span></span>');\n").append(" jQuery('.fc-button-aggregate').click(function () {\n").append(FormJSHelper.generateXHRFnCallVariables(rootForm, formId, 1)).append(" o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt, false, false, false, 'aggregate','aggregate');\n").append(" });\n");
}
sb.append("});\n").append("/* ]]> */\n").append("</script>");
}
use of org.olat.core.gui.components.form.flexible.impl.Form in project OpenOLAT by OpenOLAT.
the class TreeNodeFlexiCellRenderer method renderIndented.
private void renderIndented(Renderer renderer, StringOutput target, Object cellValue, int row, FlexiTableComponent source, URLBuilder ubu, Translator translator) {
FlexiTableElementImpl ftE = source.getFlexiTableElement();
FlexiTreeTableDataModel<?> treeTableModel = ftE.getTreeTableDataModel();
String id = source.getFormDispatchId();
Form rootForm = ftE.getRootForm();
// indentation
int indentation = treeTableModel.getIndentation(row);
boolean hasChildren = treeTableModel.hasChildren(row);
target.append("<div class='o_table_flexi_l").append(indentation).append(" o_table_flexi_leaf", !hasChildren).append("'>");
if (hasChildren) {
NameValuePair pair;
boolean open = treeTableModel.isOpen(row);
if (open) {
pair = new NameValuePair("tt-close", Integer.toString(row));
} else {
pair = new NameValuePair("tt-open", Integer.toString(row));
}
String jsCode = FormJSHelper.getXHRFnCallFor(rootForm, id, 1, true, true, pair);
target.append("<a href=\"javascript:").append(jsCode).append(";\"><i class='o_icon o_icon-fw ");
if (open) {
target.append("o_icon_close_tree");
} else {
target.append("o_icon_open_tree");
}
target.append("'> </i></a> ");
}
NameValuePair pair = new NameValuePair("tt-focus", Integer.toString(row));
String jsCode = FormJSHelper.getXHRFnCallFor(rootForm, id, 1, false, false, pair);
target.append("<a href=\"javascript:").append(jsCode).append(";\">");
labelDelegate.render(renderer, target, cellValue, row, source, ubu, translator);
target.append("</a></div>");
}
use of org.olat.core.gui.components.form.flexible.impl.Form in project OpenOLAT by OpenOLAT.
the class TextBoxListRenderer method renderEnabledMode.
/**
* renders the component in Enabled / editable mode
*
* @param tblComponent
* the component to render
* @param sb
* the StringOutput
* @param translator
*/
private void renderEnabledMode(TextBoxListComponent tblComponent, StringOutput sb, Translator translator) {
TextBoxListElementImpl te = ((TextBoxListElementComponent) tblComponent).getTextElementImpl();
Form rootForm = te.getRootForm();
String dispatchId = tblComponent.getFormDispatchId();
String initialValue = tblComponent.getItemsAsString();
sb.append("<input type='text' id='textboxlistinput").append(dispatchId).append("'").append(" name='textboxlistinput").append(dispatchId).append("'");
if (te.hasFocus()) {
sb.append(" autofocus");
}
sb.append(" value='").append(initialValue).append("'");
Translator myTrans = Util.createPackageTranslator(this.getClass(), translator.getLocale());
sb.append(" placeholder='").append(Formatter.escapeDoubleQuotes(myTrans.translate("add.enter"))).append("' class='o_textbox'/>\n");
String o_ffEvent = FormJSHelper.getJSFnCallFor(rootForm, dispatchId, 2);
// generate the JS-code for the bootstrap tagsinput
sb.append(FormJSHelper.getJSStart()).append("jQuery(function(){\n").append(" jQuery('#textboxlistinput").append(dispatchId).append("').tagsinput({\n");
if (tblComponent.getProvider() != null) {
sb.append(" typeahead: {\n").append(" source: function() {").append(" return jQuery.getJSON('").append(tblComponent.getMapperUri()).append("');").append(" }").append(" }\n");
}
sb.append(" });\n").append(" jQuery('#textboxlistinput").append(dispatchId).append("').on('itemAdded itemRemoved',function(event) {\n").append(o_ffEvent).append(";\n").append(" });\n").append("});\n").append(FormJSHelper.getJSEnd());
}
use of org.olat.core.gui.components.form.flexible.impl.Form in project OpenOLAT by OpenOLAT.
the class FullCalendarComponentRenderer method render.
@Override
public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) {
FullCalendarComponent fcC = (FullCalendarComponent) source;
FullCalendarElement fcE = fcC.getCalendarElement();
Form rootForm = fcE.getRootForm();
String id = "o_c".concat(fcC.getDispatchID());
String formId = fcE.getFormDispatchId();
String printId = "fc_p".concat(fcC.getDispatchID());
String configId = "fc_x".concat(fcC.getDispatchID());
String aggregatedId = "fc_g".concat(fcC.getDispatchID());
Calendar cal = Calendar.getInstance(fcC.getTranslator().getLocale());
int firstDay = cal.getFirstDayOfWeek() - 1;
cal = Calendar.getInstance();
cal.setTime(fcC.getCurrentDate());
Calendar calRef = Calendar.getInstance(fcC.getTranslator().getLocale());
calRef.set(Calendar.DATE, 25);
calRef.set(Calendar.MONTH, 11);
calRef.set(Calendar.YEAR, 2013);
String formatted = DateFormat.getDateInstance(DateFormat.SHORT, fcC.getTranslator().getLocale()).format(calRef.getTime());
boolean firstMonth = (formatted.indexOf("12") < formatted.indexOf("25"));
String amFormatted = DateFormat.getTimeInstance(DateFormat.SHORT, fcC.getTranslator().getLocale()).format(calRef.getTime());
boolean ampm = amFormatted.contains("AM") || amFormatted.contains("PM");
sb.append("<script type='text/javascript'>\n").append("/* <![CDATA[ */ \n").append("jQuery(function() {\n").append(" jQuery('#").append(id).append("').fullCalendar( {\n").append(" header: {\n").append(" left: 'prev,print,next today',\n").append(" center: 'title',\n").append(" right: 'month,agendaWeek,agendaDay'\n").append(" },\n").append(" buttonText: {\n").append(" today: '").append(escapeJavaScript(translator.translate("cal.thisweek"))).append("',\n").append(" month: '").append(escapeJavaScript(translator.translate("cal.month"))).append("',\n").append(" day: '").append(escapeJavaScript(translator.translate("cal.day"))).append("',\n").append(" week: '").append(escapeJavaScript(translator.translate("cal.week"))).append("',\n").append(" print: '").append(escapeJavaScript(translator.translate("print"))).append("'\n").append(" },\n").append(" monthNames: ").append(getMonthLong(translator)).append(",\n").append(" monthNamesShort: ").append(getMonthShort(translator)).append(",\n").append(" dayNames: ").append(getDayLong(translator)).append(",\n").append(" dayNamesShort: ").append(getDayShort(translator)).append(",\n").append(" allDayText:'").append(translator.translate("cal.form.allday")).append("',\n").append(" axisFormat:'").append(ampm ? "h(:mm)tt" : "H.mm").append("',\n").append(" timeFormat:'").append(ampm ? "h(:mm)tt" : "H.mm").append("',\n").append(" titleFormat: {\n").append(" month: 'MMMM yyyy',\n").append(" week: ").append(firstMonth ? "\"MMM d[ yyyy]{ '—'[ MMM] d yyyy}\"" : "\"d. [ MMM] [ yyyy]{ '—' d. MMM yyyy}\"").append(",\n").append(" day: ").append(firstMonth ? "'dddd, MMM d, yyyy'" : "'dddd, d. MMM yyyy'").append("\n").append(" },\n").append(" columnFormat: {\n").append(" month: 'ddd',\n").append(" week: ").append(firstMonth ? "'ddd M/d'" : "'ddd d.M.'").append(",\n").append(" day: ").append(firstMonth ? "'dddd M/d'" : "'dddd d.M.'").append("\n").append(" },\n").append(" year:").append(cal.get(Calendar.YEAR)).append(",\n").append(" month:").append(cal.get(Calendar.MONTH)).append(",\n").append(" date:").append(cal.get(Calendar.DAY_OF_MONTH)).append(",\n").append(" firstDay:").append(firstDay).append(",\n").append(" defaultView:'").append(fcC.getViewName()).append("',\n").append(" weekNumbers: true,\n").append(" editable: true,\n").append(" selectable: true,\n").append(" selectHelper: true,\n").append(" eventSources:[");
int count = 0;
for (KalendarRenderWrapper calWrapper : fcC.getCalendars()) {
if (fcC.isCalendarVisible(calWrapper)) {
String calId = calWrapper.getKalendar().getCalendarID();
String color = calWrapper.getCssClass();
if (StringHelper.containsNonWhitespace(color) && color.startsWith("o_cal_")) {
color = color.substring(6, color.length());
}
if (count++ != 0)
sb.append(",");
sb.append("{\n").append(" url:'").append(fcC.getMapperUrl()).append("/").append(calId).append(".json',\n").append(" color:'").append(color).append("'\n").append("}");
}
}
sb.append(" ],\n").append(" eventAfterRender: function(event, element, view) {\n").append(" element.each(function(index, el) {\n").append(" jQuery(el).attr('id', 'o_cev_' + view.name + '_' + event.id);\n").append(" });\n").append(" },\n").append(" viewDisplay: function(view) {\n").append(FormJSHelper.generateXHRFnCallVariables(rootForm, formId, 1)).append(" o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt, true, false, false, 'evChangeView',view.name,'start',view.start.getTime());\n").append(" },\n").append(" eventDrop: function(calEvent, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view) {\n").append(FormJSHelper.generateXHRFnCallVariables(rootForm, formId, 1)).append(" o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt, true, false, false, 'evMove',calEvent.id,'dayDelta',dayDelta,'minuteDelta',minuteDelta,'allDay',allDay);\n").append(" },\n").append(" eventResize: function(calEvent, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view) {\n").append(FormJSHelper.generateXHRFnCallVariables(rootForm, formId, 1)).append(" o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt, true, false, false, 'evResize',calEvent.id,'dayDelta',dayDelta,'minuteDelta',minuteDelta,'allDay',allDay);\n").append(" },\n").append(" select: function(startDate, endDate, allDay, jsEvent, view) {\n").append(FormJSHelper.generateXHRFnCallVariables(rootForm, formId, 1)).append(" o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt, true, false, false, 'evAdd','new','start',startDate.getTime(),'end',endDate.getTime(),'allDay',allDay);\n").append(" },\n").append(" eventClick: function(calEvent, jsEvent, view) {\n").append(FormJSHelper.generateXHRFnCallVariables(rootForm, formId, 1)).append(" o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt, true, false, false, 'evSelect',calEvent.id,'evDomId','o_cev_' + view.name + '_' + calEvent.id);\n").append(" }\n").append(" });\n").append(" jQuery('.fc-header-left').append('<span class=\"fc-header-space\"></span><span id=\"").append(printId).append("\" class=\"fc-button fc-button-print fc-state-default fc-corner-left fc-corner-right\">").append(" <span title=\"").append(translator.translate("print")).append("\"><i class=\"o_icon o_icon_print\"> </i></span></span>');\n").append(" jQuery('.fc-button-print').click(function () {\n").append(FormJSHelper.generateXHRFnCallVariables(rootForm, formId, 1)).append(" o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt, false, false, false, 'print','print');\n").append(" });\n");
if (fcC.isConfigurationEnabled()) {
// config button
sb.append(" jQuery('.fc-header-left').append('<span class=\"fc-header-space\"></span><span id=\"").append(configId).append("\" class=\"fc-button fc-button-config fc-state-default fc-corner-left fc-corner-right\">").append(" <span title=\"").append(translator.translate("cal.configuration.tooltip")).append("\"><i class=\"o_icon o_icon_customize\"> </i></span></span>');\n").append(" jQuery('.fc-button-config').click(function () {\n").append(FormJSHelper.generateXHRFnCallVariables(rootForm, formId, 1)).append(" o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt, false, false, false, 'config', 'config');\n").append(" });\n");
}
if (fcC.isAggregatedFeedEnabled()) {
// aggregated button
sb.append(" jQuery('.fc-header-left').append('<span class=\"fc-header-space\"></span><span id=\"").append(aggregatedId).append("\" class=\"fc-button fc-button-aggregate fc-state-default fc-corner-left fc-corner-right\">").append("<span title=\"").append(translator.translate("cal.icalfeed.aggregated.tooltip")).append("\"><i class=\"o_icon o_icon_rss\"> </i></span></span>');\n").append(" jQuery('.fc-button-aggregate').click(function () {\n").append(FormJSHelper.generateXHRFnCallVariables(rootForm, formId, 1)).append(" o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt, false, false, false, 'aggregate','aggregate');\n").append(" });\n");
}
sb.append("});\n").append("/* ]]> */\n").append("</script>");
}
Aggregations