parent
							
								
									005c7fa7ef
								
							
						
					
					
						commit
						9905cc769d
					
				@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.GlobalSettings;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public interface GlobalSettingsDao extends BaseDao<GlobalSettings> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.dao.jpa;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.dao.GlobalSettingsDao;
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.GlobalSettings;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class GlobalSettingsDaoJPA extends BaseDaoJPA<GlobalSettings> implements
 | 
				
			||||||
 | 
							GlobalSettingsDao {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.persistence.Column;
 | 
				
			||||||
 | 
					import javax.persistence.Entity;
 | 
				
			||||||
 | 
					import javax.persistence.Table;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Entity
 | 
				
			||||||
 | 
					@Table(name = "GLOBALSETTINGS")
 | 
				
			||||||
 | 
					public class GlobalSettings extends BaseData {
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Column(name = "DATA", length = 1048576)
 | 
				
			||||||
 | 
						private String data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public String getData() {
 | 
				
			||||||
 | 
							return data;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void setData(String data) {
 | 
				
			||||||
 | 
							this.data = data;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.mail.MailMessage;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class SettingsData {
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						private boolean enableRequirements;
 | 
				
			||||||
 | 
						private MailMessage newReqTemplate;
 | 
				
			||||||
 | 
						private MailMessage authReqTemplate;
 | 
				
			||||||
 | 
						private MailMessage confReqTemplate;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public SettingsData() {
 | 
				
			||||||
 | 
							newReqTemplate = new MailMessage();
 | 
				
			||||||
 | 
							authReqTemplate = new MailMessage();
 | 
				
			||||||
 | 
							confReqTemplate = new MailMessage();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public boolean isEnableRequirements() {
 | 
				
			||||||
 | 
							return enableRequirements;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void setEnableRequirements(boolean enableRequirements) {
 | 
				
			||||||
 | 
							this.enableRequirements = enableRequirements;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public MailMessage getNewReqTemplate() {
 | 
				
			||||||
 | 
							return newReqTemplate;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void setNewReqTemplate(MailMessage newReqTemplate) {
 | 
				
			||||||
 | 
							this.newReqTemplate = newReqTemplate;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public MailMessage getAuthReqTemplate() {
 | 
				
			||||||
 | 
							return authReqTemplate;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void setAuthReqTemplate(MailMessage authReqTemplate) {
 | 
				
			||||||
 | 
							this.authReqTemplate = authReqTemplate;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public MailMessage getConfReqTemplate() {
 | 
				
			||||||
 | 
							return confReqTemplate;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void setConfReqTemplate(MailMessage confReqTemplate) {
 | 
				
			||||||
 | 
							this.confReqTemplate = confReqTemplate;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,110 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.services.settings;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					import java.io.StringReader;
 | 
				
			||||||
 | 
					import java.io.StringWriter;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.exolab.castor.xml.MarshalException;
 | 
				
			||||||
 | 
					import org.exolab.castor.xml.Marshaller;
 | 
				
			||||||
 | 
					import org.exolab.castor.xml.Unmarshaller;
 | 
				
			||||||
 | 
					import org.exolab.castor.xml.ValidationException;
 | 
				
			||||||
 | 
					import org.slf4j.Logger;
 | 
				
			||||||
 | 
					import org.slf4j.LoggerFactory;
 | 
				
			||||||
 | 
					import org.springframework.security.access.prepost.PreAuthorize;
 | 
				
			||||||
 | 
					import org.springframework.transaction.annotation.Transactional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.GlobalSettings;
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.SettingsData;
 | 
				
			||||||
 | 
					import info.bukova.isspst.services.AbstractOwnedService;
 | 
				
			||||||
 | 
					import info.bukova.isspst.services.IsspstException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class GlobalSettingServiceImpl extends AbstractOwnedService<GlobalSettings> implements
 | 
				
			||||||
 | 
							GlobalSettingsService {
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						private final static Logger log = LoggerFactory.getLogger(GlobalSettingsService.class);
 | 
				
			||||||
 | 
						private final static String MARSHAL_ERROR = "Cannot marshal settings data: ";
 | 
				
			||||||
 | 
						private final static String UNMARSHAL_ERROR = "Cannot unmarshal settings data: ";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private Marshaller marshaller;
 | 
				
			||||||
 | 
						private Unmarshaller unmarshaller;
 | 
				
			||||||
 | 
						private SettingsData settings;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public GlobalSettingServiceImpl(Marshaller marshaller, Unmarshaller unmarshaller) {
 | 
				
			||||||
 | 
							this.marshaller = marshaller;
 | 
				
			||||||
 | 
							this.unmarshaller = unmarshaller;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						@Transactional
 | 
				
			||||||
 | 
						@PreAuthorize("hasPermission(this, 'PERM_ADD')")
 | 
				
			||||||
 | 
						public void add(GlobalSettings entity) {
 | 
				
			||||||
 | 
							if (!this.getAll().isEmpty()) {
 | 
				
			||||||
 | 
								throw new IsspstException("Global settings allready exists");
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							if (entity.getData() == null || entity.getData().isEmpty()) {
 | 
				
			||||||
 | 
								SettingsData data = new SettingsData();
 | 
				
			||||||
 | 
								entity.setData(marshalData(data));
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							super.add(entity);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						private String marshalData(SettingsData data) {
 | 
				
			||||||
 | 
							StringWriter wr = new StringWriter();
 | 
				
			||||||
 | 
							try {
 | 
				
			||||||
 | 
								marshaller.setWriter(wr);
 | 
				
			||||||
 | 
								marshaller. marshal(data);
 | 
				
			||||||
 | 
							} catch (MarshalException e) {
 | 
				
			||||||
 | 
								log.error(MARSHAL_ERROR + e.getMessage());
 | 
				
			||||||
 | 
							} catch (ValidationException e) {
 | 
				
			||||||
 | 
								log.error(MARSHAL_ERROR + e.getMessage());
 | 
				
			||||||
 | 
							} catch (IOException e) {
 | 
				
			||||||
 | 
								log.error(MARSHAL_ERROR + e.getMessage());
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							return wr.toString();
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						private SettingsData unmarshalData(String data) {
 | 
				
			||||||
 | 
							StringReader sr = new StringReader(data);
 | 
				
			||||||
 | 
							try {
 | 
				
			||||||
 | 
								unmarshaller.setClass(SettingsData.class);
 | 
				
			||||||
 | 
								return (SettingsData) unmarshaller.unmarshal(sr);
 | 
				
			||||||
 | 
							} catch (MarshalException e) {
 | 
				
			||||||
 | 
								log.error(UNMARSHAL_ERROR + e.getMessage());
 | 
				
			||||||
 | 
							} catch (ValidationException e) {
 | 
				
			||||||
 | 
								log.error(UNMARSHAL_ERROR + e.getMessage());
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							return null;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						@Transactional
 | 
				
			||||||
 | 
						public SettingsData getSettings() {
 | 
				
			||||||
 | 
							if (settings == null) {
 | 
				
			||||||
 | 
								GlobalSettings gs = this.getAll().get(0);
 | 
				
			||||||
 | 
								settings = unmarshalData(gs.getData());
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return settings;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						@Transactional
 | 
				
			||||||
 | 
						@PreAuthorize("hasPermission(this, 'PERM_EDIT')")
 | 
				
			||||||
 | 
						public void updateSettings() {
 | 
				
			||||||
 | 
							if (this.getAll().isEmpty()) {
 | 
				
			||||||
 | 
								throw new IsspstException("Global settings does not exists");
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							GlobalSettings gs = this.getAll().get(0);
 | 
				
			||||||
 | 
							gs.setData(marshalData(settings));
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							super.update(gs);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.services.settings;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.GlobalSettings;
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.SettingsData;
 | 
				
			||||||
 | 
					import info.bukova.isspst.services.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public interface GlobalSettingsService extends Service<GlobalSettings> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void updateSettings();
 | 
				
			||||||
 | 
						public SettingsData getSettings();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,60 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.ui.settings;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.zkoss.bind.annotation.BindingParam;
 | 
				
			||||||
 | 
					import org.zkoss.bind.annotation.Command;
 | 
				
			||||||
 | 
					import org.zkoss.bind.annotation.Init;
 | 
				
			||||||
 | 
					import org.zkoss.bind.annotation.NotifyChange;
 | 
				
			||||||
 | 
					import org.zkoss.zk.ui.select.annotation.WireVariable;
 | 
				
			||||||
 | 
					import org.zkoss.zul.Window;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.Requirement;
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.SettingsData;
 | 
				
			||||||
 | 
					import info.bukova.isspst.mail.MailMessage;
 | 
				
			||||||
 | 
					import info.bukova.isspst.services.settings.GlobalSettingsService;
 | 
				
			||||||
 | 
					import info.bukova.isspst.sort.ReflectionTools;
 | 
				
			||||||
 | 
					import info.bukova.isspst.ui.LocaleConverter;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class GlobalSettingsVM {
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@WireVariable
 | 
				
			||||||
 | 
						private GlobalSettingsService settingsService;
 | 
				
			||||||
 | 
						private SettingsData settings;
 | 
				
			||||||
 | 
						private LocaleConverter locConverter;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Init
 | 
				
			||||||
 | 
						public void init() {
 | 
				
			||||||
 | 
							settings = settingsService.getSettings();
 | 
				
			||||||
 | 
							locConverter = new LocaleConverter();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public SettingsData getSettings() {
 | 
				
			||||||
 | 
							return settings;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Command
 | 
				
			||||||
 | 
						public void save(@BindingParam("window") Window window) {
 | 
				
			||||||
 | 
							settingsService.updateSettings();
 | 
				
			||||||
 | 
							window.detach();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public List<String> getRequirementFields() {
 | 
				
			||||||
 | 
							return ReflectionTools.getEntityFields(Requirement.class);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public boolean isCanSave() {
 | 
				
			||||||
 | 
							return true;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public LocaleConverter getLocConverter() {
 | 
				
			||||||
 | 
							return locConverter;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Command
 | 
				
			||||||
 | 
						@NotifyChange("settings")
 | 
				
			||||||
 | 
						public void insertField(@BindingParam("field") String field, @BindingParam("message") MailMessage message) {
 | 
				
			||||||
 | 
							message.setText(message.getText() + ":" + field + ":");
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
											
												Binary file not shown.
											
										
									
								| 
		 After Width: | Height: | Size: 3.1 KiB  | 
@ -0,0 +1,108 @@
 | 
				
			|||||||
 | 
					<?page title="EMail" contentType="text/html;charset=UTF-8"?>
 | 
				
			||||||
 | 
					<zk>
 | 
				
			||||||
 | 
					<window id="editWin" border="normal" closable="true" apply="org.zkoss.bind.BindComposer"
 | 
				
			||||||
 | 
					viewModel="@id('vm') @init('info.bukova.isspst.ui.settings.GlobalSettingsVM')" width="620px"
 | 
				
			||||||
 | 
					binder="@init(queueName='email')">
 | 
				
			||||||
 | 
					<caption src="/img/settings.png" zclass="form-caption" label="${labels.GlobalSettings}" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						<tabbox orient="vertical" height="400px">
 | 
				
			||||||
 | 
							<tabs width="100px">
 | 
				
			||||||
 | 
								<tab label="${labels.Requirements}"/>
 | 
				
			||||||
 | 
								<tab label="${labels.EMails}"/>
 | 
				
			||||||
 | 
							</tabs>
 | 
				
			||||||
 | 
							<tabpanels>
 | 
				
			||||||
 | 
								<tabpanel>
 | 
				
			||||||
 | 
									<div>
 | 
				
			||||||
 | 
										<checkbox label="${labels.EnableRequirements}" checked="@bind(vm.settings.enableRequirements)"/>
 | 
				
			||||||
 | 
									</div>
 | 
				
			||||||
 | 
								</tabpanel>
 | 
				
			||||||
 | 
								<tabpanel>
 | 
				
			||||||
 | 
									<tabbox>
 | 
				
			||||||
 | 
										<tabs>
 | 
				
			||||||
 | 
											<tab label="${labels.NewRequirement}"/>
 | 
				
			||||||
 | 
											<tab label="${labels.AuthRequirement}"/>
 | 
				
			||||||
 | 
											<tab label="${labels.ConfirmRequirement}"/>
 | 
				
			||||||
 | 
										</tabs>
 | 
				
			||||||
 | 
										<tabpanels>
 | 
				
			||||||
 | 
											<tabpanel>
 | 
				
			||||||
 | 
												<grid>
 | 
				
			||||||
 | 
													<columns>
 | 
				
			||||||
 | 
														<column hflex="min"/>
 | 
				
			||||||
 | 
														<column/>
 | 
				
			||||||
 | 
													</columns>
 | 
				
			||||||
 | 
													<rows>
 | 
				
			||||||
 | 
														<row>
 | 
				
			||||||
 | 
															<label value="${labels.MailSubject}"/> <textbox value="@bind(vm.settings.newReqTemplate.subject)" width="100%"/>
 | 
				
			||||||
 | 
														</row>
 | 
				
			||||||
 | 
														<row spans="2">
 | 
				
			||||||
 | 
															<vbox>
 | 
				
			||||||
 | 
																<ckeditor toolbar="Basic" value="@bind(vm.settings.newReqTemplate.text)" width="460px" height="180px"/>
 | 
				
			||||||
 | 
																<button label="${labels.InsertField}" popup="fieldsNew, position=after_start"/>
 | 
				
			||||||
 | 
															</vbox>
 | 
				
			||||||
 | 
														</row>
 | 
				
			||||||
 | 
													</rows>
 | 
				
			||||||
 | 
												</grid>
 | 
				
			||||||
 | 
											</tabpanel>
 | 
				
			||||||
 | 
											<tabpanel>
 | 
				
			||||||
 | 
												<grid>
 | 
				
			||||||
 | 
													<columns>
 | 
				
			||||||
 | 
														<column hflex="min"/>
 | 
				
			||||||
 | 
														<column/>
 | 
				
			||||||
 | 
													</columns>
 | 
				
			||||||
 | 
													<rows>
 | 
				
			||||||
 | 
														<row>
 | 
				
			||||||
 | 
															<label value="${labels.MailSubject}"/> <textbox value="@bind(vm.settings.authReqTemplate.subject)" width="100%"/>
 | 
				
			||||||
 | 
														</row>
 | 
				
			||||||
 | 
														<row spans="2">
 | 
				
			||||||
 | 
															<vbox>
 | 
				
			||||||
 | 
																<ckeditor toolbar="Basic" value="@bind(vm.settings.authReqTemplate.text)" width="460px" height="180px"/>
 | 
				
			||||||
 | 
																<button label="${labels.InsertField}" popup="fieldsAuth, position=after_start"/>
 | 
				
			||||||
 | 
															</vbox>
 | 
				
			||||||
 | 
														</row>
 | 
				
			||||||
 | 
													</rows>
 | 
				
			||||||
 | 
												</grid>
 | 
				
			||||||
 | 
											</tabpanel>
 | 
				
			||||||
 | 
											<tabpanel>
 | 
				
			||||||
 | 
												<grid>
 | 
				
			||||||
 | 
													<columns>
 | 
				
			||||||
 | 
														<column hflex="min"/>
 | 
				
			||||||
 | 
														<column/>
 | 
				
			||||||
 | 
													</columns>
 | 
				
			||||||
 | 
													<rows>
 | 
				
			||||||
 | 
														<row>
 | 
				
			||||||
 | 
															<label value="${labels.MailSubject}"/> <textbox value="@bind(vm.settings.confReqTemplate.subject)" width="100%"/>
 | 
				
			||||||
 | 
														</row>
 | 
				
			||||||
 | 
														<row spans="2">
 | 
				
			||||||
 | 
															<vbox>
 | 
				
			||||||
 | 
																<ckeditor toolbar="Basic" value="@bind(vm.settings.confReqTemplate.text)" width="460px" height="180px"/>
 | 
				
			||||||
 | 
																<button label="${labels.InsertField}" popup="fieldsConfirm, position=after_start"/>
 | 
				
			||||||
 | 
															</vbox>
 | 
				
			||||||
 | 
														</row>
 | 
				
			||||||
 | 
													</rows>
 | 
				
			||||||
 | 
												</grid>
 | 
				
			||||||
 | 
											</tabpanel>
 | 
				
			||||||
 | 
										</tabpanels>
 | 
				
			||||||
 | 
									</tabbox>
 | 
				
			||||||
 | 
									<menupopup id="fieldsNew" children="@load(vm.requirementFields)">
 | 
				
			||||||
 | 
										<template name="children">
 | 
				
			||||||
 | 
											<menuitem label="@load(each) @converter(vm.locConverter)" onClick="@command('insertField', field=each, message=vm.settings.newReqTemplate)"/>
 | 
				
			||||||
 | 
										</template>	
 | 
				
			||||||
 | 
									</menupopup>
 | 
				
			||||||
 | 
									<menupopup id="fieldsAuth" children="@load(vm.requirementFields)">
 | 
				
			||||||
 | 
										<template name="children">
 | 
				
			||||||
 | 
											<menuitem label="@load(each) @converter(vm.locConverter)" onClick="@command('insertField', field=each, message=vm.settings.authReqTemplate)"/>
 | 
				
			||||||
 | 
										</template>	
 | 
				
			||||||
 | 
									</menupopup>
 | 
				
			||||||
 | 
									<menupopup id="fieldsConfirm" children="@load(vm.requirementFields)">
 | 
				
			||||||
 | 
										<template name="children">
 | 
				
			||||||
 | 
											<menuitem label="@load(each) @converter(vm.locConverter)" onClick="@command('insertField', field=each, message=vm.settings.confReqTemplate)"/>
 | 
				
			||||||
 | 
										</template>	
 | 
				
			||||||
 | 
									</menupopup>		
 | 
				
			||||||
 | 
								</tabpanel>
 | 
				
			||||||
 | 
							</tabpanels>
 | 
				
			||||||
 | 
						</tabbox>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						<include src="/app/formButtons.zul"/>
 | 
				
			||||||
 | 
					</window>
 | 
				
			||||||
 | 
					</zk>
 | 
				
			||||||
					Loading…
					
					
				
		Reference in New Issue