├── .gitignore ├── .prettierrc ├── LICENSE.md ├── README.md ├── screenshots ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png ├── 7.png ├── 8.png └── 9.png └── sourcebans-web-theme-fluent ├── box_admin_admins_search.tpl ├── box_admin_bans_search.tpl ├── box_admin_comms_search.tpl ├── box_admin_log_search.tpl ├── core ├── admin_tabs.tpl ├── footer.tpl ├── header.tpl ├── navbar.tpl ├── temp.html └── title.tpl ├── images ├── admin │ ├── error.png │ ├── help.png │ └── warning.png ├── favicon.ico ├── info.png └── warning.png ├── page_admin.tpl ├── page_admin_admins_add.tpl ├── page_admin_admins_list.tpl ├── page_admin_bans_add.tpl ├── page_admin_bans_email.tpl ├── page_admin_bans_groups.tpl ├── page_admin_bans_import.tpl ├── page_admin_bans_protests.tpl ├── page_admin_bans_protests_archiv.tpl ├── page_admin_bans_submissions.tpl ├── page_admin_bans_submissions_archiv.tpl ├── page_admin_comms_add.tpl ├── page_admin_edit_admins_details.tpl ├── page_admin_edit_admins_group.tpl ├── page_admin_edit_admins_servers.tpl ├── page_admin_edit_ban.tpl ├── page_admin_edit_comms.tpl ├── page_admin_edit_mod.tpl ├── page_admin_groups_add.tpl ├── page_admin_groups_list.tpl ├── page_admin_mods_add.tpl ├── page_admin_mods_list.tpl ├── page_admin_overrides.tpl ├── page_admin_servers_add.tpl ├── page_admin_servers_adminlist.tpl ├── page_admin_servers_list.tpl ├── page_admin_servers_rcon.tpl ├── page_admin_settings_features.tpl ├── page_admin_settings_logs.tpl ├── page_admin_settings_settings.tpl ├── page_admin_settings_themes.tpl ├── page_bans.tpl ├── page_blockit.tpl ├── page_comms.tpl ├── page_dashboard.tpl ├── page_kickit.tpl ├── page_login.tpl ├── page_lostpassword.tpl ├── page_protestban.tpl ├── page_servers.tpl ├── page_submitban.tpl ├── page_uploadfile.tpl ├── page_youraccount.tpl ├── screenshot.jpg ├── scripts ├── collapse.js ├── initial.js ├── jscolor.min.js ├── nav.js ├── sourcebans.js ├── tab.js └── theme.js ├── style ├── global.css ├── global.css.map ├── global.scss └── scss │ ├── __admin.scss │ ├── __dark.scss │ ├── __fix.scss │ ├── __footer.scss │ ├── __header.scss │ ├── __layout.scss │ ├── __nav.scss │ ├── __old.scss │ └── framework │ ├── _animations.scss │ ├── _buttons.scss │ ├── _error.scss │ ├── _fonts.scss │ ├── _inputs.scss │ ├── _messages.scss │ ├── _popup.scss │ └── _tables.scss ├── theme.conf.php └── updater.tpl /.gitignore: -------------------------------------------------------------------------------- 1 | /default -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "tabWidth": 2, 4 | "arrowParens": "avoid", 5 | "printWidth": 100, 6 | "trailingComma": "none", 7 | "useTabs": false 8 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Header Github](https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/master/sourcebans-web-theme-fluent/screenshot.jpg) 2 | 3 | # (SourceBans++) Theme Fluent for SourceBans++ 4 | Fluent Design Theme Edition is a combination of Fluent Design styles Microsoft, iOS Design, Android Design and Google Design. We have also introduced many interesting features that are unique in standard themes. 5 | 6 | ## Requirements 🏷️ 7 | - [SourceBans++ 1.7.+](https://github.com/sbpp/sourcebans-pp/); 8 | - PHP 7.2+; 9 | 10 | ## Install 🧰 11 | 1. Download all files from repository or clone: 12 | ``` 13 | git clone https://github.com/aXenDeveloper/sourcebans-web-theme-fluent 14 | ``` 15 | 2. Move **sourcebans-web-theme-fluent** folder to Your Sourcebans -> **themes**; 16 | 3. Go to (Website): AdminCP -> Web Panel -> **Themes**; 17 | 4. Select theme **SourceBans++ Fluent Design Theme Edition**; 18 | 19 | ## Update 🛠️ 20 | Reupload all files from repository. 21 | 22 | ## Screenshots 📷 23 | ![1](https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/master/screenshots/1.png) 24 | ![2](https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/master/screenshots/2.png) 25 | ![3](https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/master/screenshots/3.png) 26 | ![4](https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/master/screenshots/4.png) 27 | ![5](https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/master/screenshots/5.png) 28 | ![6](https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/master/screenshots/6.png) 29 | ![7](https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/master/screenshots/7.png) 30 | ![8](https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/master/screenshots/8.png) 31 | ![9](https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/master/screenshots/9.png) 32 | -------------------------------------------------------------------------------- /screenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/5617d7c16a1d0d7dea2e40518a058d5a538d08c7/screenshots/1.png -------------------------------------------------------------------------------- /screenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/5617d7c16a1d0d7dea2e40518a058d5a538d08c7/screenshots/2.png -------------------------------------------------------------------------------- /screenshots/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/5617d7c16a1d0d7dea2e40518a058d5a538d08c7/screenshots/3.png -------------------------------------------------------------------------------- /screenshots/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/5617d7c16a1d0d7dea2e40518a058d5a538d08c7/screenshots/4.png -------------------------------------------------------------------------------- /screenshots/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/5617d7c16a1d0d7dea2e40518a058d5a538d08c7/screenshots/5.png -------------------------------------------------------------------------------- /screenshots/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/5617d7c16a1d0d7dea2e40518a058d5a538d08c7/screenshots/6.png -------------------------------------------------------------------------------- /screenshots/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/5617d7c16a1d0d7dea2e40518a058d5a538d08c7/screenshots/7.png -------------------------------------------------------------------------------- /screenshots/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/5617d7c16a1d0d7dea2e40518a058d5a538d08c7/screenshots/8.png -------------------------------------------------------------------------------- /screenshots/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/5617d7c16a1d0d7dea2e40518a058d5a538d08c7/screenshots/9.png -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/box_admin_admins_search.tpl: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 | 6 | 7 | 10 | 11 | 12 | 156 | 157 | 158 |
8 | Advanced Search (Click) 9 |
13 |
14 |
15 |
16 | 17 | 18 | 21 | 22 | 24 |
25 | 26 |
27 | 28 | 29 | 32 | 33 |
34 | 36 | 37 | 41 |
42 |
43 | 44 | {if $can_editadmin} 45 |
46 | 47 | 48 | 49 | 52 | 53 | 55 |
56 | {/if} 57 | 58 |
59 | 60 | 61 | 64 | 65 | 70 |
71 | 72 |
73 | 74 | 75 | 78 | 79 | 85 |
86 | 87 |
88 | 89 | 90 | 93 | 94 | 99 |
100 | 101 |
102 | 103 | 104 | 107 | 108 | 115 |
116 | 117 |
118 | 119 | 120 | 123 | 124 | 131 |
132 | 133 |
134 | 135 | 136 | 137 | 140 | 141 | 142 | 148 |
149 | 150 |
151 | {sb_button text="Search" onclick="search_admins();" class="ok" id="button button-primary flex:11" submit=false} 152 |
153 |
154 |
155 |
159 |
160 |
161 |
162 | 163 | {$server_script} 164 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/box_admin_log_search.tpl: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 | 6 | 7 | 8 | 9 | 10 | 59 | 60 |
Advanced Search (Click)
11 |
12 | 13 | 14 | 15 | 16 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 41 | 42 | 43 | 44 | 45 | 52 | 53 | 54 | 55 | 56 |
Admin 17 | 22 |
Message
Date 33 | . 34 | . 35 | 36 |   : 37 | 38 | -  : 39 | 40 |
Type 46 | 51 |
{sb_button text="Search" onclick="search_log();" class="ok" id="searchbtn" submit=false}
57 |
58 |
61 |
62 |
63 |
64 |
65 | 66 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/core/admin_tabs.tpl: -------------------------------------------------------------------------------- 1 |
2 |
3 | 6 | 7 |
8 | {foreach from=$tabs item=tab} 9 | 10 | {/foreach} 11 | Back 12 |
13 | 14 | 15 |
-------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/core/footer.tpl: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 16 | 17 | 18 | 19 | 20 | 21 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/core/header.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 11 | 12 | 13 | 14 | 15 | {$title} 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | {$xajax} 26 | 27 | 28 | 29 |
30 |
31 | 34 |
35 |
-------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/core/navbar.tpl: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
    5 |
  • 6 | 7 |
  • 8 |
  • 9 | 10 |
  • 11 | 14 |
15 | 16 | 31 | 32 | 35 |
36 |
37 | 38 | 67 | 68 | 81 |
-------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/core/temp.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/core/title.tpl: -------------------------------------------------------------------------------- 1 | 18 | 19 | 20 | 23 | 24 | 29 | 30 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/images/admin/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/5617d7c16a1d0d7dea2e40518a058d5a538d08c7/sourcebans-web-theme-fluent/images/admin/error.png -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/images/admin/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/5617d7c16a1d0d7dea2e40518a058d5a538d08c7/sourcebans-web-theme-fluent/images/admin/help.png -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/images/admin/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/5617d7c16a1d0d7dea2e40518a058d5a538d08c7/sourcebans-web-theme-fluent/images/admin/warning.png -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/5617d7c16a1d0d7dea2e40518a058d5a538d08c7/sourcebans-web-theme-fluent/images/favicon.ico -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/images/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/5617d7c16a1d0d7dea2e40518a058d5a538d08c7/sourcebans-web-theme-fluent/images/info.png -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/images/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/5617d7c16a1d0d7dea2e40518a058d5a538d08c7/sourcebans-web-theme-fluent/images/warning.png -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin.tpl: -------------------------------------------------------------------------------- 1 |
2 | 60 |
61 | 62 |
63 |
64 |
65 |

Version Information

66 |
67 |
68 |
    69 |
  • Latest release: Please Wait...
  • 70 | {if $dev} 71 |
  • Latest Git: Please Wait...
  • 72 | {/if} 73 |
  • Please Wait...
  • 74 |
75 |
76 |
77 | 78 |
79 |
80 |

Admin Information

81 |
82 |
83 |
    84 |
  • Total admins: {$total_admins}
  • 85 |
86 |
87 |
88 | 89 |
90 |
91 |

Ban Information

92 |
93 |
94 |
    95 |
  • Total bans: {$total_bans}
  • 96 |
  • Connections blocked: {$total_blocks}
  • 97 |
  • Total demo size: {$demosize}
  • 98 |
99 |
100 |
101 | 102 |
103 |
104 |

Server Information

105 |
106 |
107 |
    108 |
  • Total servers: {$total_servers}
  • 109 |
110 |
111 |
112 | 113 |
114 |
115 |

Protest Information

116 |
117 |
118 |
    119 |
  • Pending Protests: {$total_protests}
  • 120 |
  • Archived Protests: {$archived_protests}
  • 121 |
122 |
123 |
124 | 125 |
126 |
127 |

Submission Information

128 |
129 |
130 |
    131 |
  • Pending Submissions: {$total_submissions}
  • 132 |
  • Archived Submissions: {$archived_submissions}
  • 133 |
134 |
135 |
136 | 137 | 140 |
-------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_admins_add.tpl: -------------------------------------------------------------------------------- 1 |
2 | {if NOT $permission_addadmin} 3 |
4 | 5 |
Oops, there's a problem (╯°□°)╯︵ ┻━┻
6 | 7 |
8 | Access Denied! 9 |
10 | 11 |
12 | Error code: 403 Forbidden 13 |
14 |
15 | {else} 16 |
17 |

Add new admin

18 |
19 | 20 |
21 | 26 | 27 |
28 |
29 | For more information or help regarding a certain subject move your mouse over the 30 | question mark. 31 |
32 | 33 |
34 |
35 | 38 | 39 | 40 |
41 | 42 |
43 | 46 | 47 | 48 |
49 | 50 |
51 | 54 | 55 | 56 | 57 |
58 | 59 |
60 | 63 | 64 | 65 | 66 |
67 | 70 | 71 | 74 |
75 | 76 | 78 | 79 | {literal} 80 | 91 | {/literal} 92 |
93 | 94 |
95 | 98 | 99 | 100 | 102 |
103 | 104 |
105 | 108 | 109 | 111 | 112 | 114 |
115 | If this box is checked, you will need to specify this password in the game server before you 116 | can use your admin rights. 117 | SourceMod Password Info 119 |
120 | 121 | 123 |
124 | 125 |
126 |

Group Server Access

127 | 128 |
    129 | {foreach from="$group_list" item="group"} 130 |
  • 131 | 132 | 135 |
  • 136 | {/foreach} 137 |
138 | 139 |

Server Access

140 | 141 |
    142 | {foreach from="$server_list" item="server"} 143 |
  • 144 | 146 | 149 |
  • 150 | {/foreach} 151 |
152 |
153 | 154 |
155 | 158 | 159 | 170 | 171 |
172 | 173 |
174 | 177 | 178 | 189 | 190 |
191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 |
200 | 201 |
202 | {sb_button text="Add Admin" onclick="ProcessAddAdmin();" class="button button-success" id="aadmin" submit=false} 203 | {sb_button text="Back" onclick="history.go(-1)" class="button button-light" id="aback"} 204 |
205 |
206 | {$server_script} 207 |
208 |
209 | {/if} 210 |
-------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_admins_list.tpl: -------------------------------------------------------------------------------- 1 |
2 | {if not $permission_listadmin} 3 | Access Denied 4 | {else} 5 |
6 |

Admins - {$admin_count}

7 |
8 | 9 |
10 | Click on an admin to see more detailed information and actions to perform on them. 11 | 12 | {php} require (TEMPLATES_PATH . "/admin.admins.search.php");{/php} 13 | 14 |
15 | {$admin_nav} 16 |
17 | 18 |
19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | {foreach from="$admins" item="admin"} 32 | 33 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 106 | 107 | {/foreach} 108 | 109 |
NameServer Admin GroupWeb Admin GroupImmunity LevelLast Visited
{$admin.user} ({$admin.bancount} bans | {$admin.nodemocount} w.d.){$admin.server_group}{$admin.web_group}{$admin.immunity}{$admin.lastvisit}
44 |
45 |
46 | 77 | 78 |
79 |

Server Admin Permissions

80 |
    81 | {if $admin.server_flag_string} 82 | {foreach from=$admin.server_flag_string item=permission} 83 |
  • {$permission}
  • 84 | {/foreach} 85 | {else} 86 |
  • None
  • 87 | {/if} 88 |
89 |
90 | 91 |
92 |

Web Admin Permissions

93 |
    94 | {if $admin.web_flag_string} 95 | {foreach from=$admin.web_flag_string item=permission} 96 |
  • {$permission}
  • 97 | {/foreach} 98 | {else} 99 |
  • None
  • 100 | {/if} 101 |
102 |
103 |
104 |
105 |
110 |
111 |
112 |
113 | 114 | {/if} 115 |
-------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_bans_add.tpl: -------------------------------------------------------------------------------- 1 | {if NOT $permission_addban} 2 |
3 | 4 |
Oops, there's a problem (╯°□°)╯︵ ┻━┻
5 | 6 |
7 | Access Denied! 8 |
9 | 10 |
11 | Error code: 403 Forbidden 12 |
13 |
14 | {else} 15 |
16 |

Add Ban

17 |
18 | 19 |
20 |
21 | For more information or help regarding a certain subject move your mouse over the question mark. 22 |
23 | 24 |
25 | 28 | 29 | 30 | 31 | 32 | 33 |
34 | 35 |
36 | 39 | 40 | 44 |
45 | 46 |
47 | 50 | 51 | 52 | 53 | 54 |
55 | 56 |
57 | 60 | 61 | 62 | 63 | 64 |
65 | 66 |
67 | 70 | 71 | 102 | 103 | 106 | 107 | 108 |
109 | 110 |
111 | 114 | 115 | 154 | 155 | 156 |
157 | 158 |
159 | 162 | 163 | {sb_button text="Upload a demo" onclick="childWindow=open('pages/admin.uploaddemo.php','upload','resizable=no,width=300,height=130');" class="button button-primary" id="udemo" submit=false} 164 | 165 | 166 |
167 | 168 |
169 | {sb_button text="Add Ban" onclick="ProcessBan();" class="button button-success" id="aban" submit=false} 170 | {sb_button text="Back" onclick="history.go(-1)" class="button button-light" id="aback"} 171 |
172 |
173 | {/if} -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_bans_email.tpl: -------------------------------------------------------------------------------- 1 |

Email Player ({$email_addr})

2 | 3 | 4 | 7 | 8 | 11 | 12 | 13 | 14 | 17 | 18 | 19 | 20 | 21 | 22 | 27 | 28 |
5 |
{help_icon title="Subject" message="Type the subject of the email."}Subject
6 |
9 | 10 |
{help_icon title="Message" message="Type your message here."}Message
15 | 16 |
  23 | {sb_button text="Send Email" onclick="$email_js" class="ok" id="aemail" submit=false} 24 |   25 | {sb_button text="Back" onclick="history.go(-1)" class="cancel" id="back" submit=false} 26 |
29 | 30 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_bans_groups.tpl: -------------------------------------------------------------------------------- 1 | {if NOT $permission_addban} 2 |
3 | 4 |
Oops, there's a problem (╯°□°)╯︵ ┻━┻
5 | 6 |
7 | Access Denied! 8 |
9 | 10 |
11 | Error code: 403 Forbidden 12 |
13 |
14 | {else} 15 | {if NOT $groupbanning_enabled} 16 | This feature is disabled! Only follow links! 17 | {else} 18 |

Add Group Ban

19 | {if NOT $list_steam_groups} 20 | Here you can add a ban for a whole steam community group.
21 | e.g. http://steamcommunity.com/groups/interwavestudios

22 | 23 | 24 | 29 | 35 | 36 | 37 | 43 | 50 | 51 | 52 | 53 | 58 | 59 |
25 |
26 | {help_icon title="Group Link" message="Type the link to a steam community group."}Group Link 27 |
28 |
30 |
31 | 32 |
33 |
34 |
38 |
39 | {help_icon title="Group Ban Reason" message="Type the reason, why you are going to ban this steam community group."}Group 40 | Ban Reason 41 |
42 |
44 |
45 | 47 |
48 |
49 |
  54 | {sb_button text="Add Group Ban" onclick="ProcessGroupBan();" class="ok" id="agban" submit=false} 55 |   56 | {sb_button text="Back" onclick="history.go(-1)" class="cancel" id="aback"} 57 |
60 | {else} 61 | All groups the player {$player_name} is member of are listed here.
62 | Choose the steam groups you want to ban.

63 |
Loading the groups...
64 | 96 |
97 | 100 | {/if} 101 | {/if} 102 | {/if} -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_bans_import.tpl: -------------------------------------------------------------------------------- 1 | {if NOT $permission_import} 2 |
3 | 4 |
Oops, there's a problem (╯°□°)╯︵ ┻━┻
5 | 6 |
7 | Access Denied! 8 |
9 | 10 |
11 | Error code: 403 Forbidden 12 |
13 |
14 | {else} 15 |
16 |

Import Bans

17 |
18 | 19 |
20 |
21 | For more information or help regarding a certain subject move your mouse over the question mark. 22 |
23 |
24 |
25 | 28 | 29 | 30 |
31 | Select the banned_users.cfg or banned_ip.cfg 33 | file to upload and add bans. 34 |
35 | 36 | 37 |
38 | 39 |
40 | 41 | 44 | 45 |
46 | Check this box, if you want to get the names of the players from their steam community profile. (just works with banned_users.cfg). 48 |
49 | 50 | 51 |
52 | 53 |
54 | {sb_button text="Import" class="button button-success" id="iban" submit=true} 55 | {sb_button text="Back" onclick="history.go(-1)" class="button button-light" id="iback"} 56 |
57 |
58 |
59 | {if !$extreq} 60 | 63 | {/if} 64 | {/if} -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_comms_add.tpl: -------------------------------------------------------------------------------- 1 | {if NOT $permission_addban} 2 |
3 | 4 |
Oops, there's a problem (╯°□°)╯︵ ┻━┻
5 | 6 |
7 | Access Denied! 8 |
9 | 10 |
11 | Error code: 403 Forbidden 12 |
13 |
14 | {else} 15 |
16 |

Add Block

17 |
18 | 19 |
20 | 25 | 26 |
27 | For more information or help regarding a certain subject move your mouse over the question mark. 28 |
29 | 30 |
31 | 34 | 35 | 36 | 37 | 38 |
39 | Type the nickname of the person that you are banning. 40 |
41 | 42 |
43 | 44 |
45 | 48 | 49 | 50 | 51 |
52 | The Steam ID or Community ID of the person to ban. 53 |
54 | 55 |
56 | 57 |
58 | 61 | 62 | 67 |
68 | 69 |
70 | 73 | 74 | 88 | 89 | 93 | 94 |
95 | Explain in detail, why this block is being made. 96 |
97 | 98 |
99 | 100 |
101 | 104 | 105 | 144 | 145 | 146 |
147 | 148 |
149 | {sb_button text="Add block" onclick="ProcessBan();" class="button button-success" id="aban" submit=false} 150 | {sb_button text="Back" onclick="history.go(-1)" class="button button-light" id="aback"} 151 |
152 |
153 | {/if} -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_edit_admins_details.tpl: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Admin Details

4 |
5 | 6 |
7 |
8 |
9 | 12 | 13 | 14 |
15 | 16 |
17 | 20 | 21 | 22 |
23 | 24 |
25 | 28 | 29 | 30 |
31 | 32 | {if $change_pass} 33 |
34 | 37 | 38 | 39 |
40 | 41 |
42 | 45 | 46 | 47 |
48 | 49 |
50 | 54 | 55 |
56 | 59 | 60 | 62 | 63 | 65 |
66 |
67 | {/if} 68 | 69 |
70 | {sb_button text="Save Changes" class="button button-success" id="editmod" submit=true} 71 | {sb_button text="Back" onclick="history.go(-1)" class="button button-light" id="back" submit=false} 72 |
73 |
74 |
75 |
-------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_edit_admins_group.tpl: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Admin Groups

4 |
5 | 6 |
7 |
8 | For more information or help regarding a certain subject move your mouse over the question mark. 9 |
10 |
11 | Choose the new groups that you want {$group_admin_name} to appear in. 12 |
13 | 14 |
15 |
16 | 19 | 20 | 29 | 30 | 31 |
32 | 33 |
34 | 37 | 38 | 48 | 49 | 50 |
51 | 52 |
53 | {sb_button text="Save Changes" class="button button-success" id="agroups" submit=true} 54 | {sb_button text="Back" onclick="history.go(-1)" class="button button-light" id="aback"} 55 |
56 |
57 |
58 |
59 |
-------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_edit_admins_servers.tpl: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Admin Server Access

4 |
5 | 6 |
7 |
8 | Please select the servers and/or groups of servers you want this admin to have access to. 9 |
10 | 11 | {if $row_count < 1} 12 |
13 | You need to add a server or a server group, before you can setup 14 | admin server permissions 15 |
16 | {else} 17 |
18 | {if $group_list} 19 |

Server Groups

20 | 21 | {foreach from="$group_list" item="group"} 22 |
23 | 25 | 28 |
29 | {/foreach} 30 | {/if} 31 | 32 | {if $server_list} 33 |

Servers

34 | 35 | {foreach from="$server_list" item="server"} 36 |
37 | 39 | 42 |
43 | {/foreach} 44 | 45 | {/if} 46 | 47 |
48 | {if $row_count > 0} 49 | {sb_button text="Save Changes" class="button button-success" id="editadminserver" submit=true} 50 | {/if} 51 | 52 | {sb_button text="Back" onclick="history.go(-1)" class="button button-light" id="aback"} 53 |
54 |
55 | {/if} 56 | 57 | 66 |
67 |
68 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_edit_comms.tpl: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 11 |
12 |

Block comms Details

13 |
14 |
15 | For more information or help regarding a certain subject move your mouse over the question mark.

16 | 17 | 18 | 19 | 24 | 29 | 30 | 31 | 36 | 42 | 43 | 44 | 49 | 57 | 58 | 59 | 64 | 85 | 86 | 87 | 90 | 134 | 135 | 136 | 137 | 144 | 145 |
20 |
21 | -{help_icon title="Player name" message="This is the name of the player that was blocked."}-Player name 22 |
23 |
25 |
26 | 27 |
28 |
32 |
33 | -{help_icon title="Steam ID" message="This is the Steam ID of the player that is blocked. You may want to type a Community ID either."}-Steam ID 34 |
35 |
37 |
38 | 39 |
40 |
41 |
45 |
46 | -{help_icon title="Block Type" message="Choose what to block - chat or voice & both"}-Block Type 47 |
48 |
50 |
51 | 55 |
56 |
60 |
61 | -{help_icon title="Block Reason" message="Explain in detail, why this block is being made."}-Block Reason 62 |
63 |
65 |
66 | 79 | 82 |
83 |
84 |
88 |
-{help_icon title="Block Length" message="Select how long you want to block this person for."}-Ban Length
89 |
91 |
92 | 131 |
132 |
133 |
  138 | 139 | 140 |   141 | -{sb_button text="Save Changes" class="ok" id="editban" submit=true}- 142 | -{sb_button text="Back" onclick="history.go(-1)" class="cancel" id="back" submit=false}- 143 |
146 |
147 |
148 | 149 |
150 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_edit_mod.tpl: -------------------------------------------------------------------------------- 1 |
2 |

Mod Details

3 |
4 | 5 |
6 |
7 | For more information or help regarding a certain subject move your mouse over the question mark. 8 |
9 | 10 | 11 | 12 | 13 |
14 | 17 | 18 | 19 | 20 | 21 |
22 | Type the name of the mod you are adding. 23 |
24 | 25 | 26 |
27 | 28 |
29 | 32 | 33 | 34 | 35 |
36 | Type the name of this mods folder. For example, Counter-Strike: Source's mod folder is 'cstrike'. 37 |
38 | 39 | 40 |
41 | 42 |
43 | 46 | 47 | 49 | 50 |
51 | (STEAM_X:Y:Z) Some games display the steamid differently than others. 52 | Type the first number in the SteamID (X) depending on how it's rendered 53 | by this mod. (Default: 0). 54 |
55 |
56 | 57 |
58 | 59 | 60 | 63 | 64 |
65 | Select if this mod is enabled and assignable to bans and servers. 66 |
67 |
68 | 69 |
70 | 73 | 74 | {sb_button text="Upload MOD Icon" onclick="childWindow=open('pages/admin.uploadicon.php','upload','resizable=yes,width=300,height=130');" class="button button-primary" id="upload" submit=false} 75 | 76 |
77 | Click here to upload an icon to associate with this mod. 78 |
79 | 80 | {if $mod_icon} 81 |
82 | Uploaded: {$mod_icon} 83 |
84 | {/if} 85 |
86 | 87 |
88 | {sb_button text="Save Changes" class="button button-success" id="editmod" submit=true} 89 | {sb_button text="Back" onclick="history.go(-1)" class="button button-light" id="back" submit=false} 90 |
91 | 92 |
-------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_groups_add.tpl: -------------------------------------------------------------------------------- 1 | {if NOT $permission_addgroup} 2 |
3 | 4 |
Oops, there's a problem (╯°□°)╯︵ ┻━┻
5 | 6 |
7 | Access Denied! 8 |
9 | 10 |
11 | Error code: 403 Forbidden 12 |
13 |
14 | {else} 15 |
16 |

New Group

17 |
18 | 19 |
20 |
21 | 24 | 25 | 26 | 27 |
28 | Type the name of the new group you want to create. 29 |
30 | 31 |
32 | 33 |
34 | 37 | 38 | 45 | 46 |
47 | This defines the type of group you are about to create. This helps identify and catagorize the groups list. 48 |
49 | 50 | 51 |
52 |
53 | 54 |
55 | {sb_button text="Save Changes" onclick="ProcessGroup();" class="button button-success" id="agroup" submit=false} 56 | {sb_button text="Back" onclick="history.go(-1)" class="button button-light" id="back" submit=false} 57 |
58 |
59 | {/if} -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_mods_add.tpl: -------------------------------------------------------------------------------- 1 | {if NOT $permission_add} 2 |
3 | 4 |
Oops, there's a problem (╯°□°)╯︵ ┻━┻
5 | 6 |
7 | Access Denied! 8 |
9 | 10 |
11 | Error code: 403 Forbidden 12 |
13 |
14 | {else} 15 |
16 |

Add Mod

17 |
18 | 19 |
20 |
21 | For more information or help regarding a certain subject move your mouse over the question mark. 22 |
23 | 24 |
25 | 28 | 29 | 30 | 31 | 32 |
33 | Type the name of the mod you are adding. 34 |
35 | 36 | 37 |
38 | 39 |
40 | 43 | 44 | 45 | 46 |
47 | Type the name of this mods folder. For example, Counter-Strike: Source's mod folder is 'cstrike'. 48 |
49 | 50 | 51 |
52 | 53 |
54 | 57 | 58 | 60 | 61 |
62 | (STEAM_X:Y:Z) Some games display the steamid differently than others. Type 63 | the first number in the SteamID (X) depending on how it's rendered by this 64 | mod. (Default: 0). 65 |
66 |
67 | 68 |
69 | 70 | 71 | 74 | 75 |
76 | Select if this mod is enabled and assignable to bans and servers. 77 |
78 |
79 | 80 |
81 | 84 | 85 | {sb_button text="Upload Mod Icon" onclick="childWindow=open('pages/admin.uploadicon.php','upload','resizable=yes,width=300,height=130');" class="button button-primary" id="upload"} 86 | 87 |
88 | Click here to upload an icon to associate with this mod. 89 |
90 | 91 | 92 |
93 | 94 |
95 | {sb_button text="Add Mod" onclick="ProcessMod();" class="button button-success" id="amod"} 96 | {sb_button text="Back" onclick="history.go(-1)" class="button button-light" id="aback"} 97 |
98 |
99 | {/if} -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_mods_list.tpl: -------------------------------------------------------------------------------- 1 | {if NOT $permission_listmods} 2 |
3 | 4 |
Oops, there's a problem (╯°□°)╯︵ ┻━┻
5 | 6 |
7 | Access Denied! 8 |
9 | 10 |
11 | Error code: 403 Forbidden 12 |
13 |
14 | {else} 15 |
16 |

Server Mods ({$mod_count})

17 |
18 | 19 |
20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 30 | {if $permission_editmods || $permission_deletemods} 31 | 32 | {/if} 33 | 34 | 35 | 36 | {foreach from="$mod_list" item="mod" name="gaben"} 37 | 38 | 41 | 44 | 47 | 50 | {if $permission_editmods || $permission_deletemods} 51 | 65 | {/if} 66 | 67 | {/foreach} 68 | 69 |
Mod iconNameMod Folder 28 | SU 29 | Action
39 | {$mod.mid} 40 | 42 | {$mod.name|htmlspecialchars} 43 | 45 | {$mod.modfolder|htmlspecialchars} 46 | 48 | {$mod.steam_universe|htmlspecialchars} 49 | 52 | {if $permission_editmods} 53 | 55 | Edit 56 | 57 | {/if} 58 | {if $permission_deletemods} 59 | 63 | {/if} 64 |
70 |
71 |
72 | {/if} -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_overrides.tpl: -------------------------------------------------------------------------------- 1 |
2 | {if NOT $permission_addadmin} 3 |
4 | 5 |
Oops, there's a problem (╯°□°)╯︵ ┻━┻
6 | 7 |
8 | Access Denied! 9 |
10 | 11 |
12 | Error code: 403 Forbidden 13 |
14 |
15 | {else} 16 |
17 |

Overrides

18 |
19 | 20 |
21 | {if $overrides_error != ""} 22 | 25 | {/if} 26 | {if $overrides_save_success} 27 | 31 | {/if} 32 | 33 |
34 | With Overrides you can change the flags or permissions on any command, either globally, or for a specific 35 | group, without editing plugin source code. 36 |
37 |
38 | Read about: overriding command 41 | access in the AlliedModders Wiki! 42 |
43 |

Blanking out an overrides' name will delete it.

44 | 45 |
46 |
47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | {foreach from=$overrides_list item=override} 57 | 58 | 67 | 71 | 75 | 76 | {/foreach} 77 | 78 | 84 | 87 | 90 | 91 | 92 |
TypeNameFlags
59 | 65 | 66 | 68 | 70 | 72 | 74 |
79 | 83 | 85 | 86 | 88 | 89 |
93 |
94 | 95 |
96 | 99 | 102 |
103 |
104 |
105 | {/if} 106 |
107 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_servers_add.tpl: -------------------------------------------------------------------------------- 1 |
2 | {if not $permission_addserver} 3 | Access Denied 4 | {else} 5 |
6 |

Server Details

7 |
8 | 9 |
10 |
11 | For more information or help regarding a certain subject move your mouse over the question mark. 12 |
13 | 14 | 15 |
16 | 19 | 20 | 21 |
22 | 23 |
24 | 27 | 29 | 30 |
31 | 32 |
33 | 36 | 37 | 38 |
39 | 40 |
41 | 44 | 45 | 46 |
47 | 48 |
49 | 52 | 53 | 61 | 62 | 63 |
64 | 65 |
66 | 69 | 70 | 71 |
72 | 73 | {if $grouplist} 74 |
75 | 78 | 79 |
    80 | {foreach from="$grouplist" item="group"} 81 |
  • 82 | 84 | 87 |
  • 88 | {/foreach} 89 |
90 | 91 |
92 | {/if} 93 | 94 |
95 | {if $edit_server} 96 | {sb_button text=$submit_text onclick="process_edit_server();" class="button button-success" id="aserver" submit=false} 97 | {else} 98 | {sb_button text=$submit_text onclick="process_add_server();" class="button button-success" id="aserver" submit=false} 99 | {/if} 100 | 101 | {sb_button text="Back" onclick="history.go(-1)" class="button button-light" id="back" submit=false} 102 |
103 |
104 | {/if} 105 |
106 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_servers_adminlist.tpl: -------------------------------------------------------------------------------- 1 |
2 |

Admins on this server ({$admin_count})

3 |
4 | 5 |
6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | {foreach from=$admin_list item=admin} 16 | 17 | 20 | 23 | 24 | 25 | {if $admin.ingame} 26 | 27 | 56 | 57 | {/if} 58 | {/foreach} 59 | 60 |
Admin NameAdmin SteamID
18 | {$admin.user|escape:'html'} 19 | 21 | {$admin.authid} 22 |
28 |
29 |

Admin Details Ingame

30 |
31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 44 | 47 | 50 | 51 | 52 |
NameSteam IDIP
42 | {$admin.iname|escape:'html'} 43 | 45 | {$admin.authid} 46 | 48 | {$admin.iip} 49 |
53 |
54 |
55 |
61 | 62 | 63 |
64 |
65 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_servers_list.tpl: -------------------------------------------------------------------------------- 1 |
2 | {if NOT $permission_list} 3 | Access Denied 4 | {else} 5 |
6 |

Servers ({$server_count})

7 |
8 | 9 |
10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | {foreach from="$server_list" item="server"} 23 | 26 | 27 | 28 | 31 | 34 | 39 | 44 | 78 | 79 | {/foreach} 80 | 81 |
IDModHostnamePlayersAction
29 | {$server.sid} 30 | 32 | {$server.icon} 33 | 35 | 36 | Querying Server Data... 37 | 38 | 40 | 41 | N/A 42 | 43 | 45 |
    46 | {if $server.rcon_access} 47 |
  • 48 | 50 | RCON 51 | 52 |
  • 53 | {/if} 54 |
  • 55 | 57 | Admins 58 | 59 |
  • 60 | {if $permission_editserver} 61 |
  • 62 | 64 | Edit 65 | 66 |
  • 67 | {/if} 68 | {if $pemission_delserver} 69 |
  • 70 | 74 |
  • 75 | {/if} 76 |
77 |
82 |
83 | 84 | {if $permission_addserver} 85 |
86 | 90 | 91 |
92 | {/if} 93 | {/if} 94 |
95 |
-------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_servers_rcon.tpl: -------------------------------------------------------------------------------- 1 | -{if NOT $permission_rcon}- 2 |
3 | 4 |
Oops, there's a problem (╯°□°)╯︵ ┻━┻
5 | 6 |
7 | Access Denied! 8 |
9 | 10 |
11 | Error code: 403 Forbidden 12 |
13 |
14 | -{else}- 15 |
16 |
17 |

RCON Console

18 |
19 | 20 |
21 |
22 |
23 |         
***********************************************************
**                                                       **
* SourceBans RCON console                                 *
* Type your comand in the box below and hit enter         *
* Type 'clr' to clear the console                         *
**                                                       **
***********************************************************
24 |
25 |
26 |
27 | 28 |
29 |
30 | 31 | 32 |
33 | 34 | 35 |
36 |
37 |
38 | 39 | 56 | -{/if}- -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_settings_features.tpl: -------------------------------------------------------------------------------- 1 |
2 |

Ban Features

3 |
4 | 5 |
6 |
7 | For more information or help regarding a certain subject move your mouse over the question mark. 8 |
9 | 10 |
11 | 12 | 13 |
14 | 15 | 16 | 19 | 20 |
21 | Check this box to enable the entire ban list to be publically downloaded and shared. 22 |
23 |
24 | 25 |
26 | 27 | 28 | 31 | 32 |
33 | Check this box to kick a player when a ban is posted. 34 |
35 |
36 | 37 |
38 | {if $steamapi} 39 | 40 | {else} 41 | 42 | {/if} 43 | 44 | 47 | 48 | {if !$steamapi} 49 |
50 | You haven't set a valid steamapi key in the config. 51 |
52 | {/if} 53 | 54 |
55 | Check this box, if you want to enable banning of whole steam community groups. 56 |
57 | 58 | 60 |
61 | 62 |
63 | 64 | 65 | 68 | 69 |
70 | Check this box, if you want to enable banning all steam community friends of a player. 71 |
72 | 73 | 75 |
76 | 77 |
78 | 79 | 80 | 83 | 84 |
85 | Check this box, if you want to enable the admin rehashing everytime an admin/group has been changed. 86 |
87 | 88 | 90 |
91 | 92 |
93 | 94 | 95 | 98 | 99 |
100 | Check this box, if you want to enable the Normal login option on the login form. 101 |
102 | 103 | 105 |
106 | 107 |
108 | 109 | 110 | 113 | 114 |
115 | Check this box, if you want to make admin comments on bans viewable by everyone. 116 |
117 | 118 | 120 |
121 | 122 |
123 | {sb_button text="Save Changes" class="button button-success" id="fsettings" submit=true} 124 | {sb_button text="Back" class="button button-light" id="fback"} 125 |
126 |
127 |
-------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_settings_logs.tpl: -------------------------------------------------------------------------------- 1 |
2 |

System Log {$clear_logs}

3 |
4 | 5 |
6 | {php} require (TEMPLATES_PATH . "/admin.log.search.php");{/php} 7 | 8 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | {foreach from="$log_items" item="log"} 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 65 | 66 | {/foreach} 67 | 68 |
TypeEventDate/TimeUser
{$log.type_img}{$log.title}{$log.date_str}{$log.user}
32 |
33 |
34 |
35 | {$log.message} 36 |
37 | 38 |
39 | Parent Function: 40 | 41 | {if $log.function} 42 | {$log.function} 43 | {else} 44 | No information 45 | {/if} 46 |
47 | 48 |
49 | Query String: 50 | 51 | {if $log.query} 52 | {textformat wrap=62 wrap_cut=true}{$log.query}{/textformat} 53 | {else} 54 | No information 55 | {/if} 56 |
57 | 58 |
59 | IP: 60 | {$log.host} 61 |
62 |
63 |
64 |
69 |
70 |
71 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_admin_settings_themes.tpl: -------------------------------------------------------------------------------- 1 |
2 |

Themes

3 |
4 | 5 |
6 |
7 | Selected Theme: {$theme_name} 8 |
9 | 10 |
11 |
12 | {$theme_screenshot} 13 |
14 | 15 |
    16 |
  • 17 |

    Theme Author:

    18 | {$theme_author} 19 |
  • 20 |
  • 21 |

    Theme Version:

    22 | {$theme_version} 23 |
  • 24 |
  • 25 |

    Theme Link:

    26 | 27 | {$theme_link} 28 | 29 |
  • 30 |
31 |
32 |
33 | 34 |
35 |

Available Themes

36 |
37 | 38 |
39 |
40 | Click a theme below to see details about it. 41 |
42 | 43 | 49 | 50 |
51 |
-------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_blockit.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | -{$xajax_functions}- 4 | 21 | 22 | 31 |
32 |

Searching for the player on all servers...

33 | 34 | -{foreach from=$servers item=serv}- 35 | 36 | 37 | 40 | 41 | -{/foreach}- 42 |
-{$serv.ip}-:-{$serv.port}-
38 |
Waiting...
39 |
43 |
44 | 52 | 53 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_dashboard.tpl: -------------------------------------------------------------------------------- 1 | {if $dashboard_text} 2 |
3 | {$dashboard_text} 4 |
5 | {/if} 6 | 7 |
8 | {include file='page_servers.tpl'} 9 |
10 | 11 |
12 |
13 |

Latest Added Bans

14 | Total bans: {$total_bans} 15 |
16 | 17 |
18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | {foreach from=$players_banned item=player} 30 | 31 | 34 | 41 | 44 | 48 | 49 | {/foreach} 50 | 51 |
MODNameDate/TimeLength
32 | {$player.icon} 33 | 35 | {if empty($player.short_name)} 36 | No nickname present 37 | {else} 38 | {$player.short_name|escape:'html'} 39 | {/if} 40 | 42 | {$player.created} 43 | 46 | {$player.length}{if $player.unbanned} ({$player.ub_reason}){/if} 47 |
52 |
53 |
54 |
55 | 56 |
57 |
58 |
59 |

Latest Added Comms Block

60 | Total Blocked: {$total_comms} 61 |
62 | 63 |
64 |
65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | {foreach from=$players_commed item=player} 76 | 77 | 80 | 87 | 90 | 94 | 95 | {/foreach} 96 | 97 |
TypeNameDate/TimeLength
78 | 79 | 81 | {if empty($player.short_name)} 82 | No nickname present 83 | {else} 84 | {$player.short_name|escape:'html'} 85 | {/if} 86 | 88 | {$player.created} 89 | 92 | {$player.length}{if $player.unbanned} ({$player.ub_reason}){/if} 93 |
98 |
99 |
100 |
101 | 102 |
103 |
104 |

Latest Players Blocked

105 | Total Stopped: {$total_blocked} 106 |
107 | 108 |
109 |
110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | {foreach from=$players_blocked item=player} 121 | 124 | 127 | 130 | 133 | 137 | 138 | {/foreach} 139 | 140 |
TypeNameDate/TimeLength
125 | 126 | 128 | {$player.short_name|escape:'html'} 129 | 131 | {$player.date} 132 | 135 | {$player.length}{if $player.unbanned} ({$player.ub_reason}){/if} 136 |
141 |
142 |
143 |
144 |
145 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_kickit.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | -{$xajax_functions}- 4 | 21 | 22 | 31 |
32 |

Searching for the player on all servers...

33 | 34 | -{foreach from=$servers item=serv}- 35 | 36 | 37 | 40 | 41 | -{/foreach}- 42 |
-{$serv.ip}-:-{$serv.port}-
38 |
Waiting...
39 |
43 |
44 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_login.tpl: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

Admin Login

5 |
6 | 7 |
8 | -{if $steamlogin_show == 1}- 9 |
10 | 13 | 14 | 16 |
17 | 18 |
19 | 22 | 23 | 25 |
26 | 27 |
28 |
29 | 30 | 32 | 33 | 34 |
35 | 36 | -{if $steamlogin_show == 1}- 37 | 38 | Lost your password? 39 | 40 | -{/if}- 41 |
42 | -{/if}- 43 | 44 | -{if $steamlogin_show == 1}- 45 |
46 | -{sb_button text="Login" onclick=$redir class="button button-success flex:11" id="alogin" submit=false}- 47 |
48 | -{/if}- 49 | 50 |
51 | 52 | Login Steam 53 | 54 |
55 |
56 |
57 |
58 | 59 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_lostpassword.tpl: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

Lost your password

5 |
6 |
7 |
8 | Please type your email address in the box below to have your password reset. 9 |
10 | 11 | 14 | 15 | 18 | 19 |
20 | 23 | 24 |
25 | 26 |
27 | {sb_button text="Recover Password" onclick="xajax_LostPassword($('email').value);" class="button button-success flex:11" id="alogin" submit=false} 28 |
29 |
30 |
31 |
-------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_protestban.tpl: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

Appeal a Ban

5 |
6 | 7 |
8 |
9 | In order to appeal a ban, you must make sure you are banned via clicking here to see if you are banned and for what 11 | reason. 12 |
13 |
14 | If you are indeed on our ban list and you feel it is unjust or any other circumstances, please fill 15 | out the appeal format below. 16 |
17 | 18 |
19 | 20 | 21 |
22 | 25 | 30 |
31 | 32 |
33 | 36 | 38 |
39 | 40 | 47 | 48 |
49 | 52 | 54 |
55 | 56 |
57 | 61 | 63 |
64 | 65 |
66 | 69 | 71 |
72 | 73 |
74 | {sb_button text="Submit" class="button button-primary flex:11" id="alogin" submit=true} 75 |
76 |
77 | 78 |
79 |

What happens after I post my appeal?

80 |

81 | The staff team will be notified of your appeal. They will then review if the ban is conclusive. 82 | After reviewing you will get a reply, which usally means within 24 hours. 83 |

84 | 85 |

Note:

86 |

87 | Sending emails with threats to our admins, scolding or shouting will not get you unbanned and you 88 | will be permanently denied from using any of our services. 89 |

90 |
91 |
92 |
93 |
-------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_servers.tpl: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | {foreach from=$server_list item=server} 19 | 20 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 33 | 34 | {if $IN_SERVERS_PAGE} 35 | 36 | 42 | 43 | {/if} 44 | {/foreach} 45 | 46 |
MODOSVACHostnameIP adressPlayersMapConnect
21 | {$server.icon} 22 | Querying Server Data...{$server.ip}:{$server.port}N/AN/A 30 | Connect 32 |
37 |
38 | 39 |
40 |
41 |
47 |
48 |
49 |
50 | 51 | {if $IN_SERVERS_PAGE} 52 | 53 | 56 | {/if} 57 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_submitban.tpl: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

Submit a Report

5 |
6 | 7 |
8 |
9 | In order to keep our servers running smoothly, offenders of our rules should be punished and we 10 | can't always be on call to help. 11 |
12 |
13 | When submitting a player report, we ask you to fill out the report as detailed as possible to help 14 | ban the offender as this will help us process your report quickly. 15 |
16 | 17 |
18 | If you are unsure on how to record evidence within in-game, please click 19 | here 21 | for an explanation. 22 |
23 | 24 |
25 | 26 | 27 |
28 | 31 | 36 |
37 | 38 |
39 | 42 | 44 |
45 | 46 |
47 | 50 | 52 |
53 | 54 |
55 | 58 | 60 |
61 | 62 |
63 | 67 | 68 |
69 | 70 |
71 | 74 | 76 |
77 | 78 |
79 | 82 | 84 |
85 | 86 |
87 | 90 | 98 |
99 | 100 |
101 | 104 | 105 | 106 |
107 | Note: Only DEM, ZIP, RAR, 7Z, BZ2 or GZ allowed. 108 |
109 |
110 | 111 |
112 | {sb_button text="Submit" class="button button-primary flex:11" id="save" submit=true} 113 |
114 |
115 | 116 |
117 |

What happens if someone gets banned?

118 |

119 | If someone you reported gets banned, the SteamID or IP will be included onto the ban on the main 120 | bans list and everytime they try to connect to any server they will be blocked from joining and 121 | it will be logged into our database. 122 |

123 |
124 |
125 |
126 |
-------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/page_uploadfile.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | Upload File : SourceBans 4 | 5 | 6 | 15 |

{$title}

16 | 17 | 18 | Plese select the file to upload. The file must either be {$formats} file format.
19 | {$message} 20 |
21 | 22 |
23 | 26 | 27 |
28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aXenDeveloper/sourcebans-web-theme-fluent/5617d7c16a1d0d7dea2e40518a058d5a538d08c7/sourcebans-web-theme-fluent/screenshot.jpg -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/scripts/collapse.js: -------------------------------------------------------------------------------- 1 | document.querySelectorAll('.collapse').forEach(el => { 2 | el.addEventListener('click', () => { 3 | const content = el.nextElementSibling.querySelector('.collapse_content'); 4 | if (content.style.maxHeight) { 5 | content.style.maxHeight = null; 6 | } else { 7 | content.style.maxHeight = `${content.scrollHeight}px`; 8 | } 9 | }); 10 | }) -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/scripts/initial.js: -------------------------------------------------------------------------------- 1 | const localStorageName = { 2 | color: 'sourcebans_fluent_color', 3 | dark: 'sourcebans_fluent_dark', 4 | manualDark: 'sourcebans_fluent_dark_manual' 5 | }; 6 | 7 | // Check theme 8 | if (localStorage.getItem(localStorageName.dark) == 1) { 9 | document.querySelector('html').dataset.theme = 'dark'; 10 | } -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/scripts/nav.js: -------------------------------------------------------------------------------- 1 | const button_mobile_open = document.querySelector('#button_mobile_open'); 2 | const button_mobile_close = document.querySelector('#button_mobile_close'); 3 | const mobile = document.querySelector('#layout_mobile'); 4 | 5 | button_mobile_open.addEventListener('click', () => { 6 | document.body.style.overflow = 'hidden'; 7 | mobile.classList.add('show'); 8 | }); 9 | 10 | mobile.addEventListener('click', () => { 11 | document.body.style.overflow = 'auto'; 12 | mobile.classList.remove('show'); 13 | }) 14 | 15 | document.querySelector('.nav_mobile_content').addEventListener('click', el => el.stopPropagation()); -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/scripts/tab.js: -------------------------------------------------------------------------------- 1 | const buttonTabMobile = document.querySelector('#admin_tab_mobile'); 2 | 3 | buttonTabMobile.addEventListener('click', el => { 4 | const content = document.querySelector('#admin-page-menu'); 5 | if (content.style.maxHeight) { 6 | content.style.maxHeight = null; 7 | } else { 8 | content.style.maxHeight = content.scrollHeight + "px"; 9 | } 10 | }) -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/scripts/theme.js: -------------------------------------------------------------------------------- 1 | const checkDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches; 2 | 3 | const selectElements = { 4 | color: document.querySelector('#colorTheme'), 5 | colorReset: document.querySelector('#jscolor_reset'), 6 | dark: document.querySelector('#user_action_change_dark') 7 | }; 8 | 9 | const colorBackground = `.tee .layout_box_title, .tee .table table thead, .tee .table table td.listtable_top, .tee .admin_nav, .tee .button-primary, .tee .form-check:checked, .tee #tabsWrapper #tabs ul, .tee .admin_tab_ul li a:hover, .tee .admin_tab_ul li button:hover, .tee .form-radio:checked`; 10 | 11 | const colorBorder = ".tee .nav ul li.active, .tee .form-check:checked, .tee .form-check:focus, .tee .form-input:focus, .tee .form-select:focus, .tee .form-text:focus, .tee .form-file:focus, .tee .form-radio:focus, .tee .form-radio:checked"; 12 | 13 | const colorColor = ".tee .jscolor_li button.jscolor, .tee a"; 14 | 15 | const setColorTheme = picker => { 16 | selectElements.color.innerHTML = ` 17 | ${colorBackground} { background-color: ${picker}; } 18 | ${colorBorder} { border-color: ${picker}; } 19 | ${colorColor} { color: ${picker}; } 20 | .tee .form-input:focus, .tee .form-check:focus, .tee .form-select:focus, .tee .form-text:focus, .tee .form-file:focus, .tee .form-radio:focus { box-shadow: ${picker}4d 0px 0px 0px 4px; } 21 | .tee .nav ul li a::after, .tee .table table tbody tr.collapse:hover { background: ${picker}26; } 22 | `; 23 | selectElements.colorReset.style.display = 'flex'; 24 | localStorage.setItem(localStorageName.color, picker); 25 | }; 26 | 27 | const enableDark = () => { 28 | document.querySelector('html').dataset.theme = 'dark'; 29 | localStorage.setItem(localStorageName.dark, 1); 30 | }; 31 | 32 | const disableDark = () => { 33 | delete document.querySelector('html').dataset.theme; 34 | localStorage.setItem(localStorageName.dark, 0); 35 | }; 36 | 37 | // Check if color is enable in localStorage 38 | if (localStorage.getItem(localStorageName.color) != null) setColorTheme(localStorage.getItem(localStorageName.color)); 39 | 40 | if (checkDark && localStorage.getItem(localStorageName.manualDark) === null) { 41 | enableDark(); 42 | } else if (!checkDark && localStorage.getItem(localStorageName.manualDark) === null) { 43 | disableDark(); 44 | }; 45 | 46 | selectElements.colorReset.addEventListener('click', el => { 47 | selectElements.color.innerHTML = ''; 48 | selectElements.colorReset.style.display = 'none'; 49 | localStorage.removeItem(localStorageName.color); 50 | }); 51 | 52 | selectElements.dark.addEventListener('click', el => { 53 | localStorage.setItem(localStorageName.manualDark, 1); 54 | localStorage.getItem(localStorageName.dark) != 1 ? enableDark() : disableDark(); 55 | }); 56 | 57 | 58 | jscolor.presets.default = { 59 | previewSize: 0, 60 | forceStyle: false, 61 | onInput: 'setColorTheme(this)' 62 | }; -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/style/global.scss: -------------------------------------------------------------------------------- 1 | :root { 2 | --layout_main_code--color: 26, 122, 191; 3 | --layout_main--color: rgb(var(--layout_main_code--color)); 4 | --layout_main--color_0_3: rgba(var(--layout_main_code--color), 0.3); 5 | --layout_main--color_0_15: rgba(var(--layout_main_code--color), 0.15); 6 | 7 | --container--width: 1630px; 8 | --header--height: 80px; 9 | 10 | --theme-background: #edf0f4; 11 | --theme-text: #353c41; 12 | --theme-text_light: #464646; 13 | --theme-text_light-hover: #000; 14 | --theme-link: var(--layout_main--color); 15 | --theme-area_background_light: #f7fafc; 16 | 17 | --border--radius: 5px; 18 | --box-shadow: 0 0 40px 0 rgba(94, 92, 154, 0.08); 19 | --box-shadow--child: 0 0 0 1px rgba(76, 86, 101, 0.2), 0 0 40px 0 rgba(94, 92, 154, 0.08); 20 | --box--backgroundColor: #fff; 21 | 22 | --backdrop-filter-value: blur(15px); 23 | --backdrop-background: rgba(255, 255, 255, 0.65); 24 | --backdrop-text_color: #000; 25 | 26 | --input--shadow: rgba(44, 95, 140, 0.08); 27 | --input--border: rgba(113, 128, 150, 0.4); 28 | --input--border-focusShadow: var(--layout_main--color_0_3) 0px 0px 0px 4px; 29 | --input--desc: #6c757d; 30 | --input-disabled: #e6e6e6; 31 | 32 | --line-hr: rgba(0, 0, 0, 0.1); 33 | 34 | --button-success: #267b3c; 35 | --button-important: #ca1e1e; 36 | --button-light: #e8f2fa; 37 | --button-light-text: #0e4c79; 38 | --button--background-hover: rgba(0, 0, 0, 0.08); 39 | 40 | --table-unbanned-code: 44, 140, 105; 41 | --table-unbanned: rgba(var(--table-unbanned-code), 0.1); 42 | --table-unbanned-text: rgb(var(--table-unbanned-code)); 43 | --table-banned-code: 221, 107, 32; 44 | --table-banned: rgba(var(--table-banned-code), 0.1); 45 | --table-banned-text: rgb(var(--table-banned-code)); 46 | --table-permanent-code: 197, 48, 48; 47 | --table-permanent: rgba(var(--table-permanent-code), 0.1); 48 | --table-permanent-text: rgb(var(--table-permanent-code)); 49 | 50 | --message-info: #1f7bbb; 51 | --message-error: #c53030; 52 | --message-general: #70767d; 53 | --message-succes: #2a884b; 54 | 55 | --message-info: #1f7bbb; 56 | --message-error: #c53030; 57 | --message-general: #70767d; 58 | --message-succes: #2a884b; 59 | } 60 | 61 | @mixin reset-list($margin, $padding) { 62 | margin: $margin; 63 | padding: $padding; 64 | list-style: none; 65 | } 66 | 67 | @mixin mobile-button { 68 | width: 44px; 69 | height: 50px; 70 | display: flex; 71 | align-items: center; 72 | justify-content: center; 73 | } 74 | 75 | * { 76 | box-sizing: border-box; 77 | } 78 | 79 | html { 80 | font-size: 10px; 81 | } 82 | 83 | body { 84 | font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 85 | 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; 86 | font-size: 1.3rem; 87 | line-height: 1.5; 88 | color: var(--theme-text); 89 | height: 100%; 90 | background-color: var(--theme-background); 91 | margin: 0; 92 | cursor: inherit !important; 93 | } 94 | 95 | a { 96 | transition: color 0.2s ease; 97 | color: var(--theme-link); 98 | text-decoration: none; 99 | 100 | &:hover { 101 | text-decoration: revert; 102 | } 103 | } 104 | 105 | .list-reset { 106 | @include reset-list(0, 0); 107 | } 108 | 109 | @import './scss/framework/buttons'; 110 | @import './scss/framework/animations'; 111 | @import './scss/framework/fonts'; 112 | @import './scss/framework/tables'; 113 | @import './scss/framework/inputs'; 114 | @import './scss/framework/messages'; 115 | @import './scss/framework/popup'; 116 | @import './scss/framework/error'; 117 | 118 | @import './scss/_layout'; 119 | @import './scss/_footer'; 120 | @import './scss/_header'; 121 | @import './scss/_nav'; 122 | @import './scss/_dark'; 123 | @import './scss/_old'; 124 | @import './scss/_admin'; 125 | @import './scss/_fix'; 126 | 127 | .flex { 128 | display: flex; 129 | justify-content: space-evenly; 130 | 131 | &-jc { 132 | &\:center { 133 | justify-content: center; 134 | } 135 | 136 | &\:space-between { 137 | justify-content: space-between; 138 | } 139 | 140 | &\:end { 141 | justify-content: flex-end; 142 | } 143 | 144 | &\:start { 145 | justify-content: flex-start; 146 | } 147 | } 148 | 149 | &-ai { 150 | &\:center { 151 | align-items: center; 152 | } 153 | 154 | &\:start { 155 | align-items: flex-start; 156 | } 157 | 158 | &\:end { 159 | align-items: flex-end; 160 | } 161 | } 162 | 163 | &-fd { 164 | &\:column { 165 | flex-direction: column; 166 | } 167 | } 168 | 169 | &-wrap { 170 | &\:wrap { 171 | flex-wrap: wrap; 172 | } 173 | } 174 | 175 | &\:11 { 176 | flex: 1; 177 | width: 100%; 178 | } 179 | } 180 | 181 | /* ================ Responsive ================ */ 182 | @media screen and (min-width: 980px) { 183 | .responsive_hide\:desktop { 184 | display: none !important; 185 | } 186 | } 187 | 188 | @media screen and (max-width: 980px) { 189 | .responsive_show\:desktop { 190 | display: none !important; 191 | } 192 | 193 | // Mobile 194 | .m { 195 | &\:flex { 196 | &-fd { 197 | &\:column { 198 | flex-direction: column; 199 | } 200 | } 201 | } 202 | } 203 | } 204 | 205 | /* ================ Main ================ */ 206 | @media screen and (min-width: 980px) { 207 | main { 208 | display: flex; 209 | } 210 | } 211 | 212 | .layout_body { 213 | margin: 20px auto; 214 | padding: 0 15px; 215 | max-width: var(--container--width); 216 | } 217 | 218 | /* ================ JSColor ================ */ 219 | .jscolor::before { 220 | content: '\f1fc'; 221 | font-family: 'font awesome 5 free'; 222 | font-weight: 700; 223 | } 224 | 225 | /* ================ Page ================ */ 226 | .page_header { 227 | margin-bottom: 5px; 228 | 229 | > h1 { 230 | font-size: 24px; 231 | font-weight: bold; 232 | line-height: 1.2; 233 | letter-spacing: -0.02em; 234 | margin: 0; 235 | color: inherit; 236 | } 237 | } 238 | 239 | /* ================ Breadcrumb ================ */ 240 | .breadcrumb { 241 | font-size: 13px; 242 | font-weight: 400; 243 | padding: 10px 0; 244 | margin-bottom: 20px; 245 | } 246 | 247 | .breadcrumb > *:last-child { 248 | font-weight: bold; 249 | } 250 | 251 | /* ================ Pagination ================ */ 252 | .pagination { 253 | display: inline-flex; 254 | line-height: 26px; 255 | font-size: 12px; 256 | 257 | a { 258 | padding: 0 10px; 259 | border-radius: 4px; 260 | } 261 | } 262 | 263 | /* ================ Login - Page ================ */ 264 | .collapse_content { 265 | max-height: 0; 266 | overflow: hidden; 267 | transition: max-height 0.3s ease; 268 | } 269 | 270 | .ban { 271 | &_action { 272 | @include reset-list(0 15px 0 0, 0); 273 | flex: 0 0 200px; 274 | 275 | li:not(:last-child) { 276 | margin-bottom: 10px; 277 | } 278 | } 279 | 280 | &_list { 281 | &_detal { 282 | @include reset-list(0, 0); 283 | margin-right: 10px; 284 | flex: 1; 285 | 286 | li { 287 | display: flex; 288 | justify-content: flex-start; 289 | align-items: center; 290 | padding: 5px 0; 291 | flex: 0 1 100%; 292 | overflow: hidden; 293 | 294 | > span { 295 | display: block; 296 | 297 | &:first-child { 298 | flex: 0 0 200px; 299 | } 300 | 301 | &:last-child { 302 | display: flex; 303 | flex-wrap: wrap; 304 | flex: 1; 305 | 306 | > span { 307 | flex: 0 1 99%; 308 | } 309 | } 310 | } 311 | } 312 | } 313 | 314 | &_comments { 315 | flex: 1; 316 | min-width: 300px; 317 | 318 | ul { 319 | @include reset-list(0, 10px); 320 | 321 | li:not(:last-child) { 322 | margin-bottom: 20px; 323 | } 324 | } 325 | 326 | &_header { 327 | display: flex; 328 | 329 | & + div { 330 | overflow: auto; 331 | } 332 | 333 | span:first-child { 334 | margin-right: auto; 335 | } 336 | 337 | > *:not(:first-child):not(:last-child) { 338 | margin-right: 10px; 339 | } 340 | } 341 | } 342 | } 343 | } 344 | 345 | .tabcontent { 346 | display: none; 347 | } 348 | 349 | .tabcontent:first-of-type { 350 | display: block; 351 | } 352 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/style/scss/__admin.scss: -------------------------------------------------------------------------------- 1 | .admin { 2 | &_nav { 3 | background-color: var(--layout_main--color); 4 | border-radius: 4px; 5 | width: 100%; 6 | overflow-x: auto; 7 | color: #fff; 8 | 9 | ul { 10 | @include reset-list(0, 0); 11 | 12 | li { 13 | a { 14 | display: flex; 15 | flex-direction: column; 16 | align-items: center; 17 | color: inherit; 18 | text-align: center; 19 | width: 115px; 20 | height: 100%; 21 | padding: 15px 10px; 22 | transition: background-color 0.2s ease, color 0.2s ease; 23 | 24 | &:hover { 25 | background-color: rgba(0, 0, 0, 0.2); 26 | border-radius: inherit; 27 | text-decoration: none; 28 | } 29 | 30 | i { 31 | font-size: 40px; 32 | } 33 | 34 | span { 35 | margin-top: 10px; 36 | } 37 | } 38 | } 39 | } 40 | } 41 | 42 | &_dashboard { 43 | display: grid; 44 | grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); 45 | grid-gap: 10px; 46 | } 47 | 48 | &_tab { 49 | width: 280px; 50 | margin-right: 20px; 51 | 52 | @media screen and (max-width: 980px) { 53 | width: 100%; 54 | } 55 | 56 | &_mobile { 57 | width: 100%; 58 | } 59 | 60 | @media screen and (max-width: 980px) { 61 | margin-right: 0; 62 | margin-bottom: 20px; 63 | } 64 | 65 | &_ul { 66 | max-height: 100%; 67 | transition: max-height 0.3s ease; 68 | 69 | @media screen and (max-width: 980px) { 70 | max-height: 0; 71 | overflow: hidden; 72 | } 73 | 74 | a, 75 | button { 76 | display: block; 77 | width: 100%; 78 | padding: 8px 10px; 79 | border-radius: 5px; 80 | font-family: inherit; 81 | font-size: 14px; 82 | color: inherit; 83 | text-align: left; 84 | border: 0; 85 | background-color: transparent; 86 | transition: none; 87 | cursor: pointer; 88 | 89 | &:hover { 90 | background-color: var(--layout_main--color); 91 | color: #fff; 92 | text-decoration: none; 93 | } 94 | } 95 | } 96 | 97 | &_content { 98 | width: 100%; 99 | 100 | &_title { 101 | padding: 20px; 102 | background-color: var(--theme-area_background_light); 103 | border-bottom: 1px solid var(--line-hr); 104 | 105 | h2, 106 | h3 { 107 | padding: 0; 108 | margin: 0; 109 | font-size: 24px; 110 | font-weight: bold; 111 | line-height: 1.2; 112 | letter-spacing: -0.02em; 113 | } 114 | } 115 | } 116 | } 117 | } 118 | 119 | .theme_list { 120 | display: flex; 121 | flex-direction: column; 122 | list-style: none; 123 | 124 | li { 125 | h3 { 126 | margin: 0; 127 | padding: 0; 128 | } 129 | 130 | &:not(:last-child) { 131 | margin-bottom: 10px; 132 | } 133 | } 134 | } 135 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/style/scss/__dark.scss: -------------------------------------------------------------------------------- 1 | [data-theme='dark'] { 2 | &:root { 3 | --theme-background: #0f1015; 4 | --theme-text: #efefef; 5 | --theme-text_light: #bdbdbd; 6 | --theme-text_light-hover: #fff; 7 | --theme-area_background_light: #171821; 8 | --button--background-hover: rgba(255, 255, 255, 0.08); 9 | 10 | --button-light: #22242f; 11 | --button-light-text: #fff; 12 | 13 | --box--backgroundColor: #13141b; 14 | --box-shadow: none; 15 | --box-shadow--child: 0 0 0 1px rgba(147, 161, 181, 0.2), 0 0 40px 0 transparent; 16 | 17 | --backdrop-background: rgba(19, 20, 27, 0.65); 18 | --backdrop-text_color: #fff; 19 | --input--desc: #98a3ad; 20 | --input-disabled: #3e4050; 21 | 22 | --line-hr: rgba(255, 255, 255, 0.1); 23 | } 24 | 25 | .layout_topBar .layout_topBar_action li #user_action_change_dark i { 26 | color: #ffe200; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/style/scss/__fix.scss: -------------------------------------------------------------------------------- 1 | #admin-page-content { 2 | flex: 1; 3 | width: 100%; 4 | box-shadow: var(--box-shadow); 5 | border-radius: var(--border--radius); 6 | background-color: var(--box--backgroundColor); 7 | 8 | > .tabcontent > .admin_tab_content_title { 9 | border-radius: var(--border--radius) var(--border--radius) 0 0; 10 | } 11 | } 12 | 13 | #tabsWrapper { 14 | #tabs { 15 | ul { 16 | display: flex; 17 | align-items: center; 18 | justify-content: space-around; 19 | @include reset-list(0, 10px 10px 0 10px); 20 | background-color: var(--layout_main--color); 21 | border-radius: var(--border--radius) var(--border--radius) 0 0; 22 | color: var(--theme-text); 23 | 24 | li { 25 | flex: 1; 26 | text-align: center; 27 | height: 100%; 28 | 29 | &.active a { 30 | background-color: var(--theme-area_background_light); 31 | font-weight: bold; 32 | color: inherit; 33 | } 34 | 35 | &:not(.active) a:hover { 36 | background-color: rgba(255, 255, 255, 0.15); 37 | } 38 | 39 | a { 40 | display: block; 41 | width: 100%; 42 | color: #fff; 43 | text-decoration: none; 44 | line-height: 3; 45 | font-size: 14px; 46 | border-radius: var(--border--radius) var(--border--radius) 0 0; 47 | } 48 | } 49 | } 50 | } 51 | } 52 | 53 | .test { 54 | height: 100% !important; 55 | } 56 | 57 | .ok { 58 | background-color: var(--button-success); 59 | } 60 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/style/scss/__footer.scss: -------------------------------------------------------------------------------- 1 | .footer { 2 | background-color: var(--box--backgroundColor); 3 | 4 | > .layout_container { 5 | padding: 20px 15px; 6 | } 7 | 8 | a { 9 | font-weight: bold; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/style/scss/__header.scss: -------------------------------------------------------------------------------- 1 | .header { 2 | background-color: var(--box--backgroundColor); 3 | box-shadow: var(--box-shadow); 4 | margin-top: 60px; 5 | 6 | @media screen and (max-width: 980px) { 7 | margin-top: 50px; 8 | } 9 | 10 | &_logo { 11 | display: inline-flex; 12 | align-items: center; 13 | align-self: stretch; 14 | height: var(--header--height); 15 | 16 | img { 17 | max-width: 100%; 18 | max-height: 100%; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/style/scss/__layout.scss: -------------------------------------------------------------------------------- 1 | .layout { 2 | &_container { 3 | max-width: var(--container--width); 4 | padding: 0 15px; 5 | margin: 0 auto; 6 | position: relative; 7 | } 8 | 9 | &_box { 10 | box-shadow: var(--box-shadow); 11 | border-radius: var(--border--radius); 12 | background-color: var(--box--backgroundColor); 13 | 14 | &_title { 15 | background-color: var(--layout_main--color); 16 | padding: 16px; 17 | border-top-left-radius: inherit; 18 | border-top-right-radius: inherit; 19 | color: #fff; 20 | 21 | h2, 22 | h3, 23 | h4 { 24 | padding: 0; 25 | margin: 0; 26 | color: #fff; 27 | font-size: 16px; 28 | font-weight: bold; 29 | } 30 | } 31 | 32 | &_small { 33 | width: 98%; 34 | max-width: 450px; 35 | } 36 | 37 | &_medium { 38 | width: 98%; 39 | max-width: 700px; 40 | } 41 | 42 | &-child { 43 | box-shadow: var(--box-shadow--child); 44 | border-radius: 4px; 45 | } 46 | } 47 | 48 | &_topBar { 49 | position: fixed; 50 | top: 0; 51 | left: 0; 52 | right: 0; 53 | z-index: 1000; 54 | background-color: var(--backdrop-background); 55 | backdrop-filter: var(--backdrop-filter-value); 56 | color: var(--backdrop-text_color); 57 | box-shadow: 0 0 40px 0 rgba(56, 55, 93, 0.3); 58 | padding: 10px 0; 59 | 60 | @media screen and (max-width: 980px) { 61 | padding: 0; 62 | height: 50px; 63 | 64 | > .layout_container { 65 | padding: 0; 66 | margin: 0; 67 | } 68 | } 69 | 70 | &_action { 71 | @include reset-list(0, 0); 72 | margin-right: auto; 73 | 74 | @media screen and (max-width: 980px) { 75 | margin-right: initial; 76 | } 77 | 78 | li { 79 | font-size: 20px; 80 | 81 | @media screen and (max-width: 980px) { 82 | font-size: 22px; 83 | } 84 | 85 | button { 86 | background: transparent !important; 87 | padding: 0; 88 | color: var(--backdrop-text_color); 89 | border: 0; 90 | font-size: inherit; 91 | width: 20px; 92 | cursor: pointer; 93 | 94 | @media screen and (max-width: 980px) { 95 | @include mobile-button; 96 | } 97 | 98 | &:focus { 99 | outline: none; 100 | } 101 | } 102 | 103 | &:not(:last-child) { 104 | margin-right: 15px; 105 | 106 | @media screen and (max-width: 980px) { 107 | margin-right: 0; 108 | } 109 | } 110 | } 111 | } 112 | 113 | &_userBar { 114 | @include reset-list(0, 0); 115 | } 116 | } 117 | } 118 | 119 | .padding { 120 | padding: 20px; 121 | 122 | &\:half { 123 | padding: 10px; 124 | } 125 | } 126 | 127 | .margin { 128 | margin: 20px; 129 | 130 | &\:half { 131 | margin: 10px; 132 | } 133 | 134 | &-top { 135 | margin-top: 20px; 136 | 137 | &\:half { 138 | margin-top: 10px; 139 | } 140 | } 141 | 142 | &-bottom { 143 | margin-bottom: 20px; 144 | 145 | &\:half { 146 | margin-bottom: 10px; 147 | } 148 | } 149 | 150 | &-left { 151 | margin-left: 20px; 152 | 153 | &\:half { 154 | margin-left: 10px; 155 | } 156 | } 157 | 158 | &-right { 159 | margin-right: 20px; 160 | 161 | &\:half { 162 | margin-right: 10px; 163 | } 164 | } 165 | } 166 | 167 | .listtable_1_unbanned { 168 | background-color: var(--table-unbanned); 169 | color: var(--table-unbanned-text); 170 | } 171 | 172 | .listtable_1_permanent { 173 | background-color: var(--table-permanent); 174 | color: var(--table-permanent-text); 175 | } 176 | 177 | .listtable_1_banned { 178 | background-color: var(--table-banned); 179 | color: var(--table-banned-text); 180 | } 181 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/style/scss/__nav.scss: -------------------------------------------------------------------------------- 1 | .nav { 2 | width: 255px; 3 | background-color: var(--box--backgroundColor); 4 | 5 | ul { 6 | @include reset-list(0, 0); 7 | 8 | li { 9 | &.active { 10 | border-left: 5px solid var(--layout_main--color); 11 | font-weight: bold; 12 | } 13 | 14 | a { 15 | display: block; 16 | padding: 15px 25px; 17 | color: var(--theme-text_light); 18 | position: relative; 19 | z-index: 1; 20 | overflow: hidden; 21 | 22 | &::before { 23 | content: '\f0c9'; 24 | font-family: 'font awesome 5 free'; 25 | font-size: 14px; 26 | font-weight: 700; 27 | margin-right: 3px; 28 | } 29 | 30 | &[data-nav='home']::before { 31 | content: '\f015'; 32 | } 33 | 34 | &[data-nav='servers']::before { 35 | content: '\f233'; 36 | } 37 | 38 | &[data-nav='banlist']::before { 39 | content: '\f05e'; 40 | } 41 | 42 | &[data-nav='commslist']::before { 43 | content: '\f539'; 44 | } 45 | 46 | &[data-nav='submit']::before { 47 | content: '\f11e'; 48 | } 49 | 50 | &[data-nav='protest']::before { 51 | content: '\f4fd'; 52 | } 53 | 54 | &[data-nav='admin']::before { 55 | content: '\f023'; 56 | } 57 | 58 | &:hover { 59 | color: var(--theme-text_light-hover); 60 | text-decoration: none; 61 | 62 | &::after { 63 | transform: scaleX(1); 64 | transition-timing-function: ease; 65 | } 66 | } 67 | 68 | &::after { 69 | content: ''; 70 | position: absolute; 71 | z-index: -1; 72 | top: 0; 73 | left: 0; 74 | right: 0; 75 | bottom: 0; 76 | background: var(--layout_main--color_0_15); 77 | transform: scaleX(0); 78 | height: 100%; 79 | transition-property: transform; 80 | transition-duration: 0.3s; 81 | transition-timing-function: ease-out; 82 | transform-origin: left; 83 | } 84 | } 85 | } 86 | } 87 | 88 | &_mobile { 89 | &.show { 90 | .nav_mobile_content { 91 | transform: translateX(0); 92 | } 93 | 94 | .nav_mobile_background { 95 | display: block; 96 | } 97 | 98 | .nav_mobile_close { 99 | animation: fadeIn 0.2s 0.5s ease-out forwards; 100 | } 101 | } 102 | 103 | &_content { 104 | position: fixed; 105 | top: 0; 106 | right: 0; 107 | bottom: 0; 108 | z-index: 1100; 109 | width: 340px; 110 | max-width: calc(100% - 50px); 111 | background-color: var(--box--backgroundColor); 112 | box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.2); 113 | transform: translateX(calc(100% + 45px)); 114 | transition: transform 0.3s ease; 115 | overflow: auto; 116 | } 117 | 118 | &_tab { 119 | &_nav { 120 | ul { 121 | @include reset-list(0, 0); 122 | 123 | li { 124 | &.active { 125 | font-weight: bold; 126 | } 127 | 128 | a { 129 | display: block; 130 | padding: 12px 20px; 131 | color: var(--theme-text_light); 132 | 133 | &:hover { 134 | text-decoration: none; 135 | } 136 | 137 | &::before { 138 | content: '\f0c9'; 139 | font-family: 'font awesome 5 free'; 140 | font-size: 14px; 141 | font-weight: 700; 142 | margin-right: 3px; 143 | } 144 | 145 | &[data-nav='home']::before { 146 | content: '\f015'; 147 | } 148 | 149 | &[data-nav='servers']::before { 150 | content: '\f233'; 151 | } 152 | 153 | &[data-nav='banlist']::before { 154 | content: '\f05e'; 155 | } 156 | 157 | &[data-nav='commslist']::before { 158 | content: '\f539'; 159 | } 160 | 161 | &[data-nav='submit']::before { 162 | content: '\f11e'; 163 | } 164 | 165 | &[data-nav='protest']::before { 166 | content: '\f4fd'; 167 | } 168 | 169 | &[data-nav='admin']::before { 170 | content: '\f023'; 171 | } 172 | } 173 | } 174 | } 175 | } 176 | 177 | &_top { 178 | background-color: var(--box--backgroundColor); 179 | position: sticky; 180 | top: 0; 181 | border-bottom: 1px solid var(--line-hr); 182 | } 183 | } 184 | 185 | &_background { 186 | display: none; 187 | position: fixed; 188 | z-index: 1000; 189 | top: 0; 190 | left: 0; 191 | right: 0; 192 | bottom: 0; 193 | background-color: rgba(0, 0, 0, 0.4); 194 | } 195 | 196 | &_open { 197 | @include mobile-button; 198 | font-size: 22px; 199 | background: transparent; 200 | border: 0; 201 | color: var(--backdrop-text_color); 202 | cursor: pointer; 203 | } 204 | 205 | &_close { 206 | background: var(--box--backgroundColor); 207 | width: 35px; 208 | height: 35px; 209 | border-radius: 40px; 210 | color: var(--backdrop-text_color); 211 | text-align: center; 212 | font-size: 22px; 213 | position: fixed; 214 | opacity: 0; 215 | top: 5px; 216 | right: 345px; 217 | z-index: 2000; 218 | border: 0; 219 | cursor: pointer; 220 | } 221 | } 222 | } 223 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/style/scss/framework/_animations.scss: -------------------------------------------------------------------------------- 1 | @keyframes fadeIn { 2 | 0% { 3 | opacity: 0; 4 | } 5 | 100% { 6 | opacity: 1; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/style/scss/framework/_buttons.scss: -------------------------------------------------------------------------------- 1 | .button, 2 | .ok { 3 | display: block; 4 | font-size: 14px; 5 | font-weight: 400; 6 | text-align: center; 7 | font-family: inherit; 8 | padding: 10px 20px; 9 | border-radius: var(--border--radius); 10 | color: #fff !important; 11 | position: relative; 12 | z-index: 1; 13 | overflow: hidden; 14 | cursor: pointer; 15 | border: 0; 16 | 17 | a { 18 | color: inherit; 19 | 20 | &:hover { 21 | text-decoration: none; 22 | } 23 | } 24 | 25 | &:hover { 26 | text-decoration: none; 27 | } 28 | 29 | &::after { 30 | content: ''; 31 | position: absolute; 32 | z-index: -1; 33 | top: 0; 34 | left: 0; 35 | right: 0; 36 | bottom: 0; 37 | background: var(--button--background-hover); 38 | transform: scaleX(0); 39 | height: 100%; 40 | transition-property: transform; 41 | transition-duration: 0.7s; 42 | transition-timing-function: ease-out; 43 | transform-origin: left; 44 | } 45 | 46 | &:hover::after { 47 | transform: scaleX(1); 48 | transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66); 49 | } 50 | 51 | &-success { 52 | background-color: var(--button-success); 53 | } 54 | 55 | &-important { 56 | background-color: var(--button-important); 57 | } 58 | 59 | &-primary { 60 | background-color: var(--layout_main--color); 61 | } 62 | 63 | &-light { 64 | background-color: var(--button-light); 65 | color: var(--button-light-text) !important; 66 | } 67 | 68 | &\:line { 69 | display: inline-block; 70 | } 71 | 72 | &\:full { 73 | width: 100%; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/style/scss/framework/_error.scss: -------------------------------------------------------------------------------- 1 | .error { 2 | display: flex; 3 | align-items: center; 4 | justify-content: center; 5 | flex-direction: column; 6 | flex: 1; 7 | 8 | > i { 9 | font-size: 64px; 10 | margin-bottom: 10px; 11 | } 12 | 13 | &_title { 14 | color: var(--theme-text_light); 15 | font-size: 16px; 16 | } 17 | 18 | &_content { 19 | font-size: 24px; 20 | font-weight: 500; 21 | max-width: 800px; 22 | } 23 | 24 | &_code { 25 | color: var(--theme-text_light); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/style/scss/framework/_fonts.scss: -------------------------------------------------------------------------------- 1 | .text { 2 | &\:center { 3 | text-align: center; 4 | } 5 | 6 | &\:left { 7 | text-align: left; 8 | } 9 | 10 | &\:right { 11 | text-align: right; 12 | } 13 | 14 | &\:italic { 15 | font-style: italic; 16 | } 17 | 18 | &\:bold { 19 | font-weight: bold; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/style/scss/framework/_inputs.scss: -------------------------------------------------------------------------------- 1 | @mixin input-focus($border) { 2 | &:focus { 3 | border-radius: $border; 4 | box-shadow: var(--input--border-focusShadow); 5 | border-color: var(--layout_main--color); 6 | outline: 0; 7 | } 8 | } 9 | 10 | .form { 11 | &-full { 12 | display: block; 13 | width: 100%; 14 | } 15 | 16 | &-label { 17 | font-size: 1.4rem; 18 | display: inline-block; 19 | 20 | &\:bottom { 21 | margin-bottom: 5px; 22 | } 23 | 24 | &\:left { 25 | margin-left: 5px; 26 | } 27 | 28 | &\:right { 29 | margin-right: 5px; 30 | } 31 | } 32 | 33 | &-desc { 34 | margin-top: 5px; 35 | color: var(--input--desc); 36 | } 37 | 38 | &-input { 39 | border-radius: var(--border--radius); 40 | padding: 1.3rem 1.2rem; 41 | color: inherit; 42 | background-color: var(--box--backgroundColor); 43 | border: 1px solid var(--input--border); 44 | transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; 45 | 46 | &:disabled { 47 | background-color: var(--input-disabled); 48 | cursor: default; 49 | } 50 | 51 | @include input-focus(var(--border--radius)); 52 | } 53 | 54 | &-check { 55 | border-radius: var(--border--radius); 56 | width: 1.6rem; 57 | height: 1.6rem; 58 | margin-top: 0.2rem; 59 | vertical-align: top; 60 | background-color: var(--box--backgroundColor); 61 | border: 1px solid var(--input--border); 62 | appearance: none; 63 | color-adjust: exact; 64 | cursor: pointer; 65 | transition: background-color 0.15s ease-in-out, background-position 0.15s ease-in-out, 66 | border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; 67 | 68 | @include input-focus(var(--border--radius)); 69 | 70 | &:checked { 71 | background-color: var(--layout_main--color); 72 | border-color: var(--layout_main--color); 73 | 74 | &[type='checkbox'] { 75 | background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e"); 76 | } 77 | } 78 | 79 | &:not(:disabled) + .form-label { 80 | cursor: pointer; 81 | } 82 | 83 | &:disabled { 84 | background-color: var(--input-disabled); 85 | cursor: default; 86 | } 87 | } 88 | 89 | &-select { 90 | border-radius: var(--border--radius); 91 | padding: 1.3rem 3.2rem 1.3rem 1.2rem; 92 | background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); 93 | background-repeat: no-repeat; 94 | background-position: right 0.75rem center; 95 | background-size: 16px 12px; 96 | background-color: var(--box--backgroundColor); 97 | color: inherit; 98 | border: 1px solid var(--input--border); 99 | appearance: none; 100 | transition: background-color 0.15s ease-in-out, background-position 0.15s ease-in-out, 101 | border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; 102 | 103 | &::-ms-expand { 104 | display: none; 105 | } 106 | 107 | @include input-focus(var(--border--radius)); 108 | } 109 | 110 | &-text { 111 | border-radius: var(--border--radius); 112 | border: 1px solid var(--input--border); 113 | background-color: var(--box--backgroundColor); 114 | padding: 1.3rem 1.2rem; 115 | color: inherit; 116 | font-family: inherit; 117 | width: 100%; 118 | max-width: 100% !important; 119 | height: 200px; 120 | transition: background-color 0.15s ease-in-out, background-position 0.15s ease-in-out, 121 | border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; 122 | 123 | @include input-focus(var(--border--radius)); 124 | 125 | &\:rcron { 126 | overflow: auto; 127 | height: 250px; 128 | } 129 | } 130 | 131 | &-file { 132 | border-radius: var(--border--radius); 133 | padding: 1.3rem 1.2rem; 134 | color: inherit; 135 | background-color: var(--box--backgroundColor); 136 | border: 1px solid var(--input--border); 137 | transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; 138 | 139 | @include input-focus(var(--border--radius)); 140 | } 141 | 142 | &-radio { 143 | border-radius: 50%; 144 | width: 1.6rem; 145 | height: 1.6rem; 146 | margin-top: 0.2rem; 147 | vertical-align: top; 148 | background-color: var(--box--backgroundColor); 149 | border: 1px solid var(--input--border); 150 | appearance: none; 151 | color-adjust: exact; 152 | cursor: pointer; 153 | transition: background-color 0.15s ease-in-out, background-position 0.15s ease-in-out, 154 | border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; 155 | 156 | &:checked { 157 | background-color: var(--layout_main--color); 158 | border-color: var(--layout_main--color); 159 | 160 | &[type='radio'] { 161 | background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); 162 | } 163 | } 164 | 165 | @include input-focus(50%); 166 | } 167 | } 168 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/style/scss/framework/_messages.scss: -------------------------------------------------------------------------------- 1 | .message { 2 | position: relative; 3 | margin-bottom: 10px; 4 | border-radius: 4px; 5 | padding: 16px 16px 16px 44px; 6 | color: #fff; 7 | 8 | h3 { 9 | padding: 0; 10 | margin: 0; 11 | font-size: 18px; 12 | } 13 | 14 | &::before { 15 | content: '\f129'; 16 | font-family: 'Font Awesome 5 Free'; 17 | font-weight: bold; 18 | position: absolute; 19 | top: 16px; 20 | left: 16px; 21 | font-size: 20px; 22 | line-height: 1; 23 | } 24 | 25 | &\:info { 26 | background-color: var(--message-info); 27 | } 28 | 29 | &\:succes { 30 | background-color: var(--message-succes); 31 | 32 | &::before { 33 | content: '\f00c'; 34 | } 35 | } 36 | 37 | &\:error { 38 | background-color: var(--message-error); 39 | 40 | &::before { 41 | content: '\f00d'; 42 | } 43 | } 44 | 45 | &\:general { 46 | background-color: var(--message-general); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/style/scss/framework/_popup.scss: -------------------------------------------------------------------------------- 1 | .popup { 2 | position: fixed !important; 3 | vertical-align: middle; 4 | display: none; 5 | opacity: 0; 6 | position: absolute; 7 | overflow: hidden; 8 | text-align: center; 9 | 10 | &_block { 11 | left: 50%; 12 | top: 100px; 13 | transform: translateX(-50%); 14 | z-index: 5001; 15 | width: 480px; 16 | 17 | @media screen and (max-width: 980px) { 18 | top: 50px; 19 | width: calc(100% - 20px); 20 | } 21 | } 22 | 23 | &_background { 24 | background-color: rgba(0, 0, 0, 0.4); 25 | top: 0; 26 | left: 0; 27 | right: 0; 28 | bottom: 0; 29 | z-index: 5000; 30 | } 31 | 32 | &_title { 33 | background-color: var(--theme-area_background_light); 34 | border-top-left-radius: var(--border--radius); 35 | border-top-right-radius: var(--border--radius); 36 | font-size: 18px; 37 | border-bottom: 1px solid var(--line-hr); 38 | } 39 | 40 | &_footer { 41 | background-color: var(--theme-area_background_light); 42 | border-bottom-left-radius: var(--border--radius); 43 | border-bottom-right-radius: var(--border--radius); 44 | border-top: 1px solid var(--line-hr); 45 | } 46 | 47 | &_icon { 48 | font-size: 36px; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/style/scss/framework/_tables.scss: -------------------------------------------------------------------------------- 1 | .table { 2 | &_box { 3 | overflow-x: auto; 4 | overflow-y: hidden; 5 | } 6 | 7 | table { 8 | width: 100%; 9 | border-spacing: 0; 10 | 11 | thead, 12 | td.listtable_top { 13 | background-color: var(--layout_main--color); 14 | font-weight: bold; 15 | color: #fff; 16 | } 17 | 18 | thead { 19 | th { 20 | padding: 5px; 21 | } 22 | 23 | th:first-child { 24 | border-top-left-radius: var(--border--radius); 25 | } 26 | 27 | th:last-child { 28 | border-top-right-radius: var(--border--radius); 29 | } 30 | } 31 | 32 | tbody { 33 | > tr.collapse { 34 | cursor: pointer; 35 | transition: background-color 0.2s ease; 36 | } 37 | 38 | tr.collapse:hover { 39 | background-color: var(--layout_main--color_0_15); 40 | } 41 | 42 | td { 43 | padding: 5px; 44 | 45 | &:first-child img { 46 | width: 16px; 47 | height: 16px; 48 | } 49 | } 50 | } 51 | } 52 | 53 | &_hide { 54 | > td { 55 | padding: 0 !important; 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /sourcebans-web-theme-fluent/theme.conf.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Updater | SourceBans++ 6 | 7 | 8 | 9 | 10 | 15 |
16 |
17 |
Updater
18 |
19 |

Updating...

20 | {foreach from=$updates item=update} 21 |
    {$update}
22 | {/foreach} 23 |
24 |
25 | 32 | 33 | 34 | --------------------------------------------------------------------------------