cancel
Showing results for 
Search instead for 
Did you mean: 

Document suggestion operation always called with init params

Corentin_Bourdo
Champ on-the-rise
Champ on-the-rise

Hi,

This is a follow-up of this question, I am creating a new one because I'm trying a different approach. You should read it to have the first part of the story.

In short : I've got a document suggestion widget in the creation form of an "index" document which will summarize all the documents for a given project. This widget searches for documents by calling a custom operation. This custom operation has a "parentsIds" parameter which serves as a filter, so that you don't have to scroll through all documents on the Nuxeo instance, but only the ones that are related to the project.

At first I tried to pass the id of the "index" document being created so I could get its parent (that was the first question if you haven't read it), but the document does not have an id yet in the creation form, so I added another document suggestion widget to select folders in which the second widget is going to search.

This new widget has a valueChanged listener updating the params.

Here are the two widgets :

<nuxeo-document-suggestion  value=""
							label="[[i18n('manufacturing_summary.documentsLocations')]]"
							multiple="true"
							min-chars="0"
							role="widget"
							placeholder="[[i18n('dublincoreEdit.directorySuggestion.placeholder')]]"
							operation="SearchHWProjects"
							on-value-changed="_documentsLocationsUpdated"
></nuxeo-document-suggestion>

<nuxeo-document-suggestion  id="documentSuggestionWidget"
							value="{{document.properties.mfs:documents}}"
							label="[[i18n('manufacturing_summary.documents')]]"
							multiple="true"
							min-chars="0"
							role="widget"
							placeholder="[[i18n('dublincoreEdit.directorySuggestion.placeholder')]]"
							operation="SearchDocuments"
							params="[[params]]"
></nuxeo-document-suggestion>

and the corresponding script :

<script>
	Polymer({
		is: 'nuxeo-manufacturing_summary-create-layout',
		behaviors: [Nuxeo.LayoutBehavior],
		properties: {
			/**
			 * @doctype manufacturing_summary
			 */
			document: Object,

			params: {
				type: Object,
				value: {'doctype': 'hwp_document', 'parentsIds': ''},
			}
		},

		_documentsLocationsUpdated: function (event) {
			if (event && event.detail && event.detail.value) {
				this.params.parentsIds = JSON.stringify(event.detail.value);
			}
		},
	});
</script>

Everything is working fine, the Polymer and the widget's params properties are updated when a parent is selected in the "filter" widget, BUT the operation is always called with the first specified parameters, i.e. the hard-coded value in the Polymer properties, no matter how many times it is modified... Weird right ?

Any help welcome ! Have a good day

0 REPLIES 0