Quick Connect redesign for multi-protocol connectors #369
Replies: 7 comments 3 replies
-
Beta Was this translation helpful? Give feedback.
-
|
Thank you for your effort on this topic. Here are the changes that I like from your screenshots so far:
Here is my feedback on your draft screenshots:
More feedback on the Quick Connect pages of v4.1.0-v4.1.1 outside of your screenshots:
|
Beta Was this translation helpful? Give feedback.
-
|
Regarding API Quick Connect pages with 2FA, namely Internxt, MEGA and Filen:
I was even thinking of combining these 2 points somehow so the 2FA secret will generate TOTPs directly in the TOTP field, but I still think about how to design it so it would look good. These two points, for now, should be very easy to implement by just changing HTML and CSS, not even JS or Rust. It'll be easier to see what to change next after seeing both changes. |
Beta Was this translation helpful? Give feedback.
-
|
More Filen and MEGA Quick Connect pages feedback: By the way, I noticed that when deleting the MEGAcmd WebDAV Endpoint URL, saving it and then connecting, it connects to http://127.0.0.1:4443/. You can see this both as the placeholder and when clicking '🖊 Edit'. |
Beta Was this translation helpful? Give feedback.
-
|
Good catch. On the MEGAcmd endpoint: this is already handled. On connect AeroFTP runs On |
Beta Was this translation helpful? Give feedback.
-
|
kDrive’s Quick Connect page: I have great news that I know you’re going to love! I managed to find a link that takes you directly to the ‘API tokens’ page in kDrive’s Developer section, which is what we lacked in #110: https://manager.infomaniak.com/v3/ng/profile/user/token/list. Here’s how I found it: go to https://manager.infomaniak.com ➜ click on your user icon at the top-right ➜ click on ‘Manage my account’ ➜ right-click on ‘Developer ↗’ ➜ click on ‘Copy clean link’. That link is https://manager.infomaniak.com/v3/ng/profile/user/applications/list. Opening it takes you to the ‘API app’ page, which is a sibling to the ‘API tokens’ page. Going to each changes these URLs by adding the numeric user ID, but I noticed that the only difference between them is the words Also, we covered how to generate an API token for kDrive in #110, but haven’t actually covered how to find the Drive ID. I forgot how I even found it. It’s confusing; it’s a different 7-digits than what appears in the URL bar when entering https://manager.infomaniak.com. What this means now is that it significantly simplifies the docs and allows adding this link to the Quick Connect page of kDrive, So the special changes that I propose specifically to kDrive’s Quick Connect page are as follows:
Please note that since you watch this repo, you should’ve received an email that I added another comment over the last day in #321. However, I decided to remove it, because after posting it, I discovered https://manager.infomaniak.com/v3/ng/profile/user/token/list, Also, this post should be a place to discuss the design of all Quick Connect pages, not only those with multiple protocols. |
Beta Was this translation helpful? Give feedback.
-
|
More Quick Connect feedback:
<!DOCTYPE html><html>
<b>6-digit TOTP (not saved)</b><br>
<div class='TOTP'>
<input type='text' inputmode='numeric' autocomplete='one-time-code' maxlength='1' class='totp-box' placeholder='0'>
<input type='text' inputmode='numeric' autocomplete='one-time-code' maxlength='1' class='totp-box' placeholder='0'>
<input type='text' inputmode='numeric' autocomplete='one-time-code' maxlength='1' class='totp-box' placeholder='0'>
<input type='text' inputmode='numeric' autocomplete='one-time-code' maxlength='1' class='totp-box' placeholder='0'>
<input type='text' inputmode='numeric' autocomplete='one-time-code' maxlength='1' class='totp-box' placeholder='0'>
<input type='text' inputmode='numeric' autocomplete='one-time-code' maxlength='1' class='totp-box' placeholder='0'>
</div>
<br><b>Drive ID</b><br>
<input id='DriveID' type='text' inputmode='numeric' maxlength='10' placeholder='1234567'>
<style>
input{margin-top:8px}
.TOTP{display:flex;gap:8px}
.totp-box{width:18px;height:24px;text-align:center;border:2px solid#ddd;border-radius:6px}
.totp-box:focus{border-color:#0055ff;outline:none}
::placeholder{color:#d6d6d6}
.totp-box:focus::placeholder{color:transparent}
#DriveID{width:78px}
</style>
<script>
const inputs=document.querySelectorAll('.totp-box'),L=inputs.length
,handlePaste=e=>{
e.preventDefault()
const pastedData=e.clipboardData.getData('text').replace(/\D/g,'').slice(0,L),l=pastedData.length
for(let i=-1;++i<l;)inputs[i]&&(inputs[i].value=pastedData[i])
l&&inputs[Math.min(l,L-1)].focus()
}
,handleInput=e=>{
e.target.value=e.target.value.replace(/\D/g,'') // Only allow 0-9 digit inputs
e.target.value&&e.target.nextElementSibling&&e.target.nextElementSibling.focus()
}
,handleKeydown=e=>{// The arrows keys can navigate between the 6 TOTP fields.
switch(e.key){
case 'Backspace':
!e.target.value&&e.target.previousElementSibling&&e.target.previousElementSibling.focus()
break
case 'ArrowLeft':
case 'ArrowUp':
e.preventDefault()
e.target.previousElementSibling&&e.target.previousElementSibling.focus()
break
case 'ArrowRight':
case 'ArrowDown':
e.preventDefault()
e.target.nextElementSibling&&e.target.nextElementSibling.focus()
break
}
}
for(let i=-1;++i<L;){
inputs[i].addEventListener('input',handleInput)
inputs[i].addEventListener('keydown',handleKeydown)
inputs[i].addEventListener('paste',handlePaste)
}
// Only allow 0-9 digit inputs
document.getElementById('DriveID').addEventListener('input',e=>e.target.value=e.target.value.replace(/\D/g,''))
</script>
</html> |
Beta Was this translation helpful? Give feedback.






Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
This thread is for designing the Quick Connect (Add / Edit Server) layout, starting with the connectors that expose more than one protocol for the same account.
It grew out of a bug report, #215, where @EhudKirsh asked to switch a saved profile between its protocols (Native API, WebDAV, S3) without losing credentials, the favourite star or the storage quota. All of that is fixed and shipped. Along the way Ehud sketched a much better Quick Connect layout and a clear line of thinking behind it, and that design work does not belong in a bug thread, so I am moving it here where it can have proper mockups and a real back and forth.
Credit where it is due: the core idea, and the first mock, are Ehud's. In his words the goal is to need only one profile per online account, and to switch protocols from inside that one profile, instead of keeping one remote per protocol like rclone does. His Koofr sketch reorganised the form around that idea, and it is the starting point for this thread.
What he proposed, in short:
A first piece has already shipped in v4.1.0: every connector now uses the same two-column layout, the OAuth pages included, with the profile icon next to the name and the Wrappers / Overlays section (the transparent crypt overlay) open by default. Here is the pCloud OAuth page.
One important scope note, because it is the natural worry with a "one profile, many protocols" UX. This is a GUI reorganisation only. Under the hood each protocol stays its own independent profile record, with its own id and its own credential in the vault, and it stays individually selectable in export and import. The single cleaner form is a nicer way to drive records that already exist, it does not merge or couple your profiles. Existing exports and existing setups are unaffected.
How I would like to run this thread:
Next post in this thread is the first set of Koofr mockups. Ehud, please react to those and tell me which direction feels right before I move on to the harder pages.
Beta Was this translation helpful? Give feedback.
All reactions