initial draft
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
<cfimport prefix="c" taglib="../lib/controls"/>
|
||||
<cfimport prefix="d" taglib="../lib/data"/>
|
||||
|
||||
<!---<cfif StructKeyExists(form, "add_param_class")>
|
||||
<cfdump var=#form#/>
|
||||
</cfif>--->
|
||||
|
||||
<cfparam name="ATTRIBUTES.abstract_service_id"/>
|
||||
<cfparam name="ATTRIBUTES.fwx"/>
|
||||
<cfparam name="ATTRIBUTES.self"/>
|
||||
<cfparam name="ATTRIBUTES.editable" type="boolean" default="No"/>
|
||||
|
||||
<d:bean readonly=#!ATTRIBUTES.editable# savemarker="add_param_class" table="abstract_service_param_class" datasource="#request.DS#" output="de" status="estatus" info="einfo" meta="emeta">
|
||||
<d:param field="abstract_service_id" type="integer" key/>
|
||||
<d:param field="param_class_id" type="integer" key/>
|
||||
|
||||
<d:param field="creator_id" type="integer" value="#request.usr_id#" skipUpdate/>
|
||||
<d:param field="updater_id" type="integer" value="#request.usr_id#" />
|
||||
<d:param field="dt_created" type="timestamp" value="#Now()#" skipUpdate/>
|
||||
<d:param field="dt_updated" type="timestamp" value="#Now()#"/>
|
||||
</d:bean>
|
||||
|
||||
<cfif structKeyExists(FORM, "detach_param_class") AND #ATTRIBUTES.editable#>
|
||||
<cfparam name="FORM.param_class_id" type="integer"/>
|
||||
<cfquery name="qDetachparam_class" datasource="#request.DS#">
|
||||
delete from abstract_service_param_class
|
||||
where abstract_service_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#ATTRIBUTES.abstract_service_id#/>
|
||||
AND param_class_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#FORM.param_class_id#/>
|
||||
</cfquery>
|
||||
</cfif>
|
||||
|
||||
<cfquery name="qRead" datasource="#request.DS#">
|
||||
select
|
||||
x.abstract_service_id
|
||||
,x.param_class_id
|
||||
,p.param_class
|
||||
from abstract_service_param_class x
|
||||
join param_class p on (x.param_class_id=p.param_class_id)
|
||||
where x.abstract_service_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#ATTRIBUTES.abstract_service_id#"/>
|
||||
order by 2
|
||||
</cfquery>
|
||||
|
||||
<cfoutput>
|
||||
<b>Классы компонентов (#qRead.recordCount#):</b>
|
||||
</cfoutput>
|
||||
|
||||
<table class="worktable">
|
||||
|
||||
<cfoutput>
|
||||
<thead>
|
||||
<tr class="worktable_head">
|
||||
<th>Компонент</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</cfoutput>
|
||||
|
||||
<cfoutput query="qRead">
|
||||
<tr>
|
||||
<td>#param_class#</td>
|
||||
<td class="c">
|
||||
<cfif #ATTRIBUTES.editable#>
|
||||
<form action="#request.thisPage#" method="post">
|
||||
<input type="hidden" name="abstract_service_id" value="#ATTRIBUTES.abstract_service_id#"/>
|
||||
<input type="hidden" name="param_class_id" value="#param_class_id#"/>
|
||||
<input type="hidden" name="track" value="#ATTRIBUTES.self#"/>
|
||||
<button type="submit" name="detach_param_class" class="submitminus" title="убрать провайдера услуги"></button>
|
||||
</form>
|
||||
</cfif>
|
||||
</td>
|
||||
</tr>
|
||||
</cfoutput>
|
||||
|
||||
<cfif ATTRIBUTES.editable>
|
||||
<cfoutput>
|
||||
<tr>
|
||||
<td colspan="3" style="vertical-align:middle;">
|
||||
<form action="#request.thisPage#" method="post">
|
||||
<input type="hidden" name="track" value="#ATTRIBUTES.self#"/>
|
||||
<input type="hidden" name="abstract_service_id" value="#ATTRIBUTES.abstract_service_id#"/>
|
||||
<button type="submit" name="add_param_class" class="submitnew" value="" title="добавить прямо тут" style="vertical-align:middle"></button>
|
||||
<cfquery name="qparam_class" datasource="#request.DS#">
|
||||
select c.param_class_id, c.param_class
|
||||
from param_class c
|
||||
order by c.param_class
|
||||
</cfquery>
|
||||
|
||||
<c:combo
|
||||
query=#qparam_class#
|
||||
combo="param_class_id"
|
||||
key="param_class_id"
|
||||
id="param_class_id"
|
||||
displayf="##param_class##"
|
||||
empty=""
|
||||
style="vertical-align:middle"
|
||||
<!--- flag_disabled="cnt"--->
|
||||
/>
|
||||
</form>
|
||||
<i></i>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</cfoutput>
|
||||
</cfif>
|
||||
</table>
|
||||
<cfexit method="exittag"/>
|
||||
@@ -0,0 +1,106 @@
|
||||
<cfimport prefix="c" taglib="../lib/controls"/>
|
||||
<cfimport prefix="d" taglib="../lib/data"/>
|
||||
|
||||
<!---<cfif StructKeyExists(form, "add_provider")>
|
||||
<cfdump var=#form#/>
|
||||
</cfif>--->
|
||||
|
||||
<cfparam name="ATTRIBUTES.abstract_service_id"/>
|
||||
<cfparam name="ATTRIBUTES.fwx"/>
|
||||
<cfparam name="ATTRIBUTES.self"/>
|
||||
<cfparam name="ATTRIBUTES.editable" type="boolean" default="No"/>
|
||||
|
||||
<d:bean readonly=#!ATTRIBUTES.editable# savemarker="add_provider" table="abstract_service_provider" datasource="#request.DS#" output="de" status="estatus" info="einfo" meta="emeta">
|
||||
<d:param field="abstract_service_id" type="integer" key/>
|
||||
<d:param field="provider_id" type="integer" key/>
|
||||
|
||||
<d:param field="creator_id" type="integer" value="#request.usr_id#" skipUpdate/>
|
||||
<d:param field="updater_id" type="integer" value="#request.usr_id#" />
|
||||
<d:param field="dt_created" type="timestamp" value="#Now()#" skipUpdate/>
|
||||
<d:param field="dt_updated" type="timestamp" value="#Now()#"/>
|
||||
</d:bean>
|
||||
|
||||
<cfif structKeyExists(FORM, "detach_provider") AND #ATTRIBUTES.editable#>
|
||||
<cfparam name="FORM.provider_id" type="integer"/>
|
||||
<cfquery name="qDetachprovider" datasource="#request.DS#">
|
||||
delete from abstract_service_provider
|
||||
where abstract_service_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#ATTRIBUTES.abstract_service_id#/>
|
||||
AND provider_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#FORM.provider_id#/>
|
||||
</cfquery>
|
||||
</cfif>
|
||||
|
||||
<cfquery name="qRead" datasource="#request.DS#">
|
||||
select
|
||||
x.abstract_service_id
|
||||
,x.provider_id
|
||||
,p.provider
|
||||
from abstract_service_provider x
|
||||
join provider p on (x.provider_id=p.provider_id)
|
||||
where x.abstract_service_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#ATTRIBUTES.abstract_service_id#"/>
|
||||
order by 2
|
||||
</cfquery>
|
||||
|
||||
<cfoutput>
|
||||
<b>Провайдеры услуги (#qRead.recordCount#):</b>
|
||||
</cfoutput>
|
||||
|
||||
<table class="worktable">
|
||||
|
||||
<cfoutput>
|
||||
<thead>
|
||||
<tr class="worktable_head">
|
||||
<th>Провайдер</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</cfoutput>
|
||||
|
||||
<cfoutput query="qRead">
|
||||
<tr>
|
||||
<td>#provider#</td>
|
||||
<td class="c">
|
||||
<cfif #ATTRIBUTES.editable#>
|
||||
<form action="#request.thisPage#" method="post">
|
||||
<input type="hidden" name="abstract_service_id" value="#ATTRIBUTES.abstract_service_id#"/>
|
||||
<input type="hidden" name="provider_id" value="#provider_id#"/>
|
||||
<input type="hidden" name="track" value="#ATTRIBUTES.self#"/>
|
||||
<button type="submit" name="detach_provider" class="submitminus" title="убрать провайдера услуги"></button>
|
||||
</form>
|
||||
</cfif>
|
||||
</td>
|
||||
</tr>
|
||||
</cfoutput>
|
||||
|
||||
<cfif ATTRIBUTES.editable>
|
||||
<cfoutput>
|
||||
<tr>
|
||||
<td colspan="3" style="vertical-align:middle;">
|
||||
<form action="#request.thisPage#" method="post">
|
||||
<input type="hidden" name="track" value="#ATTRIBUTES.self#"/>
|
||||
<input type="hidden" name="abstract_service_id" value="#ATTRIBUTES.abstract_service_id#"/>
|
||||
<button type="submit" name="add_provider" class="submitnew" value="" title="добавить прямо тут" style="vertical-align:middle"></button>
|
||||
<cfquery name="qProvider" datasource="#request.DS#">
|
||||
select c.provider_id, c.provider
|
||||
from provider c
|
||||
order by c.provider
|
||||
</cfquery>
|
||||
|
||||
<c:combo
|
||||
query=#qProvider#
|
||||
combo="provider_id"
|
||||
key="provider_id"
|
||||
id="provider_id"
|
||||
displayf="##provider##"
|
||||
empty=""
|
||||
style="vertical-align:middle"
|
||||
<!--- flag_disabled="cnt"--->
|
||||
/>
|
||||
</form>
|
||||
<i></i>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</cfoutput>
|
||||
</cfif>
|
||||
</table>
|
||||
<cfexit method="exittag"/>
|
||||
@@ -0,0 +1,67 @@
|
||||
<!--- смешная реализация полиморфизма--->
|
||||
<cfparam name="ATTRIBUTES.entity"/>
|
||||
|
||||
<cfset spec=structNew()/>
|
||||
<!---*** Удивительно: основная таблица должна иметь алиас d --->
|
||||
<cfswitch expression=#ATTRIBUTES.entity#>
|
||||
<cfcase value="abstract_service">
|
||||
<cfset spec.selectHead="select abstract_service, code from abstract_service d "/>
|
||||
<cfset spec.format="Абстрактная услуга ##code## ##abstract_service## "/>
|
||||
</cfcase>
|
||||
<!---
|
||||
<cfcase value="equipment_model">
|
||||
<cfset spec.selectHead="select type_short, vendor_short, equipment_model, model_number from v_model d"/>
|
||||
<cfset spec.format="модель ##type_short## ##vendor_short## ##equipment_model## ##model_number##"/>
|
||||
</cfcase>
|
||||
|
||||
<cfcase value="service_contract">
|
||||
<cfset spec.selectHead="select d.service_contract, d.subject, d.dt_contract, v.shortname as vendor_short from service_contract d left outer join vendor v on d.vendor_id=v.vendor_id "/>
|
||||
<cfset spec.format="сервисный договор ##vendor_short## ##service_contract## от ##dateFormat(dt_contract,'DD.MM.YYYY')## ##subject##"/>
|
||||
</cfcase>
|
||||
|
||||
<cfcase value="supply_contract">
|
||||
<cfset spec.selectHead="select supply_contract, d.subject, d.dt_contract, v.shortname as vendor_short from supply_contract d left outer join vendor v on d.vendor_id=v.vendor_id "/>
|
||||
<cfset spec.format="договор поставки ##vendor_short## ##supply_contract## от ##dateFormat(dt_contract,'DD.MM.YYYY')## ##subject##"/>
|
||||
</cfcase>
|
||||
|
||||
<cfcase value="maint">
|
||||
<cfset spec.selectHead="select maint_id, maint, dt_maint, type_short, vendor_short, equipment_model, equipment, place from v_maint d "/>
|
||||
<cfset spec.format="заявка/протокол ТО N##maint_id## ##maint## от ##dateFormat(dt_maint,'DD.MM.YYYY')## ##type_short## ##vendor_short## ##equipment_model## ##equipment## ##place##"/>
|
||||
</cfcase>
|
||||
|
||||
<cfcase value="maint_op">
|
||||
<cfset spec.selectHead="select maint_op_id, op_spec, dt_maint_op, type_short, vendor_short, equipment_model, equipment, place from v_maint_op d "/>
|
||||
<cfset spec.format="сервисная операция ##op_spec## от ##dateFormat(dt_maint_op,'DD.MM.YYYY')## ##type_short## ##vendor_short## ##equipment_model## ##equipment## ##place##"/>
|
||||
</cfcase>
|
||||
|
||||
<cfcase value="contact">
|
||||
<cfset spec.selectHead="select d.contact_id, d.contact, v.vendor from contact d left outer join vendor v on d.vendor_id=v.vendor_id "/>
|
||||
<cfset spec.format="Сотрудник ##contact## подрядчика ##vendor##"/>
|
||||
</cfcase>
|
||||
|
||||
<cfcase value="delivery">
|
||||
<cfset spec.selectHead="select d.delivery_id, d.delivery, d.dt_delivery, v.vendor, s.site from delivery d left outer join v_site s on (d.site_id=s.site_id) left outer join vendor v on (d.vendor_id=v.vendor_id) "/>
|
||||
<cfset spec.format="Поставка/списание ЗИП ##delivery## - ##site## от ##dateFormat(dt_delivery,'DD.MM.YYYY')## ##vendor##"/>
|
||||
</cfcase>
|
||||
|
||||
<cfcase value="work_order">
|
||||
<cfset spec.selectHead="select d.work_order_id, d.work_order, d.dt_work_order, v.vendor, b.building, s.site from work_order d
|
||||
left outer join v_building b on (d.building_id=b.building_id)
|
||||
left outer join v_site s on (b.site_id=s.site_id)
|
||||
left outer join vendor v on (d.contractor_id=v.vendor_id) "/>
|
||||
<cfset spec.format="Наряд ##vendor## № ##work_order_id## от ##dateFormat(dt_work_order,'DD.MM.YYYY')## - ##site## ##building##"/>
|
||||
</cfcase>
|
||||
|
||||
<cfcase value="maint_program">
|
||||
<cfset spec.selectHead="select d.maint_program_id, d.maint_program, t.shortname as type_short from maint_program d left outer join equipment_type t on (d.equipment_type_id=t.equipment_type_id)"/>
|
||||
<cfset spec.format="Программа ТО ##maint_program## ##type_short## "/>
|
||||
</cfcase>--->
|
||||
|
||||
<cfdefaultcase>
|
||||
<cfthrow message="Specified entity is not supported" detail="Entity specified does not exist or does not support attachments"/>
|
||||
</cfdefaultcase>
|
||||
</cfswitch>
|
||||
|
||||
<cfif StructKeyExists(ATTRIBUTES, "output")>
|
||||
<cfset SetVariable("CALLER.#ATTRIBUTES.output#", spec)/>
|
||||
</cfif>
|
||||
+100
@@ -0,0 +1,100 @@
|
||||
|
||||
<cfparam name="ATTRIBUTES.do" type="string">
|
||||
|
||||
<cfswitch expression="#ATTRIBUTES.do#">
|
||||
|
||||
<cfcase value="login"><!--- остальные не реализованы --->
|
||||
<cfparam name="ATTRIBUTES.username" type="string">
|
||||
<cfparam name="ATTRIBUTES.password" type="string">
|
||||
<cfparam name="ATTRIBUTES.granted">
|
||||
|
||||
<cfquery name="qUserAuth" datasource="#request.DS#">
|
||||
select usr_id, locked,
|
||||
<!--- pwdcompare(<cfqueryparam cfsqltype="cf_sql_varchar" value="#ATTRIBUTES.password#">, password, 0)--->
|
||||
password as pwdhash
|
||||
from usr
|
||||
where login=<cfqueryparam cfsqltype="cf_sql_varchar" value="#ATTRIBUTES.username#">
|
||||
</cfquery>
|
||||
|
||||
|
||||
|
||||
<cfset err=""/>
|
||||
|
||||
<cfif (qUserAuth.RecordCount NEQ 1)>
|
||||
<cfset err="Пользователь не зарегистрирован в системе.<br/>Проверьте правильность указания имени пользователя и пароля."/>
|
||||
<cfelseif qUserAuth.locked NEQ 0>
|
||||
<cfset err="Учетная запись заблокирована."/>
|
||||
<cfelseif request.passwordHashCheck(ATTRIBUTES.password, qUserAuth.pwdhash)<!--- or TRUE --->>
|
||||
<cflock scope="session" type="exclusive" timeout="3">
|
||||
<cfset session.authentication_source="LOCALDB"/>
|
||||
</cflock>
|
||||
<cfelse>
|
||||
<cfset err="Неверное имя пользователя или пароль.">
|
||||
<!--- <cfelse>
|
||||
<cfset err="Неизвестная программная ошибка в модуле аутентификации."> --->
|
||||
</cfif>
|
||||
|
||||
|
||||
<cfif (len(err) EQ 0)>
|
||||
<!---<cfquery name="qUserLast" datasource="#request.DS#">
|
||||
update usr
|
||||
set dt_lastlogin=getdate()
|
||||
where usr_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#qUserAuth.usr_id#">
|
||||
</cfquery>--->
|
||||
<cflock scope="session" type="exclusive" timeout="3">
|
||||
<cfset session.usr_id = qUserAuth.usr_id>
|
||||
<cfset request.usr_id = qUserAuth.usr_id>
|
||||
</cflock>
|
||||
|
||||
<cfparam name="request.usr_id" default=""/>
|
||||
<cfset authentication_source=""/>
|
||||
<cflock scope="session" type="readonly" timeout="3">
|
||||
<cfparam name="session.authentication_source" default=""/>
|
||||
<cfset authentication_source=session.authentication_source/>
|
||||
</cflock>
|
||||
<cflog file="authentication" type="information" text="User login=#ATTRIBUTES.username# ID=#request.usr_id# successfully logged in through #authentication_source#"/>
|
||||
<cfelse>
|
||||
<cflog file="authentication" type="information" text="login=#ATTRIBUTES.username# #err#"/>
|
||||
</cfif>
|
||||
|
||||
<cfif structKeyExists(ATTRIBUTES, "alert")>
|
||||
<cfset setVariable("CALLER.#ATTRIBUTES.alert#", err)/>
|
||||
</cfif>
|
||||
|
||||
<cfset setVariable("CALLER.#ATTRIBUTES.granted#", (len(err) EQ 0))/>
|
||||
|
||||
<!---сломать что-то при попытке логирования - очень частая ошибка, поэтому столько проверок--->
|
||||
|
||||
|
||||
</cfcase>
|
||||
|
||||
</cfswitch>
|
||||
|
||||
<cfexit method="EXITTAG"/>
|
||||
|
||||
<cffunction name="ntauth" returntype="boolean">
|
||||
<cfargument name="login" type="string"/>
|
||||
<cfargument name="domain" type="string"/>
|
||||
<cfargument name="passwd" type="string"/>
|
||||
|
||||
<cfset advapi32 = createObject("java","com.sun.jna.platform.win32.Advapi32")/>
|
||||
<cfset winbase = createObject("java","com.sun.jna.platform.win32.WinBase")/>
|
||||
<cfset phToken = createObject("java","com.sun.jna.platform.win32.WinNT$HANDLEByReference")/>
|
||||
<cfset kernel32 = createObject("java","com.sun.jna.platform.win32.Kernel32")/>
|
||||
<cfset res = advapi32.INSTANCE.LogonUser(ARGUMENTS.login, ARGUMENTS.domain, ARGUMENTS.passwd, winbase.LOGON32_LOGON_NETWORK, winbase.LOGON32_PROVIDER_DEFAULT, phToken)/>
|
||||
|
||||
<cfif res>
|
||||
<cfreturn true/>
|
||||
<cfelse>
|
||||
<cfset errorCode = kernel32.INSTANCE.GetLastError()/>
|
||||
<cfset ERROR_NO_TRUST_SAM_ACCOUNT = 1787/>
|
||||
<cfif errorCode EQ ERROR_NO_TRUST_SAM_ACCOUNT>
|
||||
<cfreturn true/>
|
||||
</cfif>
|
||||
</cfif>
|
||||
|
||||
<cfreturn false/>
|
||||
</cffunction>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
<cfimport prefix="m" taglib="../lib"/>
|
||||
|
||||
<cfparam name="ATTRIBUTES.section"/>
|
||||
<cfparam name="ATTRIBUTES.entity"/>
|
||||
<cfparam name="ATTRIBUTES.id"/>
|
||||
<cfparam name="ATTRIBUTES.tr"/>
|
||||
<cfparam name="ATTRIBUTES.writePermitted" type="boolean" default="false"/>
|
||||
|
||||
<cfswitch expression="#ATTRIBUTES.section#">
|
||||
<cfcase value="model">
|
||||
<cfif isDefined("savedoc") AND #ATTRIBUTES.writePermitted#>
|
||||
<cftry>
|
||||
<cfparam name="doc_title" type="string"/>
|
||||
<m:upload field="doc" output="attach"/>
|
||||
<cfif !structKeyExists(attach,"binaryData")>
|
||||
<cfexit method="exittag"/>
|
||||
</cfif>
|
||||
|
||||
<cfif len(attach.binaryData) GT 0 AND len(attach.fileName) GT 0>
|
||||
<cfquery name="qSave" datasource="#request.DS#">
|
||||
insert into #ATTRIBUTES.entity#_doc (
|
||||
#ATTRIBUTES.entity#_id, #ATTRIBUTES.entity#_doc, doc, contenttype, fname,
|
||||
dt_created, creator_id, dt_updated, updater_id
|
||||
) values (
|
||||
<cfqueryparam value=#ATTRIBUTES.id# cfsqltype="CF_SQL_INTEGER" />,
|
||||
<cfqueryparam value=#doc_title# cfsqltype="CF_SQL_VARCHAR">,
|
||||
<cfqueryparam value=#attach.binaryData# cfsqltype="CF_SQL_VARBINARY">,
|
||||
<cfqueryparam value=#attach.contentType# cfsqltype="CF_SQL_VARCHAR">,
|
||||
<cfqueryparam value=#attach.fileName# cfsqltype="CF_SQL_VARCHAR">,
|
||||
<cfqueryparam value=#Now()# cfsqltype="CF_SQL_TIMESTAMP" />,
|
||||
<cfqueryparam value=#request.usr_id# cfsqltype="CF_SQL_INTEGER" />,
|
||||
<cfqueryparam value=#Now()# cfsqltype="CF_SQL_TIMESTAMP" />,
|
||||
<cfqueryparam value=#request.usr_id# cfsqltype="CF_SQL_INTEGER" />
|
||||
)
|
||||
</cfquery>
|
||||
</cfif>
|
||||
|
||||
<!--- PRG pattern--->
|
||||
<m:location url="#ATTRIBUTES.tr.selfUrl#"/>
|
||||
|
||||
<cfcatch type="ANY"><cfrethrow/></cfcatch>
|
||||
</cftry>
|
||||
<cfelse>
|
||||
<!--- --->
|
||||
</cfif>
|
||||
</cfcase>
|
||||
|
||||
<cfcase value="view">
|
||||
<div style="margin:1em 0;">
|
||||
<b>Документы:</b>
|
||||
|
||||
<cfquery name="qDoc" datasource="#request.DS#">
|
||||
select d.#ATTRIBUTES.entity#_doc_id as doc_id, d.#ATTRIBUTES.entity#_doc as doc_title, d.fname, d.contenttype,
|
||||
d.dt_created, a.shortname as creator, d.dt_updated, m.shortname as modifier
|
||||
from #ATTRIBUTES.entity#_doc d
|
||||
left outer join usr a on (d.creator_id=a.usr_id)
|
||||
left outer join usr m on (d.updater_id=m.usr_id)
|
||||
where #ATTRIBUTES.entity#_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#ATTRIBUTES.id#/>
|
||||
</cfquery>
|
||||
|
||||
<cfoutput query="qDoc">
|
||||
<span class="nw">
|
||||
<a href="doc_get.cfm?entity=#ATTRIBUTES.entity#&doc_id=#doc_id#" title="открыть (#contenttype#)" target="_blank"><m:contenttype_icon contenttype=#contenttype#/></a>
|
||||
<cfif #ATTRIBUTES.writePermitted#>
|
||||
<a href="doc.cfm?entity=#ATTRIBUTES.entity#&doc_id=#doc_id#&#ATTRIBUTES.tr.fwx#" title="редактировать атрибуты"><cfif len(doc_title)>#doc_title#<cfelse>#fname#</cfif></a>
|
||||
<a href="doc_del.cfm?entity=#ATTRIBUTES.entity#&doc_id=#doc_id#&#ATTRIBUTES.tr.fwx#" title="удалить"><img src="img/del2.png"/></a>
|
||||
<cfelse>
|
||||
<cfif len(doc_title)>#doc_title#<cfelse>#fname#</cfif>
|
||||
</cfif>
|
||||
</span>
|
||||
|
||||
</cfoutput>
|
||||
|
||||
<cfif #ATTRIBUTES.writePermitted#>
|
||||
<cfoutput>
|
||||
<form name="frmDoc" action="#request.thisPage#" method="post" enctype="multipart/form-data" style="border:1px solid lightgray; display:inline-block; padding:.1em .5em; background-color:##eee;">
|
||||
<input type="hidden" name="track" value="#ATTRIBUTES.tr.self#"/>
|
||||
<input type="hidden" name="#ATTRIBUTES.entity#_id" value="#ATTRIBUTES.id#"/>
|
||||
Добавить:
|
||||
<input type="file" name="doc"/>
|
||||
Название документа:
|
||||
<input type="text" name="doc_title" value="" size="30"/>
|
||||
<button type="submit" name="savedoc" class="maincontrol">Загрузить</button>
|
||||
</form>
|
||||
</cfoutput>
|
||||
</cfif>
|
||||
</div>
|
||||
</cfcase>
|
||||
|
||||
<cfdefaultcase>
|
||||
<cfoutput>documents: there is no such section "#ATTRIBUTES.section#"</cfoutput>
|
||||
</cfdefaultcase>
|
||||
</cfswitch>
|
||||
<cfexit method="exittag"/><cfqueryparam cfsqltype="cf_sql_bigint"/><cfexit method="exittag"/>
|
||||
@@ -0,0 +1,64 @@
|
||||
<!--- not used --->
|
||||
|
||||
<cfimport prefix="m" taglib="../lib"/>
|
||||
|
||||
<cfparam name="ATTRIBUTES.param_class_id" type="integer"/>
|
||||
<cfparam name="ATTRIBUTES.fwx" type="string"/>
|
||||
<cfparam name="ATTRIBUTES.self" type="string"/>
|
||||
<cfparam name="ATTRIBUTES.estatus" type="struct"/>
|
||||
|
||||
|
||||
<cfquery name="qRead" datasource="#request.DS#">
|
||||
select p.param_id, p.param, p.precision
|
||||
from param p
|
||||
where p.param_class_id=<cfqueryparam cfsqltype="CF_SQL_INTEGER" value=#ATTRIBUTES.param_class_id#/>
|
||||
order by 2
|
||||
</cfquery>
|
||||
|
||||
|
||||
|
||||
<cfif ATTRIBUTES.estatus.errorState>
|
||||
<p class="err">
|
||||
<cfoutput>#ATTRIBUTES.estatus.errorMessage#</cfoutput>
|
||||
</p>
|
||||
</cfif>
|
||||
<table class="worktable">
|
||||
<thead>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>Вариант компонента</td>
|
||||
<td>Точность</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<cfoutput query="qRead">
|
||||
<tr>
|
||||
<td><m:link_view_edit entity='param' id=#param_id# fwx=#ATTRIBUTES.fwx# title_view="просмотреть вариант компонента" title_edit="редактировать вариант компонента"/></td>
|
||||
<td>#param#</td>
|
||||
<td>#precision#</td>
|
||||
<td class="c"><a href="#request.thisPage#?action=delete_param¶m_id=#ATTRIBUTES.param_id#¶m_class_id=#param_class_id#&track=#ATTRIBUTES.self#" title="удалить вариант компонента"><img src="img/del.gif"></a></td>
|
||||
</tr>
|
||||
</cfoutput>
|
||||
|
||||
<cfoutput>
|
||||
<form action="#request.thisPage#" method="post" name="frmparam">
|
||||
<input type="hidden" name="action" value="add_param">
|
||||
<input type="hidden" name="track" value="#ATTRIBUTES.self#"/>
|
||||
<input type="hidden" name="param_class_id" value="#ATTRIBUTES.param_class_id#">
|
||||
|
||||
<tr>
|
||||
<td class="c">
|
||||
<button type="submit" name="add_param" class="submitnew" title="добавить прямо тут"/>
|
||||
</td>
|
||||
|
||||
<td colspan="3">
|
||||
<input type="text" name="quantity" size="5" class="r" value=""/>
|
||||
</td>
|
||||
<td colspan="2">
|
||||
<input type="text" name="precision" size="5" class="r" value="0"/>
|
||||
</td>
|
||||
</tr>
|
||||
</form>
|
||||
</cfoutput>
|
||||
</table>
|
||||
<cfexit method="exittag"/>
|
||||
@@ -0,0 +1,104 @@
|
||||
<cfimport prefix="c" taglib="../lib/controls"/>
|
||||
<cfimport prefix="d" taglib="../lib/data"/>
|
||||
|
||||
<!---<cfif StructKeyExists(form, "add_role")>
|
||||
<cfdump var=#form#/>
|
||||
</cfif>--->
|
||||
|
||||
<cfparam name="ATTRIBUTES.usr_id"/>
|
||||
<cfparam name="ATTRIBUTES.fwx"/>
|
||||
<cfparam name="ATTRIBUTES.self"/>
|
||||
<cfparam name="ATTRIBUTES.editable" type="boolean" default="No"/>
|
||||
|
||||
<d:bean readonly=#!ATTRIBUTES.editable# savemarker="add_role" table="usr_role" datasource="#request.DS#" output="de" status="estatus" info="einfo" meta="emeta">
|
||||
<d:param field="usr_id" type="integer" key/>
|
||||
<d:param field="role_id" type="integer" key/>
|
||||
|
||||
<d:param field="creator_id" type="integer" value="#request.usr_id#" skipUpdate/>
|
||||
<d:param field="dt_created" type="timestamp" value="#Now()#" skipUpdate/>
|
||||
</d:bean>
|
||||
|
||||
<cfif structKeyExists(FORM, "detach_role") AND #ATTRIBUTES.editable#>
|
||||
<cfparam name="FORM.role_id" type="integer"/>
|
||||
<cfquery name="qDetachrole" datasource="#request.DS#">
|
||||
delete from usr_role
|
||||
where usr_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#ATTRIBUTES.usr_id#/>
|
||||
AND role_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#FORM.role_id#/>
|
||||
</cfquery>
|
||||
</cfif>
|
||||
|
||||
<cfquery name="qRead" datasource="#request.DS#">
|
||||
select
|
||||
x.usr_id
|
||||
,x.role_id
|
||||
,p.role
|
||||
from usr_role x
|
||||
join role p on (x.role_id=p.role_id)
|
||||
where x.usr_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#ATTRIBUTES.usr_id#"/>
|
||||
order by 2
|
||||
</cfquery>
|
||||
|
||||
<cfoutput>
|
||||
<b>Роли пользователя (#qRead.recordCount#):</b>
|
||||
</cfoutput>
|
||||
|
||||
<table class="worktable">
|
||||
|
||||
<cfoutput>
|
||||
<thead>
|
||||
<tr class="worktable_head">
|
||||
<th>Роль</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</cfoutput>
|
||||
|
||||
<cfoutput query="qRead">
|
||||
<tr>
|
||||
<td>#role#</td>
|
||||
<td class="c">
|
||||
<cfif #ATTRIBUTES.editable#>
|
||||
<form action="#request.thisPage#" method="post">
|
||||
<input type="hidden" name="usr_id" value="#ATTRIBUTES.usr_id#"/>
|
||||
<input type="hidden" name="role_id" value="#role_id#"/>
|
||||
<input type="hidden" name="track" value="#ATTRIBUTES.self#"/>
|
||||
<button type="submit" name="detach_role" class="submitminus" title="убрать роль пользователя"></button>
|
||||
</form>
|
||||
</cfif>
|
||||
</td>
|
||||
</tr>
|
||||
</cfoutput>
|
||||
|
||||
<cfif ATTRIBUTES.editable>
|
||||
<cfoutput>
|
||||
<tr>
|
||||
<td colspan="3" style="vertical-align:middle;">
|
||||
<form action="#request.thisPage#" method="post">
|
||||
<input type="hidden" name="track" value="#ATTRIBUTES.self#"/>
|
||||
<input type="hidden" name="usr_id" value="#ATTRIBUTES.usr_id#"/>
|
||||
<button type="submit" name="add_role" class="submitnew" value="" title="добавить прямо тут" style="vertical-align:middle"></button>
|
||||
<cfquery name="qRole" datasource="#request.DS#">
|
||||
select c.role_id, c.role
|
||||
from role c
|
||||
order by c.role
|
||||
</cfquery>
|
||||
|
||||
<c:combo
|
||||
query=#qRole#
|
||||
combo="role_id"
|
||||
key="role_id"
|
||||
id="role_id"
|
||||
displayf="##role##"
|
||||
empty=""
|
||||
style="vertical-align:middle"
|
||||
<!--- flag_disabled="cnt"--->
|
||||
/>
|
||||
</form>
|
||||
<i></i>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</cfoutput>
|
||||
</cfif>
|
||||
</table>
|
||||
<cfexit method="exittag"/>
|
||||
Reference in New Issue
Block a user