Compare commits
	
		
			11 Commits
		
	
	
		
			de751e1595
			...
			e8c788832c
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						e8c788832c
	
				 | 
					
					
						|||
| 
						
						
							
						
						2d760cda16
	
				 | 
					
					
						|||
| 
						
						
							
						
						2256fbfdf9
	
				 | 
					
					
						|||
| 
						
						
							
						
						d5e684eb98
	
				 | 
					
					
						|||
| 
						
						
							
						
						da9c3be1cd
	
				 | 
					
					
						|||
| 
						
						
							
						
						970a06cf9c
	
				 | 
					
					
						|||
| 
						
						
							
						
						39258f37fc
	
				 | 
					
					
						|||
| 
						
						
							
						
						2ae9a04aae
	
				 | 
					
					
						|||
| 
						
						
							
						
						91938efe35
	
				 | 
					
					
						|||
| 
						
						
							
						
						b8e17331cc
	
				 | 
					
					
						|||
| 
						
						
							
						
						a41c6717c8
	
				 | 
					
					
						
							
								
								
									
										2
									
								
								main.py
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								main.py
									
									
									
									
									
								
							@@ -46,7 +46,7 @@ def add_players(players: list[Player]):
 | 
			
		||||
 | 
			
		||||
def list_players():
 | 
			
		||||
    with Session(engine) as session:
 | 
			
		||||
        statement = select(Player)
 | 
			
		||||
        statement = select(Player).order_by(Player.name)
 | 
			
		||||
        return session.exec(statement).fetchall()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										128
									
								
								src/App.css
									
									
									
									
									
								
							
							
						
						
									
										128
									
								
								src/App.css
									
									
									
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
* {
 | 
			
		||||
  border-radius: 8px;
 | 
			
		||||
  border-radius: 16px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
body {
 | 
			
		||||
@@ -7,15 +7,19 @@ body {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  z-index: 0;
 | 
			
		||||
  color: black;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  overflow-wrap: anywhere;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
footer {
 | 
			
		||||
  font-size: x-small;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#root {
 | 
			
		||||
  max-width: 1280px;
 | 
			
		||||
  margin: 0 auto;
 | 
			
		||||
  padding: 8px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.grey {
 | 
			
		||||
@@ -25,6 +29,7 @@ body {
 | 
			
		||||
.hint {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  font-size: 80%;
 | 
			
		||||
  padding: 8px;
 | 
			
		||||
  top: auto;
 | 
			
		||||
  left: 4px;
 | 
			
		||||
  bottom: auto;
 | 
			
		||||
@@ -33,16 +38,17 @@ body {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
h1,
 | 
			
		||||
h2 {
 | 
			
		||||
h2,
 | 
			
		||||
h3 {
 | 
			
		||||
  margin-top: 0px;
 | 
			
		||||
  margin-bottom: 0px;
 | 
			
		||||
  padding: 8px 16px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.container {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  flex-wrap: nowrap;
 | 
			
		||||
  justify-content: space-evenly;
 | 
			
		||||
  min-width: min(80vw, 800px);
 | 
			
		||||
  width: min(96vw, 900px);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.dragbox {
 | 
			
		||||
@@ -52,6 +58,19 @@ h2 {
 | 
			
		||||
  height: 92%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.box {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  flex: 1;
 | 
			
		||||
  &.one {
 | 
			
		||||
    max-width: min(96%, 768px);
 | 
			
		||||
    margin: 4px auto;
 | 
			
		||||
  }
 | 
			
		||||
  padding: 4px;
 | 
			
		||||
  margin: 4px 0.5%;
 | 
			
		||||
  border-style: solid;
 | 
			
		||||
  border-color: black;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.reservoir {
 | 
			
		||||
  flex-direction: unset;
 | 
			
		||||
  flex-wrap: wrap;
 | 
			
		||||
@@ -59,28 +78,9 @@ h2 {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.box {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  &.one {
 | 
			
		||||
    max-width: min(80vw, 500px);
 | 
			
		||||
  }
 | 
			
		||||
  &.two {
 | 
			
		||||
    min-width: 43%;
 | 
			
		||||
    max-width: 20vw;
 | 
			
		||||
  }
 | 
			
		||||
  &.three {
 | 
			
		||||
    min-width: 27%;
 | 
			
		||||
    max-width: 10vw;
 | 
			
		||||
  }
 | 
			
		||||
  padding: 4px;
 | 
			
		||||
  margin: 4px auto;
 | 
			
		||||
  border-style: solid;
 | 
			
		||||
  border-color: black;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.user {
 | 
			
		||||
  max-width: 400px;
 | 
			
		||||
  min-width: 200px;
 | 
			
		||||
  max-width: 240px;
 | 
			
		||||
  min-width: 100px;
 | 
			
		||||
  margin: 4px auto;
 | 
			
		||||
  .item {
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
@@ -92,27 +92,38 @@ h2 {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  font-size: small;
 | 
			
		||||
  border: 3px dashed black;
 | 
			
		||||
  border-radius: 4px;
 | 
			
		||||
  border-radius: 1.2em;
 | 
			
		||||
  margin: 8px auto;
 | 
			
		||||
  padding: 4px 8px;
 | 
			
		||||
  padding: 4px 16px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.extra-margin {
 | 
			
		||||
  padding: 0px 8px;
 | 
			
		||||
  margin: auto;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
button {
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  color: ghostwhite;
 | 
			
		||||
  font-size: large;
 | 
			
		||||
  color: aliceblue;
 | 
			
		||||
  background-color: black;
 | 
			
		||||
  border: 4px solid black;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  border-radius: 1.2em;
 | 
			
		||||
  z-index: 1;
 | 
			
		||||
  &:focus {
 | 
			
		||||
    outline: black;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media only screen and (max-width: 768px) {
 | 
			
		||||
  .submit_text {
 | 
			
		||||
    display: none;
 | 
			
		||||
  }
 | 
			
		||||
  &:hover {
 | 
			
		||||
    border-color: black;
 | 
			
		||||
  .submit {
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    right: 16px;
 | 
			
		||||
    bottom: 16px;
 | 
			
		||||
    padding: 0px;
 | 
			
		||||
    background-color: unset;
 | 
			
		||||
    font-size: xx-large;
 | 
			
		||||
    margin-bottom: 20px;
 | 
			
		||||
    margin-right: 20px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -128,15 +139,23 @@ button {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tablink {
 | 
			
		||||
  background-color: unset;
 | 
			
		||||
  font-weight: unset;
 | 
			
		||||
  color: black;
 | 
			
		||||
  border: 2px solid black;
 | 
			
		||||
  border-radius: unset;
 | 
			
		||||
  outline: black;
 | 
			
		||||
  color: white;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  padding: 8px 16px;
 | 
			
		||||
  width: 50%;
 | 
			
		||||
  flex: 1;
 | 
			
		||||
  margin: 4px auto;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navbar {
 | 
			
		||||
  button {
 | 
			
		||||
    font-size: medium;
 | 
			
		||||
    margin: 4px 0.5%;
 | 
			
		||||
    padding-top: 4px;
 | 
			
		||||
    padding-bottom: 4px;
 | 
			
		||||
    opacity: 50%;
 | 
			
		||||
    &:hover {
 | 
			
		||||
      opacity: 75%;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Style the tab content (and add height:100% for full page content) */
 | 
			
		||||
@@ -154,6 +173,29 @@ button {
 | 
			
		||||
  font-size: 150%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.logo {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  height: 160px;
 | 
			
		||||
  img {
 | 
			
		||||
    display: block;
 | 
			
		||||
    margin: auto;
 | 
			
		||||
  }
 | 
			
		||||
  h3 {
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    width: 200px;
 | 
			
		||||
    top: 33%;
 | 
			
		||||
    left: 50%;
 | 
			
		||||
    transform: translate(-50%, -50%);
 | 
			
		||||
    color: aliceblue;
 | 
			
		||||
    background-color: black;
 | 
			
		||||
    border-radius: unset;
 | 
			
		||||
    letter-spacing: 8px;
 | 
			
		||||
    padding: 0px 40px;
 | 
			
		||||
    font-family: monospace;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.loader {
 | 
			
		||||
  display: block;
 | 
			
		||||
  position: relative;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								src/App.tsx
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								src/App.tsx
									
									
									
									
									
								
							@@ -5,15 +5,24 @@ import Rankings from "./Rankings";
 | 
			
		||||
function App() {
 | 
			
		||||
  return (
 | 
			
		||||
    <>
 | 
			
		||||
      <a href={baseUrl}>
 | 
			
		||||
        <img alt="logo" height="128px" src="logo.svg" />
 | 
			
		||||
      </a>
 | 
			
		||||
      <h1>cutt</h1>
 | 
			
		||||
      <span className="grey">cool ultimate team tool</span>
 | 
			
		||||
      <div className="logo">
 | 
			
		||||
        <a href={baseUrl}>
 | 
			
		||||
          <img alt="logo" height="66%" src="logo.svg" />
 | 
			
		||||
        </a>
 | 
			
		||||
        <h3 className="centered">cutt</h3>
 | 
			
		||||
        <span className="grey">cool ultimate team tool</span>
 | 
			
		||||
      </div>
 | 
			
		||||
      <Rankings />
 | 
			
		||||
      <footer>
 | 
			
		||||
        <p className="grey">
 | 
			
		||||
          something not working? message <a href="https://t.me/x0124816">me</a>.
 | 
			
		||||
          something not working?
 | 
			
		||||
          <br />
 | 
			
		||||
          message <a href="https://t.me/x0124816">me</a>.
 | 
			
		||||
          <br />
 | 
			
		||||
          or fix it here:{" "}
 | 
			
		||||
          <a href="https://git.0124816.xyz/julius/cutt" key="gitea">
 | 
			
		||||
            <img src="gitea.svg" alt="gitea" height="16" />
 | 
			
		||||
          </a>
 | 
			
		||||
        </p>
 | 
			
		||||
      </footer>
 | 
			
		||||
    </>
 | 
			
		||||
 
 | 
			
		||||
@@ -40,9 +40,9 @@ export function SelectUser({
 | 
			
		||||
  return (
 | 
			
		||||
    <>
 | 
			
		||||
      <div className="box user">
 | 
			
		||||
        <span>your name?</span>
 | 
			
		||||
        {user.length < 1 ? (
 | 
			
		||||
          <>
 | 
			
		||||
            <span>your name?</span>
 | 
			
		||||
            <br /> <span className="grey hint">drag your name here</span>
 | 
			
		||||
          </>
 | 
			
		||||
        ) : (
 | 
			
		||||
@@ -55,7 +55,6 @@ export function SelectUser({
 | 
			
		||||
            >
 | 
			
		||||
              {" ✕"}
 | 
			
		||||
            </span>
 | 
			
		||||
            <br />
 | 
			
		||||
          </>
 | 
			
		||||
        )}
 | 
			
		||||
        <PlayerList
 | 
			
		||||
@@ -175,7 +174,9 @@ export function Chemistry({ user, players }: PlayerInfoProps) {
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <button onClick={() => handleSubmit()}>submit</button>
 | 
			
		||||
      <button className="submit" onClick={() => handleSubmit()}>
 | 
			
		||||
        💾 <span className="submit_text">submit</span>
 | 
			
		||||
      </button>
 | 
			
		||||
      <dialog
 | 
			
		||||
        id="ChemistryDialog"
 | 
			
		||||
        onClick={(event) => {
 | 
			
		||||
@@ -233,8 +234,8 @@ export function MVP({ user, players }: PlayerInfoProps) {
 | 
			
		||||
          <h1>🏆</h1>
 | 
			
		||||
          {rankedPlayers.length < 1 && (
 | 
			
		||||
            <span className="grey hint">
 | 
			
		||||
              carefully place the <i>Most Valuable Player</i> (according to your
 | 
			
		||||
              humble opinion) in this box
 | 
			
		||||
              carefully place as many of the <i>Most Valuable Players</i>{" "}
 | 
			
		||||
              (according to your humble opinion) in this box
 | 
			
		||||
            </span>
 | 
			
		||||
          )}
 | 
			
		||||
          <PlayerList
 | 
			
		||||
@@ -252,7 +253,9 @@ export function MVP({ user, players }: PlayerInfoProps) {
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <button onClick={() => handleSubmit()}>submit</button>
 | 
			
		||||
      <button className="submit" onClick={() => handleSubmit()}>
 | 
			
		||||
        💾 <span className="submit_text">submit</span>
 | 
			
		||||
      </button>
 | 
			
		||||
      <dialog
 | 
			
		||||
        id="MVPDialog"
 | 
			
		||||
        onClick={(event) => {
 | 
			
		||||
@@ -276,10 +279,7 @@ function openPage(pageName: string, color: string) {
 | 
			
		||||
  tablinks = document.getElementsByClassName("tablink");
 | 
			
		||||
  for (i = 0; i < tablinks.length; i++) {
 | 
			
		||||
    let button = tablinks[i] as HTMLElement;
 | 
			
		||||
    button.style.backgroundColor = "unset";
 | 
			
		||||
    button.style.textDecoration = "unset";
 | 
			
		||||
    button.style.fontWeight = "unset";
 | 
			
		||||
    button.style.color = "unset";
 | 
			
		||||
    button.style.opacity = "50%";
 | 
			
		||||
  }
 | 
			
		||||
  // Show the specific tab content
 | 
			
		||||
  (document.getElementById(pageName) as HTMLElement).style.display = "block";
 | 
			
		||||
@@ -287,10 +287,8 @@ function openPage(pageName: string, color: string) {
 | 
			
		||||
  let activeButton = document.getElementById(
 | 
			
		||||
    pageName + "Button"
 | 
			
		||||
  ) as HTMLElement;
 | 
			
		||||
  activeButton.style.textDecoration = "underline";
 | 
			
		||||
  activeButton.style.fontWeight = "bold";
 | 
			
		||||
  activeButton.style.backgroundColor = "#3366cc";
 | 
			
		||||
  activeButton.style.color = "white";
 | 
			
		||||
  activeButton.style.opacity = "100%";
 | 
			
		||||
  document.body.style.backgroundColor = color;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -315,22 +313,22 @@ export default function Rankings() {
 | 
			
		||||
      <SelectUser {...{ user, setUser, players, setPlayers }} />
 | 
			
		||||
      {user.length === 1 && (
 | 
			
		||||
        <>
 | 
			
		||||
          <div className="container">
 | 
			
		||||
            <button
 | 
			
		||||
              className="tablink"
 | 
			
		||||
              id="ChemistryButton"
 | 
			
		||||
              onClick={() => openPage("Chemistry", "aliceblue")}
 | 
			
		||||
            >
 | 
			
		||||
              Chemistry
 | 
			
		||||
            </button>
 | 
			
		||||
            <button
 | 
			
		||||
              className="tablink"
 | 
			
		||||
              id="MVPButton"
 | 
			
		||||
              onClick={() => openPage("MVP", "aliceblue")}
 | 
			
		||||
            >
 | 
			
		||||
              MVP
 | 
			
		||||
            </button>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div className="container navbar">
 | 
			
		||||
              <button
 | 
			
		||||
                className="tablink"
 | 
			
		||||
                id="ChemistryButton"
 | 
			
		||||
                onClick={() => openPage("Chemistry", "aliceblue")}
 | 
			
		||||
              >
 | 
			
		||||
                🧪 Chemistry
 | 
			
		||||
              </button>
 | 
			
		||||
              <button
 | 
			
		||||
                className="tablink"
 | 
			
		||||
                id="MVPButton"
 | 
			
		||||
                onClick={() => openPage("MVP", "aliceblue")}
 | 
			
		||||
              >
 | 
			
		||||
                🏆 MVP
 | 
			
		||||
              </button>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
          <div id="Chemistry" className="tabcontent">
 | 
			
		||||
            <Chemistry {...{ user, players }} />
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user