2015-05-05 03:10:25 +02:00
< section class = "heading b-b" >
< div class = "row no-gutter" >
< div class = "col-xs-2 col-sm-2 col-md-1" >
< section class = "heading-btn" >
2022-01-11 11:03:27 +01:00
< a ng-click = "backPrevLocation($event)" > < i class = "fas fa-long-arrow-alt-left " > < / i > < / a >
2015-05-05 03:10:25 +02:00
< / section >
< / div >
< div class = "col-xs-10 col-sm-10 col-md-8 b-l b-r-md" >
< section class = "heading-title" >
2019-12-16 16:54:40 +01:00
< h1 translate > {{ 'app.public.projects_list.the_fablab_projects' }}< / h1 >
2015-05-05 03:10:25 +02:00
< / section >
< / div >
2020-04-29 18:21:06 +02:00
< div class = "col-xs-12 col-sm-12 col-md-3 b-t hide-b-md" ng-if = "isAuthorized(['admin','member', 'manager'])" >
2015-05-05 03:10:25 +02:00
< section class = "heading-actions wrapper" >
2019-12-16 16:54:40 +01:00
< a class = "btn btn-lg btn-warning bg-white b-2x rounded m-t-sm upper text-sm" ui-sref = "app.logged.projects_new" role = "button" translate > {{ 'app.public.projects_list.add_a_project' }}< / a >
2015-05-05 03:10:25 +02:00
< / section >
< / div >
< / div >
< / section >
2023-01-20 18:17:50 +01:00
< section class = "projects" >
< div class = "projects-filters" >
< header >
< h3 > Filter< / h3 >
< a href = "javascript:void(0);" class = "fab-button is-black" name = "button" ng-click = "resetFiltersAndTriggerSearch()" ng-show = "!openlab.searchOverWholeNetwork" > {{ 'app.public.projects_list.reset_all_filters' | translate }}< / a >
< / header >
< span class = "switch" ng-if = "openlab.projectsActive" uib-tooltip = "{{ 'app.public.projects_list.tooltip_openlab_projects_switch' | translate }}" tooltip-trigger = "mouseenter" >
< label for = "searchOverWholeNetwork" class = "control-label text-sm" translate > {{ 'app.public.projects_list.network_search' }}< / label >
< input bs-switch
ng-model="openlab.searchOverWholeNetwork"
type="checkbox"
class="form-control"
switch-on-text="{{ 'app.shared.buttons.yes' | translate }}"
switch-off-text="{{ 'app.shared.buttons.no' | translate }}"
switch-animate="true"
ng-change="searchOverWholeNetworkChanged()"
/>
< / span >
2015-05-05 03:10:25 +02:00
2023-01-20 18:17:50 +01:00
< form role = "form" ng-submit = "setUrlQueryParams(search) && triggerSearch()" >
< div class = "keywords" >
< input type = "search" class = "form-control" placeholder = "{{ 'app.public.projects_list.keywords' | translate }}" ng-model = "search.q" / >
< button type = "submit" class = "fab-button fab-button--icon-only is-secondary" > < i class = "fas fa-search" > < / i > < / button >
<!-- <button type="submit" class="btn btn - warning" translate>{{ 'app.public.projects_list.search' }}</button> -->
2016-04-22 18:17:55 +02:00
< / div >
2023-01-20 18:17:50 +01:00
< / form >
2015-05-05 03:10:25 +02:00
2023-01-20 18:17:50 +01:00
< div class = "grp" ng-if = "!openlab.searchOverWholeNetwork" >
< select ng-show = "isAuthenticated()" ng-model = "search.from" ng-change = "setUrlQueryParams(search) && triggerSearch()" class = "form-control" >
< option value = "" translate > {{ 'app.public.projects_list.all_projects' }}< / option >
< option value = "mine" translate > {{ 'app.public.projects_list.my_projects' }}< / option >
< option value = "collaboration" translate > {{ 'app.public.projects_list.projects_to_whom_i_take_part_in' }}< / option >
< / select >
2015-05-05 03:10:25 +02:00
2023-01-20 18:17:50 +01:00
< select ng-model = "search.machine_id" ng-change = "setUrlQueryParams(search) && triggerSearch()" class = "form-control" ng-options = "m.id as m.name for m in machines" >
< option value = "" translate > {{ 'app.public.projects_list.all_machines' }}< / option >
< / select >
2015-05-05 03:10:25 +02:00
2023-01-20 18:17:50 +01:00
< select ng-model = "search.theme_id" ng-change = "setUrlQueryParams(search) && triggerSearch()" class = "form-control" ng-options = "t.id as t.name for t in themes" >
< option value = "" translate > {{ 'app.public.projects_list.all_themes' }}< / option >
< / select >
2016-05-02 16:10:48 +02:00
2023-01-20 18:17:50 +01:00
< select ng-model = "search.component_id" ng-change = "setUrlQueryParams(search) && triggerSearch()" class = "form-control" ng-options = "t.id as t.name for t in components" >
< option value = "" translate > {{ 'app.public.projects_list.all_materials' }}< / option >
< / select >
2016-09-29 11:54:08 +02:00
2023-01-20 18:17:50 +01:00
< status-filter on-filter-change = "onStatusChange" current-status-index = "search.status_id" / >
< / div >
< / div >
2015-05-05 03:10:25 +02:00
2023-01-20 18:17:50 +01:00
< div class = "projects-list" >
< span ng-show = "projects && (projects.length == 0)" > {{ 'app.public.projects_list.project_search_result_is_empty' | translate }} < / span >
< div class = "project-card" ng-repeat = "project in projects" ng-click = "showProject(project)" >
< div class = "project-image" style = "background-image: url({{project.project_image}});" >
< img src = "data:image/png;base64," data-src = "holder.js/100%x100%/text:/font:'Font Awesome 5 Free'/icon" bs-holder ng-if = "!project.project_image" >
2016-03-23 18:39:41 +01:00
< / div >
2016-05-02 16:10:48 +02:00
2023-01-20 18:17:50 +01:00
< div class = "project-info" >
2019-12-16 16:54:40 +01:00
< span class = "badge" ng-if = "project.state == 'draft'" translate > {{ 'app.public.projects_list.rough_draft' }}< / span >
2023-01-20 18:17:50 +01:00
< p class = "name" > {{project.name}}< / p >
< span class = "openlab" ng-if = "openlab.searchOverWholeNetwork" > < i class = "fa fa-tag" > < / i > {{ project.app_name }}< / span >
2016-06-01 10:47:00 +02:00
< / div >
2016-03-23 18:39:41 +01:00
< / div >
2023-01-20 18:17:50 +01:00
< a class = "btn btn-warning" ng-click = "loadMore()" ng-if = "projectsPagination.hasNextPage()" translate > {{ 'app.public.projects_list.load_next_projects' }}< / a >
2015-05-05 03:10:25 +02:00
< / div >
< / section >