trudesk

repository·master·Indexed 23 days ago

https://github.com/polonel/trudesk

An open-source help desk solution designed to organize and simplify issue and task resolution, available as a Community Edition for self-hosting. Version 1.2.11 includes documentation for Kubernetes deployment, Elasticsearch configuration, and various AngularJS library integrations such as angular-animate, angular-elastic, angular-moment, and angular-sanitize.

Tokens
20.9K
Snippets
57
Records
147
Agent score
81%

What's inside trudesk

  1. What is D3.js

    master
    D3.js (Data-Driven Documents) is a JavaScript library used to manipulate documents based on data. It enables the creation of dynamic visualizations by binding data to the DOM and using HTML, SVG, and CSS to bring that data to life. D3 focuses on web standards, allowing for powerful visualization components without being tied to a proprietary framework.
  2. How ngStorage works with AngularJS

    master

    ngStorage is an AngularJS module that provides two services: $localStorage and $sessionStorage. It allows you to persist data in the browser's Web Storage in an "Angular Way" by binding storage objects directly to your $scope.

    When you bind a storage service to a $scope property, changes made to that property are automatically synchronized with the browser's Web Storage. This synchronization works across different browser tabs.

    angular.module('app', [
        'ngStorage'
    ]).controller('Ctrl', function(
        $scope,
        $localStorage,
        $sessionStorage
    ){});
  3. How states and nested views work in AngularUI Router

    master

    AngularUI Router organizes applications around states rather than just URL routes. States can be nested, allowing you to manage complex interfaces by plugging child templates into a ui-view directive located within a parent state's template.

    Core Directives:

    • ui-view: A placeholder directive that marks where the state's template should be rendered. Nesting ui-view directives within templates enables nested views.
    • ui-sref: A directive used on links (e.g., <a ui-sref="stateName">) that automatically generates the correct href based on the state's URL and manages state transitions.
  4. Customize option templates in modal-select

    master

    The modal-select directive uses an internal template for each item in the list. To customize how options look, place a single element with the class option inside your directive element. The directive will extract this template and use it to render each item in the modal.

    Example:

    <button class="button" modal-select ng-model="someModel" options="selectables">
        Select it
        <div class="option">
            {{option.name}} ({{option.role}})
        </div>
    </button>

    When rendered in the modal, the content will be wrapped in an element with classes item item-text wrap.

    <button class="button button-positive" modal-select ng-model="someModel" options="selectables" modal-title="Select a number">
        Select it
        <div class="option">
            {{option}}
        </div>
    </button>
  5. How to provide options to modal-select

    master

    You can provide the list of selectable items to the modal-select directive in two ways:

    1. Using the options attribute: Pass an array of values or objects. The directive watches this array for changes.

      <div modal-select options="myArray" ng-model="selectedItem">...</div>
    2. Using the options-expression attribute: Pass an expression similar to collection-repeat (e.g., item in items | orderBy:'name'). This allows you to apply filters or ordering directly in the template without modifying the source array.

      <div modal-select options-expression="album in artist.albums" ng-model="selectedAlbum">...</div>
  6. Handle timezones with amUtc, amLocal, and amTimezone filters

    master

    These filters allow you to manipulate timezones for display:

    • amUtc: Switches the moment object to UTC mode.
    • amLocal: Switches the moment object to the local timezone.
    • amUtcOffset: Displays the date with a specific UTC offset (e.g., '+0300').
    • amTimezone: Applies a specific timezone (e.g., 'Israel'). Requires moment-timezone.js and timezone data to be loaded.

    Note: These filters require angular-moment version 1.0.0-beta.3 or newer.

  7. Deploy Trudesk on Ubuntu 20.04

    master

    You can quickly deploy Trudesk on an Ubuntu 20.04 system using a single command. This script automates the installation process.

    curl -L -s https://storage.trudesk.io/install/ubuntu-1.2.sh | sudo bash
  8. Configure Elasticsearch in Trudesk

    master

    After the deployment is complete, you must configure the Elasticsearch endpoint within the Trudesk application to ensure proper functionality.

    1. Log into the Trudesk web interface.
    2. Navigate to Settings > Elasticsearch.
    3. Define the endpoint using the following service details:
      • Server: http://elasticsearch.trudesk.svc.cluster.local
      • Port: 9200
    Server: http://elasticsearch.trudesk.svc.cluster.local
    Port: 9200
  9. Configure moment-timezone with webpack

    master

    If you are using moment-timezone with webpack, angular-moment will not automatically use it unless you explicitly override the moment constant via Angular's dependency injection.

    var angular = require('angular');
    require('angular-moment');
    var ngModule = angular.module('ngApp',['angularMoment']);
    ngModule.constant('moment', require('moment-timezone'));