Sorry Marios, but I think you're still wrong and probably didn't read properly 
my email. What you're doing here is XHTML which will of course not work. Here's 
what I wrote:

>>> As long as I understand this if you're not using
>>> XHTML1.0 or HTML4[1] (which in our case we are not) it's not the case.

The point is for our application it doesn't apply because we're on HTML5. 

-- Ladislav

On Dec 3, 2010, at 12:01 PM, [email protected] wrote:

> Ok, paste the following into /deltacloud/server/views/api/show.html.haml 
> (anywhere, i had mine right at the top, i.e. first line of file)
> 
> "
> %td
>  %form{ :action => "bla/TEST", :method => 'put' }
>    %input{:type => :submit, :value => "DoPut"}
> %td
>  %form{ :action => "bla/TEST", :method => 'post' }
>    %input{:type => :submit, :value => "DoPost"}
> %td
>  %form{ :action => "bla/TEST", :method => 'get' }
>    %input{:type => :submit, :value => "DoGet"}
> "
> 
> And now paste the following into /deltacloud/server/server.rb (anywhere 
> should do it)
> 
> "
> put '/bla/TEST' do
>  return "JUST FIRED PUT"
> end
> 
> post '/bla/TEST' do
>  return "JUST FIRED POST"
> end
> 
> get '/bla/TEST' do
>  return "JUST FIRED GET"
> end
> "
> 
> Good luck firing that PUT action. I am using Fox v.3.6. One interesting thing 
> I noticed is that actually its the 'GET' that's triggered when you try to do 
> PUT, (I previously said it was POST).
> 
> marios
> 
> 
> On 03/12/10 12:16, [email protected] wrote:
>> On 03/12/10 12:04, Ladislav Martincik wrote:
>>> 
>>> On Dec 2, 2010, at 6:16 PM, [email protected]<mailto:[email protected]>
>>> wrote:
>>> 
>>>> On 02/12/10 18:15, Ladislav Martincik wrote:
>>>>> 
>>>>> On Dec 2, 2010, at 3:56 PM, [email protected]
>>>>> <mailto:[email protected]>  wrote:
>>>>> 
>>>>>> On 02/12/10 16:31, Ladislav Martincik wrote:
>>>>>>> 
>>>>>>> On Dec 2, 2010, at 3:10 PM, Michal Fojtik wrote:
>>>>>>> 
>>>>>>>> On 02/12/10 14:27 +0100, [email protected]
>>>>>>>> <mailto:[email protected]>  wrote:
>>>>>>>>> From: Jozef Zigmund<[email protected]<mailto:[email protected]>>
>>>>>>>>> 
>>>>>>>>> ---
>>>>>>>>> src/app/views/providers/_providers.haml | 16 ++++++++++++++++
>>>>>>>>> src/app/views/providers/edit.haml | 2 +-
>>>>>>>>> src/app/views/providers/show.haml | 2 +-
>>>>>>>>> 3 files changed, 18 insertions(+), 2 deletions(-)
>>>>>>>>> 
>>>>>>>>> diff --git a/src/app/views/providers/_providers.haml
>>>>>>>>> b/src/app/views/providers/_providers.haml
>>>>>>>>> index 5587a34..07b5e40 100644
>>>>>>>>> --- a/src/app/views/providers/_providers.haml
>>>>>>>>> +++ b/src/app/views/providers/_providers.haml
>>>>>>>>> @@ -12,3 +12,19 @@
>>>>>>>>> %input{ :type =>  'submit', :value =>  t(:add), :disabled =>
>>>>>>>>> ('disabled' unless controller.action_name == 'index') }
>>>>>>>>> - form_tag({:controller =>  'providers', :action =>  'destroy', :id
>>>>>>>>> =>  @provider}, {:method =>  :delete , :class =>  'buttononly'}) do
>>>>>>>>> = submit_tag 'delete', :disabled =>  ('disabled' unless @provider
>>>>>>>>> and controller.action_name == 'show')
>>>>>>>>> +
>>>>>>>>> +:javascript
>>>>>>>>> + jQuery.ajaxSetup({ 'beforeSend': function(xhr)
>>>>>>>>> {xhr.setRequestHeader("Accept", "text/javascript")}
>>>>>>>>> + })
>>>>>>>>> + $(document).ready( function () {
>>>>>>>>> + $("a.button").click(function (event) {
>>>>>>>>> + event.preventDefault()
>>>>>>>>> + if (!$(this).attr("disabled")) {
>>>>>>>>> + $.get(($(this).attr("href")), function (response) {
>>>>>>>>> + form = $(response).find('#edit_dcloud_form')
>>>>>>>>> + $("#show_dcloud").replaceWith(form)
>>>>>>>>> + $('a.button').attr('disabled', true)
>>>>>>>>> + });
>>>>>>>>> + }
>>>>>>>>> + })
>>>>>>>>> + })
>>>>>>>>> diff --git a/src/app/views/providers/edit.haml
>>>>>>>>> b/src/app/views/providers/edit.haml
>>>>>>>>> index 199a73a..2691bfa 100644
>>>>>>>>> --- a/src/app/views/providers/edit.haml
>>>>>>>>> +++ b/src/app/views/providers/edit.haml
>>>>>>>>> @@ -2,6 +2,6 @@
>>>>>>>>> #details.grid_13
>>>>>>>>> %nav.subsubnav
>>>>>>>>> = render_navigation(:level =>  4)
>>>>>>>>> - - form_for :provider, @provider, :url =>
>>>>>>>>> provider_path(@provider), :html =>  { :method =>  'put', :class =>
>>>>>>>>> "dcloud_form" } do |f|
>>>>>>>>> + - form_for :provider, @provider, :url =>
>>>>>>>>> provider_path(@provider), :html =>  { :id =>  'edit_dcloud_form',
>>>>>>>>> :method =>  'put', :class =>  "dcloud_form" } do |f|
>>>>>>>> 
>>>>>>>> I'm not sure if 'PUT' method is actually supported by browsers.
>>>>>>>> For this
>>>>>>>> case I recommending to use 'method overide' in Rails.
>>>>>>>> 
>>>>>>> 
>>>>>>> I believe it should be fine. All new browsers (even IE6) supports
>>>>>>> HTTP/1.1.
>>>>>> 
>>>>>> not sure if i misunderstood - Michal is referring to HTML forms - they
>>>>>> support only 'GET' and 'POST' for the method attribute (i think HTML 5
>>>>>> will add support for all CRUD methods). So in this case, if this is
>>>>>> really a html form and you want to do a put using the form then you need
>>>>>> to use method_override... if it is working its because it defaults to
>>>>>> 'post' and so you might not notice it,
>>>>>> 
>>>>>> marios
>>>>> 
>>>>> HTML forms are mapped to HTTP protocol so still there's no need to worry.
>>>> 
>>>> Well, in this case, it is mapped to POST
>>> 
>>> I don't think so. As long as I understand this if you're not using
>>> XHTML1.0 or HTML4[1] (which in our case we are not) it's not the case.
>> 
>> Ok, now I'm confused. I thought you said  ">>>  The questions maybe
>> should be what is the software we have to support
>>  >>  (I mean browsers mainly) in order to determine if this is the case."
>> I thought we are talking about a HTML form here, for a browser?
>> 
>> 
>>> In those 2 cases DTD specifies only "GET" and "POST" and would make
>>> sense to worry about "PUT" support. If we want to support different
>>> tools like curl, wget than it's different story[2].
>>> 
>> 
>> same as above, are you guys talking about a web browser?
>> 
>>>> 
>>>>> so still there's no need to worry. At least I would be very surprised
>>>> that something like this simple doesn't work. ;)
>>>> 
>>>> It *will* work, because its doing a *POST* so in all likelyhood the
>>>> intended outcome is the same.
>>> 
>>> It really isn't doing just "POST". You can use "PUT" and it will map
>>> correctly to HTTP/1.1 PUT method[3].
>>> 
>>>> 
>>>>> The questions maybe should be what is the software we have to support
>>>> (I mean browsers mainly) in order to determine if this is the case.
>>>> 
>>>> I would argue that the question should be, do you need to do a PUT? If
>>>> yes, use method_override. If you are fine with doing a POST, then leave
>>>> it as it is,
>>> 
>>> Of course we don't have to use PUT if we don't require app to be RESTful
>>> styled. But I would prefer to use RESTful style because Rails just very
>>> good at it. And IMHO it's very clean style of programming.
>> 
>> Ok, I didn't say anything different and have not mentioned REST at all.
>> My intent here is not to cause an argument. I do not know the context of
>> this patch and have not tried to apply or use it. I am merely asserting
>> that IF you are using a HTML form and you want to do a PUT, then
>> 'standard' HTML 4 does not support this.
>> 
>> marios
>> 
>> 
>>>> 
>>>> marios
>>>> 
>>> 
>>> -- Ladislav
>>> 
>>> [1] http://rest.blueoxen.net/cgi-bin/wiki.pl?HttpMethodsSupport
>>> [2] http://curl.haxx.se/docs/comparison-table.html
>>> [3] http://annevankesteren.nl/2007/10/http-method-support
>> 
>> _______________________________________________
>> deltacloud-devel mailing list
>> [email protected]
>> https://fedorahosted.org/mailman/listinfo/deltacloud-devel
> 

_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to