2017-01-20 5 views
1

Ich habe google für ein paar Tage gesucht und kann keine Lösung für mein Problem finden.Alfresco Dashlet Post Formular

Ich habe einen benutzerdefinierten Alfresco Aukai Dashlet erstellt und platziert somit in eine Form:

define(["dojo/_base/declare", 
    "dijit/_WidgetBase", 
    "alfresco/core/Core", 
    "alfresco/core/I18nUtils", 
    "alfresco/dashlets/Dashlet"], 
function(declare, AlfCore, I18nUtils, Dashlet) { 
    // First define a form... 
    var form = { 
     name: "alfresco/forms/Form", 
     config: { 
      showOkButton: true, 
      okButtonLabel: "Save", 
      showCancelButton: false, 
      cancelButtonLabel: "Doesn't Matter", 
      okButtonPublishTopic: "PUBLISH_TOPIC", 
      okButtonPublishGlobal: true, 
      widgets: [] 
     } 
    }; 
// Define a text box... 
    var textBox = { 
     name: "alfresco/forms/controls/DojoValidationTextBox", 
     config: { 
      fieldId: "EMAIL", 
      name: "email", 
      label: "Contact", 
      description: "Your e-mail address", 
      placeHolder: "[email protected]", 
      validationConfig: [ 
       { 
        validation: "regex", 
        regex: "^([0-9a-zA-Z]([-.w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-w]*[0-9a-zA-Z].)+[a-zA-Z]{2,9})$", 
        errorMessage: "Valid E-mail Address Required" 
       } 
      ] 
     } 
    }; 
    form.config.widgets.push(textBox); 
// Define a checkbox... 
    var checkbox = { 
     name: "alfresco/forms/controls/DojoCheckBox", 
     config: { 
      fieldId: "SHOW", 
      name: "showEmail", 
      label: "Show E-mail", 
      description: "Uncheck to hide the e-mail field", 
      value: true 
     } 
    }; 
    form.config.widgets.push(checkbox); 
// Update the textbox to respond to checkbox changes... 
    textBox.config.visibilityConfig = { 
     initialValue: true, 
     rules: [ 
      { 
       targetId: "SHOW", 
       is: [true] 
      } 
     ] 
    }; 
    return declare([Dashlet], { 
     /* 
     * Add padding to the body. 
     * smallpad (4px padding), mediumpad (10px padding - recommended) and largepad (16px padding) 
     */ 
     additionalCssClasses: "mediumpad", 
     /** 
     * Explicit height in pixels of the Dashlet body. 
     */ 
     bodyHeight: 200, 
     /** 
     * Id that will be used to store properties for this Dashlet. 
     * i.e. the Dashlet height when using the resizer. 
     */ 
     componentId: "component.messaging-dashlet", 
     /** 
     * The i18n scope to use for this Dashlet. 
     */ 
     i18nScope: "dashlets.MessagingDashlet", 
     /** 
     * An array of the i18n files to use with this Dashlet. 
     */ 
     i18nRequirements: [{i18nFile: "./i18n/MessagingDashlet.properties"}], 
     /** 
     * The widgets to be acting as title bar actions. 
     */ 
     widgetsForTitleBarActions: [ 
      { 
       id: "MESSAGING_DASHLET_ACTIONS", 
       name: "alfresco/html/Label", 
       config: { 
        label: "Title-bar actions" 
       } 
      } 
     ], 
     /** 
     * The widgets to be placed in the top toolbar. 
     */ 
     widgetsForToolbar: [ 
      { 
       id: "MESSAGING_DASHLET_TOOLBAR", 
       name: "alfresco/html/Label", 
       config: { 
        label: "Toolbar" 
       } 
      } 
     ], 
     /** 
     * The widgets to be placed in the body of the dashlet. 
     */ 
     widgetsForBody: [ 
      { 
       id: "HELLO_DASHLET_VERTICAL_LAYOUT", 
       name: "alfresco/layout/VerticalWidgets", 
       config: { 
        widgetWidth: 50, 
        widgets: [ 
         form 
        ] 
       } 
      } 
     ] 
    }); 
}); 

Das Formular angezeigt wird, aber die Schaltfläche Speichern ist inaktiv.

Bei der Überprüfung mit Feuer Bug werde ich informiert, dass es kein Javascript auf der Seite gibt!

Abgesehen davon funktioniert alles gut sogar die Fehlermeldung, wenn eine ungültige E-Mail-Adresse eingegeben wird.

Irgendwelche Vorschläge? Alternativ wäre ein funktionierendes Beispiel eines Formulars in einem Dashlet-Posting nett :)

Ich habe mich weiter damit beschäftigt, eine Auswahlbox mit dem OptionsService zu füllen.

optionsConfig: { 
    publishTopic: "ALF_GET_FORM_CONTROL_OPTIONS", 
    publishPayload: { 
     url: url.context + "/proxy/alfresco/api/people", 
     itemsAttribute: "people", 
     labelAttribute: "firstName", 
     valueAttribute: "userName" 
    } 

Im Debug kann ich das sehen aber nichts passiert über die Leitung, es wird keine entsprechende Anfrage an den Server gesendet!

Dies ist das gleiche Problem, das ich mit der Post bekomme, also würde dies ein grundsätzlicheres Problem mit meinem Code vorschlagen.

Antwort

0

In Ihrem Formular sind keine Widgets/Steuerelemente definiert.

okButtonPublishGlobal: true, 
      widgets: [] 

Bitte einfach CRUD Beispiel verweisen Aikau verwenden, http://www.codingfreaks.net/2015/03/aikau-form-example-for-simple-student.html

https://github.com/Alfresco/Aikau/blob/develop/aikau/src/main/resources/alfresco/reports/TopSiteContributorReport.js

enter image description here

Können Sie unter diesem Link sehen Sie?

Alfresco share verwendet Seite des Benutzers Breakdown Dashlet, mit den Eingabeformular-Steuerelemente mit aikau.

+0

Versucht, dass und viele andere Optionen. Vollständig überarbeiteter Code! Widget hinzugefügt und Widget-Typ ändern! Dienste zu allen möglichen Dingen hinzugefügt. In jedem wurde entweder ein Dashlet geladen, das aufgrund eines Fehlers nicht geladen werden würde, oder ein Dashlet mit der erwarteten Form, das nicht gepostet wurde! Mit Firefox und Chrome debuggen nicht alles passieren, wenn Taste geklickt :( – user2120275

+0

Ich muss etwas Grundlegendes fehlen! Ich habe versucht das Beispiel als Leitfaden gegeben, aber komme nirgends. Ich denke, mein Problem ist mit dem Beispiel ein Bericht sein und den Antrag von einem Ereignis auf dem Tortendiagramm tun, wo ich die Übermittlung von der Schaltfläche auf einem Formular in einem Dashlet. Ich finde Formulare sehr verwirrend und die Beispiele sehr begrenzt. Meine Aufgaben sind zu Mit Alfresco als Grundlage für den Ersatz eines Java-Systems einen Proof-of-Concept erstellen, das Hauptproblem beim Java-System ist das Dokumenten-Management, das Alfresco definitiv zur Verfügung stellt, also kein Problem – user2120275

+0

Wir wollen bestehende Funktionalität auf eine Alfresco-Art bereitstellen damit das geht Nach vorne kann das neue System von einem kompetenten Alfresco-Entwickler gewartet werden. Der Plan für den POC ist also, das Messaging-System auf Alfresco zu migrieren. Dies wäre ein Dashlet, das ein Dokument vom Typ MESSAGE erstellt, das nicht bearbeitet werden kann und nur für die sendende und empfangende Person sichtbar ist. Ein bisschen wie eine System-SMS mit der Möglichkeit, Dokumente anzuhängen. Es ist komplexer als das, aber das ist die allgemeine Idee. – user2120275