String extractPhonenumber(final String number) { final String result = NumberHelper.extractPhonenumber( number, Configuration.getInstance() .getStringValue(ConfigurationParam.DEFAULT_COUNTRY_PHONE_PREFIX)); if (StringUtils.isNotEmpty(result) == true && StringUtils.isNotEmpty(ConfigXml.getInstance().getTelephoneSystemNumber()) == true && result.startsWith(ConfigXml.getInstance().getTelephoneSystemNumber()) == true) { return result.substring(ConfigXml.getInstance().getTelephoneSystemNumber().length()); } return result; }
public static final boolean isJIRAConfigured() { return ConfigXml.getInstance().isJIRAConfigured(); }
/** * @return Default page of ProjectForge. Currently {@link WicketApplication#DEFAULT_PAGE} is the * default page (e. g. to redirect after cancel if no other return page is specified). */ public static Class<? extends WebPage> getDefaultPage() { final WebConfig webConfig = ConfigXml.getInstance().getWebConfig(); return webConfig != null ? webConfig.getDefaultPage() : WicketApplication.DEFAULT_PAGE; }
private void callNow() { if (StringUtils.isBlank(ConfigXml.getInstance().getTelephoneSystemUrl()) == true) { log.error("Telephone system url not configured. Phone calls not supported."); return; } log.info( "User initiates direct call from phone with id '" + form.getMyCurrentPhoneId() + "' to destination numer: " + StringHelper.hideStringEnding(form.getPhoneNumber(), 'x', 3)); result = null; final StringBuffer buf = new StringBuffer(); buf.append(form.getPhoneNumber()).append(SEPARATOR); final AddressDO address = form.getAddress(); if (address != null && StringHelper.isIn( form.getPhoneNumber(), extractPhonenumber(address.getBusinessPhone()), extractPhonenumber(address.getMobilePhone()), extractPhonenumber(address.getPrivatePhone()), extractPhonenumber(address.getPrivateMobilePhone())) == true) { buf.append(address.getFirstName()).append(" ").append(address.getName()); if (form.getPhoneNumber().equals(extractPhonenumber(address.getMobilePhone())) == true) { buf.append(", ").append(getString("address.phoneType.mobile")); } else if (form.getPhoneNumber().equals(extractPhonenumber(address.getPrivatePhone())) == true) { buf.append(", ").append(getString("address.phoneType.private")); } buf.append(" #").append(address.getId()); } else { buf.append("???"); } final HttpClient client = new HttpClient(); String url = ConfigXml.getInstance().getTelephoneSystemUrl(); url = StringUtils.replaceOnce(url, "#source", form.getMyCurrentPhoneId()); url = StringUtils.replaceOnce(url, "#target", form.getPhoneNumber()); final String urlProtected = StringHelper.hideStringEnding(url, 'x', 3); final GetMethod method = new GetMethod(url); String errorKey = null; try { form.lastSuccessfulPhoneCall = new Date(); client.executeMethod(method); final String resultStatus = method.getResponseBodyAsString(); if ("0".equals(resultStatus) == true) { result = DateTimeFormatter.instance().getFormattedDateTime(new Date()) + ": " + getString("address.phoneCall.result.successful"); form.getRecentSearchTermsQueue().append(buf.toString()); } else if ("2".equals(resultStatus) == true) { errorKey = "address.phoneCall.result.wrongSourceNumber"; } else if ("3".equals(resultStatus) == true) { errorKey = "address.phoneCall.result.wrongDestinationNumber"; } else { errorKey = "address.phoneCall.result.callingError"; } } catch (final HttpException ex) { result = "Call failed. Please contact administrator."; log.fatal(result + ": " + urlProtected); throw new RuntimeException(ex); } catch (final IOException ex) { result = "Call failed. Please contact administrator."; log.fatal(result + ": " + urlProtected); throw new RuntimeException(ex); } if (errorKey != null) { form.addError(errorKey); } }
@Override protected void init() { super.init(); // GRID 50% - BLOCK gridBuilder.newSplitPanel(GridSize.COL50); { // Number final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.number")); fs.add(new DivTextPanel(fs.newChildId(), "C-")); numberField = new MinMaxNumberField<Integer>( InputPanel.WICKET_ID, new PropertyModel<Integer>(data, "number"), 0, 99999999); numberField.setMaxLength(8); WicketUtils.setSize(numberField, 6); fs.add(numberField); if (NumberHelper.greaterZero(getData().getNumber()) == false) { fs.addHelpIcon(getString("fibu.tooltip.nummerWirdAutomatischVergeben")); } } { // Date final FieldsetPanel fs = gridBuilder.newFieldset(getString("date")); datePanel = new DatePanel( fs.newChildId(), new PropertyModel<Date>(data, "date"), DatePanelSettings.get().withTargetType(java.sql.Date.class)); fs.add(datePanel); } { // Title final FieldsetPanel fs = gridBuilder.newFieldset(getString("title")); fs.add(createAutocompleteTextField("title")) .getField() .setRequired(true) .add(WicketUtils.setFocus()); } { // Contract type final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.type")); final List<ContractType> contractTypes = ConfigXml.getInstance().getContractTypes(); final LabelValueChoiceRenderer<ContractType> typeChoiceRenderer = new LabelValueChoiceRenderer<ContractType>(contractTypes); final DropDownChoice<ContractType> typeChoice = new DropDownChoice<ContractType>( fs.getDropDownChoiceId(), new PropertyModel<ContractType>(data, "type"), typeChoiceRenderer.getValues(), typeChoiceRenderer); typeChoice.setNullValid(false); fs.add(typeChoice); } { // Status final FieldsetPanel fs = gridBuilder.newFieldset(getString("status")); // DropDownChoice for convenient selection of time periods. final LabelValueChoiceRenderer<String> statusChoiceRenderer = new LabelValueChoiceRenderer<String>(); for (final ContractStatus status : ContractStatus.values()) { statusChoiceRenderer.addValue(status.name(), getString(status.getI18nKey())); } final DropDownChoice<String> statusChoice = new DropDownChoice<String>( fs.getDropDownChoiceId(), new PropertyModel<String>(data, "status"), statusChoiceRenderer.getValues(), statusChoiceRenderer); statusChoice.setNullValid(false); fs.add(statusChoice); } gridBuilder.newSplitPanel(GridSize.COL50); { // Reference final FieldsetPanel fs = gridBuilder.newFieldset(getString("fibu.common.reference")); fs.add( new MaxLengthTextField( InputPanel.WICKET_ID, new PropertyModel<String>(data, "reference"))); } { // Resubmission date final FieldsetPanel fs = gridBuilder.newFieldset(getString("resubmissionOnDate")); resubmissionDatePanel = new DatePanel( fs.newChildId(), new PropertyModel<Date>(data, "resubmissionOnDate"), DatePanelSettings.get().withTargetType(java.sql.Date.class)); fs.add(resubmissionDatePanel); } { // Due date final FieldsetPanel fs = gridBuilder.newFieldset(getString("dueDate")); dueDatePanel = new DatePanel( fs.newChildId(), new PropertyModel<Date>(data, "dueDate"), DatePanelSettings.get().withTargetType(java.sql.Date.class)); fs.add(dueDatePanel); } { // Signing date final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.signing"), getString("date")); signingDatePanel = new DatePanel( fs.newChildId(), new PropertyModel<Date>(data, "signingDate"), DatePanelSettings.get().withTargetType(java.sql.Date.class)); fs.add(signingDatePanel); } { // Validity final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.validity")); validFromDatePanel = new DatePanel( fs.newChildId(), new PropertyModel<Date>(data, "validFrom"), DatePanelSettings.get().withTargetType(java.sql.Date.class)); fs.add(validFromDatePanel); fs.add(new DivTextPanel(fs.newChildId(), "-")); validUntilDatePanel = new DatePanel( fs.newChildId(), new PropertyModel<Date>(data, "validUntil"), DatePanelSettings.get().withTargetType(java.sql.Date.class)); fs.add(validUntilDatePanel); } gridBuilder.newSplitPanel(GridSize.COL50); { // CocontractorA final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.coContractorA")); fs.add(createAutocompleteTextField("coContractorA")); } { // CopersonA final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.contractPersonA")); fs.add(createAutocompleteTextField("contractPersonA")); } { // SignerA final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.signerA")); fs.add(createAutocompleteTextField("signerA")); } /* GRID8 */ gridBuilder.newSplitPanel(GridSize.COL50); { // CocontractorB final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.coContractorB")); fs.add(createAutocompleteTextField("coContractorB")); } { // CopersonB final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.contractPersonB")); fs.add(createAutocompleteTextField("contractPersonB")); } { // SignerB final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.signerB")); fs.add(createAutocompleteTextField("signerB")); } /* GRID16 */ gridBuilder.newGridPanel(); { // Text with JIRA support final FieldsetPanel fs = gridBuilder.newFieldset(getString("text")); final IModel<String> model = new PropertyModel<String>(data, "text"); fs.add(new MaxLengthTextArea(TextAreaPanel.WICKET_ID, model)); fs.addJIRAField(model); } { // Filing final FieldsetPanel fs = gridBuilder.newFieldset(getString("filing")); fs.add( new MaxLengthTextField(InputPanel.WICKET_ID, new PropertyModel<String>(data, "filing"))); } addCloneButton(); }