[JBoss JIRA] (RF-13323) FileUploadEvent listener reset the list value with Viewscope
by Jiří Štefek (JIRA)
[ https://issues.jboss.org/browse/RF-13323?page=com.atlassian.jira.plugin.s... ]
Jiří Štefek commented on RF-13323:
----------------------------------
I've attached here a simple project with 2 samples, one is using @SessionScoped and the second @ViewScoped bean. Both backing beans work correctly. Tried it on GlassFish 3.1.2.2, AS 7.1 with Chrome 30 and Firefox 25. So unless [~wish79] could give us a sample project, i cannot reproduce it.
----
But one thing I've noticed, when you place _fileUpload_ in the ajax rendered _outputPanel_ just like this:
{code}
<a4j:outputPanel ajaxRendered="true">
<rich:fileUpload listener="#{listener}"/>
</a4j:outputPanel>
{code}
and you will upload a file, then the components list of uploaded/toBeUploaded files disappears after each upload (doesn't matter which backing bean is used). [~bleathem] is this an intention? Or should we file an issue?
> FileUploadEvent listener reset the list value with Viewscope
> ------------------------------------------------------------
>
> Key: RF-13323
> URL: https://issues.jboss.org/browse/RF-13323
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-input
> Affects Versions: 4.3.4
> Environment: Jboss 7.1
> Richfaces 4.3.4
> JSF 2.1.9
>
> Reporter: Mohammad Weshah
> Assignee: Jiří Štefek
> Labels: rich:fileUpload
> Attachments: RF-13323-SessionScoped.png, RF-13323-ViewScoped.png, RF-13323.zip
>
>
> Hello All,
> i make an example of upload file from richfaces showcase it is working successfully , but i notice if i changed the backing bean to viewscope the files list inside the FileUploadEvent listener will be rest every time that i upload new file , the code as follow :
>
> {code}
> protected List<UploadedImage> files = new ArrayList<UploadedImage>();
>
> public void FileUploadlistener(FileUploadEvent event) throws Exception {
> UploadedFile item = event.getUploadedFile();
> UploadedImage file = new UploadedImage();
> file.setLength(item.getData().length);
> file.setName(item.getName());
> file.setData(item.getData());
>
> files.add(file);
> }
> {code}
>
> but when i changed the scope to session the files still contain the old files, is it mandatory to the backing be session or there is something wrong ?
>
> Regards
> Wish79
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 4 months
[JBoss JIRA] (RF-13323) FileUploadEvent listener reset the list value with Viewscope
by Jiří Štefek (JIRA)
[ https://issues.jboss.org/browse/RF-13323?page=com.atlassian.jira.plugin.s... ]
Jiří Štefek updated RF-13323:
-----------------------------
Attachment: RF-13323.zip
Attached simple project.
> FileUploadEvent listener reset the list value with Viewscope
> ------------------------------------------------------------
>
> Key: RF-13323
> URL: https://issues.jboss.org/browse/RF-13323
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-input
> Affects Versions: 4.3.4
> Environment: Jboss 7.1
> Richfaces 4.3.4
> JSF 2.1.9
>
> Reporter: Mohammad Weshah
> Assignee: Jiří Štefek
> Labels: rich:fileUpload
> Attachments: RF-13323-SessionScoped.png, RF-13323-ViewScoped.png, RF-13323.zip
>
>
> Hello All,
> i make an example of upload file from richfaces showcase it is working successfully , but i notice if i changed the backing bean to viewscope the files list inside the FileUploadEvent listener will be rest every time that i upload new file , the code as follow :
>
> {code}
> protected List<UploadedImage> files = new ArrayList<UploadedImage>();
>
> public void FileUploadlistener(FileUploadEvent event) throws Exception {
> UploadedFile item = event.getUploadedFile();
> UploadedImage file = new UploadedImage();
> file.setLength(item.getData().length);
> file.setName(item.getName());
> file.setData(item.getData());
>
> files.add(file);
> }
> {code}
>
> but when i changed the scope to session the files still contain the old files, is it mandatory to the backing be session or there is something wrong ?
>
> Regards
> Wish79
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 4 months
[JBoss JIRA] (RF-13306) Autocomplete: initialize value from DOM (was: ignored API call .setValue(''))
by alexey plotnikov (JIRA)
[ https://issues.jboss.org/browse/RF-13306?page=com.atlassian.jira.plugin.s... ]
alexey plotnikov commented on RF-13306:
---------------------------------------
Brian, i'll try do it today.
> Autocomplete: initialize value from DOM (was: ignored API call .setValue(''))
> -----------------------------------------------------------------------------
>
> Key: RF-13306
> URL: https://issues.jboss.org/browse/RF-13306
> Project: RichFaces
> Issue Type: Feature Request
> Security Level: Public(Everyone can see)
> Affects Versions: 4.3.4
> Reporter: alexey plotnikov
> Fix For: 4.3.5
>
>
> All described here https://community.jboss.org/thread/233973
> I have this autocomplete component:
> {code}
> <table>
> <tr>
> <td>
> <rich:autocomplete mode="ajax" autocompleteMethod="#{autocomplete.autocompleteProviders}"
> minChars="0" var="s" fetchValue="#{s.realName}" id="provider-suggestion"
> autofill="false"
> onselectitem="autocompleteChangeProvider(event.target)" style="display: inline;"
> layout="table" value="#{autocomplete.providerName}" >
> <a4j:queue requestDelay="500" ignoreDupResponses="true" />
> <h:column>
> <h:outputText style="display:none;" value="#{s.id}"/>
> <h:outputText style="display:none;" value="#{s.realName}"/>
> </h:column>
> <h:column>
> <h:outputText value="#{s.name}" escape="false"/>
> </h:column>
> </rich:autocomplete>
> </td>
> <td>
> <h:graphicImage value="/img/arrow.png" onclick="#{rich:component('provider-suggestion')}.setValue('');#{rich:component('provider-suggestion')}.showPopup();stopEvent(event);"
> alt=""/>
> <h:graphicImage value="/img/cancel.png"
> onclick="#{rich:component('provider-suggestion')}.hidePopup();#{rich:component('provider-suggestion')}.setValue('');autocompleteChangeProvider(null);"
> alt="#{messages['pages.clear']}" title="#{messages['pages.clear']}"/>
> <h:inputHidden id="filter-provider-id" value="#{autocomplete.providerId}"/>
> </td>
> </tr>
> </table>
> {code}
> as you can see, i don't use showButton="true", because i need another functionality, i need erase input text before show popup window.
> I use JavaScript function "autocompleteChangeProvider" for extract selected id.
> I use separate button(/img/cancel.png) for erase input text, as you can see this function just use Richfaces API.
>
> And a problem:
> if autocomplete.providerName not null and not empty(in rich:autocomplete) and user clicks on show button(/img/arrow.png) than input text not erasing, but i called #{rich:component('provider-suggestion')}.setValue('') !!!
>
> I think i found a solution
> AutocompleteBase.js has this code:
> {code}
> rf.ui.AutocompleteBase = function(componentId, selectId, fieldId, options) {
> // call constructor of parent class
> $super.constructor.call(this, componentId);
> this.selectId = selectId;
> this.fieldId = fieldId;
> this.options = $.extend({}, defaultOptions, options);
> this.namespace = this.namespace || "." + rf.Event.createNamespace(this.name, this.selectId);
> this.currentValue = "";
> this.tempValue = this.getValue();
> this.isChanged = this.tempValue.length != 0;
> bindEventHandlers.call(this);
> };
> {code}
> as you can see this.currentValue = "" so JS thinks that this.currentValue="" so currentValue equal new value("" - empty string), so nothing happens.
> i replace this code by this:
> {code}
> rf.ui.AutocompleteBase = function(componentId, selectId, fieldId, options) {
> // call constructor of parent class
> $super.constructor.call(this, componentId);
> this.selectId = selectId;
> this.fieldId = fieldId;
> this.options = $.extend({}, defaultOptions, options);
> this.namespace = this.namespace || "." + rf.Event.createNamespace(this.name, this.selectId);
> this.currentValue = $(rf.getDomElement(fieldId)).val();
> this.tempValue = this.getValue();
> this.isChanged = this.tempValue.length != 0;
> bindEventHandlers.call(this);
> };
> {code}
> and it works!
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 4 months
[JBoss JIRA] (RF-13292) Autocomplete: up and down arrow keys not working in Opera!
by Brian Leathem (JIRA)
[ https://issues.jboss.org/browse/RF-13292?page=com.atlassian.jira.plugin.s... ]
Brian Leathem edited comment on RF-13292 at 11/12/13 3:59 PM:
--------------------------------------------------------------
Nice work [~michpetrov]. We should backport this fix to 4.3.x (re-opening).
was (Author: bleathem):
Nice work [~michpetrov]. We should backport this fix to 4.3.4 (re-opening).
> Autocomplete: up and down arrow keys not working in Opera!
> ----------------------------------------------------------
>
> Key: RF-13292
> URL: https://issues.jboss.org/browse/RF-13292
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-input
> Affects Versions: 4.3.4, 5.0.0.Alpha2
> Reporter: alexey plotnikov
> Fix For: 4.3.5
>
>
> Hello, i use Richfaces 4.3.4.Final. Up and down arrow keys not working(ignoring) for Autocomplete component in Opera.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 4 months
[JBoss JIRA] (RF-13306) Autocomplete: initialize value from DOM (was: ignored API call .setValue(''))
by Brian Leathem (JIRA)
[ https://issues.jboss.org/browse/RF-13306?page=com.atlassian.jira.plugin.s... ]
Brian Leathem commented on RF-13306:
------------------------------------
[~alixey] are you interested in preparing a github pull request with this fix?
https://community.jboss.org/wiki/GuideToUsePullRequestsWithGitHubAndJIRA
You'll have to first sign the CLA:
https://cla.jboss.org/index.seam
> Autocomplete: initialize value from DOM (was: ignored API call .setValue(''))
> -----------------------------------------------------------------------------
>
> Key: RF-13306
> URL: https://issues.jboss.org/browse/RF-13306
> Project: RichFaces
> Issue Type: Feature Request
> Security Level: Public(Everyone can see)
> Affects Versions: 4.3.4
> Reporter: alexey plotnikov
> Fix For: 4.3.5
>
>
> All described here https://community.jboss.org/thread/233973
> I have this autocomplete component:
> {code}
> <table>
> <tr>
> <td>
> <rich:autocomplete mode="ajax" autocompleteMethod="#{autocomplete.autocompleteProviders}"
> minChars="0" var="s" fetchValue="#{s.realName}" id="provider-suggestion"
> autofill="false"
> onselectitem="autocompleteChangeProvider(event.target)" style="display: inline;"
> layout="table" value="#{autocomplete.providerName}" >
> <a4j:queue requestDelay="500" ignoreDupResponses="true" />
> <h:column>
> <h:outputText style="display:none;" value="#{s.id}"/>
> <h:outputText style="display:none;" value="#{s.realName}"/>
> </h:column>
> <h:column>
> <h:outputText value="#{s.name}" escape="false"/>
> </h:column>
> </rich:autocomplete>
> </td>
> <td>
> <h:graphicImage value="/img/arrow.png" onclick="#{rich:component('provider-suggestion')}.setValue('');#{rich:component('provider-suggestion')}.showPopup();stopEvent(event);"
> alt=""/>
> <h:graphicImage value="/img/cancel.png"
> onclick="#{rich:component('provider-suggestion')}.hidePopup();#{rich:component('provider-suggestion')}.setValue('');autocompleteChangeProvider(null);"
> alt="#{messages['pages.clear']}" title="#{messages['pages.clear']}"/>
> <h:inputHidden id="filter-provider-id" value="#{autocomplete.providerId}"/>
> </td>
> </tr>
> </table>
> {code}
> as you can see, i don't use showButton="true", because i need another functionality, i need erase input text before show popup window.
> I use JavaScript function "autocompleteChangeProvider" for extract selected id.
> I use separate button(/img/cancel.png) for erase input text, as you can see this function just use Richfaces API.
>
> And a problem:
> if autocomplete.providerName not null and not empty(in rich:autocomplete) and user clicks on show button(/img/arrow.png) than input text not erasing, but i called #{rich:component('provider-suggestion')}.setValue('') !!!
>
> I think i found a solution
> AutocompleteBase.js has this code:
> {code}
> rf.ui.AutocompleteBase = function(componentId, selectId, fieldId, options) {
> // call constructor of parent class
> $super.constructor.call(this, componentId);
> this.selectId = selectId;
> this.fieldId = fieldId;
> this.options = $.extend({}, defaultOptions, options);
> this.namespace = this.namespace || "." + rf.Event.createNamespace(this.name, this.selectId);
> this.currentValue = "";
> this.tempValue = this.getValue();
> this.isChanged = this.tempValue.length != 0;
> bindEventHandlers.call(this);
> };
> {code}
> as you can see this.currentValue = "" so JS thinks that this.currentValue="" so currentValue equal new value("" - empty string), so nothing happens.
> i replace this code by this:
> {code}
> rf.ui.AutocompleteBase = function(componentId, selectId, fieldId, options) {
> // call constructor of parent class
> $super.constructor.call(this, componentId);
> this.selectId = selectId;
> this.fieldId = fieldId;
> this.options = $.extend({}, defaultOptions, options);
> this.namespace = this.namespace || "." + rf.Event.createNamespace(this.name, this.selectId);
> this.currentValue = $(rf.getDomElement(fieldId)).val();
> this.tempValue = this.getValue();
> this.isChanged = this.tempValue.length != 0;
> bindEventHandlers.call(this);
> };
> {code}
> and it works!
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 4 months