// textとpasswordの場合、最大長を指定する\r
//defaultvalue デフォルト値を指定する\r
//primary プライマリーキーとして指定するなら真。そうでないなら偽\r
- //isnotempty:真なら必須メンバーであることを表し、そうでないなら空欄でも構わないことを表す\r
+ //isnotempty 真なら必須メンバーであることを表し、そうでないなら空欄でも構わないことを表す\r
+ //nodefinetable 真ならテーブルの項目に登録しないことを表し、そうでないなら登録することを表す\r
//visible 詳細画面に表示するなら真。そうでないなら偽\r
//visible_edit 編集画面に表示するなら真。そうでないなら偽\r
+ //mustmatchitem 編集時に一致しなければならない項目を指定する\r
//rule バリテーション時に実行される関数を指定する\r
+ // 呼び出される関数の第一パラメーターはバリテーションの対象となるデーターで、第二パラメーターはデーター型となる\r
// 実行される関数でバリテーションが成功した場合、nullを返さなければならない\r
alias : {\r
//name以外の項目を編集しないでください。正常に動作しなくなります\r
length : 32,\r
visible : false,\r
visible_edit : true,\r
+ isnotempty : true\r
+ },\r
+ newpassword :\r
+ {\r
+ name : "",\r
+ type : "password",\r
+ length : 32,\r
+ visible : false,\r
+ visible_edit : true,\r
+ mustmatchitem : "password",\r
+ nodefinetable : true,\r
},\r
lastmodified :\r
{\r
}\r
async.waterfall([\r
function(cb){\r
- if(typeof(req.body.updatepassword) == "undefined")\r
- collection.UpdatAsync(req.body.name,req.body,null,cb);\r
- else\r
- collection.UpdatAsync(req.body.name,req.body,req.body.password,cb);\r
+ collection.UpdatAsync(req.body.name,req.body,cb);\r
},\r
],function(err,result){\r
if(err != null)\r
var item = GetItem(data);;\r
pool.query("INSERT INTO profilelist SET ?",[item],cb);\r
}\r
- this.UpdatAsync = function(name,data,newpassword,cb){\r
- var item = GetItem(data,newpassword);\r
+ this.UpdatAsync = function(name,data,cb){\r
+ var item = GetItem(data);\r
pool.query("UPDATE profilelist SET ? WHERE name = ?",[item,name],cb);\r
}\r
this.ClearAsync = function(cb){\r
};\r
for(var key in config.alias)\r
{\r
+ if(typeof(config.alias[key].nodefinetable) != "undefined" && \r
+ config.alias[key].nodefinetable)\r
+ continue;\r
if(config.alias[key].visible_edit)\r
{\r
if(config.alias[key].type == "password")\r
- {\r
- if(typeof(newpw) != "undefined")\r
- data[key] = newpw;\r
- if(data[key] != null)\r
- item[key] = md5_hex(data[key]);\r
- }\r
+ item[key] = md5_hex(data[key]);\r
else if(data[key] == "" && typeof(config.alias[key].defaultvalue) != "undefined")\r
- {\r
item[key] = config.alias[key].defaultvalue;\r
- }\r
else\r
- {\r
item[key] = data[key];\r
- }\r
}\r
}\r
return item;\r
if(typeof(alias[key].isnotempty) != "undefined" &&\r
alias[key].isnotempty && body[key] == "")\r
message = resource.is_not_empty;\r
- message = IsValidate(body[key],alias[key].type,alias[key].rule);\r
+ else if(typeof(alias[key].mustmatchitem) != "undefined" &&\r
+ body[key] != body[alias[key].mustmatchitem])\r
+ message = util.format(resource.must_match_item,alias[alias[key].mustmatchitem].name); \r
+ else\r
+ message = IsValidate(body[key],alias[key].type,alias[key].rule);\r
if(message != null)\r
{\r
- this.Message += "<p>" + alias[key].name + ":" + message + "</p>\n";\r
+ if(alias[key].name == "")\r
+ this.Message += "<p>" + message + "</p>\n";\r
+ else\r
+ this.Message += "<p>" + alias[key].name + ":" + message + "</p>\n";\r
result = true;\r
}\r
}\r