Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b1AtW-0003T3-Ip for pgadmin-hackers@arkaria.postgresql.org; Fri, 13 May 2016 11:04:34 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1b1AtV-0003vC-Bh for pgadmin-hackers@arkaria.postgresql.org; Fri, 13 May 2016 11:04:33 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1b1AtT-0003uo-Ee for pgadmin-hackers@postgresql.org; Fri, 13 May 2016 11:04:31 +0000 Received: from mail-wm0-x232.google.com ([2a00:1450:400c:c09::232]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1b1AtP-0000NF-G1 for pgadmin-hackers@postgresql.org; Fri, 13 May 2016 11:04:30 +0000 Received: by mail-wm0-x232.google.com with SMTP id e201so17908315wme.0 for ; Fri, 13 May 2016 04:04:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=cvoLOcDlrZtn+m8qtrS5E2bgNk/dOPnz3Z78vPrCNnM=; b=Xp8ZyhUa6p5VpmSd4lNqRKaEj6lE3diWnNoq6E6IWfKEn4BC0xy7JwG2/325a5c9TG AdAXGlKvhB/gJemQLLWFKnBioJyvUXiZAz3hzNY1kaOx764AB0hoZPRuf/wccfewX8bI jt2MBenwslrSPgqss/lnmJcA0xFNAVbODHIxcM8tbHu0chx1jBVKVA08p0TVO8zVfyYh niETEi7MmmZiMhYfpTBllYE5qEvSRpWWXYYeqqgVfbw1tHx8phVLuQ60YUCHuwwibyNm N+jxrJYwMmJK4wK1pSbNlZCfc+9IgBEBjAaq72Qhv6hWyCdFjsDFMIfHotTEwOWLfTnT KmVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=cvoLOcDlrZtn+m8qtrS5E2bgNk/dOPnz3Z78vPrCNnM=; b=Rl+JUSScEPjfg6jSFik9GboRLRf615SKqlaMfBZlbFF9AOyFW2ebAv3oWMn9CxaVtV 48DAvSgmo31mJoJFkZcXstVnsO5KYK1xcf1N2I9ZweH+kNR//nwBdfiJmOL89km/AM9X Z/WuyFBi+h9iCPRXeqbf0B0NB/n8TzdYoCjaQDLc4hWnjdV3ZDEEmFNqHXFd2zF9Z+jX Yozy4SbEsbPGzcQgGPTixK35umlIkXmHxxM/keYkr22fgMITxgw1sBOyVVco9eBDPB9z qZlwcEM8WPAM8Lz0KvI2TVgITC8/AJMTrx8RNIbBJ0BLBDW83d/obQjpzfFACu4Ss7qX I8wA== X-Gm-Message-State: AOPr4FUniiHNNS9luH6LlqGcaPWss0D8P1TEvXeSYOS4PqVSo7EiWaNwMAOT2/D1qtDbOt1VJEkwF++gOlKj6vO+ X-Received: by 10.28.133.10 with SMTP id h10mr3042490wmd.49.1463137464859; Fri, 13 May 2016 04:04:24 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.14.212 with HTTP; Fri, 13 May 2016 04:03:55 -0700 (PDT) In-Reply-To: References: From: Surinder Kumar Date: Fri, 13 May 2016 16:33:55 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: File Manager & Backform FileControl To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11442022d9f1f90532b73c85 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a11442022d9f1f90532b73c85 Content-Type: multipart/alternative; boundary=001a11442022d9f1f50532b73c83 --001a11442022d9f1f50532b73c83 Content-Type: text/plain; charset=UTF-8 Hi, Please find the patch for the following improvements: 1. FileManager won't show Volumes on Windows when STORAGE_DIR is set to None. On Fri, May 13, 2016 at 12:24 AM, Ashesh Vashi < ashesh.vashi@enterprisedb.com> wrote: > Hi Surinder, > > Thanks - it was committed! > > As discussed personally, there are few improvement needed. > > * Do not show non applicable buttons, whenever no files/directory > available in the storage root directory. > Done > * In crate mode, use dimmer with the overwrite warning, so that - it does > not allow to deselect the current selection. > Done > * The default selection for the file type selection combo box should be > other than 'All Files'. > Done > * File type selection combo box should support file type description. > i.e. > Query/SQL File (*.sql) > CSV File (*.csv) > All Files (*.* | *) > > Please put that in the TODO file, we will handle that in future. > I have added it into TODO file. > > I must apologies for a mistake for not giving you the credit for the work, > I forgot to set the author while committing it. > I tried setting it again to set the author without any success. :-( > > Thanks for the patch. > I will be more careful next time. > > -- > > Thanks & Regards, > > Ashesh Vashi > EnterpriseDB INDIA: Enterprise PostgreSQL Company > > > > *http://www.linkedin.com/in/asheshvashi* > > > On Thu, May 12, 2016 at 12:18 AM, Surinder Kumar < > surinder.kumar@enterprisedb.com> wrote: > >> Hi, >> >> PFA updated patch with following issues fixed: >> 1. not listing files based on default file type selected. >> 2. load css file using 'get_own_stylesheets' method instead of loading >> from 'base.html'. >> 3. setting custom dialog title and button not working. >> >> On Wed, May 11, 2016 at 3:03 PM, Surinder Kumar < >> surinder.kumar@enterprisedb.com> wrote: >> >>> >>> ---------- Forwarded message ---------- >>> From: Surinder Kumar >>> Date: Tue, May 10, 2016 at 11:43 PM >>> Subject: Re: [pgadmin-hackers][pgAdmin4][Patch]: File Manager & Backform >>> FileControl >>> To: Neel Patel >>> Cc: pgadmin-hackers >>> >>> >>> Hi, >>> >>> Please find updated path with couple of review comments given by Ashesh >>> Vashi. >>> 1. Add variable *STORAGE_DIR* in configuration settings which decides >>> the directory to list when *File manager* is opens, previously >>> we have provided this option in preferences which is removed due to >>> security issues. >>> 2. List all available Volumes by default when *STORAGE_DIR *is set to >>> empty for *Windows* platform. >>> 3. Also, added support to allow user to provide >>> *Dialog title and custom name for primary(OK) button,* >>> >>> Usage: >>> >>> 1. Set variable *STORAGE_DIR *to some value in config.py. >>> 2. Import it in your module as following: >>> * import config* >>> * config.**STORAGE_DIR* >>> >>> *Usage*: Backform FilleControl >>> >>> schema:[{ >>> id: 'select_file', label: '{{ _('Select File')}}', >>> type: 'text', *control*: *Backform.FileControl*, >>> *dialog_type: '*select_file*'*, *supp_types: [*'*', 'pdf', 'text', >>> 'patch', 'py'*],* >>> * dialog_title: '*Title to appear on dialog*", * >>> * btn_primary: '*Save File*'* >>> }] >>> >>> Please review the patch. >>> >>> On Wed, May 4, 2016 at 6:35 PM, Surinder Kumar < >>> surinder.kumar@enterprisedb.com> wrote: >>> >>>> Hi >>>> >>>> PFA updated patch with resolved review comments. >>>> >>>> On Thu, Apr 28, 2016 at 6:39 PM, Neel Patel < >>>> neel.patel@enterprisedb.com> wrote: >>>> >>>>> Hi Surinder, >>>>> >>>>> Please find additional comments as below. >>>>> >>>>> 1. In Windows OS, when we try to open the dialog with default >>>>> preference value then it gives error as below. >>>>> >>>>> 2016-04-28 13:07:44,716: ERROR pgadmin: Exception on >>>>> /file_manager/filemanager/2530270/ [POST] >>>>> Traceback (most recent call last): >>>>> File "C:\Projects\venv_python_2_7\Lib\site-packages\flask\app.py", >>>>> line 1817, in wsgi_app >>>>> response = self.full_dispatch_request() >>>>> File "C:\Projects\venv_python_2_7\Lib\site-packages\flask\app.py", >>>>> line 1477, in full_dispatch_request >>>>> rv = self.handle_user_exception(e) >>>>> File "C:\Projects\venv_python_2_7\Lib\site-packages\flask\app.py", >>>>> line 1381, in handle_user_exception >>>>> reraise(exc_type, exc_value, tb) >>>>> File "C:\Projects\venv_python_2_7\Lib\site-packages\flask\app.py", >>>>> line 1475, in full_dispatch_request >>>>> rv = self.dispatch_request() >>>>> File "C:\Projects\venv_python_2_7\Lib\site-packages\flask\app.py", >>>>> line 1461, in dispatch_request >>>>> return self.view_functions[rule.endpoint](**req.view_args) >>>>> File "C:\Projects\venv_python_2_7\Lib\site-packages\flask_login.py", >>>>> line 758, in decorated_view >>>>> return func(*args, **kwargs) >>>>> File >>>>> "C:\Projects\pgadmin4\web\pgadmin\misc\file_manager\__init__.py", line 629, >>>>> in file_manager >>>>> return getattr(myFilemanager, mode)(**kwargs) >>>>> File >>>>> "C:\Projects\pgadmin4\web\pgadmin\misc\file_manager\__init__.py", line 421, >>>>> in getfolder >>>>> filelist = self.list_filesystem(dir, path, trans_data, file_type) >>>>> File >>>>> "C:\Projects\pgadmin4\web\pgadmin\misc\file_manager\__init__.py", line 331, >>>>> in list_filesystem >>>>> for f in sorted(os.listdir(orig_path)): >>>>> WindowsError: [Error 161] The specified path is invalid: '//*.*' >>>>> >>>>> Now the default path will always be the users directory. I have used *os.path.expanduser('~') >>>> *which prints user directory. It works for all operating systems. >>>> >>>>> >>>>> 2. Folder having write only permission should not allow to read the >>>>> directory. Same way read only permission folder should not allow to create >>>>> the folder. Currently it gives below error. >>>>> >>>>> PermissionError: [Errno 13] Permission denied: >>>>> '/home/neel/Projects/pgadmin4_file_manager/write_only_premission/' >>>>> >>>> Fixed. >>>> >>>>> >>>>> 3. In Windows OS, when we open the file manager dialog, no directories >>>>> listed though we have directories in the folder. Due to that we are not >>>>> able to >>>>> test all the functionality in windows. Once we fix this issue then >>>>> we test all the functionality in windows OS. >>>>> >>>>> We debug the issue and found that issue is with the json response >>>>> which includes the HTML tags. >>>>> >>>> Fixed. It still have issues in very older browsers. I will fix it. >>>> >>>>> >>>>> 4. In Windows OS, file manager dialog have issue with layout. We are >>>>> getting some margin at top before buttons. >>>>> >>>> Fixed. >>>> >>>>> >>>>> 5. When we give any special characters to folder name that it gives >>>>> error saying "Folder does not exist". >>>>> Same is applicable when we give dialog_type to create_file >>>>> >>>> Fixed. >>>> >>>>> >>>>> 6. In create_file mode, after giving the filename it should display >>>>> the name of the file to text control. >>>>> >>>> Fixed. >>>> >>>>> >>>>> 7. In create_file mode, when user gives the filename and click on the >>>>> any blank area of dialog then name is getting cleared. >>>>> >>>> Fixed. >>>> >>>>> >>>>> 8. When we upload the new file through file manager then it is not >>>>> showing in the list though we have selected "All files" options. >>>>> >>>> Fixed. >>>> >>>>> >>>>> 9. When we rename the folder in "Table mode" then font-family gets >>>>> changed. It is not happened in "Grid" mode. >>>>> >>>> Fixed. >>>> >>>>> >>>>> 10. When we try to download the file then it goes into loop and opens >>>>> up 20-30 dialogs at the same time. >>>>> >>>> Fixed. >>>> >>>>> >>>>> 11. "Rename" button is enabled even though we have not selected the >>>>> files/folder to rename and when we click on the "Rename" button it gives >>>>> below >>>>> error. >>>>> >>>>> TypeError: orig_value is undefined >>>>> >>>> Fixed. >>>> >>>>> 12. "Delete" button is enabled even though we have not selected the >>>>> files/folder to delete and when we click on the "Delete" button it gives >>>>> below error. >>>>> TypeError: path is undefined >>>>> >>>> Fixed. >>>> >>>>> >>>>> Do let us know if you have queries. >>>>> >>>>> Thanks, >>>>> Neel Patel >>>>> >>>>> On Wed, Apr 27, 2016 at 9:15 PM, Neel Patel < >>>>> neel.patel@enterprisedb.com> wrote: >>>>> >>>>>> Hi Surinder, >>>>>> >>>>>> I have applied the patch file and below are some observations. >>>>>> >>>>>> - When we create the new folder and hit the enter then we are >>>>>> getting the below error. >>>>>> >>>>>> TypeError: argument of type 'NoneType' is not >>>>>> iterable >>>>>> >>>>>> - I have just added the new control in "Import" dialog and >>>>>> observed that new control is getting added in new tab called "General". I >>>>>> think it should not create the new "General" tab. >>>>>> - "Select" and "Cancel" buttons font is different then other >>>>>> dialogs. >>>>>> >>>>>> >>>>>> Thanks, >>>>>> Neel Patel >>>>>> >>>>>> On Wed, Apr 27, 2016 at 6:18 PM, Surinder Kumar < >>>>>> surinder.kumar@enterprisedb.com> wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> The patch is for *File Manager and Backform FileControl*. >>>>>>> >>>>>>> *File Manager:* It allows user to store their files at one place. >>>>>>> The user can set path to this directory in preferences which file manger >>>>>>> will use. >>>>>>> >>>>>>> It will be used by various modules of pgAdmin4 such as >>>>>>> *import data from file, query tool, backup & recovery tool* so on.. >>>>>>> It allows user to perform various operations such as: >>>>>>> >>>>>>> - File deletion >>>>>>> - File upload >>>>>>> - Create new directory >>>>>>> - File rename >>>>>>> - File download and >>>>>>> - List files & folders in list and grid view. >>>>>>> >>>>>>> *FileControl: *This control is used with *File Manager. *It can be >>>>>>> used for: >>>>>>> >>>>>>> - File Selection >>>>>>> - Folder Selection >>>>>>> - File Creation >>>>>>> - Storage Manager Dialog.( it supports all operations listed >>>>>>> above). >>>>>>> >>>>>>> >>>>>>> Usage*:* >>>>>>> >>>>>>> schema:[{ >>>>>>> id: 'select_file', label: '{{ _('Select File')}}', >>>>>>> type: 'text', *control*: *Backform.FileControl*, >>>>>>> *dialog_type: 'select_file'*, *supp_types: ['*', 'pdf', 'text', >>>>>>> 'patch', 'py']* >>>>>>> } >>>>>>> >>>>>>> Where: >>>>>>> >>>>>>> - *control* - It should be *Backform.FileControl* >>>>>>> - *dialog_type *- the type of dialog to use. >>>>>>> - options can be: *select_file, select_folder, create_file & >>>>>>> storage_dialog*. >>>>>>> - *supp_types(*not mandatory) - the types of files allowed to >>>>>>> show and upload. >>>>>>> >>>>>>> Please review the patch and let me know for the review comments. >>>>>>> >>>>>>> >>>>>>> Thanks >>>>>>> Surinder Kumar >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Sent via pgadmin-hackers mailing list ( >>>>>>> pgadmin-hackers@postgresql.org) >>>>>>> To make changes to your subscription: >>>>>>> http://www.postgresql.org/mailpref/pgadmin-hackers >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >>> >> >> >> -- >> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) >> To make changes to your subscription: >> http://www.postgresql.org/mailpref/pgadmin-hackers >> >> > --001a11442022d9f1f50532b73c83 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Please find the patch for the follo= wing improvements:
1. FileManager won't show Volumes on Windo= ws when STORAGE_DIR is set to None.


On Fri, May 13, 2016 at 12:24 AM, Ashesh V= ashi <ashesh.vashi@enterprisedb.com> wrote:
<= blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px= #ccc solid;padding-left:1ex">
Hi Surinder,

<= div>Thanks - it was committed!

As discussed person= ally, there are few improvement needed.

* Do not s= how non applicable buttons, whenever no files/directory available in the st= orage root directory.
Done=C2=A0
* In crate mode, use dimmer wi= th the overwrite warning, so that - it does not allow to deselect the curre= nt selection.
Done=C2=A0
* The default selection for the file t= ype selection combo box should be other than 'All Files'.
Done=C2=A0
* File type selection combo box should support file type desc= ription.
=C2=A0 i.e.
Query/SQL File (*.sql)
C= SV File (*.csv)
All Files (*.* | *)

Plea= se put that in the TODO file, we will handle that in future.
I have added it into TODO file.=C2=A0

I must apologies for a m= istake for not giving you the credit for the work, I forgot to set the auth= or while committing it.
I tried setting it again to set the a= uthor without any success. :-(

Thanks for the patc= h.
I will be more careful next time.

--

<= p style=3D"margin:0pt">Thanks & Regards,
Ashesh Vashi
<= span style=3D"font-style:italic">EnterpriseDB INDIA: Enterprise PostgreSQL Company

<= br>

<= a href=3D"http://www.linkedin.com/in/asheshvashi" target=3D"_blank">http= ://www.linkedin.com/in/asheshvashi

<= div>

On Thu, May 12, 2016 at 12:18 AM, Surinder K= umar <surinder.kumar@enterprisedb.com> wrote:<= br>
Hi,

P= FA updated patch with following issues fixed:
1. not listing file= s based on default file type selected.
2. load css file using = 9;get_own_stylesheets' method instead of loading from 'base.html= 9;.
3. setting custom dialog title and button not working.
<= /div>

On= Wed, May 11, 2016 at 3:03 PM, Surinder Kumar <surinder.kuma= r@enterprisedb.com> wrote:
=

---------- Forwar= ded message ----------
From: Surinder Kuma= r <surinder.kumar@enterprisedb.com>
Dat= e: Tue, May 10, 2016 at 11:43 PM
Subject: Re: [pgadmin-hackers][pgAdmin4= ][Patch]: File Manager & Backform FileControl
To: Neel Patel <neel.patel@en= terprisedb.com>
Cc: pgadmin-hackers <pgadmin-hackers@postgresql.org>


Hi,

Please find updat= ed path with couple of review comments given by Ashesh Vashi.
1. = Add variable STORAGE_DIR in configuration settings which decides the= directory to list when File manager is opens, previously
= we have provided this option in preferences which is removed due to securit= y issues.
2. List all available Volumes by default when=C2=A0S= TORAGE_DIR is set to empty for Windows platform.
3. Al= so, added support to allow user to provide
Dialog title and cu= stom name for primary(OK) button,

Usage= :

1. Set variable=C2=A0STORAGE_DIR to some = value=C2=A0in config.py.
2. Import it in your module as following= :
=C2=A0 =C2=A0import config
=C2=A0 =C2=A0con= fig.STORAGE_DIR

Usage: Backform= =C2=A0FilleControl

schema:[{
=C2=A0 id: 'select_fi= le', label: '{{ _('Select File')}}',=C2=A0
=
=C2=A0 type= : 'text',=C2=A0control:=C2=A0Backform.FileControl,
=C2=A0=C2=A0dialog_type: 'select_file',=C2=A0supp_types: ['*', 'pdf', 'text', 'patch= 9;, 'py'],
=C2=A0 dialog_title: 'Title to appear= on dialog",=C2=A0
=C2=A0 btn_primary: 'Save File'
}]

Please review the patch.
<= div>

On Wed, May 4= , 2016 at 6:35 PM, Surinder Kumar <surinder.kumar@enterprise= db.com> wrote:
Hi

PFA updated patch with resolved review comments.=

On Th= u, Apr 28, 2016 at 6:39 PM, Neel Patel <neel.patel@enterprisedb.= com> wrote:
Hi Su= rinder,

Please find additional comments as below.<= /div>

1.=C2=A0 In Windows OS, when we try to open t= he dialog with default preference value then it gives error as below.
=

2016-04-28 13:07:44,716: ERROR =C2=A0pgadmin: =C2=A0 = =C2=A0 =C2=A0 =C2=A0Exception on /file_manager/filemanager/2530270/ [POST]<= /div>
Traceback (most recent call last):
=C2=A0 File "C:= \Projects\venv_python_2_7\Lib\site-packages\flask\app.py", line 1817, = in wsgi_app
=C2=A0 =C2=A0 response =3D self.full_dispatch_request= ()
=C2=A0 File "C:\Projects\venv_python_2_7\Lib\site-package= s\flask\app.py", line 1477, in full_dispatch_request
=C2=A0 = =C2=A0 rv =3D self.handle_user_exception(e)
=C2=A0 File "C:\= Projects\venv_python_2_7\Lib\site-packages\flask\app.py", line 1381, i= n handle_user_exception
=C2=A0 =C2=A0 reraise(exc_type, exc_value= , tb)
=C2=A0 File "C:\Projects\venv_python_2_7\Lib\site-pack= ages\flask\app.py", line 1475, in full_dispatch_request
=C2= =A0 =C2=A0 rv =3D self.dispatch_request()
=C2=A0 File "C:\Pr= ojects\venv_python_2_7\Lib\site-packages\flask\app.py", line 1461, in = dispatch_request
=C2=A0 =C2=A0 return self.view_functions[rule.en= dpoint](**req.view_args)
=C2=A0 File "C:\Projects\venv_pytho= n_2_7\Lib\site-packages\flask_login.py", line 758, in decorated_view
=C2=A0 =C2=A0 return func(*args, **kwargs)
=C2=A0 File &= quot;C:\Projects\pgadmin4\web\pgadmin\misc\file_manager\__init__.py", = line 629, in file_manager
=C2=A0 =C2=A0 return getattr(myFilemana= ger, mode)(**kwargs)
=C2=A0 File "C:\Projects\pgadmin4\web\p= gadmin\misc\file_manager\__init__.py", line 421, in getfolder
=C2=A0 =C2=A0 filelist =3D self.list_filesystem(dir, path, trans_data, fi= le_type)
=C2=A0 File "C:\Projects\pgadmin4\web\pgadmin\misc\= file_manager\__init__.py", line 331, in list_filesystem
=C2= =A0 =C2=A0 for f in sorted(os.listdir(orig_path)):
WindowsError: = [Error 161] The specified path is invalid: '//*.*'

Now the default path will always b= e the users directory. I have used os.path.expanduser('~') w= hich prints user directory.=C2=A0It works for all operating systems.=C2=A0<= /div>

2. Folder having write only permission should not allow to read the d= irectory. Same way read only permission folder should not allow to create t= he folder. =C2=A0 =C2=A0 Currently it gives below error.

=C2=A0 =C2=A0PermissionError: [Errno 13] Permission denied: '/ho= me/neel/Projects/pgadmin4_file_manager/write_only_premission/'
Fixed.=C2=A0
=

3. In Windows OS, when we open th= e file manager dialog, no directories listed though we have directories in = the folder. Due to that we are not able to=C2=A0
=C2=A0 =C2=A0 te= st all the functionality in windows. Once we fix this issue then we test al= l the functionality in windows OS.
=C2=A0 =C2=A0
=C2=A0= =C2=A0We debug the issue and found that issue is with the json response wh= ich includes the HTML tags.
Fixed= . It still have issues in very older browsers. I will fix it.

4. In Windows OS, = file manager dialog have issue with layout. We are getting some margin at t= op before buttons.
Fixed.=C2=A0

5. Whe= n we give any special characters to folder name that it gives error saying = "Folder does not exist".
=C2=A0 =C2=A0 Same is applicab= le when we give dialog_type to create_file
Fixed.=C2=A0
=
=C2=A0 =C2=A0
6. In create_file mode, after giving the filen= ame it should display the name of the file to text control.
Fixed.=C2=A0

7. In create_file mode, when user gives = the filename and click on the any blank area of dialog then name is getting= cleared.
Fixed.=C2=A0

8. When we uplo= ad the new file through file manager then it is not showing in the list tho= ugh we have selected "All files" options.
Fixed.=C2=A0

9. When we rename the folder in "Table mode= " then font-family gets changed. It is not happened in "Grid"= ; mode.
Fixed.=C2=A0
<= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;pa= dding-left:1ex">

10. When we try t= o download the file then it goes into loop and opens up 20-30 dialogs at th= e same time.
Fixed.=C2=A0

11. "Re= name" button is enabled even though we have not selected the files/fol= der to rename and when we click on the "Rename" button it gives b= elow=C2=A0
=C2=A0 =C2=A0 =C2=A0error.

= =C2=A0 =C2=A0 TypeError: orig_value is undefined
Fixed.=C2=A0
<= div>
12. "= Delete" button is enabled even though we have not selected the files/f= older to delete and when we click on the "Delete" button it gives= below error.
=C2=A0 =C2=A0 =C2=A0TypeError: path is undefined
Fixed.=C2=A0

Do let us know if you h= ave queries.

Thanks,
Neel Patel

On Wed, Apr 27, 2016 at 9:15 PM, Neel Patel <neel.patel@enterp= risedb.com> wrote:
Hi Su= rinder,

I have applied the patch file and below are some= observations.
  • When we create the new folder and hit the = enter then we are getting the below error.
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0TypeError: argument of t= ype 'NoneType' is not iterable
  • I have just = added the new control in "Import" dialog and observed that new co= ntrol is getting added in new tab called "General". I think it sh= ould not create the new "General" tab.
  • "Select"= and "Cancel" buttons font is different then other dialogs.
  • <= /ul>

Thanks,
Neel Patel

On Wed, Apr = 27, 2016 at 6:18 PM, Surinder Kumar <surinder.kumar@enterpri= sedb.com> wrote:
Hi,

The patch is for File Manager and = Backform=C2=A0FileControl.

File Manager<= /u>:=C2=A0It allows user to store their files at one place. The user ca= n set path to this directory in preferences which file manger will use.

It will be used by various modules of pgAdmin4 such a= s
import data from file, query tool, backup & recovery too= l=C2=A0so on.. It allows user to perform various operations such as:=C2= =A0
  • File deletion
  • File upload
  • Create = new directory
  • File rename
  • File download and=C2=A0
  • <= li>List files & folders in list and grid view.
= FileControl:=C2=A0This control is used with=C2=A0File Mana= ger.=C2=A0It=C2=A0can be used for:
  • File Selection =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0
  • Folder=C2=A0Selection=C2= =A0 =C2=A0 =C2=A0=C2=A0
  • File Creation =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0=C2=A0
  • Storage Manager Dialog.( it supports al= l operations listed above).

Usage:

schema:[{
=C2=A0 id: 'select_file', label: '{{ _('Select File')}= }',=C2=A0
=C2=A0 typ= e: 'text',=C2=A0control:=C2=A0Backform.FileControl,
=C2=A0=C2=A0dialog_typ= e: 'select_file',=C2=A0supp_types: ['*', 'pdf= 9;, 'text', 'patch', 'py']
}

Wher= e:
  • control=C2=A0- It should be=C2=A0Backform.FileControl
  • dialog= _type=C2=A0- the type of dialog to use.
  • options can be:=C2= =A0=C2=A0select_file, select_folder, create_file & storage_dialog.
  • supp_types(not mandatory)=C2=A0- the types of = files allowed to show and upload.
Please re= view the patch and let me know for the review comments.


Thanks
Surinde= r Kumar


--
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers=









--
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers=



--001a11442022d9f1f50532b73c83-- --001a11442022d9f1f90532b73c85 Content-Type: application/octet-stream; name="FileManager_changes_v1.patch" Content-Disposition: attachment; filename="FileManager_changes_v1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_io5m8s3a0 ZGlmZiAtLWdpdCBhL1RPRE8udHh0IGIvVE9ETy50eHQKaW5kZXggN2VjM2Vm MC4uN2FiYWM4ZiAxMDA2NDQKLS0tIGEvVE9ETy50eHQKKysrIGIvVE9ETy50 eHQKQEAgLTE3LDcgKzE3LDcgQEAgTmV3IGZ1bmN0aW9uYWxpdHkgYWRkZWQg aW4gUEcgOS41IGZvciB0aGlzIG1vZHVsZSBhcyBiZWxvdzoKIC0gU0VUIFdJ VEggT0lEUwogLSBTRVQgV0lUSE9VVCBPSURTCiAKLVRvIGFkZCB0aGlzIGZ1 bmN0aW9uYWxpdHkgd2UgbmVlZCB0byBhZGQgQ29sdW1ucywgVHJpZ2dlcnMg YW5kIENvbnN0cmFpbnRzIGFzIAorVG8gYWRkIHRoaXMgZnVuY3Rpb25hbGl0 eSB3ZSBuZWVkIHRvIGFkZCBDb2x1bW5zLCBUcmlnZ2VycyBhbmQgQ29uc3Ry YWludHMgYXMKIHNlcGFyYXRlIE5vZGVzIHVuZGVyIHRoZSBGb3JlaWduIFRh YmxlIE5vZGUuCiAKIFF1ZXJ5IFRvb2wgdXBkYXRlYWJsZSByZWNvcmRzZXQg c3VwcG9ydApAQCAtMjYsMyArMjYsMTIgQEAgUXVlcnkgVG9vbCB1cGRhdGVh YmxlIHJlY29yZHNldCBzdXBwb3J0CiBBZGQgc21hcnRzIHRvIHRoZSBRdWVy eSBUb29sIHRvIGFsbG93IGl0IHRvIHJlY29nbmlzZSBpZiBhIHF1ZXJ5IHBy b2R1Y2VzIGEKIGRhdGEgc2V0IHRoYXQgd291bGQgYmUgdXBkYXRlYWJsZSAo ZS5nLiBmcm9tIGEgc2luZ2xlIHRhYmxlLCBhbGwgcHJpbWFyeSBrZXkKIGNv bHVtbnMgcHJlc2VudCksIGFuZCBpZiBzbywgYWxsb3cgZWRpdGluZy4KKwor QWRkIHN1cHBvcnQgZm9yIGZpbGUgdHlwZSBkZXNjcmlwdGlvbiBpbiBGaWxl IHR5cGUgc2VsZWN0aW9uIGNvbWJvIGJveAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorCitGaWxlIHR5cGUgc2VsZWN0aW9uIGNvbWJvIGJveCBzaG91 bGQgc3VwcG9ydCBmaWxlIHR5cGUgZGVzY3JpcHRpb24uCitpLmUuCitRdWVy eS9TUUwgRmlsZSAoKi5zcWwpCitDU1YgRmlsZSAoKi5jc3YpCitBbGwgRmls ZXMgKCouKiB8ICopCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL2Zp bGVfbWFuYWdlci9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL21pc2MvZmls ZV9tYW5hZ2VyL19faW5pdF9fLnB5CmluZGV4IGU2YzRlMDAuLjgxYjI5ODQg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL19f aW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2Vy L19faW5pdF9fLnB5CkBAIC0yMzMsMzYgKzIzMyw2IEBAIGRlZiBkZWxldGVf dHJhbnNfaWQodHJhbnNfaWQpOgogICAgICAgICBkYXRhPXsnc3RhdHVzJzog VHJ1ZX0KICAgICApCiAKLQotZGVmIF9fZ2V0X2RyaXZlcyhkcml2ZV9uYW1l PU5vbmUpOgotICAgICIiIgotICAgIFRoaXMgaXMgYSBnZW5lcmljIGZ1bmN0 aW9uIHdoaWNoIHJldHVybnMgdGhlIGRlZmF1bHQgcGF0aCBmb3Igc3RvcmFn ZQotICAgIG1hbmFnZXIgZGlhbG9nIGlycmVzcGVjdGl2ZSBvZiBhbnkgUGxh dGZvcm0gdHlwZSB0byBsaXN0IGFsbAotICAgIGZpbGVzIGFuZCBkaXJlY3Rv cmllcy4KLSAgICBQbGF0Zm9ybSB3aW5kb3dzOgotICAgIGlmIG5vIHBhdGgg aXMgZ2l2ZW4sIGl0IHdpbGwgbGlzdCB2b2x1bWVzLCBlbHNlIGxpc3QgZGly ZWN0b3J5Ci0gICAgUGxhdGZvcm0gdW5peDoKLSAgICBpdCByZXR1cm5zIHBh dGggdG8gcm9vdCBkaXJlY3RvcnkgaWYgbm8gcGF0aCBpcyBzcGVjaWZpZWQu Ci0gICAgIiIiCi0gICAgaWYgX3BsYXRmb3JtID09ICJ3aW4zMiI6Ci0gICAg ICAgIHRyeToKLSAgICAgICAgICAgIGRyaXZlcyA9IFtdCi0gICAgICAgICAg ICBiaXRtYXNrID0gY3R5cGVzLndpbmRsbC5rZXJuZWwzMi5HZXRMb2dpY2Fs RHJpdmVzKCkKLSAgICAgICAgICAgIGZvciBsZXR0ZXIgaW4gbGV0dGVyczoK LSAgICAgICAgICAgICAgICBpZiBiaXRtYXNrICYgMToKLSAgICAgICAgICAg ICAgICAgICAgZHJpdmVzLmFwcGVuZChsZXR0ZXIpCi0gICAgICAgICAgICAg ICAgYml0bWFzayA+Pj0gMQotICAgICAgICAgICAgaWYgKGRyaXZlX25hbWUg IT0gJycgYW5kIGRyaXZlX25hbWUgaXMgbm90IE5vbmUgYW5kCi0gICAgICAg ICAgICAgICBkcml2ZV9uYW1lIGluIGRyaXZlcyk6Ci0gICAgICAgICAgICAg ICAgcmV0dXJuICJ7MH17MX0iLmZvcm1hdChkcml2ZV9uYW1lLCAnOi8nKQot ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByZXR1cm4gZHJp dmVzICAjIHJldHVybiBkcml2ZXMgaWYgbm8gYXJndW1lbnQgaXMgcGFzc2Vk Ci0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICByZXR1 cm4gJ0M6LycKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gJy8nCi0KLQog Y2xhc3MgRmlsZW1hbmFnZXIob2JqZWN0KToKICAgICAiIiJGaWxlTWFuYWdl ciBDbGFzcy4iIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwgdHJhbnNfaWQp OgpAQCAtMzk2LDE0ICszNjYsNDMgQEAgY2xhc3MgRmlsZW1hbmFnZXIob2Jq ZWN0KToKICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZShkYXRh PXsnc3RhdHVzJzogVHJ1ZX0pCiAKICAgICBAc3RhdGljbWV0aG9kCisgICAg ZGVmIF9nZXRfZHJpdmVzKGRyaXZlX25hbWU9Tm9uZSk6CisgICAgICAgICIi IgorICAgICAgICBUaGlzIGlzIGEgZ2VuZXJpYyBmdW5jdGlvbiB3aGljaCBy ZXR1cm5zIHRoZSBkZWZhdWx0IHBhdGggZm9yIHN0b3JhZ2UKKyAgICAgICAg bWFuYWdlciBkaWFsb2cgaXJyZXNwZWN0aXZlIG9mIGFueSBQbGF0Zm9ybSB0 eXBlIHRvIGxpc3QgYWxsCisgICAgICAgIGZpbGVzIGFuZCBkaXJlY3Rvcmll cy4KKyAgICAgICAgUGxhdGZvcm0gd2luZG93czoKKyAgICAgICAgaWYgbm8g cGF0aCBpcyBnaXZlbiwgaXQgd2lsbCBsaXN0IHZvbHVtZXMsIGVsc2UgbGlz dCBkaXJlY3RvcnkKKyAgICAgICAgUGxhdGZvcm0gdW5peDoKKyAgICAgICAg aXQgcmV0dXJucyBwYXRoIHRvIHJvb3QgZGlyZWN0b3J5IGlmIG5vIHBhdGgg aXMgc3BlY2lmaWVkLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgX3BsYXRm b3JtID09ICJ3aW4zMiI6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAg ICAgICAgZHJpdmVzID0gW10KKyAgICAgICAgICAgICAgICBiaXRtYXNrID0g Y3R5cGVzLndpbmRsbC5rZXJuZWwzMi5HZXRMb2dpY2FsRHJpdmVzKCkKKyAg ICAgICAgICAgICAgICBmb3IgbGV0dGVyIGluIGxldHRlcnM6CisgICAgICAg ICAgICAgICAgICAgIGlmIGJpdG1hc2sgJiAxOgorICAgICAgICAgICAgICAg ICAgICAgICAgZHJpdmVzLmFwcGVuZChsZXR0ZXIpCisgICAgICAgICAgICAg ICAgICAgIGJpdG1hc2sgPj49IDEKKyAgICAgICAgICAgICAgICBpZiAoZHJp dmVfbmFtZSAhPSAnJyBhbmQgZHJpdmVfbmFtZSBpcyBub3QgTm9uZSBhbmQK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcml2ZV9uYW1lIGluIGRy aXZlcyk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiezB9ezF9Ii5m b3JtYXQoZHJpdmVfbmFtZSwgJzovJykKKyAgICAgICAgICAgICAgICBlbHNl OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZHJpdmVzICAjIHJldHVy biBkcml2ZXMgaWYgbm8gYXJndW1lbnQgaXMgcGFzc2VkCisgICAgICAgICAg ICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIHJldHVybiBb J0M6LyddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gJy8n CisKKyAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIGxpc3RfZmlsZXN5c3Rl bShkaXIsIHBhdGgsIHRyYW5zX2RhdGEsIGZpbGVfdHlwZSk6CiAgICAgICAg ICIiIgogICAgICAgICBJdCBsaXN0cyBhbGwgZmlsZSBhbmQgZm9sZGVycyB3 aXRoaW4gdGhlIGdpdmVuCiAgICAgICAgIGRpcmVjdG9yeS4KICAgICAgICAg IiIiCiAgICAgICAgIGZpbGVzID0ge30KLSAgICAgICAgaWYgKF9wbGF0Zm9y bSA9PSAid2luMzIiIGFuZCBwYXRoID09ICcvJykgYW5kIChub3QgZGlyKToK LSAgICAgICAgICAgIGRyaXZlcyA9IF9fZ2V0X2RyaXZlcygpCisgICAgICAg IGlmIChfcGxhdGZvcm0gPT0gIndpbjMyIiBhbmQgcGF0aCA9PSAnLycpIGFu ZCBkaXIgaXMgTm9uZToKKyAgICAgICAgICAgIGRyaXZlcyA9IEZpbGVtYW5h Z2VyLl9nZXRfZHJpdmVzKCkKICAgICAgICAgICAgIGZvciBkcml2ZSBpbiBk cml2ZXM6CiAgICAgICAgICAgICAgICAgcHJvdGVjdGVkID0gMAogICAgICAg ICAgICAgICAgIHBhdGggPSBmaWxlX25hbWUgPSAiezB9Oi8iLmZvcm1hdChk cml2ZSkKQEAgLTQyNiw2ICs0MjUsOCBAQCBjbGFzcyBGaWxlbWFuYWdlcihv YmplY3QpOgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVy biBmaWxlcwogCisgICAgICAgIGlmIGRpciBpcyBOb25lOgorICAgICAgICAg ICAgZGlyID0gIiIKICAgICAgICAgb3JpZ19wYXRoID0gInswfXsxfSIuZm9y bWF0KGRpciwgcGF0aCkKICAgICAgICAgdXNlcl9kaXIgPSBwYXRoCiAgICAg ICAgIGZvbGRlcnNfb25seSA9IHRyYW5zX2RhdGFbJ2ZvbGRlcnNfb25seSdd IGlmICdmb2xkZXJzX29ubHknIGluIFwKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL21pc2MvZmlsZV9tYW5hZ2VyL3N0YXRpYy9jc3MvZmlsZV9tYW5hZ2Vy LmNzcyBiL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL3N0YXRpYy9j c3MvZmlsZV9tYW5hZ2VyLmNzcwppbmRleCBjZWJlZDE3Li5mY2YxZThmIDEw MDc1NQotLS0gYS93ZWIvcGdhZG1pbi9taXNjL2ZpbGVfbWFuYWdlci9zdGF0 aWMvY3NzL2ZpbGVfbWFuYWdlci5jc3MKKysrIGIvd2ViL3BnYWRtaW4vbWlz Yy9maWxlX21hbmFnZXIvc3RhdGljL2Nzcy9maWxlX21hbmFnZXIuY3NzCkBA IC01OTYsMTQgKzU5NiwyNyBAQCBhLmR6LXJlbW92ZSB7CiAgIGJvcmRlcjog MXB4IHNvbGlkIGJsYWNrOwogfQogCisuZmlsZWluZm8gLmZtX2RpbW1lciB7 CisgIGhlaWdodDogY2FsYygxMDAlIC0gMzJweCk7CisgIGRpc3BsYXk6IG5v bmU7CisgIHRvcDogMzJweDsKKyAgYmFja2dyb3VuZDogYmxhY2s7CisgIG9w YWNpdHk6IDAuNTsKKyAgei1pbmRleDogMTsKKyAgd2lkdGg6IDEwMCU7Cisg IHBvc2l0aW9uOiBhYnNvbHV0ZTsKK30KKwogLmZpbGVpbmZvIC5kZWxldGVf aXRlbSwgLmZpbGVpbmZvIC5yZXBsYWNlX2ZpbGUgewogICBkaXNwbGF5OiBu b25lOwogICBwYWRkaW5nOiA3cHggNXB4OwogICBvcGFjaXR5OiAwLjg7CiAg IGNvbG9yOiAjZmZmOwogICBib3JkZXI6IDFweCBzb2xpZCBkYXJrZ3JleTsK KyAgYm9yZGVyLWxlZnQ6IDA7CisgIGJvcmRlci1yaWdodDogMDsKICAgYmFj a2dyb3VuZDogIzAwMDsKLSAgYm94LXNoYWRvdzogMXB4IDBweCAzcHggMXB4 IHJlZDsKKyAgYm94LXNoYWRvdzogMXB4IDBweCAzcHggMXB4IHdoaXRlOwog fQogCiAuZmlsZWluZm8gLmRlbGV0ZV9pdGVtIHNwYW4ucHVsbC1yaWdodCAu YnRuLApAQCAtNjEyLDExICs2MjUsNyBAQCBhLmR6LXJlbW92ZSB7CiAgIGNv bG9yOiAjMDAwOwogICBiYWNrZ3JvdW5kOiAjZmZmOwogICBmb250LXNpemU6 IDEycHg7Ci19Ci0KLS5maWxlaW5mbyAuZGVsZXRlX2l0ZW0gc3BhbiwKLS5m aWxlaW5mbyAucmVwbGFjZV9maWxlIHNwYW4gewotICBtYXJnaW4tcmlnaHQ6 IDEwcHg7CisgIG1hcmdpbi1yaWdodDogNHB4OwogfQogCiAudXBsb2FkX2Zp bGUgLmR6X2Nyb3NzX2J0biB7CkBAIC02NTgsMyArNjY3LDE2IEBAIGEuZHot cmVtb3ZlIHsKICAgYmFja2dyb3VuZDogI0Y5RjhGNzsKICAgYm9yZGVyOiAx cHggaW5zZXQgI2NjYzsKIH0KKworLmZpbGVfbGlzdGluZyAubm9fZm9sZGVy X2ZvdW5kIHsKKyAgdGV4dC1hbGlnbjogY2VudGVyOworICBwb3NpdGlvbjog YWJzb2x1dGU7CisgIHRvcDogMzU7CisgIHdpZHRoOiAxMDAlOworfQorCisu ZmlsZWluZm8gLmlzX2ZpbGVfcmVwbGFjZSB7CisgIHdpZHRoOiAxMDAlOwor ICBoZWlnaHQ6IDEwMCU7CisgIGJhY2tncm91bmQ6ICNjY2M7Cit9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL2ZpbGVfbWFuYWdlci90ZW1wbGF0 ZXMvZmlsZV9tYW5hZ2VyL2luZGV4Lmh0bWwgYi93ZWIvcGdhZG1pbi9taXNj L2ZpbGVfbWFuYWdlci90ZW1wbGF0ZXMvZmlsZV9tYW5hZ2VyL2luZGV4Lmh0 bWwKaW5kZXggNTEwNDRkYS4uZDFmMWJiYiAxMDA3NTUKLS0tIGEvd2ViL3Bn YWRtaW4vbWlzYy9maWxlX21hbmFnZXIvdGVtcGxhdGVzL2ZpbGVfbWFuYWdl ci9pbmRleC5odG1sCisrKyBiL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5h Z2VyL3RlbXBsYXRlcy9maWxlX21hbmFnZXIvaW5kZXguaHRtbApAQCAtNDMs NiArNDMsOCBAQAogICAgICAgICAgIDxidXR0b24gdHlwZT0nYnV0dG9uJyBj bGFzcz0nYnRuIGJ0bl9ubyc+Tk88L2J1dHRvbj4KICAgICAgICAgPC9zcGFu PgogICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9J2ZtX2RpbW1lcic+Cisg ICAgPC9kaXY+CiAgICAgPGRpdiBjbGFzcz0iZmlsZV9saXN0aW5nIj4KICAg ICA8L2Rpdj4KICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWRfZmlsZSBkcm9wem9u ZSI+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL2ZpbGVfbWFuYWdl ci90ZW1wbGF0ZXMvZmlsZV9tYW5hZ2VyL2pzL2ZpbGVfbWFuYWdlci5qcyBi L3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL3RlbXBsYXRlcy9maWxl X21hbmFnZXIvanMvZmlsZV9tYW5hZ2VyLmpzCmluZGV4IDUzNWE4OTAuLmJm NzE3MWYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5h Z2VyL3RlbXBsYXRlcy9maWxlX21hbmFnZXIvanMvZmlsZV9tYW5hZ2VyLmpz CisrKyBiL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL3RlbXBsYXRl cy9maWxlX21hbmFnZXIvanMvZmlsZV9tYW5hZ2VyLmpzCkBAIC00NTEsOSAr NDUxLDkgQEAgZGVmaW5lKFsKICAgICAgICAgICAgICAgfTsKICAgICAgICAg ICAgIH0sCiAgICAgICAgICAgICByZXBsYWNlX2ZpbGU6IGZ1bmN0aW9uKCkg ewotICAgICAgICAgICAgICAgICQoJy5yZXBsYWNlX2ZpbGUnKS5zaG93KCk7 CisgICAgICAgICAgICAgICAgJCgnLnJlcGxhY2VfZmlsZSwgLmZtX2RpbW1l cicpLnNob3coKTsKICAgICAgICAgICAgICAgICAkKCcucmVwbGFjZV9maWxl IC5idG5feWVzJykuY2xpY2soZnVuY3Rpb24oc2VsZikgewotICAgICAgICAg ICAgICAgICAgJCgnLnJlcGxhY2VfZmlsZScpLmhpZGUoKTsKKyAgICAgICAg ICAgICAgICAgICQoJy5yZXBsYWNlX2ZpbGUsIC5mbV9kaW1tZXInKS5oaWRl KCk7CiAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWRfaXRlbSA9ICQo Jy5hbGxvd2VkX2ZpbGVfdHlwZXMgLmNyZWF0ZV9pbnB1dCBpbnB1dFt0eXBl PSJ0ZXh0Il0nKS52YWwoKSwKICAgICAgICAgICAgICAgICAgICAgICBuZXdG aWxlID0gJCgnLmN1cnJlbnRwYXRoJykudmFsKCkgKyBzZWxlY3RlZF9pdGVt LAogICAgICAgICAgICAgICAgICAgICAgIG5ld0ZpbGUgPSBuZXdGaWxlLnN1 YnN0cigxKTsKQEAgLTQ2MSw3ICs0NjEsNyBAQCBkZWZpbmUoWwogICAgICAg ICAgICAgICAgICAgJCgnLmZpbGVfbWFuYWdlcl9jcmVhdGVfY2FuY2VsJyku dHJpZ2dlcignY2xpY2snKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAg ICAgICAgICAgICAkKCcucmVwbGFjZV9maWxlIC5idG5fbm8nKS5jbGljayhm dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICQoJy5yZXBsYWNlX2Zp bGUnKS5oaWRlKCk7CisgICAgICAgICAgICAgICAgICAkKCcucmVwbGFjZV9m aWxlLCAuZm1fZGltbWVyJykuaGlkZSgpOwogICAgICAgICAgICAgICAgIH0p OwogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIGlzX2ZpbGVfZXhpc3Q6 IGZ1bmN0aW9uKCkgewpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9m aWxlX21hbmFnZXIvdGVtcGxhdGVzL2ZpbGVfbWFuYWdlci9qcy9sYW5ndWFn ZXMvZW4uanMgYi93ZWIvcGdhZG1pbi9taXNjL2ZpbGVfbWFuYWdlci90ZW1w bGF0ZXMvZmlsZV9tYW5hZ2VyL2pzL2xhbmd1YWdlcy9lbi5qcwppbmRleCBk YmE4NWU4Li5jYzJiOTFiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9taXNj L2ZpbGVfbWFuYWdlci90ZW1wbGF0ZXMvZmlsZV9tYW5hZ2VyL2pzL2xhbmd1 YWdlcy9lbi5qcworKysgYi93ZWIvcGdhZG1pbi9taXNjL2ZpbGVfbWFuYWdl ci90ZW1wbGF0ZXMvZmlsZV9tYW5hZ2VyL2pzL2xhbmd1YWdlcy9lbi5qcwpA QCAtMzcsNSArMzcsNiBAQAogICAgICJzdWNjZXNzZnVsX2RlbGV0ZSI6ICJE ZWxldGUgc3VjY2Vzc2Z1bC4iLAogICAgICJzdWNjZXNzZnVsX3JlbmFtZSI6 ICJSZW5hbWUgc3VjY2Vzc2Z1bC4iLAogICAgICJ1cGxvYWQiOiAiVXBsb2Fk IiwKLSAgICAieWVzIjogIlllcyIKKyAgICAieWVzIjogIlllcyIsCisgICAg ImNvdWxkX25vdF9yZXRyaWV2ZV9mb2xkZXIiOiAiTm8gZmlsZXMvZm9sZGVy cyBmb3VuZCIKIH0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2MvZmls ZV9tYW5hZ2VyL3RlbXBsYXRlcy9maWxlX21hbmFnZXIvanMvdXRpbGl0eS5q cyBiL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL3RlbXBsYXRlcy9m aWxlX21hbmFnZXIvanMvdXRpbGl0eS5qcwppbmRleCA3ZmNiMmI5Li43NWI0 OTgyIDEwMDc1NQotLS0gYS93ZWIvcGdhZG1pbi9taXNjL2ZpbGVfbWFuYWdl ci90ZW1wbGF0ZXMvZmlsZV9tYW5hZ2VyL2pzL3V0aWxpdHkuanMKKysrIGIv d2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvdGVtcGxhdGVzL2ZpbGVf bWFuYWdlci9qcy91dGlsaXR5LmpzCkBAIC0yMzEsNyArMjMxLDcgQEAgdmFy IGdldEZpbGVuYW1lID0gZnVuY3Rpb24oZmlsZW5hbWUpIHsKIC8vIGhlbHBm dWwgaW4gc2hvdy9oaWRlIHRvb2xiYXIgYnV0dG9uIGZvciBXaW5kb3dzCiB2 YXIgaGlkZUJ1dHRvbnMgPSBmdW5jdGlvbigpIHsKICAgICB2YXIgY3VycmVu dF9wYXRoID0gJCgnLmN1cnJlbnRwYXRoJykudmFsKCk7Ci0gICAgaWYoY29u ZmlnLm9wdGlvbnMucGxhdGZvcm1fdHlwZSA9PSAnd2luMzInICYmIGN1cnJl bnRfcGF0aCA9PSAiLyIpCisgICAgaWYoY29uZmlnLm9wdGlvbnMucGxhdGZv cm1fdHlwZSA9PSAnd2luMzInICYmIGN1cnJlbnRfcGF0aCA9PT0gIiIpCiAg ICAgICAgIHJldHVybiB0cnVlOwogICAgIHJldHVybiBmYWxzZTsKIH07CkBA IC0yNTQsNyArMjU0LDcgQEAgdmFyIHNldFVwbG9hZGVyID0gZnVuY3Rpb24o cGF0aCl7CiAgIHNwbGl0X3BhdGggPSBzcGxpdF9wYXRoLmZpbHRlcihmdW5j dGlvbihlKXtyZXR1cm4gZTt9KTsKIAogICAvLyBzZXQgZW1wdHkgcGF0aCBp ZiBpdCBpcyB3aW5kb3dzCi0gIGlmIChjb25maWcub3B0aW9ucy5wbGF0Zm9y bV90eXBlID09PSAid2luMzIiICYmIGNvbmZpZy5vcHRpb25zLnNob3dfdm9s dW1lcykgeworICBpZiAoY29uZmlnLm9wdGlvbnMucGxhdGZvcm1fdHlwZSA9 PT0gIndpbjMyIiAmJiBjb25maWcub3B0aW9ucy5zaG93X3ZvbHVtZXMgPT0g IlRydWUiKSB7CiAgICAgICBteXBhdGggPSAiIjsKICAgfQogICBlbHNlIGlm IChzcGxpdF9wYXRoLmxlbmd0aCA9PT0gMCkKQEAgLTI2OSw3ICsyNjksNyBA QCB2YXIgc2V0VXBsb2FkZXIgPSBmdW5jdGlvbihwYXRoKXsKICAgICAgICQo bXlwYXRoKS5hcHBlbmRUbygkKCcuc3RvcmFnZV9kaWFsb2cgI3VwbG9hZGVy IGgxJykpOwogICAgfQogICAgZWxzZSB7Ci0gICAgIG15cGF0aCA9ICQoJzxi Picrc3BsaXRfcGF0aFtpXSsnPC9iPicpOworICAgICBteXBhdGggPSAkKCc8 Yj4nK3NwbGl0X3BhdGhbaV0rJy88L2I+Jyk7CiAgICAgICQobXlwYXRoKS5h cHBlbmRUbygkKCcuc3RvcmFnZV9kaWFsb2cgI3VwbG9hZGVyIGgxJykpOwog ICAgfQogICB9CkBAIC0yODQsNyArMjg0LDcgQEAgdmFyIHNldFVwbG9hZGVy ID0gZnVuY3Rpb24ocGF0aCl7CiAKICAgLy8gY3JlYXRlIG5ldyBmb2xkZXIK ICAgJCgnLmNyZWF0ZScpLnVuYmluZCgpLmNsaWNrKGZ1bmN0aW9uKCl7Ci0g ICAgdmFyIGZvbGRlcm5hbWUgPSAgbGcuZGVmYXVsdF9mb2xkZXJuYW1lOwor ICAgIHZhciBmb2xkZXJuYW1lID0gIGxnLm5ld19mb2xkZXI7CiAgICAgdmFy ICRmaWxlX2VsZW1lbnQsCiAgICAgICAgICRmaWxlX2VsZW1lbnRfbGlzdDsK IApAQCAtNDA4LDcgKzQwOCw4IEBAIHZhciBiaW5kVG9vbGJhciA9IGZ1bmN0 aW9uKGRhdGEpewogICAgICQoJy5maWxlX21hbmFnZXInKS5maW5kKCdidXR0 b24uZGVsZXRlJykuaGlkZSgpOwogICB9IGVsc2UgewogICAgICQoJy5maWxl X21hbmFnZXInKS5maW5kKCdidXR0b24uZGVsZXRlJykuY2xpY2soZnVuY3Rp b24oKXsKLSAgICAgICQoJy5maWxlaW5mbyAuZGVsZXRlX2l0ZW0nKS5zaG93 KCk7CisgICAgICAvLyBoaWRlIGRpbW1lcgorICAgICAgJCgnLmZpbGVpbmZv IC5kZWxldGVfaXRlbSwgLmZtX2RpbW1lcicpLnNob3coKTsKICAgICB9KTsK IAogICAgIC8vIHRha2UgYWN0aW9uIGJhc2VkIG9uIHByZXNzZWQgYnV0dG9u IHllcyBvciBubwpAQCAtNDMzLDYgKzQzNCw4IEBAIHZhciBiaW5kVG9vbGJh ciA9IGZ1bmN0aW9uKGRhdGEpewogICAgICAgICAgIGRlbGV0ZUl0ZW0oZGF0 YSk7CiAgICAgICAgIH0KICAgICAgIH0KKyAgICAgIC8vIGhpZGUgZGltbWVy CisgICAgICAkKCcuZmlsZWluZm8gLmZtX2RpbW1lcicpLmhpZGUoKTsKICAg ICB9KTsKIAogICB9CkBAIC02MjcsOSArNjMwLDkgQEAgdmFyIGRlbGV0ZUl0 ZW0gPSBmdW5jdGlvbihkYXRhKXsKIH07CiAKIAotLy8gaGlkZSBtZXNzYWdl IHByb21wdCBpZiBjbGlja2VkIG5vCisvLyBoaWRlIG1lc3NhZ2UgcHJvbXB0 IGFuZCBkaW1tZXIgaWYgY2xpY2tlZCBubwogJCgnLmRlbGV0ZV9pdGVtIGJ1 dHRvbi5idG5fbm8nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHsKLSAgJCgn LmRlbGV0ZV9pdGVtJykuaGlkZSgpOworICAkKCcuZGVsZXRlX2l0ZW0sIC5m aWxlaW5mbyAuZm1fZGltbWVyJykuaGlkZSgpOwogfSk7CiAKIC8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCkBAIC02NDIsNyArNjQ1LDEwIEBAICQoJy5kZWxldGVfaXRlbSBi dXR0b24uYnRuX25vJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiB2YXIg Z2V0RGV0YWlsVmlldyA9IGZ1bmN0aW9uKHBhdGgpewogICBpZihwYXRoLmxh c3RJbmRleE9mKCcvJykgPT0gcGF0aC5sZW5ndGggLSAxKXsKICAgICB2YXIg YWxsb3dlZF90eXBlcyA9IGNvbmZpZy5vcHRpb25zLmFsbG93ZWRfZmlsZV90 eXBlczsKLSAgICBnZXRGb2xkZXJJbmZvKHBhdGgsIGFsbG93ZWRfdHlwZXNb MF0pOworICAgIHZhciBzZXRfdHlwZSA9IGFsbG93ZWRfdHlwZXNbMF07Cisg ICAgaWYoYWxsb3dlZF90eXBlc1swXSA9PSAiKiIpCisgICAgICBzZXRfdHlw ZSA9IGFsbG93ZWRfdHlwZXNbMV07CisgICAgZ2V0Rm9sZGVySW5mbyhwYXRo LCBzZXRfdHlwZSk7CiAgIH0KIH07CiAKQEAgLTc0Nyw3ICs3NTMsNyBAQCB2 YXIgZ2V0Rm9sZGVySW5mbyA9IGZ1bmN0aW9uKHBhdGgsIGZpbGVfdHlwZT0n Jyl7CiAgICAgfQogCiAgICAgLy8gZ2VuZXJhdGUgSFRNTCBmb3IgZmlsZXMv Zm9sZGVyIGFuZCByZW5kZXIgaW50byBjb250YWluZXIKLSAgICBpZihkYXRh KXsKKyAgICBpZighXy5pc0VtcHR5KGRhdGEpKXsKICAgICAgIGlmKCQoJy5m aWxlaW5mbycpLmRhdGEoJ3ZpZXcnKSA9PSAnZ3JpZCcpIHsKICAgICAgICAg cmVzdWx0ICs9ICc8dWwgaWQ9ImNvbnRlbnRzIiBjbGFzcz0iZ3JpZCI+JzsK ICAgICAgICAgZm9yKGtleSBpbiBkYXRhKSB7CkBAIC04NjIsNyArODY4LDE4 IEBAIHZhciBnZXRGb2xkZXJJbmZvID0gZnVuY3Rpb24ocGF0aCwgZmlsZV90 eXBlPScnKXsKICAgICAgICAgcmVzdWx0ICs9ICc8L3RhYmxlPic7CiAgICAg ICB9CiAgICAgfSBlbHNlIHsKLSAgICAgIHJlc3VsdCArPSAnPGgxPicgKyBs Zy5jb3VsZF9ub3RfcmV0cmlldmVfZm9sZGVyICsgJzwvaDE+JzsKKyAgICAg IGlmKCQoJy5maWxlaW5mbycpLmRhdGEoJ3ZpZXcnKSA9PSAnZ3JpZCcpIHsK KyAgICAgICAgcmVzdWx0ICs9ICc8dWwgaWQ9ImNvbnRlbnRzIiBjbGFzcz0i Z3JpZCI+PC91bD4nOworICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAg IHJlc3VsdCArPSAnPHRhYmxlIGlkPSJjb250ZW50cyIgY2xhc3M9Imxpc3Qi Pic7CisgICAgICAgIHJlc3VsdCArPSAnPHRoZWFkPjx0cj48dGggY2xhc3M9 ImhlYWRlclNvcnREb3duIj48c3Bhbj4nICsgbGcubmFtZSArICc8L3NwYW4+ PC90aD48dGg+PHNwYW4+JyArIGxnLnNpemUgKyAnPC9zcGFuPjwvdGg+PHRo PjxzcGFuPicgKyBsZy5tb2RpZmllZCArICc8L3NwYW4+PC90aD48L3RyPjwv dGhlYWQ+JzsKKyAgICAgICAgcmVzdWx0ICs9ICc8dGJvZHk+JzsKKyAgICAg IH0KKyAgICAgIHJlc3VsdCArPSAnPGgxIGNsYXNzPSJub19mb2xkZXJfZm91 bmQiPicgKyBsZy5jb3VsZF9ub3RfcmV0cmlldmVfZm9sZGVyICsgJzwvaDE+ JzsKKyAgICAgIGNhcF9ub19mb2xkZXJzID0gWyd1cGxvYWQnLCAnY3JlYXRl J10KKyAgICAgIGRhdGFbJ0NhcGFiaWxpdGllcyddID0gY2FwX25vX2ZvbGRl cnM7CisgICAgICBiaW5kVG9vbGJhcihkYXRhKTsKICAgICB9CiAKICAgICAv LyBBZGQgdGhlIG5ldyBtYXJrdXAgdG8gdGhlIERPTS4KQEAgLTEyNTgsMTAg KzEyNzUsMjUgQEAgaWYgKGNvbmZpZy5vcHRpb25zLmRpYWxvZ190eXBlID09 ICdzZWxlY3RfZmlsZScgfHwKICAgdmFyIGFsbG93ZWRfdHlwZXMgPSBjb25m aWcub3B0aW9ucy5hbGxvd2VkX2ZpbGVfdHlwZXMsCiAgICAgICB0eXBlc19s ZW4gPSBhbGxvd2VkX3R5cGVzLmxlbmd0aDsKICAgaWYodHlwZXNfbGVuID4g MCkgewotICAgIHZhciBpID0gMCwKKyAgICB2YXIgaSA9IDAsIGogPSAwCiAg ICAgICAgIHNlbGVjdF9ib3ggPSAiPGRpdiBjbGFzcz0nY2hhbmdlX2ZpbGVf dHlwZXMnPjxzZWxlY3QgbmFtZT0ndHlwZSc+IjsKICAgICB3aGlsZShpIDwg dHlwZXNfbGVuKSB7Ci0gICAgICBzZWxlY3RfYm94ICs9ICI8b3B0aW9uIHZh bHVlPSIrYWxsb3dlZF90eXBlc1tpXSsiPiIrKGFsbG93ZWRfdHlwZXNbaV0g PT0gJyonID8gJ0FsbCBGaWxlcyc6IGFsbG93ZWRfdHlwZXNbaV0pKyI8L29w dGlvbj4iOworCisgICAgICBpZihqID09IDEpIHsKKyAgICAgICAgc2VsZWN0 X2JveCArPSAiPG9wdGlvbiB2YWx1ZT0iK2FsbG93ZWRfdHlwZXNbaV0rIiBz ZWxlY3RlZD4iK2FsbG93ZWRfdHlwZXNbaV0rIjwvb3B0aW9uPiI7CisgICAg ICAgIGogPSAwOworICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAgIGlm KGFsbG93ZWRfdHlwZXNbaV0gPT0gJyonKXsKKyAgICAgICAgICBqID0gMTsK KyAgICAgICAgICBmaWxlX3R5cGUgPSAiQWxsIEZpbGVzIjsKKyAgICAgICAg fQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICBmaWxlX3R5cGUgPSBhbGxv d2VkX3R5cGVzW2ldOworICAgICAgICB9CisKKyAgICAgICAgc2VsZWN0X2Jv eCArPSAiPG9wdGlvbiB2YWx1ZT0iK2FsbG93ZWRfdHlwZXNbaV0rIj4iK2Zp bGVfdHlwZSsiPC9vcHRpb24+IjsKKyAgICAgIH0KICAgICAgIGkrKzsKICAg ICB9CiAgICAgc2VsZWN0X2JveCArPSAiPC9zZWxlY3Q+IjsKQEAgLTEzNDEs MTAgKzEzNzMsMjIgQEAgJChmdW5jdGlvbigpewogICAgICQoIi5uZXdmaWxl IikuY2hhbmdlKGZ1bmN0aW9uKCkgewogICAgICAgJCgiLmZpbGVwYXRoIiku dmFsKCQodGhpcykudmFsKCkpOwogICAgIH0pOwotCiAgICAgLyoqIElucHV0 IGZpbGUgUmVwbGFjZW1lbnQgLSBlbmQgKi8KICAgfQogCisgIC8vIHN0b3Ag Y2xpY2sgZXZlbnQgb24gZGltbWVyIGNsaWNrCisgICQoJy5maWxlaW5mbyAu Zm1fZGltbWVyJykub24oJ2NsaWNrJywgZnVuY3Rpb24oZSkgeworICAgIGUu c3RvcFByb3BhZ2F0aW9uKCk7CisgIH0pOworCisgICQoJy5maWxlaW5mbyAu cmVwbGFjZV9maWxlJykubm90KCQodGhpcykuZmluZCgnc3Bhbi5wdWxsLXJp Z2h0JykpLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKKyAgICAkKCcjdXBs b2FkZXIgLmZpbGVtYW5hZ2VyLWJ0bi1ncm91cCcpLnVuYmluZCgpLm9uKCdj bGljaycsIGZ1bmN0aW9uKCkgeworICAgICAgJCgnLmZpbGVpbmZvIC5kZWxl dGVfaXRlbSwgLmZpbGVpbmZvIC5yZXBsYWNlX2ZpbGUsIC5maWxlaW5mbyAu Zm1fZGltbWVyJykuaGlkZSgpOworICAgIH0pOworICAgIGUuc3RvcFByb3Bh Z2F0aW9uKCk7CisgIH0pOworCisKICAgLy8gU2V0IGluaXRpYWwgdmlldyBz dGF0ZS4KICAgJCgnLmZpbGVpbmZvJykuZGF0YSgndmlldycsIGNvbmZpZy5v cHRpb25zLmRlZmF1bHRWaWV3TW9kZSk7CiAgIHNldFZpZXdCdXR0b25zRm9y KGNvbmZpZy5vcHRpb25zLmRlZmF1bHRWaWV3TW9kZSk7CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi91dGlscy9wYXRocy5weSBiL3dlYi9wZ2FkbWluL3V0 aWxzL3BhdGhzLnB5CmluZGV4IDE5Yzg4YTIuLjgxYjBmNzQgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL3V0aWxzL3BhdGhzLnB5CisrKyBiL3dlYi9wZ2Fk bWluL3V0aWxzL3BhdGhzLnB5CkBAIC0yOCwxMiArMjgsMTUgQEAgZGVmIGdl dF9zdG9yYWdlX2RpcmVjdG9yeSgpOgogICAgICAgICAgICAgKSwgJ3N0b3Jh Z2UnCiAgICAgICAgICkKICAgICApCisKKyAgICBpZiBzdG9yYWdlX2RpciBp cyBOb25lOgorICAgICAgICByZXR1cm4gTm9uZQorCiAgICAgdXNlcm5hbWUg PSBjdXJyZW50X3VzZXIuZW1haWwuc3BsaXQoJ0AnKVswXQogICAgIGlmIGxl bih1c2VybmFtZSkgPT0gMCBvciB1c2VybmFtZVswXS5pc2RpZ2l0KCk6CiAg ICAgICAgIHVzZXJuYW1lID0gJ3BnYV91c2VyXycgKyB1c2VybmFtZQogCiAg ICAgc3RvcmFnZV9kaXIgPSBvcy5wYXRoLmpvaW4oc3RvcmFnZV9kaXIsIHVz ZXJuYW1lKQotICAgIHByaW50KHN0b3JhZ2VfZGlyKQogCiAgICAgaWYgbm90 IG9zLnBhdGguZXhpc3RzKHN0b3JhZ2VfZGlyKToKICAgICAgICAgb3MubWFr ZWRpcnMoc3RvcmFnZV9kaXIsIGludCgnNzAwJywgOCkpCkBAIC01NSw3ICs1 OCw3IEBAIGRlZiBpbml0X2FwcChhcHApOgogICAgICAgICApCiAgICAgKQog Ci0gICAgaWYgbm90IG9zLnBhdGguaXNkaXIoc3RvcmFnZV9kaXIpOgorICAg IGlmIHN0b3JhZ2VfZGlyIGFuZCBub3Qgb3MucGF0aC5pc2RpcihzdG9yYWdl X2Rpcik6CiAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHN0b3JhZ2VfZGly KToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKICAgICAgICAgICAg ICAgICAnVGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgYXMgdGhlIHN0b3JhZ2Ug ZGlyZWN0b3J5IGlzIG5vdCBhIGRpcmVjdG9yeSEnCg== --001a11442022d9f1f90532b73c85 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a11442022d9f1f90532b73c85--