• Обрезать разрядность числа?

    bogdan_uman
    @bogdan_uman Автор вопроса
    шлЫмазл неукЪ-поцЪ
    Вот вреде только что придумал элегантное однострочное решение
    +`${ 32.30112 }`.match(/\d+.\d{1,3}/)[0]; //32.301
    Ответ написан
    Комментировать
  • Что лучше использовать?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    Сейчас в тренда SPA - single page application. Поэтому лучше ajax + при желании VueJs
    Ответ написан
    Комментировать
  • Где принято хранить scss/js файлы?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    создайте папку "styles\" для - css, и "scripts\" - для js
    Ответ написан
  • Как удалить родительский элемент, содержащий элемент с определенным текстом?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    Ну можно вот так
    $("table a:contains('11')").closest('table').remove();


    Хотя так тоже работает
    $("table").has("a:contains('11')").remove();

    Ваша ошибка в том что нужно заменить
    $(document).ready(function()){
    // на
    window.onload = () => {
    Ответ написан
  • Где задается переменная ENV["RAILS_MAX_THREADS"]?

    bogdan_uman
    @bogdan_uman Автор вопроса
    шлЫмазл неукЪ-поцЪ
    Отвечу сам себе :)
    Все решилось через foreman и файл ".env" в котором можно задавать переменные среды используемые в Rails
    RAILS_MAX_THREADS=100
    WEB_CONCURRENCY=2
    Ответ написан
    4 комментария
  • Есть ли актуальные туториалы по установке и настройке Gulp?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    Каг-бы сейчас фронт-енд развивается семимильными шагами, поэтому все статьи устаревают к моменту их написания. Поэтому читай официальную доку. Сейчас актуален Gulp 4, а практически вся инфа еще по старой версии.
    Ответ написан
    Комментировать
  • В каком редакторе лучше верстать?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    Как редактор то Atom неплохой. А как IDE то лучше что-то от JetBrains юзать например WebStorm.
    Для начинающего отлично подойдет Brackets, у него есть фича которой нет у других браузеров, это свой LivePreview который показывает область применения стиля CSS.
    Ответ написан
    Комментировать
  • Удаление зафиксированных в git файлов?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    Один файлgit rm .idea/workspace.xml --cached

    Целую папкуgit rm -r .idea --cached
    Ответ написан
    4 комментария
  • Как сделать чтобы блоки выстраивались с право на лево?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    ну если уж очень по простому, тогда нужно юзать CSS
    text-align: left;
    Возможно задача сложней и нужно использовать Flex
    Ответ написан
  • Как выйти за пределы container?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    Ну вот на коленке написал
    CSS
    * {
      box-sizing: border-box;
    }
    
    .outher {
      margin: 30px;
      border: 2px solid #ccc;
      height: calc(100vh - 60px);
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    
    .inner {
      background-color: green;
      flex-basis: 70px;
      margin: -40px;
    }


    SLIM
    doctype html
    html
      head
        title Slim Examples
        meta name="keywords" content="template language"
        link rel="stylesheet" href="table_image.css" 
      body
        .outher
          .inner


    Результат
    87433b0419d0448d82f0f8a0919586c0.png
    Ответ написан
    1 комментарий
  • Как сделать форму обратной связи (скрин внутри)?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    Ну как бы клики можно ловить через элемент "a" и в css тогда уже черед block::target {}

    CSS
    #block {
      top: 0;
      left: 0;
      height: 100vh;
      width: 100vw;
      position: fixed;
      visibility: hidden;
      background-color: #ccc;
    }
    
    #block:target {
      visibility: visible;
    }


    SLIM
    doctype html
    html
      head
        title Slim Examples
        meta name="keywords" content="template language"
        link rel="stylesheet" href="table_image.css" 
      body
        a *{href: '#block'} Show
        #block
          a *{href: '#'} Hide


    РЕЗУЛЬТАТ
    4f4ea977084c4d8c9d709cf18b6b20ad.png
    Ответ написан
    Комментировать
  • Как сделать скрытие открытие блока?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    Тоже вариант на флексе, более лаконично
    SLIM
    doctype html
    html
      head
        title Slim Examples
        meta name="keywords" content="template language"
        link rel="stylesheet" href="table_image.css" 
      body
        #block1.block
          a *{href: '#block1'} Hide
        #block2.block
          a *{href: '#'} Show Block 1


    CSS
    body {
      display: flex;
      height: 100vh;
    }
    
    #block1 {
      flex: 0 0 30%;
      background-color: #ccc;
    }
    
    #block2 {
      flex-basis: 100%;
      background-color: #eee;
    }
    
    #block1:target {
      display: none;
    }


    Результат
    741dae23438d4ba59a5144f8a1b61f1b.png
    Ответ написан
    Комментировать
  • Где ошибка в таске?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    У Вас тута какой-то смесь бульдога (Gulp) с носорогорм (webpack).
    Вот пример чистого Gulp4

    gulpfile.coffee
    sass = require 'gulp-sass'
    slim = require 'gulp-slim'
    coffee = require 'gulp-coffee'
    
    notify = require 'gulp-notify'
    plumber = require 'gulp-plumber'
    
    connect = require 'gulp-connect'
    gulp = require 'gulp'
    
    paths =
      app: 'app'
      sass: 'sass/**/*.scss'
      slim: 'slim/**/*.slim'
      coffee: 'coffee/**/*.coffee'
      js: 'js/**/*.js'
    
    
    ########################################
    ########################################
    
    
    
    tsass = ->
      gulp.src paths.sass
        .pipe plumber { errorHandler: notify.onError message: "<%= error.message %>", title: "Ошибка"  }
        .pipe sass outputStyle: 'expanded'
        .pipe gulp.dest paths.app
        .pipe connect.reload( )
    ########################################
    tslim = ->
      gulp.src paths.slim
        .pipe plumber { errorHandler: notify.onError message: "<%= error.message %>", title: "Ошибка"  }
        .pipe slim pretty: true
        .pipe gulp.dest paths.app
        .pipe connect.reload( )
    ########################################
    tjs = ->
      gulp.src paths.js
        .pipe plumber { errorHandler: notify.onError message: "<%= error.message %>", title: "Ошибка"  }
        .pipe gulp.dest paths.app
        .pipe connect.reload( )
    ########################################
    tcoffee = ->
      gulp.src paths.coffee
        .pipe plumber { errorHandler: notify.onError message: "<%= error.message %>", title: "Ошибка"  }
        .pipe coffee bare: true
        .pipe gulp.dest paths.app
        .pipe connect.reload( )
    ########################################
    twatch = ->
      gulp.watch paths.sass, tsass
      gulp.watch paths.slim, tslim
      gulp.watch paths.coffee, tcoffee
      gulp.watch paths.js, tjs
    ########################################
    tconnect = ->
      connect.server
        root: paths.app
        port: 8888
        livereload: true
    ########################################
    
    watch = gulp.parallel tconnect,
      gulp.series( gulp.parallel( tslim, tsass, tcoffee, tjs ), twatch )
    
    gulp.task 'default', watch
    Ответ написан
    1 комментарий
  • Как ресайзить изображения без потери пропорций?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    Вот может так нужно
    SLIM
    doctype html
    html
      head
        title Slim Examples
        meta name="keywords" content="template language"
        link rel="stylesheet" href="table_image.css" 
      body
        table
          tr
            td 
              .img *{ style: "background-image: url('http://lorempixel.com/100/200/');" }
            td 
              .img *{ style: "background-image: url('http://lorempixel.com/100/300/');" }


    CSS
    .img {
      height: 100px;
      width: 100px;
      background-repeat:no-repeat;
      background-size: 100% 100% / contain;
    }


    68ca61b2352b4d7ebf39ba90f446e7c3.png
    Результат
    Ответ написан
    Комментировать
  • Как вывести день недели на JS?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    Для работы с датой неплохая библиотека Moment.js
    moment = require( 'moment' );
    moment.locale('ru');
    console.log(moment('25.05.2017', 'DD.MM.YYYY').format( 'dddd' ));
    // четверг
    Ответ написан
  • Как сверстать 2 одинаковые по ширине колонки?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    На коленке набросал

    CSS
    body {
      display: flex;
      flex-direction: column;
    }
    
    .header, .footer {
      height: 50px;
      background-color: #ccc;
      text-align: center;
    }
    
    .header {
      margin-bottom: 10px;
    }
    
    .footer {
      margin-top: 10px;
    }
    
    
    .clm_main {
      display: flex;
      flex-direction: row;
    }
    
    .clm {
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      flex-grow: 1;
    }
    
    .clm:first-child {
      margin-right: 10px;
    }
    
    .block {
      flex-grow: 1;
      min-height: 50px;
      background-color: #eee;
      border: 1px solid black;
      text-align: center;
    }
    
    .block:not(:last-child) {
      margin-bottom: 10px;
    }


    SLIM
    doctype html
    html
      head
        title Slim Examples
        meta name="keywords" content="template language"
        link rel="stylesheet" href="block.css" 
      body
      .header
        | header
      .clm_main
        .clm
          .block
            | Block 1
          .block
            | Block 4
          .block
            | Block 6
        .clm
          .block
            | Block 2
          .block
            | Block 3
          .block
            | Block 5
          .block
            | Block 7
      .footer  
        | footer


    На выходе резиновый контент
    1bb87f9dae9f4f7281271655344361aa.png
    Ответ написан
    Комментировать
  • Объединить объекты с обновлением значений?

    bogdan_uman
    @bogdan_uman Автор вопроса
    шлЫмазл неукЪ-поцЪ
    Спасибо за ответы вот что удалось сотворить
    isObject = (item) ->
      item and typeof item is 'object' and not Array.isArray item
    
    
    mergeDeep = (target, source) ->
    
      if isObject(target) and isObject(source)
        Object.keys(source).forEach (key) ->
          if isObject source[ key ]
            if not target[key] then Object.assign target, { "#{key}": {} }
            mergeDeep target[ key ], source[ key ]
          else
            Object.assign target, { "#{key}": source[key] }
      target
    
    
    obj1 = {a:1, b: {b1: 1, b2: 4}}
    obj2 = {b: {b1: 2, b3: {b11:4, b21:3}}, c:{c1: {c12: 5} } }
    console.log(mergeDeep(obj1, obj2));
    
    ###
    { a: 1,
      b: { b1: 2, b2: 4, b3: { b11: 4, b21: 3 } },
      c: { c1: { c12: 5 } } }
    ###
    Ответ написан
    Комментировать
  • Почему в RoR не удаётся вызвать методы подключенных js плагинов?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    А почему не используете Datepicker из JQuery?

    app/assets/javascripts/application.js:2

    //= require jquery
    //= require jquery_ujs
    //= require jquery-ui
    //= require jquery-ui/i18n/datepicker-uk


    Gemfile
    gem 'jquery-rails'
    gem 'jquery-ui-rails'


    ну и собственно само использование
    #  Конечная дата фильтрации
        $( '#date_start' )
          .val GetSession $sessionKey, 'date_start'
          .data 'old-value', GetSession $sessionKey, 'date_start'
          .datepicker onSelect: ->
            $this = $( @ )
            $thisVal =  $this.val( )
    
            if $thisVal isnt $this.data 'old-value'
              SetSession $sessionKey, 'date_start', $thisVal
              $this.data 'old-value', $thisVal
              $dateEnd = $( '#date_end' )
              $dateEndVal = $dateEnd.val( )
    
              if not $dateEndVal || moment( $thisVal, $formatDate ).isAfter( moment( $dateEndVal, $formatDate ) )
                SetSession $sessionKey, 'date_end', $thisVal
                $dateEnd.val( $thisVal ).data 'old-value', $thisVal
    
              filterTable( ) # Фильтрация таблицы документов
    Ответ написан
  • Как правильно сделать render (перенаправление) на другую страницу в JS?

    bogdan_uman
    @bogdan_uman Автор вопроса
    шлЫмазл неукЪ-поцЪ
    Спасибо за ответы, вот на коленке накропал такое решение, может что то подправите? спасибо
    function assignLocation(siteUrl, urlParams) {
      let serializeParams = ''
      for (let item of Object.entries(urlParams)) {
        serializeParams += `&${ item[0] }=${ item[1] }`
      }
      let url = `${siteUrl}?${serializeParams.slice(1)}`;
      //window.location.assign(url);
      console.log(url);
    }
    
    assignLocation('https://www.site.com/test', { id: 324, name: 'Jack', age: 25 } ); // https://www.site.com/test?id=324&name=Jack&age=25
    Ответ написан
    Комментировать
  • Как добраться до базы данных?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    Ну как-бы рельсы не запускают сервер для БД, а только конектятся, настройки которые делаются с файле "config/database.yml". В SQlite нету сервера, вот что пишет вики
    то есть движок SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а предоставляет библиотеку, с которой программа компонуется, и движок становится составной частью программы.
    Ответ написан
    Комментировать