Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc01a8f0

Browse files
Dan career form (#1366)
1 parent0307343 commitc01a8f0

File tree

31 files changed

+761
-297
lines changed

31 files changed

+761
-297
lines changed

‎pgml-dashboard/src/api/cms.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -773,6 +773,17 @@ async fn get_careers(
773773
CAREERS.render(&doc_file_path,&canonical, cluster).await
774774
}
775775

776+
#[get("/careers/apply/<title>", rank =4)]
777+
pubasyncfncareers_apply(title:PathBuf,cluster:&Cluster) ->Result<ResponseOk,crate::responses::NotFound>{
778+
let layout =
779+
crate::components::layouts::marketing::Base::new("Apply for a career",Some(&cluster)).no_transparent_nav();
780+
781+
let job_title = title.display().to_string().replace("-"," ");
782+
let page =crate::components::pages::careers::Apply::new().job_title(&job_title);
783+
784+
Ok(ResponseOk(layout.render(page)))
785+
}
786+
776787
#[get("/docs/<path..>", rank =5)]
777788
asyncfnget_docs(
778789
path:PathBuf,
@@ -876,6 +887,7 @@ pub fn routes() -> Vec<Route> {
876887
blog_landing_page,
877888
docs_landing_page,
878889
careers_landing_page,
890+
careers_apply,
879891
get_blog,
880892
get_blog_asset,
881893
get_careers,

‎pgml-dashboard/src/components/accordian/accordian_controller.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,17 @@ export default class extends Controller {
1313
}else{
1414
this.bodies[i].style.maxHeight=this.bodies[i].offsetHeight+"px";
1515
}
16-
}
16+
}
1717
}
1818

19-
2019
titleClick(e){
2120
lettarget=e.currentTarget.getAttribute("data-value");
2221
e.currentTarget.classList.add("selected");
2322

2423
letbody=document.querySelector(`[data-accordian-target="${target}"]`);
2524
body.classList.add("selected");
2625
body.style.maxHeight=this.heights.get(body)+"px";
27-
26+
2827
for(leti=0;i<this.bodies.length;i++){
2928
if(body!=this.bodies[i]){
3029
this.bodies[i].classList.remove("selected");

‎pgml-dashboard/src/components/carousel/carousel_controller.js

Lines changed: 42 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,87 @@
1-
import{Controller}from'@hotwired/stimulus'
1+
import{Controller}from"@hotwired/stimulus";
22

33
exportdefaultclassextendsController{
4-
statictargets=[
5-
"carousel","carouselTimer","template"
6-
]
4+
statictargets=["carousel","carouselTimer","template"];
75

86
initialize(){
9-
this.paused=false
10-
this.runtime=0
7+
this.paused=false;
8+
this.runtime=0;
119
this.times=1;
1210
}
1311

1412
connect(){
15-
// dont cycle carousel if it only hase one item.
16-
if(this.templateTargets.length>1){
17-
this.cycle()
13+
// dont cycle carousel if it only hase one item.
14+
if(this.templateTargets.length>1){
15+
this.cycle();
1816
}
1917
}
2018

2119
changeFeatured(next){
22-
letcurrent=this.carouselTarget.children[0]
23-
letnextItem=next.content.cloneNode(true)
24-
25-
this.carouselTarget.appendChild(nextItem)
20+
letcurrent=this.carouselTarget.children[0];
21+
letnextItem=next.content.cloneNode(true);
2622

27-
if(current){
23+
this.carouselTarget.appendChild(nextItem);
24+
25+
if(current){
2826
current.style.marginLeft="-100%";
29-
setTimeout(()=>{
30-
this.carouselTarget.removeChild(current)
31-
},700)
27+
setTimeout(()=>{
28+
this.carouselTarget.removeChild(current);
29+
},700);
3230
}
3331
}
3432

3533
changeIndicator(current,next){
3634
lettimers=this.carouselTimerTargets;
3735
letcurrentTimer=timers[current];
38-
letnextTimer=timers[next]
36+
letnextTimer=timers[next];
3937

40-
if(currentTimer){
41-
currentTimer.classList.remove("timer-active")
42-
currentTimer.style.width="1rem"
38+
if(currentTimer){
39+
currentTimer.classList.remove("timer-active");
40+
currentTimer.style.width="1rem";
41+
}
42+
if(nextTimer){
43+
nextTimer.style.width="4rem";
44+
nextTimer.classList.add("timer-active");
4345
}
44-
if(nextTimer){
45-
nextTimer.style.width="4rem"
46-
nextTimer.classList.add("timer-active")
47-
}
4846
}
4947

5048
Pause(){
51-
this.paused=true
49+
this.paused=true;
5250
}
5351

5452
Resume(){
55-
this.paused=false
53+
this.paused=false;
5654
}
5755

5856
cycle(){
5957
this.interval=setInterval(()=>{
6058
// maintain paused state through entire loop
61-
letpaused=this.paused
59+
letpaused=this.paused;
6260

63-
letactiveTimer=document.getElementsByClassName("timer-active")[0]
64-
if(paused){
65-
if(activeTimer){
66-
activeTimer.classList.add("timer-pause")
61+
letactiveTimer=document.getElementsByClassName("timer-active")[0];
62+
if(paused){
63+
if(activeTimer){
64+
activeTimer.classList.add("timer-pause");
6765
}
6866
}else{
69-
if(activeTimer&&activeTimer.classList.contains("timer-pause")){
70-
activeTimer.classList.remove("timer-pause")
67+
if(activeTimer&&activeTimer.classList.contains("timer-pause")){
68+
activeTimer.classList.remove("timer-pause");
7169
}
7270
}
7371

74-
if(!paused&&this.runtime%5==0){
75-
letcurrentIndex=this.times%this.templateTargets.length
76-
letnextIndex=(this.times+1)%this.templateTargets.length
77-
78-
this.changeIndicator(currentIndex,nextIndex)
79-
this.changeFeatured(
80-
this.templateTargets[nextIndex]
81-
)
82-
this.times++
72+
if(!paused&&this.runtime%5==0){
73+
letcurrentIndex=this.times%this.templateTargets.length;
74+
letnextIndex=(this.times+1)%this.templateTargets.length;
75+
76+
this.changeIndicator(currentIndex,nextIndex);
77+
this.changeFeatured(this.templateTargets[nextIndex]);
78+
this.times++;
8379
}
8480

85-
if(!paused){
86-
this.runtime++
81+
if(!paused){
82+
this.runtime++;
8783
}
88-
},1000)
84+
},1000);
8985
}
9086

9187
disconnect(){

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp