index.html 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. {% extends "master.html" %}
  2. {% block title %}Home{% endblock %}
  3. {% set tag = "home" %}
  4. {% from "_render_repo.html" import render_repos, render_user_repos%}
  5. {% from "_browseheader.html" import browse_header %}
  6. {% from "_projectstring.html" import projectstring, projecticon %}
  7. {% block header %}
  8. <link href="{{ url_for('static', filename='vendor/selectize/selectize.bootstrap3.css') }}?version={{ g.version}}"
  9. rel="stylesheet" />
  10. {% endblock %}
  11. {% block content %}
  12. <div class="bg-light border border-top-0 pt-2">
  13. <div class="container">
  14. {{ browse_header(select=select) }}
  15. </div>
  16. </div>
  17. {% if namespace %}
  18. <div class="container mt-5">
  19. <p>
  20. These {{projectstring(plural=True)}} are under the `{{ namespace }}` namespace making them
  21. likely related to the <a href="{{ url_for('ui_ns.view_group', group=namespace)
  22. }}">{{ namespace }}</a>
  23. group.
  24. </p>
  25. </div>
  26. {% endif %}
  27. <div class="container mt-5">
  28. {{ render_repos(
  29. repos, total_page, 'page', page,
  30. 'All '+projectstring()+'s', repos_length, 'repos', username, sorting=sorting, select=select) }}
  31. </div>
  32. {% endblock %}
  33. {% block jscripts %}
  34. {{ super() }}
  35. <script src="{{ url_for('static', filename='vendor/selectize/selectize.min.js') }}?version={{ g.version}}" type="text/javascript"> </script>
  36. <script type="text/javascript">
  37. $(document).ready(function() {
  38. $('#headerSearch').on('keypress keydown keyup', function(e) {
  39. if (e.which == 13) {
  40. e.preventDefault();
  41. return false;
  42. }
  43. });
  44. $('#term').selectize({
  45. valueField: 'fullname',
  46. labelField: 'fullname',
  47. searchField: 'fullname',
  48. maxItems: 1,
  49. create: false,
  50. onType: function(value){
  51. if (value == ""){
  52. this.close();
  53. }
  54. },
  55. onChange: function(value){
  56. if (value != ""){
  57. $('#headerSearch').submit();
  58. }
  59. },
  60. load: function(query, callback) {
  61. if (!query.length) return callback();
  62. $.getJSON(
  63. "{{ url_for('api_ns.api_projects') }}", {
  64. pattern: "*"+query+"*",
  65. short: "1",
  66. },
  67. function( data ) {
  68. callback( data.projects );
  69. }
  70. );
  71. },
  72. render: {
  73. option: function(item, escape) {
  74. {% set reponame = 'item.fullname' %}
  75. return '<div>'
  76. + '<div class="projecticon-search pull-xs-left">'
  77. + '<span class="fa {{projecticon()}}"></span>'
  78. + '</div>'
  79. + '<div class="title">'
  80. + '<span class="name">'
  81. + '<strong>' + escape(item.fullname) + '</strong>'
  82. + '</span>'
  83. + '</div>'
  84. + '<div class="description">'
  85. + '<small>' + escape(item.description) + '</small>'
  86. + '</div>'
  87. + '</div>';
  88. }
  89. },
  90. });
  91. {% if username %}
  92. $(function(){
  93. $('.show_parts input[type="checkbox"]').change(function(){
  94. $('#' + $(this).attr('name')).toggle();
  95. });
  96. });
  97. {% endif %}
  98. });
  99. </script>
  100. {% endblock %}