projectList.pug 6.11 KB
Newer Older
Rosanny Sihombing's avatar
Rosanny Sihombing committed
1
2
3
doctype html
html(lang="de")
  head
4
    title= "Projektdaten"
Rosanny Sihombing's avatar
Rosanny Sihombing committed
5
6
    meta(charset="UTF-8")
    meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no")
Rosanny Sihombing's avatar
Rosanny Sihombing committed
7
8
    link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css")
    link(rel="stylesheet", type="text/css", href="/css/m4lab.css")
Rosanny Sihombing's avatar
Rosanny Sihombing committed
9
    link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous")
Rosanny Sihombing's avatar
Rosanny Sihombing committed
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    style.
        .title-container {
            position: relative;
            color: white;
        }
        .card-title-bottom-left {
            position: absolute;
            bottom: 0px;
            width: 100%;
            color: black;
            font-weight: bold;
            background: rgb(255, 255, 255, 0.5);
            text-align: left;
            padding: 5px
        }
        .card-img-top {
            height: 15vw;
            object-fit: cover;
        }
Rosanny Sihombing's avatar
Rosanny Sihombing committed
29
  body
30
    div(class="container")
31
32
33
        div(class="row")
            div(class="col-md-12 margin_bottom_40")
                img(class="mx-auto" src="/img/ProjektcodeDaten.png" width="100%")
Rosanny Sihombing's avatar
Rosanny Sihombing committed
34
    div(class="container")
Wolfgang Knopki's avatar
Wolfgang Knopki committed
35
36
        p Hier finden Sie den direkten Zugang zu den Inhalten der bei uns gehosteten Projekte.
        p Weitere Informationen zu den bei uns gehosteten Projekten finden Sie <a href="/projektinformationen">hier</a>.
37
38

        div(class="container")
39
            p#projectCounter #{project.length} Projektdaten werden angezeigt
40
            div(class="pt-4 pb-4 form-row")
Rosanny Sihombing's avatar
Rosanny Sihombing committed
41
                div(class="form-group col-md-10")
42
                    input(id="searchInput", class="form-control form-control-lg", type="text", placeholder="Suchen Sie hier nach Themen und Projekten", onkeyup="searchFunction()")
Rosanny Sihombing's avatar
Rosanny Sihombing committed
43
44
45
46
47
48
                div(class="form-group col-md-2")
                    select#sortingSelect(class="form-control form-control-lg")
                        option(value="" disabled) Sort by
                        option(value="name") &nbsp;&nbsp; Name
                        option(value="created_at") &nbsp;&nbsp; Last created
                        option(value="updated_at") &nbsp;&nbsp; Last updated
Rosanny Sihombing's avatar
Rosanny Sihombing committed
49
50
            | <div class="row">
            for item in project
51
                div(class="card-deck py-4 col-sm")
52
                    div(class="card width_18" style="transform: rotate(0);")
Rosanny Sihombing's avatar
Rosanny Sihombing committed
53
54
55
56
                        div(class="title-container")
                            h5(class="card-title-bottom-left") #{item.name}
                            img(class="card-img-top", src=item.logo)
                        div(class="card-body")
Rosanny Sihombing's avatar
Rosanny Sihombing committed
57
58
59
60
61
                            div(class="row")
                                each key in item.keywords
                                    h6
                                        span(class="badge badge-pill badge-primary px-2") #{key}
                                        | &nbsp;
Rosanny Sihombing's avatar
Rosanny Sihombing committed
62
63
64
                            div(class="row")
                                div(class="col-9")
                                    p(class="card-text") #{item.desc}
65
                                a(href=item.weburl, class="no_text_decoration stretched-link", target="_blank")
Rosanny Sihombing's avatar
Rosanny Sihombing committed
66
            | </div>
Rosanny Sihombing's avatar
Rosanny Sihombing committed
67
68
69
70
71
72
73

    // jQuery
    script(src="https://code.jquery.com/jquery-3.3.1.min.js")
    script(src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js", integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1", crossorigin="anonymous")
    // Bootstrap
    script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous")
    // Header
74
    script(src="/js/headfoot.js")
Rosanny Sihombing's avatar
Rosanny Sihombing committed
75
76
    script.
        function searchFunction() {
Rosanny Sihombing's avatar
Rosanny Sihombing committed
77
78
            var input = document.getElementById("searchInput")
            var filter = input.value.toUpperCase()
Rosanny Sihombing's avatar
Rosanny Sihombing committed
79
            
Rosanny Sihombing's avatar
Rosanny Sihombing committed
80
            var cardsCol = document.getElementsByClassName("col-sm")
Rosanny Sihombing's avatar
Rosanny Sihombing committed
81
82
83
            var cardTitle, cardText, titleValue, textValue
            
            var i
Rosanny Sihombing's avatar
Rosanny Sihombing committed
84
85
86
87
88
            var counterBlock = 0
            for (i = 0; i < cardsCol.length; i++) {
                cardTitle = cardsCol[i].getElementsByClassName("card-title-bottom-left");
                cardBody = cardsCol[i].getElementsByClassName("card-body");
                cardText = cardsCol[i].getElementsByClassName("card-text");
Rosanny Sihombing's avatar
Rosanny Sihombing committed
89
90
                
                titleValue = cardTitle[0].textContent || cardTitle[0].innerText;
Rosanny Sihombing's avatar
Rosanny Sihombing committed
91
                bodyValue = cardBody[0].textContent || cardBody[0].innerText;
Rosanny Sihombing's avatar
Rosanny Sihombing committed
92
93
                textValue = cardText[0].textContent || cardText[0].innerText;
                
Rosanny Sihombing's avatar
Rosanny Sihombing committed
94
                if (titleValue.toUpperCase().indexOf(filter) > -1 || bodyValue.toUpperCase().indexOf(filter) > -1 || textValue.toUpperCase().indexOf(filter) > -1) {
Rosanny Sihombing's avatar
Rosanny Sihombing committed
95
96
                    cardsCol[i].style.display = "block"
                    counterBlock++
Rosanny Sihombing's avatar
Rosanny Sihombing committed
97
                } else {
Rosanny Sihombing's avatar
Rosanny Sihombing committed
98
                    cardsCol[i].style.display = "none"
Rosanny Sihombing's avatar
Rosanny Sihombing committed
99
100
                }
            }
Rosanny Sihombing's avatar
Rosanny Sihombing committed
101

102
            document.getElementById("projectCounter").innerHTML = counterBlock+" Projektdaten werden angezeigt"
Rosanny Sihombing's avatar
Rosanny Sihombing committed
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
        }

        $("#sortingSelect").change(function() {
            window.location.replace('/projektdaten?sort='+$("#sortingSelect").val())
        });
        function getQueryStringParams(params, url) {
            // first decode URL to get readable data
            var href = decodeURIComponent(url || window.location.href);
            // regular expression to get value
            var regEx = new RegExp('[?&]' + params + '=([^&#]*)', 'i');
            var value = regEx.exec(href);
            // return the value if exist
            return value ? value[1] : null;
        }
        function setSortSelect() {
            let sortKeyword = getQueryStringParams('sort', window.location.href)
            if (sortKeyword == "created_at") {
                $("#sortingSelect").val("created_at")
            } else if(sortKeyword == "updated_at") {
                $("#sortingSelect").val("updated_at")
            } else {
                $("#sortingSelect").val("name")
            }
        }
        setSortSelect()