{"action":"created","issue":{"url":"https://api.github.com/repos/syncthing/syncthing/issues/5132","repository_url":"https://api.github.com/repos/syncthing/syncthing","labels_url":"https://api.github.com/repos/syncthing/syncthing/issues/5132/labels{/name}","comments_url":"https://api.github.com/repos/syncthing/syncthing/issues/5132/comments","events_url":"https://api.github.com/repos/syncthing/syncthing/issues/5132/events","html_url":"https://github.com/syncthing/syncthing/pull/5132","id":351783693,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA5MjkwNTM3","number":5132,"title":"lib/ignore Have a nice treeview for handling ignores - Next Gen Ignores","user":{"login":"ibizaman","id":1044950,"node_id":"MDQ6VXNlcjEwNDQ5NTA=","avatar_url":"https://avatars1.githubusercontent.com/u/1044950?v=4","gravatar_id":"","url":"https://api.github.com/users/ibizaman","html_url":"https://github.com/ibizaman","followers_url":"https://api.github.com/users/ibizaman/followers","following_url":"https://api.github.com/users/ibizaman/following{/other_user}","gists_url":"https://api.github.com/users/ibizaman/gists{/gist_id}","starred_url":"https://api.github.com/users/ibizaman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ibizaman/subscriptions","organizations_url":"https://api.github.com/users/ibizaman/orgs","repos_url":"https://api.github.com/users/ibizaman/repos","events_url":"https://api.github.com/users/ibizaman/events{/privacy}","received_events_url":"https://api.github.com/users/ibizaman/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":15,"created_at":"2018-08-18T02:41:54Z","updated_at":"2018-08-24T13:42:00Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/syncthing/syncthing/pulls/5132","html_url":"https://github.com/syncthing/syncthing/pull/5132","diff_url":"https://github.com/syncthing/syncthing/pull/5132.diff","patch_url":"https://github.com/syncthing/syncthing/pull/5132.patch"},"body":"### Purpose\r\n\r\nThis is PR attempts to address the requirements of issue #2491 by following the rules outlined in [this comment](https://github.com/syncthing/syncthing/issues/2491#issuecomment-359889677).\r\n\r\nThis PR is in progress. I posted it [as requested](https://github.com/syncthing/syncthing/issues/2491#issuecomment-413694849). What's notably missing is advanced testing of part of it, see [this comment](https://github.com/syncthing/syncthing/issues/2491#issuecomment-413598000).\r\n\r\nPlease see commit messages for info on the implementation.\r\n\r\n### Testing\r\n\r\nUnfortunately testing needs to be manual.\r\n\r\nWhat would be greatly needed to gain confidence in this PR is a way to unit test the new js functions. The main scary one is the function that parses the .stignore to populate the basic view. It doesn't work right now correctly. It is a pain to test manually though.\r\n\r\nI'm less woried about the UI part - the update of the UI when a user clicks - as there is not that much going on on that front. I'm not saying it's flawless, just that it is possible to exhaustively test the behavior with manual testing.\r\n\r\n### Screenshots\r\n\r\nClicking on the Ignore Patterns shows 2 tabs, the Basic one is selected by default:\r\n<img width=\"888\" alt=\"image\" src=\"https://user-images.githubusercontent.com/1044950/44294960-c1f7df80-a254-11e8-95fa-cc203f3e66c7.png\">\r\n\r\nThis shows the advanced tab:\r\n<img width=\"888\" alt=\"image\" src=\"https://user-images.githubusercontent.com/1044950/44294963-d3d98280-a254-11e8-8adb-fd454a04c703.png\">\r\n\r\nOpening the folder asynchronously loads the contents by getting the global state from syncthing\r\n<img width=\"888\" alt=\"image\" src=\"https://user-images.githubusercontent.com/1044950/44294972-02eff400-a255-11e8-9baf-39bfdaee39a5.png\">\r\n\r\nSelectively syncing a few files:\r\n<img width=\"888\" alt=\"image\" src=\"https://user-images.githubusercontent.com/1044950/44294976-156a2d80-a255-11e8-9679-721d3f8737e8.png\">\r\n\r\nCorresponding advanced rules:\r\n<img width=\"271\" alt=\"image\" src=\"https://user-images.githubusercontent.com/1044950/44294978-2155ef80-a255-11e8-812f-78cac52e95fa.png\">\r\n\r\nAnother configuration:\r\n<img width=\"193\" alt=\"image\" src=\"https://user-images.githubusercontent.com/1044950/44294981-2e72de80-a255-11e8-8a89-8829781b949e.png\">\r\n\r\nAnd corresponding advanced rules:\r\n<img width=\"176\" alt=\"image\" src=\"https://user-images.githubusercontent.com/1044950/44294982-3763b000-a255-11e8-8efb-56ce5b6460e3.png\">\r\n\r\nExtreme case 1, sync all:\r\n<img width=\"170\" alt=\"image\" src=\"https://user-images.githubusercontent.com/1044950/44294986-42b6db80-a255-11e8-9bc8-2df9a52f8652.png\">\r\n\r\nCorresponding pattern is empty:\r\n<img width=\"232\" alt=\"image\" src=\"https://user-images.githubusercontent.com/1044950/44294993-49dde980-a255-11e8-8207-cebe67d65985.png\">\r\n\r\nExtreme case 2, ignore all:\r\n<img width=\"251\" alt=\"image\" src=\"https://user-images.githubusercontent.com/1044950/44294997-57936f00-a255-11e8-87c4-e6ee97f731db.png\">\r\n\r\nCorresponding patterns:\r\n<img width=\"225\" alt=\"image\" src=\"https://user-images.githubusercontent.com/1044950/44295004-64b05e00-a255-11e8-9672-6d7193c51418.png\">\r\n\r\n### Documentation\r\n\r\nI guess we should discuss documentation later when the implementation is more solid? Although I'm totally fine to tackle this now if requested.\r\n\r\nDisclaimer: first PR here, I don't want to waste anyone's time so feel free to just skim over it and tell me what could help you review this more easily."},"comment":{"url":"https://api.github.com/repos/syncthing/syncthing/issues/comments/415762345","html_url":"https://github.com/syncthing/syncthing/pull/5132#issuecomment-415762345","issue_url":"https://api.github.com/repos/syncthing/syncthing/issues/5132","id":415762345,"node_id":"MDEyOklzc3VlQ29tbWVudDQxNTc2MjM0NQ==","user":{"login":"canton7","id":568104,"node_id":"MDQ6VXNlcjU2ODEwNA==","avatar_url":"https://avatars0.githubusercontent.com/u/568104?v=4","gravatar_id":"","url":"https://api.github.com/users/canton7","html_url":"https://github.com/canton7","followers_url":"https://api.github.com/users/canton7/followers","following_url":"https://api.github.com/users/canton7/following{/other_user}","gists_url":"https://api.github.com/users/canton7/gists{/gist_id}","starred_url":"https://api.github.com/users/canton7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/canton7/subscriptions","organizations_url":"https://api.github.com/users/canton7/orgs","repos_url":"https://api.github.com/users/canton7/repos","events_url":"https://api.github.com/users/canton7/events{/privacy}","received_events_url":"https://api.github.com/users/canton7/received_events","type":"User","site_admin":false},"created_at":"2018-08-24T13:42:00Z","updated_at":"2018-08-24T13:42:00Z","author_association":"MEMBER","body":"I think, unfortunately, we also need to go back to the topic of rules which are included by default on various platforms, like `(?d).DS_Store` on Mac, and the same for Thumbs.db on Windows. Not showing these in the tree view would also be a good thing, I think."}}
{"actor":{"display_login":"canton7"}}