Skip to content

Instantly share code, notes, and snippets.

View voznik's full-sized avatar
🤔
Open for opportunities

Vadym Parakonnyi voznik

🤔
Open for opportunities
View GitHub Profile
@voznik
voznik / SumByKey.js
Last active September 10, 2015 14:18 — forked from Cacodaimon/SumByKey.js
A simple AngularJS filter for summarizing the values of an array containing objects by a key.
angular.module('caco.feed.filter', [])
.filter('sumByKey', function() {
return function(data, key) {
if (typeof(data) === 'undefined' || typeof(key) === 'undefined') {
return 0;
}
var sum = 0;
for (var i = data.length - 1; i >= 0; i--) {
sum += parseInt(data[i][key]);
@voznik
voznik / Angular.Ionic.HardwareBackButtonManager.js
Created October 29, 2015 09:55 — forked from mircobabini/Angular.Ionic.HardwareBackButtonManager.js
HardwareBackButtonManager Service for Ionic (Angular.js) provides an interface to easily enable or disable the hardware back button on Android
.service( 'HardwareBackButtonManager', function($ionicPlatform){
this.deregister = undefined;
this.disable = function(){
this.deregister = $ionicPlatform.registerBackButtonAction(function(e){
e.preventDefault();
return false;
}, 101);
}
@voznik
voznik / README.md
Created September 21, 2016 09:07 — forked from felippenardi/README.md

Testing an Angular $resource factory

This is an example of how to test an Angular Resource created with $resource.

Live Demo

Important take aways:

  • Do not mock $resource. Instead, you can use the resource's methods and assert that it is making the right API call. By doing that you can later change the implementation (for example for replace $resource for Angular Cached Resource) without needing toi go change all previous tests.
  • When intercepting the response of a custom method, do not transform the response string into json yourself. When you use the transformResponse action property of a $resource, you replace the default angular parser that is transforming backend response from string to JSON. It has some logic to ensure that the response is a JSON and can be parsed securely. You can use it by injecting $http into your factory and using `$http.defaults.transformRespon
{
"autocomplete": true,
"autoimport": true,
"enable_auto_align": false,
"format_on_save": true,
"ignore": "Parent",
"indent_with_space": 4,
"passes":
[
"ReindentSwitchBlocks",
@voznik
voznik / runserver.py
Last active June 30, 2018 15:47 — forked from mozz100/runserver.py
Change default port for django runserver
# Put this at <yourapp>/management/commands/runserver.py.
# Override the value of the constant coded into django...
import django.core.management.commands.runserver as runserver
runserver.DEFAULT_ADDR="0.0.0.0"
runserver.DEFAULT_PORT="8080"
# ...and then just import its standard Command class.
# Then manage.py runserver behaves normally in all other regards.
from django.core.management.commands.runserver import Command
@voznik
voznik / MultiTenantFlask.py
Created July 3, 2018 23:36 — forked from TonyFrancis/MultiTenantFlask.py
Creating multi Tenant system with multiple Database. Switching between databases based on subdomain related to tenant
from functools import wraps
from flask import Flask, g, session, request, abort, jsonify
from flask_migrate import MigrateCommand, Migrate
from flask_script import Manager
from flask_sqlalchemy import SQLAlchemy
flask_app = Flask(__name__, static_folder='./static')
db = SQLAlchemy()
migrate = Migrate()
@voznik
voznik / lazylibs.service.ts
Created November 6, 2018 11:40 — forked from JohannesRudolph/lazylibs.service.ts
Angular lazy library loader
import { Injectable, Inject } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { ReplaySubject } from 'rxjs/ReplaySubject';
import { DOCUMENT } from '@angular/platform-browser';
@Injectable()
export class LazylibsService {
private chartJs?: ReplaySubject<any>;
@voznik
voznik / iframeResizer.directive.ts
Created December 17, 2018 10:55 — forked from drakkein/iframeResizer.directive.ts
iframe resizer directive for Angular 4 (No CORS)
import { Directive, ElementRef, OnDestroy, OnInit, Renderer2 } from '@angular/core';
@Directive({
selector: '[iframeResize]',
})
export class IframeResizeDirective implements OnInit, OnDestroy {
private listener: () => void;
private observer: MutationObserver;
get element() {
@voznik
voznik / getFiles.js
Created February 13, 2019 16:17 — forked from qwtel/getFiles.js
[node.js 8+] Recursively get all files in a directory
const { promisify } = require('util');
const { resolve } = require('path');
const fs = require('fs');
const readdir = promisify(fs.readdir);
const rename = promisify(fs.rename);
const stat = promisify(fs.stat);
async function getFiles(dir) {
const subdirs = await readdir(dir);
const files = await Promise.all(subdirs.map(async (subdir) => {
@voznik
voznik / docker-cleanup-resources.md
Created February 21, 2019 18:40 — forked from bastman/docker-cleanup-resources.md
docker cleanup guide: containers, images, volumes, networks

Docker - How to cleanup (unused) resources

Once in a while, you may need to cleanup resources (containers, volumes, images, networks) ...

delete volumes

// see: https://github.com/chadoe/docker-cleanup-volumes

$ docker volume rm $(docker volume ls -qf dangling=true)

$ docker volume ls -qf dangling=true | xargs -r docker volume rm