* First batch of changes for the refactor
Added the support of gin in routes and other services/utils
Begining implementation of JetHTML
* Remove os folder
* Move scrapers to own repo
* Second batch of changes
All .jet.html are the working templates.
You can now test this PR, the index Page and upload works. If you want to complete the other html templates, you're welcome
* Move captcha to util
* Move uploadService to utils
* Use govalidator instead of regex
* Third batch of changes
All the front end should as previously.
I also fixed some minor things unrelated to the refactor (mostly style issues on static pages)
Now errors can be accessed by importing the "errors" helpers and using the `yield errors(name="xxx")` command in templates.
Same for infos.
Templates are now more hierarchized with a base template "base.jet.html" which is extended depending on the context in "index_site" or "index_admin" layouts. Those layouts are extended than in every pages.
Other helpers are captcha to render a captcha `yield captcha(captchaid="xxx")`
And also csrf, with the command `yield csrf_field()`
To translate, you don't have anymore to do `call $.T "xxx"`, you just have to do `T("xxx")`.
Pages for the website part are in folders in the folder "templates/site". Pages for the admin part are in "templates/admin". Layouts are separated in "templates/layouts". Helpers and menu are in "templates/layouts/helpers" and "templates/layouts/menu". Error pages should be put in "templates/errors"
* Added test on templates
When adding a new template, you have to tell to template_test.go, the context of the new template (if it doesn't use the common context)
* Panel admin works
Now the templating part should work. The PR can now be fully tested.
I think we should push the templating PR and do the routes/controllers/removal of services in another branch. So we know that this one is functional
* Updated dependencies
* Fixed test for modelhelper
* Fix testing for commentlist
* Fix travis :')
* Just renamed router and removed network
* Applying same SEO fix
* Update form_validator.go
* Added back regexp package
Adding meta tag og:title to point out to the page title. And og:site_name to the actual site name.
Changing title tag of torrent name to h1 instead of p since h1 is used by SEO
* Fixes block templates for title and rss
* Remove duplicate og site_name
* add rss links in meta for torznab and eztv
* Fixed 404 Error in og site_name
* Git didn't update the view fast enough
* Prettier flag position
* flag overlap category icon
* HTML changes
* fix css that didn't apply properly & colspan not always being there
* Update main.css
* Update home.html
* Update home.html
* Update main.css
* Update main.css
* Make torrent language form not required
It's required currently and that's annoying because the majority of torrents do not need that
* Make torrent language form not required
* Make torrent language form not required
When a user had hidden torrents, they were still listed on his user page even if it's not the actual user who is viewing it.
That's why I added a new function for searching which filter out hidden torrents.
Now when a user go to his own page (or a moderator), he can see all his torrents.
However if another person visit the page, only non hidden torrents will be listed.
I added the hidden parameter in ES database, it permits also to use the search instead of SQL when listing torrents on the user page. Less load time, go with the idea that we should use ES everywhere when needed.
* Header isn't as WIDE on resolutions past 1920
* Turn down the fucking volume because it scares the shit out of me everytime
* Make clear the mascot is clickable
* Make torrent buttons not fuckhuge
* Just show N/A on no website
* search.html: Fix minor typo in refine box
* Should fix old uploader name in torrent view
* Fix "save changes" in modtools
* Modtool more colorful
* Fix search bar placement in modpanel
* Fix for widescreen
* Fix buttons in modpanel and some troncated text
* Update torrent.go
* Update admin_index.html
* Some last fix
Re added icon on download&magnet links
Added the use of the new search form made by @kipukun
Buildversion are now commit hash. Please read the readme for new build
command (or just build using package.sh).
GetCategory categoryID keepParent (eg: GetCategory "3" true <= for all
anime)
Modified
GetCategories to (keepParent, keepChild) (eg: GetCategories true true <=
for every catagories)
* Make view page not shitty
* View page <td> now ellipses on overflow
* Make flags not look shitty
* Updated mufuyu sound
* Updated multiple flag
* Updated other flag (thanks anon)
* Should fix old uploader name in torrent view
* Fix "save changes" in modtools
* Modtool more colorful
* Fix search bar placement in modpanel
* Make colors more consistent; less would be super helpful tbqach fam
* Display the old username if it's there
* Fix some admin index html
* Add custom icons and remove png code from all CSS
* Move a good amount of cosmetic code from main to classic
* Fix some weird bug with point-events; add some global icon formatting; fix mascot fucking up
* Spruce up admin panel with icons on smaller viewports, along with adding trash icon
* 404 redesign ;^)
* Mufuyu mascot on all themes; says something slightly lewd
* Fix weird user menu bug where shit would overflow
List Torrent delete log
Torrent edit log
Comment delete log
And every other logged activities
Can be filtered out by a filter tag ("edit" or "delete" supported)
Pages navigation
Can be accessed by /activities
Added some translation string
Fixed hidden username on api request
Fixed comments username on modpanel
New Activity model
New Activity handler
New Activity Service
Fixed some updating issue for ES when moderating torrents
Be aware deleting torrents and comments return the model now!
* Megacheck friendly
applied megacheck and fixed some unwanted behaviour (markdown)
* Forgot this file
* Captcha Audio
Should make #993 happen
* Fix style issue in comments
* Added margin auto and width on input
* Moved width on captcha div instead
* fixing width issue with audio tag
* Captcha final style fix
* Add flags for torrents
Add a new field, .Language, to the Torrent model, and a new package,
torrentLanguages, which maps languages to flags. Added also a flag icon pack
from googlei18n/region-flags, with (mostly) public domain flags from Wikipedia.
* Optimize flags
* Use FlagSprites CSS instead of .png files
* Only use flags for languages we support
* Add test for CSS flags
Ensure that we have all the flags for the languages we support.
* Add AdditionalLanguages field to config
This allows us to support additional languages for new uploaded torrents,
even if we have no translation for it.
* Minor CSS fix
* Add "other" and "multiple" torrent languages
Also removed the TorrentLanguage struct, as it wasn't much useful.
* Fix test
* Add colspan=2 to category when language is empty
Also hide the language column if empty.
* Add lang field to search.
Hopefully it works with Elasticsearch as well, but I haven't tested
(lol Java)
* Add language field to ES index and settings
* Add language column to JS template
* Add keyword type to language ES field
* Remove 'raw' from keyword
* Set "simple" analyzer on language
* Document .Language field on Torrent model
Chrome and Firefox Extensions have been added to the FAQ
qBitorrent plugin also added
Same with nyanner local client
Added id tags on all h2 for better redirection when linking to the faq.
New translation strings for extensions and plugins
Status for scrapped user
They can't log in and an explicit error message is shown when they try
explaining that they need to contact the moderators
They are displayed as simple members on the front-end however
* fix uploaderid when torrent is hidden
Added a new function template to generate a link for uploaders name
In the view we have the actual uploaderID and uploaderName now
* fix template.HTML to string conversion
* Add a modal for reporting
Replace the popup
Use of Modal.js
Include Captcha
* forgot a div end tag
* Moved modal at the end
* Updated translation missing %s
* Added an information message
New translation string
* Forgot %s
* wrong id check
* Merge remote-tracking branch 'refs/remotes/origin/dev' into fix-for-csrf
Fix CSRF protection
Seems like it doesn't work anymore...
I tried to
fix it but couldn't get /api without csrf. So I changed the
dependency
for another csrf package (nosurf).
Behavior: Same as previously. You
just have to include the block
csrf_token
* changing dependency to nosurf
* Logout is now a posted form
Instead of using a get method, I've moved it to a post method.
Doing that made possible to use CSRF token and also fix#902
* Update _badgemenu.html
* Comments count number
* New Modpanel fix
Fixes#755 (@ilikecats)
modpanel tables have margins
modpanel delete buttons are red
some coloring for buttons
reassign form looks better
reassign form textarea have rows="20" cols="40"
"save changes" btn green
report reasons are now translated in modpanel
delete is a real button on modpanel users page
* moved getReportDescription
* This allows changing the nyaa, sukebei and status URL via config.
Previously only the nyaa address was configurable
* This helps testing changes locally without having to set up
a TLS terminating proxy
* Also refactored uses of hardcoded URLs in the html templates
The html templates will now also use the configured urls
* New ModPanel Theme
* Implemented the new @kipukun theme in ModPanel
* Added new translation string
* Fixed the toolbar in /mod/torrents
* Little fix on torrents report
* Remove double navigation
* Added a tag h1 for pages and new translation strings~
* fix warn message
* new translation strings
* new Translations object which can be used to translate string in js
* fix a the disappearance of checkboxes on new item loaded by ajax
* Mass Edit MOD api JS (WIP)
In continuity with the mass edit mod api, this is the javascript use of
it.
##What does it do?
* Delete of multiple torrents on index/search
* Category change of multiple torrents
* Change of owner of multiple torrents
* Lock & delete of multiple torrents
##How?
* New toolbar only visible for mods
* Checkboxes added only for mods
* Selection and click on the button in toolbar
* Nothing is submitted, you have to review the changes in a modal window
listing them.
* Then the ajax queries are initialized one at a time with a progression
bar
* You can always at any moment delete entries from the queuing list
* Improved progress bar
* Deleting part almost done
Improved modal design
All dom interactions should be done
Prepared Query for only one callback
Improved Modal to keep a link to the active modal
* Finished =D
Added some translation string
* Forgot the refreshing of the page
Just an option that can be disabled by making refreshTimeout to 0
* Put the mascot into the cookie as well, major js cleanup
* Update en-us.all.json
* removed redundant translation
* made the dropdown menu look and function better
* fixed responsiveness issue
* made this look better with the /g/ theme
Main version can be set in config/default_config.yml
Build version need to be set by build command: go build -ldflags "-X
main.buildversion=$(date -u +.%Y%m%d.%H%M%S)"
Or by using package.sh
Or by using the godep command: godep go build -ldflags "-X
main.buildversion=$(date -u +.%Y%m%d.%H%M%S)"
* Update index.html
Small format change to RSS link
Addes SMO
Remove Cartel tag
* Update index.html
Added Social Icon
* Update index.html
* maybe the right one???
* Fix login when running on localhost
* Translatable edit/delete buttons on view page
* Bold completed count on view page
* Don't create global variables in report button js
* Update german translation
* Update trackers (#803)
Remove baka-sub.cf as it's always broken
Add IPv6 version of leechers-paradise
* Added a fiel torrentID in search param
* Search can be limited to torrentID > id provided
* Templates creation through simple JS object
* XHR management through simple JS object
* Torrents object that interface with Templates and Query to get new
torrent uploaded according to the search context
* Added new dep: gorilla/csrf
* CSRF field in forms
* CSRF variable in commontemplatevariables
* New key for messages and user context
Please change EnableSecureCSRF to false when testing locally and don't
merge config/env.go with the changes
Added a class for the "Mascot" button. Added some pointer-events to make the "Mascot" button clickable when the window is narrow enough to make the mascot image overlap the button.
* Added a check on username and userId when converting torrent to JSON
* Added a checkbox for hidden in modepanel, torrent user edit and upload
* Added a Hidden field bool in torrent model and upload form
* added pagination
* cleanup
* indentation fix
* fix
* Loads theme from context
* Basic theme switching working
* working properly
* Fuck golint tbqh
* united language and theme into one settings page
* made the settings page a little nicer
* fixed it so it works properly now
* removed parts of inline js and fixed bug
* removed remains of other theme switching method
* fixed very minor bug
* fix
* Added a check on username and userId when converting torrent to JSON
* Added a checkbox for hidden in modepanel, torrent user edit and upload
* Added a Hidden field bool in torrent model and upload form
* added pagination
* cleanup
* indentation fix
* fix
* Loads theme from context
* Basic theme switching working
* working properly
* Fuck golint tbqh
* united language and theme into one settings page
* made the settings page a little nicer
* fixed it so it works properly now
* removed parts of inline js and fixed bug
* removed remains of other theme switching method
* fixed very minor bug
* fix
* Revert status indication colors to original nyaa ones (others look washed out)
* Move "no files" comment into filelist <div> where it belongs
* Fix alignment issue on view page
* Make infohash monospace
* Make more strings translatable
* TorrentJSON.ID is uint now, fix weird page sorting
The bug was that ES would sort by ID in a weird manner because the id
was a string. The id is now a uint.
* Resolved the conflict for future merging
* Fixing user profile page
* Modified css rule word-break to break-word
* Modified torrents table in user page to look like home listing
* Made the button reset api look like a button according to actual
design
* Modified user menu to have the same spacing accross templates
* User menu is in another template file loaded dynamically
* Fixing the access to userprofile variable
* Menu needs to access the user profile with $.UserProfile
* User Notification template variable removed, instead using user
profile variable
* Reverting back theme flickering fix
* Gofmt friendly
Keeping Go source code in line with what they preconize
* Golint Friendly Next
So I have made some variables unexported
Added comments in every function that I know what it does
Removed some deprecated stuff that I was sure of
Added a comment on possible deprecated methods "Is it deprecated?"
Changed some variable/method name according to golint recommendations
* Update filelist.go
* Make tree-view work with CSS only
Changed the file list tree-view to use recursive templating instead of
an external function, and improved it so that it works with only CSS.
Striped lines won't work though.
* Remove inline-block from folder label
It breaks with the text-overflow: ellipsis.
* Rename makeFolderData to makeTreeViewData
* Making the code Golint friendly
* No exported variables when not needed
* Same for functions
* Simplifying Templates variables with a form basic template variable
and a modelList basic template variable
* Adapted templates to new template variables
* use of .Models instead of model list
* use of .Form instead of modelform
* Small fix
* Small fix 2
Forgot $.Form
* Reverting templateDir as a var
* Torrent Mass Edit Api (WIP)
* Torrents can be deleted in mass from frontend with api post request
* Torrents status can be edited from frontend with api post request
-- Look to function doc for more info on how to use it
It is a WIP so it might not work =D
* Finished Mass mod Api
As per suggestion of @yiiTT in #720, I added:
* Changing torrents category
* Deletion of reports with deletion of a torrent
* Changing owner of multiple torrents
Commit also add some new translation strings.
* Make some changes
* Reports can now be cleared for the torrents selected without having to
delete them
* Users with no admin rights can't delete reports
* Fix moveto to status
moveto deprecated in api
* Tested and works!
Changes:
* Updates only the colomns of torrent table
* Moved categories config in config/torrents.go
* Make sort arrows look a lot nicer
* Add search icon into search input
* Work on navbar, fix it on mobile view
* Hide mascot on mobile views
* Make torrent view work on mobile + minor improvements
* Add status and various things to view
* ACTUALLY FINISH VIEW PAGE
* Forgot this file in last commit
* wow user profile was easy
* Work on profile page
* remove language option
* SEO improvement
* forgot the fucking bracket
* make description more weeb
* add irony
* add better irony
* Update README.md
* Make sort arrows look a lot nicer
* Add search icon into search input
* Work on navbar, fix it on mobile view
* Hide mascot on mobile views
* Make torrent view work on mobile + minor improvements
* Add status and various things to view
* ACTUALLY FINISH VIEW PAGE
* wow user profile was easy
* Work on profile page
* remove language option
* SEO improvement
* forgot the fucking bracket
* make description more weeb
* add irony
* add better irony
* Torrent Mass Edit Api (WIP)
* Torrents can be deleted in mass from frontend with api post request
* Torrents status can be edited from frontend with api post request
-- Look to function doc for more info on how to use it
It is a WIP so it might not work =D
* Finished Mass mod Api
As per suggestion of @yiiTT in #720, I added:
* Changing torrents category
* Deletion of reports with deletion of a torrent
* Changing owner of multiple torrents
Commit also add some new translation strings.
* Make some changes
* Reports can now be cleared for the torrents selected without having to
delete them
* Users with no admin rights can't delete reports
* Fix moveto to status
moveto deprecated in api
* Tested and works!
Changes:
* Updates only the colomns of torrent table
* Moved categories config in config/torrents.go
* Forgot this file in last commit
* Less useless queries
The use of Save makes it that users are created and updates also all the
associatiated models. Better to just update the colomns needed (less
useless queries)
* Some Updates
* Added a new status of 5 for locking torrents
* Modifying the list torrents view for using it in deleted torrents view
* Added function to get deleted torrents
* Torrents (and reports) can be definitely deleted
* Some new translation string
* Fixing
* fix 2
* Added upload check for locked torrents
If a user owns a torrent, has deleted it and try to repload it. As long
as it has not been locked, he can.
* Fixing wrong condition in isdeleted
* Finished
* Info messages on success when deletes or lock
* Fixed double deleted_at is Null
* Added Link to view of deleted torrents
* Added new translation string
It only toggled the "hidden" attributes of the childs, however if
you closed a subfolder, then closed the parent folder, all childs of the
parent would be toggled, leaving the subfolder that we closed open.
Now the state is stored on the data-filelist-open attribute, and the
hidden state is set based on it.
* Add tree-view file list
* Add TotalSize field to folders
* Remove bootstrap/jquery related code
* Add icons to filelist, some CSS formatting
Moved a few styles from the format string for the tree view, to CSS
(where possible). Make icons look consistent under all themes.
* Make filelist hideable again, show it when JS is disabled
* Remove Bootstrap and Jquery, and create basic nav
* More improvements to navbar, as well as work on _badgemenu
* Complete navbar HTML, obviously it still looks horrendous
* Change layout on torrent table, using grids.
* Remove Bootstrap and Jquery, and create basic nav
* More improvements to navbar, as well as work on _badgemenu
* Complete navbar HTML, obviously it still looks horrendous
* Change layout on torrent table, using grids.
* HOLY FUCK INDEX IS /DONE/
* DO UPLOAD PAGE, DELETE OLD SHITTY CSS
* Complete login page
* Remove Bootstrap and Jquery, and create basic nav
* More improvements to navbar, as well as work on _badgemenu
* Complete navbar HTML, obviously it still looks horrendous
* Change layout on torrent table, using grids.
* Remove Bootstrap and Jquery, and create basic nav
* More improvements to navbar, as well as work on _badgemenu
* Complete navbar HTML, obviously it still looks horrendous
* HOLY FUCK INDEX IS /DONE/
* DO UPLOAD PAGE, DELETE OLD SHITTY CSS
* Complete login page
* Begin work on profile page
* fucking git, man
* Damn, that looks sexy
* Complete login and register pages, include very minimal grid system, and delete all of view template
* Do view page!
* Finish view even more
* Fix dates and filesizes in torrent table
* Improve comment/captcha input
* Actually add magnet and torrent buttons
* Add open-iconic instead of fontawesome
* Improve user side-panel
* Rename Category_* to CategoryName
* Beginning to finish up
* Implement themes and add basic mobile support to front page
* Fix some slight color errors
* Fix captcha on dark
* magnet and torrent links on view
User can edit torrents
* delete torrents
+ New translation string for mod panel and user edit torrent panel
+ Improvement of messages util with implementation of T (no need to get
Tfunc now, messages util do that for you)
+ Use of @ElegantMonkey GetCategories to generate select of categories
in search and forms
Added a new package, "categories", with the valid categories for each
Nyaa and Sukebei. On upload, check if the category is present on
the valid ones. Also changed the template function Category_Nyaa and
Category_Sukebei to reflect this.
* Add T field to template variables
* Remove languages.SetTranslationFromRequest
* Add Tfunc on handlers
* Remove T and Ts from template_functions
* Update templates
Change the templates to use the local Tfunc, instead of the global one.
Also changed the signature of the fields on template_variables.go, so that
they return a template.HTML to avoid escaping problems.
* Remove unnecessary variable
* Fix S/L/D columns wasting huge amounts of space
Partially reverts 0c9cdfa8bf.
* Move last scrape below seed-bar
Also fixes the very misleading indentation
* Show category name on view page too
* Fix fucked up login page (fixes#640)
* Fix empty page on login w/o pass (fixes#634)
* Fix incorrectly colored error text in day mode
* Better readable footer in night mode
* Prepare having old uploader names on sukebei and various fixes for sukebei
* Different HTML title for sukebei
* Use ModeratorDir variable
* Rename cookieHelper to cookie_helper for consistency
* Use named constant instead of literals
* Fix ability to upload when uploads are disabled
The old code let people upload under the right conditions when uploads
were disabled. (ie: User is banned and config.AdminAreStillAllowedTo is
false)
* Increase timeout (fixes#517)
* Fix inconsistent indentation *.{js, css} (fix#583)
* Fix negative page
Temporary fix. The issue was that going to a negative page caused the
sql query to have a negative offset. This caused an error in the
database query.
We need to cleanup this code, but this will work for now.
* Fix wrong PG_DATA directory due to upgrade to 9.6
* Add server status link to FAQ
* Fix failing tests
* Clarify group_vars/all and hosts doc
* Add a wrapper to protect /mod route
* Fix login page not showing form errors
* Make comments extra column
* Fixed#595 w00t
* Cleanups and fixes (#623)
* Keep naming consistent
* Remove execute bit from files
* Default to DefaultLanguage (without passing it to the func)
* Remove commented code
* Use Content-Type to get language json
* Lines of 400 characters is dumb
* Update new repo in README
* Remove useless script since we fallback to a defaultlang
* Fix fallback language panic
* Fix uninitialized MaxPerPage when not in querystr
The issue was that the req.MaxPerPage was not set (default to 0) when
the query string didn't include "max". This makes the server query the
whole db since the resulting limit is 0.
* Fix creating empty torrents (only worked once)
* Lines of 400 characters is still dumb
* Update ja-jp.all.json (#622)
* Update README.md
* Make comments extra column
* Fixed#595 w00t
* Comment out comments for now
So reverted modif from date-short
Added new date-comments to have hours on them (when screen is big
enough)
Edited the view for displaying date comments, they were displayed on the
border (even with old date-short)
Instead of showing 0/0/0 when the torrent hasn't been scraped (which
may be misleading), show "Unknown", and also show when the torrent was
last scraped on the view torrent page.
* Re-add old uploader name to view page
* Update zh-CN translation (fixes#519)
* Nicer text boxes in night mode (closes#515)
* Fix max results defaulting to 5 (fixes#488)
* Add link back to nyaa on sukebei (fixes#255 and #437)
* Fix visual bug with pt-BR translation (fixes#427)
This consolidates the places where a default language has to be set.
- Removed import of the 'userService' package into the 'languages' util
package
This was required to prevent a cyclic import between the two packages.
- Added a 'UserRetriever' interface to read the language setting of users
inside the 'languages' package