Commit Graph

362 Commits

Author SHA1 Message Date
Julian Prieber f2103464d4 Fixed spacing 2022-05-31 14:16:05 +02:00
Julian Prieber e98d942b04 Added Theme Credit page
A short page that displays the contents of a Theme's readme.md.

Currently, a link to this page is only visible in the HTML meta tags if viewed as page source.
This page can always be accessed on your.domain.com/theme/@littlelink_name.
(For example your.domain.com/theme/@admin)
2022-05-31 14:11:26 +02:00
Julian Prieber 1fd768057f Update updater.blade.php 2022-05-31 12:32:36 +02:00
Julian Prieber b445eb85ff Re-implemented footer hover animations 2022-05-30 23:10:08 +02:00
Julian Prieber 42c284e865 Update button-editor.blade.php 2022-05-30 18:10:35 +02:00
Julian Prieber 5a389dd243 Re-implemented entrance animation 2022-05-30 17:52:12 +02:00
Julian Prieber cfd7445766 Fixed animation timing 2022-05-30 17:47:31 +02:00
Julian Prieber 39f322bd86 Added custom animation support to Themes 2022-05-30 17:29:14 +02:00
Julian Prieber 217201fa66 Update users.blade.php 2022-05-30 15:18:17 +02:00
Julian Prieber 35f59acf91 Update users.blade.php 2022-05-30 15:11:01 +02:00
Julian Prieber 2dc3e3d185 Added option for admins to view and delete user links 2022-05-30 15:02:27 +02:00
Julian Prieber dfe0a0326b Update update.blade.php 2022-05-30 12:10:11 +02:00
Julian Prieber 336427b278 Update update.blade.php 2022-05-30 12:07:07 +02:00
Julian Prieber 2f2ad0839b Update update.blade.php 2022-05-30 11:48:05 +02:00
Julian Prieber 54035ce5c4 Added skip backup on update option
Added skip backup on update option to config
2022-05-30 11:39:39 +02:00
Julian Prieber 5b73de7584 Update update.blade.php 2022-05-30 10:50:01 +02:00
Julian Prieber d1d8586b32 Update update.blade.php 2022-05-30 10:42:40 +02:00
Julian Prieber 15b2a03035 Update sidebar.blade.php 2022-05-28 16:32:53 +02:00
Julian Prieber abe3a993b1 Update sidebar.blade.php 2022-05-28 16:07:19 +02:00
Julian Prieber 4739567743 Update sidebar.blade.php 2022-05-28 15:52:45 +02:00
Julian Prieber 0e257ef8ab Updated update notification system
Made NOTIFY_UPDATES=all and NOTIFY_UPDATES=major use the same version source file to prevent GitHub API limit from being reached.
2022-05-28 15:49:29 +02:00
Julian Prieber c21db40809 Added beta support to updater 2022-05-28 14:03:49 +02:00
Julian Prieber 8b7929dfa8 Update update.blade.php 2022-05-26 12:12:29 +02:00
Julian Prieber 909c11263f Update update.blade.php 2022-05-26 11:40:13 +02:00
Julian Prieber f60ff94f6d Update pages.blade.php 2022-05-26 11:21:55 +02:00
Julian Prieber 0deca1f257 Update update.blade.php 2022-05-26 11:16:46 +02:00
Julian Prieber d9bd9d6307 Update updater.blade.php 2022-05-26 11:10:33 +02:00
Julian Prieber 84b365958f Update update.blade.php 2022-05-26 11:10:05 +02:00
Julian Prieber 387b67db1d Update sidebar.blade.php 2022-05-25 23:19:29 +02:00
Julian Prieber df384df2cf Update sidebar.blade.php 2022-05-25 23:15:34 +02:00
Julian Prieber 122d9e31e6 Update update.blade.php 2022-05-25 22:09:54 +02:00
Julian Prieber 8f09d399cd Update update.blade.php 2022-05-25 21:26:57 +02:00
Julian Prieber dde1185075 Update update.blade.php 2022-05-25 20:53:32 +02:00
Julian Prieber 7927d8e021 Update update.blade.php 2022-05-25 17:05:19 +02:00
Julian Prieber dc32587dee Update updater.blade.php 2022-05-25 17:04:47 +02:00
Julian Prieber 7360bd37de Update update.blade.php 2022-05-25 17:00:21 +02:00
Julian Prieber d1f9bffc07 Update sidebar.blade.php 2022-05-25 16:27:06 +02:00
Julian Prieber 1fd71f1727 Update updater.blade.php 2022-05-25 16:22:14 +02:00
Julian Prieber 694ea93d51 Update update.blade.php 2022-05-25 16:19:20 +02:00
Julian Prieber be76c31f2d Update update.blade.php 2022-05-25 11:52:57 +02:00
Julian Prieber 634ecb5063 Update update.blade.php 2022-05-24 17:26:12 +02:00
Julian Prieber 07664d4bbc Update update.blade.php 2022-05-24 16:13:00 +02:00
Julian Prieber 4747c42ea2 Update updater.blade.php 2022-05-24 15:38:52 +02:00
Julian Prieber d5467e909e Update update.blade.php 2022-05-24 15:30:22 +02:00
Julian Prieber 5e5f575d06 Update updater.blade.php 2022-05-24 15:30:10 +02:00
Julian Prieber 283ed2c4bf Added updater backend
https://github.com/codedge/laravel-selfupdater
2022-05-24 15:29:36 +02:00
Julian Prieber edd7397239 Added backup backend
https://github.com/spatie/laravel-backup
2022-05-24 15:27:44 +02:00
Julian Prieber 496b4755b6 Added route 2022-05-24 15:23:10 +02:00
Julian Prieber 26275c152d "Reset to default" button now works with themes
The reset to default button on the Button Editor now works with custom theme buttons.
2022-05-20 16:15:14 +02:00
Julian Prieber ae1d5a85bd Added "download more themes" button 2022-05-20 11:59:16 +02:00
Julian Prieber 074ef2060f Now hiding app name in page title if ll page is set as home page 2022-05-19 17:16:21 +02:00
Julian Prieber fab724a09d
Merge pull request #62 from JulianPrieber/main
Update footer.blade.php
2022-05-19 12:29:33 +02:00
Julian Prieber 6c04067d24
Update footer.blade.php 2022-05-19 12:28:41 +02:00
Julian Prieber 0623352217
Update littlelink.blade.php 2022-05-19 12:27:37 +02:00
Julian Prieber 5a02ceaaec
Update footer.blade.php 2022-05-18 21:57:36 +02:00
Julian Prieber 592dde4b2a Added support for custom themes 2022-05-18 21:08:58 +02:00
Julian Prieber 7395ed8f0e
Update index.blade.php 2022-05-17 16:49:51 +02:00
Julian Prieber 04cfbcabc7 Update page.blade.php 2022-05-15 13:22:59 +02:00
Julian Prieber a8dec6ff9e Update edit-user.blade.php 2022-05-15 11:43:11 +02:00
Julian Prieber d6a6a7ca43 Update littlelink.blade.php 2022-05-15 11:38:43 +02:00
Julian Prieber 6338397ed9 Update page.blade.php 2022-05-15 11:34:02 +02:00
Julian Prieber 376fbd32af Update page.blade.php 2022-05-15 11:09:56 +02:00
Julian Prieber 1d4b560307 Updated plugins text editor 2022-05-14 20:25:28 +02:00
Julian Prieber 4243f99283 Optimized home page logo
Optimized home page logo for mobile devices and scalable resolutions. Replaced "ll" SVG with custom font for better centering.
2022-05-14 16:03:33 +02:00
Julian Prieber 4de0761e7c Fixed users being able to add a profile image with no page name 2022-05-13 19:35:13 +02:00
Julian Prieber 38d6d64ecf Enabled optional use of custom HTML for ll page
Enabled users to use custom HTML formatting for their personal page descriptions.

Due to security reasons, this option is turned off by default. This setting can be enabled in the config.
2022-05-13 18:10:43 +02:00
Julian Prieber 7e74f2b7df Update config.js 2022-05-13 17:44:17 +02:00
Julian Prieber 75272814a6 Added 'lineheight' option to text editor 2022-05-13 17:39:23 +02:00
Julian Prieber ee37d4a540 Added 'justify text' option to text editor 2022-05-13 17:29:36 +02:00
Julian Prieber 771a03bcaa Made footer page texts not centered 2022-05-13 17:09:35 +02:00
Julian Prieber d5418256a9 Added dark/light mode override to ll and home page 2022-05-13 14:06:12 +02:00
Julian Prieber 1eb92e56b2 Added dark mode toggle for Admin/User Panel
A simple toggle switch that sets an override cookie with JavaScript.

The cookie is still read with PHP/blade.
2022-05-13 13:03:10 +02:00
Julian Prieber fe81015483 General optimization of home page
See: https://i.imgur.com/N6pNlou.png
2022-05-13 00:12:01 +02:00
Julian Prieber ba62dd0e77 Update littlelink.blade.php 2022-05-13 00:09:28 +02:00
Julian Prieber fa3de262cb General optimization of ll page
See: https://i.imgur.com/N6pNlou.png
2022-05-12 23:54:05 +02:00
Julian Prieber 833e57a5e6 Increased profile and logo image size 2022-05-12 22:55:34 +02:00
Julian Prieber c48bf69ec6 Made share button more mobile friendly 2022-05-12 22:03:29 +02:00
Julian Prieber 9d368ef9cb Switched to dark mode detection via CSS instead of JavaScript
Switched to dark mode detection via CSS instead of JavaScript on users LittleLink pages and the home page.

I decided to use this approach instead of the previous JavaScript version. This means that a manual switch to change between light and dark mode by user won't be added.
2022-05-12 20:17:48 +02:00
Scott Clark 62ecf52fca
Update littlelink.blade.php
display contents of $littlelink_name in contact card
2022-05-12 14:05:24 +01:00
Julian Prieber bdf1e7413c Updated 'no page URL' notice 2022-05-10 12:38:26 +02:00
Julian Prieber 7fe0da219c Update links.blade.php 2022-05-09 17:46:20 +02:00
Julian Prieber 5ee5505b0d Added noopener, noreferrer, nofollow to user generated links
Added noopener, noreferrer and nofollow to user generated links to prevent users abusing the link system for malicious purposes.

Also, this is the 400th commit  🎉
2022-05-07 17:38:49 +02:00
Julian Prieber 7166a5f81f Updated back button 2022-05-07 16:40:21 +02:00
Julian Prieber cdfa580d36 Fixed Config Editor not working
Fixed Config Editor not working see https://github.com/JulianPrieber/littlelink-custom/issues/51
2022-05-07 16:23:25 +02:00
Julian Prieber 5b63080f8c Added custom spaces and headings
Added custom spaces and headings users can add like buttons to their littlelink pages to divide button sections into groups.

Spaces can be changed via the number in the title, and one space equals one "<br>". The maximum spaces that can be added with one space 'button' is capped at 10.

The 'Space' button will be replaced with an empty space, so buttons could be visually separated into groups. Entering a number between 1-10 in the title section will change the empty space's distance.

The 'Heading' button will be replaced with a sub-heading, where the title defines the text on that heading.
2022-05-06 15:26:39 +02:00
Julian Prieber a65509bd58
Update register.blade.php
Added option to override registration, even if disabled with the setting in the database.

This is something that probably 99.999% of users will never need, but I really need a function like this for my personal instance.
If "REGISTER_OVERRIDE=true" is added to the .env config file, users will be able to register no matter what is set with the setting in the database. This is useful if two LittleLink Custom instances access the same database, but one should allow registration and the other should not.

If this causes any errors in the future, I will remove this.
2022-05-05 15:11:35 +02:00
Julian Prieber 8638072acb
Update littlelink.blade.php 2022-05-05 12:31:16 +02:00
Julian Prieber 53c5fb618b Update add-link.blade.php
Added 'see all links' button
2022-05-04 11:03:24 +02:00
Julian Prieber b7a5a0ab73 Update littlelink.blade.php
Enabled button editor edits to apply to custom website buttons.
2022-05-04 10:40:36 +02:00
Julian Prieber c7925f1f1a Update links.blade.php
Added 'Add link' button.
2022-05-04 10:33:59 +02:00
Julian Prieber 53fa0f98b5 Update links.blade.php
Removed 'beta' text
2022-05-04 10:14:04 +02:00
Julian Prieber cb75a24e92 Update button editor
Added functionality for custom website button. Made button editor optional to use.
2022-05-04 10:12:01 +02:00
Julian Prieber 845327a628 Updated button-editor 2022-05-04 00:40:41 +02:00
Julian Prieber 08da6fa960 Updated button editor
A bit of optimization. Everything kinda scales to mobile now. Everything still looks terrible tho.
2022-05-04 00:19:29 +02:00
Julian Prieber 4eec538834
Update sidebar.blade.php
Adds the ability to insert code snippets into the head and body element laid out by the sidebar with blade by including:

@push('stylesheets')
    <!-- your code -->
@endpush

@push('scripts')
    <!-- your code -->
@endpush
2022-05-03 23:27:37 +02:00
Julian Prieber 0cba21bee8
Update profile.blade.php
Allows admins to change their email regardless if email auth is enabled or not.
2022-05-02 21:49:10 +02:00
Julian Prieber 8555a8eeef
Update home.blade.php
Added option to override registration, even if disabled with the setting in the database.

This is something that probably 99.999% of users will never need, but I really need a function like this for my personal instance.
If "REGISTER_OVERRIDE=true" is added to the .env config file, users will be able to register no matter what is set with the setting in the database. This is useful if two LittleLink Custom instances access the same database, but one should allow registration and the other should not.

If this causes any errors in the future, I will remove this.
2022-05-02 21:41:02 +02:00
Julian Prieber 087868c4e1
Changed title to name on ll page
Changed title to name on littlelink page
2022-04-28 17:32:43 +02:00
Julian Prieber eb96bb823e
Fixed text width on ll page
Fixed text width on littlelink page.

This might be a temporary fix. This essentially limits the width of the description text.
2022-04-28 17:12:21 +02:00
Julian Prieber 62c9baba23 Added custom button editor
Added the long planned button editor. This solution does not look optimal, but works... mostly.

This solution is implemented with JavaScript and the current versions code is very unorganized mostly uncommented and the HTML is still mostly done with inline code. I hope I will fix this in future revisions.

To learn more about the new button editor, read:
https://littlelink-custom.com/blog/upcoming-features/
https://littlelink-custom.com/blog/progress-of-the-new-button-editor/
2022-04-27 20:55:19 +02:00
Julian Prieber 243e4b55c6
Update profile.blade.php 2022-04-27 13:16:17 +02:00
Julian Prieber 8f2c30d648 Update index.blade.php 2022-04-20 18:32:21 +02:00
Julian Prieber 43cca4b191 Added security check sidebar
Added a security check on the sidebar.blade.php that tests if critical config components are accessible externally by anyone.

This is a fairly crude method and not at all optimized. I might change this in future revisions. At least this feature is disabled for normal users, so it won't affect load for non admins. This is the same code from the new diagnostic tool added in the previous commit. I had to change the names of each variable, otherwise the diagnostic tool could not use the same variables. The smart thing to do here would probably be to simply use the variables only in the sidebar, since they are loaded anyway since the sidebar layout is included on the diagnostic tool, effectively loading the variables twice. I might change this later, but for now I will leave it as.

Read more about the diagnostic tool on the blog here: https://blog.littlelink-custom.com/new-security-check-tool/
2022-04-20 18:18:41 +02:00
Julian Prieber 89f8361edd Added security check tool
Added new security check tool. This tool is a new page that displays diagnostic information about your LittleLink Custom installation.

Previously, installing LittleLink Custom on NGINX or other platforms that do not support .htaccess functionality presented a significant security risk if not configured properly. This tool simply shows if critical system files can be accessed externally by anyone. In addition, information about writing access to important files or directories is displayed here.

Read more about this feature on the blog here: https://blog.littlelink-custom.com/new-security-check-tool/
2022-04-20 17:31:38 +02:00
Julian Prieber 021029d441
Updated Bootstrap Icons 2022-04-20 00:39:15 +02:00
Julian Prieber 70e02e43d7 Made buttons on home page display only
Changed buttons on the default home page to not be clickable anymore by changing the 'a' tags into divs.
2022-04-18 23:53:07 +02:00
Julian Prieber 550a59587a Added custom color for custom icon
This addition is mega janky. Essentially, if a color code (e.g. white; or #FFFFFF;) is entered before the custom icon, this will change the custom icon's color. Essentially, this just pastes the custom color database entry as a style element on the icon.

I will use this until I find a proper solution for this problem.

For custom icons:
See: https://blog.littlelink-custom.com/upcoming-features/
And: https://blog.littlelink-custom.com/progress-of-the-new-button-editor/
2022-04-13 23:47:27 +02:00
Julian Prieber 851752ccfa Update littlelink.blade.php
Switched to Font Awesome kit.

See: https://blog.littlelink-custom.com/upcoming-features/
And: https://blog.littlelink-custom.com/progress-of-the-new-button-editor/
2022-04-13 19:08:09 +02:00
Julian Prieber a57d206f3c Now displaying profile name as title
User's profile names are now used as the title and heading for their LittleLink pages. Previously the '@name' was used for this, so for example the page name x.com/@admin is now not tied to the @admin part anymore, so a space could be used in the name for example.

See an example of this here: https://i.imgur.com/iBS8Hsm.png
2022-04-13 13:05:01 +02:00
Julian Prieber b50d334557 Changed spelling 2022-04-12 00:12:00 +02:00
Julian Prieber f5725bb059 Added custom icons to LittleLink page
Enabled custom buttons on LittleLink pages to now use the upcoming custom icons from the new Button Editor. The Custom button now uses Font Awesome icon by default. 

I used the Font Awesome library provided and hosted by Cloud Flare. I can include the library locally if this is preferred, contact me on our discord if I should implement this.

See: https://blog.littlelink-custom.com/upcoming-features/
And: https://blog.littlelink-custom.com/progress-of-the-new-button-editor/
2022-04-11 13:56:36 +02:00
Julian Prieber a53087f7a6 Enabled custom CSS to be applied
Enabled custom CSS to be applied to buttons on the LittleLink page.
CSS that is entered in the database will be applied directly to buttons.
See: https://blog.littlelink-custom.com/upcoming-features/
2022-04-07 15:56:02 +02:00
Julian Prieber 877dd8373f Added option to only notify about important updates
Added option to only notify about major updates. This setting is now the default and can be changed in the config by changing the setting "NOTIFY_UPDATES" from "major" to "all".

This setting was achieves by turning the previous if statement into an if-else statement with the new option. For this, I utilized a function that gets the latest tag from the GitHub repository.

I wasn't able to implement the 'if URL exists' check, the URL would just not return an error negating the function. I will probably fix this in the future, but as it is now, if the GitHub API server can't be reached this might trow an error.

The major release is still the previous update version retreated from the GitHub repository. This means I will only update that version for major or otherwise important updates. 

I implemented this feature because I didn't want to spam new users with a new update notification every other day.
2022-04-04 17:46:32 +02:00
Julian Prieber 05c99947af Updated 'More information' message 2022-03-31 22:59:39 +02:00
Julian Prieber 518d82125e Change email option is now hidden if email auth is enabled
Added if statement that hides the option for users to change their email if email registration authentication is enabled (which it is by default).
2022-03-31 21:33:58 +02:00
Julian Prieber 56643ed068 Fixed bug 'profile changes not applying'
Fixed a bug where users were unable to change name, email or password unless every value was changed at once.
2022-03-31 21:31:00 +02:00
Julian Prieber 0aa99064eb Fixed fadein class for home message 2022-03-31 14:06:58 +02:00
Julian Prieber 10b902f108 Added share button to LittleLink pages
Added share button that is displayed on user's personal pages that if clicked either copies the profile URL or opens a share dialog window depending on the browser and operating system.

Read the blog post about this topic here: https://blog.littlelink-custom.com/share-button
2022-03-29 23:08:06 +02:00
Julian Prieber 805e71b886 Update footer.blade.php 2022-03-29 17:45:48 +02:00
Julian Prieber 8fdc1a7f74 Fixed spacing on custom links added by text editor
Fixed word spacing bug in texts added by the new page editor. This bug caused inserted links to have extended spacing between words.

This 'bug' was a previous feature added to display links further apart for easier readability. The feature didn't scale well with the newly added page editor which allowed users to add their own links to edited texts, causing the bug.

The extended spacing was achieved with the 'padding' CSS tag. I simply removed the tag from all an HTML tags and made it into its own class, 'spacing'. I added the class to every element on the site that previously depended on this tag.
2022-03-29 16:27:50 +02:00
Julian Prieber cf66be63cb Fixed 'Edit User' changes not applying
Fixed bug where if a user was edited on the Admin Panel under 'Admin>Users> Edit User' changes would not apply without every value being changed.

This bug originates from LittleLink Admin (the fork of which this fork is based on).

One part of this issue was that most fields were required to fill in. If only one would be left, empty, none would apply. The problem was if this requirement was removed, the password would always overwrite the current password, even when left empty.
This meant you could only edit users if you knew their password, otherwise their passwords would be changed, probably preventing that user from login in ever again.

After some experimenting, I implemented the easiest fix I could come up with. A simple if-else statement that checks if the password field is empty and if so only saves the other parameters without touching the password. If the password is changed, the changes will be applied normally.

Also fixed the profile image size for the default placeholder image.
2022-03-28 19:54:17 +02:00
Julian Prieber 6f0bf16587 Added phpinfo debugger
Added PHPinfo section to the config editor to display information about the current state of PHP.
This new section can be found on the Admin Panel under 'Admin>Config>PHP Info'.

For this, a new route and section in the admin controller have been added. The page is loaded as phpinfo.blade.php with the route .../panel/phpinfo if the user is authenticated as an admin.

I added the usual dark mode detection to the page, with an extra section that changes the background color according to the preferred theme setting. The page itself can be downloaded and saved as an HTML, for this  JavaScript is used.
2022-03-28 12:20:47 +02:00
Julian Prieber 89d54492fd Added option to set profile as homepage
The homepage can now be changed to a user's profile page with the option "HOME_URL" in the config (found on the Admin Panel under Admin>Config).

This commit is a bit janky, I wanted to change the homepage with a setting saved in the database, but I couldn't finish this in time, so this has to do for now.

An if statement in the web routes PHP checks if the new setting is present in the config and changes the homepage to the listed LittleLink Custom name. If the homage  is changed, the page previously set as the homepage where users can register and or login can now be found at .../home.
2022-03-24 14:44:33 +01:00
Julian Prieber 393e18a3c9 Added visual HTML editor
Added visual HTML editor for editing HTML on the footer and home pages. This editor is based on the open source CKEditor a Smart Visual Text Editor for HTML coded in JavaScript.

Read the Blog post about this topic for more info about this feature here: https://blog.littlelink-custom.com/visual-html-editor/
2022-03-23 13:57:20 +01:00
Julian Prieber b916ac66bc Edit Pages now supports custom HTML formatting
The page editor found on the Admin Panel at Admin>Pages where you can edit the footer pages now supports custom HTML formatting.
2022-03-23 10:38:47 +01:00
Julian Prieber b6efcde8a5 Added dark mode for credit footer
Lazy quick fix
2022-03-22 10:17:47 +01:00
Julian Prieber 18392ed409 Improved responsiveness 2022-03-21 23:29:42 +01:00
Julian Prieber 0aba49dec8 Improved responsiveness 2022-03-21 23:28:00 +01:00
Julian Prieber a290e78000 Added footer / credit option
Added a footer and a credit options. Both can be turned off in the config.
2022-03-21 23:11:49 +01:00
Julian Prieber 6f94f40636 Added no Page URL message
Added no Page URL message to the Admin and User panel
2022-03-21 16:46:35 +01:00
Julian Prieber aac19d17f4 Bugfixes
Fixed problems in .env and database seeder
2022-03-21 15:37:55 +01:00
Julian Prieber bf39efddf4
Update sidebar.blade.php 2022-03-21 09:13:10 +01:00
Julian Prieber e319301b51
Added hide event option
Added option to hide Events. Next to all event notifications, an "X" will now be displays, which hides the notification if clicked until a new event notification is shown. This works by setting a cookie with the ID of the event notification. Learn more about this on the Blog post here: https://blog.littlelink-custom.com/hide-event-option/
2022-03-20 23:43:27 +01:00
Julian Prieber 4babe1fe2e Made update notification optional / Added Event notification
Added optional event notification that can be enabled in the config (is disabled by default).

You can read more about this feature on the Blog here: https://blog.littlelink-custom.com/event-notifications/
2022-03-20 17:15:16 +01:00
Julian Prieber 6c81802799 Added 'no Page URL' notice
Added a notice if a user tries to view their page without having a Page URL set on the User Panel.
2022-03-19 18:34:43 +01:00
Julian Prieber 98bc1d0172 Changed update server
Changed the update server URL to the version.json hosted on GitHub.
2022-03-19 17:16:33 +01:00
Julian Prieber fa4f4f1441 Added email verification
Added email verification after user registration. After a user registered, an email is sent to the email used to sign up. The mail contains a verification link which is required to complete the registration process.

This feature can be turned off in the Admin Panel under: Admin>Config by changing the setting "Register_auth" from "verified" to "auth".

Read more about this on the Blog here: https://blog.littlelink-custom.com/optional-email-verification/
2022-03-19 16:48:21 +01:00
Julian Prieber 310a37c446 Fixed CSS class 2022-03-18 15:30:44 +01:00
Julian Prieber bcc5050c35 Added Custom Website button
Added new Custom Website button which visually looks similar to the previously added Website button with an except of the icon of the new button being the favicon of the chose link. The text on the button is set with the button title, just like the Custom button.

The favicon request is performed via the Google API. The icon displays correctly in most cases, with some exceptions. I might add a function later on that displays a generic icon if no icon was found.
2022-03-18 14:59:45 +01:00
Julian Prieber 35b487d48a
Fixed SQLSTATE Exception 2022-03-18 13:34:41 +01:00
Julian Prieber 7fb6068d49 Made link title optional
Made link title (previously required) optional when adding personal LittleLink links on the User/Admin Panel.
If the 'Title' field is left empty, the button name is now used instead of rejecting the addition.
2022-03-18 12:04:13 +01:00
Julian Prieber fe7fc9f714 Updated Domain 2022-03-17 21:28:26 +01:00
Julian Prieber 09bd0aed96 Added new buttons
Added new 'Buy me a Coffee' and 'generic Website' buttons
2022-03-17 21:19:30 +01:00
Julian Prieber 1d2df13b0f Added footer to Admin Panel
I re-enabled the footer disabled by Latuminggi's LittleLink Admin fork. This footer adds a Home button which brings you to the landing page, in addition to Terms, Privacy and Contact buttons.

I also edited the policy pages for the buttons named above to include the new logo as well as the dark mode detection.
2022-03-17 17:33:37 +01:00
Julian Prieber fef2e09aa9 Added built in Config Editor
LittleLink Custom now includes an .env config editor. This editor can be accessed via the Admin Panel under Admin>Config.
This editor allows admins to edit, backup, download and upload the .env configuration file. All in all, the new feature, allows users to more easily edit the configuration file, contributing to my goal of making LittleLink Custom easier to use.

Read more about this topic on the Blog https://blog.littlelink-custom.com/built-in-config-editor
2022-03-16 14:16:03 +01:00
Julian Prieber 0aaa86224e Built in SMTP server
LittleLink Custom now includes an open and free to use SMTP server. Mails from this service may only be used for password recovery and registration purposes involving users personal LittleLink Custom or LittleLink Admin pages.
Users of this service must abide by our Terms and Conditions found at https://llc-mail.tru.io/.

Motivations for this are explained on my blog post about this topic, which you can read here: https://blog.littlelink-custom.com/littlelink-custom-mail-server/
2022-03-16 13:03:43 +01:00
JulianPrieber 907a3116bb Fixed dark mode not applying on first visit
This 'bug' was caused due to the way the dark mode was applied. The dark mode detection detects the preferred theme style from the client and then saves the preferred type with a cookie, all with JavaScript. Then a simple PHP if-else statement loads either the dark or light mode CSS theme, depending on the cookie.

The problem here was that the cookie would only be detected if the page was refreshed, so once the cookie was set, the dark mode was applied every time without a problem. But the first time a user visited the site and the preferred theme was set to dark mode, the page would still display the white version until the page was refreshed.

Now, I could have changed how the page applies the dark mode, however I decided against that and went with this commit instead.

Now I'm not really experienced with JavaScript at all, so this definitely could have been solved in a more elegant way, but this is what I did:

I added a bit to the JavaScript that sets and reads the cookie. When the page finished loading, a simple if statement is run that requires the following conditions: 
The URL contains a '#' and the color scheme equals 'dark' and the cookie isn't set yet. 
After these conditions are met, '#dark' is added to the URL and the page will be refreshed.

This refresh is only performed without the cookie, thus only refreshing the page on the first visit if the dark mode would be applied.

The '#dark' is only added to the URL to fail the first requirement of the if statement, preventing the page from being reloaded in an infinite loop. Otherwise, the  '#dark' part of the URL fulfills no purpose and only the '#' part is required, so it doesn't even matter what comes after the hash. I just chose this for clarification.

If the dark mode cookie is blocked by the user, the page will be set to light mode and refreshed every time they visit but the '#dark' will still be added to the URL, preventing the infinite refresh-loop.
2022-03-03 10:49:10 +01:00
Julian Prieber 9a3348ffd2
Fixed register/login... dark mode
Removed check for browser type, now applies dark mode regardless of browser type if dark mode cookie is detected
2022-02-27 19:43:58 +01:00
JulianPrieber ec88a74889 Fixed bug/simplified setup
Fixed bug where users littlelink pages (domain.com/@username) would display a 404 error. This was caused due to the .env config file not containing an App URL. This issue could be solved by simply adding a URL to the config, this is now not necessary anymore, making the setup process easier and less confusing. 

I changed every instance of "{{ config('app.url') }}" to  "{{ url(' ') }}". This effectively automatically uses the correct URL for LittleLink links, even if LittleLink Custom is set up in a subdirectory.

In my testing, I couldn't find any problems this might have caused, so this appears to do the job just as well as setting the URL in the config. If I find any issues with this, I will revert this change.
2022-02-27 19:33:19 +01:00
Julian Prieber bbc0e8e86e
Fixed bug ErrorException
Fixed bug where a timeout in the update server response would throw an Error Exception
2022-02-23 20:53:50 +01:00
JulianPrieber 4e78b1a58f Added option to disable registration
Added option to disable registration.
2022-02-23 20:19:15 +01:00
JulianPrieber e6faf86386
Added automatic update detection
This displays an update notice if a new version of LittleLink Custom has been released.


This one is definitely a messy one. Everything I added is commented, but I'm going to try explaining it here one more time. 

General outcome:
 • This feature checks the local version against the newest version stored on a separate server.

Error prevention: 
 • I used 'file_get_contents' to get the version number from a JSON file. If  'file_get_contents' cant find the file, PHP will throw an Error Exception.
 • To prevent this, I put the update section in an if-statement that only applies if the following conditions are met.

Check if files exist:
 • To test whether the file on the server exists (remember, if the server can't be reached, you will get an Error Exception) I used a function that checks if the URL to the file on the server successfully returns a '200 OK' response (see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/200).
 • If this condition is met, it sets the variable '$ServerExists' to true, if not to false.

 • Now, the previous mentioned if-statement simply checks if the local file exists and the '$ServerExists' variable equals 'true' to proceed.

Get version number:
 • If all previous conditions are met, two variables get defined via 'file_get_contents' '$Vgit' and '$Vlocal'.
 • Both the file on the server and the local file simply contain the version number.
 • The variable '$Vgit' is the newest version number retrieved from the server.
 • The variable '$Vlocal' is the local  version number.

Display update notice:
 • To finally display the  version number (added with HTML) one last check via an if-statement is performed. This simply checks if the current user is an admin AND if the version retrieved from the server is higher than the local one.
 • If both conditions are met, the notice is displayed.



In addition, I should mention that I put the existing 'Watch Page' link as well as the update notice in a div with the class 'row' to display both links next to another instead of them being stacked.
2022-02-23 13:38:15 +01:00
JulianPrieber 2968da4a80
Added fadein animation to text and avatar
Added 'fadein' class to avatar image, littlelink_name and littlelink_description text. This class adds the fade-in animation from 'animate.css' found in /littlelink/css/.
2022-02-22 12:48:43 +01:00
JulianPrieber 4f49204b57
Added fadein animation to text
Added 'fadein' class to app.name and home_message text. This class adds the fade-in animation from 'animate.css' found in /littlelink/css/.
2022-02-22 12:43:18 +01:00
JulianPrieber c1604ff9d5 Updated Name and description
Updated the name and description on the website.

Updated: App name, admin message in home (seeder), footer, and footer studio-sidebar.
2022-02-22 10:31:23 +01:00
JulianPrieber c1110d4ced
Fixed dark mode for login/register...
This fixed the issue of dark mode not displaying on the register, login, forgot password and a few other pages.

This one took me a while to fix, and I still don't really know what is going on here.
The aforementioned pages already implemented a dark mode, but it didn't seem to work for me. After some testing, I discovered that the dark mode preset doesn't load on chromium based browsers. 

I have absolutely no idea why that is, if someone could help me with this that would be amazing. I might make an issue out of this later on.

As I still wanted to fix this, I finally achieved my goal by doing the caveman approach:

I first added the usual dark mode detection. The same used on the home and little link pages (see previous commits if you're interested).
Then I wrote and if statement that loads the newly added app-dark.css (see previous commit) that changes text and background color on the pages in question, if the browser type is chromium and dark mode is selected in the browser settings.

"@if(strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome' !== false) and $color_scheme == 'dark')"

This doesn't look optimal, and I would rather just have the same dark mode as on Firefox, but this is the best I can currently do with my available time.
2022-02-21 23:34:07 +01:00
JulianPrieber 51c16a2d00
Fixed bug
Fixed social preview image displaying on littlelink page
2022-02-21 20:33:55 +01:00
JulianPrieber 50f838f555
Removed rounded-circle class
Removed 'rounded-circle' class, as this cuts off corners of some custom logos.
2022-02-21 20:22:21 +01:00
JulianPrieber edc1204c8b
Enabled dark mode for studio pages
Enabled dark mode for all studio pages

See last commit (e6729f5485)
2022-02-20 22:56:09 +01:00
JulianPrieber b0fe2395d4 Chnaged rounded logo on landing page
Removed the rounded-avatar class of the custom logo on the landing page.
2022-02-20 18:24:27 +01:00
JulianPrieber ac741d42e6
custom logo hotfix
Just a quick fix, the logo wasn't displaying correctly I probably should do this with a separate CSS file for all images, but I just did this quick and dirty with a style attribute
2022-02-20 18:15:54 +01:00
JulianPrieber aa759a8d3b
custom logo hotfix
Just a quick fix, the logo wasn't displaying correctly I probably should do this with a separate CSS file for all images, but I just did this quick and dirty with a style attribute
2022-02-20 18:14:33 +01:00
JulianPrieber 70e01db070
Fixed login/register logo
Fixed the if-else statement responsible for loading the correct login/register image. The SVG wouldn't work, so I just used the new avatar@2x.png, so I guess that one is staying for now. 

If it works it works, I could load the vector image by changing the logo to the SVG in:
confirm-password.blade.php, forgot-password.blade.php, login.blade.php, register.blade.php, reset-password.blade.php and verify-email.blade.php.

This works good enough, so imma leave it how it is now.
2022-02-20 16:57:47 +01:00
JulianPrieber c8696ca5d5 Fixed elseif
Fixed new elseif statements by changing:
"if
if"
to
"if
elseif"
2022-02-20 15:42:45 +01:00
JulianPrieber 95769b43bd Merge branch 'main' of https://github.com/JulianPrieber/littlelink-custom 2022-02-20 15:24:30 +01:00
JulianPrieber c22ca8f27b Revert "Revert "Merge branch 'main' of https://github.com/JulianPrieber/littlelink-custom""
This reverts commit f5ffdc18b1.
2022-02-20 15:24:27 +01:00
JulianPrieber 324db451e9
Fixed menu icon
Fixed issue of the menu hamburger icon not displaying
2022-02-20 15:20:57 +01:00
JulianPrieber 0d55159b07
fixed logo.svg 2022-02-20 14:45:34 +01:00
JulianPrieber 96604bb7c9
fixed logo.svg 2022-02-20 14:19:38 +01:00
JulianPrieber f5ffdc18b1 Revert "Merge branch 'main' of https://github.com/JulianPrieber/littlelink-custom"
This reverts commit 30ec6bea98, reversing
changes made to 69fc08668c.
2022-02-20 14:10:40 +01:00
JulianPrieber 30ec6bea98 Merge branch 'main' of https://github.com/JulianPrieber/littlelink-custom 2022-02-20 14:09:11 +01:00
JulianPrieber 69fc08668c fixed logo.svg 2022-02-20 14:09:08 +01:00
JulianPrieber 696d2f0d82
Fixed spelling
Changed button to buttons
2022-02-20 13:56:19 +01:00
JulianPrieber 8243d7c977 fixed logo.svg 2022-02-20 13:20:21 +01:00
JulianPrieber 96cfd5b4c1 Changed logo
As part of the new logo (https://github.com/JulianPrieber/littlelink-custom/milestone/1) I'm now using the new 'logo.svg' vector logo.

For this, I added an if-else statement in most cases, which first check for a custom logo uploaded by the admin or the avatar of an individual user. If the image doesn't exist, the default logo (logo.svg) is used.
2022-02-20 13:12:25 +01:00
JulianPrieber 5db777053e
Added dark mode detection
Added automatic dark mode detection to littlelink.blade.php via a cookie with js.cookie.min.js (see previous commit).

Detecting the dark mode setting is done with JavaScript. The script detects the preferred dark mode setting in the client's browser and saves it with a cookie. If the script detects a change in this setting, it corrects the cookie. 

Loading the appropriate skeleton.css is done via PHP with an if-else statement. If the cookie (saved by the previous script) color scheme equals 'dark' it will load skeleton-dark.css (found in /littlelink/css). 

If dark mode is not detected OR nothing is detected/cookie is getting blocked, the statement defaults to skeleton-light.css (also found in /littlelink/css).

You could change what the if-else statement defaults to (i.e. which color scheme is loaded if the cookie fails to detect) by switching 'skeleton-dark.css' and 'skeleton-light.css' around (see comment in if statement).

Everything added is commented and marked with begin/end.


Credit to 'user1575941' on Stack Overflow who's commented code REALLY helped getting behind all this.
2022-02-18 10:10:13 +01:00
JulianPrieber a5c81158cf
Added dark mode detection
Added automatic dark mode detection to home.blade.php via a cookie with js.cookie.min.js (see previous commit).

Detecting the dark mode setting is done with JavaScript. The script detects the preferred dark mode setting in the client's browser and saves it with a cookie. If the script detects a change in this setting, it corrects the cookie. 

Loading the appropriate skeleton.css is done via PHP with an if-else statement. If the cookie (saved by the previous script) color scheme equals 'dark' it will load skeleton-dark.css (found in /littlelink/css). 

If dark mode is not detected OR nothing is detected/cookie is getting blocked, the statement defaults to skeleton-light.css (also found in /littlelink/css).

You could change what the if-else statement defaults to (i.e. which color scheme is loaded if the cookie fails to detect) by switching 'skeleton-dark.css' and 'skeleton-light.css' around (see comment in if statement).

Everything added is commented and marked with begin/end.


Credit to 'user1575941' on Stack Overflow who's commented code REALLY helped getting behind all this.
2022-02-18 10:08:24 +01:00
JulianPrieber b67651df04 Revert "Added dark mode detection"
This reverts commit cc71e0d6ca.
2022-02-18 10:06:14 +01:00
JulianPrieber cc71e0d6ca
Added dark mode detection
Added automatic dark mode detection to home.blade.php via a cookie with js.cookie.min.js (see previous commit).

Detecting the dark mode setting is done with JavaScript. The script detects the preferred dark mode setting in the client's browser and saves it with a cookie. If the script detects a change in this setting, it corrects the cookie. 

Loading the appropriate skeleton.css is done via PHP with an if-else statement. If the cookie (saved by the previous script) color scheme equals 'dark' it will load skeleton-dark.css (found in /littlelink/css). 

If dark mode is not detected OR nothing is detected/cookie is getting blocked, the statement defaults to skeleton-light.css (also found in /littlelink/css).

You could change what the if-else statement defaults to (i.e. which color scheme is loaded if the cookie fails to detect) by switching 'skeleton-dark.css' 'skeleton-light.css around' (see comment in if statement).

Everything added is commented and marked with begin/end.


Credit to 'user1575941' on Stack Overflow who's commented code REALLY helped getting behind all this.
2022-02-18 10:02:43 +01:00
JulianPrieber 11d05a558b
Added button entrance animation
Live demo: https://julianprieber.github.io/littlelink-admin-demo/button-entrance.html

Added an entrance animation for buttons on home.blade.php. This animation was made by the Animate.css project (https://github.com/animate-css/animate.css).

Each button entrance animation lasts 100ms. Every button after the first adds 100ms to the value of the previous button i.e. button 1 loads after 100ms, button 2 loads after 200ms,  button 3 after 300ms and so on...

Timings for the buttons can be changed in /littlelink/css/animate.css

I put every button in a separate <div> Tag, so the animation wouldn't in interfere with the existing hover animation.
2022-02-17 22:15:51 +01:00
JulianPrieber 44f57ce954
Added button entrance animation
Live demo: https://julianprieber.github.io/littlelink-admin-demo/button-entrance.html

Added an entrance animation for buttons on littlelink.blade.php. This animation was made by the Animate.css project (https://github.com/animate-css/animate.css).

Each button entrance animation lasts 100ms. Every button after the first adds 100ms to the value of the previous button i.e. button 1 loads after 100ms, button 2 loads after 200ms,  button 3 after 300ms and so on...

Timings for the buttons can be changed in /littlelink/css/animate.css

I put every button in a separate <div> Tag, so the animation wouldn't in interfere with the existing hover animation.

Likewise, I removed all <br> Tags.
2022-02-17 22:09:58 +01:00
JulianPrieber 514e779025
Change public path
This is one of multiple public path edits. For simplified usability, I am integrating the public Laravel directory into the root directory. 

For this, I am changing every instance of 'public_path' to 'base_path' and will use this format in future changes as well.
2022-02-14 12:56:50 +01:00
JulianPrieber c097c0ae09
Change public path
This is one of multiple public path edits. For simplified usability, I am integrating the public Laravel directory into the root directory. 

For this, I am changing every instance of 'public_path' to 'base_path' and will use this format in future changes as well.
2022-02-14 12:56:03 +01:00
JulianPrieber 14c324734f
Change public path
This is one of multiple public path edits. For simplified usability, I am integrating the public Laravel directory into the root directory. 

For this, I am changing every instance of 'public_path' to 'base_path' and will use this format in future changes as well.
2022-02-14 12:54:51 +01:00
JulianPrieber 1c7f71e56f
Change public path
This is one of multiple public path edits. For simplified usability, I am integrating the public Laravel directory into the root directory. 

For this, I am changing every instance of 'public_path' to 'base_path' and will use this format in future changes as well.
2022-02-14 12:53:07 +01:00
JulianPrieber c5657f778c
Added button animation home
Added hover button animation to home.blade.php.

  -  Included hover-min.css for animation
  -  Added class 'button hvr-grow' to all buttons
  -  Added class 'hvr-icon-wobble-vertical' to all buttons (for icon animation)
  -  Added class 'hvr-icon' to all icons (to indicate icon to hover-min.css)

Read more on how to use and change animations here: https://github.com/IanLunn/Hover/blob/master/README.md
Try a demo of the added animations here: https://julianprieber.github.io/littlelink-admin-demo/
2022-02-12 19:25:37 +01:00
JulianPrieber a58f412cc5
Added button animation littlelink
Added hover button animation to littlelink.blade.php.

  -  Included hover-min.css for animation
  -  Added class 'button hvr-grow' to all buttons
  -  Added class 'hvr-icon-wobble-vertical' to all buttons (for icon animation)
  -  Added class 'hvr-icon' to all icons (to indicate icon to hover-min.css)

Read more on how to use and change animations here: https://github.com/IanLunn/Hover/blob/master/README.md
Try a demo of the added animations here: https://julianprieber.github.io/littlelink-admin-demo/
2022-02-12 19:24:01 +01:00
JulianPrieber 5e2a3fbbe8 Revert "Added button animation littlelink"
This reverts commit 84bfe583a6.
2022-02-12 19:21:04 +01:00
JulianPrieber 84bfe583a6
Added button animation littlelink
Added button animation to littlelink.blade.php.

  -  Included hover-min.css for animation
  -  Added class 'button hvr-grow' to all buttons
  -  Added class 'hvr-icon-wobble-vertical' to all buttons (for icon animation)
  -  Added class 'hvr-icon' to all icons (to indicate icon to hover-min.css)

Read more on how to use and change animations here: https://github.com/IanLunn/Hover/blob/master/README.md
Try a demo of the added animations here: https://julianprieber.github.io/littlelink-admin-demo/
2022-02-12 19:17:00 +01:00
JulianPrieber 0750e48830
Added support for social media preview
This shows a preview for Name, Bio and avatar image of users profiles if shared on social sites like Facebook,  Twitter, Facebook Messenger, WhatsApp, Discord, Pinterest and many more.
2022-02-12 14:59:07 +01:00
JulianPrieber 5364591c12
Added rounded avatar
Added class 'rounded-avatar' to avatar images
2022-02-11 22:01:03 +01:00
aprillio a28b285334 make links click number and order right aligned 2021-07-06 17:50:38 +07:00
aprillio e7ad5fcb42 string limit link and title in studio links 2021-07-06 17:20:58 +07:00
aprillio 4c3163674f update auth header logo link and page margin top-bottom 2021-07-06 16:42:39 +07:00
aprillio c95db56a40 update studio edit profile blade 2021-07-06 15:53:28 +07:00
aprillio 3c2f555df5 update studio edit page blade 2021-07-06 15:53:14 +07:00
aprillio c5bff25413 update studio links list blade 2021-07-06 15:52:40 +07:00
aprillio 9a3b44d4a9 update studio index blade 2021-07-06 15:52:17 +07:00
aprillio 8889acbf3a update studio edit link blade 2021-07-06 15:52:07 +07:00
aprillio d9a27466e9 update studio add link blade 2021-07-06 15:51:16 +07:00