public inbox for [email protected]  
help / color / mirror / Atom feed
From: Joao De Almeida Pereira <[email protected]>
To: Rahul Soshte <[email protected]>
Cc: Khushboo Vashi <[email protected]>
Cc: Murtuza Zabuawala <[email protected]>
Cc: pgadmin-hackers <[email protected]>
Subject: Re: [pgAdmin4][Patch][Feature #1998] Appends .sql if extension not given when using 'save' or 'save as' feature
Date: Mon, 16 Apr 2018 14:03:51 +0000
Message-ID: <CAE+jjakA9NOddUEtZABPEGfg_0z1fTqYbGfPwXGO3hrhfmyiqA@mail.gmail.com> (raw)
In-Reply-To: <CAKyzeV3FnE3XEoSmKyoN=w0NCP7nXq0AiahUPkBOq2FAQgkWEg@mail.gmail.com>
References: <CAKyzeV1fMB6rPMF+LCMY7B6_2-j7DZfmh307dBFemtR=4taX6g@mail.gmail.com>
	<CAE+jjam7ks2X=x5WoEp7WEn4tLNzw8Gzu+Mqx1sUm0OUu4Md-A@mail.gmail.com>
	<CAKKotZR_c5xJ+U-4bYQJ0DJHvDPxPK1aWOi7b7APFhNzpr1F9w@mail.gmail.com>
	<CAKyzeV0yp3-W2-=aBW38bg5zqEf44JqTnfPAtxra6ZwgwArHkw@mail.gmail.com>
	<CAKKotZQwA=x1COBZ=GhC1inE1aOk43Y4sjyKBLq4tkUz7H8NiA@mail.gmail.com>
	<CAKKotZSCFBnwZxwGH3VKUnNYtXJFjqBePxt3LBCs=8PPYBT3cw@mail.gmail.com>
	<CAKyzeV1eoSyT-YWac=OA_kjA1aDtV+1v3+fYop+WhBAXLwq8+g@mail.gmail.com>
	<CAKKotZRiEnSjtwDNx3XAW-MsjKCXsut+k_CJS0kjXij_9jeE3g@mail.gmail.com>
	<CAKyzeV3-6yVGRj0i8ZU-4Y-ysgfHk3sRiJm4cTwi=KonMJNgrQ@mail.gmail.com>
	<CAKKotZRcx4ZcQ2+gfa3zLf4nH12DHCbZOi2P+iM3bewP_38hGA@mail.gmail.com>
	<CAKyzeV3ciT_L9OoOG8XcxQPNsCokvwgduhGM0Cha0FtXW7damA@mail.gmail.com>
	<CAKKotZR9JEQm8rA21Cx-buLQUxKXQixoTY8wWfu=bov0pPXAiw@mail.gmail.com>
	<CAKyzeV3UzJe-SvykiG-kK701GpHHkG=GGVL_FBRGwSpvNK8nqA@mail.gmail.com>
	<CAKyzeV3rObAuH_QRA7wredF+rA516TKHWZRxKCryeY6tReJOxQ@mail.gmail.com>
	<CAKyzeV0FMhwH8UvxDN9XgE7nUdU5zh7jXKuB5=ow10N=7wkvNg@mail.gmail.com>
	<CAKyzeV11f+GYC64xA8BzBjSNwg91eH7MRHcFiLYfS4Wgz3A7kg@mail.gmail.com>
	<CAFOhELcqwGjZGn5zEbWz6UWX0y2K7XkSYZ9TcYzM8QVqkhU4_Q@mail.gmail.com>
	<CAKyzeV3FnE3XEoSmKyoN=w0NCP7nXq0AiahUPkBOq2FAQgkWEg@mail.gmail.com>

Hello Rahul,
I didn't try to execute the code that you sent on the WIP.

Nevertheless you are returning internal_server_error in some cases from the
function save_query_to_file. You need to do one of 2 things
​
1) Let the exception flow to the controller and catch it there
2) In the controller check if the return is a response

Personally I would go with 1. Eventually I would catch the exception in the
function and throw a SaveFileException (new class). Going with 1 you can
test all the functionality without having to standup a Flask application
and doing an HTTP request.

Thanks
Joao

On Mon, Apr 16, 2018 at 8:20 AM Rahul Soshte <[email protected]>
wrote:

> Hi,
>
> I have attached the WIP Patch.
>
> Regards,
> Rahul Soshte
>
> On Mon, Apr 16, 2018 at 4:13 PM, Khushboo Vashi <
> [email protected]> wrote:
>
>> Hi Rahul,
>>
>> Instead of partial code, please send WIP patch, so I can look into this
>> and help you.
>>
>> Thanks,
>> Khushboo
>>
>>
>> On Sat, Apr 14, 2018 at 4:51 PM, Rahul Soshte <[email protected]>
>> wrote:
>>
>>> // read data from codemirror and write to file
>>>       _save_file_handler: function(e) {
>>>         var self = this,
>>>           _e = e,
>>>           data = {
>>>             'file_name': decodeURI(e[0]),
>>>             'file_content': self.gridView.query_tool_obj.getValue(),
>>>             'file_type': e[1],
>>>           };
>>>         self.trigger(
>>>           'pgadmin-sqleditor:loading-icon:show',
>>>           gettext('Saving the queries in the file...')
>>>         );
>>>
>>>         // Make ajax call to save the data to file
>>>         $.ajax({
>>>           url: url_for('sqleditor.save_file'),
>>>           method: 'POST',
>>>           contentType: 'application/json',
>>>           data: JSON.stringify(data),
>>>           success: function(res) {
>>>             if (res.data.status) {
>>>               alertify.success(res.data.result);
>>>               alertify.success(gettext('File saved successfully.'));
>>>               self.gridView.current_file = res.data.result;
>>>               self.gridView.current_file_type = e[1];
>>>               self.setTitle(self.gridView.current_file.replace(/^.*[\\\/]/g,
>>> ''), true);
>>>               // disable save button on file save
>>>               $('#btn-save').prop('disabled', true);
>>>
>>> On Sat, Apr 14, 2018 at 4:50 PM, Rahul Soshte <[email protected]>
>>> wrote:
>>>
>>>>
>>>>
>>>>
>>>> On Sat, Apr 14, 2018 at 4:49 PM, Rahul Soshte <[email protected]
>>>> > wrote:
>>>>
>>>>> Also attaching my web/pgadmin/tools/sqleditor/static/sqleditor.js
>>>>> my  _save_file_handler code
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Sat, Apr 14, 2018 at 4:46 PM, Rahul Soshte <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I have been partially able to solve the problem as you can see in the
>>>>>> image. When I select sql in format combobox then only the .sql extension is
>>>>>> added.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>  But another issue has arisen. Once the file is saved and now When I
>>>>>> change the text in the CodeMirror , the save button is enabled and then
>>>>>> when I click on it , a error message pops.The problem is whenever I try to
>>>>>> save a file for the first time the code works ,but the 2nd time
>>>>>> I try to save it,the code faulters.
>>>>>>
>>>>>> Error message is as follows:
>>>>>>
>>>>>> Traceback (most recent call last):
>>>>>>   File
>>>>>> "/var/www/flask/pgadmin4/lib/python2.7/site-packages/flask/app.py", line
>>>>>> 1997, in __call__
>>>>>>     return self.wsgi_app(environ, start_response)
>>>>>>   File
>>>>>> "/var/www/flask/pgadmin4/lib/python2.7/site-packages/flask/app.py", line
>>>>>> 1985, in wsgi_app
>>>>>>     response = self.handle_exception(e)
>>>>>>   File
>>>>>> "/var/www/flask/pgadmin4/lib/python2.7/site-packages/flask/app.py", line
>>>>>> 1540, in handle_exception
>>>>>>     reraise(exc_type, exc_value, tb)
>>>>>>   File
>>>>>> "/var/www/flask/pgadmin4/lib/python2.7/site-packages/flask/app.py", line
>>>>>> 1982, in wsgi_app
>>>>>>     response = self.full_dispach_request()
>>>>>>   File
>>>>>> "/var/www/flask/pgadmin4/lib/python2.7/site-packages/flask/app.py", line
>>>>>> 1614, in full_dispatch_request
>>>>>>     rv = self.handle_user_exception(e)
>>>>>>   File
>>>>>> "/var/www/flask/pgadmin4/lib/python2.7/site-packages/flask/app.py", line
>>>>>> 1517, in handle_user_exception
>>>>>>     reraise(exc_type, exc_value, tb)
>>>>>>   File
>>>>>> "/var/www/flask/pgadmin4/lib/python2.7/site-packages/flask/app.py", line
>>>>>> 1612, in full_dispatch_request
>>>>>>     rv = self.dispatch_request()
>>>>>>   File
>>>>>> "/var/www/flask/pgadmin4/lib/python2.7/site-packages/flask/app.py", line
>>>>>> 1598, in dispatch_request
>>>>>>     return self.view_functions[rule.endpoint](**req.view_args)
>>>>>>   File
>>>>>> "/var/www/flask/pgadmin4/lib/python2.7/site-packages/flask_login.py", line
>>>>>> 792, in decorated_view
>>>>>>     return func(*args, **kwargs)
>>>>>>   File
>>>>>> "/var/www/flask/pgadmin4/pgadmin4/web/pgadmin/tools/sqleditor/__init__.py",
>>>>>> line 1314, in save_file
>>>>>>     'file_path': file_path
>>>>>>   File "/var/www/flask/pgadmin4/pgadmin4/web/pgadmin/utils/ajax.py",
>>>>>> line 61, in make_json_response
>>>>>>     separators=(',', ':')),
>>>>>>   File
>>>>>> "/var/www/flask/pgadmin4/lib/python2.7/site-packages/simplejson/__init__.py",
>>>>>> line 399, in dumps
>>>>>>     **kw).encode(obj)
>>>>>>   File
>>>>>> "/var/www/flask/pgadmin4/lib/python2.7/site-packages/simplejson/encoder.py",
>>>>>> line 291, in encode
>>>>>>     chunks = self.iterencode(o, _one_shot=True)
>>>>>>   File
>>>>>> "/var/www/flask/pgadmin4/lib/python2.7/site-packages/simplejson/encoder.py",
>>>>>> line 373, in iterencode
>>>>>>     return _iterencode(o, 0)
>>>>>>   File "/var/www/flask/pgadmin4/pgadmin4/web/pgadmin/utils/ajax.py",
>>>>>> line 30, in default
>>>>>>     return json.JSONEncoder.default(self, obj)
>>>>>>   File
>>>>>> "/var/www/flask/pgadmin4/lib/python2.7/site-packages/simplejson/encoder.py",
>>>>>> line 268, in default
>>>>>>     o.__class__.__name__)
>>>>>> TypeError: Object of type Response is not JSON serializable
>>>>>>
>>>>>> I pass an array which contains the file_name and file_type in
>>>>>> /pgadmin/misc/file_manager/static/js/file_manager.js
>>>>>>
>>>>>>
>>>>>>
>>>>>> Also I have done similar changes around line 678.
>>>>>>
>>>>>> Also in web/pgadmin/tools/sqleditor/__init__.py I have made the
>>>>>> folllowing changes
>>>>>>
>>>>>>
>>>>>>
>>>>>> Also I have attached my
>>>>>> web/pgadmin/tools/sqleditor/utils/save_file_query_to_file_utils.py
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>


Attachments:

  [image/png] image.png (64.0K, 3-image.png)
  download | view image

  [image/png] image.png (29.1K, 4-image.png)
  download | view image

  [image/png] image.png (62.9K, 5-image.png)
  download | view image

  [image/png] image.png (62.4K, 6-image.png)
  download | view image

  [image/png] image.png (64.0K, 7-image.png)
  download | view image

  [image/png] image.png (24.9K, 8-image.png)
  download | view image

view thread (20+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected]
  Subject: Re: [pgAdmin4][Patch][Feature #1998] Appends .sql if extension not given when using 'save' or 'save as' feature
  In-Reply-To: <CAE+jjakA9NOddUEtZABPEGfg_0z1fTqYbGfPwXGO3hrhfmyiqA@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox