projectList.pug 6.26 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>.
Athanasios's avatar
Athanasios committed
37
        p Wenn Sie zu einem Projekt beitragen möchten, oder eines erstellen möchten, finden Sie weitere Informationen <a href="/help/gitlab.html">hier</a>.
38
39

        div(class="container")
40
            p#projectCounter #{project.length} Projektdaten werden angezeigt
41
            div(class="pt-4 pb-4 form-row")
Rosanny Sihombing's avatar
Rosanny Sihombing committed
42
                div(class="form-group col-md-10")
43
                    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
44
45
46
47
48
49
                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
50
51
            | <div class="row">
            for item in project
52
                div(class="card-deck py-4 col-sm")
53
                    div(class="card width_18" style="transform: rotate(0);")
Rosanny Sihombing's avatar
Rosanny Sihombing committed
54
55
56
57
                        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
58
59
60
61
62
                            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
63
64
65
                            div(class="row")
                                div(class="col-9")
                                    p(class="card-text") #{item.desc}
66
                                a(href=item.weburl, class="no_text_decoration stretched-link", target="_blank")
Rosanny Sihombing's avatar
Rosanny Sihombing committed
67
            | </div>
Rosanny Sihombing's avatar
Rosanny Sihombing committed
68
69
70
71
72
73
74

    // 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
75
    script(src="/js/headfoot.js")
Rosanny Sihombing's avatar
Rosanny Sihombing committed
76
77
    script.
        function searchFunction() {
Rosanny Sihombing's avatar
Rosanny Sihombing committed
78
79
            var input = document.getElementById("searchInput")
            var filter = input.value.toUpperCase()
Rosanny Sihombing's avatar
Rosanny Sihombing committed
80
            
Rosanny Sihombing's avatar
Rosanny Sihombing committed
81
            var cardsCol = document.getElementsByClassName("col-sm")
Rosanny Sihombing's avatar
Rosanny Sihombing committed
82
83
84
            var cardTitle, cardText, titleValue, textValue
            
            var i
Rosanny Sihombing's avatar
Rosanny Sihombing committed
85
86
87
88
89
            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
90
91
                
                titleValue = cardTitle[0].textContent || cardTitle[0].innerText;
Rosanny Sihombing's avatar
Rosanny Sihombing committed
92
                bodyValue = cardBody[0].textContent || cardBody[0].innerText;
Rosanny Sihombing's avatar
Rosanny Sihombing committed
93
94
                textValue = cardText[0].textContent || cardText[0].innerText;
                
Rosanny Sihombing's avatar
Rosanny Sihombing committed
95
                if (titleValue.toUpperCase().indexOf(filter) > -1 || bodyValue.toUpperCase().indexOf(filter) > -1 || textValue.toUpperCase().indexOf(filter) > -1) {
Rosanny Sihombing's avatar
Rosanny Sihombing committed
96
97
                    cardsCol[i].style.display = "block"
                    counterBlock++
Rosanny Sihombing's avatar
Rosanny Sihombing committed
98
                } else {
Rosanny Sihombing's avatar
Rosanny Sihombing committed
99
                    cardsCol[i].style.display = "none"
Rosanny Sihombing's avatar
Rosanny Sihombing committed
100
101
                }
            }
Rosanny Sihombing's avatar
Rosanny Sihombing committed
102

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

        $("#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()