Example #1
0
app.put('/reserved/:date', function(request, response) {
  var date = request.params.date;
  var reserved = !!request.body.reserved;
  if (isNaN(date)) {
    badRequest(response);
    return;
  }
  else if (Math.random() < failureProb) {
    internalError(response);
    return;
  }
  else {
    var date = moment.unix(date).tz(locale).startOf('day').unix();
    if (reserved) {
      data.push(date);
      data.sort();
      data = _.sortedUniq(data);
    } else {
      _.pull(data, date);
    }
    send(response, {
      ok: true
    });
  }
});
Example #2
0
 ['RETRIEVE_MY_ORDER_SUCCESS']: (state, action) => {
     var old = state.retrieveMine && state.retrieveMine.result || [];
     var nresult = _.sortedUniq (_.concat (old, action.payload.result).sort((a,b)=>(a-b))).reverse();
     xdebug ("action:", action);
     //xdebug ("old:", old, "nresult:", nresult, ", state:", state);
     return ({ ...state, db: {...state.db, ...action.payload.db}, retrieveMine: { ...state.retrieveMine, fetching: false, error: null, total:action.payload.total, page:action.payload.page, result: nresult } })
 },
Example #3
0
  var all = function() {
    var moves  = _.clone(moveData);
    var sorted = _.sortedUniq(moves);

    return {
      data: sorted
    }
  }
Example #4
0
 ['RETRIEVE_ORDER_SUCCESS']: (state, action) => {
     var toMerge = action.payload && action.payload.toMerge;
     var old = state.retrieve && state.retrieve[action.payload.postId];
     var oldResult = old && old.result || [];
     var nresult = action.payload.result;
     if (toMerge) nresult = _.sortedUniq (_.concat (oldResult, action.payload.result).sort((a,b)=>(a-b))).reverse();
     //xdebug ("old:", old, "nresult:", nresult, ", state:", state);
     return ({ ...state, db: {...state.db, ...action.payload.db}, retrieve: { ...state.retrieve, fetching: false, error: null, date: action.payload.date, [action.payload.postId]: {total:action.payload.total, result: nresult} } })
 },
Example #5
0
 return fse.readJsonAsync(serverlessFilePath).then(serverlessFileObj => {
   const newServerlessFileObj = serverlessFileObj;
   if (newServerlessFileObj.plugins) {
     newServerlessFileObj.plugins.push(this.options.pluginName);
   } else {
     newServerlessFileObj.plugins = [this.options.pluginName];
   }
   newServerlessFileObj.plugins = _.sortedUniq(newServerlessFileObj.plugins);
   return fse.writeJsonAsync(serverlessFilePath, newServerlessFileObj);
 });
Example #6
0
module.exports = function * () {
  const body = joiValidate(this.request.body, bodySchema)
  if (body.disabledProjects !== undefined) {
    body.disabledProjects = _.sortedUniq(body.disabledProjects || [])
  }
  body.sleep = Math.max(body.sleep || 0, 0)
  body.retryLockTimeout = Math.max(body.retryLockTimeout || 0, 0)
  yield runtimeConfig.set(body)
  this.body = null
}
Example #7
0
export const generateGridLinesArray = (gridLinesArray, excludeElementIndex, max) => {
  // If our exclude index is null, we don't have a current element selected so all grid lines are
  // available for snapping
  if (excludeElementIndex !== null) {
    const gridIndex = 3 + (excludeElementIndex * 3);

    // Get all gridLines except for the ones at the element index (left, middle, right)
    gridLinesArray.splice(gridIndex, 3);
  }

  // Return a sorted array of uniq gridLines
  // Filter out any values higher than the max
  return sortedUniq(sortBy(gridLinesArray)).filter((num) => num <= max && num >= 0);
};
Example #8
0
module.exports = function * () {
  const params = joiValidate(this.params, paramsSchema)
  const project = params.project
  const rtConfig = yield runtimeConfig.get()
  const disabledProjects = rtConfig.disabledProjects || []
  if (disabledProjects.includes(project)) {
    _.pull(disabledProjects, project)
  } else {
    disabledProjects.push(project)
  }
  yield runtimeConfig.set({
    disabledProjects: _.sortedUniq(disabledProjects)
  })
  this.body = null
}
Example #9
0
 _addItem: function(document){
   var _id = this.lastId++;
   this.data.push(document);
   for( var name in document ){
     var value = document[name];
     if( this.index[name] === undefined ){
       this.index[name] = {};
     }
     if( this.index[name][value] === undefined ){
       this.index[name][value] = [];
     }
     this.index[name][value].push(_id);
     this.index[name][value] = _.sortedUniq( this.index[name][value] );
   }
   return this;
 },
  _.forEach(this.flatten_dictionary, function (mark_name) {
    var marks = _.sortedUniq(marker_indices(mark_name, data));
    // console.log("find names ", mark_name, marks);
    if (marks.length > 0) {
      if (mark_name == "商務及經濟發展局局長:") {
        caseslot1 = marks;
      }
      if (mark_name == "發展局局長:") {
        caseslot2 = marks;
      }
      /*if (mark_name == "秘書:") {
       compare_slot_3 = marks;
       ex = true;
       }*/
      if (mark_name == "全委會主席:") {
        caseslot4 = marks;

      }
      if (mark_name == "代理全委會主席:") {
        caseslot5 = marks;

      }
      if (mark_name == "主席:") {
        caseslot6 = marks;

      }
      if (mark_name == "代理主席:") {
        caseslot7 = marks;

      }

      _.forEach(marks, function (mark) {
        //  start_from = mark_1 + mark_name.length;
        main.push({
          page: this.options.from,
          index: mark,
          token: mark_name,
          person: true
        });
      }.bind(this));

    }
    //loop = true;
    //return false;
  }.bind(this));
    /**
     * @name dependencyProcessor#createDependencyObject
     * @description Returns the variable name for the specified dependency
     * @param {String} dependency
     * @param {Array} [methods] Array of string method names
     * @param {Array} [methodSpies] Array of chained method spies
     * @returns {Object}
     */
    function createDependencyObject(dependency, methods, methodSpies) {
        if (typeof methods === 'undefined') {
            methods = [];
        }

        if (typeof methodSpies === 'undefined') {
            methodSpies = [];
        }

        methods = _.sortedUniq(methods.sort());

        return {
            name: dependency,
            methods: methods,
            methodString: "'" + methods.join("', '") + "'",
            methodSpies: methodSpies.sort(getCompareFunction('name')),
            variable: getVariableName(dependency)
        };
    }
Example #12
0
  }, function (cb) {
    var cacheJson = {};
    var cachePath = path.join(cacheRootPath, 'sass', config.module);
    var cacheFilePath = path.join(cachePath, 'cache.json');
    var checkedFilenames = [];
    var forceCheckedFilenames = [];

    if (!Util.existsSync(cachePath)) {
      mkdirp.sync(cachePath);
    } else {
      cacheJson = Util.readJsonFile(cacheFilePath);
    }
    if (!_.isEmpty(cacheJson) && !config.isForce) {
      for (var i in cacheJson) {
        if (cacheMd5Hash[i] !== cacheJson[i]) {
          // 根据sass graph搜寻
          var moduleName = config.module;
          if (moduleName !== config.common) {
            var sassGraphJson = Util.readJsonFile(path.join(config.cwd, moduleName, 'dist', 'sass_graph.json'));
            for (var key in sassGraphJson) {
              if (sassGraphJson[key].imported.indexOf(i) >= 0) {
                checkedFilenames.push(key);
                forceCheckedFilenames.push(key);
              }
            }
          } else {
            var appSassGraphJson = {};
            var appSassCacheJSon = {};
            var changedModules = [];
            config.moduleList.forEach(function (item) {
              appSassGraphJson[item] = Util.readJsonFile(path.join(config.cwd, item, 'dist', 'sass_graph.json'));
              appSassCacheJSon[item] = Util.readJsonFile(path.join(cacheRootPath, 'sass', item, 'cache.json'));
            });
            for (var k in appSassGraphJson) {
              for (var j in appSassGraphJson[k]) {
                if (appSassGraphJson[k][j].imported.indexOf(i) >= 0) {
                  checkedFilenames.push(j);
                  forceCheckedFilenames.push(j);
                  changedModules.push(k);
                  delete appSassCacheJSon[k][j];
                }
              }
            }
            for (var t in appSassCacheJSon) {
              if (changedModules.indexOf(t) >= 0 && t !== moduleName) {
                fs.writeFileSync(path.join(cacheRootPath, 'sass', t, 'cache.json'), JSON.stringify(appSassCacheJSon[t], null, 2));
              }
            }
          }
          checkedFilenames.push(i);
        }
      }
      checkedFilenames = _.sortedUniq(checkedFilenames);
      checkedFilenames = checkedFilenames.filter(function (item) {
        return path.basename(item)[0] !== '_';
      });
      files.forEach(function (item) {
        var checkedIn = config.checkCb(item, forceCheckedFilenames);
        if ((checkedFilenames.indexOf(item.path) >= 0) || checkedIn) {
          this.push(item);
        }
      }.bind(this));
    } else {
      files.forEach(function (item) {
        this.push(item);
      }.bind(this));
    }
    fs.writeFileSync(cacheFilePath, JSON.stringify(_.assign(cacheJson, cacheMd5Hash), null, 2));
    cb();
  });
Example #13
0
  '!.meteor/**',
  '!.publish/**',
  '!**/*.min.*'
]

// Sources
var cssSrc = ['**/*.css', '**/*.less'].concat(excludedSrcs)
var htmlSrc = ['**/*.html'].concat(excludedSrcs)
var jsSrc = ['**/*.js'].concat(excludedSrcs)
var jsonSrc = ['**/*.json'].concat(excludedSrcs)

// Tidy Configuration Sources
var tidyConfigSrc = ['.csscomb.json', '.esformatter', '.htmllintrc']

// All source files
var allSrc = _.sortedUniq([].concat(cssSrc).concat(htmlSrc).concat(jsSrc).concat(jsonSrc))

/**
 * Generate documentation.
 */
gulp.task('doc', ['doc-js'])
/**
 * Generate EcmaScript documentation.
 * @verbose
 */
gulp.task('doc-js', function (cb) {
  gulp.src(jsSrc.concat(['README.md', '**/*.jsdoc']))
    .pipe(jsDoc({
      tags: {
        allowUnknownTags: true
      },
Example #14
0
export default function articles(state = {
        isFetching: true,
        isUploading: false,
        isFilter: false,
        articles: [],
        filter_articles: [],
        slides: [],
        slide_index: -1,
        images: [],
        article: {
            articleNo : null,
            title : '',
            author: '',
            editor: '',
            content: '',
            editors: [],
            tag : [],
            updateTime : null,
            publishTime : null,
            isBookArticle : false,
            isPrivate : false,
            isSlideshow: false
        },
        editingArticle: null
    }, action) {
	switch (action.type) {
    case REQUEST_POST:
    case REQUEST_POSTS:
    case REQUEST_SUMMARY:
    case CLEAN_POSTS:
		return assignIn({}, state, {
            isFetching: true,
            isUploading: false,
            isFilter: false,
            filter_articles: [],
            articles: [],
            slides: [],
            slide_index: -1
        });
	case RECEIVE_POSTS:
        return assignIn({}, state, {
            isFetching: false,
            isUploading: false,
            articles: action.articles
        });
    case RECEIVE_POST:
        return assignIn({}, state, {
            isFetching: false,
            isUploading: false,
            article: action.article,
            editingArticle: action.article,
            slides: action.article.isSlideshow ? action.article.content.split("---") : [],
            slide_index: -1
        });
    case RECEIVE_IMAGES:
    case UPDATE_IMAGES:
        return assignIn({}, state, {
            isFetching: false,
            isUploading: false,
            images: action.list
        });
    case APPEND_IMAGE:
        return assignIn({}, state, {
            images: concat(state.images, action.item)
        });
    case DELETE_IMAGE:
	case PUBLISH_POST:
	case UPDATE_POST:
		return assignIn({}, state, {
			article: assignIn({}, state.article, action.article)
    	});
	case COMPLETE_POST:
		return assignIn({}, state, {
			isFetching: false,
      		isUploading: false
		});
    case CLEAN_POST:
        return assignIn({}, state, {
            images: [],
            article: assignIn({}, state.article, {
                articleNo: null,
                title: '',
                author: '',
                editor: '',
                content: '',
                editors: [],
                tag: [],
                updateTime: null,
                publishTime: null,
                isBookArticle: false,
                isPrivate: false,
                isSlideshow: false
            })
        });
    case CLEAN_EDITING_POST:
        return assignIn({}, state, {
            editingArticle: null,
        });
    case EDIT_POST:
        return assignIn({}, state, {
            article: action.article,
            editingArticle: action.article
        });
    case CHANGE_POST_TYPE:
        return assignIn({}, state, {
            article : assignIn({}, state.article, {
                isPrivate: action.isPrivate
            })
        });
    case FILTER_POST:
        return assignIn({}, state, {
            filter_articles: action.list,
            isFilter: true
        });
    case CLEAR_FILTER_POST:
        return assignIn({}, state, {
            filter_articles: [],
            isFilter: false
        });
    case UPDATE_SLIDES:
        return assignIn({}, state, {
            slides: action.slides
        });
    case UPDATE_SLIDE_INDEX:
        return assignIn({}, state, {
            slide_index: action.slide_index
        });
    case ASSIGN_CO_EDITOR:
        return assignIn({}, state, {
            article: assignIn({}, state.article, {
                editors: sortedUniq(concat(state.article.editors, action.worker_no)),
            })
    	});        
    case REMOVE_CO_EDITOR:    
        return assignIn({}, state, {
            article: assignIn({}, state.article, {
                editors: filter(state.article.editors, function (worker_no) { return worker_no != action.worker_no }),
            })
    	});        
    case LEAVE_POST:
    case UPLOAD_POST:
    
	default:
		return state;
	}
}
Example #15
0
 ['RETRIEVE_MY_LUCKY_ORDER_SUCCESS']: (state, action) => {
     var old = state.retrieveMyLucky && state.retrieveMyLucky.result || [];
     var nresult = _.sortedUniq (_.concat (old, action.payload.result).sort((a,b)=>(a-b))).reverse();
     return ({ ...state, db: {...state.db, ...action.payload.db}, retrieveMyLucky: { ...state.retrieveMyLucky, fetching: false, error: null, total:action.payload.total, page:action.payload.page, result: nresult } })
 },
Example #16
0
        parser.bus.on('ast2html', async function fetch_attachment_data(data) {
          // find all images that point to an attachment and set data-nd-media-id attr
          data.ast.find('.image').each(function () {
            let $attach = $(this);
            let match = _.find(N.router.matchAll($attach.attr('src')), function (match) {
              return match.meta.methods.get === 'users.media';
            });

            if (!match) return;

            $attach.attr('data-nd-media-id', match.params.media_id);

            // Get a size from img alt attribute, e.g.:
            //  - ![md](link)
            //  - ![arbitrary text|md](link)
            //
            let alt = $attach.attr('alt') || '';
            let pos = alt.lastIndexOf('|');
            let size;

            if (pos !== -1) {
              size = alt.slice(pos + 1).trim();
              alt = alt.slice(0, pos);
            } else {
              size = alt.trim();
              alt = '';
            }

            if (sizes[size]) {
              $attach.attr('alt', alt);
            } else {
              size = 'sm';
            }

            $attach.data('nd-media-size', size);
          });

          // Fetch all images
          //
          let refs = [];

          data.ast.find('[data-nd-media-id]').map(function () {
            refs.push([ $(this).data('nd-media-id'), $(this).data('nd-media-size') ]);
          });

          let attach_list = {
            ids: _.sortedUniq(refs.map(r => r[0]).sort())
          };

          await N.wire.emit('internal:common.content.attachments', attach_list);

          data.ast.find('[data-nd-media-id]').each(function () {
            let $attach = $(this);
            let id = $attach.data('nd-media-id');
            let size = $attach.data('nd-media-size');
            let attach_meta = attach_list.attachments[id];
            let image_size;

            if (!attach_meta) return;

            if (attach_meta.image_sizes && attach_meta.image_sizes[size]) {
              image_size = attach_meta.image_sizes[size];
            }

            $attach.data('nd-media-type',     attach_meta.type);
            $attach.data('nd-media-filename', attach_meta.file_name);

            if (image_size) {
              $attach.data('nd-width',  image_size.width);
              $attach.data('nd-height', image_size.height);

              // for consistency, to have the same data as in external images; unused
              $attach.data('nd-wunits', 'px');
              $attach.data('nd-hunits', 'px');
            }
          });
        });
function choose_no_repeat_number(collection) {
	var result = _.sortedUniq(collection);
	return result;
}
Example #18
0
/**
 * Returns a symmetrically padded domain for polar charts
 * @param {Array} domain: the original domain
 * @param {Array} values: a flat array of values corresponding to either tickValues, or data values
 * for a given dimension i.e. only x values.
 * @returns {Array} the symmetric domain
 */
function getSymmetricDomain(domain, values) {
  const processedData = sortedUniq(values.sort((a, b) => a - b));
  const step = processedData[1] - processedData[0];
  return [domain[0], domain[1] + step];
}