Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    genfild
    @genfild
    Как управлять отображением полей в модальном окне
    alt
    Также, как перехватить потерю фокуса с поля?
    genfild
    @genfild
    Мне все больше нравится логика allcountjs. С отображением в модальном окне, а также фильтрацией reference разобрался, просто указываем вид.
    Maxim Sorokin
    @MaxSor
    А можно поинтере
    соваться, какое вы приложение разрабатываете?
    genfild
    @genfild
    Управление заказами и их распределением исполнителям
    genfild
    @genfild

    Приветствую @paveltiunov!
    Делаю заполнение полей из сервиса.

    beforeSave: function (Entity, Console, BikService) {
              var data = BikService.getbik(Entity.bik);
              Entity.bank = data.name.replace(/"(.*?)"/g, '«$1»');
              Entity.ks = data.ks;
              Entity.city = data.city;
              Entity.name = [Entity.bank, 'г.', Entity.city].join(' ');
              Console.log("beforeSave Bank");
              Console.log(Entity);
            },

    bik-service.js

    module.exports = function () {
      return {
          getbik: function (bik) {
              require("request")({ url: 'http://www.bik-info.ru/api.html?type=json&bik=' + bik, json: true}, 
                function (error, response, body) {
                  if (!error && response.statusCode === 200) ;
                console.log(body) // Print the json response
              })
            }
      }
    };

    Как мне вытянуть body?

    Pavel Tiunov
    @paveltiunov
    @genfild имеется ввиду вернуть в beforeSave?
    @genfild для этого лучше воспользоваться https://www.npmjs.com/package/request-promise
    genfild
    @genfild
    Да, спасибо. Предполагаю, что нужно с Q иметь дело.
    Pavel Tiunov
    @paveltiunov
    Тогда можно будет написать просто return require("request-promise")({ url: 'http://www.bik-info.ru/api.html?type=json&bik=' + bik, json: true}) - вернется promise на котором можно будет вызвать then
    genfild
    @genfild
    This message was deleted
    Pavel Tiunov
    @paveltiunov
    @genfild расположение полей в модальном окне определяется полем layout. К сожалению доков нет, но писали где-то в чате про это. Было бы круто увидеть такой pull request.
    genfild
    @genfild
    Пока Вы здесь, как перехватить потерю фокуса с поля
    Pavel Tiunov
    @paveltiunov
    Не совсем понял вопрос
    genfild
    @genfild
    Я заполняю, например поле БИК, перехожу на другое поле, а программа заполняет соответствующие поля
    также с удалением проблемы
    :point_up: 22 мая 2016 г., 11:44
    Pavel Tiunov
    @paveltiunov
    Я понял. Тут скорее всего придется делать custom представление с custom формой для диалога внутри.
    genfild
    @genfild
    и еще, можете прокомментировать?
    :point_up: 21 мая 2016 г., 19:40
    :point_up: 21 мая 2016 г., 19:47
    :point_up: 21 мая 2016 г., 20:06
    Pavel Tiunov
    @paveltiunov
    А что за ссылка профиль? Видимо она ссылается сразу на редактирование формы а не на просмотр.
    А после рефреша блок обновляется? Есть простой (но не очень красивый) способ просто сделать location.reload() .
    Про чекбоксы не понял
    genfild
    @genfild
    А что за ссылка профиль? Видимо она ссылается сразу на редактирование формы а не на просмотр.
    А как поменять на просмотр?
    genfild
    @genfild
    Не пойму, в чем ошибка, не обновляется Entity
            beforeSave: function (Entity, Console, BikService) {
              // var data = BikService.getbik(Entity.bik);
              BikService.getBik(Entity.bik).then(function(data) {
              Console.log(data);
                Entity.bank = data.name.replace(/"(.*?)"/g, '«$1»');
                Entity.ks = data.ks;
                Entity.city = data.city;
              });
              Entity.name = [Entity.bank, 'г.', Entity.city].join(' ');
              Console.log("beforeSave Bank");
              Console.log(Entity);
            }
    
    // bik-service.js
          getBik: function(bik) {
              return require("request-promise")({ url: 'http://www.bik-info.ru/api.html?type=json&bik=' + bik, json: true});
          },
    genfild
    @genfild

    Хочу сделать, на форме при изменении БИК заполнялись остальные поля

    extends entity
    include mixins
    
    block append vars
      mixin defaultFormTemplate()
        .row(ng-controller="BikController")
          .col-md-12
            a(href="http://www.bik-info.ru", target="_blank") Справочник БИК РФ
            +fieldGroup('bik')
            +fieldGroup('bank')
            +fieldGroup('city')
            +fieldGroup('ks')
    
    block js
      +entityJs()
      script.
        angular.module('allcount').controller('BikController', ['$scope', 'lcApi', '$q', function ($scope, lcApi, $q) {
          // var data = $.getJSON('http://www.bik-info.ru/api.html?type=json&bik=' + $('#field_114').val(), 
          // function(data) {
          // $('#field_113').val(data.name.replace(/"(.*?)"/g, '«$1»'));
          // $('#field_116').val(data.ks);
          // $('#field_117').val(data.city);
          // });
          console.log($scope)
        }])

    Не догоняю как?

    Pavel Tiunov
    @paveltiunov
    @genfild AllcountJS использует AngularJS. Он не позволяет менять состояние input'ов через jQuery.
    genfild
    @genfild
    Подскажите, пожалуйста, в каком направлении двигаться
    Pavel Tiunov
    @paveltiunov
    @genfild BikController имеет доступ к $scope.entity используйте $scope.$watch чтобы следить за изменениями это переменной: http://stackoverflow.com/questions/15112584/using-scope-watch-and-scope-apply-in-angularjs
    Там лежат все поля
    genfild
    @genfild

    реализовал

    extends entity
    include mixins
    
    block append vars
      mixin defaultFormTemplate()
        .row(ng-controller="BikController")
          .col-md-12
            +fieldGroupBik('bik')
            +fieldGroup('bank')
            +fieldGroup('city')
            +fieldGroup('ks')
    
    mixin fieldGroupBik(field)
      - field = field ? "'" + field + "'" : field
      +defaultFormGroup(field)
        +defaultFormLabel(field)
        +defaultFormFieldContainer(field)
          - field = field || 'field';
          +bikField("fieldToDesc[" + field + "]", "entity[" + field+ "]", 'isEditor')&attributes(attributes)
          +defaultFormValidationMessage(field)
    
    mixin bikField(field, model, isEditor)
      - if (isEditor)
        a(href="http://www.bik-info.ru", target="_blank") Справочник БИК РФ
      div(lc-field=field, ng-model=model, is-editor=isEditor, ng-change="change()")&attributes(attributes)
    
    block js
      +entityJs()
      script.
        angular.module('allcount').controller('BikController', ['$http', '$scope', 'lcApi', '$q', function ($http, $scope, lcApi, $q) {
          $scope.change = function() {
            // console.log($scope.entity['bik']);
            $http.get('http://www.bik-info.ru/api.html?type=json&bik=' + $scope.entity['bik']).then(function(value) {
              var data = value.data;
              // console.log(data);
              if (data.name) {
                $scope.entity['bank'] = data.name.replace(/"(.*?)"/g, '«$1»');
                $scope.entity['ks'] = data.ks;
                $scope.entity['city'] = data.city;
                // $scope.$apply();
              }
            });
          }
        }])

    работает, только возникает ошибка

    angular.js:11562 Error: [$rootScope:inprog] $digest already in progress
    http://errors.angularjs.org/1.3.6/$rootScope/inprog?p0=%24digest
        at angular.js:63
        at beginPhase (angular.js:14706)
        at Scope.$apply (angular.js:14450)
        at (index):15
        at processQueue (angular.js:13137)
        at angular.js:13153
        at Scope.$eval (angular.js:14353)
        at Scope.$digest (angular.js:14169)
        at Scope.$apply (angular.js:14457)
        at done (angular.js:9614)

    и еще мелочь
    вставляю в поле бик значение, поля не обновляются, приходится терять фокус и поля обновляются

    genfild
    @genfild
    Еще не понимаю, как мне показывать мою ссылку a(href="http://www.bik-info.ru", target="_blank") Справочник БИК РФ только при редактировании. Походу нужно отлавливать событие ["lc.track", "allcount-entity-start-editing", Object]
    также с удалением проблемы
    :point_up: 22 мая 2016 г., 11:44
    genfild
    @genfild
    Где подправить отображение элементов, а то вылезает за форму
    alt
    genfild
    @genfild
    injection.bindFactory('myAppConfig', function (app, Crud) {
      return {
        configure: function () {  app.use(function (req, res, next) {
            var urlParsed = url.parse(req.url, true);
            if (urlParsed.pathname == '/connect' && urlParsed.query.key) {
              console.log('connect');
              Crud.crudFor("Query").createEntity({url: req.url});
            }
            next();
          });
        }
      }
    });
    injection.bindMultiple('appConfigurators', ['myAppConfig']);

    Возникает ошибка

    Error: Can't set headers after they are sent.
        at ServerResponse.OutgoingMessage.setHeader (http.js:691:11)
        at ServerResponse.header (/root/pos/node_modules/allcountjs/node_modules/express/lib/response.js:718:10)
        at ServerResponse.contentType (/root/pos/node_modules/allcountjs/node_modules/express/lib/response.js:551:15)
        at ServerResponse.send (/root/pos/node_modules/allcountjs/node_modules/express/lib/response.js:138:14)
        at done (/root/pos/node_modules/allcountjs/node_modules/express/lib/response.js:957:10)
        at View.exports.renderFile [as engine] (/root/pos/node_modules/allcountjs/node_modules/jade/lib/index.js:374:12)
        at View.render (/root/pos/node_modules/allcountjs/node_modules/express/lib/view.js:126:8)
        at tryRender (/root/pos/node_modules/allcountjs/node_modules/express/lib/application.js:639:10)
        at EventEmitter.render (/root/pos/node_modules/allcountjs/node_modules/express/lib/application.js:591:3)
        at ServerResponse.render (/root/pos/node_modules/allcountjs/node_modules/express/lib/response.js:961:7)
        at /root/pos/node_modules/allcountjs/services/config/error-handling-setup.js:23:41
        at Layer.handle_error (/root/pos/node_modules/allcountjs/node_modules/express/lib/router/layer.js:71:5)
        at trim_prefix (/root/pos/node_modules/allcountjs/node_modules/express/lib/router/index.js:310:13)
        at /root/pos/node_modules/allcountjs/node_modules/express/lib/router/index.js:280:7
        at Function.process_params (/root/pos/node_modules/allcountjs/node_modules/express/lib/router/index.js:330:12)
        at next (/root/pos/node_modules/allcountjs/node_modules/express/lib/router/index.js:271:10)

    Но вроде все работает, может нужно по другому. Я реализую запросы к моему сервису.

    genfild
    @genfild
    перед console.log('connect'); вставте res.end('<?xml version="1.0" encoding="utf-8"?><test><status>0</status></test>')
    Andrew V. Belousoff
    @formatCvt
    всем привет, а реально сделать редактирование нескольких строк за одно нажатие кнопки редактирование, т.е. сейчас у меня куча строк в которых есть checkbox и получается надо нажать 1 раз что бы запустить режим редактирования и потом у каждой строки ещё раз надо нажать "редактировать" что бы запустился режим редактирования строки, т.е. что-то типа запуска режима редактирования для всех отображаемых строк сразу
    genfild
    @genfild
    не пойму, как в attachment программно залить файл?
    integrable
    @integrable
    Скажите, можно ли добавить spinner/loader для ajax запросов? Пытаюсь зарегистрировать свой interceptor в $httpProvider, но не могу понять, как сделать так, чтобы этот код исполнялся до инициализации angular приложения.
    Andrew V. Belousoff
    @formatCvt
    почему-то не меняется значение поля которое ссылка на другое (через Fields.reference). Причем в режиме редактирование если выбрать новое значение (то на какое переименовали), то после сохранения значение остается прежним
    т.е. есть поле1 с текстом, есть поле 2 которое ссылка на поле1. текст в Поле1 поменяли, а в таблице где поле2 отображается старое значение поле1
    Andrew V. Belousoff
    @formatCvt
    поле2 походу кеширует у себя значение поле1 и кеш не обновляется при обновлении поля1
    genfild
    @genfild
    реализую сервис, и столкнулся с проблемой.
    Не создает "mpFiles". Но, если убрать planid: { id: id },, то создает. Получается, я не могу создать planid: Fields.fixedReference
    Crud.crudFor("Query").createEntity({
      planid: urlParsed.query.planid,
    })
    .then(function(id){
      var items = [1,2];
        return Q.all(items.map(function(i){
            return Crud.crudFor("mpFiles").createEntity({ planid: { id: id }, filelink: i });
        }))
    });
    ...
    Query: {
    fields: {
      planid: Fields.text("PlanId"),
    },
    referenceName: "planid",
    ...
    mpFiles:{
    fields:{
      planid: Fields.fixedReference("PlanId", "Query"),
      filelink: Fields.text("File link"),
    },
    genfild
    @genfild
    Может нам собраться как-нибуть вместе, организовать вебинар?
    genfild
    @genfild
    Помогите показать кнопку просмотреть у relation
    img
    Vladimir Kamenkov
    @vladimirkamenkov
    Всем привет, помогите пожалуйста, разобраться с ошибками при запуске
    https://yadi.sk/i/6dp1zgpxtkfz4
    integrable
    @integrable
    Привет, стоит задача добавить возможность печати на принтере информации по выбранным entities (вместе со связанными entity), в виде таблицы. Насколько такое реально?
    Max
    @StCremer_twitter

    здравстуйте! Подскажите пожалуйста как повесить отправку запроса перед сохранением лида и позволить сохранять его только при положительном ответе сервера?
    вот кусок кода
    beforeCreate: function(Entity) {
    if (!Entity.status) {
    Entity.status = {
    id: config.statusNewId
    };
    }
    },
    beforeSave: function(Entity) {

                    const request = require('request'),
                        jsonxml = require('jsontoxml'),
                        md5 = require('md5'),

    тут в конфигурационном фаиле я пытаюсь по хуку beforeSave сформировать и отправить запрос, но ни чего не происходит, либо я не вижу что происходит, потому что логи в консоль не выводятся

    let currentDate = new Date().toISOString({ year: 'long', day: 'numeric', month: 'numeric' }),
    ttnNumber = Entity.ttnNumber, //номер товарной накладной,содержащей ордер
    security = md5(dateExecute + "&" + authPassword),
    orderCount = 1,
    orderNumber = 1,
    recCityCode = req.body.recCityCode,
    tariffTypeCode = req.body.tariffTypeCode,
    body = {
    name: "DeliveryRequest",
    attrs: {
    Number: ttnNumber,
    Date: currentDate,
    Account: account,
    Secure: security,
    OrderCount: orderCount //общее количество заказов в документе
    },
    children: [{
    name: "Order",
    attrs: {
    Number: orderNumber, // номер отпавления клиента ( должен быть уникален в пределах накладной )
    DeliveryRecipientCost: DeliveryRecipientCost, // Доп.сбор за доставкуб которую ИМ берет с получателя
    SendCityCode: "414", //код города отправителя из базы СДЭК
    RecCityCode: "44", // код города получателя из базы СДЭК
    RecipientName: Entity.name, //Ф.И.О получателя
    Phone: Entity.phone,
    Comment: Entity.comment, //комментарий к заказу
    TariffTypeCode: 136,
    RecipientCurrency: "RUB",
    ItemsCurrency: "RUB"
    },
    children: [{
    name: "Address",
    attrs: { PvzCode: "MSK2" }
    }, {
    name: "Package",
    attrs: {
    Number: 2,
    BarCode: 101,
    Weight: 630
    },
    children: [{
    name: "Item",
    attrs: {
    WareKey: 3333333333, //идентификатор/артикул товара (Уникален в пределах упаковки package)
    Cost: 49, //объявленная стоимость товара
    Payment: "49",
    Weight: "68",
    Amount: "1",
    Comment: "ТЕСТОВАЯ ЗАЯВКА(не для отправки)" //наименование товара(может содержать описание товара)
    }
    }]
    }]
    }]
    },
    xml = jsonxml([body], { xmlHeader: true })
                    request({
                        method: 'POST',
                        uri: 'http://int.cdek.ru/new_orders.php',
                        formData: { xml_request: xml },
                    }, function(err, httpResponse, body) {
                        if (err) {
                            console.error(err)
                            return
                        }
                        console.error(httpResponse, '<-httpResponse')
                    })
                },
    VaskoDeGama
    @VaskoDeGama
    Поддержка прекратилась?
    Valentine Budkin
    @vabue
    allcount/allcountjs@d12bf9c