Skip to content

Instantly share code, notes, and snippets.

View osahner's full-sized avatar
🏠
Working from home

Oliver Sahner osahner

🏠
Working from home
View GitHub Profile
@osahner
osahner / .htaccess
Created July 24, 2018 12:42
CORS Apache dynamic Access-Control-Allow-Origin
<Directory "****">
SetEnvIf Origin "^http(s)?://.+$" AccessControlAllowOrigin=$0
Header always set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
Header always set Access-Control-Allow-Credentials true env=AccessControlAllowOrigin
Header always set Access-Control-Allow-Methods "HEAD, POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
</Directory>
@osahner
osahner / sort-array.pipe.ts
Created April 29, 2021 07:18
Sort array (using Intl.Collator)
import { Inject, LOCALE_ID, Pipe, PipeTransform } from '@angular/core';
/*
*ngFor="let o of someArry | sortArray:'desc'"
*/
@Pipe({
name: 'sortArray',
})
export class SortArrayPipe implements PipeTransform {
collator: Intl.Collator;
@osahner
osahner / safe.pipe.ts
Created November 10, 2018 13:59
angular Sanatizer Pipe
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';
@Pipe({
name: 'safe'
})
export class SafePipe implements PipeTransform {
constructor(protected sanitizer: DomSanitizer) {}
public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {
@osahner
osahner / sortable-list.abstract.ts
Last active July 24, 2018 12:54
angular2 sortable list abstract class
import { ChangeDetectorRef } from '@angular/core';
/**
* @whatItDoes decorates Component with toggleOrder(property), get list() and get(CSS)Class functions.
*
* @howToUse
* \@Component({
* template: `
* <table>
* <tr>
@osahner
osahner / InputWrapperDirective.ts
Created December 11, 2017 13:06
Angular Wrapper Directive
import { Directive, Renderer2, ElementRef, AfterViewInit } from '@angular/core'
@Directive({
selector: '[inputWrapper]'
})
export class InputWrapperDirective implements AfterViewInit {
constructor(private _renderer:Renderer2, private _el: ElementRef) {
}
@osahner
osahner / country-select.component.ts
Created April 21, 2017 12:44
angular2 bootstrap4 country select menu
import { Component, EventEmitter, Input, Output } from '@angular/core';
import * as iso3166 from 'iso-3166-2/iso3166.min';
@Component({
selector: 'app-country-select',
template: `
<select name="theme" [class]="'form-control' + (size ? ' form-control-' + size : '')"
[ngModel]="countryIsoCode" (ngModelChange)="change($event)">
<option *ngFor="let country of countries" [ngValue]="country.value">{{country.display}}</option>
@osahner
osahner / show-hide-password.component.ts
Last active April 21, 2017 09:05
angular2 bootstrap4 show/hide password input wrapper
import {
Component, ElementRef, Input, OnInit, Renderer2
} from '@angular/core';
/**
* @whatItDoes Add show hide button to text/password input fields.
*
* @howToUse
* <show-hide-password size="sm|lg">
* <input type="password" name=... />